Skip to content

Commit 6fa2d76

Browse files
Merge pull request #110 from canonical/eaudetcobello/KU-1189
2 parents a1c6321 + 869ed51 commit 6fa2d76

10 files changed

+59
-127
lines changed

controllers/cloudinit/cloudinit_common_test.go

Lines changed: 44 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ func TestCloudConfigInput(t *testing.T) {
7878
g.Expect(err).NotTo(HaveOccurred())
7979

8080
if confinement == "classic" {
81-
g.Expect(c.RunCommands).To(ContainElement(fmt.Sprintf(`/capi-scripts/00-install-microk8s.sh "--channel 1.25/%s --classic"`, risk)))
81+
g.Expect(c.RunCommands).To(ContainElement(fmt.Sprintf(`/capi-scripts/00-install-microk8s.sh "--channel 1.25/%s --classic" false`, risk)))
8282
} else {
83-
g.Expect(c.RunCommands).To(ContainElement(fmt.Sprintf(`/capi-scripts/00-install-microk8s.sh "--channel 1.25-strict/%s"`, risk)))
83+
g.Expect(c.RunCommands).To(ContainElement(fmt.Sprintf(`/capi-scripts/00-install-microk8s.sh "--channel 1.25-strict/%s" false`, risk)))
8484
}
8585

8686
_, err = cloudinit.GenerateCloudConfig(c)
@@ -93,6 +93,48 @@ func TestCloudConfigInput(t *testing.T) {
9393
}
9494
})
9595

