Skip to content

Commit

Permalink
🐛 Fix GKE cloud test
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Zunker <[email protected]>
  • Loading branch information
czunker committed Oct 30, 2023
1 parent f9421b5 commit 15a3186
Showing 1 changed file with 174 additions and 169 deletions.
343 changes: 174 additions & 169 deletions .github/workflows/cloud-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,177 +38,177 @@ env:
CNSPEC_IMAGE_TAG: ${{ github.event.inputs.cnspecImageTag || 'edge-latest-rootless' }}

jobs:
aks-integration-test:
runs-on: ubuntu-latest
name: AKS integration tests

env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
KUBECONFIG: ${{ format('{0}/{1}', github.workspace, '.github/terraform/aks/kubeconfig') }}
# aks-integration-test:
# runs-on: ubuntu-latest
# name: AKS integration tests

# env:
# ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
# ARM_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
# ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
# ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
# KUBECONFIG: ${{ format('{0}/{1}', github.workspace, '.github/terraform/aks/kubeconfig') }}

strategy:
fail-fast: false
matrix:
k8s-version: ["1.25", "1.26", "1.27"]

steps:
- uses: GitHubSecurityLab/actions-permissions/monitor@v1
with:
config: ${{ vars.PERMISSIONS_CONFIG }}
- uses: actions/checkout@v4
with:
fetch-depth: 0 # fetch is needed for "git tag --list" in the Makefile

- name: Import environment variables from file
run: cat ".github/env" >> $GITHUB_ENV

- name: Setup Terraform
uses: hashicorp/setup-terraform@v2

- name: Terraform init
run: terraform init
working-directory: .github/terraform/aks
# strategy:
# fail-fast: false
# matrix:
# k8s-version: ["1.25", "1.26", "1.27"]

# steps:
# - uses: GitHubSecurityLab/actions-permissions/monitor@v1
# with:
# config: ${{ vars.PERMISSIONS_CONFIG }}
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0 # fetch is needed for "git tag --list" in the Makefile

# - name: Import environment variables from file
# run: cat ".github/env" >> $GITHUB_ENV

# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2

# - name: Terraform init
# run: terraform init
# working-directory: .github/terraform/aks

- name: Terraform plan
run: terraform plan -out aks-${{ matrix.k8s-version }}.json
env:
TF_VAR_k8s_version: ${{ matrix.k8s-version }}
working-directory: .github/terraform/aks

- name: Terraform apply
run: terraform apply -auto-approve aks-${{ matrix.k8s-version }}.json
env:
TF_VAR_k8s_version: ${{ matrix.k8s-version }}
working-directory: .github/terraform/aks

- uses: actions/setup-go@v4
with:
go-version: "${{ env.golang-version }}"
cache: true

- name: Get operator version
run: echo "OPERATOR_VERSION=$(docker run ghcr.io/mondoohq/mondoo-operator:${{ env.MONDOO_OPERATOR_IMAGE_TAG }} version --simple)" >> $GITHUB_ENV

- name: Wait a bit for the cluster to become more stable
run: kubectl -n kube-system wait --for=condition=Ready pods --all --timeout=60s

- name: Run integration tests
env:
MONDOO_API_TOKEN: ${{ secrets.MONDOO_TEST_ORG_TOKEN }}
MONDOO_ORG_MRN: //captain.api.mondoo.app/organizations/serene-lovelace-854342
MONDOO_GQL_ENDPOINT: https://api.edge.mondoo.com/query
run: VERSION=${{ env.OPERATOR_VERSION }} K8S_DISTRO=aks make test/integration/ci

- name: Clean up AKS terraform
run: terraform destroy -auto-approve
if: success() || failure()
working-directory: .github/terraform/aks
# - name: Terraform plan
# run: terraform plan -out aks-${{ matrix.k8s-version }}.json
# env:
# TF_VAR_k8s_version: ${{ matrix.k8s-version }}
# working-directory: .github/terraform/aks

# - name: Terraform apply
# run: terraform apply -auto-approve aks-${{ matrix.k8s-version }}.json
# env:
# TF_VAR_k8s_version: ${{ matrix.k8s-version }}
# working-directory: .github/terraform/aks

# - uses: actions/setup-go@v4
# with:
# go-version: "${{ env.golang-version }}"
# cache: true

# - name: Get operator version
# run: echo "OPERATOR_VERSION=$(docker run ghcr.io/mondoohq/mondoo-operator:${{ env.MONDOO_OPERATOR_IMAGE_TAG }} version --simple)" >> $GITHUB_ENV

# - name: Wait a bit for the cluster to become more stable
# run: kubectl -n kube-system wait --for=condition=Ready pods --all --timeout=60s

