Migrate Otel Container insights to use CWA json #302
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| name: Integ Test | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: [ opened, reopened, synchronize, ready_for_review ] | |
| branches: | |
| - main | |
| - release-* | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref_name }} | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| env: | |
| TERRAFORM_AWS_ASSUME_ROLE: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} | |
| AWS_DEFAULT_REGION: us-west-2 | |
| jobs: | |
| Build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
| - name: Build | |
| run: make all | |
| Minikube-IntegrationTests: | |
| name: Minikube | |
| needs: [ Build ] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| matrix: | |
| # TODO: add webhooks-disabled | |
| # Keep sorted alphabetically. | |
| scenario: | |
| - agent-config-merge-isolation | |
| - appsignals-disabled | |
| - appsignals-disabled-multi-agents | |
| - appsignals-enabled-multi-agents | |
| - appsignals-unsupported | |
| - certificate-recreate-disabled | |
| - certificate-recreate-enabled | |
| - configmap-permission-scoping | |
| - default | |
| - deployment-rolling-disabled | |
| - deployment-rolling-enabled | |
| - dualstack-endpoint-enabled | |
| - dualstack-endpoint-with-custom-endpoint | |
| - feature-targeted-agent-config-override | |
| - feature-targeted-appsignals-disabled | |
| - feature-targeted-ci-and-appsignals-disabled | |
| - feature-targeted-ci-disabled | |
| - feature-targeted-custom-otel-config | |
| - feature-targeted-default | |
| - feature-targeted-multi-agent | |
| - feature-targeted-otlp-disabled | |
| - feature-targeted-split-features | |
| - feature-targeted-user-config-override | |
| - multi-agent-leader-election | |
| - otlp-custom-otel-config | |
| - otlp-disabled | |
| - otlp-hybrid-metrics-fluentbit | |
| - otlp-logs-disabled | |
| - otlp-logs-dual-publish | |
| - otlp-logs-otel-only | |
| - service-events-unsupported | |
| - webhooks-configured | |
| - webhooks-partially-enabled | |
| steps: | |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
| - name: Read K8s version from Terraform | |
| id: k8s | |
| run: | | |
| version=$(awk -F'"' '/default *=/{print $2; exit}' \ | |
| integration-tests/amazon-cloudwatch-observability/terraform/minikube/variables.tf) | |
| if [ -z "${version}" ]; then | |
| echo "::error::Failed to extract k8s_version default from variables.tf" | |
| exit 1 | |
| fi | |
| echo "version=${version}" >> "$GITHUB_OUTPUT" | |
| - name: Start minikube | |
| uses: medyagh/setup-minikube@e9e035a86bbc3caea26a450bd4dbf9d0c453682e # v0.0.21 | |
| with: | |
| driver: docker | |
| kubernetes-version: ${{ steps.k8s.outputs.version }} | |
| - name: Install Terraform | |
| uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2 | |
| with: | |
| terraform_version: "1.1.7" | |
| - name: Run scenario test | |
| run: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/minikube/scenarios/${{ matrix.scenario }} | |
| terraform init | |
| terraform apply -auto-approve | |
| terraform destroy -auto-approve | |
| - name: Cleanup on failure | |
| if: ${{ cancelled() || failure() }} | |
| run: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/minikube/scenarios/${{ matrix.scenario }} | |
| terraform destroy -auto-approve || true | |
| EKS-IntegrationTest: | |
| name: EKS | |
| needs: [ Minikube-IntegrationTests ] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate testing id | |
| run: echo TESTING_ID="${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV | |
| - name: Configure AWS Credentials | |
| uses: aws-actions/configure-aws-credentials@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 | |
| with: | |
| role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} | |
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | |
| # local directory to store the kubernetes config | |
| - name: Create kubeconfig directory | |
| run: mkdir -p ${{ github.workspace }}/../../../.kube | |
| - name: Set KUBECONFIG environment variable | |
| run: echo KUBECONFIG="${{ github.workspace }}/../../../.kube/config" >> $GITHUB_ENV | |
| - name: Install Terraform | |
| uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2 | |
| with: | |
| terraform_version: "1.1.7" | |
| - name: Verify Terraform version | |
| run: terraform --version | |
| - name: Terraform apply | |
| uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0 | |
| with: | |
| max_attempts: 1 | |
| timeout_minutes: 60 # EKS takes about 20 minutes to spin up a cluster and service on the cluster | |
| retry_wait_seconds: 5 | |
| command: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/eks | |
| terraform init | |
| if terraform apply -auto-approve \ | |
| -var="kube_dir=${{ github.workspace }}/../../../.kube"; then | |
| terraform destroy -auto-approve | |
| else | |
| terraform destroy -auto-approve && exit 1 | |
| fi | |
| - name: Terraform destroy | |
| if: ${{ cancelled() || failure() }} | |
| uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0 | |
| with: | |
| max_attempts: 3 | |
| timeout_minutes: 8 | |
| retry_wait_seconds: 5 | |
| command: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/eks | |
| terraform destroy --auto-approve | |
| EKS-IntegrationTest-Win2022: | |
| name: EKS Win2022 | |
| needs: [ Minikube-IntegrationTests ] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate testing id | |
| run: echo TESTING_ID="${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV | |
| - name: Configure AWS Credentials | |
| uses: aws-actions/configure-aws-credentials@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 | |
| with: | |
| role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} | |
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | |
| # local directory to store the kubernetes config | |
| - name: Create kubeconfig directory | |
| run: mkdir -p ${{ github.workspace }}/../../../.kube | |
| - name: Set KUBECONFIG environment variable | |
| run: echo KUBECONFIG="${{ github.workspace }}/../../../.kube/config" >> $GITHUB_ENV | |
| - name: Install Terraform | |
| uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2 | |
| with: | |
| terraform_version: "1.1.7" | |
| - name: Verify Terraform version | |
| run: terraform --version | |
| - name: Terraform apply | |
| uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0 | |
| with: | |
| max_attempts: 1 | |
| timeout_minutes: 60 # EKS takes about 20 minutes to spin up a cluster and service on the cluster | |
| retry_wait_seconds: 5 | |
| command: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/eks/windows | |
| terraform init | |
| if terraform apply -auto-approve \ | |
| -var="windows_os_version=WINDOWS_CORE_2022_x86_64" -var="kube_dir=${{ github.workspace }}/../../../.kube"; then | |
| terraform destroy -auto-approve | |
| else | |
| terraform destroy -auto-approve && exit 1 | |
| fi | |
| - name: Terraform destroy | |
| if: ${{ cancelled() || failure() }} | |
| uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0 | |
| with: | |
| max_attempts: 3 | |
| timeout_minutes: 8 | |
| retry_wait_seconds: 5 | |
| command: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/eks/windows | |
| terraform destroy --auto-approve | |
| EKS-IntegrationTest-Win2019: | |
| name: EKS Win2019 | |
| needs: [ Minikube-IntegrationTests ] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate testing id | |
| run: echo TESTING_ID="${{ github.run_id }}-${{ github.run_number }}" >> $GITHUB_ENV | |
| - name: Configure AWS Credentials | |
| uses: aws-actions/configure-aws-credentials@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 | |
| with: | |
| role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} | |
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | |
| # local directory to store the kubernetes config | |
| - name: Create kubeconfig directory | |
| run: mkdir -p ${{ github.workspace }}/../../../.kube | |
| - name: Set KUBECONFIG environment variable | |
| run: echo KUBECONFIG="${{ github.workspace }}/../../../.kube/config" >> $GITHUB_ENV | |
| - name: Install Terraform | |
| uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2 | |
| with: | |
| terraform_version: "1.1.7" | |
| - name: Verify Terraform version | |
| run: terraform --version | |
| - name: Terraform apply | |
| uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0 | |
| with: | |
| max_attempts: 1 | |
| timeout_minutes: 60 # EKS takes about 20 minutes to spin up a cluster and service on the cluster | |
| retry_wait_seconds: 5 | |
| command: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/eks/windows | |
| terraform init | |
| if terraform apply -auto-approve \ | |
| -var="windows_os_version=WINDOWS_CORE_2019_x86_64" -var="kube_dir=${{ github.workspace }}/../../../.kube"; then | |
| terraform destroy -auto-approve | |
| else | |
| terraform destroy -auto-approve && exit 1 | |
| fi | |
| - name: Terraform destroy | |
| if: ${{ cancelled() || failure() }} | |
| uses: nick-fields/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2.9.0 | |
| with: | |
| max_attempts: 3 | |
| timeout_minutes: 8 | |
| retry_wait_seconds: 5 | |
| command: | | |
| cd integration-tests/amazon-cloudwatch-observability/terraform/eks/windows | |
| terraform destroy --auto-approve |