96+
t.Run("DisableDefaultCNI", func(t *testing.T) {
97+
for _, tc := range []struct {
98+
name string
99+
makeCloudConfig func() (*cloudinit.CloudConfig, error)
100+
}{
101+
{
102+
name: "ControlPlaneJoin",
103+
makeCloudConfig: func() (*cloudinit.CloudConfig, error) {
104+
return cloudinit.NewJoinControlPlane(&cloudinit.ControlPlaneJoinInput{
105+
KubernetesVersion: "v1.25.0",
106+
Confinement: "classic",
107+
Token: strings.Repeat("a", 32),
108+
TokenTTL: 100,
109+
DisableDefaultCNI: true,
110+
})
111+
},
112+
},
113+
{
114+
name: "ControlPlaneInit",
115+
makeCloudConfig: func() (*cloudinit.CloudConfig, error) {
116+
return cloudinit.NewInitControlPlane(&cloudinit.ControlPlaneInitInput{
117+
KubernetesVersion: "v1.25.0",
118+
Confinement: "classic",
119+
Token: strings.Repeat("a", 32),
120+
TokenTTL: 100,
121+
DisableDefaultCNI: true,
122+
})
123+
},
124+
},
125+
} {
126+
t.Run(tc.name, func(t *testing.T) {
127+
g := NewWithT(t)
128+
c, err := tc.makeCloudConfig()
129+
g.Expect(err).NotTo(HaveOccurred())
130+
131+
g.Expect(c.RunCommands).To(ContainElement(`/capi-scripts/00-install-microk8s.sh "--channel 1.25 --classic" true`))
132+
_, err = cloudinit.GenerateCloudConfig(c)
133+
g.Expect(err).NotTo(HaveOccurred())
134+
})
135+
}
136+
})
137+
96138
t.Run("ExtraWriteFiles", func(t *testing.T) {
97139
files := []v1beta1.CloudInitWriteFile{{
98140
Content: "contents",
@@ -397,80 +439,4 @@ func TestCloudConfigInput(t *testing.T) {
397439
})
398440
}
399441
})
400-
401-
t.Run("DisableDefaultCNI", func(t *testing.T) {
402-
for _, tc := range []struct {
403-
name string
404-
makeCloudConfig func() (*cloudinit.CloudConfig, error)
405-
}{
406-
{
407-
name: "ControlPlaneInit",
408-
makeCloudConfig: func() (*cloudinit.CloudConfig, error) {
409-
return cloudinit.NewInitControlPlane(&cloudinit.ControlPlaneInitInput{
410-
DisableDefaultCNI: true,
411-
KubernetesVersion: "v1.25.0",
412-
Token: strings.Repeat("a", 32),
413-
TokenTTL: 100,
414-
})
415-
},
416-
},
417-
{
418-
name: "ControlPlaneJoin",
419-
makeCloudConfig: func() (*cloudinit.CloudConfig, error) {
420-
return cloudinit.NewJoinControlPlane(&cloudinit.ControlPlaneJoinInput{
421-
DisableDefaultCNI: true,
422-
KubernetesVersion: "v1.25.0",
423-
Token: strings.Repeat("a", 32),
424-
TokenTTL: 100,
425-
})
426-
},
427-
},
428-
} {
429-
t.Run(tc.name, func(t *testing.T) {
430-
g := NewWithT(t)
431-
c, err := tc.makeCloudConfig()
432-
g.Expect(err).NotTo(HaveOccurred())
433-
434-
g.Expect(c.RunCommands).To(ContainElement(`/capi-scripts/10-disable-default-cni.sh`))
435-
})
436-
}
437-
})
438-
439-
t.Run("DefaultCNI", func(t *testing.T) {
440-
for _, tc := range []struct {
441-
name string
442-
makeCloudConfig func() (*cloudinit.CloudConfig, error)
443-
}{
444-
{
445-
name: "ControlPlaneInit",
446-
makeCloudConfig: func() (*cloudinit.CloudConfig, error) {
447-
return cloudinit.NewInitControlPlane(&cloudinit.ControlPlaneInitInput{
448-
DisableDefaultCNI: false,
449-
KubernetesVersion: "v1.25.0",
450-
Token: strings.Repeat("a", 32),
451-
TokenTTL: 100,
452-
})
453-
},
454-
},
455-
{
456-
name: "ControlPlaneJoin",
457-
makeCloudConfig: func() (*cloudinit.CloudConfig, error) {
458-
return cloudinit.NewJoinControlPlane(&cloudinit.ControlPlaneJoinInput{
459-
DisableDefaultCNI: false,
460-
KubernetesVersion: "v1.25.0",
461-
Token: strings.Repeat("a", 32),
462-
TokenTTL: 100,
463-
})
464-
},
465-
},
466-
} {
467-
t.Run(tc.name, func(t *testing.T) {
468-
g := NewWithT(t)
469-
c, err := tc.makeCloudConfig()
470-
g.Expect(err).NotTo(HaveOccurred())
471-
472-
g.Expect(c.RunCommands).NotTo(ContainElement(`/capi-scripts/10-disable-default-cni.sh`))
473-
})
474-
}
475-
})
476442
}

