Skip to content

Commit c8c68d4

Browse files
[breaking][deps] Upgrade to CAPI v1.11 (#861)
* Update everything to work with CAPI v1.11 * bump other k8s deps * lint * upgrade providers to "latest" version * yet another breaking change: Reconcile no longer exists for ClusterResourceSet strategies, only ApplyOnce * default to non-capi-operator installation for Tilt, specify 1.11.X for clusterctl version needed, bump contract in metadata necessary to use CAPI v1.11.X, bump clusterctl to 1.11 to use CAPI 1.11.X / v1beta2 resources * specify clusterctl config for Tilt without capi-operator * looks like we have to install all providers in one shot with clusterctl for Tilt to prevent a hang on cert-manager * fix event for lobjkey reconciler to have a proper event type * the namespaces for Kubeadm CAPI changed * see https://cluster-api.sigs.k8s.io/user/troubleshooting\#clusterctl-failing-to-start-providers-due-to-outdated-image-overrides * fix env var * this shouldn't be a dependency, especially if not using capi-operator
1 parent 089150a commit c8c68d4

File tree

66 files changed

+402
-311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+402
-311
lines changed

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,6 @@ TILT ?= $(LOCALBIN)/tilt
353353
KIND ?= $(LOCALBIN)/kind
354354
CHAINSAW ?= $(LOCALBIN)/chainsaw
355355
ENVTEST ?= $(CACHE_BIN)/setup-envtest
356-
HUSKY ?= $(LOCALBIN)/husky
357356
NILAWAY ?= $(LOCALBIN)/nilaway
358357
GOVULNC ?= $(LOCALBIN)/govulncheck
359358
MOCKGEN ?= $(LOCALBIN)/mockgen
@@ -365,7 +364,7 @@ S5CMD ?= $(CACHE_BIN)/s5cmd
365364
## Tool Versions
366365
KUSTOMIZE_VERSION ?= v5.4.3
367366
CTLPTL_VERSION ?= v0.8.29
368-
CLUSTERCTL_VERSION ?= v1.7.2
367+
CLUSTERCTL_VERSION ?= v1.11.1
369368
CRD_REF_DOCS_VERSION ?= v0.1.0
370369
KUBECTL_VERSION ?= v1.28.0
371370
KUBEBUILDER_VERSION ?= v3.15.1

Tiltfile

Lines changed: 96 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -6,102 +6,111 @@ load("ext://secret", "secret_from_dict")
66
load("ext://base64", "decode_base64")
77
update_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+
105114
capl_resources = [
106115
"capl-system:namespace",
107116
"addresssets.infrastructure.cluster.x-k8s.io:customresourcedefinition",

api/v1alpha2/linodecluster_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package v1alpha2
1919
import (
2020
corev1 "k8s.io/api/core/v1"
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
22+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
2323
)
2424

2525
const (

api/v1alpha2/linodemachine_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
corev1 "k8s.io/api/core/v1"
2222
"k8s.io/apimachinery/pkg/api/resource"
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
24+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
2525
)
2626

2727
const (

api/v1alpha2/zz_generated.deepcopy.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cloud/scope/cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"errors"
2222
"fmt"
2323

24-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
24+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
2525
"sigs.k8s.io/cluster-api/util/patch"
2626
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
2727

cloud/scope/cluster_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
"k8s.io/apimachinery/pkg/runtime"
2929
"k8s.io/apimachinery/pkg/types"
30-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
30+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
3131
"sigs.k8s.io/controller-runtime/pkg/client"
3232

3333
infrav1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"

cloud/scope/firewall.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
"fmt"
2020

2121
"k8s.io/client-go/util/retry"
22-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
22+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
2323
"sigs.k8s.io/cluster-api/util/patch"
2424
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
2525

cloud/scope/machine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
corev1 "k8s.io/api/core/v1"
99
"k8s.io/apimachinery/pkg/types"
10-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
10+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
1111
"sigs.k8s.io/cluster-api/util/patch"
1212
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
1313

cloud/scope/machine_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"k8s.io/apimachinery/pkg/runtime/schema"
1717
"k8s.io/apimachinery/pkg/types"
1818
"k8s.io/utils/ptr"
19-
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
19+
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
2020
"sigs.k8s.io/controller-runtime/pkg/client"
2121

2222
infrav1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"

0 commit comments

Comments
 (0)