Skip to content

Commit 711ef87

Browse files
committed
CAPD: only ignore necessary kubeadm preflight errors
Signed-off-by: Stefan Büringer [email protected]
1 parent 16b345f commit 711ef87

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

test/infrastructure/docker/internal/provisioning/cloudinit/runcmd.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package cloudinit
1818

1919
import (
20+
"fmt"
2021
"strings"
2122

2223
"github.com/pkg/errors"
@@ -53,21 +54,27 @@ func (a *runCmd) Commands() ([]provisioning.Cmd, error) {
5354
return cmds, nil
5455
}
5556

57+
// ignorePreflightErrors are preflight errors that fail in CAPD and thus we have to ignore them.
58+
const ignorePreflightErrors = "SystemVerification,Swap,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables"
59+
5660
func hackKubeadmIgnoreErrors(c provisioning.Cmd) provisioning.Cmd {
5761
// case kubeadm commands are defined as a string
5862
if c.Cmd == "/bin/sh" && len(c.Args) >= 2 {
5963
if c.Args[0] == "-c" {
60-
c.Args[1] = strings.Replace(c.Args[1], "kubeadm init", "kubeadm init --ignore-preflight-errors=all", 1)
61-
c.Args[1] = strings.Replace(c.Args[1], "kubeadm join", "kubeadm join --ignore-preflight-errors=all", 1)
64+
c.Args[1] = strings.Replace(c.Args[1], "kubeadm init", fmt.Sprintf("kubeadm init --ignore-preflight-errors=%s", ignorePreflightErrors), 1)
65+
c.Args[1] = strings.Replace(c.Args[1], "kubeadm join", fmt.Sprintf("kubeadm join --ignore-preflight-errors=%s", ignorePreflightErrors), 1)
6266
}
6367
}
6468

6569
// case kubeadm commands are defined as a list
6670
if c.Cmd == "kubeadm" && len(c.Args) >= 1 {
6771
if c.Args[0] == "init" || c.Args[0] == "join" {
68-
c.Args = append(c.Args, "") // make space
69-
copy(c.Args[2:], c.Args[1:]) // shift elements
70-
c.Args[1] = "--ignore-preflight-errors=all" // insert the additional arg
72+
// make space
73+
c.Args = append(c.Args, "")
74+
// shift elements
75+
copy(c.Args[2:], c.Args[1:])
76+
// insert the additional arg
77+
c.Args[1] = fmt.Sprintf("--ignore-preflight-errors=%s", ignorePreflightErrors)
7178
}
7279
}
7380

test/infrastructure/docker/internal/provisioning/cloudinit/runcmd_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func TestRunCmdRun(t *testing.T) {
7070
},
7171
},
7272
expectedCmds: []provisioning.Cmd{
73-
{Cmd: "/bin/sh", Args: []string{"-c", "kubeadm init --ignore-preflight-errors=all --config /run/kubeadm/kubeadm.yaml"}},
73+
{Cmd: "/bin/sh", Args: []string{"-c", "kubeadm init --ignore-preflight-errors=SystemVerification,Swap,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables --config /run/kubeadm/kubeadm.yaml"}},
7474
},
7575
},
7676
}
@@ -100,11 +100,11 @@ runcmd:
100100

101101
r.Cmds[0] = hackKubeadmIgnoreErrors(r.Cmds[0])
102102

103-
expected0 := provisioning.Cmd{Cmd: "/bin/sh", Args: []string{"-c", "kubeadm init --ignore-preflight-errors=all --config=/run/kubeadm/kubeadm.yaml"}}
103+
expected0 := provisioning.Cmd{Cmd: "/bin/sh", Args: []string{"-c", "kubeadm init --ignore-preflight-errors=SystemVerification,Swap,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables --config=/run/kubeadm/kubeadm.yaml"}}
104104
g.Expect(r.Cmds[0]).To(Equal(expected0))
105105

106106
r.Cmds[1] = hackKubeadmIgnoreErrors(r.Cmds[1])
107107

108-
expected1 := provisioning.Cmd{Cmd: "kubeadm", Args: []string{"join", "--ignore-preflight-errors=all", "--config=/run/kubeadm/kubeadm-controlplane-join-config.yaml"}}
108+
expected1 := provisioning.Cmd{Cmd: "kubeadm", Args: []string{"join", "--ignore-preflight-errors=SystemVerification,Swap,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables", "--config=/run/kubeadm/kubeadm-controlplane-join-config.yaml"}}
109109
g.Expect(r.Cmds[1]).To(Equal(expected1))
110110
}

0 commit comments

Comments
 (0)