-
Notifications
You must be signed in to change notification settings - Fork 2.3k
INTEROP-9417: Add acm-tests-clc-smoke step for reduced CLC scope #83359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
amp-rh
wants to merge
4
commits into
openshift:main
Choose a base branch
from
amp-rh:interop-9417-clc-smoke
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
4886163
INTEROP-9417: Add acm-tests-clc-smoke step for reduced CLC scope
amp-rh 21e6096
fixup: harden xtrace and report collection
amp-rh f61fdbc
fixup: mpitt hardening (credential validation + secret handling)
amp-rh 674dd8f
fixup: regenerate metadata and add SKIP_OCP_DEPLOY env var
amp-rh File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| approvers: | ||
| - cspi-qe-ocp-lp | ||
| - dtthuynh | ||
| - vboulos | ||
| options: {} | ||
| reviewers: | ||
| - cspi-qe-ocp-lp | ||
| - dtthuynh | ||
| - vboulos |
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| # acm-tests-clc-smoke-ref<!-- omit from toc --> | ||
|
|
||
| ## Table of Contents<!-- omit from toc --> | ||
| - [Purpose](#purpose) | ||
| - [Process](#process) | ||
| - [Requirements](#requirements) | ||
| - [Infrastructure](#infrastructure) | ||
| - [Environment Variables](#environment-variables) | ||
|
|
||
| ## Purpose | ||
|
|
||
| Smoke-scoped variant of [acm-tests-clc-create](../clc-create/README.md) with a right-sized timeout and strict failure handling for OPP interop. | ||
|
|
||
| The full `acm-tests-clc-create` step already creates only 1 AWS managed cluster (~50 min actual runtime) but carries a 28800s (8h) timeout and suppresses failures with `|| :`. This step: | ||
| - Reduces the timeout to 5400s (90 min), giving ~80% headroom over the observed average. | ||
| - Propagates failures so downstream steps (`acm-fetch-managed-clusters`, `acm-opp-app`) fail fast instead of running against a missing cluster. | ||
|
|
||
| > **IMPORTANT** | ||
| > You must use the [acm-tests-clc-destroy-ref](../clc-destroy/README.md) as a post step when using this step. If you do not and succeed in running this step then you will leave clusters running on the ACM QE team's cloud. | ||
|
|
||
| ## Process | ||
|
|
||
| - Copies secret options file needed for test execution. | ||
| - Injects AWS credentials from the cluster profile into options.yaml. | ||
| - Sets dynamic variables based on the provisioned hub cluster. | ||
| - Runs `execute_clc_interop_commands.sh` which invokes Cypress with tag filter `@create+aws+-sno+-@clusterpool` (controlled by `TEST_STAGE=OCPInterop-create` inside the image). | ||
|
|
||
| ## Requirements | ||
|
|
||
| ### Infrastructure | ||
|
|
||
| - An existing OpenShift cluster to act as the target Hub. | ||
| - "advanced-cluster-management" operator installed (see [`install-operators`](../../../install-operators/README.md)). | ||
| - MCH custom resource installed (see [acm-mch step](../mch/README.md)). | ||
|
|
||
| ### Environment Variables | ||
|
|
||
| - Please see [acm-tests-clc-smoke-ref.yaml](acm-tests-clc-smoke-ref.yaml) env section. |
61 changes: 61 additions & 0 deletions
61
ci-operator/step-registry/acm/tests/clc-smoke/acm-tests-clc-smoke-commands.sh
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| #!/bin/bash | ||
| set -euxo pipefail; shopt -s inherit_errexit | ||
|
|
||
| typeset secretsDir="/tmp/secrets" | ||
| typeset optionFile="./options.yaml" | ||
| typeset awsCredFile="${CLUSTER_PROFILE_DIR}/.awscred" | ||
|
|
||
| if [[ "${SKIP_OCP_DEPLOY:-false}" == "true" ]]; then | ||
| cp "${secretsDir}/ci/kubeconfig" "${SHARED_DIR}/kubeconfig" | ||
| cp "${secretsDir}/ci/kubeadmin-password" "${SHARED_DIR}/kubeadmin-password" | ||
| fi | ||
|
|
||
| cp "${secretsDir}/clc-interop/secret-options-yaml" "${optionFile}" | ||
|
|
||
| if [[ -f "${awsCredFile}" ]]; then | ||
| typeset awsAccKeyID= | ||
| typeset awsAccKeyToken= | ||
|
|
||
| set +x | ||
| awsAccKeyID="$(sed -nE 's/^\s*aws_access_key_id\s*=\s*//p;T;q' "${awsCredFile}")" | ||
| awsAccKeyToken="$(sed -nE 's/^\s*aws_secret_access_key\s*=\s*//p;T;q' "${awsCredFile}")" | ||
|
|
||
| if [[ -z "${awsAccKeyID}" ]] || [[ -z "${awsAccKeyToken}" ]]; then | ||
| echo "ERROR: Failed to extract AWS credentials from ${awsCredFile}" 1>&2 | ||
| exit 1 | ||
| fi | ||
|
|
||
| yq -o json eval . "${optionFile}" | | ||
| jq -c \ | ||
| --arg awsAccKeyID "${awsAccKeyID}" \ | ||
| --rawfile awsAccKeyToken <(printf '%s' "${awsAccKeyToken}") \ | ||
| ' | ||
| .options.connections.apiKeys.aws|=( | ||
| .awsAccessKeyID=$awsAccKeyID | | ||
| .awsSecretAccessKeyID=($awsAccKeyToken | rtrimstr("\n")) | ||
| ) | ||
| ' | | ||
| yq -p json -o yaml eval . > "${optionFile}.tmp" | ||
| mv -f "${optionFile}.tmp" "${optionFile}" | ||
| set -x | ||
|
|
||
| unset awsAccKeyID awsAccKeyToken | ||
| fi | ||
|
|
||
| set +x | ||
| export CYPRESS_OPTIONS_HUB_PASSWORD= | ||
| CYPRESS_OPTIONS_HUB_PASSWORD="$(cat "${SHARED_DIR}/kubeadmin-password")" | ||
|
|
||
| typeset clcStatus=0 | ||
|
|
||
| CYPRESS_BASE_URL="$(oc whoami --show-console)" \ | ||
| CYPRESS_HUB_API_URL="$(oc whoami --show-server)" \ | ||
| CYPRESS_CLC_OCP_IMAGE_VERSION="$(cat "${secretsDir}/clc/ocp_image_version")" \ | ||
| CLOUD_PROVIDERS="$(cat "${secretsDir}/clc/ocp_cloud_providers")" \ | ||
| bash +x ./execute_clc_interop_commands.sh || clcStatus=$? | ||
| set -x | ||
|
|
||
| unset CYPRESS_OPTIONS_HUB_PASSWORD | ||
|
|
||
| cp -r reports "${ARTIFACT_DIR}/" | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| exit "${clcStatus}" | ||
15 changes: 15 additions & 0 deletions
15
ci-operator/step-registry/acm/tests/clc-smoke/acm-tests-clc-smoke-ref.metadata.json
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| { | ||
| "path": "acm/tests/clc-smoke/acm-tests-clc-smoke-ref.yaml", | ||
| "owners": { | ||
| "approvers": [ | ||
| "cspi-qe-ocp-lp", | ||
| "dtthuynh", | ||
| "vboulos" | ||
| ], | ||
| "reviewers": [ | ||
| "cspi-qe-ocp-lp", | ||
| "dtthuynh", | ||
| "vboulos" | ||
| ] | ||
| } | ||
| } |
73 changes: 73 additions & 0 deletions
73
ci-operator/step-registry/acm/tests/clc-smoke/acm-tests-clc-smoke-ref.yaml
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| ref: | ||
| as: acm-tests-clc-smoke | ||
| from: clc-ui-e2e | ||
| commands: acm-tests-clc-smoke-commands.sh | ||
| timeout: 5400s | ||
| resources: | ||
| requests: | ||
| cpu: '2' | ||
| memory: 6Gi | ||
| credentials: | ||
| - namespace: test-credentials | ||
| name: opp-acm-clc-credentials | ||
| mount_path: /tmp/secrets/clc-interop | ||
| - namespace: test-credentials | ||
| name: acm-clc-credentials | ||
| mount_path: /tmp/secrets/clc | ||
| - namespace: test-credentials | ||
| name: acm-ci-credentials | ||
| mount_path: /tmp/secrets/ci | ||
| env: | ||
| - name: CYPRESS_OC_IDP | ||
| default: "kube:admin" | ||
| documentation: |- | ||
| Identity | ||
| - name: CYPRESS_OPTIONS_HUB_USER | ||
| default: "kubeadmin" | ||
| documentation: |- | ||
| Hub cluster username | ||
| - name: CYPRESS_SPOKE_CLUSTER | ||
| default: "" | ||
| documentation: |- | ||
| Identify spoke clusters | ||
| - name: BROWSER | ||
| default: "chrome" | ||
| documentation: |- | ||
| Set browser for cypress | ||
| - name: CUSTOMER_TAGS | ||
| default: "" | ||
| documentation: |- | ||
| Cypress grep tag filter (passed through to test execution) | ||
| - name: CYPRESS_CLC_OC_IDP | ||
| default: "clc-e2e-htpasswd" | ||
| documentation: |- | ||
| Serves tests RBAC settings | ||
| - name: CYPRESS_CLC_RBAC_PASS | ||
| default: "test-RBAC-4-e2e" | ||
| documentation: |- | ||
| Serves tests RBAC settings | ||
| - name: CYPRESS_CLC_OCP_IMAGE_REGISTRY | ||
| default: "quay.io/openshift-release-dev/ocp-release" | ||
| documentation: |- | ||
| Image registry | ||
| - name: CYPRESS_ACM_NAMESPACE | ||
| default: "ocm" | ||
| documentation: |- | ||
| Acm namespace | ||
| - name: CYPRESS_MCE_NAMESPACE | ||
| default: "multicluster-engine" | ||
| documentation: |- | ||
| Mce namespace | ||
| - name: IMPORT_KUBERNETES_CLUSTERS | ||
| default: "" | ||
| documentation: |- | ||
| Comma separated list of imports | ||
| - name: SKIP_OCP_DEPLOY | ||
| default: "false" | ||
| documentation: |- | ||
| When true, copies kubeconfig from CI secrets instead of using cluster profile | ||
| documentation: |- | ||
| Smoke-scoped ACM cluster lifecycle step that creates a single managed | ||
| cluster on AWS (~50 min). Differs from acm-tests-clc-create only in | ||
| timeout (5400s vs 28800s) and failure propagation (no || :) so that | ||
| downstream steps fail fast if cluster creation does not succeed. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.