# - name: Run integration tests
# env:
# MONDOO_API_TOKEN: ${{ secrets.MONDOO_TEST_ORG_TOKEN }}
# MONDOO_ORG_MRN: //captain.api.mondoo.app/organizations/serene-lovelace-854342
# MONDOO_GQL_ENDPOINT: https://api.edge.mondoo.com/query
# run: VERSION=${{ env.OPERATOR_VERSION }} K8S_DISTRO=aks make test/integration/ci

# - name: Clean up AKS terraform
# run: terraform destroy -auto-approve
# if: success() || failure()
# working-directory: .github/terraform/aks

- run: mv integration-tests.xml integration-tests-aks-${{ matrix.k8s-version }}.xml
if: success() || failure()

- name: Upload cloud test results
uses: actions/upload-artifact@v3 # upload test results
if: success() || failure() # run this step even if previous step failed
with: # upload a combined archive with unit and integration test results
name: cloud-test-results
path: |
integration-tests-aks-${{ matrix.k8s-version }}.xml
.github/terraform/aks/aks-${{ matrix.k8s-version }}.json
- name: Upload test logs artifact
uses: actions/upload-artifact@v3
if: failure()
with:
name: test-logs-aks-${{ matrix.k8s-version }}
path: /home/runner/work/mondoo-operator/mondoo-operator/tests/integration/_output/

eks-integration-test:
runs-on: ubuntu-latest
name: EKS integration tests
# - run: mv integration-tests.xml integration-tests-aks-${{ matrix.k8s-version }}.xml
# if: success() || failure()

# - name: Upload cloud test results
# uses: actions/upload-artifact@v3 # upload test results
# if: success() || failure() # run this step even if previous step failed
# with: # upload a combined archive with unit and integration test results
# name: cloud-test-results
# path: |
# integration-tests-aks-${{ matrix.k8s-version }}.xml
# .github/terraform/aks/aks-${{ matrix.k8s-version }}.json

# - name: Upload test logs artifact
# uses: actions/upload-artifact@v3
# if: failure()
# with:
# name: test-logs-aks-${{ matrix.k8s-version }}
# path: /home/runner/work/mondoo-operator/mondoo-operator/tests/integration/_output/

# eks-integration-test:
# runs-on: ubuntu-latest
# name: EKS integration tests

strategy:
fail-fast: false
matrix:
k8s-version: ["1.23", "1.24", "1.25", "1.26", "1.27"]

