Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit ff19455

Browse files
hombitshin-
authored andcommitted
Support of new openSUSE releases
- Only name for all SUSE family is used - Prevent to rewrite `/usr/sbin/docker-runc` provided by modern `docker-runc` package with broken link. Signed-off-by: Konstantin Malanchev <hombit@gmail.com>
1 parent 821e8c7 commit ff19455

File tree

1 file changed

+15
-27
lines changed

1 file changed

+15
-27
lines changed

‎libmachine/provision/suse.go

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,14 @@ import (
1515
)
1616

1717
func init() {
18-
Register("openSUSE", &RegisteredProvisioner{
19-
New: NewOpenSUSEProvisioner,
18+
Register("SUSE", &RegisteredProvisioner{
19+
New: NewSUSEProvisioner,
2020
})
21-
Register("SUSE Linux Enterprise Desktop", &RegisteredProvisioner{
22-
New: NewSLEDProvisioner,
23-
})
24-
Register("SUSE Linux Enterprise Server", &RegisteredProvisioner{
25-
New: NewSLESProvisioner,
26-
})
27-
}
28-
29-
func NewSLEDProvisioner(d drivers.Driver) Provisioner {
30-
return &SUSEProvisioner{
31-
NewSystemdProvisioner("sled", d),
32-
}
3321
}
3422

35-
func NewSLESProvisioner(d drivers.Driver) Provisioner {
23+
func NewSUSEProvisioner(d drivers.Driver) Provisioner {
3624
return &SUSEProvisioner{
37-
NewSystemdProvisioner("sles", d),
38-
}
39-
}
40-
41-
func NewOpenSUSEProvisioner(d drivers.Driver) Provisioner {
42-
return &SUSEProvisioner{
43-
NewSystemdProvisioner("openSUSE", d),
25+
NewSystemdProvisioner("SUSE", d),
4426
}
4527
}
4628

@@ -49,11 +31,17 @@ type SUSEProvisioner struct {
4931
}
5032

5133
func (provisioner *SUSEProvisioner) CompatibleWithHost() bool {
52-
return strings.ToLower(provisioner.OsReleaseInfo.ID) == strings.ToLower(provisioner.OsReleaseID)
34+
ids := strings.Split(provisioner.OsReleaseInfo.IDLike, " ")
35+
for _, id := range ids {
36+
if id == "suse" {
37+
return true
38+
}
39+
}
40+
return false
5341
}
5442

5543
func (provisioner *SUSEProvisioner) String() string {
56-
return "openSUSE"
44+
return "SUSE"
5745
}
5846

5947
func (provisioner *SUSEProvisioner) Package(name string, action pkgaction.PackageAction) error {
@@ -135,7 +123,7 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOp
135123
return err
136124
}
137125

138-
if strings.ToLower(provisioner.OsReleaseInfo.ID) != "opensuse" {
126+
if !strings.HasPrefix(strings.ToLower(provisioner.OsReleaseInfo.ID), "opensuse") {
139127
// This is a SLE machine, enable the containers module to have access
140128
// to the docker packages
141129
if _, err := provisioner.SSHCommand("sudo -E SUSEConnect -p sle-module-containers/12/$(uname -m) -r ''"); err != nil {
@@ -157,10 +145,10 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOp
157145
return err
158146
}
159147

160-
// create symlinks for containerd, containerd-shim and runc.
148+
// create symlinks for containerd, containerd-shim and optional runc.
161149
// We have to do that because machine overrides the openSUSE systemd
162150
// unit of docker
163-
if _, err := provisioner.SSHCommand("sudo -E ln -sf /usr/sbin/runc /usr/sbin/docker-runc"); err != nil {
151+
if _, err := provisioner.SSHCommand("yes no | sudo -E ln -si /usr/sbin/runc /usr/sbin/docker-runc"); err != nil {
164152
return err
165153
}
166154
if _, err := provisioner.SSHCommand("sudo -E ln -sf /usr/sbin/containerd /usr/sbin/docker-containerd"); err != nil {

0 commit comments

Comments
 (0)