From 826a778f58f02955e13b3e193dcd8eef7841312a Mon Sep 17 00:00:00 2001 From: justinsb Date: Fri, 2 May 2025 14:58:19 -0400 Subject: [PATCH] tests: add tests for kubectl get assets --- cmd/kops/integration_test.go | 24 ++++++++++ .../update_cluster/containerd/assets.yaml | 47 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 tests/integration/update_cluster/containerd/assets.yaml diff --git a/cmd/kops/integration_test.go b/cmd/kops/integration_test.go index a410cf723f426..134eb77af92a6 100644 --- a/cmd/kops/integration_test.go +++ b/cmd/kops/integration_test.go @@ -75,6 +75,8 @@ type integrationTest struct { nthRebalance bool // enable GCE startup script startupScript bool + // verify "kops get assets" functionality + testGetAssets bool } func newIntegrationTest(clusterName, srcDir string) *integrationTest { @@ -89,6 +91,11 @@ func newIntegrationTest(clusterName, srcDir string) *integrationTest { } } +func (i *integrationTest) withTestGetAssets() *integrationTest { + i.testGetAssets = true + return i +} + func (i *integrationTest) withStartupScript() *integrationTest { i.startupScript = true return i @@ -1041,6 +1048,7 @@ func TestContainerd(t *testing.T) { dnsControllerAddon, awsCCMAddon, ). + withTestGetAssets(). runTestTerraformAWS(t) } @@ -1319,6 +1327,22 @@ func (i *integrationTest) runTest(t *testing.T, ctx context.Context, h *testutil } } } + + if i.testGetAssets { + options := &GetAssetsOptions{} + options.GetOptions = &GetOptions{} + options.Output = "yaml" + options.ClusterName = i.clusterName + + var assetsOut bytes.Buffer + err := RunGetAssets(ctx, factory, &assetsOut, options) + if err != nil { + t.Fatalf("error running get assets %q: %v", i.clusterName, err) + } + + wantPath := filepath.Join(i.srcDir, "assets.yaml") + golden.AssertMatchesFile(t, assetsOut.String(), wantPath) + } } func (i *integrationTest) setupCluster(t *testing.T, ctx context.Context, inputYAML string, stdout bytes.Buffer) *util.Factory { diff --git a/tests/integration/update_cluster/containerd/assets.yaml b/tests/integration/update_cluster/containerd/assets.yaml new file mode 100644 index 0000000000000..d11585ec2da33 --- /dev/null +++ b/tests/integration/update_cluster/containerd/assets.yaml @@ -0,0 +1,47 @@ +images: +- canonical: registry.k8s.io/kube-apiserver:v1.32.0 + download: registry.k8s.io/kube-apiserver:v1.32.0 +- canonical: registry.k8s.io/pause:3.9 + download: registry.k8s.io/pause:3.9 +- canonical: registry.k8s.io/kube-controller-manager:v1.32.0 + download: registry.k8s.io/kube-controller-manager:v1.32.0 +- canonical: registry.k8s.io/kube-scheduler:v1.32.0 + download: registry.k8s.io/kube-scheduler:v1.32.0 +- canonical: registry.k8s.io/kube-proxy:v1.32.0 + download: registry.k8s.io/kube-proxy:v1.32.0 +- canonical: registry.k8s.io/kops/kops-controller:1.32.0-beta.1 + download: registry.k8s.io/kops/kops-controller:1.32.0-beta.1 +- canonical: registry.k8s.io/coredns/coredns:v1.11.3 + download: registry.k8s.io/coredns/coredns:v1.11.3 +- canonical: registry.k8s.io/cpa/cluster-proportional-autoscaler:v1.8.9 + download: registry.k8s.io/cpa/cluster-proportional-autoscaler:v1.8.9 +- canonical: registry.k8s.io/kops/dns-controller:1.32.0-beta.1 + download: registry.k8s.io/kops/dns-controller:1.32.0-beta.1 +- canonical: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.22.0 + download: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.22.0 +- canonical: registry.k8s.io/provider-aws/cloud-controller-manager:v1.31.0 + download: registry.k8s.io/provider-aws/cloud-controller-manager:v1.31.0 +- canonical: public.ecr.aws/ebs-csi-driver/aws-ebs-csi-driver:v1.38.1 + download: public.ecr.aws/ebs-csi-driver/aws-ebs-csi-driver:v1.38.1 +- canonical: public.ecr.aws/eks-distro/kubernetes-csi/node-driver-registrar:v2.12.0-eks-1-32-1 + download: public.ecr.aws/eks-distro/kubernetes-csi/node-driver-registrar:v2.12.0-eks-1-32-1 +- canonical: public.ecr.aws/eks-distro/kubernetes-csi/livenessprobe:v2.14.0-eks-1-32-1 + download: public.ecr.aws/eks-distro/kubernetes-csi/livenessprobe:v2.14.0-eks-1-32-1 +- canonical: public.ecr.aws/eks-distro/kubernetes-csi/external-provisioner:v5.1.0-eks-1-32-1 + download: public.ecr.aws/eks-distro/kubernetes-csi/external-provisioner:v5.1.0-eks-1-32-1 +- canonical: public.ecr.aws/eks-distro/kubernetes-csi/external-attacher:v4.7.0-eks-1-32-1 + download: public.ecr.aws/eks-distro/kubernetes-csi/external-attacher:v4.7.0-eks-1-32-1 +- canonical: public.ecr.aws/ebs-csi-driver/volume-modifier-for-k8s:v0.5.0 + download: public.ecr.aws/ebs-csi-driver/volume-modifier-for-k8s:v0.5.0 +- canonical: public.ecr.aws/eks-distro/kubernetes-csi/external-resizer:v1.12.0-eks-1-32-1 + download: public.ecr.aws/eks-distro/kubernetes-csi/external-resizer:v1.12.0-eks-1-32-1 +- canonical: registry.k8s.io/kops/kube-apiserver-healthcheck:1.32.0-beta.1 + download: registry.k8s.io/kops/kube-apiserver-healthcheck:1.32.0-beta.1 +- canonical: registry.k8s.io/kops/kops-utils-cp:1.32.0-beta.1 + download: registry.k8s.io/kops/kops-utils-cp:1.32.0-beta.1 +- canonical: registry.k8s.io/etcd:3.4.13-0 + download: registry.k8s.io/etcd:3.4.13-0 +- canonical: registry.k8s.io/etcd:3.5.21-0 + download: registry.k8s.io/etcd:3.5.21-0 +- canonical: registry.k8s.io/etcd-manager/etcd-manager-slim:v3.0.20241012 + download: registry.k8s.io/etcd-manager/etcd-manager-slim:v3.0.20241012