env:
TF_VAR_test_name: ${{ github.event.inputs.mondooOperatorImageTag }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-2

steps:
- uses: GitHubSecurityLab/actions-permissions/monitor@v1
with:
config: ${{ vars.PERMISSIONS_CONFIG }}
- uses: actions/checkout@v4
with:
fetch-depth: 0 # fetch is needed for "git tag --list" in the Makefile

- name: Import environment variables from file
run: cat ".github/env" >> $GITHUB_ENV

- name: Setup Terraform
uses: hashicorp/setup-terraform@v2

- run: terraform init
working-directory: .github/terraform/aws

- name: Plan EKS
run: terraform plan -out eks-${{ matrix.k8s-version }}.json
env:
TF_VAR_kubernetes_version: ${{ matrix.k8s-version }}
working-directory: .github/terraform/aws
# strategy:
# fail-fast: false
# matrix:
# k8s-version: ["1.23", "1.24", "1.25", "1.26", "1.27"]

# env:
# TF_VAR_test_name: ${{ github.event.inputs.mondooOperatorImageTag }}
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# AWS_REGION: us-east-2

# steps:
# - uses: GitHubSecurityLab/actions-permissions/monitor@v1
# with:
# config: ${{ vars.PERMISSIONS_CONFIG }}
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0 # fetch is needed for "git tag --list" in the Makefile

# - name: Import environment variables from file
# run: cat ".github/env" >> $GITHUB_ENV

# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2

# - run: terraform init
# working-directory: .github/terraform/aws

# - name: Plan EKS
# run: terraform plan -out eks-${{ matrix.k8s-version }}.json
# env:
# TF_VAR_kubernetes_version: ${{ matrix.k8s-version }}
# working-directory: .github/terraform/aws

- name: Apply EKS
run: terraform apply -auto-approve eks-${{ matrix.k8s-version }}.json
env:
TF_VAR_kubernetes_version: ${{ matrix.k8s-version }}
working-directory: .github/terraform/aws

- uses: actions/setup-go@v4
with:
go-version: "${{ env.golang-version }}"
cache: true

- name: Get operator version
run: echo "OPERATOR_VERSION=$(docker run ghcr.io/mondoohq/mondoo-operator:${{ env.MONDOO_OPERATOR_IMAGE_TAG }} version --simple)" >> $GITHUB_ENV

- name: Wait a bit for the cluster to become more stable
run: kubectl -n kube-system wait --for=condition=Ready pods --all --timeout=60s

- name: Run integration tests
env:
MONDOO_API_TOKEN: ${{ secrets.MONDOO_TEST_ORG_TOKEN }}
MONDOO_ORG_MRN: //captain.api.mondoo.app/organizations/serene-lovelace-854342
MONDOO_GQL_ENDPOINT: https://api.edge.mondoo.com/query
run: VERSION=${{ env.OPERATOR_VERSION }} K8S_DISTRO=eks make test/integration/ci

- name: Clean up EKS terraform
run: terraform destroy -auto-approve
working-directory: .github/terraform/aws
if: success() || failure()

- run: mv integration-tests.xml integration-tests-eks-${{ matrix.k8s-version }}.xml
if: success() || failure()

- name: Upload test results
uses: actions/upload-artifact@v3 # upload test results
if: success() || failure() # run this step even if previous step failed
with: # upload a combined archive with unit and integration test results
name: cloud-test-results
path: integration-tests-eks-${{ matrix.k8s-version }}.xml

- name: Upload test logs artifact
uses: actions/upload-artifact@v3
if: failure()
with:
name: test-logs-eks-${{ matrix.k8s-version }}
path: /home/runner/work/mondoo-operator/mondoo-operator/tests/integration/_output/
# - name: Apply EKS
# run: terraform apply -auto-approve eks-${{ matrix.k8s-version }}.json
# env:
# TF_VAR_kubernetes_version: ${{ matrix.k8s-version }}
# working-directory: .github/terraform/aws

# - uses: actions/setup-go@v4
# with:
# go-version: "${{ env.golang-version }}"
# cache: true

# - name: Get operator version
# run: echo "OPERATOR_VERSION=$(docker run ghcr.io/mondoohq/mondoo-operator:${{ env.MONDOO_OPERATOR_IMAGE_TAG }} version --simple)" >> $GITHUB_ENV

# - name: Wait a bit for the cluster to become more stable
# run: kubectl -n kube-system wait --for=condition=Ready pods --all --timeout=60s

# - name: Run integration tests
# env:
# MONDOO_API_TOKEN: ${{ secrets.MONDOO_TEST_ORG_TOKEN }}
# MONDOO_ORG_MRN: //captain.api.mondoo.app/organizations/serene-lovelace-854342
# MONDOO_GQL_ENDPOINT: https://api.edge.mondoo.com/query
# run: VERSION=${{ env.OPERATOR_VERSION }} K8S_DISTRO=eks make test/integration/ci

# - name: Clean up EKS terraform
# run: terraform destroy -auto-approve
# working-directory: .github/terraform/aws
# if: success() || failure()

# - run: mv integration-tests.xml integration-tests-eks-${{ matrix.k8s-version }}.xml
# if: success() || failure()

# - name: Upload test results
# uses: actions/upload-artifact@v3 # upload test results
# if: success() || failure() # run this step even if previous step failed
# with: # upload a combined archive with unit and integration test results
# name: cloud-test-results
# path: integration-tests-eks-${{ matrix.k8s-version }}.xml

# - name: Upload test logs artifact
# uses: actions/upload-artifact@v3
# if: failure()
# with:
# name: test-logs-eks-${{ matrix.k8s-version }}
# path: /home/runner/work/mondoo-operator/mondoo-operator/tests/integration/_output/

gke-integration-test:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -264,7 +264,10 @@ jobs:
run: echo "OPERATOR_VERSION=$(docker run ghcr.io/mondoohq/mondoo-operator:${{ env.MONDOO_OPERATOR_IMAGE_TAG }} version --simple)" >> $GITHUB_ENV

- name: Wait a bit for the cluster to become more stable
run: kubectl -n kube-system wait --for=condition=Ready pods --all --timeout=60s
run: |
gcloud auth login --cred-file=${{ env.GOOGLE_APPLICATION_CREDENTIALS }}
gcloud container clusters get-credentials $(kubectl config get-clusters | grep -v NAME) --location us-central1-a
kubectl -n kube-system wait --for=condition=Ready pods --all --timeout=60s
- name: Run integration tests
env:
Expand Down Expand Up @@ -302,7 +305,8 @@ jobs:
test-report:
name: Report test results
runs-on: ubuntu-latest
needs: [eks-integration-test,aks-integration-test,gke-integration-test]
# needs: [eks-integration-test,aks-integration-test,gke-integration-test]
needs: [gke-integration-test]
if: always()
steps:
- uses: GitHubSecurityLab/actions-permissions/monitor@v1
Expand All @@ -327,7 +331,8 @@ jobs:
discord-notification:
runs-on: ubuntu-latest
name: Send Discord notification
needs: [eks-integration-test,aks-integration-test,gke-integration-test]
# needs: [eks-integration-test,aks-integration-test,gke-integration-test]
needs: [gke-integration-test]
# Run only if the previous job has failed and only if it's running against the main branch
if: ${{ always() && contains(join(needs.*.result, ','), 'fail') && github.ref_name == 'main' }}
steps:
Expand Down

0 comments on commit 15a3186

Please sign in to comment.