Allow rancheros to select a different Docker engine version using --engine-install-url
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
This commit is contained in:
@@ -86,6 +86,9 @@ func (d *BaseDriver) SetSwarmConfigFromFlags(flags DriverOptions) {
|
||||
}
|
||||
|
||||
func EngineInstallURLFlagSet(flags DriverOptions) bool {
|
||||
engineInstallURLFlag := flags.String("engine-install-url")
|
||||
return engineInstallURLFlag != DefaultEngineInstallURL && engineInstallURLFlag != ""
|
||||
return EngineInstallURLSet(flags.String("engine-install-url"))
|
||||
}
|
||||
|
||||
func EngineInstallURLSet(url string) bool {
|
||||
return url != DefaultEngineInstallURL && url != ""
|
||||
}
|
||||
|
||||
@@ -93,6 +93,8 @@ func (provisioner *RancherProvisioner) Package(name string, action pkgaction.Pac
|
||||
}
|
||||
|
||||
func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, authOptions auth.Options, engineOptions engine.Options) error {
|
||||
log.Debugf("Running RancherOS provisioner on %s", provisioner.Driver.GetMachineName())
|
||||
|
||||
provisioner.SwarmOptions = swarmOptions
|
||||
provisioner.AuthOptions = authOptions
|
||||
provisioner.EngineOptions = engineOptions
|
||||
@@ -116,6 +118,11 @@ func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, aut
|
||||
}
|
||||
}
|
||||
|
||||
log.Debugf("Selecting docker engine: %s", engineOptions.InstallURL)
|
||||
if err := selectDocker(provisioner, engineOptions.InstallURL); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Debugf("Preparing certificates")
|
||||
provisioner.AuthOptions = setRemoteAuthOptions(provisioner)
|
||||
|
||||
@@ -231,3 +238,12 @@ func (provisioner *RancherProvisioner) getLatestISOURL() (string, error) {
|
||||
|
||||
return "", fmt.Errorf("Failed to find current version")
|
||||
}
|
||||
|
||||
func selectDocker(p Provisioner, baseURL string) error {
|
||||
// TODO: detect if its a cloud-init, or a ros setting - and use that..
|
||||
if output, err := p.SSHCommand(fmt.Sprintf("wget -O- %s | sh -", baseURL)); err != nil {
|
||||
return fmt.Errorf("error selecting docker: (%s) %s", err, output)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user