Skip to content
Snippets Groups Projects
Commit b797ebd4 authored by Tomasz Maczukin's avatar Tomasz Maczukin
Browse files

Merge branch '98-fix-ubuntu-provisioning' into 'main'

Fix provisioning for Docker 23+ for some of the provisioners

Closes #98

See merge request https://gitlab.com/gitlab-org/ci-cd/docker-machine/-/merge_requests/102



Merged-by: default avatarTomasz Maczukin <tomasz@maczukin.pl>
Approved-by: default avatarAxel von Bertoldi <avonbertoldi@gitlab.com>
Reviewed-by: default avatarTomasz Maczukin <tomasz@maczukin.pl>
parents f4ff0649 86b19316
No related branches found
No related tags found
No related merge requests found
...@@ -133,7 +133,9 @@ func (provisioner *ArchProvisioner) Provision(swarmOptions swarm.Options, authOp ...@@ -133,7 +133,9 @@ func (provisioner *ArchProvisioner) Provision(swarmOptions swarm.Options, authOp
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner) if err := setupRemoteAuthOptions(provisioner); err != nil {
return err
}
log.Debug("Configuring auth") log.Debug("Configuring auth")
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
......
...@@ -128,6 +128,10 @@ func (provisioner *Boot2DockerProvisioner) GetAuthOptions() auth.Options { ...@@ -128,6 +128,10 @@ func (provisioner *Boot2DockerProvisioner) GetAuthOptions() auth.Options {
return provisioner.AuthOptions return provisioner.AuthOptions
} }
func (provisioner *Boot2DockerProvisioner) SetAuthOptions(opts auth.Options) {
provisioner.AuthOptions = opts
}
func (provisioner *Boot2DockerProvisioner) GetSwarmOptions() swarm.Options { func (provisioner *Boot2DockerProvisioner) GetSwarmOptions() swarm.Options {
return provisioner.SwarmOptions return provisioner.SwarmOptions
} }
...@@ -245,12 +249,10 @@ func (provisioner *Boot2DockerProvisioner) Provision(swarmOptions swarm.Options, ...@@ -245,12 +249,10 @@ func (provisioner *Boot2DockerProvisioner) Provision(swarmOptions swarm.Options,
return err return err
} }
if err = makeDockerOptionsDir(provisioner); err != nil { if err := setupRemoteAuthOptions(provisioner); err != nil {
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner)
if err = ConfigureAuth(provisioner); err != nil { if err = ConfigureAuth(provisioner); err != nil {
return err return err
} }
......
...@@ -118,13 +118,10 @@ func (provisioner *CoreOSProvisioner) Provision(swarmOptions swarm.Options, auth ...@@ -118,13 +118,10 @@ func (provisioner *CoreOSProvisioner) Provision(swarmOptions swarm.Options, auth
return err return err
} }
if err := makeDockerOptionsDir(provisioner); err != nil { if err := setupRemoteAuthOptions(provisioner); err != nil {
return err return err
} }
log.Debugf("Preparing certificates")
provisioner.AuthOptions = setRemoteAuthOptions(provisioner)
log.Debugf("Setting up certificates") log.Debugf("Setting up certificates")
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
return err return err
......
...@@ -120,7 +120,9 @@ func (provisioner *DebianProvisioner) Provision(swarmOptions swarm.Options, auth ...@@ -120,7 +120,9 @@ func (provisioner *DebianProvisioner) Provision(swarmOptions swarm.Options, auth
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner) if err := setupRemoteAuthOptions(provisioner); err != nil {
return err
}
log.Debug("configuring auth") log.Debug("configuring auth")
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
......
...@@ -43,6 +43,8 @@ func (fp *FakeProvisioner) GetAuthOptions() auth.Options { ...@@ -43,6 +43,8 @@ func (fp *FakeProvisioner) GetAuthOptions() auth.Options {
return auth.Options{} return auth.Options{}
} }
func (fp *FakeProvisioner) SetAuthOptions(opts auth.Options) {}
func (fp *FakeProvisioner) GetSwarmOptions() swarm.Options { func (fp *FakeProvisioner) GetSwarmOptions() swarm.Options {
return swarm.Options{} return swarm.Options{}
} }
......
...@@ -64,6 +64,10 @@ func (provisioner *GenericProvisioner) SetHostname(hostname string) error { ...@@ -64,6 +64,10 @@ func (provisioner *GenericProvisioner) SetHostname(hostname string) error {
return nil return nil
} }
func (provisioner *GenericProvisioner) SetAuthOptions(opts auth.Options) {
provisioner.AuthOptions = opts
}
func (provisioner *GenericProvisioner) GetDockerOptionsDir() string { func (provisioner *GenericProvisioner) GetDockerOptionsDir() string {
return provisioner.DockerOptionsDir return provisioner.DockerOptionsDir
} }
......
...@@ -89,8 +89,9 @@ func (p *GoogleCOSProvisioner) Provision(swarmOptions swarm.Options, authOptions ...@@ -89,8 +89,9 @@ func (p *GoogleCOSProvisioner) Provision(swarmOptions swarm.Options, authOptions
return err return err
} }
log.Debugf("Preparing remote auth options") if err := setupRemoteAuthOptions(p); err != nil {
p.AuthOptions = setRemoteAuthOptions(p) return err
}
log.Debug("Configuring auth") log.Debug("Configuring auth")
err = ConfigureAuth(p) err = ConfigureAuth(p)
......
...@@ -50,6 +50,9 @@ type Provisioner interface { ...@@ -50,6 +50,9 @@ type Provisioner interface {
// Return the auth options used to configure remote connection for the daemon. // Return the auth options used to configure remote connection for the daemon.
GetAuthOptions() auth.Options GetAuthOptions() auth.Options
// Set auth options used to configure remote connection for the daemon.
SetAuthOptions(opts auth.Options)
// Get the swarm options associated with this host. // Get the swarm options associated with this host.
GetSwarmOptions() swarm.Options GetSwarmOptions() swarm.Options
......
...@@ -127,8 +127,9 @@ func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, aut ...@@ -127,8 +127,9 @@ func (provisioner *RancherProvisioner) Provision(swarmOptions swarm.Options, aut
} }
} }
log.Debugf("Preparing certificates") if err := setupRemoteAuthOptions(provisioner); err != nil {
provisioner.AuthOptions = setRemoteAuthOptions(provisioner) return err
}
log.Debugf("Setting up certificates") log.Debugf("Setting up certificates")
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
......
...@@ -165,12 +165,10 @@ func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.Options, auth ...@@ -165,12 +165,10 @@ func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.Options, auth
return err return err
} }
if err := makeDockerOptionsDir(provisioner); err != nil { if err := setupRemoteAuthOptions(provisioner); err != nil {
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner)
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
return err return err
} }
......
...@@ -176,7 +176,9 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOp ...@@ -176,7 +176,9 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOp
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner) if err := setupRemoteAuthOptions(provisioner); err != nil {
return err
}
log.Debug("Configuring auth") log.Debug("Configuring auth")
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
......
...@@ -130,7 +130,9 @@ func (provisioner *UbuntuSystemdProvisioner) Provision(swarmOptions swarm.Option ...@@ -130,7 +130,9 @@ func (provisioner *UbuntuSystemdProvisioner) Provision(swarmOptions swarm.Option
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner) if err := setupRemoteAuthOptions(provisioner); err != nil {
return err
}
log.Debug("configuring auth") log.Debug("configuring auth")
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
......
...@@ -143,12 +143,10 @@ func (provisioner *UbuntuProvisioner) Provision(swarmOptions swarm.Options, auth ...@@ -143,12 +143,10 @@ func (provisioner *UbuntuProvisioner) Provision(swarmOptions swarm.Options, auth
return err return err
} }
if err := makeDockerOptionsDir(provisioner); err != nil { if err := setupRemoteAuthOptions(provisioner); err != nil {
return err return err
} }
provisioner.AuthOptions = setRemoteAuthOptions(provisioner)
if err := ConfigureAuth(provisioner); err != nil { if err := ConfigureAuth(provisioner); err != nil {
return err return err
} }
......
...@@ -34,7 +34,20 @@ func installDockerGeneric(p Provisioner, baseURL string) error { ...@@ -34,7 +34,20 @@ func installDockerGeneric(p Provisioner, baseURL string) error {
return nil return nil
} }
func setupRemoteAuthOptions(p Provisioner) error {
err := makeDockerOptionsDir(p)
if err != nil {
return fmt.Errorf("(re)creating /etc/docker directory: %v", err)
}
p.SetAuthOptions(setRemoteAuthOptions(p))
return nil
}
func makeDockerOptionsDir(p Provisioner) error { func makeDockerOptionsDir(p Provisioner) error {
log.Debugf("(Re)creating /etc/docker if needed")
dockerDir := p.GetDockerOptionsDir() dockerDir := p.GetDockerOptionsDir()
if _, err := p.SSHCommand(fmt.Sprintf("sudo mkdir -p %s", dockerDir)); err != nil { if _, err := p.SSHCommand(fmt.Sprintf("sudo mkdir -p %s", dockerDir)); err != nil {
return err return err
...@@ -44,6 +57,8 @@ func makeDockerOptionsDir(p Provisioner) error { ...@@ -44,6 +57,8 @@ func makeDockerOptionsDir(p Provisioner) error {
} }
func setRemoteAuthOptions(p Provisioner) auth.Options { func setRemoteAuthOptions(p Provisioner) auth.Options {
log.Debugf("Preparing certificates")
dockerDir := p.GetDockerOptionsDir() dockerDir := p.GetDockerOptionsDir()
authOptions := p.GetAuthOptions() authOptions := p.GetAuthOptions()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment