diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d3e9ff2..938115b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -17,22 +17,16 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Disk Cleanup uses: ./.github/actions/runner-cleanup - - name: Setup Kubernetes - uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0 - with: - cluster_name: kind - - name: Build container image - run: | - ./test/build.sh - kind load docker-image test/podinfo:latest - name: Setup Helm uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0 with: version: v4.1.0 - - name: Deploy - run: ./test/deploy.sh + - name: Setup Kubernetes + uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0 + with: + cluster_name: kind - name: Run integration tests - run: ./test/test.sh + run: ./test/e2e.sh - name: Debug failure if: failure() run: | @@ -59,7 +53,7 @@ jobs: cluster_name: kind - name: Build container run: | - docker build -t ${PODINFO_IMAGE_URL}:${PODINFO_VERSION} --build-arg "REVISION=${GITHUB_SHA}" -f Dockerfile.xx . + docker build -t ${PODINFO_IMAGE_URL}:${PODINFO_VERSION} --build-arg "REVISION=${GITHUB_SHA}" -f Dockerfile . kind load docker-image ${PODINFO_IMAGE_URL}:${PODINFO_VERSION} - name: Vet module run: | diff --git a/test/build.sh b/test/build.sh deleted file mode 100755 index 2bac9f4..0000000 --- a/test/build.sh +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env sh - -set -e - -# build the docker file -GIT_COMMIT=$(git rev-list -1 HEAD) && \ -DOCKER_BUILDKIT=1 docker build --tag test/podinfo --build-arg "REVISION=${GIT_COMMIT}" . diff --git a/test/deploy.sh b/test/deploy.sh deleted file mode 100755 index fe33cfc..0000000 --- a/test/deploy.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env sh - -# install cert-manager -kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml - -# wait for cert manager -kubectl -n cert-manager rollout status deployment/cert-manager --timeout=2m -kubectl -n cert-manager rollout status deployment/cert-manager-webhook --timeout=2m -kubectl -n cert-manager rollout status deployment/cert-manager-cainjector --timeout=2m - -# install self-signed certificate -cat << 'EOF' | kubectl apply -f - -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: self-signed -spec: - selfSigned: {} -EOF - -# install podinfo with tls enabled -helm upgrade --install podinfo ./charts/podinfo \ - --set image.repository=test/podinfo \ - --set image.tag=latest \ - --set tls.enabled=true \ - --set certificate.create=true \ - --set hpa.enabled=true \ - --set hpa.cpu=95 \ - --set hooks.postInstall.job.enabled=true \ - --namespace=default diff --git a/test/e2e.sh b/test/e2e.sh index 586f9dd..29f7d3d 100755 --- a/test/e2e.sh +++ b/test/e2e.sh @@ -2,19 +2,39 @@ set -e -SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P) +# Build container image +docker build --tag test/podinfo --build-arg "REVISION=0.0.0-$(git rev-list -1 HEAD)" . -# run the build -$SCRIPT_DIR/build.sh - -# create the kind cluster -kind create cluster || true - -# load the docker image +# Load image in cluster kind load docker-image test/podinfo:latest -# run the deploy -$SCRIPT_DIR/deploy.sh +# Install cert-manager +kubectl apply --server-side -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.2/cert-manager.yaml +kubectl -n cert-manager rollout status deployment/cert-manager --timeout=2m +kubectl -n cert-manager rollout status deployment/cert-manager-webhook --timeout=2m +kubectl -n cert-manager rollout status deployment/cert-manager-cainjector --timeout=2m -# run the tests -$SCRIPT_DIR/test.sh +# Configure self-signed certificate +cat << 'EOF' | kubectl apply --server-side -f - +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: self-signed +spec: + selfSigned: {} +EOF + +# Install podinfo with TLS enabled +helm upgrade --install --wait podinfo ./charts/podinfo \ + --set image.repository=test/podinfo \ + --set image.tag=latest \ + --set tls.enabled=true \ + --set certificate.create=true \ + --set hpa.enabled=true \ + --set hpa.cpu=95 \ + --set replicaCount=2 \ + --set hooks.postInstall.job.enabled=true \ + --namespace=default + +# Run tests +helm test podinfo diff --git a/test/test.sh b/test/test.sh deleted file mode 100755 index 842fce7..0000000 --- a/test/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#1 /usr/bin/env sh - -set -e - -# wait for podinfo -kubectl rollout status deployment/podinfo --timeout=3m - -# test podinfo -helm test podinfo