From 1c8e59d4f919b63230b1439a5e2dd13c25d319d2 Mon Sep 17 00:00:00 2001 From: Zaid Albirawi <zaid@tyk.io> Date: Wed, 24 Apr 2024 00:08:52 +0200 Subject: [PATCH] readd workflow --- .github/workflows/gke.yml | 110 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .github/workflows/gke.yml diff --git a/.github/workflows/gke.yml b/.github/workflows/gke.yml new file mode 100644 index 0000000..4c8cf41 --- /dev/null +++ b/.github/workflows/gke.yml @@ -0,0 +1,110 @@ +name: GKE +on: + workflow_dispatch: + inputs: + analytics_enabled: + description: 'Enabled Analytics gathering' + required: false + default: false + type: boolean + auth_enabled: + description: 'Enabled Authentication' + required: false + default: false + type: boolean + quota_enabled: + description: 'Enabled Quota' + required: false + default: false + type: boolean + rate_limit_enabled: + description: 'Enabled Rate Limiting' + required: false + default: false + type: boolean + open_telemetry_enabled: + description: 'Enabled Open Telemetry' + required: false + default: false + type: boolean + open_telemetry_sampling_ratio: + description: 'Open Telemetry Sampling Ratio' + required: false + type: string + default: '0.5' + tyk_version: + description: 'Tyk Gateway version' + required: true + type: string + default: 'v5.3.0' + tests_timestamp_enabled: + description: 'Enabled Timestamp Test' + required: false + default: true + type: boolean + tests_httpbin_enabled: + description: 'Enabled Httpbin Test' + required: false + default: false + type: boolean +jobs: + httpbin: + runs-on: ubuntu-latest + steps: + - name: Authenticate into gcloud + uses: google-github-actions/auth@v2 + with: + credentials_json: ${{ secrets.GCP_CREDENTIALS }} + + - name: Install gcloud CLI + uses: google-github-actions/setup-gcloud@v2.1.0 + + - name: Install Terraform + uses: hashicorp/setup-terraform@v3 + + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Copy deployments vars example into main.tfvars + run: cp ./deployments/main.tfvars.example ./deployments/main.tfvars + + - name: Copy tests vars example into main.tfvars + run: cp ./tests/main.tfvars.example ./tests/main.tfvars + + - name: Stand up GKE cluster + run: | + cd gke + terraform init + terraform apply \ + --var="project=${{ secrets.GCP_PROJECT }}" \ + --var="cluster_location=${{ vars.GCP_CLUSTER_LOCATION }}" \ + --var="cluster_machine_type=${{ vars.GCP_CLUSTER_MACHINE_TYPE }}" \ + --auto-approve + + - name: Deploy testing resources + run: | + cd deployments + terraform init + terraform apply \ + --var="kubernetes_config_path='../.kube/config'" \ + --var="kubernetes_config_context=gke" \ + --var="analytics_enabled=${{ inputs.analytics_enabled }}" \ + --var="auth_enabled=${{ inputs.auth_enabled }}" \ + --var="quota_enabled=${{ inputs.quota_enabled }}" \ + --var="rate_limit_enabled=${{ inputs.rate_limit_enabled }}" \ + --var="open_telemetry_enabled=${{ inputs.open_telemetry_enabled }}" \ + --var="open_telemetry_sampling_ratio=${{ inputs.open_telemetry_sampling_ratio }}" \ + --var="tyk_version=${{ inputs.tyk_version }}" \ + --var="grafana_service_type=LoadBalancer" \ + --auto-approve + + - name: Run Tests + run: | + cd deployments + terraform init + terraform apply \ + --var="kubernetes_config_path='../.kube/config'" \ + --var="kubernetes_config_context=gke" \ + --var="tests_timestamp_enabled=${{ inputs.tests_timestamp_enabled }}" \ + --var="tests_httpbin_enabled=${{ inputs.tests_httpbin_enabled }}" \ + --auto-approve