[agent] use root_path #1536
Workflow file for this run
This file contains 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
name: functional-tests | |
on: | |
pull_request: | |
push: | |
branches: [ main ] | |
workflow_dispatch: | |
inputs: | |
UPDATE_EXPECTED_RESULTS: | |
description: 'Set this to true to update expected results and collect updated test output as a Github workflow artifact.' | |
required: false | |
default: false | |
env: | |
# 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: | |
kubernetes-test: | |
env: | |
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing | |
KUBE_TEST_ENV: kind | |
strategy: | |
fail-fast: false | |
matrix: | |
# The kubernetes_version matrix entries are currently following native Kubernetes version support and +1, see: https://endoflife.date/kubernetes | |
# To check latest versions, see: https://hub.docker.com/r/kindest/node/tags | |
k8s-version: | |
- v1.30.0 # Support: 28 Apr 2025 - 28 Jun 2025 | |
- v1.29.0 # Support: 28 Dec 2024 - 28 Feb 2025 | |
- v1.28.0 # Support: 28 Aug 2024 - 28 Oct 2024 | |
- v1.27.3 # Support: 28 Apr 2024 - 28 Jun 2024 | |
- v1.26.6 # Support: 28 Dec 2023 - 28 Feb 2024 | |
# Test current +1 out-of-date Kubernetes version to cover EKS's extended support version matrix | |
- v1.25.11 # Support: 27 Aug 2023 - 27 Oct 2023 | |
test-job: | |
- functional | |
- histogram | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ~1.22.5 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Create kind cluster | |
uses: helm/[email protected] | |
with: | |
node_image: kindest/node:${{ matrix.k8s-version }} | |
kubectl_version: ${{ matrix.k8s-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: Deploy cert-manager | |
run: | | |
make cert-manager | |
- name: run functional tests | |
env: | |
K8S_VERSION: ${{ matrix.k8s-version }} | |
UPDATE_EXPECTED_RESULTS: ${{ github.event.inputs.UPDATE_EXPECTED_RESULTS || 'false' }} | |
run: | | |
cd functional_tests | |
TEARDOWN_BEFORE_SETUP=true UPDATE_EXPECTED_RESULTS=${{ env.UPDATE_EXPECTED_RESULTS }} go test -v -tags ${{ matrix.test-job }} | |
- name: 'Upload test results' | |
if: failure() && env.UPDATE_EXPECTED_RESULTS == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: functional_tests-${{ matrix.test-job }}-${{ matrix.k8s-version }} | |
path: functional_tests/results | |
retention-days: 5 | |
eks-test: | |
name: Test helm install in EKS - credentials needed | |
needs: kubernetes-test | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
concurrency: | |
group: eks-access | |
env: | |
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks | |
KUBE_TEST_ENV: eks | |
SKIP_TESTS: "true" # we need to skip functional tests as we have not set probes to listen to the traffic. | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ~1.21.8 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
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: Deploy cert-manager | |
run: | | |
make cert-manager | |
- name: run functional tests | |
env: | |
HOST_ENDPOINT: 0.0.0.0 | |
run: | | |
cd functional_tests | |
TEARDOWN_BEFORE_SETUP=true go test -v -tags functional | |
eks-upgrade-test: | |
name: Test helm upgrade in EKS - credentials needed | |
needs: kubernetes-test | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
concurrency: | |
group: eks-access | |
env: | |
KUBECONFIG: /tmp/kube-config-splunk-otel-collector-chart-functional-testing-eks | |
KUBE_TEST_ENV: eks | |
SKIP_TESTS: "true" # we need to skip functional tests as we have not set probes to listen to the traffic. | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout main if in a PR | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
path: base | |
ref: main | |
- name: Checkout previous main commit if in main | |
if: github.event_name != 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
path: base | |
ref: HEAD | |
fetch-depth: 2 | |
- name: Checkout previous main commit if in main | |
if: github.event_name != 'pull_request' | |
run: cd base && git checkout HEAD^ | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ~1.21.8 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
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: | | |
cd base && make dep-update | |
- name: Deploy cert-manager | |
run: | | |
cd base && make cert-manager | |
- name: Deploy previous version of the chart | |
run: | | |
cd base && helm install sock helm-charts/splunk-otel-collector --set cloudProvider=aws --set distribution=eks --set splunkObservability.realm=us0 --set splunkObservability.accessToken=xxxxx | |
- name: Update dependencies | |
run: | | |
make dep-update | |
- name: Deploy cert-manager | |
run: | | |
make cert-manager | |
- name: run functional tests | |
env: | |
HOST_ENDPOINT: 0.0.0.0 | |
run: | | |
cd functional_tests | |
go test -v -tags functional | |
gke-autopilot-test: | |
name: Test helm install in GKE/Autopilot - credentials needed | |
needs: kubernetes-test | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
concurrency: | |
group: gke-autopilot-access | |
env: | |
KUBE_TEST_ENV: gke/autopilot | |
SKIP_TESTS: "true" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ~1.21.8 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- uses: 'google-github-actions/[email protected]' | |
with: | |
project_id: ${{ secrets.GKE_PROJECT }} | |
credentials_json: ${{ secrets.GKE_SA_KEY }} | |
- uses: google-github-actions/[email protected] | |
with: | |
project_id: ${{ secrets.GKE_PROJECT }} | |
- uses: google-github-actions/[email protected] | |
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: | | |
cd functional_tests | |
TEARDOWN_BEFORE_SETUP=true go test -v -tags functional | |
gke-autopilot-upgrade-test: | |
name: Test helm upgrade in GKE/Autopilot - credentials needed | |
needs: kubernetes-test | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
concurrency: | |
group: gke-autopilot-access | |
env: | |
KUBE_TEST_ENV: gke/autopilot | |
SKIP_TESTS: "true" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout main if in a PR | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
path: base | |
ref: main | |
- name: Checkout previous main commit if in main | |
if: github.event_name != 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
path: base | |
ref: HEAD | |
fetch-depth: 2 | |
- name: Checkout previous main commit if in main | |
if: github.event_name != 'pull_request' | |
run: cd base && git checkout HEAD^ | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ~1.21.8 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- uses: 'google-github-actions/[email protected]' | |
with: | |
project_id: ${{ secrets.GKE_PROJECT }} | |
credentials_json: ${{ secrets.GKE_SA_KEY }} | |
- uses: google-github-actions/[email protected] | |
with: | |
project_id: ${{ secrets.GKE_PROJECT }} | |
- uses: google-github-actions/[email protected] | |
with: | |
cluster_name: ${{ secrets.GKE_AUTOPILOT_CLUSTER }} | |
location: ${{ secrets.GKE_REGION }} | |
project_id: ${{ secrets.GKE_PROJECT }} | |
- name: Update dependencies | |
run: | | |
make dep-update | |
- name: Deploy previous version of the chart | |
run: | | |
cd base | |
helm dependency update helm-charts/splunk-otel-collector | |
helm install sock helm-charts/splunk-otel-collector --set cloudProvider=gcp --set distribution=gke/autopilot --set splunkObservability.realm=us0 --set splunkObservability.accessToken=xxxxx | |
- name: run functional tests | |
env: | |
HOST_ENDPOINT: 0.0.0.0 | |
run: | | |
cd functional_tests | |
go test -v -tags functional | |
aks-windows-test: | |
name: Test helm install in AKS - credentials needed | |
needs: kubernetes-test | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
concurrency: | |
group: aks-windows-group | |
env: | |
KUBE_TEST_ENV: aks | |
SKIP_TESTS: "true" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ~1.21.8 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Set up kubelogin for non-interactive login | |
uses: azure/[email protected] | |
with: | |
kubelogin-version: "v0.0.24" | |
- uses: azure/[email protected] | |
with: | |
creds: ${{ secrets.AZURE_CREDENTIALS }} | |
- uses: azure/aks-set-context@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: | | |
cd functional_tests | |
TEARDOWN_BEFORE_SETUP=true go test -v -tags functional |