Skip to content

Commit d93f776

Browse files
committed
test(e2e): Fix up secret ownership checks
This commit copies the upstream check by allowing `KubeadmControlPlane` and `KubeadmConfig` owners, but adds `Cluster` as well as the secrets that CAREN generates are owned by the relevant `Cluster` to ensure they are cleaned up as part of Kubernetes resource garbage collection following deletion of the `Cluster`.
1 parent 73b1eb7 commit d93f776

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

test/e2e/ownerreference_helpers.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import (
1111
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1212
"k8s.io/utils/ptr"
1313
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
14+
bootstrapv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1"
15+
controlplanev1 "sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1"
1416
addonsv1 "sigs.k8s.io/cluster-api/exp/addons/api/v1beta1"
1517
"sigs.k8s.io/cluster-api/test/framework"
1618

@@ -25,6 +27,8 @@ const (
2527
machineKind = "Machine"
2628
clusterResourceSetKind = "ClusterResourceSet"
2729
clusterResourceSetBindingKind = "ClusterResourceSetBinding"
30+
kubeadmControlPlaneKind = "KubeadmControlPlane"
31+
kubeadmConfigKind = "KubeadmConfig"
2832

2933
awsMachineKind = "AWSMachine"
3034
awsMachineTemplateKind = "AWSMachineTemplate"
@@ -74,6 +78,18 @@ var (
7478
APIVersion: caaphv1.GroupVersion.String(),
7579
Controller: ptr.To(true),
7680
}
81+
kubeadmControlPlaneGroupVersion = controlplanev1.GroupVersion.String()
82+
kubeadmControlPlaneController = metav1.OwnerReference{
83+
Kind: kubeadmControlPlaneKind,
84+
APIVersion: kubeadmControlPlaneGroupVersion,
85+
Controller: ptr.To(true),
86+
}
87+
kubeadmConfigGroupVersion = bootstrapv1.GroupVersion.String()
88+
kubeadmConfigController = metav1.OwnerReference{
89+
Kind: kubeadmConfigKind,
90+
APIVersion: kubeadmConfigGroupVersion,
91+
Controller: ptr.To(true),
92+
}
7793

7894
// AddonReferenceAssertions maps addontypes to functions which return an error if the passed OwnerReferences
7995
// aren't as expected.
@@ -167,9 +183,15 @@ var (
167183
// https://github.com/kubernetes-sigs/cluster-api/tree/main/docs/book/src/reference/owner_references.md.
168184
KubernetesReferenceAssertions = map[string]func([]metav1.OwnerReference) error{
169185
secretKind: func(owners []metav1.OwnerReference) error {
170-
// TODO:deepakm-ntnx Currently pc-creds, pc-creds-for-csi, dockerhub-credentials,
171-
// registry-creds, and encryption config secrets have unexpected owners which needs more investigation.
172-
return nil
186+
// Secrets for cluster certificates must be owned and controlled by the KubeadmControlPlane.
187+
// The bootstrap secret should be owned and controlled by a KubeadmControlPlane.
188+
// Other resources can be owned by the Cluster to ensure correct GC.
189+
return framework.HasOneOfExactOwners(
190+
owners,
191+
[]metav1.OwnerReference{kubeadmControlPlaneController},
192+
[]metav1.OwnerReference{kubeadmConfigController},
193+
[]metav1.OwnerReference{clusterOwner},
194+
)
173195
},
174196
configMapKind: func(owners []metav1.OwnerReference) error {
175197
// The only configMaps considered here are those owned by a ClusterResourceSet.

0 commit comments

Comments
 (0)