This test validates idempotent re-release behavior for the rh-advisories pipeline:
- First release: all tasks run, advisory created (
skip_release=false) - Second release (same snapshot):
filter-already-released-advisory-imagesdetects the existing advisory in Pyxis →skip_release=true - All downstream tasks are skipped; release CR still reaches
Released=True advisory.urlis present in second release status (populated from filter result, not fromcreate-advisory)
- GitHub repo: https://github.com/hacbs-release-tests/e2e-base
- GitHub personal access token (classic) for above repo with admin:repo_hook, delete_repo, repo scopes.
- The password to the vault files. (Contact a member of the Release team should you want to run this test suite.)
- Access to the target cluster and tenant and managed namespaces
- Cluster: stg-rh01 (staging cluster)
- Tenant Namespace:
dev-release-team-tenant(local) orrhtap-release-2-tenant(PaC) - Managed Namespace:
managed-release-team-tenant
GITHUB_TOKEN- GitHub personal access tokenVAULT_PASSWORD_FILE- Path to file containing ansible vault passwordRELEASE_CATALOG_GIT_URL- Release service catalog URL for the RPARELEASE_CATALOG_GIT_REVISION- Release service catalog revision for the RPA
KUBECONFIG- Kubeconfig file for cluster accessLARGE_SNAPSHOT_COMPONENT_COUNT- Number of components in snapshot (default: 1)LARGE_SNAPSHOT_TIMEOUT- Pipeline timeout (default: 2h0m0s)
- Contains resource names and configuration values for testing.
- Uses a single-component pre-built snapshot to minimize first release duration.
- Overrides standard build functions to skip builds and use pre-built images.
- Implements the two-phase idempotent test: first release then second release.
- Verifies all acceptance criteria post second release.
- Reusable functions for tests.
- Secrets are stored in ansible vault files (symlinked from
rh-advisories-large-snapshot):
- Second release: all major tasks (
create-advisory,push-snapshot,verify-conforma,rh-direct-sign-image, etc.) appear inskippedTasks advisory.urlpresent in second releasestatus.artifacts(written byupdate-cr-status-skippedfrom filter result, notcreate-advisory)
For local testing:
../run-test.sh rh-advisories-idempotentNote: This test runs two full releases sequentially. The first release takes approximately 1-2 hours in staging; the second release completes quickly once the filter detects the existing advisory.
Use --skip-cleanup to preserve resources after the test:
../run-test.sh rh-advisories-idempotent --skip-cleanupTo update secrets:
ansible-vault decrypt vault/tenant-secrets.yaml --output "/tmp/tenant-secrets.yaml" \
--vault-password-file <vault password file>
vi /tmp/tenant-secrets.yaml
ansible-vault encrypt /tmp/tenant-secrets.yaml --output "vault/tenant-secrets.yaml" \
--vault-password-file <vault password file>
rm /tmp/tenant-secrets.yaml