@@ -6,102 +6,111 @@ load("ext://secret", "secret_from_dict")
66load ("ext://base64" , "decode_base64" )
77update_settings (k8s_upsert_timeout_secs = 120 )
88
9- helm_repo (
10- "capi-operator-repo" ,
11- "https://kubernetes-sigs.github.io/cluster-api-operator" ,
12- labels = ["helm-repos" ],
13- )
14- helm_repo ("jetstack-repo" , "https://charts.jetstack.io" , labels = ["helm-repos" ])
15- helm_resource (
16- "cert-manager" ,
17- "jetstack-repo/cert-manager" ,
18- namespace = "cert-manager" ,
19- resource_deps = ["jetstack-repo" ],
20- flags = [
21- "--create-namespace" ,
22- "--set=installCRDs=true" ,
23- "--set=global.leaderElection.namespace=cert-manager" ,
24- ],
25- labels = ["cert-manager" ],
26- )
27-
28- helm_resource (
29- "capi-operator" ,
30- "capi-operator-repo/cluster-api-operator" ,
31- namespace = "capi-operator-system" ,
32- flags = [
33- "--create-namespace" ,
34- "--wait" ,
35- "--version=0.14.0" ,
36- ],
37- resource_deps = ["capi-operator-repo" , "cert-manager" ],
38- labels = ["CAPI" ],
39- )
40- namespace_create ("capi-system" )
41- k8s_yaml ("./hack/manifests/core.yaml" )
42- k8s_resource (
43- new_name = "capi-controller-manager" ,
44- objects = ["capi-system:namespace" , "cluster-api:coreprovider" ],
45- resource_deps = ["capi-operator" ],
46- labels = ["CAPI" ],
47- )
48- if os .getenv ("INSTALL_KUBEADM_PROVIDER" , "true" ) == "true" :
49- namespace_create ("kubeadm-control-plane-system" )
50- namespace_create ("kubeadm-bootstrap-system" )
51- k8s_yaml ("./hack/manifests/kubeadm.yaml" )
52- k8s_resource (
53- new_name = "kubeadm-controller-manager" ,
54- objects = [
55- "kubeadm-bootstrap-system:namespace" ,
56- "kubeadm-control-plane-system:namespace" ,
57- "kubeadm:bootstrapprovider" ,
58- "kubeadm:controlplaneprovider" ,
9+ if os .getenv ("USE_CAPI_OPERATOR" , "false" ) == "true" :
10+ helm_repo (
11+ "capi-operator-repo" ,
12+ "https://kubernetes-sigs.github.io/cluster-api-operator" ,
13+ labels = ["helm-repos" ],
14+ )
15+ helm_repo ("jetstack-repo" , "https://charts.jetstack.io" , labels = ["helm-repos" ])
16+ helm_resource (
17+ "cert-manager" ,
18+ "jetstack-repo/cert-manager" ,
19+ namespace = "cert-manager" ,
20+ resource_deps = ["jetstack-repo" ],
21+ flags = [
22+ "--create-namespace" ,
23+ "--set=installCRDs=true" ,
24+ "--set=global.leaderElection.namespace=cert-manager" ,
5925 ],
60- resource_deps = ["capi-controller-manager" ],
61- labels = ["CAPI" ],
26+ labels = ["cert-manager" ],
6227 )
63-
64- if os .getenv ("INSTALL_HELM_PROVIDER" , "true" ) == "true" :
65- namespace_create ("caaph-system" )
66- k8s_yaml ("./hack/manifests/helm.yaml" )
67- k8s_resource (
68- new_name = "helm-controller-manager" ,
69- objects = ["caaph-system:namespace" , "helm:addonprovider" ],
70- resource_deps = ["capi-controller-manager" ],
28+ helm_resource (
29+ "capi-operator" ,
30+ "capi-operator-repo/cluster-api-operator" ,
31+ namespace = "capi-operator-system" ,
32+ flags = [
33+ "--create-namespace" ,
34+ "--wait" ,
35+ "--version=0.14.0" ,
36+ ],
37+ resource_deps = ["capi-operator-repo" , "cert-manager" ],
7138 labels = ["CAPI" ],
7239 )
73-
74- if os .getenv ("INSTALL_K3S_PROVIDER" , "false" ) == "true" :
75- namespace_create ("capi-k3s-control-plane-system" )
76- namespace_create ("capi-k3s-bootstrap-system" )
77- k8s_yaml ("./hack/manifests/k3s.yaml" )
40+ namespace_create ("capi-system" )
41+ k8s_yaml ("./hack/manifests/core.yaml" )
7842 k8s_resource (
79- new_name = "k3s-controller-manager" ,
80- objects = [
81- "capi-k3s-bootstrap-system:namespace" ,
82- "capi-k3s-control-plane-system:namespace" ,
83- "k3s:bootstrapprovider" ,
84- "k3s:controlplaneprovider" ,
85- ],
86- resource_deps = ["capi-controller-manager" ],
43+ new_name = "capi-controller-manager" ,
44+ objects = ["capi-system:namespace" , "cluster-api:coreprovider" ],
45+ resource_deps = ["capi-operator" ],
8746 labels = ["CAPI" ],
8847 )
8948
90- if os .getenv ("INSTALL_RKE2_PROVIDER" , "false" ) == "true" :
91- namespace_create ("rke2-control-plane-system" )
92- namespace_create ("rke2-bootstrap-system" )
93- k8s_yaml ("./hack/manifests/rke2.yaml" )
94- k8s_resource (
95- new_name = "capi-rke2-controller-manager" ,
96- objects = [
97- "rke2-bootstrap-system:namespace" ,
98- "rke2-control-plane-system:namespace" ,
99- "rke2:bootstrapprovider" ,
100- "rke2:controlplaneprovider" ,
101- ],
102- resource_deps = ["capi-controller-manager" ],
103- labels = ["CAPI" ],
49+ if os .getenv ("INSTALL_KUBEADM_PROVIDER" , "true" ) == "true" :
50+ namespace_create ("kubeadm-control-plane-system" )
51+ namespace_create ("kubeadm-bootstrap-system" )
52+ k8s_yaml ("./hack/manifests/kubeadm.yaml" )
53+ k8s_resource (
54+ new_name = "kubeadm-controller-manager" ,
55+ objects = [
56+ "kubeadm-bootstrap-system:namespace" ,
57+ "kubeadm-control-plane-system:namespace" ,
58+ "kubeadm:bootstrapprovider" ,
59+ "kubeadm:controlplaneprovider" ,
60+ ],
61+ resource_deps = ["capi-controller-manager" ],
62+ labels = ["CAPI" ],
63+ )
64+
65+ if os .getenv ("INSTALL_HELM_PROVIDER" , "true" ) == "true" :
66+ namespace_create ("caaph-system" )
67+ k8s_yaml ("./hack/manifests/helm.yaml" )
68+ k8s_resource (
69+ new_name = "helm-controller-manager" ,
70+ objects = ["caaph-system:namespace" , "helm:addonprovider" ],
71+ resource_deps = ["capi-controller-manager" ],
72+ labels = ["CAPI" ],
73+ )
74+
75+ if os .getenv ("INSTALL_K3S_PROVIDER" , "false" ) == "true" :
76+ namespace_create ("capi-k3s-control-plane-system" )
77+ namespace_create ("capi-k3s-bootstrap-system" )
78+ k8s_yaml ("./hack/manifests/k3s.yaml" )
79+ k8s_resource (
80+ new_name = "k3s-controller-manager" ,
81+ objects = [
82+ "capi-k3s-bootstrap-system:namespace" ,
83+ "capi-k3s-control-plane-system:namespace" ,
84+ "k3s:bootstrapprovider" ,
85+ "k3s:controlplaneprovider" ,
86+ ],
87+ resource_deps = ["capi-controller-manager" ],
88+ labels = ["CAPI" ],
89+ )
90+
91+ if os .getenv ("INSTALL_RKE2_PROVIDER" , "false" ) == "true" :
92+ namespace_create ("rke2-control-plane-system" )
93+ namespace_create ("rke2-bootstrap-system" )
94+ k8s_yaml ("./hack/manifests/rke2.yaml" )
95+ k8s_resource (
96+ new_name = "capi-rke2-controller-manager" ,
97+ objects = [
98+ "rke2-bootstrap-system:namespace" ,
99+ "rke2-control-plane-system:namespace" ,
100+ "rke2:bootstrapprovider" ,
101+ "rke2:controlplaneprovider" ,
102+ ],
103+ resource_deps = ["capi-controller-manager" ],
104+ labels = ["CAPI" ],
105+ )
106+ else :
107+ # install all providers in one shot because clusterctl init hangs on cert-manager if we try to do each conditionally
108+ local_resource (
109+ 'capi-controller-manager' ,
110+ cmd = "EXP_CLUSTER_RESOURCE_SET=true CLUSTER_TOPOLOGY=true EXP_KUBEADM_BOOTSTRAP_FORMAT_IGNITION=true clusterctl init --addon helm --core cluster-api:${capi_version} --bootstrap kubeadm:${capi_version},k3s:${k3s_version},rke2:${rke2_version} --control-plane kubeadm:${capi_version},k3s:${k3s_version},rke2:${rke2_version} --config ./hack/clusterctl.yaml" ,
111+ env = {'capi_version' : os .getenv ("CAPI_VERSION" , "v1.11.1" ), 'k3s_version' : os .getenv ("K3S_VERSION" , "v0.3.0" ), 'rke2_version' : os .getenv ("RKE2_VERSION" , "v0.20.1" )},
104112 )
113+
105114capl_resources = [
106115 "capl-system:namespace" ,
107116 "addresssets.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
0 commit comments