Skip to content

Commit

Permalink
ci: add tests for tailing-sidecar-otel
Browse files Browse the repository at this point in the history
  • Loading branch information
kasia-kujawa committed Dec 14, 2023
1 parent 0c4c013 commit fd9ba76
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 14 deletions.
54 changes: 45 additions & 9 deletions .github/workflows/pull_requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,26 @@ jobs:
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: '1.20'
go-version: '1.21'
cache-dependency-path: |
.otelcol-builder.yaml
.goreleaser.yaml
- name: Set up QEMU
uses: docker/[email protected]
- name: Set up Docker Buildx
uses: docker/[email protected]
- name: Install opentelemetry-collector-builder
working-directory: ./sidecar/otelcol
run: make install-builder
- uses: imranismail/setup-kustomize@v2
- name: Install kuttl
run: |
curl -Lo /usr/local/bin/kubectl-kuttl https://github.com/kudobuilder/kuttl/releases/download/v${{ env.KUTTL_VERSION }}/kubectl-kuttl_${{ env.KUTTL_VERSION }}_linux_x86_64
chmod +x /usr/local/bin/kubectl-kuttl
- name: Run Helm e2e tests
run: make e2e-helm
- name: Run Helm e2e tests for Fluent Bit in tailing sidecar
run: make e2e-helm TAILING_SIDECAR=fluentbit
- name: Run Helm e2e tests for otelcol in tailing sidecar
run: make e2e-helm TAILING_SIDECAR=otelcol

test-helm-chart-with-cert-manager:
name: Test Helm chart with cert-manager
Expand All @@ -115,14 +127,26 @@ jobs:
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: '1.20'
go-version: '1.21'
cache-dependency-path: |
sidecar/otelcol/.otelcol-builder.yaml
sidecar/otelcol/.goreleaser.yaml
- name: Set up QEMU
uses: docker/[email protected]
- name: Set up Docker Buildx
uses: docker/[email protected]
- name: Install opentelemetry-collector-builder
working-directory: ./sidecar/otelcol
run: make install-builder
- uses: imranismail/setup-kustomize@v2
- name: Install kuttl
run: |
curl -Lo /usr/local/bin/kubectl-kuttl https://github.com/kudobuilder/kuttl/releases/download/v${{ env.KUTTL_VERSION }}/kubectl-kuttl_${{ env.KUTTL_VERSION }}_linux_x86_64
chmod +x /usr/local/bin/kubectl-kuttl
- name: Run e2e tests
run: make e2e-helm-certmanager
- name: Run Helm e2e tests for Fluent Bit in tailing sidecar
run: make e2e-helm-certmanager TAILING_SIDECAR=fluentbit
- name: Run Helm e2e tests for otelcol in tailing sidecar
run: make e2e-helm-certmanager TAILING_SIDECAR=otelcol

test-helm-chart-with-custom-configuration:
name: Test Helm chart with custom configuration
Expand All @@ -133,11 +157,23 @@ jobs:
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: '1.20'
go-version: '1.21'
cache-dependency-path: |
sidecar/otelcol/.otelcol-builder.yaml
sidecar/otelcol/.goreleaser.yaml
- name: Set up QEMU
uses: docker/[email protected]
- name: Set up Docker Buildx
uses: docker/[email protected]
- name: Install opentelemetry-collector-builder
working-directory: ./sidecar/otelcol
run: make install-builder
- uses: imranismail/setup-kustomize@v2
- name: Install kuttl
run: |
curl -Lo /usr/local/bin/kubectl-kuttl https://github.com/kudobuilder/kuttl/releases/download/v${{ env.KUTTL_VERSION }}/kubectl-kuttl_${{ env.KUTTL_VERSION }}_linux_x86_64
chmod +x /usr/local/bin/kubectl-kuttl
- name: Run e2e tests
run: make e2e-helm-custom-configuration
- name: Run Helm e2e tests for Fluent Bit in tailing sidecar
run: make e2e-helm-custom-configuration TAILING_SIDECAR=fluentbit
- name: Run Helm e2e tests for otelcol in tailing sidecar
run: make e2e-helm-custom-configuration TAILING_SIDECAR=otelcol
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ e2e-helm-certmanager: KUTTL_CONFIG = kuttl-test-helm-certmanager.yaml
e2e-helm-certmanager: e2e

