Skip to content

Commit 46b8e2d

Browse files
authored
Merge pull request #7136 from ktsakalozos/MK-703/microk8s-providers
📖 Adding MicroK8s providers
2 parents 2c2a1f1 + c60ad5f commit 46b8e2d

File tree

4 files changed

+69
-36
lines changed

4 files changed

+69
-36
lines changed

cmd/clusterctl/client/config/providers_client.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,17 @@ const (
6161

6262
// Bootstrap providers.
6363
const (
64-
KubeadmBootstrapProviderName = "kubeadm"
65-
TalosBootstrapProviderName = "talos"
64+
KubeadmBootstrapProviderName = "kubeadm"
65+
TalosBootstrapProviderName = "talos"
66+
MicroK8sBootstrapProviderName = "microk8s"
6667
)
6768

6869
// ControlPlane providers.
6970
const (
70-
KubeadmControlPlaneProviderName = "kubeadm"
71-
TalosControlPlaneProviderName = "talos"
72-
NestedControlPlaneProviderName = "nested"
71+
KubeadmControlPlaneProviderName = "kubeadm"
72+
TalosControlPlaneProviderName = "talos"
73+
MicroK8sControlPlaneProviderName = "microk8s"
74+
NestedControlPlaneProviderName = "nested"
7375
)
7476

7577
// Other.
@@ -242,6 +244,11 @@ func (p *providersClient) defaults() []Provider {
242244
url: "https://github.com/siderolabs/cluster-api-bootstrap-provider-talos/releases/latest/bootstrap-components.yaml",
243245
providerType: clusterctlv1.BootstrapProviderType,
244246
},
247+
&provider{
248+
name: MicroK8sBootstrapProviderName,
249+
url: "https://github.com/canonical/cluster-api-bootstrap-provider-microk8s/releases/latest/bootstrap-components.yaml",
250+
providerType: clusterctlv1.BootstrapProviderType,
251+
},
245252
// ControlPlane providers
246253
&provider{
247254
name: KubeadmControlPlaneProviderName,
@@ -253,6 +260,11 @@ func (p *providersClient) defaults() []Provider {
253260
url: "https://github.com/siderolabs/cluster-api-control-plane-provider-talos/releases/latest/control-plane-components.yaml",
254261
providerType: clusterctlv1.ControlPlaneProviderType,
255262
},
263+
&provider{
264+
name: MicroK8sControlPlaneProviderName,
265+
url: "https://github.com/canonical/cluster-api-control-plane-provider-microk8s/releases/latest/control-plane-components.yaml",
266+
providerType: clusterctlv1.ControlPlaneProviderType,
267+
},
256268
&provider{
257269
name: NestedControlPlaneProviderName,
258270
url: "https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/control-plane-components.yaml",

cmd/clusterctl/client/config_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
5757
wantProviders: []string{
5858
config.ClusterAPIProviderName,
5959
config.KubeadmBootstrapProviderName,
60+
config.MicroK8sBootstrapProviderName,
6061
config.TalosBootstrapProviderName,
6162
config.KubeadmControlPlaneProviderName,
63+
config.MicroK8sControlPlaneProviderName,
6264
config.NestedControlPlaneProviderName,
6365
config.TalosControlPlaneProviderName,
6466
config.AWSProviderName,
@@ -96,8 +98,10 @@ func Test_clusterctlClient_GetProvidersConfig(t *testing.T) {
9698
config.ClusterAPIProviderName,
9799
customProviderConfig.Name(),
98100
config.KubeadmBootstrapProviderName,
101+
config.MicroK8sBootstrapProviderName,
99102
config.TalosBootstrapProviderName,
100103
config.KubeadmControlPlaneProviderName,
104+
config.MicroK8sControlPlaneProviderName,
101105
config.NestedControlPlaneProviderName,
102106
config.TalosControlPlaneProviderName,
103107
config.AWSProviderName,

cmd/clusterctl/cmd/config_repositories_test.go

Lines changed: 41 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -99,37 +99,39 @@ providers:
9999
type: "CoreProvider"
100100
`
101101

102-
var expectedOutputText = `NAME TYPE URL FILE
103-
cluster-api CoreProvider https://github.com/myorg/myforkofclusterapi/releases/latest/ core_components.yaml
104-
another-provider BootstrapProvider ./ bootstrap-components.yaml
105-
kubeadm BootstrapProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ bootstrap-components.yaml
106-
talos BootstrapProvider https://github.com/siderolabs/cluster-api-bootstrap-provider-talos/releases/latest/ bootstrap-components.yaml
107-
kubeadm ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ control-plane-components.yaml
108-
nested ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ control-plane-components.yaml
109-
talos ControlPlaneProvider https://github.com/siderolabs/cluster-api-control-plane-provider-talos/releases/latest/ control-plane-components.yaml
110-
aws InfrastructureProvider my-aws-infrastructure-components.yaml
111-
azure InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-azure/releases/latest/ infrastructure-components.yaml
112-
byoh InfrastructureProvider https://github.com/vmware-tanzu/cluster-api-provider-bringyourownhost/releases/latest/ infrastructure-components.yaml
113-
cloudstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/releases/latest/ infrastructure-components.yaml
114-
digitalocean InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean/releases/latest/ infrastructure-components.yaml
115-
docker InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ infrastructure-components-development.yaml
116-
gcp InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-gcp/releases/latest/ infrastructure-components.yaml
117-
hetzner InfrastructureProvider https://github.com/syself/cluster-api-provider-hetzner/releases/latest/ infrastructure-components.yaml
118-
ibmcloud InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/releases/latest/ infrastructure-components.yaml
119-
kubevirt InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/releases/latest/ infrastructure-components.yaml
120-
maas InfrastructureProvider https://github.com/spectrocloud/cluster-api-provider-maas/releases/latest/ infrastructure-components.yaml
121-
metal3 InfrastructureProvider https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/ infrastructure-components.yaml
122-
my-infra-provider InfrastructureProvider /home/.cluster-api/overrides/infrastructure-docker/latest/ infrastructure-components.yaml
123-
nested InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ infrastructure-components.yaml
124-
nutanix InfrastructureProvider https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/ infrastructure-components.yaml
125-
oci InfrastructureProvider https://github.com/oracle/cluster-api-provider-oci/releases/latest/ infrastructure-components.yaml
126-
openstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/ infrastructure-components.yaml
127-
packet InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-packet/releases/latest/ infrastructure-components.yaml
128-
sidero InfrastructureProvider https://github.com/siderolabs/sidero/releases/latest/ infrastructure-components.yaml
129-
vcd InfrastructureProvider https://github.com/vmware/cluster-api-provider-cloud-director/releases/latest/ infrastructure-components.yaml
130-
vcluster InfrastructureProvider https://github.com/loft-sh/cluster-api-provider-vcluster/releases/latest/ infrastructure-components.yaml
131-
virtink InfrastructureProvider https://github.com/smartxworks/cluster-api-provider-virtink/releases/latest/ infrastructure-components.yaml
132-
vsphere InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/latest/ infrastructure-components.yaml
102+
var expectedOutputText = `NAME TYPE URL FILE
103+
cluster-api CoreProvider https://github.com/myorg/myforkofclusterapi/releases/latest/ core_components.yaml
104+
another-provider BootstrapProvider ./ bootstrap-components.yaml
105+
kubeadm BootstrapProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ bootstrap-components.yaml
106+
microk8s BootstrapProvider https://github.com/canonical/cluster-api-bootstrap-provider-microk8s/releases/latest/ bootstrap-components.yaml
107+
talos BootstrapProvider https://github.com/siderolabs/cluster-api-bootstrap-provider-talos/releases/latest/ bootstrap-components.yaml
108+
kubeadm ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ control-plane-components.yaml
109+
microk8s ControlPlaneProvider https://github.com/canonical/cluster-api-control-plane-provider-microk8s/releases/latest/ control-plane-components.yaml
110+
nested ControlPlaneProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ control-plane-components.yaml
111+
talos ControlPlaneProvider https://github.com/siderolabs/cluster-api-control-plane-provider-talos/releases/latest/ control-plane-components.yaml
112+
aws InfrastructureProvider my-aws-infrastructure-components.yaml
113+
azure InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-azure/releases/latest/ infrastructure-components.yaml
114+
byoh InfrastructureProvider https://github.com/vmware-tanzu/cluster-api-provider-bringyourownhost/releases/latest/ infrastructure-components.yaml
115+
cloudstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/releases/latest/ infrastructure-components.yaml
116+
digitalocean InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-digitalocean/releases/latest/ infrastructure-components.yaml
117+
docker InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api/releases/latest/ infrastructure-components-development.yaml
118+
gcp InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-gcp/releases/latest/ infrastructure-components.yaml
119+
hetzner InfrastructureProvider https://github.com/syself/cluster-api-provider-hetzner/releases/latest/ infrastructure-components.yaml
120+
ibmcloud InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/releases/latest/ infrastructure-components.yaml
121+
kubevirt InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-kubevirt/releases/latest/ infrastructure-components.yaml
122+
maas InfrastructureProvider https://github.com/spectrocloud/cluster-api-provider-maas/releases/latest/ infrastructure-components.yaml
123+
metal3 InfrastructureProvider https://github.com/metal3-io/cluster-api-provider-metal3/releases/latest/ infrastructure-components.yaml
124+
my-infra-provider InfrastructureProvider /home/.cluster-api/overrides/infrastructure-docker/latest/ infrastructure-components.yaml
125+
nested InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-nested/releases/latest/ infrastructure-components.yaml
126+
nutanix InfrastructureProvider https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/latest/ infrastructure-components.yaml
127+
oci InfrastructureProvider https://github.com/oracle/cluster-api-provider-oci/releases/latest/ infrastructure-components.yaml
128+
openstack InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-openstack/releases/latest/ infrastructure-components.yaml
129+
packet InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-packet/releases/latest/ infrastructure-components.yaml
130+
sidero InfrastructureProvider https://github.com/siderolabs/sidero/releases/latest/ infrastructure-components.yaml
131+
vcd InfrastructureProvider https://github.com/vmware/cluster-api-provider-cloud-director/releases/latest/ infrastructure-components.yaml
132+
vcluster InfrastructureProvider https://github.com/loft-sh/cluster-api-provider-vcluster/releases/latest/ infrastructure-components.yaml
133+
virtink InfrastructureProvider https://github.com/smartxworks/cluster-api-provider-virtink/releases/latest/ infrastructure-components.yaml
134+
vsphere InfrastructureProvider https://github.com/kubernetes-sigs/cluster-api-provider-vsphere/releases/latest/ infrastructure-components.yaml
133135
`
134136

135137
var expectedOutputYaml = `- File: core_components.yaml
@@ -144,6 +146,10 @@ var expectedOutputYaml = `- File: core_components.yaml
144146
Name: kubeadm
145147
ProviderType: BootstrapProvider
146148
URL: https://github.com/kubernetes-sigs/cluster-api/releases/latest/
149+
- File: bootstrap-components.yaml
150+
Name: microk8s
151+
ProviderType: BootstrapProvider
152+
URL: https://github.com/canonical/cluster-api-bootstrap-provider-microk8s/releases/latest/
147153
- File: bootstrap-components.yaml
148154
Name: talos
149155
ProviderType: BootstrapProvider
@@ -152,6 +158,10 @@ var expectedOutputYaml = `- File: core_components.yaml
152158
Name: kubeadm
153159
ProviderType: ControlPlaneProvider
154160
URL: https://github.com/kubernetes-sigs/cluster-api/releases/latest/
161+
- File: control-plane-components.yaml
162+
Name: microk8s
163+
ProviderType: ControlPlaneProvider
164+
URL: https://github.com/canonical/cluster-api-control-plane-provider-microk8s/releases/latest/
155165
- File: control-plane-components.yaml
156166
Name: nested
157167
ProviderType: ControlPlaneProvider

docs/book/src/reference/providers.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,15 @@ updated info about which API version they are supporting.
88
## Bootstrap
99
- [EKS](https://github.com/kubernetes-sigs/cluster-api-provider-aws/tree/main/bootstrap/eks)
1010
- [Kubeadm](https://github.com/kubernetes-sigs/cluster-api/tree/main/bootstrap/kubeadm)
11+
- [MicroK8s](https://github.com/canonical/cluster-api-bootstrap-provider-microk8s)
1112
- [Talos](https://github.com/siderolabs/cluster-api-bootstrap-provider-talos)
1213

14+
## Control Plane
15+
- [Kubeadm](https://github.com/kubernetes-sigs/cluster-api/tree/main/controlplane/kubeadm)
16+
- [MicroK8s](https://github.com/canonical/cluster-api-control-plane-provider-microk8s)
17+
- [Nested](https://github.com/kubernetes-sigs/cluster-api-provider-nested)
18+
- [Talos](https://github.com/siderolabs/cluster-api-control-plane-provider-talos)
19+
1320
## Infrastructure
1421
- [AWS](https://cluster-api-aws.sigs.k8s.io/)
1522
- [Azure](https://github.com/kubernetes-sigs/cluster-api-provider-azure)

0 commit comments

Comments
 (0)