Skip to content

[chore] Automate OBI sub-chart dependency update PRs #4982

[chore] Automate OBI sub-chart dependency update PRs

[chore] Automate OBI sub-chart dependency update PRs #4982

name: functional-tests
on:
pull_request:
push:
branches: [ main ]
workflow_dispatch:
inputs:
UPDATE_EXPECTED_RESULTS:
description: 'UPDATE_EXPECTED_RESULTS: Set this to true to update the golden file expected test results (if applicable) and upload them as a GitHub workflow run artifact.'
required: false
default: false
type: choice
options:
- false
- true
KUBERNETES_DEBUG_INFO:
description: 'KUBERNETES_DEBUG_INFO: Set this to true to collect the debug info of the k8s cluster and upload this info as a Github workflow artifact.'
required: false
default: false
type: choice
options:
- false
- true
permissions:
contents: read
env:
GO_VERSION: 1.26.2
# Make sure to exit early if cache segment download times out after 2 minutes.
# We limit cache download as a whole to 5 minutes.
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2
jobs:
get-test-matrix:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: get matrix
id: test_matrix
run: |
echo "Getting test matrix"
matrix=$(jq -r '.functional_test_v2 | tostring' ci-matrix.json | tr -d '\n')
echo "matrix=${matrix}" >> "$GITHUB_OUTPUT"
outputs:
matrix: ${{ steps.test_matrix.outputs.matrix }}
kubernetes-test:
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing
KUBE_TEST_ENV: kind
UPDATE_EXPECTED_RESULTS: ${{ github.event.inputs.UPDATE_EXPECTED_RESULTS || 'false' }}
KUBERNETES_DEBUG_INFO: ${{ github.event.inputs.KUBERNETES_DEBUG_INFO || 'false' }}
needs: get-test-matrix
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.get-test-matrix.outputs.matrix) }}
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Create kind cluster
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
node_image: kindest/node:${{ matrix.k8s-kind-version }}
kubectl_version: ${{ matrix.k8s-kind-version }}
cluster_name: kind
config: ./.github/workflows/configs/kind-config.yaml
- name: Fix kubelet TLS server certificates
run: |
kubectl get csr -o=jsonpath='{range.items[?(@.spec.signerName=="kubernetes.io/kubelet-serving")]}{.metadata.name}{" "}{end}' | xargs kubectl certificate approve
- name: Update dependencies
run: |
make dep-update
- name: Build and load test images into kind
run: |
make kind-build-test-images
- name: run functional tests
id: run-functional-tests
env:
K8S_VERSION: ${{ matrix.k8s-kind-version }}
run: |
TEARDOWN_BEFORE_SETUP=true UPDATE_EXPECTED_RESULTS=${{ env.UPDATE_EXPECTED_RESULTS }} SUITE=${{ matrix.test-job }} make functionaltest
- name: Collect Kubernetes Cluster debug info on failure
if: always() && (steps.run-functional-tests.outcome == 'failure' || env.KUBERNETES_DEBUG_INFO == 'true')
id: collect-debug-info
run: |
echo "Functional tests failed. Collecting debug info for current state of the Kubernetes cluster..."
cd tools
./splunk_kubernetes_debug_info.sh
- name: Upload Kubernetes Cluster debug info
if: always() && (steps.run-functional-tests.outcome == 'failure' || env.KUBERNETES_DEBUG_INFO == 'true')
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: k8s-debug-info-${{ matrix.test-job }}-${{ matrix.k8s-kind-version }}
path: tools/splunk_kubernetes_debug_info_*
retention-days: 5
- name: Upload updated files artifact
if: always() && env.UPDATE_EXPECTED_RESULTS == 'true'
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: updated_expected_results-${{ matrix.test-job }}-${{ matrix.k8s-kind-version }}
path: ./functional_tests/**/*.yaml
retention-days: 5
eks-test:
name: Test helm install in EKS - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks
KUBE_TEST_ENV: eks
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: us-west-1
- name: Install kubeconfig
run: |
aws eks update-kubeconfig --name rotel-eks --region us-west-1
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
eks-upgrade-test:
name: Test helm upgrade in EKS - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks
KUBE_TEST_ENV: eks
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: us-west-1
- name: Install kubeconfig
run: |
aws eks update-kubeconfig --name rotel-eks --region us-west-1
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_VALUES: aws_upgrade_from_previous_release_values.yaml
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
gke-autopilot-test:
name: Test helm install in GKE/Autopilot - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: gke/autopilot
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
project_id: ${{ secrets.GKE_PROJECT }}
credentials_json: ${{ secrets.GKE_SA_KEY }}
- uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with:
project_id: ${{ secrets.GKE_PROJECT }}
- uses: google-github-actions/get-gke-credentials@3da1e46a907576cefaa90c484278bb5b259dd395 # v3.0.0
with:
cluster_name: ${{ secrets.GKE_AUTOPILOT_CLUSTER }}
location: ${{ secrets.GKE_REGION }}
project_id: ${{ secrets.GKE_PROJECT }}
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
gke-autopilot-upgrade-test:
name: Test helm upgrade in GKE/Autopilot - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: gke/autopilot
SKIP_TESTS: "true"
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
project_id: ${{ secrets.GKE_PROJECT }}
credentials_json: ${{ secrets.GKE_SA_KEY }}
- uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with:
project_id: ${{ secrets.GKE_PROJECT }}
- uses: google-github-actions/get-gke-credentials@3da1e46a907576cefaa90c484278bb5b259dd395 # v3.0.0
with:
cluster_name: ${{ secrets.GKE_AUTOPILOT_CLUSTER }}
location: ${{ secrets.GKE_REGION }}
project_id: ${{ secrets.GKE_PROJECT }}
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_VALUES: gke_autopilot_upgrade_from_previous_release_values.yaml
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
aks-windows-test:
name: Test helm install in AKS - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: aks
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Set up kubelogin for non-interactive login
uses: azure/use-kubelogin@76597ae0fcbaace21b05e13a2cbf8daee2c6e820 # v1.2
with:
kubelogin-version: "v0.0.24"
- uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- uses: azure/aks-set-context@c7eb093e5a5d47caa333f64974d5fd1cd4bf069d # v4
with:
resource-group: ${{ secrets.AKS_RESOURCE_GROUP }}
cluster-name: ${{ secrets.AKS_CLUSTER_NAME }}
admin: false
use-kubelogin: true
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
aks-windows-upgrade-test:
name: Test helm upgrade in AKS - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: aks
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Set up kubelogin for non-interactive login
uses: azure/use-kubelogin@76597ae0fcbaace21b05e13a2cbf8daee2c6e820 # v1.2
with:
kubelogin-version: "v0.0.24"
- uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- uses: azure/aks-set-context@c7eb093e5a5d47caa333f64974d5fd1cd4bf069d # v4
with:
resource-group: ${{ secrets.AKS_RESOURCE_GROUP }}
cluster-name: ${{ secrets.AKS_CLUSTER_NAME }}
admin: false
use-kubelogin: true
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
gce-autopilot-test:
name: Test helm install in GCE (kops) - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: gce
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Update dependencies
run: |
make dep-update
- name: Set kubeconfig
run: echo "$GCE_KUBECONFIG" > /tmp/kubeconfig
env:
GCE_KUBECONFIG: ${{ secrets.GCE_KUBECONFIG }}
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
KUBECONFIG: /tmp/kubeconfig
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
eks-fargate-test:
name: Test helm install in EKS Fargate - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks-fargate
KUBE_TEST_ENV: "eks/fargate"
SKIP_TESTS: "true" # we need to skip functional tests as we have not set probes to listen to the traffic.
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: us-west-2
- name: Install kubeconfig
run: |
aws eks update-kubeconfig --name github-gdi-fargate --region us-west-2
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
eks-fargate-upgrade-test:
name: Test helm upgrade in EKS Fargate - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks-fargate
KUBE_TEST_ENV: "eks/fargate"
SKIP_TESTS: "true" # we need to skip functional tests as we have not set probes to listen to the traffic.
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: us-west-2
- name: Install kubeconfig
run: |
aws eks update-kubeconfig --name github-gdi-fargate --region us-west-2
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_VALUES: eks_fargate_upgrade_from_previous_release_values.yaml
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
eks-auto-mode-test:
name: Test helm install in EKS Auto Mode - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks-auto-mode
KUBE_TEST_ENV: eks/auto-mode
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: us-west-2
- name: Install kubeconfig
run: |
aws eks update-kubeconfig --name rotel-eks-autotest --region us-west-2
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
eks-auto-mode-upgrade-test:
name: Test helm upgrade in EKS Auto Mode - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks-auto-mode
KUBE_TEST_ENV: eks/auto-mode
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
aws-access-key-id: ${{ secrets.AWS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET }}
aws-region: us-west-2
- name: Install kubeconfig
run: |
aws eks update-kubeconfig --name rotel-eks-autotest --region us-west-2
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_VALUES: eks_auto_mode_upgrade_from_previous_release_values.yaml
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
rosa-test:
name: Test helm install in ROSA - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-rosa
KUBE_TEST_ENV: rosa
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Set kubeconfig
run: |
echo "$ROSA_KUBECONFIG" > ${{ env.KUBECONFIG }}
chmod 600 ${{ env.KUBECONFIG }}
env:
ROSA_KUBECONFIG: ${{ secrets.ROSA_KUBECONFIG }}
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
rosa-upgrade-test:
name: Test helm upgrade in ROSA - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-rosa
KUBE_TEST_ENV: rosa
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Set kubeconfig
run: |
echo "$ROSA_KUBECONFIG" > ${{ env.KUBECONFIG }}
chmod 600 ${{ env.KUBECONFIG }}
env:
ROSA_KUBECONFIG: ${{ secrets.ROSA_KUBECONFIG }}
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_VALUES: rosa_upgrade_from_previous_release_values.yaml
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
gke-test:
name: Test helm install in GKE - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: gke
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
project_id: ${{ secrets.GKE_PROJECT }}
credentials_json: ${{ secrets.GKE_SA_KEY }}
- uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with:
project_id: ${{ secrets.GKE_PROJECT }}
- uses: google-github-actions/get-gke-credentials@3da1e46a907576cefaa90c484278bb5b259dd395 # v3.0.0
with:
cluster_name: ${{ secrets.GKE_CLUSTER }}
location: ${{ secrets.GKE_REGION }}
project_id: ${{ secrets.GKE_PROJECT }}
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest
gke-upgrade-test:
name: Test helm upgrade in GKE - credentials needed
if: |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]') ||
(github.ref == 'refs/heads/main')
env:
KUBE_TEST_ENV: gke
SKIP_TESTS: "true"
runs-on: ubuntu-latest
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'Ignore Tests') }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Download the latest published release to use as a base for the upgrade
run: |
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm repo update
helm pull splunk-otel-collector-chart/splunk-otel-collector --untar --untardir base
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
project_id: ${{ secrets.GKE_PROJECT }}
credentials_json: ${{ secrets.GKE_SA_KEY }}
- uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with:
project_id: ${{ secrets.GKE_PROJECT }}
- uses: google-github-actions/get-gke-credentials@3da1e46a907576cefaa90c484278bb5b259dd395 # v3.0.0
with:
cluster_name: ${{ secrets.GKE_CLUSTER }}
location: ${{ secrets.GKE_REGION }}
project_id: ${{ secrets.GKE_PROJECT }}
- name: Update dependencies
run: |
make dep-update
- name: run functional tests
env:
HOST_ENDPOINT: 0.0.0.0
UPGRADE_FROM_VALUES: gke_upgrade_from_previous_release_values.yaml
UPGRADE_FROM_CHART_DIR: base/splunk-otel-collector
run: |
TEARDOWN_BEFORE_SETUP=true SUITE=functional make functionaltest