.PHONY: e2e-helm-custom-configuration
e2e-helm-custom-configuration: KUTTL_CONFIG = kuttl-test-helm-custom-configuration.yaml
e2e-helm-custom-configuration: KUTTL_CONFIG = kuttl-test-helm-$(TAILING_SIDECAR)-custom-configuration.yaml
e2e-helm-custom-configuration: e2e

# We sleep for 10 seconds here because webhooks can mysteriously be unavailable even though the readiness check passes
Expand Down
53 changes: 53 additions & 0 deletions helm/tests/values.withOtelcolCustomConfiguration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
operator:
image:
repository: registry.localhost:5000/sumologic/tailing-sidecar-operator
tag: test

sidecar:
image:
repository: registry.localhost:5000/sumologic/tailing-sidecar
tag: test

resources:
limits:
cpu: "0"
memory: "0"
requests:
cpu: "0"
memory: "0"

config:
content:
mountPath: /etc/otel/
config.yaml: |
receivers:
filelog:
include:
- ${PATH_TO_TAIL}
start_at: beginning
storage: file_storage
exporters:
file:
path: /dev/stdout
encoding: text_encoding
extensions:
text_encoding:
file_storage:
directory: /var/lib/otc
service:
extensions:
- text_encoding
- file_storage
telemetry:
metrics:
level: none
logs:
output_paths:
- /var/log/otelcol.log
pipelines:
logs:
exporters: [file]
receivers: [filelog]
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ kindContainers:
- registry.localhost:5000/sumologic/tailing-sidecar-operator:test
- registry.localhost:5000/sumologic/tailing-sidecar:test
commands:
- command: helm upgrade --install test-release ./helm/tailing-sidecar-operator -f ./helm/tests/values.withCustomConfiguration.yaml -n tailing-sidecar-system --create-namespace
- command: helm upgrade --install test-release ./helm/tailing-sidecar-operator -f ./helm/tests/values.withFluentBitCustomConfiguration.yaml -n tailing-sidecar-system --create-namespace
- command: make e2e-wait-until-operator-ready
16 changes: 16 additions & 0 deletions kuttl-test-helm-otelcol-custom-configuration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: kuttl.dev/v1beta1
kind: TestSuite
artifactsDir: ./tests/_build/artifacts/
testDirs:
- ./tests/sidecar/
- ./tests/operator/
timeout: 150
parallel: 4
startKIND: true
kindNodeCache: true
kindContainers:
- registry.localhost:5000/sumologic/tailing-sidecar-operator:test
- registry.localhost:5000/sumologic/tailing-sidecar:test
commands:
- command: helm upgrade --install test-release ./helm/tailing-sidecar-operator -f ./helm/tests/values.withOtelcolCustomConfiguration.yaml -n tailing-sidecar-system --create-namespace
- command: make e2e-wait-until-operator-ready
5 changes: 2 additions & 3 deletions sidecar/otelcol/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ BUILDER=$(BUILDER_BIN_PATH)/$(BUILDER_BIN_NAME)

INSTALLED_VERSION := $(shell $(BUILDER) version 2>&1)

CONTAINER_REGISTRY := ghcr.io/sumologic/tailing-sidecar-otel

# go-get-tool will 'go get' any package $2 and install it to $1.
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
define go-get-tool
Expand Down Expand Up @@ -74,8 +72,9 @@ release: ensure-correct-builder-version install-goreleaser
@$(GORELEASER) release --clean

.PHONY: build-test-image
build-test-image: GHCR_IMAGE = ghcr.io/sumologic/tailing-sidecar-otel
build-test-image: build
docker tag $(CONTAINER_REGISTRY):latest-$(ARCH) $(TAG)
docker tag $(GHCR_IMAGE):main-$(ARCH) $(TAG)

.PHONY: generate-sources
generate-sources:
Expand Down

0 comments on commit fd9ba76

Please sign in to comment.