diff --git a/hack/e2e-apps/kubernetes-latest-version.bats b/hack/e2e-apps/kubernetes-latest-version.bats deleted file mode 100644 index 4514af16..00000000 --- a/hack/e2e-apps/kubernetes-latest-version.bats +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env bats - -@test "Create a tenant Kubernetes control plane" { - LATEST_K8S_VERSION=$(yq 'keys | .[-1]' ../packages/apps/kubernetes/files/versions.yaml) - TEMPORAL_TENANT_PORT=59991 - - kubectl apply -f - < tenantkubeconfig - - # Update the kubeconfig to use localhost for the API server - yq -i ".clusters[0].cluster.server = \"https://localhost:${TEMPORAL_TENANT_PORT}\"" tenantkubeconfig - - # Set up port forwarding to the Kubernetes API server for a 40 second timeout - bash -c 'timeout 40s kubectl port-forward service/kubernetes-test-latest -n tenant-test '"${TEMPORAL_TENANT_PORT}"':6443 > /dev/null 2>&1 &' - - # Verify the Kubernetes version matches what we expect (retry for up to 20 seconds) - timeout 20 sh -ec 'until kubectl --kubeconfig tenantkubeconfig version 2>/dev/null | grep "Server Version: $LATEST_K8S_VERSION"; do sleep 5; done' - - # Wait for all machine deployment replicas to be ready (timeout after 10 minutes) - kubectl wait machinedeployment kubernetes-test-latest-md0 -n tenant-test --timeout=10m --for=jsonpath='{.status.v1beta2.readyReplicas}'=2 - - # Clean up by deleting the Kubernetes resource - kubectl -n tenant-test delete kuberneteses.apps.cozystack.io test-latest -} diff --git a/hack/e2e-apps/kubernetes-previous-version.bats b/hack/e2e-apps/kubernetes.bats similarity index 54% rename from hack/e2e-apps/kubernetes-previous-version.bats rename to hack/e2e-apps/kubernetes.bats index c5745d95..22f7c125 100644 --- a/hack/e2e-apps/kubernetes-previous-version.bats +++ b/hack/e2e-apps/kubernetes.bats @@ -1,15 +1,16 @@ #!/usr/bin/env bats -@test "Create a previous version tenant Kubernetes control plane" { - # Get latest version of k8s from gcr - PREVIOUS_K8S_VERSION=$(yq 'keys | .[-2]' ../packages/apps/kubernetes/files/versions.yaml) - TEMPORAL_TENANT_PORT=59992 +run_kubernetes_test() { + local version_expr="$1" + local test_name="$2" + local port="$3" + local k8s_version=$(yq "$version_expr" ../packages/apps/kubernetes/files/versions.yaml) kubectl apply -f - < tenantkubeconfig + kubectl get secret kubernetes-${test_name}-admin-kubeconfig -ojsonpath='{.data.super-admin\.conf}' -n tenant-test | base64 -d > tenantkubeconfig # Update the kubeconfig to use localhost for the API server - yq -i ".clusters[0].cluster.server = \"https://localhost:${TEMPORAL_TENANT_PORT}\"" tenantkubeconfig + yq -i ".clusters[0].cluster.server = \"https://localhost:${port}\"" tenantkubeconfig # Set up port forwarding to the Kubernetes API server for a 40 second timeout - bash -c 'timeout 40s kubectl port-forward service/kubernetes-test-previous -n tenant-test '"${TEMPORAL_TENANT_PORT}"':6443 > /dev/null 2>&1 &' + bash -c 'timeout 40s kubectl port-forward service/kubernetes-'"${test_name}"' -n tenant-test '"${port}"':6443 > /dev/null 2>&1 &' # Verify the Kubernetes version matches what we expect (retry for up to 20 seconds) - timeout 20 sh -ec 'until kubectl --kubeconfig tenantkubeconfig version 2>/dev/null | grep "Server Version: $PREVIOUS_K8S_VERSION"; do sleep 5; done' + timeout 20 sh -ec 'until kubectl --kubeconfig tenantkubeconfig version 2>/dev/null | grep -q "Server Version: ${k8s_version}"; do sleep 5; done' # Wait for all machine deployment replicas to be ready (timeout after 10 minutes) - kubectl wait machinedeployment kubernetes-test-previous-md0 -n tenant-test --timeout=10m --for=jsonpath='{.status.v1beta2.readyReplicas}'=2 + kubectl wait machinedeployment kubernetes-${test_name}-md0 -n tenant-test --timeout=10m --for=jsonpath='{.status.v1beta2.readyReplicas}'=2 # Clean up by deleting the Kubernetes resource - kubectl -n tenant-test delete kuberneteses.apps.cozystack.io test-previous + kubectl -n tenant-test delete kuberneteses.apps.cozystack.io $test_name + +} + +@test "Create a tenant Kubernetes control plane with latest version" { + echo "#################_TESTING_OF_LATEST_VERSION_###################" + run_kubernetes_test 'keys | sort_by(.) | .[-1]' 'test-latest-version' '59991' + echo "#############################_END_#############################" +} +@test "Create a tenant Kubernetes control plane with previous version" { + echo "#################_TESTING_OF_PREVIOUS_VERSION_#################" + run_kubernetes_test 'keys | sort_by(.) | .[-2]' 'test-previous-version' '59992' + echo "#############################_END_#############################" }