Skip to content

Zane/configmap testing pipeline#1657

Open
zanejohnson-azure wants to merge 26 commits intoci_prodfrom
zane/configmap-testing-pipeline
Open

Zane/configmap testing pipeline#1657
zanejohnson-azure wants to merge 26 commits intoci_prodfrom
zane/configmap-testing-pipeline

Conversation

@zanejohnson-azure
Copy link
Copy Markdown
Contributor

No description provided.

- Pipeline: azure-pipeline-config-tests.yaml (manual trigger)
- Shared runner script: run-configtest-scenario.sh (apply → rollout restart → TestKube)
- First test scenario: toggle collect_ama_logs_process_metrics, verify telegraf counts
- Ginkgo DescribeTable with labeled entries for modular scenario addition
- CountProcessInstances() utility function
- TestKube CRS files for process-metrics-enabled and process-metrics-default
TestKube clones the repo at the revision specified in the CRS.
The configprocessing tests don't exist on ci_prod yet, so the
script now patches the CRS revision before applying it.
CountProcessInstances uses bash which doesn't exist in Windows containers.
Added CountWindowsProcessInstances using PowerShell's Get-Process, and
split the test table so Windows entries use the correct function.
Telegraf is off by default in ama-logs-rs. It only starts when
prometheus_data_collection_settings.cluster has urls or
kubernetes_services configured.
- Add getFirstRunningPod() to skip errored/terminated pods when
  counting processes, preventing exec failures on non-running pods
- RS expected telegraf count when process-metrics-enabled should be 1
  (only procstat), not 2 (main telegraf requires prometheus cluster config)
The operator image (docker.io/kubeshop/testkube-operator) fails to pull
on fresh clusters. Instead, extract CRDs from the chart via helm template
and apply them before the main install, keeping the operator disabled.
This matches existing CI clusters which have CRDs from prior installs.
--show-only doesn't support globs. The CRDs are in a single file:
charts/testkube-operator/templates/crds.yaml (gated by installCRD).
Also add explicit --set testkube-operator.installCRD=true.
CRDs created via kubectl apply lack Helm metadata labels/annotations.
Helm refuses to install if it can't import them into the release.
Add app.kubernetes.io/managed-by=Helm label and release annotations
to all testkube CRDs after pre-installing them.
Move config test definitions from pipe-delimited workflow strings in the
pipeline YAML to a declarative configmap-test-matrix.yaml. A new
run-matrix-tests.sh script parses the matrix with yq/jq and runs all
cases sequentially. Adding a new scenario is now a single YAML block
with no script or pipeline changes needed.
@zanejohnson-azure zanejohnson-azure requested a review from a team as a code owner April 23, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant