diff --git a/libmachine/provision/arch.go b/libmachine/provision/arch.go index 9def4051b6..87e2e8dce5 100644 --- a/libmachine/provision/arch.go +++ b/libmachine/provision/arch.go @@ -108,6 +108,7 @@ func (provisioner *ArchProvisioner) Provision(swarmOptions swarm.SwarmOptions, a provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env if provisioner.EngineOptions.StorageDriver == "" { provisioner.EngineOptions.StorageDriver = "overlay" diff --git a/libmachine/provision/boot2docker.go b/libmachine/provision/boot2docker.go index 2f2d449ab1..7f64fd4c7f 100644 --- a/libmachine/provision/boot2docker.go +++ b/libmachine/provision/boot2docker.go @@ -239,6 +239,7 @@ func (provisioner *Boot2DockerProvisioner) Provision(swarmOptions swarm.SwarmOpt provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env if provisioner.EngineOptions.StorageDriver == "" { provisioner.EngineOptions.StorageDriver = "aufs" diff --git a/libmachine/provision/configure_swarm.go b/libmachine/provision/configure_swarm.go index 69e4e79de3..12c03f8ce4 100644 --- a/libmachine/provision/configure_swarm.go +++ b/libmachine/provision/configure_swarm.go @@ -14,6 +14,7 @@ import ( type SwarmCommandContext struct { ContainerName string + Env []string DockerDir string DockerPort int Ip string @@ -70,6 +71,7 @@ func configureSwarm(p Provisioner, swarmOptions swarm.SwarmOptions, authOptions swarmCmdContext := SwarmCommandContext{ ContainerName: "", + Env: swarmOptions.Env, DockerDir: dockerDir, DockerPort: 2376, Ip: ip, @@ -86,6 +88,7 @@ func configureSwarm(p Provisioner, swarmOptions swarm.SwarmOptions, authOptions swarmMasterCmdTemplate := `sudo docker run -d \ --restart=always \ +{{range .Env}} -e {{.}}{{end}} \ --name swarm-agent-master \ -p {{.Port}}:{{.Port}} \ -v {{.DockerDir}}:{{.DockerDir}} \ @@ -101,6 +104,7 @@ manage \ swarmWorkerCmdTemplate := `sudo docker run -d \ --restart=always \ +{{range .Env}} -e {{.}}{{end}} \ --name swarm-agent \ {{.SwarmImage}} \ join --advertise {{.Ip}}:{{.DockerPort}} {{.SwarmOptions.Discovery}} diff --git a/libmachine/provision/debian.go b/libmachine/provision/debian.go index ee11645222..a50dbfbfd5 100644 --- a/libmachine/provision/debian.go +++ b/libmachine/provision/debian.go @@ -125,6 +125,7 @@ func (provisioner *DebianProvisioner) Provision(swarmOptions swarm.SwarmOptions, provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env if provisioner.EngineOptions.StorageDriver == "" { provisioner.EngineOptions.StorageDriver = "aufs" diff --git a/libmachine/provision/rancheros.go b/libmachine/provision/rancheros.go index 1dc5abf8f1..1abaf2459c 100644 --- a/libmachine/provision/rancheros.go +++ b/libmachine/provision/rancheros.go @@ -91,6 +91,7 @@ func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.SwarmOptions provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env if provisioner.EngineOptions.StorageDriver == "" { provisioner.EngineOptions.StorageDriver = "overlay" diff --git a/libmachine/provision/redhat.go b/libmachine/provision/redhat.go index f14752d1ef..24a9da6cb2 100644 --- a/libmachine/provision/redhat.go +++ b/libmachine/provision/redhat.go @@ -200,6 +200,7 @@ func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.SwarmOptions, provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env // set default storage driver for redhat if provisioner.EngineOptions.StorageDriver == "" { diff --git a/libmachine/provision/suse.go b/libmachine/provision/suse.go index 887b80f8a2..3244c90e31 100644 --- a/libmachine/provision/suse.go +++ b/libmachine/provision/suse.go @@ -133,6 +133,7 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.SwarmOptions, a provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env if err := provisioner.SetHostname(provisioner.Driver.GetMachineName()); err != nil { return err diff --git a/libmachine/provision/ubuntu.go b/libmachine/provision/ubuntu.go index 838ad2e2a0..a17033ce0c 100644 --- a/libmachine/provision/ubuntu.go +++ b/libmachine/provision/ubuntu.go @@ -118,6 +118,7 @@ func (provisioner *UbuntuProvisioner) Provision(swarmOptions swarm.SwarmOptions, provisioner.SwarmOptions = swarmOptions provisioner.AuthOptions = authOptions provisioner.EngineOptions = engineOptions + swarmOptions.Env = engineOptions.Env if provisioner.EngineOptions.StorageDriver == "" { provisioner.EngineOptions.StorageDriver = "aufs" diff --git a/libmachine/swarm/swarm.go b/libmachine/swarm/swarm.go index 364305b4e0..b455a9fffa 100644 --- a/libmachine/swarm/swarm.go +++ b/libmachine/swarm/swarm.go @@ -15,4 +15,5 @@ type SwarmOptions struct { Heartbeat int Overcommit float64 ArbitraryFlags []string + Env []string }