From 8d2ae162b7f8c9afaa8aa22a671fd2604242ac67 Mon Sep 17 00:00:00 2001 From: Kunal Kushwaha Date: Wed, 4 Nov 2015 17:08:44 +0900 Subject: [PATCH] Environment variables passed to provision machine, will be passed to containers for swarm also. Signed-off-by: Kunal Kushwaha --- libmachine/provision/arch.go | 1 + libmachine/provision/boot2docker.go | 1 + libmachine/provision/configure_swarm.go | 4 ++++ libmachine/provision/debian.go | 1 + libmachine/provision/rancheros.go | 1 + libmachine/provision/redhat.go | 1 + libmachine/provision/suse.go | 1 + libmachine/provision/ubuntu.go | 1 + libmachine/swarm/swarm.go | 1 + 9 files changed, 12 insertions(+) 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 e3663e0161..a596ea930d 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 }