diff --git a/scripts/ci-e2e.sh b/scripts/ci-e2e.sh index eb58c8bb37ab..35efbbebd592 100755 --- a/scripts/ci-e2e.sh +++ b/scripts/ci-e2e.sh @@ -96,5 +96,10 @@ ctr -n moby events > "${ARTIFACTS_LOCAL}/containerd-events.txt" 2>&1 & # Run e2e tests mkdir -p "$ARTIFACTS" -echo "+ run tests!" +echo "+ run v1alpha3 => v1beta1 upgrade test!" + +export GINKGO_FOCUS="Should create a management cluster and then upgrade all the providers" +export INIT_WITH_BINARY="https://github.com/kubernetes-sigs/cluster-api/releases/download/v0.3.23/clusterctl-{OS}-{ARCH}" +export INIT_WITH_PROVIDERS_CONTRACT=v1alpha3 +export INIT_WITH_KUBERNETES_VERSION=v1.21.2 make -C test/e2e/ run diff --git a/test/e2e/config/docker.yaml b/test/e2e/config/docker.yaml index 8a9e89d30625..450f6d0abffa 100644 --- a/test/e2e/config/docker.yaml +++ b/test/e2e/config/docker.yaml @@ -34,6 +34,8 @@ providers: type: "url" contract: v1alpha3 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -43,6 +45,8 @@ providers: type: "url" contract: v1alpha4 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -50,6 +54,8 @@ providers: - name: v1.0.99 # next; use manifest from source files value: ../../../config/default replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-bind-addr=localhost:8080 new: --metrics-bind-addr=:8080 files: @@ -63,6 +69,8 @@ providers: type: "url" contract: v1alpha3 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -72,6 +80,8 @@ providers: type: "url" contract: v1alpha4 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -79,6 +89,8 @@ providers: - name: v1.0.99 # next; use manifest from source files value: ../../../bootstrap/kubeadm/config/default replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-bind-addr=localhost:8080 new: --metrics-bind-addr=:8080 files: @@ -92,6 +104,8 @@ providers: type: "url" contract: v1alpha3 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -101,6 +115,8 @@ providers: type: "url" contract: v1alpha4 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -108,6 +124,8 @@ providers: - name: v1.0.99 # next; use manifest from source files value: ../../../controlplane/kubeadm/config/default replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-bind-addr=localhost:8080 new: --metrics-bind-addr=:8080 files: @@ -121,6 +139,8 @@ providers: type: "url" contract: v1alpha3 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -131,6 +151,8 @@ providers: type: "url" contract: v1alpha4 replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-addr=127.0.0.1:8080 new: --metrics-addr=:8080 files: @@ -139,6 +161,8 @@ providers: - name: v1.0.99 # next; use manifest from source files value: ../../../test/infrastructure/docker/config/default replacements: + - old: "--leader-elect" + new: "--leader-elect=false" - old: --metrics-bind-addr=localhost:8080 new: --metrics-bind-addr=:8080 files: diff --git a/test/framework/alltypes_helpers.go b/test/framework/alltypes_helpers.go index 4f38d18f6216..30b7a6ffce83 100644 --- a/test/framework/alltypes_helpers.go +++ b/test/framework/alltypes_helpers.go @@ -26,7 +26,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" apimeta "k8s.io/apimachinery/pkg/api/meta" @@ -72,6 +71,36 @@ func GetCAPIResources(ctx context.Context, input GetCAPIResourcesInput) []*unstr } } + // cluster-wide + types = []metav1.TypeMeta{ + { + Kind: "Deployment", + APIVersion: "apps/v1", + }, + { + Kind: "Pod", + APIVersion: "v1", + }, + } + + for i := range types { + typeMeta := types[i] + typeList := new(unstructured.UnstructuredList) + typeList.SetAPIVersion(typeMeta.APIVersion) + typeList.SetKind(typeMeta.Kind) + + if err := input.Lister.List(ctx, typeList); err != nil { + if apierrors.IsNotFound(err) { + continue + } + Fail(fmt.Sprintf("failed to list %q resources: %v", typeList.GroupVersionKind(), err)) + } + for i := range typeList.Items { + obj := typeList.Items[i] + objList = append(objList, &obj) + } + } + return objList }