X Tutup
Skip to content

Commit d889abc

Browse files
Merge pull request docker-archive-public#4082 from SvenDowideit/allow-rancheros-to-select-docker-version
Allow rancheros (all-non-b2d) to select a different Docker engine version using --engine-install-url
2 parents fb6f177 + 2ea653b commit d889abc

File tree

6 files changed

+21
-18
lines changed

6 files changed

+21
-18
lines changed

drivers/hyperv/hyperv.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"os"
77
"time"
88

9-
"errors"
10-
119
"github.com/docker/machine/libmachine/drivers"
1210
"github.com/docker/machine/libmachine/log"
1311
"github.com/docker/machine/libmachine/mcnflag"
@@ -94,9 +92,6 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
9492
}
9593

9694
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
97-
if drivers.EngineInstallURLFlagSet(flags) {
98-
return errors.New("--engine-install-url cannot be used with the hyperv driver, use --hyperv-boot2docker-url instead")
99-
}
10095
d.Boot2DockerURL = flags.String("hyperv-boot2docker-url")
10196
d.VSwitch = flags.String("hyperv-virtual-switch")
10297
d.DiskSize = flags.Int("hyperv-disk-size")

drivers/virtualbox/virtualbox.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,6 @@ func (d *Driver) GetURL() (string, error) {
228228
}
229229

230230
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
231-
if drivers.EngineInstallURLFlagSet(flags) {
232-
return errors.New("--engine-install-url cannot be used with the virtualbox driver, use --virtualbox-boot2docker-url instead")
233-
}
234231
d.CPU = flags.Int("virtualbox-cpu-count")
235232
d.Memory = flags.Int("virtualbox-memory")
236233
d.DiskSize = flags.Int("virtualbox-disk-size")

drivers/vmwarefusion/fusion_darwin.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ import (
1818
"text/template"
1919
"time"
2020

21-
"errors"
22-
2321
"github.com/docker/machine/libmachine/drivers"
2422
"github.com/docker/machine/libmachine/log"
2523
"github.com/docker/machine/libmachine/mcnflag"
@@ -145,9 +143,6 @@ func (d *Driver) DriverName() string {
145143
}
146144

147145
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
148-
if drivers.EngineInstallURLFlagSet(flags) {
149-
return errors.New("--engine-install-url cannot be used with the vmwarefusion driver, use --vmwarefusion-boot2docker-url instead")
150-
}
151146
d.Memory = flags.Int("vmwarefusion-memory-size")
152147
d.CPU = flags.Int("vmwarefusion-cpu-count")
153148
d.DiskSize = flags.Int("vmwarefusion-disk-size")

drivers/vmwarevsphere/vsphere.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,6 @@ func (d *Driver) DriverName() string {
183183
}
184184

185185
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
186-
if drivers.EngineInstallURLFlagSet(flags) {
187-
return errors.New("--engine-install-url cannot be used with the vmwarevsphere driver, use --vmwarevsphere-boot2docker-url instead")
188-
}
189186
d.SSHUser = "docker"
190187
d.SSHPort = 22
191188
d.CPU = flags.Int("vmwarevsphere-cpu-count")

libmachine/drivers/base.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ func (d *BaseDriver) SetSwarmConfigFromFlags(flags DriverOptions) {
8686
}
8787

8888
func EngineInstallURLFlagSet(flags DriverOptions) bool {
89-
engineInstallURLFlag := flags.String("engine-install-url")
90-
return engineInstallURLFlag != DefaultEngineInstallURL && engineInstallURLFlag != ""
89+
return EngineInstallURLSet(flags.String("engine-install-url"))
90+
}
91+
92+
func EngineInstallURLSet(url string) bool {
93+
return url != DefaultEngineInstallURL && url != ""
9194
}

libmachine/provision/rancheros.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ func (provisioner *RancherProvisioner) Package(name string, action pkgaction.Pac
9393
}
9494

9595
func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error {
96+
log.Debugf("Running RancherOS provisioner on %s", provisioner.Driver.GetMachineName())
97+
9698
provisioner.SwarmOptions = swarmOptions
9799
provisioner.AuthOptions = authOptions
98100
provisioner.EngineOptions = engineOptions
@@ -116,6 +118,11 @@ func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, aut
116118
}
117119
}
118120

121+
log.Debugf("Selecting docker engine: %s", engineOptions.InstallURL)
122+
if err := selectDocker(provisioner, engineOptions.InstallURL); err != nil {
123+
return err
124+
}
125+
119126
log.Debugf("Preparing certificates")
120127
provisioner.AuthOptions = setRemoteAuthOptions(provisioner)
121128

@@ -231,3 +238,12 @@ func (provisioner *RancherProvisioner) getLatestISOURL() (string, error) {
231238

232239
return "", fmt.Errorf("Failed to find current version")
233240
}
241+
242+
func selectDocker(p Provisioner, baseURL string) error {
243+
// TODO: detect if its a cloud-init, or a ros setting - and use that..
244+
if output, err := p.SSHCommand(fmt.Sprintf("wget -O- %s | sh -", baseURL)); err != nil {
245+
return fmt.Errorf("error selecting docker: (%s) %s", err, output)
246+
}
247+
248+
return nil
249+
}

0 commit comments

Comments
 (0)
X Tutup