controllers/cloudinit/controlplane_init.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,17 +149,10 @@ func NewInitControlPlane(input *ControlPlaneInitInput) (*CloudConfig, error) {
149149
fmt.Sprintf("%s %q %q", scriptPath(snapstoreHTTPProxyScript), input.SnapstoreHTTPProxy, input.SnapstoreHTTPSProxy),
150150
fmt.Sprintf("%s %q %q %q", scriptPath(snapstoreProxyScript), input.SnapstoreProxyScheme, input.SnapstoreProxyDomain, input.SnapstoreProxyId),
151151
scriptPath(disableHostServicesScript),
152-
fmt.Sprintf("%s %q", scriptPath(installMicroK8sScript), installArgs),
152+
fmt.Sprintf("%s %q %v", scriptPath(installMicroK8sScript), installArgs, input.DisableDefaultCNI),
153153
fmt.Sprintf("%s %q %q %q", scriptPath(configureContainerdProxyScript), input.ContainerdHTTPProxy, input.ContainerdHTTPSProxy, input.ContainerdNoProxy),
154154
scriptPath(configureKubeletScript),
155155
scriptPath(waitAPIServerScript),
156-
)
157-
158-
if input.DisableDefaultCNI {
159-
cloudConfig.RunCommands = append(cloudConfig.RunCommands, scriptPath(disableDefaultCNIScript))
160-
}
161-
162-
cloudConfig.RunCommands = append(cloudConfig.RunCommands,
163156
"microk8s refresh-certs /var/tmp",
164157
fmt.Sprintf("%s %v", scriptPath(configureCalicoIPIPScript), input.IPinIP),
165158
fmt.Sprintf("%s %q", scriptPath(configureClusterAgentPortScript), input.ClusterAgentPort),

controllers/cloudinit/controlplane_init_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,10 @@ func TestControlPlaneInit(t *testing.T) {
4848
`/capi-scripts/00-configure-snapstore-http-proxy.sh "" ""`,
4949
`/capi-scripts/00-configure-snapstore-proxy.sh "http" "" ""`,
5050
`/capi-scripts/00-disable-host-services.sh`,
51-
`/capi-scripts/00-install-microk8s.sh "--channel 1.25 --classic"`,
51+
`/capi-scripts/00-install-microk8s.sh "--channel 1.25 --classic" true`,
5252
`/capi-scripts/10-configure-containerd-proxy.sh "" "" ""`,
5353
`/capi-scripts/10-configure-kubelet.sh`,
5454
`/capi-scripts/50-wait-apiserver.sh`,
55-
`/capi-scripts/10-disable-default-cni.sh`,
5655
`microk8s refresh-certs /var/tmp`,
5756
`/capi-scripts/10-configure-calico-ipip.sh true`,
5857
`/capi-scripts/10-configure-cluster-agent-port.sh "30000"`,

controllers/cloudinit/controlplane_join.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,10 @@ func NewJoinControlPlane(input *ControlPlaneJoinInput) (*CloudConfig, error) {
131131
fmt.Sprintf("%s %q %q", scriptPath(snapstoreHTTPProxyScript), input.SnapstoreHTTPProxy, input.SnapstoreHTTPSProxy),
132132
fmt.Sprintf("%s %q %q %q", scriptPath(snapstoreProxyScript), input.SnapstoreProxyScheme, input.SnapstoreProxyDomain, input.SnapstoreProxyId),
133133
scriptPath(disableHostServicesScript),
134-
fmt.Sprintf("%s %q", scriptPath(installMicroK8sScript), installArgs),
134+
fmt.Sprintf("%s %q %v", scriptPath(installMicroK8sScript), installArgs, input.DisableDefaultCNI),
135135
fmt.Sprintf("%s %q %q %q", scriptPath(configureContainerdProxyScript), input.ContainerdHTTPProxy, input.ContainerdHTTPSProxy, input.ContainerdNoProxy),
136136
scriptPath(configureKubeletScript),
137137
scriptPath(waitAPIServerScript),
138-
)
139-
140-
if input.DisableDefaultCNI {
141-
cloudConfig.RunCommands = append(cloudConfig.RunCommands, scriptPath(disableDefaultCNIScript))
142-
}
143-
144-
cloudConfig.RunCommands = append(cloudConfig.RunCommands,
145138
fmt.Sprintf("%s %v", scriptPath(configureCalicoIPIPScript), input.IPinIP),
146139
fmt.Sprintf("%s %q", scriptPath(configureClusterAgentPortScript), input.ClusterAgentPort),
147140
fmt.Sprintf("%s %q", scriptPath(configureDqlitePortScript), input.DqlitePort),

controllers/cloudinit/controlplane_join_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,10 @@ func TestControlPlaneJoin(t *testing.T) {
4646
`/capi-scripts/00-configure-snapstore-http-proxy.sh "" ""`,
4747
`/capi-scripts/00-configure-snapstore-proxy.sh "http" "" ""`,
4848
`/capi-scripts/00-disable-host-services.sh`,
49-
`/capi-scripts/00-install-microk8s.sh "--channel 1.25 --classic"`,
49+
`/capi-scripts/00-install-microk8s.sh "--channel 1.25 --classic" true`,
5050
`/capi-scripts/10-configure-containerd-proxy.sh "" "" ""`,
5151
`/capi-scripts/10-configure-kubelet.sh`,
5252
`/capi-scripts/50-wait-apiserver.sh`,
53-
`/capi-scripts/10-disable-default-cni.sh`,
5453
`/capi-scripts/10-configure-calico-ipip.sh true`,
5554
`/capi-scripts/10-configure-cluster-agent-port.sh "30000"`,
5655
`/capi-scripts/10-configure-dqlite-port.sh "2379"`,

controllers/cloudinit/embed.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,6 @@ const (
4343
// disableHostServicesScript disables services like containerd or kubelet from the host OS image.
4444
disableHostServicesScript script = "00-disable-host-services.sh"
4545

46-
// disableDefaultCNIScript disables the default CNI plugin.
47-
disableDefaultCNIScript script = "10-disable-default-cni.sh"
48-
4946
// installMicroK8sScript installs MicroK8s on the host.
5047
installMicroK8sScript script = "00-install-microk8s.sh"
5148

@@ -88,7 +85,6 @@ var allScripts = []script{
8885
snapstoreHTTPProxyScript,
8986
disableHostServicesScript,
9087
installMicroK8sScript,
91-
disableDefaultCNIScript,
9288
configureCertLB,
9389
configureAPIServerScript,
9490
configureCalicoIPIPScript,

controllers/cloudinit/scripts/00-install-microk8s.sh

100644100755
Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#!/bin/bash -xe
22

33
# Usage:
4-
# $0 $microk8s_snap_args
4+
# $0 $microk8s_snap_args $disable_default_cni
5+
#
6+
# Arguments:
7+
# $microk8s_snap_args Arguments to pass to snap install.
8+
# $disable_default_cni Boolean flag (true or false) to disable the default CNI.
59
#
610
# Assumptions:
711
# - snapd is installed
@@ -15,3 +19,7 @@ while ! snap install microk8s ${1}; do
1519
echo "Failed to install MicroK8s snap, will retry"
1620
sleep 5
1721
done
22+
23+
if [ "${2}" == "true" ]; then
24+
mv /var/snap/microk8s/current/args/cni-network/cni.yaml /var/snap/microk8s/current/args/cni-network/cni.yaml.old
25+
fi

controllers/cloudinit/scripts/10-disable-default-cni.sh

Lines changed: 0 additions & 22 deletions
This file was deleted.

controllers/cloudinit/worker_join.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func NewJoinWorker(input *WorkerInput) (*CloudConfig, error) {
118118
fmt.Sprintf("%s %q %q", scriptPath(snapstoreHTTPProxyScript), input.SnapstoreHTTPProxy, input.SnapstoreHTTPSProxy),
119119
fmt.Sprintf("%s %q %q %q", scriptPath(snapstoreProxyScript), input.SnapstoreProxyScheme, input.SnapstoreProxyDomain, input.SnapstoreProxyId),
120120
scriptPath(disableHostServicesScript),
121-
fmt.Sprintf("%s %q", scriptPath(installMicroK8sScript), installArgs),
121+
fmt.Sprintf("%s %q %v", scriptPath(installMicroK8sScript), installArgs, false),
122122
fmt.Sprintf("%s %q %q %q", scriptPath(configureContainerdProxyScript), input.ContainerdHTTPProxy, input.ContainerdHTTPSProxy, input.ContainerdNoProxy),
123123
scriptPath(configureKubeletScript),
124124
scriptPath(waitAPIServerScript),

controllers/cloudinit/worker_join_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func TestWorkerJoin(t *testing.T) {
4242
`/capi-scripts/00-configure-snapstore-http-proxy.sh "" ""`,
4343
`/capi-scripts/00-configure-snapstore-proxy.sh "http" "" ""`,
4444
`/capi-scripts/00-disable-host-services.sh`,
45-
`/capi-scripts/00-install-microk8s.sh "--channel 1.24 --classic"`,
45+
`/capi-scripts/00-install-microk8s.sh "--channel 1.24 --classic" false`,
4646
`/capi-scripts/10-configure-containerd-proxy.sh "" "" ""`,
4747
`/capi-scripts/10-configure-kubelet.sh`,
4848
`/capi-scripts/50-wait-apiserver.sh`,

0 commit comments

Comments
 (0)