diff --git a/exp/README.md b/exp/README.md index 333fd2165..7ebdf95c3 100644 --- a/exp/README.md +++ b/exp/README.md @@ -42,12 +42,9 @@ export WORKER_MACHINE_COUNT=1 export CLUSTER_NAME=rke2 export KUBERNETES_VERSION=v1.30.0 export RKE2_VERSION=v1.31.0+rke2r1 +export RKE2_CNI=calico -# Prevent replacing lb-config variables by envsubst -export address='$address' -export server='$server' - -envsubst < test/e2e/data/cluster-templates/docker-rke2.yaml | kubectl apply -f - +envsubst '${CLUSTER_NAME} ${WORKER_MACHINE_COUNT} ${RKE2_VERSION} ${CONTROL_PLANE_MACHINE_COUNT} ${KUBERNETES_VERSION} ${RKE2_CNI}' < test/e2e/data/cluster-templates/docker-rke2.yaml | kubectl apply -f - ``` ## Performing a manual snapshot diff --git a/exp/etcdrestore/controllers/etcdmachinesnapshot_controller.go b/exp/etcdrestore/controllers/etcdmachinesnapshot_controller.go index e18693fef..95fedb6d7 100644 --- a/exp/etcdrestore/controllers/etcdmachinesnapshot_controller.go +++ b/exp/etcdrestore/controllers/etcdmachinesnapshot_controller.go @@ -1,5 +1,5 @@ /* -Copyright © 2023 - 2024 SUSE LLC +Copyright © 2023 - 2025 SUSE LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" kerrors "k8s.io/apimachinery/pkg/util/errors" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" - "sigs.k8s.io/cluster-api/controllers/remote" + "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/util/collections" "sigs.k8s.io/cluster-api/util/patch" ctrl "sigs.k8s.io/controller-runtime" @@ -49,7 +49,7 @@ type ETCDMachineSnapshotReconciler struct { WatchFilterValue string controller controller.Controller - Tracker *remote.ClusterCacheTracker + Tracker clustercache.ClusterCache Scheme *runtime.Scheme } diff --git a/exp/etcdrestore/controllers/etcdsnapshotsync_controller.go b/exp/etcdrestore/controllers/etcdsnapshotsync_controller.go index 62d61903f..c86bc6aa3 100644 --- a/exp/etcdrestore/controllers/etcdsnapshotsync_controller.go +++ b/exp/etcdrestore/controllers/etcdsnapshotsync_controller.go @@ -1,5 +1,5 @@ /* -Copyright © 2023 - 2024 SUSE LLC +Copyright © 2023 - 2025 SUSE LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" - "sigs.k8s.io/cluster-api/controllers/remote" + "sigs.k8s.io/cluster-api/controllers/clustercache" capiutil "sigs.k8s.io/cluster-api/util" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" @@ -46,7 +46,7 @@ type EtcdSnapshotSyncReconciler struct { WatchFilterValue string controller controller.Controller - Tracker *remote.ClusterCacheTracker + Tracker clustercache.ClusterCache } func (r *EtcdSnapshotSyncReconciler) SetupWithManager(_ context.Context, mgr ctrl.Manager, _ controller.Options) error { @@ -131,13 +131,12 @@ func (r *EtcdSnapshotSyncReconciler) watchEtcdSnapshotFiles(ctx context.Context, log.V(5).Info("Setting up watch on ETCDSnapshotFile") - return r.Tracker.Watch(ctx, remote.WatchInput{ + return r.Tracker.Watch(ctx, capiutil.ObjectKey(cluster), clustercache.NewWatcher(clustercache.WatcherOptions{ Name: "ETCDSnapshotFiles-watcher", - Cluster: capiutil.ObjectKey(cluster), Watcher: r.controller, Kind: &k3sv1.ETCDSnapshotFile{}, EventHandler: handler.EnqueueRequestsFromMapFunc(r.etcdSnapshotFile(ctx, cluster)), - }) + })) } func (r *EtcdSnapshotSyncReconciler) etcdSnapshotFile(ctx context.Context, cluster *clusterv1.Cluster) handler.MapFunc { diff --git a/exp/etcdrestore/main.go b/exp/etcdrestore/main.go index b9d31543c..a898f1945 100644 --- a/exp/etcdrestore/main.go +++ b/exp/etcdrestore/main.go @@ -1,5 +1,5 @@ /* -Copyright © 2023 - 2024 SUSE LLC +Copyright © 2023 - 2025 SUSE LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -40,6 +40,7 @@ import ( "k8s.io/klog/v2" "k8s.io/klog/v2/klogr" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" + "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/cache" @@ -208,16 +209,14 @@ func setupReconcilers(ctx context.Context, mgr ctrl.Manager) { os.Exit(1) } - // Set up a ClusterCacheTracker and ClusterCacheReconciler to provide to controllers + // Set up a ClusterCacheTracker reconciler to provide to controllers // requiring a connection to a remote cluster - tracker, err := remote.NewClusterCacheTracker( - mgr, - remote.ClusterCacheTrackerOptions{ - SecretCachingClient: secretCachingClient, - ControllerName: "etcd-restore-controller", - Log: &ctrl.Log, + tracker, err := clustercache.SetupWithManager(ctx, mgr, clustercache.Options{ + SecretClient: secretCachingClient, + Client: clustercache.ClientOptions{ + UserAgent: remote.DefaultClusterAPIUserAgent("etcd-restore-controller"), }, - ) + }, controller.Options{}) if err != nil { setupLog.Error(err, "unable to create cluster cache tracker") os.Exit(1) diff --git a/test/e2e/const.go b/test/e2e/const.go index 3b8bb110a..384970c78 100644 --- a/test/e2e/const.go +++ b/test/e2e/const.go @@ -96,6 +96,9 @@ var ( //go:embed data/cluster-templates/vsphere-rke2.yaml CAPIvSphereRKE2 []byte + //go:embed data/cni/kindnet.yaml + CAPIKindnet []byte + //go:embed data/cluster-api-addon-provider-fleet/host-network-patch.yaml AddonProviderFleetHostNetworkPatch []byte diff --git a/test/e2e/data/cluster-templates/docker-kubeadm.yaml b/test/e2e/data/cluster-templates/docker-kubeadm.yaml index 11e4d733a..30fcb7232 100644 --- a/test/e2e/data/cluster-templates/docker-kubeadm.yaml +++ b/test/e2e/data/cluster-templates/docker-kubeadm.yaml @@ -145,133 +145,3 @@ spec: kind: DockerMachineTemplate name: ${CLUSTER_NAME}-md-0 version: ${KUBERNETES_VERSION} ---- -kind: Bundle -apiVersion: fleet.cattle.io/v1alpha1 -metadata: - name: kindnet-cni-${CLUSTER_NAME} -spec: - resources: - # List of all resources that will be deployed - - content: |- - # kindnetd networking manifest - --- - kind: ClusterRole - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: kindnet - rules: - - apiGroups: - - "" - resources: - - nodes - verbs: - - list - - watch - - patch - - apiGroups: - - "" - resources: - - configmaps - verbs: - - get - --- - kind: ClusterRoleBinding - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: kindnet - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: kindnet - subjects: - - kind: ServiceAccount - name: kindnet - namespace: kube-system - --- - apiVersion: v1 - kind: ServiceAccount - metadata: - name: kindnet - namespace: kube-system - --- - apiVersion: apps/v1 - kind: DaemonSet - metadata: - name: kindnet - namespace: kube-system - labels: - tier: node - app: kindnet - k8s-app: kindnet - spec: - selector: - matchLabels: - app: kindnet - template: - metadata: - labels: - tier: node - app: kindnet - k8s-app: kindnet - spec: - hostNetwork: true - tolerations: - - operator: Exists - effect: NoSchedule - serviceAccountName: kindnet - containers: - - name: kindnet-cni - image: kindest/kindnetd:v20230511-dc714da8 - env: - - name: HOST_IP - valueFrom: - fieldRef: - fieldPath: status.hostIP - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - - name: POD_SUBNET - value: '10.1.0.0/16' - volumeMounts: - - name: cni-cfg - mountPath: /etc/cni/net.d - - name: xtables-lock - mountPath: /run/xtables.lock - readOnly: false - - name: lib-modules - mountPath: /lib/modules - readOnly: true - resources: - requests: - cpu: "100m" - memory: "50Mi" - limits: - cpu: "100m" - memory: "50Mi" - securityContext: - privileged: false - capabilities: - add: ["NET_RAW", "NET_ADMIN"] - volumes: - - name: cni-bin - hostPath: - path: /opt/cni/bin - type: DirectoryOrCreate - - name: cni-cfg - hostPath: - path: /etc/cni/net.d - type: DirectoryOrCreate - - name: xtables-lock - hostPath: - path: /run/xtables.lock - type: FileOrCreate - - name: lib-modules - hostPath: - path: /lib/modules - name: kindnet.yaml - targets: - - clusterSelector: - matchLabels: - cni: ${CLUSTER_NAME}-crs-0 \ No newline at end of file diff --git a/test/e2e/data/cluster-templates/docker-rke2.yaml b/test/e2e/data/cluster-templates/docker-rke2.yaml index 66106fac1..44847bb18 100644 --- a/test/e2e/data/cluster-templates/docker-rke2.yaml +++ b/test/e2e/data/cluster-templates/docker-rke2.yaml @@ -48,13 +48,18 @@ metadata: spec: replicas: ${CONTROL_PLANE_MACHINE_COUNT} version: ${RKE2_VERSION} - registrationMethod: internal-first rolloutStrategy: rollingUpdate: maxSurge: 1 type: RollingUpdate serverConfig: + cni: ${RKE2_CNI} + kubeAPIServer: + extraArgs: + - --anonymous-auth=true disableComponents: + pluginComponents: + - rke2-ingress-nginx kubernetesComponents: - cloudController etcd: @@ -137,10 +142,12 @@ data: default-server init-addr none frontend stats + mode http bind *:8404 stats enable - stats uri / - stats refresh 10s + stats uri /stats + stats refresh 1s + stats admin if TRUE frontend control-plane bind *:{{ .FrontendControlPlanePort }} @@ -151,10 +158,9 @@ data: backend kube-apiservers option httpchk GET /healthz - http-check expect status 401 - # TODO: we should be verifying (!) - {{range $server, $address := .BackendServers}} - server {{ $server }} {{ JoinHostPort $address $.BackendControlPlanePort }} check check-ssl verify none resolvers docker resolve-prefer {{ if $.IPv6 -}} ipv6 {{- else -}} ipv4 {{- end }} + + {{range $server, $backend := .BackendServers }} + server {{ $server }} {{ JoinHostPort $backend.Address $.BackendControlPlanePort }} check check-ssl verify none resolvers docker resolve-prefer {{ if $.IPv6 -}} ipv6 {{- else -}} ipv4 {{- end }} {{- end}} frontend rke2-join @@ -167,8 +173,8 @@ data: backend rke2-servers option httpchk GET /v1-rke2/readyz http-check expect status 403 - {{range $server, $address := .BackendServers}} - server {{ $server }} {{ $address }}:9345 check check-ssl verify none + {{range $server, $backend := .BackendServers }} + server {{ $server }} {{ $backend.Address }}:9345 check check-ssl verify none {{- end}} kind: ConfigMap metadata: diff --git a/test/e2e/data/cni/kindnet.yaml b/test/e2e/data/cni/kindnet.yaml new file mode 100644 index 000000000..7642155c9 --- /dev/null +++ b/test/e2e/data/cni/kindnet.yaml @@ -0,0 +1,130 @@ +--- +kind: Bundle +apiVersion: fleet.cattle.io/v1alpha1 +metadata: + name: kindnet-cni-${CLUSTER_NAME} +spec: + resources: + # List of all resources that will be deployed + - content: |- + # kindnetd networking manifest + --- + kind: ClusterRole + apiVersion: rbac.authorization.k8s.io/v1 + metadata: + name: kindnet + rules: + - apiGroups: + - "" + resources: + - nodes + verbs: + - list + - watch + - patch + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + --- + kind: ClusterRoleBinding + apiVersion: rbac.authorization.k8s.io/v1 + metadata: + name: kindnet + roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kindnet + subjects: + - kind: ServiceAccount + name: kindnet + namespace: kube-system + --- + apiVersion: v1 + kind: ServiceAccount + metadata: + name: kindnet + namespace: kube-system + --- + apiVersion: apps/v1 + kind: DaemonSet + metadata: + name: kindnet + namespace: kube-system + labels: + tier: node + app: kindnet + k8s-app: kindnet + spec: + selector: + matchLabels: + app: kindnet + template: + metadata: + labels: + tier: node + app: kindnet + k8s-app: kindnet + spec: + hostNetwork: true + tolerations: + - operator: Exists + effect: NoSchedule + serviceAccountName: kindnet + containers: + - name: kindnet-cni + image: kindest/kindnetd:v20230511-dc714da8 + env: + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: POD_SUBNET + value: '10.1.0.0/16' + volumeMounts: + - name: cni-cfg + mountPath: /etc/cni/net.d + - name: xtables-lock + mountPath: /run/xtables.lock + readOnly: false + - name: lib-modules + mountPath: /lib/modules + readOnly: true + resources: + requests: + cpu: "100m" + memory: "50Mi" + limits: + cpu: "100m" + memory: "50Mi" + securityContext: + privileged: false + capabilities: + add: ["NET_RAW", "NET_ADMIN"] + volumes: + - name: cni-bin + hostPath: + path: /opt/cni/bin + type: DirectoryOrCreate + - name: cni-cfg + hostPath: + path: /etc/cni/net.d + type: DirectoryOrCreate + - name: xtables-lock + hostPath: + path: /run/xtables.lock + type: FileOrCreate + - name: lib-modules + hostPath: + path: /lib/modules + name: kindnet.yaml + targets: + - clusterSelector: + matchLabels: + cni: ${CLUSTER_NAME}-crs-0 \ No newline at end of file diff --git a/test/e2e/specs/import_gitops.go b/test/e2e/specs/import_gitops.go index e279d5ceb..a463de3ca 100644 --- a/test/e2e/specs/import_gitops.go +++ b/test/e2e/specs/import_gitops.go @@ -55,6 +55,7 @@ type CreateUsingGitOpsSpecInput struct { ClusterctlBinaryPath string ClusterTemplate []byte + AdditionalTemplates [][]byte ClusterName string AdditionalTemplateVariables map[string]string @@ -224,6 +225,16 @@ func CreateUsingGitOpsSpec(ctx context.Context, inputGetter func() CreateUsingGi AddtionalEnvironmentVariables: additionalVars, })).To(Succeed()) + for n, template := range input.AdditionalTemplates { + templatePath := filepath.Join(clustersDir, fmt.Sprintf("%s-template-%d.yaml", input.ClusterName, n)) + Expect(turtlesframework.ApplyFromTemplate(ctx, turtlesframework.ApplyFromTemplateInput{ + Getter: input.E2EConfig.GetVariable, + Template: template, + OutputFilePath: templatePath, + AddtionalEnvironmentVariables: additionalVars, + })).To(Succeed()) + } + fleetPath := filepath.Join(clustersDir, "fleet.yaml") turtlesframework.FleetCreateFleetFile(ctx, turtlesframework.FleetCreateFleetFileInput{ Namespace: namespace.Name, diff --git a/test/e2e/specs/import_gitops_mgmtv3.go b/test/e2e/specs/import_gitops_mgmtv3.go index 0127ec149..4f6ef22dd 100644 --- a/test/e2e/specs/import_gitops_mgmtv3.go +++ b/test/e2e/specs/import_gitops_mgmtv3.go @@ -56,6 +56,7 @@ type CreateMgmtV3UsingGitOpsSpecInput struct { ClusterctlBinaryPath string ClusterTemplate []byte + AdditionalTemplates [][]byte ClusterName string AdditionalTemplateVariables map[string]string @@ -244,6 +245,7 @@ func CreateMgmtV3UsingGitOpsSpec(ctx context.Context, inputGetter func() CreateM "CLUSTER_CLASS_NAME": fmt.Sprintf("%s-class", input.ClusterName), "WORKER_MACHINE_COUNT": strconv.Itoa(workerMachineCount), "CONTROL_PLANE_MACHINE_COUNT": strconv.Itoa(controlPlaneMachineCount), + "RKE2_CNI": "none", } // These variables (secrets) are not accessible when using the pr webhook (aka `ShortTestLabel`) @@ -263,6 +265,16 @@ func CreateMgmtV3UsingGitOpsSpec(ctx context.Context, inputGetter func() CreateM AddtionalEnvironmentVariables: additionalVars, })).To(Succeed()) + for n, template := range input.AdditionalTemplates { + templatePath := filepath.Join(clustersDir, fmt.Sprintf("%s-template-%d.yaml", input.ClusterName, n)) + Expect(turtlesframework.ApplyFromTemplate(ctx, turtlesframework.ApplyFromTemplateInput{ + Getter: input.E2EConfig.GetVariable, + Template: template, + OutputFilePath: templatePath, + AddtionalEnvironmentVariables: additionalVars, + })).To(Succeed()) + } + fleetPath := filepath.Join(clustersDir, "fleet.yaml") turtlesframework.FleetCreateFleetFile(ctx, turtlesframework.FleetCreateFleetFileInput{ Namespace: namespace.Name, diff --git a/test/e2e/specs/migrate_gitops_provv1_mgmtv3.go b/test/e2e/specs/migrate_gitops_provv1_mgmtv3.go index 8ac05cb3f..dc7c02cc2 100644 --- a/test/e2e/specs/migrate_gitops_provv1_mgmtv3.go +++ b/test/e2e/specs/migrate_gitops_provv1_mgmtv3.go @@ -61,6 +61,7 @@ type MigrateToV3UsingGitOpsSpecInput struct { ClusterctlBinaryPath string ClusterTemplate []byte + AdditionalTemplates [][]byte ClusterName string AdditionalTemplateVariables map[string]string @@ -295,6 +296,16 @@ func MigrateToV3UsingGitOpsSpec(ctx context.Context, inputGetter func() MigrateT AddtionalEnvironmentVariables: additionalVars, })).To(Succeed()) + for n, template := range input.AdditionalTemplates { + templatePath := filepath.Join(clustersDir, fmt.Sprintf("%s-template-%d.yaml", input.ClusterName, n)) + Expect(turtlesframework.ApplyFromTemplate(ctx, turtlesframework.ApplyFromTemplateInput{ + Getter: input.E2EConfig.GetVariable, + Template: template, + OutputFilePath: templatePath, + AddtionalEnvironmentVariables: additionalVars, + })).To(Succeed()) + } + fleetPath := filepath.Join(clustersDir, "fleet.yaml") turtlesframework.FleetCreateFleetFile(ctx, turtlesframework.FleetCreateFleetFileInput{ Namespace: namespace.Name, diff --git a/test/e2e/suites/import-gitops-v3/import_gitops_v3_test.go b/test/e2e/suites/import-gitops-v3/import_gitops_v3_test.go index e8dc5da5b..637491d03 100644 --- a/test/e2e/suites/import-gitops-v3/import_gitops_v3_test.go +++ b/test/e2e/suites/import-gitops-v3/import_gitops_v3_test.go @@ -43,6 +43,7 @@ var _ = Describe("[Docker] [Kubeadm] - [management.cattle.io/v3] Create and dele ClusterctlBinaryPath: e2eConfig.GetVariable(e2e.ClusterctlBinaryPathVar), ArtifactFolder: artifactsFolder, ClusterTemplate: e2e.CAPIDockerKubeadm, + AdditionalTemplates: [][]byte{e2e.CAPIKindnet}, ClusterName: "clusterv3-auto-import-kubeadm", ControlPlaneMachineCount: ptr.To[int](1), WorkerMachineCount: ptr.To[int](1), @@ -62,7 +63,7 @@ var _ = Describe("[Docker] [Kubeadm] - [management.cattle.io/v3] Create and dele }) }) -var _ = Describe("[Docker] [RKE2] - [management.cattle.io/v3] Create and delete CAPI cluster functionality should work with namespace auto-import", Label(e2e.LocalTestLabel), func() { +var _ = Describe("[Docker] [RKE2] - [management.cattle.io/v3] Create and delete CAPI cluster functionality should work with namespace auto-import", Label(e2e.ShortTestLabel), func() { BeforeEach(func() { komega.SetClient(bootstrapClusterProxy.GetClient()) komega.SetContext(ctx) @@ -76,6 +77,7 @@ var _ = Describe("[Docker] [RKE2] - [management.cattle.io/v3] Create and delete ClusterctlBinaryPath: e2eConfig.GetVariable(e2e.ClusterctlBinaryPathVar), ArtifactFolder: artifactsFolder, ClusterTemplate: e2e.CAPIDockerRKE2, + AdditionalTemplates: [][]byte{e2e.CAPIKindnet}, ClusterName: "clusterv3-auto-import-rke2", ControlPlaneMachineCount: ptr.To[int](1), WorkerMachineCount: ptr.To[int](1), diff --git a/test/e2e/suites/import-gitops/import_gitops_test.go b/test/e2e/suites/import-gitops/import_gitops_test.go index 93b0ceebb..f40fc2ec7 100644 --- a/test/e2e/suites/import-gitops/import_gitops_test.go +++ b/test/e2e/suites/import-gitops/import_gitops_test.go @@ -46,6 +46,7 @@ var _ = Describe("[Docker] [Kubeadm] Create and delete CAPI cluster functionalit ClusterctlBinaryPath: e2eConfig.GetVariable(e2e.ClusterctlBinaryPathVar), ArtifactFolder: artifactsFolder, ClusterTemplate: e2e.CAPIDockerKubeadm, + AdditionalTemplates: [][]byte{e2e.CAPIKindnet}, ClusterName: "clusterv1-docker-kubeadm", ControlPlaneMachineCount: ptr.To[int](1), WorkerMachineCount: ptr.To[int](1), diff --git a/test/e2e/suites/migrate-gitops/migrate_gitops_provv1_mgmtv3_test.go b/test/e2e/suites/migrate-gitops/migrate_gitops_provv1_mgmtv3_test.go index 101105de2..64e35f025 100644 --- a/test/e2e/suites/migrate-gitops/migrate_gitops_provv1_mgmtv3_test.go +++ b/test/e2e/suites/migrate-gitops/migrate_gitops_provv1_mgmtv3_test.go @@ -47,6 +47,7 @@ var _ = Describe("[Docker] [Kubeadm] - [management.cattle.io/v3] Migrate v1 to m ClusterctlBinaryPath: e2eConfig.GetVariable(e2e.ClusterctlBinaryPathVar), ArtifactFolder: artifactsFolder, ClusterTemplate: e2e.CAPIDockerKubeadm, + AdditionalTemplates: [][]byte{e2e.CAPIKindnet}, ClusterName: "clusterv3-migrated", ControlPlaneMachineCount: ptr.To(1), WorkerMachineCount: ptr.To(1), diff --git a/test/go.mod b/test/go.mod index 68dc95ad6..375e4d897 100644 --- a/test/go.mod +++ b/test/go.mod @@ -22,7 +22,7 @@ require ( sigs.k8s.io/cluster-api v1.9.0 sigs.k8s.io/cluster-api-operator v0.15.1 sigs.k8s.io/cluster-api-operator/test v0.15.1 - sigs.k8s.io/cluster-api/test v1.8.5 + sigs.k8s.io/cluster-api/test v1.9.0 sigs.k8s.io/controller-runtime v0.19.3 sigs.k8s.io/yaml v1.4.0 ) @@ -49,7 +49,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davidmz/go-pageant v1.0.2 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/docker v27.1.1+incompatible // indirect + github.com/docker/docker v27.3.1+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect @@ -164,6 +164,6 @@ require ( k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kind v0.24.0 // indirect + sigs.k8s.io/kind v0.25.0 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/test/go.sum b/test/go.sum index 931aec5b6..913bdea6c 100644 --- a/test/go.sum +++ b/test/go.sum @@ -64,8 +64,8 @@ github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454Wv github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= -github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI= +github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -440,14 +440,14 @@ sigs.k8s.io/cluster-api-operator v0.15.1 h1:oGEqNE7c1Ieqwso/DwjRVD2b/7wFXIjEKAod sigs.k8s.io/cluster-api-operator v0.15.1/go.mod h1:0yvW+1BLHcE5/gQfWSin1L4Gj+8wa9y7+vVTXOhUnSg= sigs.k8s.io/cluster-api-operator/test v0.15.1 h1:g6QZS+udxw8h1hMS76qVhz2eMqGhQGm+s5/R4HEjkOM= sigs.k8s.io/cluster-api-operator/test v0.15.1/go.mod h1:iR0oGy0O2fhmOVCa0ia4smF/z1UmJPuRT0CC4GkssZI= -sigs.k8s.io/cluster-api/test v1.8.5 h1:p2fjSv/exSFgYw+pO6iap1RVJPc0LJ+/A/PAMPl9vhU= -sigs.k8s.io/cluster-api/test v1.8.5/go.mod h1:odnzMkDndCRPCWdwl0CRofyZyY857wN34bUih1MLKIc= +sigs.k8s.io/cluster-api/test v1.9.0 h1:0MWp8u+ihR0wFsBy/4JWVsZCcDu178B43kdP1ca6d00= +sigs.k8s.io/cluster-api/test v1.9.0/go.mod h1:w09AhrOiWTjN9ToL4xaMZLnutMFe78x03POGZ3Fsbeg= sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw= sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kind v0.24.0 h1:g4y4eu0qa+SCeKESLpESgMmVFBebL0BDa6f777OIWrg= -sigs.k8s.io/kind v0.24.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw= +sigs.k8s.io/kind v0.25.0 h1:ugUvgesHKKA0yKmD6QtYTiEev+kPUpGxdTPbMGf8VTU= +sigs.k8s.io/kind v0.25.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=