diff --git a/ci-operator/config/RedHatQE/interop-testing/.config.prowgen b/ci-operator/config/RedHatQE/interop-testing/.config.prowgen index 372ee311c0ac1..7b2283861ac42 100644 --- a/ci-operator/config/RedHatQE/interop-testing/.config.prowgen +++ b/ci-operator/config/RedHatQE/interop-testing/.config.prowgen @@ -13,7 +13,7 @@ slack_reporter: - cnv-odf-tests-aws-ipi-ocp419-fips - cnv-odf-tests-aws-ipi-ocp420 - cnv-odf-tests-aws-ipi-ocp420-fips - - channel: '#team-ecoeng-fusion-access' + - channel: '#team-ecoeng-ibm-fusion-access' job_states_to_report: - success - failure @@ -23,4 +23,4 @@ slack_reporter: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> {{end}}' job_names: - - fusion-access-operator-ipi-ocp420 \ No newline at end of file + - ibm-fusion-access-operator-ipi-ocp420 \ No newline at end of file diff --git a/ci-operator/config/RedHatQE/interop-testing/README.md b/ci-operator/config/RedHatQE/interop-testing/README.md index 0904cf560bc6d..66d21f97f021a 100644 --- a/ci-operator/config/RedHatQE/interop-testing/README.md +++ b/ci-operator/config/RedHatQE/interop-testing/README.md @@ -54,12 +54,12 @@ Following the test cluster being provisioned, the following steps are executed i ## IBM Fusion Access Operator Interop Tests -The IBM Fusion Access Operator tests verify the integration of the Fusion Access Operator with OpenShift, including IBM Storage Scale deployment and AWS EBS filesystem integration. +The IBM Fusion Access Operator tests verify the integration of the IBM Fusion Access Operator with OpenShift, including IBM Storage Scale deployment and AWS EBS filesystem integration. ### Test Configurations -- **fusion-access-operator-ocp4.20-lp-interop**: Tests Fusion Access Operator with IBM Storage Scale on OpenShift 4.20 -- **fusion-access-cnv-ocp4.20-lp-interop**: Tests Fusion Access Operator with CNV (OpenShift Virtualization) integration on OpenShift 4.20 +- **ibm-fusion-access-operator-ocp4.20-lp-interop**: Tests IBM Fusion Access Operator with IBM Storage Scale on OpenShift 4.20 +- **ibm-fusion-access-cnv-ocp4.20-lp-interop**: Tests IBM Fusion Access Operator with CNV (OpenShift Virtualization) integration on OpenShift 4.20 ### Test Chains @@ -68,4 +68,4 @@ The tests use modular chains for different testing scenarios: 1. **Environment Setup Chain** ([`interop-tests-ibm-fusion-access-environment-setup-chain`](../../../step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/)) - Sets up namespaces, operators, and IBM Storage Scale cluster 2. **EBS Integration Chain** ([`interop-tests-ibm-fusion-access-ebs-integration-chain`](../../../step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/)) - Creates and tests EBS-backed IBM Storage Scale filesystems -For detailed documentation on individual steps and configuration options, see the [ibm-fusion-access step registry](../../../step-registry/ibm-fusion-access/). +For detailed documentation on individual steps and configuration options, see the [interop-tests ibm-fusion-access step registry](../../../step-registry/interop-tests/ibm-fusion-access/). diff --git a/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.20-lp-interop-cr.yaml b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.20-lp-interop-cr.yaml new file mode 100644 index 0000000000000..68c6dd1fc3aec --- /dev/null +++ b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.20-lp-interop-cr.yaml @@ -0,0 +1,79 @@ +base_images: + base: + name: ubi + namespace: ocp + tag: "9" + cli: + name: "4.20" + namespace: ocp + tag: cli + fedora: + name: fedora + namespace: openshift + tag: latest +build_root: + image_stream_tag: + name: release + namespace: openshift + tag: golang-1.23 +images: +- dockerfile_literal: | + FROM icr.io/cpopen/ibm-spectrum-scale-must-gather:v5.2.3.1 + to: ibm-must-gather +releases: + latest: + candidate: + product: ocp + stream: nightly + version: "4.20" +resources: + '*': + requests: + cpu: 200m + memory: 400Mi +tests: +- as: ibm-fusion-access-cnv-cr-ocp420 + cron: 0 3,15 * * * + steps: + cluster_profile: aws-cspi-qe + env: + BASE_DOMAIN: cspilp.interop.ccitredhat.com + COMPUTE_NODE_REPLICAS: "3" + COMPUTE_NODE_TYPE: c5n.metal + CONTROL_PLANE_INSTANCE_TYPE: m6i.2xlarge + CUSTOM_SECURITY_GROUP_PORTS: 12345,1191,60000-61000 + CUSTOM_SECURITY_GROUP_PROTOCOLS: tcp,udp + CUSTOM_SECURITY_GROUP_SOURCES: "" + FIPS_ENABLED: "false" + FIREWATCH_CONFIG_FILE_PATH: https://raw.githubusercontent.com/CSPI-QE/cspi-utils/main/firewatch-base-configs/aws-ipi/lp-interop.json + FIREWATCH_DEFAULT_JIRA_ADDITIONAL_LABELS: '["4.20-lp", "self-managed-lp", "ibm-fusion-access-lp", + "fusion-access-cnv-lp"]' + FIREWATCH_DEFAULT_JIRA_ASSIGNEE: mbaldess@redhat.com + FIREWATCH_DEFAULT_JIRA_PROJECT: LPINTEROP + FIREWATCH_FAIL_WITH_TEST_FAILURES: "true" + FUSION_ACCESS_NAMESPACE: ibm-fusion-access + FUSION_ACCESS_STORAGE_SCALE_VERSION: v5.2.3.1 + OCP_VERSION: "4.20" + REPORTPORTAL_CMP: fusion-access-cnv-lp-interop + STORAGE_SCALE_CLIENT_CPU: "2" + STORAGE_SCALE_CLIENT_MEMORY: 4Gi + STORAGE_SCALE_CLUSTER_NAME: ibm-spectrum-scale + STORAGE_SCALE_STORAGE_CPU: "2" + STORAGE_SCALE_STORAGE_MEMORY: 8Gi + USER_TAGS: | + scenario ibm-fusion-access-cnv + post: + - ref: interop-tests-ibm-fusion-access-custom-ibm-must-gather + - chain: ipi-aws-post + pre: + - chain: ipi-aws-pre + test: + - chain: interop-tests-ibm-fusion-access-environment-setup-chain + - chain: interop-tests-ibm-fusion-access-cnv-test-chain + workflow: firewatch-ipi-aws-cr + timeout: 4h0m0s +zz_generated_metadata: + branch: master + org: RedHatQE + repo: interop-testing + variant: ibm-fusion-access-cnv-ocp4.20-lp-interop-cr diff --git a/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.20-lp-interop.yaml b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.20-lp-interop.yaml new file mode 100644 index 0000000000000..196e7e1b4cae6 --- /dev/null +++ b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.20-lp-interop.yaml @@ -0,0 +1,78 @@ +base_images: + base: + name: ubi + namespace: ocp + tag: "9" + cli: + name: "4.20" + namespace: ocp + tag: cli + fedora: + name: fedora + namespace: openshift + tag: latest +build_root: + image_stream_tag: + name: release + namespace: openshift + tag: golang-1.23 +images: +- dockerfile_literal: | + FROM icr.io/cpopen/ibm-spectrum-scale-must-gather:v5.2.3.1 + to: ibm-must-gather +releases: + latest: + candidate: + product: ocp + stream: nightly + version: "4.20" +resources: + '*': + requests: + cpu: 200m + memory: 400Mi +tests: +- as: ibm-fusion-access-cnv-ipi-ocp420 + cron: 0 23 31 2 * + steps: + cluster_profile: aws-cspi-qe + env: + BASE_DOMAIN: cspilp.interop.ccitredhat.com + COMPUTE_NODE_REPLICAS: "3" + COMPUTE_NODE_TYPE: c5n.metal + CONTROL_PLANE_INSTANCE_TYPE: m6i.2xlarge + CUSTOM_SECURITY_GROUP_PORTS: 12345,1191,60000-61000 + CUSTOM_SECURITY_GROUP_PROTOCOLS: tcp,udp + CUSTOM_SECURITY_GROUP_SOURCES: "" + FIPS_ENABLED: "false" + FIREWATCH_CONFIG_FILE_PATH: https://raw.githubusercontent.com/CSPI-QE/cspi-utils/main/firewatch-base-configs/aws-ipi/lp-interop.json + FIREWATCH_DEFAULT_JIRA_ADDITIONAL_LABELS: '["4.20-lp", "self-managed-lp", "ibm-fusion-access-lp", + "fusion-access-cnv-lp"]' + FIREWATCH_DEFAULT_JIRA_ASSIGNEE: mbaldess@redhat.com + FIREWATCH_DEFAULT_JIRA_PROJECT: LPINTEROP + FIREWATCH_FAIL_WITH_TEST_FAILURES: "true" + FUSION_ACCESS_NAMESPACE: ibm-fusion-access + FUSION_ACCESS_STORAGE_SCALE_VERSION: v5.2.3.1 + RE_TRIGGER_ON_FAILURE: "false" + STORAGE_SCALE_CLIENT_CPU: "2" + STORAGE_SCALE_CLIENT_MEMORY: 4Gi + STORAGE_SCALE_CLUSTER_NAME: ibm-spectrum-scale + STORAGE_SCALE_STORAGE_CPU: "2" + STORAGE_SCALE_STORAGE_MEMORY: 8Gi + USER_TAGS: | + scenario ibm-fusion-access-cnv + post: + - ref: interop-tests-ibm-fusion-access-custom-ibm-must-gather + - chain: ipi-aws-post + pre: + - chain: ipi-aws-pre + test: + - chain: interop-tests-ibm-fusion-access-environment-setup-chain + - chain: interop-tests-ibm-fusion-access-cnv-test-chain + workflow: firewatch-ipi-aws + timeout: 4h0m0s +zz_generated_metadata: + branch: master + org: RedHatQE + repo: interop-testing + variant: ibm-fusion-access-cnv-ocp4.20-lp-interop diff --git a/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.21-lp-interop-cr.yaml b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.21-lp-interop-cr.yaml new file mode 100644 index 0000000000000..0d311e3aa04ea --- /dev/null +++ b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.21-lp-interop-cr.yaml @@ -0,0 +1,79 @@ +base_images: + base: + name: ubi + namespace: ocp + tag: "9" + cli: + name: "4.21" + namespace: ocp + tag: cli + fedora: + name: fedora + namespace: openshift + tag: latest +build_root: + image_stream_tag: + name: release + namespace: openshift + tag: golang-1.23 +images: +- dockerfile_literal: | + FROM icr.io/cpopen/ibm-spectrum-scale-must-gather:v5.2.3.1 + to: ibm-must-gather +releases: + latest: + candidate: + product: ocp + stream: nightly + version: "4.21" +resources: + '*': + requests: + cpu: 200m + memory: 400Mi +tests: +- as: ibm-fusion-access-cnv-cr-ocp421 + cron: 0 3,15 * * * + steps: + cluster_profile: aws-cspi-qe + env: + BASE_DOMAIN: cspilp.interop.ccitredhat.com + COMPUTE_NODE_REPLICAS: "3" + COMPUTE_NODE_TYPE: c5n.metal + CONTROL_PLANE_INSTANCE_TYPE: m6i.2xlarge + CUSTOM_SECURITY_GROUP_PORTS: 12345,1191,60000-61000 + CUSTOM_SECURITY_GROUP_PROTOCOLS: tcp,udp + CUSTOM_SECURITY_GROUP_SOURCES: "" + FIPS_ENABLED: "false" + FIREWATCH_CONFIG_FILE_PATH: https://raw.githubusercontent.com/CSPI-QE/cspi-utils/main/firewatch-base-configs/aws-ipi/lp-interop.json + FIREWATCH_DEFAULT_JIRA_ADDITIONAL_LABELS: '["4.21-lp", "self-managed-lp", "ibm-fusion-access-lp", + "fusion-access-cnv-lp"]' + FIREWATCH_DEFAULT_JIRA_ASSIGNEE: mbaldess@redhat.com + FIREWATCH_DEFAULT_JIRA_PROJECT: LPINTEROP + FIREWATCH_FAIL_WITH_TEST_FAILURES: "true" + FUSION_ACCESS_NAMESPACE: ibm-fusion-access + FUSION_ACCESS_STORAGE_SCALE_VERSION: v5.2.3.1 + OCP_VERSION: "4.21" + REPORTPORTAL_CMP: fusion-access-cnv-lp-interop + STORAGE_SCALE_CLIENT_CPU: "2" + STORAGE_SCALE_CLIENT_MEMORY: 4Gi + STORAGE_SCALE_CLUSTER_NAME: ibm-spectrum-scale + STORAGE_SCALE_STORAGE_CPU: "2" + STORAGE_SCALE_STORAGE_MEMORY: 8Gi + USER_TAGS: | + scenario ibm-fusion-access-cnv + post: + - ref: interop-tests-ibm-fusion-access-custom-ibm-must-gather + - chain: ipi-aws-post + pre: + - chain: ipi-aws-pre + test: + - chain: interop-tests-ibm-fusion-access-environment-setup-chain + - chain: interop-tests-ibm-fusion-access-cnv-test-chain + workflow: firewatch-ipi-aws-cr + timeout: 4h0m0s +zz_generated_metadata: + branch: master + org: RedHatQE + repo: interop-testing + variant: ibm-fusion-access-cnv-ocp4.21-lp-interop-cr diff --git a/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.21-lp-interop.yaml b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.21-lp-interop.yaml new file mode 100644 index 0000000000000..ad9a89afc271a --- /dev/null +++ b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-cnv-ocp4.21-lp-interop.yaml @@ -0,0 +1,78 @@ +base_images: + base: + name: ubi + namespace: ocp + tag: "9" + cli: + name: "4.21" + namespace: ocp + tag: cli + fedora: + name: fedora + namespace: openshift + tag: latest +build_root: + image_stream_tag: + name: release + namespace: openshift + tag: golang-1.23 +images: +- dockerfile_literal: | + FROM icr.io/cpopen/ibm-spectrum-scale-must-gather:v5.2.3.1 + to: ibm-must-gather +releases: + latest: + candidate: + product: ocp + stream: nightly + version: "4.21" +resources: + '*': + requests: + cpu: 200m + memory: 400Mi +tests: +- as: ibm-fusion-access-cnv-ipi-ocp421 + cron: 0 23 31 2 * + steps: + cluster_profile: aws-cspi-qe + env: + BASE_DOMAIN: cspilp.interop.ccitredhat.com + COMPUTE_NODE_REPLICAS: "3" + COMPUTE_NODE_TYPE: c5n.metal + CONTROL_PLANE_INSTANCE_TYPE: m6i.2xlarge + CUSTOM_SECURITY_GROUP_PORTS: 12345,1191,60000-61000 + CUSTOM_SECURITY_GROUP_PROTOCOLS: tcp,udp + CUSTOM_SECURITY_GROUP_SOURCES: "" + FIPS_ENABLED: "false" + FIREWATCH_CONFIG_FILE_PATH: https://raw.githubusercontent.com/CSPI-QE/cspi-utils/main/firewatch-base-configs/aws-ipi/lp-interop.json + FIREWATCH_DEFAULT_JIRA_ADDITIONAL_LABELS: '["4.21-lp", "self-managed-lp", "ibm-fusion-access-lp", + "fusion-access-cnv-lp"]' + FIREWATCH_DEFAULT_JIRA_ASSIGNEE: mbaldess@redhat.com + FIREWATCH_DEFAULT_JIRA_PROJECT: LPINTEROP + FIREWATCH_FAIL_WITH_TEST_FAILURES: "true" + FUSION_ACCESS_NAMESPACE: ibm-fusion-access + FUSION_ACCESS_STORAGE_SCALE_VERSION: v5.2.3.1 + RE_TRIGGER_ON_FAILURE: "false" + STORAGE_SCALE_CLIENT_CPU: "2" + STORAGE_SCALE_CLIENT_MEMORY: 4Gi + STORAGE_SCALE_CLUSTER_NAME: ibm-spectrum-scale + STORAGE_SCALE_STORAGE_CPU: "2" + STORAGE_SCALE_STORAGE_MEMORY: 8Gi + USER_TAGS: | + scenario ibm-fusion-access-cnv + post: + - ref: interop-tests-ibm-fusion-access-custom-ibm-must-gather + - chain: ipi-aws-post + pre: + - chain: ipi-aws-pre + test: + - chain: interop-tests-ibm-fusion-access-environment-setup-chain + - chain: interop-tests-ibm-fusion-access-cnv-test-chain + workflow: firewatch-ipi-aws + timeout: 4h0m0s +zz_generated_metadata: + branch: master + org: RedHatQE + repo: interop-testing + variant: ibm-fusion-access-cnv-ocp4.21-lp-interop diff --git a/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__fusion-access-operator-ocp4.20-lp-interop.yaml b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-operator-ocp4.20-lp-interop.yaml similarity index 83% rename from ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__fusion-access-operator-ocp4.20-lp-interop.yaml rename to ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-operator-ocp4.20-lp-interop.yaml index 34a7e2f8ff98b..b26dff32ca340 100644 --- a/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__fusion-access-operator-ocp4.20-lp-interop.yaml +++ b/ci-operator/config/RedHatQE/interop-testing/RedHatQE-interop-testing-master__ibm-fusion-access-operator-ocp4.20-lp-interop.yaml @@ -24,7 +24,7 @@ resources: cpu: 200m memory: 400Mi tests: -- as: fusion-access-operator-ipi-ocp420 +- as: ibm-fusion-access-operator-ipi-ocp420 cron: 0 23 31 2 * steps: cluster_profile: aws-cspi-qe @@ -38,7 +38,7 @@ tests: CUSTOM_SECURITY_GROUP_SOURCES: "" FIPS_ENABLED: "false" FIREWATCH_CONFIG_FILE_PATH: https://raw.githubusercontent.com/CSPI-QE/cspi-utils/main/firewatch-base-configs/aws-ipi/lp-interop.json - FIREWATCH_DEFAULT_JIRA_ADDITIONAL_LABELS: '["4.20-lp", "self-managed-lp", "fusion-access-lp"]' + FIREWATCH_DEFAULT_JIRA_ADDITIONAL_LABELS: '["4.20-lp", "self-managed-lp", "ibm-fusion-access-lp"]' FIREWATCH_DEFAULT_JIRA_ASSIGNEE: mbaldess@redhat.com FIREWATCH_DEFAULT_JIRA_PROJECT: LPINTEROP FIREWATCH_FAIL_WITH_TEST_FAILURES: "true" @@ -54,19 +54,19 @@ tests: STORAGE_SCALE_STORAGE_CPU: "2" STORAGE_SCALE_STORAGE_MEMORY: 8Gi USER_TAGS: | - scenario fusion-access + scenario ibm-fusion-access post: - - ref: interop-tests-fusion-access-custom-ibm-must-gather + - ref: interop-tests-ibm-fusion-access-custom-ibm-must-gather - chain: ipi-aws-post pre: - chain: ipi-aws-pre test: - - chain: interop-tests-fusion-access-environment-setup-chain - - chain: interop-tests-fusion-access-ebs-integration-chain + - chain: interop-tests-ibm-fusion-access-environment-setup-chain + - chain: interop-tests-ibm-fusion-access-ebs-integration-chain workflow: firewatch-ipi-aws timeout: 4h0m0s zz_generated_metadata: branch: master org: RedHatQE repo: interop-testing - variant: fusion-access-operator-ocp4.20-lp-interop + variant: ibm-fusion-access-operator-ocp4.20-lp-interop diff --git a/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-periodics.yaml b/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-periodics.yaml index ed73880e764eb..c3dc5fd02a65d 100644 --- a/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-periodics.yaml +++ b/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-periodics.yaml @@ -568,6 +568,310 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 3,15 * * * + decorate: true + decoration_config: + skip_cloning: true + timeout: 4h0m0s + extra_refs: + - base_ref: master + org: RedHatQE + repo: interop-testing + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: aws-cspi-qe + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.20-lp-interop-cr + ci.openshift.io/generator: prowgen + job-release: "4.20" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.20-lp-interop-cr-ibm-fusion-access-cnv-cr-ocp420 + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=ibm-fusion-access-cnv-cr-ocp420 + - --variant=ibm-fusion-access-cnv-ocp4.20-lp-interop-cr + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 23 31 2 * + decorate: true + decoration_config: + skip_cloning: true + timeout: 4h0m0s + extra_refs: + - base_ref: master + org: RedHatQE + repo: interop-testing + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: aws-cspi-qe + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.20-lp-interop + ci.openshift.io/generator: prowgen + job-release: "4.20" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.20-lp-interop-ibm-fusion-access-cnv-ipi-ocp420 + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=ibm-fusion-access-cnv-ipi-ocp420 + - --variant=ibm-fusion-access-cnv-ocp4.20-lp-interop + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 3,15 * * * + decorate: true + decoration_config: + skip_cloning: true + timeout: 4h0m0s + extra_refs: + - base_ref: master + org: RedHatQE + repo: interop-testing + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: aws-cspi-qe + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.21-lp-interop-cr + ci.openshift.io/generator: prowgen + job-release: "4.21" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.21-lp-interop-cr-ibm-fusion-access-cnv-cr-ocp421 + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=ibm-fusion-access-cnv-cr-ocp421 + - --variant=ibm-fusion-access-cnv-ocp4.21-lp-interop-cr + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 23 31 2 * + decorate: true + decoration_config: + skip_cloning: true + timeout: 4h0m0s + extra_refs: + - base_ref: master + org: RedHatQE + repo: interop-testing + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: aws-cspi-qe + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.21-lp-interop + ci.openshift.io/generator: prowgen + job-release: "4.21" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.21-lp-interop-ibm-fusion-access-cnv-ipi-ocp421 + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=ibm-fusion-access-cnv-ipi-ocp421 + - --variant=ibm-fusion-access-cnv-ocp4.21-lp-interop + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator - agent: kubernetes cluster: build09 cron: 0 23 31 2 * @@ -582,14 +886,14 @@ periodics: labels: ci-operator.openshift.io/cloud: aws ci-operator.openshift.io/cloud-cluster-profile: aws-cspi-qe - ci-operator.openshift.io/variant: fusion-access-operator-ocp4.20-lp-interop + ci-operator.openshift.io/variant: ibm-fusion-access-operator-ocp4.20-lp-interop ci.openshift.io/generator: prowgen job-release: "4.20" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: periodic-ci-RedHatQE-interop-testing-master-fusion-access-operator-ocp4.20-lp-interop-fusion-access-operator-ipi-ocp420 + name: periodic-ci-RedHatQE-interop-testing-master-ibm-fusion-access-operator-ocp4.20-lp-interop-ibm-fusion-access-operator-ipi-ocp420 reporter_config: slack: - channel: '#team-ecoeng-fusion-access' + channel: '#team-ecoeng-ibm-fusion-access' job_states_to_report: - success - failure @@ -606,8 +910,8 @@ periodics: - --lease-server-credentials-file=/etc/boskos/credentials - --report-credentials-file=/etc/report/credentials - --secret-dir=/secrets/ci-pull-credentials - - --target=fusion-access-operator-ipi-ocp420 - - --variant=fusion-access-operator-ocp4.20-lp-interop + - --target=ibm-fusion-access-operator-ipi-ocp420 + - --variant=ibm-fusion-access-operator-ocp4.20-lp-interop command: - ci-operator image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest diff --git a/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-presubmits.yaml b/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-presubmits.yaml index b356306266c07..531df62563b98 100644 --- a/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-presubmits.yaml +++ b/ci-operator/jobs/RedHatQE/interop-testing/RedHatQE-interop-testing-master-presubmits.yaml @@ -238,17 +238,17 @@ presubmits: - ^master$ - ^master- cluster: build03 - context: ci/prow/fusion-access-operator-ocp4.20-lp-interop-images + context: ci/prow/ibm-fusion-access-cnv-ocp4.20-lp-interop-cr-images decorate: true decoration_config: skip_cloning: true labels: - ci-operator.openshift.io/variant: fusion-access-operator-ocp4.20-lp-interop + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.20-lp-interop-cr ci.openshift.io/generator: prowgen job-release: "4.20" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: pull-ci-RedHatQE-interop-testing-master-fusion-access-operator-ocp4.20-lp-interop-images - rerun_command: /test fusion-access-operator-ocp4.20-lp-interop-images + name: pull-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.20-lp-interop-cr-images + rerun_command: /test ibm-fusion-access-cnv-ocp4.20-lp-interop-cr-images spec: containers: - args: @@ -256,7 +256,7 @@ presubmits: - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson - --report-credentials-file=/etc/report/credentials - --target=[images] - - --variant=fusion-access-operator-ocp4.20-lp-interop + - --variant=ibm-fusion-access-cnv-ocp4.20-lp-interop-cr command: - ci-operator image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest @@ -289,4 +289,236 @@ presubmits: - name: result-aggregator secret: secretName: result-aggregator - trigger: (?m)^/test( | .* )fusion-access-operator-ocp4.20-lp-interop-images,?($|\s.*) + trigger: (?m)^/test( | .* )ibm-fusion-access-cnv-ocp4.20-lp-interop-cr-images,?($|\s.*) + - agent: kubernetes + always_run: true + branches: + - ^master$ + - ^master- + cluster: build03 + context: ci/prow/ibm-fusion-access-cnv-ocp4.20-lp-interop-images + decorate: true + decoration_config: + skip_cloning: true + labels: + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.20-lp-interop + ci.openshift.io/generator: prowgen + job-release: "4.20" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: pull-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.20-lp-interop-images + rerun_command: /test ibm-fusion-access-cnv-ocp4.20-lp-interop-images + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --report-credentials-file=/etc/report/credentials + - --target=[images] + - --variant=ibm-fusion-access-cnv-ocp4.20-lp-interop + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator + trigger: (?m)^/test( | .* )ibm-fusion-access-cnv-ocp4.20-lp-interop-images,?($|\s.*) + - agent: kubernetes + always_run: true + branches: + - ^master$ + - ^master- + cluster: build03 + context: ci/prow/ibm-fusion-access-cnv-ocp4.21-lp-interop-cr-images + decorate: true + decoration_config: + skip_cloning: true + labels: + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.21-lp-interop-cr + ci.openshift.io/generator: prowgen + job-release: "4.21" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: pull-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.21-lp-interop-cr-images + rerun_command: /test ibm-fusion-access-cnv-ocp4.21-lp-interop-cr-images + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --report-credentials-file=/etc/report/credentials + - --target=[images] + - --variant=ibm-fusion-access-cnv-ocp4.21-lp-interop-cr + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator + trigger: (?m)^/test( | .* )ibm-fusion-access-cnv-ocp4.21-lp-interop-cr-images,?($|\s.*) + - agent: kubernetes + always_run: true + branches: + - ^master$ + - ^master- + cluster: build03 + context: ci/prow/ibm-fusion-access-cnv-ocp4.21-lp-interop-images + decorate: true + decoration_config: + skip_cloning: true + labels: + ci-operator.openshift.io/variant: ibm-fusion-access-cnv-ocp4.21-lp-interop + ci.openshift.io/generator: prowgen + job-release: "4.21" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: pull-ci-RedHatQE-interop-testing-master-ibm-fusion-access-cnv-ocp4.21-lp-interop-images + rerun_command: /test ibm-fusion-access-cnv-ocp4.21-lp-interop-images + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --report-credentials-file=/etc/report/credentials + - --target=[images] + - --variant=ibm-fusion-access-cnv-ocp4.21-lp-interop + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator + trigger: (?m)^/test( | .* )ibm-fusion-access-cnv-ocp4.21-lp-interop-images,?($|\s.*) + - agent: kubernetes + always_run: true + branches: + - ^master$ + - ^master- + cluster: build03 + context: ci/prow/ibm-fusion-access-operator-ocp4.20-lp-interop-images + decorate: true + decoration_config: + skip_cloning: true + labels: + ci-operator.openshift.io/variant: ibm-fusion-access-operator-ocp4.20-lp-interop + ci.openshift.io/generator: prowgen + job-release: "4.20" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: pull-ci-RedHatQE-interop-testing-master-ibm-fusion-access-operator-ocp4.20-lp-interop-images + rerun_command: /test ibm-fusion-access-operator-ocp4.20-lp-interop-images + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --report-credentials-file=/etc/report/credentials + - --target=[images] + - --variant=ibm-fusion-access-operator-ocp4.20-lp-interop + command: + - ci-operator + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator + trigger: (?m)^/test( | .* )ibm-fusion-access-operator-ocp4.20-lp-interop-images,?($|\s.*) diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.metadata.json deleted file mode 100644 index 9cd93865dcd54..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.metadata.json deleted file mode 100644 index 29589c2b9afe2..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.metadata.json deleted file mode 100644 index 75c0e2801cde5..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.metadata.json deleted file mode 100644 index 17fe66591eb40..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.metadata.json deleted file mode 100644 index c3434fc4bb9a2..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.metadata.json deleted file mode 100644 index 54fec93913e58..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.metadata.json deleted file mode 100644 index 111e50f522f85..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.metadata.json deleted file mode 100644 index 58ff82247bb1d..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.metadata.json deleted file mode 100644 index 890abdec32cb2..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.metadata.json deleted file mode 100644 index 7b54ce4386a0c..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.metadata.json deleted file mode 100644 index 2ae4b1f499869..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.metadata.json deleted file mode 100644 index 6b5db7341855f..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.metadata.json deleted file mode 100644 index e6c110741afd4..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.metadata.json deleted file mode 100644 index 5ec4be2f2d255..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.metadata.json deleted file mode 100644 index babc1d9ae1bbd..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.metadata.json deleted file mode 100644 index f4cd684e6ca8b..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.metadata.json deleted file mode 100644 index f7a3e3ed03ab4..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.metadata.json deleted file mode 100644 index a00cdd24d0115..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.metadata.json b/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.metadata.json deleted file mode 100644 index b8d5b88c2253d..0000000000000 --- a/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.metadata.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "path": "interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.yaml", - "owners": { - "approvers": [ - "cspi-qe-ocp-lp" - ], - "reviewers": [ - "cspi-qe-ocp-lp" - ] - } -} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-crds/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/check-crds/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.metadata.json new file mode 100644 index 0000000000000..6d6d0eccf9618 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.yaml similarity index 84% rename from ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.yaml index badedf43c7bc9..0f67dc8e756bd 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/check-crds/interop-tests-fusion-access-check-crds-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-crds/interop-tests-ibm-fusion-access-check-crds-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-check-crds + as: interop-tests-ibm-fusion-access-check-crds from: cli - commands: interop-tests-fusion-access-check-crds-commands.sh + commands: interop-tests-ibm-fusion-access-check-crds-commands.sh timeout: 15m0s grace_period: 15s best_effort: true diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/check-nodes/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.metadata.json new file mode 100644 index 0000000000000..781ae6d0cf4a6 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.yaml similarity index 82% rename from ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.yaml index bd9a27bdff921..6d9f13e0c10b7 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/check-nodes/interop-tests-fusion-access-check-nodes-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/check-nodes/interop-tests-ibm-fusion-access-check-nodes-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-check-nodes + as: interop-tests-ibm-fusion-access-check-nodes from: cli - commands: interop-tests-fusion-access-check-nodes-commands.sh + commands: interop-tests-ibm-fusion-access-check-nodes-commands.sh timeout: 5m0s grace_period: 15s best_effort: true diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.metadata.json new file mode 100644 index 0000000000000..0f0e9e8e0723c --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.yaml new file mode 100644 index 0000000000000..446011fb3c6b5 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/cnv-test-chain/interop-tests-ibm-fusion-access-cnv-test-chain-chain.yaml @@ -0,0 +1,11 @@ +chain: + as: interop-tests-ibm-fusion-access-cnv-test-chain + steps: + - ref: interop-tests-deploy-cnv + - ref: interop-tests-ibm-fusion-access-create-shared-filesystem + - ref: interop-tests-ibm-fusion-access-configure-cnv-shared-storage + - ref: interop-tests-ibm-fusion-access-test-cnv-shared-storage + - ref: interop-tests-ibm-fusion-access-test-vm-lifecycle + - ref: interop-tests-ibm-fusion-access-test-vm-migration + - ref: interop-tests-ibm-fusion-access-test-vm-snapshots + - ref: interop-tests-ibm-fusion-access-verify-shared-storage diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.metadata.json new file mode 100644 index 0000000000000..ae7e409b83d7f --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.yaml similarity index 89% rename from ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.yaml index 5bd488d6faabd..c0e39f37943f6 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/configure-aws-security-groups/interop-tests-fusion-access-configure-aws-security-groups-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-aws-security-groups/interop-tests-ibm-fusion-access-configure-aws-security-groups-ref.yaml @@ -1,10 +1,10 @@ ref: - as: interop-tests-fusion-access-configure-aws-security-groups + as: interop-tests-ibm-fusion-access-configure-aws-security-groups from_image: namespace: ocp name: "4.12" tag: upi-installer - commands: interop-tests-fusion-access-configure-aws-security-groups-commands.sh + commands: interop-tests-ibm-fusion-access-configure-aws-security-groups-commands.sh timeout: 30m0s best_effort: true credentials: diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-commands.sh new file mode 100644 index 0000000000000..e6bcf5e37e59d --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-commands.sh @@ -0,0 +1,297 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +echo "๐Ÿ”ง Configuring CNV for IBM Storage Scale shared storage..." + +# Set default values +CNV_NAMESPACE="${CNV_NAMESPACE:-openshift-cnv}" +SHARED_STORAGE_CLASS="${SHARED_STORAGE_CLASS:-ibm-spectrum-scale-cnv}" +STORAGE_SCALE_NAMESPACE="${STORAGE_SCALE_NAMESPACE:-ibm-spectrum-scale}" +STORAGE_SCALE_CLUSTER_NAME="${STORAGE_SCALE_CLUSTER_NAME:-ibm-spectrum-scale}" + +# JUnit XML test results +JUNIT_RESULTS_FILE="${ARTIFACT_DIR}/junit_configure_cnv_shared_storage_tests.xml" +TEST_START_TIME=$SECONDS +TESTS_TOTAL=0 +TESTS_FAILED=0 +TESTS_PASSED=0 +TEST_CASES="" + +# Function to escape XML special characters +escape_xml() { + local text="$1" + # Escape XML special characters: & must be first to avoid double-escaping + echo "$text" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'\''/\'/g' +} + +# Function to add test result to JUnit XML +add_test_result() { + local test_name="$1" + local test_status="$2" # "passed" or "failed" + local test_duration="$3" + local test_message="${4:-}" + local test_classname="${5:-CNVSharedStorageConfigurationTests}" + + # Escape XML special characters in user-provided strings + test_name=$(escape_xml "$test_name") + test_message=$(escape_xml "$test_message") + test_classname=$(escape_xml "$test_classname") + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [[ "$test_status" == "passed" ]]; then + TESTS_PASSED=$((TESTS_PASSED + 1)) + TEST_CASES="${TEST_CASES} + " + else + TESTS_FAILED=$((TESTS_FAILED + 1)) + TEST_CASES="${TEST_CASES} + + ${test_message} + " + fi +} + +# Function to generate JUnit XML report +generate_junit_xml() { + local total_duration=$((SECONDS - TEST_START_TIME)) + + cat > "${JUNIT_RESULTS_FILE}" < + + +${TEST_CASES} + + +EOF + + echo "" + echo "๐Ÿ“Š Test Results Summary:" + echo " Total Tests: ${TESTS_TOTAL}" + echo " Passed: ${TESTS_PASSED}" + echo " Failed: ${TESTS_FAILED}" + echo " Duration: ${total_duration}s" + echo " Results File: ${JUNIT_RESULTS_FILE}" + + # Copy to SHARED_DIR for data router reporter (if available) + if [[ -n "${SHARED_DIR:-}" ]] && [[ -d "${SHARED_DIR}" ]]; then + cp "${JUNIT_RESULTS_FILE}" "${SHARED_DIR}/junit_configure_cnv_shared_storage_tests.xml" + echo " โœ… Results copied to SHARED_DIR" + fi +} + +start_test() { + local test_description="$1" + : "๐Ÿงช ${test_description}..." + echo "$SECONDS" +} + +# Helper function to record test result (eliminates repetitive duration calculation) +record_test() { + local test_start="$1" + local test_name="$2" + local test_status="$3" + local test_message="${4:-}" + + local test_duration=$((SECONDS - test_start)) + add_test_result "$test_name" "$test_status" "$test_duration" "$test_message" +} + +# Trap to ensure JUnit XML is generated even on failure +trap generate_junit_xml EXIT + +echo "๐Ÿ“‹ Configuration:" +echo " CNV Namespace: ${CNV_NAMESPACE}" +echo " Shared Storage Class: ${SHARED_STORAGE_CLASS}" +echo " Storage Scale Namespace: ${STORAGE_SCALE_NAMESPACE}" +echo " Storage Scale Cluster: ${STORAGE_SCALE_CLUSTER_NAME}" +echo "" + +# Check if CNV is ready +test_start=$(start_test "Checking CNV status") +test_status="failed" +test_message="" + +if oc get hyperconverged kubevirt-hyperconverged -n "${CNV_NAMESPACE}" >/dev/null; then + CNV_STATUS=$(oc get hyperconverged kubevirt-hyperconverged -n "${CNV_NAMESPACE}" -o jsonpath='{.status.conditions[?(@.type=="Available")].status}' 2>/dev/null || echo "Unknown") + echo " โœ… CNV HyperConverged found (Status: ${CNV_STATUS})" + test_status="passed" +else + echo " โŒ CNV HyperConverged not found" + echo " Please ensure CNV is installed before running this step" + test_message="CNV HyperConverged not found" +fi + +record_test "$test_start" "test_cnv_availability" "$test_status" "$test_message" + +# Check if IBM Storage Scale is ready +echo "" +test_start=$(start_test "Checking IBM Storage Scale status") +test_status="failed" +test_message="" + +if oc get cluster "${STORAGE_SCALE_CLUSTER_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" >/dev/null; then + SCALE_STATUS=$(oc get cluster "${STORAGE_SCALE_CLUSTER_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" -o jsonpath='{.status.conditions[?(@.type=="Success")].status}' 2>/dev/null || echo "Unknown") + echo " โœ… IBM Storage Scale Cluster found (Status: ${SCALE_STATUS})" + test_status="passed" +else + echo " โŒ IBM Storage Scale Cluster not found" + echo " Please ensure IBM Storage Scale is deployed before running this step" + test_message="IBM Storage Scale Cluster not found" +fi + +record_test "$test_start" "test_storage_scale_cluster_availability" "$test_status" "$test_message" + +# Check if shared filesystem exists +echo "" +test_start=$(start_test "Checking IBM Storage Scale filesystem") +test_status="failed" +test_message="" + +if oc get filesystem shared-filesystem -n "${STORAGE_SCALE_NAMESPACE}" >/dev/null; then + FS_STATUS=$(oc get filesystem shared-filesystem -n "${STORAGE_SCALE_NAMESPACE}" -o jsonpath='{.status.conditions[?(@.type=="Success")].status}' 2>/dev/null || echo "Unknown") + echo " โœ… Shared filesystem found (Status: ${FS_STATUS})" + test_status="passed" +else + echo " โŒ Shared filesystem not found" + echo " Please ensure IBM Storage Scale filesystem is created before running this step" + test_message="IBM Storage Scale filesystem not found" +fi + +record_test "$test_start" "test_storage_scale_filesystem_availability" "$test_status" "$test_message" + +# Create shared storage class for CNV +echo "" +test_start=$(start_test "Creating shared storage class for CNV") +test_status="failed" +test_message="" + +if oc get storageclass "${SHARED_STORAGE_CLASS}" >/dev/null; then + echo " โœ… Storage class ${SHARED_STORAGE_CLASS} already exists" + test_status="passed" +else + echo " ๐Ÿ“ Creating storage class ${SHARED_STORAGE_CLASS}..." + if oc apply -f - </dev/null || echo "") +if [[ "${CURRENT_STORAGE_CLASS}" == "${SHARED_STORAGE_CLASS}" ]]; then + echo " โœ… CNV already configured for shared storage" + test_status="passed" +else + echo " ๐Ÿ“ Setting CNV default storage class to ${SHARED_STORAGE_CLASS}..." + if oc patch hco kubevirt-hyperconverged -n "${CNV_NAMESPACE}" --type=merge -p '{ + "spec": { + "storage": { + "defaultStorageClass": "'${SHARED_STORAGE_CLASS}'" + } + } + }' 2>/dev/null; then + echo " โœ… CNV configured for shared storage" + test_status="passed" + else + echo " โŒ Failed to configure CNV for shared storage" + test_message="Failed to patch HyperConverged resource" + fi +fi + +record_test "$test_start" "test_cnv_storage_configuration" "$test_status" "$test_message" + +# Test shared storage with a PVC +echo "" +test_start=$(start_test "Testing shared storage with PVC") +test_status="failed" +test_message="" + +if oc apply -f - </dev/null || echo "Unknown") + echo " ๐Ÿ“Š PVC Status: ${PVC_STATUS}" + + test_status="passed" + + # Clean up test PVC + echo " ๐Ÿงน Cleaning up test PVC..." + oc delete pvc test-shared-storage-pvc -n "${CNV_NAMESPACE}" --ignore-not-found + echo " โœ… Test PVC cleaned up" + else + echo " โš ๏ธ PVC not bound within timeout, checking status..." + oc get pvc test-shared-storage-pvc -n "${CNV_NAMESPACE}" -o yaml + test_message="PVC not bound within 5m timeout" + echo " ๐Ÿงน Cleaning up test PVC..." + oc delete pvc test-shared-storage-pvc -n "${CNV_NAMESPACE}" --ignore-not-found + fi +else + echo " โŒ Failed to create test PVC" + test_message="Failed to create test PVC" +fi + +record_test "$test_start" "test_pvc_binding_with_shared_storage" "$test_status" "$test_message" + +# Verify configuration +echo "" +echo "๐Ÿ” Verifying CNV configuration..." +echo " ๐Ÿ“Š CNV HyperConverged status:" +oc get hco kubevirt-hyperconverged -n "${CNV_NAMESPACE}" -o custom-columns="NAME:.metadata.name,AVAILABLE:.status.conditions[?(@.type=='Available')].status,STORAGE:.spec.storage.defaultStorageClass" + +echo " ๐Ÿ“Š Storage class configuration:" +oc get storageclass "${SHARED_STORAGE_CLASS}" -o custom-columns="NAME:.metadata.name,PROVISIONER:.provisioner,VOLUMEBINDINGMODE:.volumeBindingMode" + +echo "" +echo "โœ… CNV shared storage configuration completed successfully!" +echo " CNV is now configured to use IBM Storage Scale shared storage" +echo " VMs and DataVolumes will use the shared storage infrastructure" diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.metadata.json new file mode 100644 index 0000000000000..ddd16ddbe3c5c --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.yaml new file mode 100644 index 0000000000000..3fa3fefbe4a4d --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-cnv-shared-storage/interop-tests-ibm-fusion-access-configure-cnv-shared-storage-ref.yaml @@ -0,0 +1,27 @@ +ref: + as: interop-tests-ibm-fusion-access-configure-cnv-shared-storage + from: cli + commands: interop-tests-ibm-fusion-access-configure-cnv-shared-storage-commands.sh + timeout: 1h0m0s + grace_period: 5m0s + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Configure CNV to use IBM Storage Scale shared storage for virtualization workloads. + This step creates a shared storage class and configures CNV to use it as the default + storage class for VMs and DataVolumes. + env: + - name: CNV_NAMESPACE + documentation: The namespace for CNV + default: "openshift-cnv" + - name: SHARED_STORAGE_CLASS + documentation: Storage class for shared storage between CNV and IBM Fusion Access + default: "ibm-spectrum-scale-cnv" + - name: STORAGE_SCALE_NAMESPACE + documentation: The namespace for IBM Storage Scale + default: "ibm-spectrum-scale" + - name: STORAGE_SCALE_CLUSTER_NAME + documentation: The name of the IBM Storage Scale cluster + default: "ibm-spectrum-scale" diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.metadata.json new file mode 100644 index 0000000000000..27b51163b3cfe --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.yaml similarity index 93% rename from ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.yaml index 45d045e4cbe01..347cd6a0694f5 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/configure-kmm-registry/interop-tests-fusion-access-configure-kmm-registry-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/configure-kmm-registry/interop-tests-ibm-fusion-access-configure-kmm-registry-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-configure-kmm-registry + as: interop-tests-ibm-fusion-access-configure-kmm-registry from: cli - commands: interop-tests-fusion-access-configure-kmm-registry-commands.sh + commands: interop-tests-ibm-fusion-access-configure-kmm-registry-commands.sh timeout: 10m0s grace_period: 15s resources: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-cluster/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.metadata.json new file mode 100644 index 0000000000000..e639ef77730e0 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.yaml similarity index 93% rename from ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.yaml index bbb519181a71d..64f61d5ce4f1d 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-cluster/interop-tests-fusion-access-create-cluster-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-cluster/interop-tests-ibm-fusion-access-create-cluster-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-create-cluster + as: interop-tests-ibm-fusion-access-create-cluster from: cli - commands: interop-tests-fusion-access-create-cluster-commands.sh + commands: interop-tests-ibm-fusion-access-create-cluster-commands.sh timeout: 15m0s grace_period: 15s best_effort: true diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.metadata.json new file mode 100644 index 0000000000000..af91848648d6a --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.yaml similarity index 85% rename from ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.yaml index 346569dc0dbea..242628da11f4c 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-ebs-filesystem/interop-tests-fusion-access-create-ebs-filesystem-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-ebs-filesystem/interop-tests-ibm-fusion-access-create-ebs-filesystem-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-create-ebs-filesystem + as: interop-tests-ibm-fusion-access-create-ebs-filesystem from: cli - commands: interop-tests-fusion-access-create-ebs-filesystem-commands.sh + commands: interop-tests-ibm-fusion-access-create-ebs-filesystem-commands.sh timeout: 1h30m0s best_effort: true resources: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.metadata.json new file mode 100644 index 0000000000000..5fc8610ed5d1c --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.yaml similarity index 80% rename from ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.yaml index 119b8c9386dd1..e2a75760f493e 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-fusionaccess-resource/interop-tests-fusion-access-create-fusionaccess-resource-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-fusionaccess-resource/interop-tests-ibm-fusion-access-create-fusionaccess-resource-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-create-fusionaccess-resource + as: interop-tests-ibm-fusion-access-create-fusionaccess-resource from: cli - commands: interop-tests-fusion-access-create-fusionaccess-resource-commands.sh + commands: interop-tests-ibm-fusion-access-create-fusionaccess-resource-commands.sh timeout: 10m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.metadata.json new file mode 100644 index 0000000000000..6d9a9d76c1d97 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.yaml similarity index 89% rename from ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.yaml index 5c487a1453064..6f9f3488fea87 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-local-disks/interop-tests-fusion-access-create-local-disks-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-local-disks/interop-tests-ibm-fusion-access-create-local-disks-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-create-local-disks + as: interop-tests-ibm-fusion-access-create-local-disks from: cli - commands: interop-tests-fusion-access-create-local-disks-commands.sh + commands: interop-tests-ibm-fusion-access-create-local-disks-commands.sh timeout: 10m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.metadata.json new file mode 100644 index 0000000000000..58e16769d3775 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.yaml similarity index 81% rename from ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.yaml index 246c5c86ddac3..97e9f9045d355 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-namespaces/interop-tests-fusion-access-create-namespaces-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-namespaces/interop-tests-ibm-fusion-access-create-namespaces-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-create-namespaces + as: interop-tests-ibm-fusion-access-create-namespaces from: cli - commands: interop-tests-fusion-access-create-namespaces-commands.sh + commands: interop-tests-ibm-fusion-access-create-namespaces-commands.sh timeout: 5m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.metadata.json new file mode 100644 index 0000000000000..5b85a81e47d26 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.yaml similarity index 87% rename from ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.yaml index 0cb44170795d5..5a86447b57347 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/create-pull-secrets/interop-tests-fusion-access-create-pull-secrets-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-pull-secrets/interop-tests-ibm-fusion-access-create-pull-secrets-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-create-pull-secrets + as: interop-tests-ibm-fusion-access-create-pull-secrets from: cli - commands: interop-tests-fusion-access-create-pull-secrets-commands.sh + commands: interop-tests-ibm-fusion-access-create-pull-secrets-commands.sh timeout: 5m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-commands.sh new file mode 100644 index 0000000000000..0d13fef46f3e4 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-commands.sh @@ -0,0 +1,199 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +STORAGE_SCALE_NAMESPACE="${STORAGE_SCALE_NAMESPACE:-ibm-spectrum-scale}" +STORAGE_SCALE_CLUSTER_NAME="${STORAGE_SCALE_CLUSTER_NAME:-ibm-spectrum-scale}" +FILESYSTEM_NAME="${FILESYSTEM_NAME:-shared-filesystem}" + +echo "๐Ÿ—‚๏ธ Creating IBM Storage Scale shared filesystem for CNV integration..." +echo "Note: Creating shared filesystem without EBS dependency" + +# Check if IBM Storage Scale cluster is ready +echo "๐Ÿ” Checking IBM Storage Scale cluster status..." +if ! oc get cluster "${STORAGE_SCALE_CLUSTER_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" >/dev/null; then + echo "โŒ IBM Storage Scale Cluster not found" + echo "Please ensure the core deployment chain runs before this step" + exit 1 +fi + +CLUSTER_STATUS=$(oc get cluster "${STORAGE_SCALE_CLUSTER_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" -o jsonpath='{.status.conditions[?(@.type=="Success")].status}' 2>/dev/null || echo "Unknown") +echo " ๐Ÿ“Š Cluster Status: ${CLUSTER_STATUS}" + +if [[ "${CLUSTER_STATUS}" != "True" ]]; then + echo "โš ๏ธ IBM Storage Scale cluster is not ready, waiting for it to be ready..." + echo " โณ Waiting for cluster to be ready..." + if oc wait cluster "${STORAGE_SCALE_CLUSTER_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" --for=condition=Success --timeout=10m 2>/dev/null; then + echo " โœ… Cluster is now ready" + else + echo " โš ๏ธ Cluster not ready within timeout, proceeding anyway" + fi +fi + +# Check if filesystem already exists +if oc get filesystem "${FILESYSTEM_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" >/dev/null; then + echo "โœ… Shared filesystem already exists" + FS_STATUS=$(oc get filesystem "${FILESYSTEM_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" -o jsonpath='{.status.conditions[?(@.type=="Success")].status}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š Filesystem Status: ${FS_STATUS}" + + if [[ "${FS_STATUS}" == "True" ]]; then + echo "โœ… Shared filesystem is ready" + exit 0 + else + echo "โš ๏ธ Shared filesystem exists but not ready, waiting..." + fi +else + echo "๐Ÿ“ Creating shared filesystem..." + + # Get first worker node for LocalDisk creation + FIRST_WORKER=$(oc get nodes -l node-role.kubernetes.io/worker -o jsonpath='{.items[0].metadata.name}') + if [[ -z "${FIRST_WORKER}" ]]; then + echo "โŒ ERROR: No worker nodes found" + oc get nodes + exit 1 + fi + echo "โœ… Using worker node: ${FIRST_WORKER}" + + # Create LocalDisk resources for NVMe devices + DEVICES=("nvme2n1" "nvme3n1") + DISK_COUNT=0 + + for device in "${DEVICES[@]}"; do + LOCALDISK_NAME="shared-disk-${DISK_COUNT}" + + oc apply -f=- </dev/null; then + echo "โŒ CRD filesystems.scale.spectrum.ibm.com not found" + echo "This indicates the IBM Storage Scale operator is not properly installed" + else + echo "โœ… Filesystem CRD is available" + fi + + exit 1 + fi +fi + +echo "โณ Waiting for shared filesystem to be ready..." +FILESYSTEM_ATTEMPTS=0 +MAX_FILESYSTEM_ATTEMPTS=20 +while [[ $FILESYSTEM_ATTEMPTS -lt $MAX_FILESYSTEM_ATTEMPTS ]]; do + FS_STATUS=$(oc get filesystem "${FILESYSTEM_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" -o jsonpath='{.status.conditions[?(@.type=="Success")].status}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š Filesystem Status: ${FS_STATUS} (attempt $((FILESYSTEM_ATTEMPTS + 1))/$MAX_FILESYSTEM_ATTEMPTS)" + + if [[ "${FS_STATUS}" == "True" ]]; then + echo "โœ… Shared filesystem is ready" + break + else + echo " โณ Waiting for filesystem to be ready..." + sleep 30 + FILESYSTEM_ATTEMPTS=$((FILESYSTEM_ATTEMPTS + 1)) + fi +done + +if [[ $FILESYSTEM_ATTEMPTS -eq $MAX_FILESYSTEM_ATTEMPTS ]]; then + echo "โš ๏ธ Shared filesystem not ready within timeout" + echo "Filesystem details:" + oc get filesystem "${FILESYSTEM_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" -o yaml + echo "This may indicate that the filesystem is still initializing or there are issues with the storage configuration" +fi + +# Check for storage class creation +echo "๐Ÿ” Checking for IBM Storage Scale StorageClass..." +STORAGECLASS_ATTEMPTS=0 +MAX_STORAGECLASS_ATTEMPTS=12 +while [[ $STORAGECLASS_ATTEMPTS -lt $MAX_STORAGECLASS_ATTEMPTS ]]; do + if oc get storageclass | grep -i spectrum >/dev/null; then + echo "โœ… IBM Storage Scale StorageClass found:" + oc get storageclass | grep -i spectrum + break + else + echo "โณ Waiting for IBM Storage Scale StorageClass... (attempt $((STORAGECLASS_ATTEMPTS + 1))/$MAX_STORAGECLASS_ATTEMPTS)" + sleep 30 + STORAGECLASS_ATTEMPTS=$((STORAGECLASS_ATTEMPTS + 1)) + fi +done + +if [[ $STORAGECLASS_ATTEMPTS -eq $MAX_STORAGECLASS_ATTEMPTS ]]; then + echo "โš ๏ธ IBM Storage Scale StorageClass not found after 6 minutes" + echo "Available StorageClasses:" + oc get storageclass + echo "This may indicate that the filesystem is not fully ready or there are issues with the storage configuration" +fi + +echo "" +echo "๐Ÿ“Š Shared filesystem deployment summary:" +echo "โœ… IBM Storage Scale Cluster: ${CLUSTER_STATUS}" +echo "โœ… Shared Filesystem: Created for CNV integration using local storage" +echo "โœ… Storage Class: Available for CNV shared storage" +echo "" +echo "Available storage options:" +echo "1. IBM Storage Scale local storage (for IBM Storage Scale operations)" +echo "2. IBM Storage Scale shared Filesystem (for CNV and application data sharing)" +echo "" +echo "Shared Storage Information:" +echo "Filesystem: ${FILESYSTEM_NAME}" +echo "Storage Type: Local storage (no EBS dependency)" +echo "Access: Multi-node shared access for CNV integration" + +echo "" +echo "Filesystem status:" +oc get filesystem "${FILESYSTEM_NAME}" -n "${STORAGE_SCALE_NAMESPACE}" -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,STORAGECLASS:.status.storageClass" 2>/dev/null || echo "Filesystem not found" + +echo "" +echo "Available StorageClasses for CNV integration:" +oc get storageclass | grep -E "(spectrum|gp2)" || echo "No IBM Storage Scale or GP2 StorageClasses found" + +echo "โœ… IBM Storage Scale shared filesystem creation completed!" +echo " Ready for CNV integration without EBS dependency" diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.metadata.json new file mode 100644 index 0000000000000..c746ad362ae11 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.yaml new file mode 100644 index 0000000000000..a40f9e696deba --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/create-shared-filesystem/interop-tests-ibm-fusion-access-create-shared-filesystem-ref.yaml @@ -0,0 +1,24 @@ +ref: + as: interop-tests-ibm-fusion-access-create-shared-filesystem + from: cli + commands: interop-tests-ibm-fusion-access-create-shared-filesystem-commands.sh + timeout: 1h0m0s + best_effort: true + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Create IBM Storage Scale shared filesystem for CNV integration. + This step creates a shared filesystem using local storage or default + IBM Storage Scale configuration without EBS dependency. + env: + - name: STORAGE_SCALE_NAMESPACE + documentation: The namespace for IBM Storage Scale + default: "ibm-spectrum-scale" + - name: STORAGE_SCALE_CLUSTER_NAME + documentation: The name of the IBM Storage Scale cluster + default: "ibm-spectrum-scale" + - name: FILESYSTEM_NAME + documentation: The name of the shared filesystem + default: "shared-filesystem" diff --git a/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.metadata.json new file mode 100644 index 0000000000000..a2180d28d0a08 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.yaml similarity index 85% rename from ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.yaml index b8335d8ca6d42..d8a3e5a9a446b 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/custom-ibm-must-gather/interop-tests-fusion-access-custom-ibm-must-gather-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/custom-ibm-must-gather/interop-tests-ibm-fusion-access-custom-ibm-must-gather-ref.yaml @@ -1,5 +1,5 @@ ref: - as: interop-tests-fusion-access-custom-ibm-must-gather + as: interop-tests-ibm-fusion-access-custom-ibm-must-gather best_effort: true credentials: - namespace: test-credentials @@ -7,7 +7,7 @@ ref: mount_path: /var/run/secrets optional_on_success: true from: cli - commands: interop-tests-fusion-access-custom-ibm-must-gather-commands.sh + commands: interop-tests-ibm-fusion-access-custom-ibm-must-gather-commands.sh timeout: 1h0m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/OWNERS diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.metadata.json new file mode 100644 index 0000000000000..2073ccdb7e1b9 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.yaml similarity index 74% rename from ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.yaml index cf78c1469a6e7..ac07498c11928 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/ebs-integration-chain/interop-tests-fusion-access-ebs-integration-chain-chain.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/ebs-integration-chain/interop-tests-ibm-fusion-access-ebs-integration-chain-chain.yaml @@ -1,9 +1,9 @@ chain: - as: interop-tests-fusion-access-ebs-integration-chain + as: interop-tests-ibm-fusion-access-ebs-integration-chain steps: - ref: storage-create-aws-extra-disks - - ref: interop-tests-fusion-access-create-local-disks - - ref: interop-tests-fusion-access-create-ebs-filesystem + - ref: interop-tests-ibm-fusion-access-create-local-disks + - ref: interop-tests-ibm-fusion-access-create-ebs-filesystem env: - name: NODE_ROLE default: "worker" @@ -18,19 +18,19 @@ chain: default: "100" documentation: Size in GiB for each EBS volume documentation: |- - EBS integration chain for Fusion Access testing with EBS filesystem. + EBS integration chain for IBM Fusion Access testing with EBS filesystem. - This chain provides the EBS-specific components for Fusion Access testing: + This chain provides the EBS-specific components for IBM Fusion Access testing: - EBS volume creation: Creates and attaches 3x100GB gp3 EBS volumes per worker node - LocalDisk creation: Creates LocalDisk resources (for Filesystem references) - Filesystem creation: Creates IBM Storage Scale filesystem using LocalDisk references Note: Cluster uses /dev/disk/by-id/* device pattern for automatic discovery of EBS volumes. KMM registry must be configured for kernel module building (since - Fusion Access v0.0.19+). + IBM Fusion Access v0.0.19+). This chain should be used after the shared deployment chain to complete - the EBS-based Fusion Access deployment. + the EBS-based IBM Fusion Access deployment. Prerequisites: - Shared deployment chain must complete successfully diff --git a/ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/OWNERS diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.metadata.json new file mode 100644 index 0000000000000..3abeba2560737 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.yaml similarity index 58% rename from ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.yaml index 7a9408c2f91a7..ee33e01c46db4 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/environment-setup-chain/interop-tests-fusion-access-environment-setup-chain-chain.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/environment-setup-chain/interop-tests-ibm-fusion-access-environment-setup-chain-chain.yaml @@ -1,31 +1,31 @@ chain: - as: interop-tests-fusion-access-environment-setup-chain + as: interop-tests-ibm-fusion-access-environment-setup-chain steps: - chain: cucushift-installer-check-cluster-health - - ref: interop-tests-fusion-access-create-namespaces - - ref: interop-tests-fusion-access-create-pull-secrets - - ref: interop-tests-fusion-access-configure-aws-security-groups - - ref: interop-tests-fusion-access-install-fusion-access-operator - - ref: interop-tests-fusion-access-create-fusionaccess-resource - - ref: interop-tests-fusion-access-configure-kmm-registry - - ref: interop-tests-fusion-access-check-crds - - ref: interop-tests-fusion-access-check-nodes - - ref: interop-tests-fusion-access-label-nodes - - ref: interop-tests-fusion-access-prepare-worker-nodes - - ref: interop-tests-fusion-access-prepare-lxtrace-files - - ref: interop-tests-fusion-access-create-cluster - - ref: interop-tests-fusion-access-patch-buildgpl + - ref: interop-tests-ibm-fusion-access-create-namespaces + - ref: interop-tests-ibm-fusion-access-create-pull-secrets + - ref: interop-tests-ibm-fusion-access-configure-aws-security-groups + - ref: interop-tests-ibm-fusion-access-install-fusion-access-operator + - ref: interop-tests-ibm-fusion-access-create-fusionaccess-resource + - ref: interop-tests-ibm-fusion-access-configure-kmm-registry + - ref: interop-tests-ibm-fusion-access-check-crds + - ref: interop-tests-ibm-fusion-access-check-nodes + - ref: interop-tests-ibm-fusion-access-label-nodes + - ref: interop-tests-ibm-fusion-access-prepare-worker-nodes + - ref: interop-tests-ibm-fusion-access-prepare-lxtrace-files + - ref: interop-tests-ibm-fusion-access-create-cluster + - ref: interop-tests-ibm-fusion-access-patch-buildgpl documentation: |- - Fusion Access environment setup chain that provides the core deployment - infrastructure for Fusion Access Operator testing. + IBM Fusion Access environment setup chain that provides the core deployment + infrastructure for IBM Fusion Access Operator testing. - This chain sets up the complete Fusion Access environment including: + This chain sets up the complete IBM Fusion Access environment including: - Cluster health verification - - Fusion Access core deployment: - - Namespace creation for Fusion Access and IBM Storage Scale + - IBM Fusion Access core deployment: + - Namespace creation for IBM Fusion Access and IBM Storage Scale - Pull secret creation for IBM registry access - AWS security group configuration for IBM Storage Scale networking - - Fusion Access Operator installation with proper credentials + - IBM Fusion Access Operator installation with proper credentials - FusionAccess custom resource creation - KMM registry configuration (dual-namespace: ibm-fusion-access + ibm-spectrum-scale-operator) - CRD validation and node readiness checks diff --git a/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.metadata.json new file mode 100644 index 0000000000000..778ed763eaa9a --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.yaml similarity index 91% rename from ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.yaml index 1a09c02985bf2..07d64b39273d6 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/install-fusion-access-operator/interop-tests-fusion-access-install-fusion-access-operator-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/install-fusion-access-operator/interop-tests-ibm-fusion-access-install-fusion-access-operator-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-install-fusion-access-operator + as: interop-tests-ibm-fusion-access-install-fusion-access-operator from: cli - commands: interop-tests-fusion-access-install-fusion-access-operator-commands.sh + commands: interop-tests-ibm-fusion-access-install-fusion-access-operator-commands.sh timeout: 30m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/label-nodes/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.metadata.json new file mode 100644 index 0000000000000..aaef3ead57cd1 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.yaml similarity index 78% rename from ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.yaml index 51e7282891009..8dd5fa710e5d3 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/label-nodes/interop-tests-fusion-access-label-nodes-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/label-nodes/interop-tests-ibm-fusion-access-label-nodes-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-label-nodes + as: interop-tests-ibm-fusion-access-label-nodes from: cli - commands: interop-tests-fusion-access-label-nodes-commands.sh + commands: interop-tests-ibm-fusion-access-label-nodes-commands.sh timeout: 5m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.metadata.json new file mode 100644 index 0000000000000..3724f5a728cb2 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.yaml similarity index 91% rename from ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.yaml index 805feb5892b28..d9382c7bb9220 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/patch-buildgpl/interop-tests-fusion-access-patch-buildgpl-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/patch-buildgpl/interop-tests-ibm-fusion-access-patch-buildgpl-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-patch-buildgpl + as: interop-tests-ibm-fusion-access-patch-buildgpl from: cli - commands: interop-tests-fusion-access-patch-buildgpl-commands.sh + commands: interop-tests-ibm-fusion-access-patch-buildgpl-commands.sh timeout: 20m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.metadata.json new file mode 100644 index 0000000000000..424f2559dc474 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.yaml similarity index 86% rename from ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.yaml index 168f0d9638847..924103b7c75dd 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/prepare-lxtrace-files/interop-tests-fusion-access-prepare-lxtrace-files-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-lxtrace-files/interop-tests-ibm-fusion-access-prepare-lxtrace-files-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-prepare-lxtrace-files + as: interop-tests-ibm-fusion-access-prepare-lxtrace-files from: cli - commands: interop-tests-fusion-access-prepare-lxtrace-files-commands.sh + commands: interop-tests-ibm-fusion-access-prepare-lxtrace-files-commands.sh timeout: 10m0s resources: requests: diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.metadata.json new file mode 100644 index 0000000000000..65c723193d039 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.yaml similarity index 94% rename from ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.yaml index 2b570a66f6d83..d100c678e9ffc 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/prepare-worker-nodes/interop-tests-fusion-access-prepare-worker-nodes-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/prepare-worker-nodes/interop-tests-ibm-fusion-access-prepare-worker-nodes-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-prepare-worker-nodes + as: interop-tests-ibm-fusion-access-prepare-worker-nodes from: cli - commands: interop-tests-fusion-access-prepare-worker-nodes-commands.sh + commands: interop-tests-ibm-fusion-access-prepare-worker-nodes-commands.sh timeout: 10m0s grace_period: 15s resources: diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-commands.sh new file mode 100644 index 0000000000000..1e37054c76820 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-commands.sh @@ -0,0 +1,380 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +echo "๐Ÿงช Testing CNV VMs with IBM Storage Scale shared storage..." + +# Set default values +CNV_NAMESPACE="${CNV_NAMESPACE:-openshift-cnv}" +SHARED_STORAGE_CLASS="${SHARED_STORAGE_CLASS:-ibm-spectrum-scale-cnv}" +TEST_NAMESPACE="${TEST_NAMESPACE:-cnv-shared-storage-test}" +VM_CPU_REQUEST="${VM_CPU_REQUEST:-1}" +VM_MEMORY_REQUEST="${VM_MEMORY_REQUEST:-1Gi}" + +# JUnit XML test results +JUNIT_RESULTS_FILE="${ARTIFACT_DIR}/junit_cnv_shared_storage_tests.xml" +TEST_START_TIME=$SECONDS +TESTS_TOTAL=0 +TESTS_FAILED=0 +TESTS_PASSED=0 +TEST_CASES="" + +# Function to escape XML special characters +escape_xml() { + local text="$1" + # Escape XML special characters: & must be first to avoid double-escaping + echo "$text" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'\''/\'/g' +} + +# Function to add test result to JUnit XML +add_test_result() { + local test_name="$1" + local test_status="$2" # "passed" or "failed" + local test_duration="$3" + local test_message="${4:-}" + local test_classname="${5:-CNVSharedStorageTests}" + + # Escape XML special characters in user-provided strings + test_name=$(escape_xml "$test_name") + test_message=$(escape_xml "$test_message") + test_classname=$(escape_xml "$test_classname") + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [[ "$test_status" == "passed" ]]; then + TESTS_PASSED=$((TESTS_PASSED + 1)) + TEST_CASES="${TEST_CASES} + " + else + TESTS_FAILED=$((TESTS_FAILED + 1)) + TEST_CASES="${TEST_CASES} + + ${test_message} + " + fi +} + +# Function to generate JUnit XML report +generate_junit_xml() { + local total_duration=$((SECONDS - TEST_START_TIME)) + + cat > "${JUNIT_RESULTS_FILE}" < + + +${TEST_CASES} + + +EOF + + echo "" + echo "๐Ÿ“Š Test Results Summary:" + echo " Total Tests: ${TESTS_TOTAL}" + echo " Passed: ${TESTS_PASSED}" + echo " Failed: ${TESTS_FAILED}" + echo " Duration: ${total_duration}s" + echo " Results File: ${JUNIT_RESULTS_FILE}" + + # Copy to SHARED_DIR for data router reporter (if available) + if [[ -n "${SHARED_DIR:-}" ]] && [[ -d "${SHARED_DIR}" ]]; then + cp "${JUNIT_RESULTS_FILE}" "${SHARED_DIR}/junit_cnv_shared_storage_tests.xml" + echo " โœ… Results copied to SHARED_DIR" + fi +} + +start_test() { + local test_description="$1" + : "๐Ÿงช ${test_description}..." + echo "$SECONDS" +} + +# Helper function to record test result (eliminates repetitive duration calculation) +record_test() { + local test_start="$1" + local test_name="$2" + local test_status="$3" + local test_message="${4:-}" + + local test_duration=$((SECONDS - test_start)) + add_test_result "$test_name" "$test_status" "$test_duration" "$test_message" +} + +# Trap to ensure JUnit XML is generated even on failure +trap generate_junit_xml EXIT + +echo "๐Ÿ“‹ Configuration:" +echo " CNV Namespace: ${CNV_NAMESPACE}" +echo " Test Namespace: ${TEST_NAMESPACE}" +echo " Shared Storage Class: ${SHARED_STORAGE_CLASS}" +echo " VM CPU Request: ${VM_CPU_REQUEST}" +echo " VM Memory Request: ${VM_MEMORY_REQUEST}" +echo "" + +# Create test namespace +echo "๐Ÿ“ Creating test namespace..." +oc create namespace "${TEST_NAMESPACE}" --dry-run=client -o yaml | oc apply -f - +echo " โœ… Test namespace created: ${TEST_NAMESPACE}" + +# Check if shared storage class exists +echo "" +echo "๐Ÿ” Checking shared storage class..." +if oc get storageclass "${SHARED_STORAGE_CLASS}" >/dev/null; then + echo " โœ… Shared storage class found" + PROVISIONER=$(oc get storageclass "${SHARED_STORAGE_CLASS}" -o jsonpath='{.provisioner}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š Provisioner: ${PROVISIONER}" +else + echo " โŒ Shared storage class not found" + echo " Please ensure the shared storage class is created before running this test" + exit 1 +fi + +# Test 1: Create DataVolume with shared storage +test_start=$(start_test "Test 1: Creating DataVolume with shared storage") +test_status="failed" +test_message="" + +if oc apply -f - </dev/null; then + test_status="passed" + else + echo " โš ๏ธ VMI not found yet" + test_message="VMI not found after starting VM" + fi + else + echo " โŒ Failed to start VM" + test_message="Failed to start VM" + fi +else + echo " โŒ Failed to create VM" + test_message="Failed to create VM resource" +fi + +record_test "$test_start" "test_vm_creation_with_shared_storage" "$test_status" "$test_message" + +# Test 3: Create a simple PVC and pod to test shared storage +test_start=$(start_test "Test 3: Testing shared storage with simple PVC and pod") +test_status="failed" +test_message="" + +if oc apply -f - < /shared-storage/test-data.txt && echo 'Data written successfully' && cat /shared-storage/test-data.txt && sleep 3600"] + volumeMounts: + - name: shared-storage + mountPath: /shared-storage + volumes: + - name: shared-storage + persistentVolumeClaim: + claimName: test-simple-shared-pvc + restartPolicy: Never +EOF + then + echo " โœ… Test pod created" + + # Wait for pod to be running + echo " โณ Waiting for test pod to be running..." + if oc wait pod test-shared-storage-pod -n "${TEST_NAMESPACE}" --for=condition=Ready --timeout=2m; then + echo " โœ… Test pod is running" + + # Check pod logs + echo " ๐Ÿ“Š Test pod logs:" + oc logs test-shared-storage-pod -n "${TEST_NAMESPACE}" --tail=10 + test_status="passed" + else + echo " โš ๏ธ Test pod not ready within timeout" + test_message="Pod not ready within 2m timeout" + oc describe pod test-shared-storage-pod -n "${TEST_NAMESPACE}" + fi + else + echo " โŒ Failed to create test pod" + test_message="Failed to create test pod" + fi + else + echo " โš ๏ธ PVC not bound within timeout" + test_message="PVC not bound within 5m timeout" + oc get pvc test-simple-shared-pvc -n "${TEST_NAMESPACE}" -o yaml + fi +else + echo " โŒ Failed to create simple PVC" + test_message="Failed to create PVC resource" +fi + +record_test "$test_start" "test_simple_pvc_and_pod_with_shared_storage" "$test_status" "$test_message" + +# Check storage usage +echo "" +echo "๐Ÿ“Š Storage Usage Summary:" +echo " ๐Ÿ“‹ PVCs in test namespace:" +oc get pvc -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,STORAGECLASS:.spec.storageClassName,CAPACITY:.status.capacity" + +echo " ๐Ÿ“‹ VMs in test namespace:" +oc get vm -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,STATUS:.status.printableStatus,AGE:.metadata.creationTimestamp" + +echo " ๐Ÿ“‹ Pods in test namespace:" +oc get pods -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,AGE:.metadata.creationTimestamp" + +# Cleanup +echo "" +echo "๐Ÿงน Cleaning up test resources..." +echo " ๐Ÿ—‘๏ธ Stopping VM..." +if oc get vm test-shared-storage-vm -n "${TEST_NAMESPACE}" >/dev/null; then + oc patch vm test-shared-storage-vm -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":false}}' +fi + +echo " ๐Ÿ—‘๏ธ Deleting VM..." +oc delete vm test-shared-storage-vm -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting DataVolume..." +oc delete datavolume test-shared-storage-dv -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test pod..." +oc delete pod test-shared-storage-pod -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting PVCs..." +oc delete pvc test-simple-shared-pvc -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test namespace..." +oc delete namespace "${TEST_NAMESPACE}" --ignore-not-found + +echo " โœ… Cleanup completed" + +echo "" +echo "๐Ÿ“Š CNV Shared Storage Test Summary" +echo "==================================" +echo "โœ… DataVolume creation with shared storage tested" +echo "โœ… VM creation with shared storage tested" +echo "โœ… VM startup with shared storage tested" +echo "โœ… Simple PVC and pod with shared storage tested" +echo "โœ… Storage class integration verified" +echo "" +echo "๐ŸŽ‰ CNV VMs can successfully use IBM Storage Scale shared storage!" diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.metadata.json new file mode 100644 index 0000000000000..e463d2c3957ef --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.yaml new file mode 100644 index 0000000000000..d8e7f6da5fccb --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-cnv-shared-storage/interop-tests-ibm-fusion-access-test-cnv-shared-storage-ref.yaml @@ -0,0 +1,30 @@ +ref: + as: interop-tests-ibm-fusion-access-test-cnv-shared-storage + from: cli + commands: interop-tests-ibm-fusion-access-test-cnv-shared-storage-commands.sh + timeout: 2h0m0s + grace_period: 5m0s + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Test CNV VMs with IBM Storage Scale shared storage. + This step creates VMs and DataVolumes using the shared storage class + to verify that CNV can successfully use IBM Storage Scale storage. + env: + - name: CNV_NAMESPACE + documentation: The namespace for CNV + default: "openshift-cnv" + - name: SHARED_STORAGE_CLASS + documentation: Storage class for shared storage between CNV and IBM Fusion Access + default: "ibm-spectrum-scale-cnv" + - name: TEST_NAMESPACE + documentation: Namespace for testing VMs + default: "cnv-shared-storage-test" + - name: VM_CPU_REQUEST + documentation: CPU request for test VMs + default: "1" + - name: VM_MEMORY_REQUEST + documentation: Memory request for test VMs + default: "1Gi" diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-commands.sh new file mode 100644 index 0000000000000..c8e334a5f4cb4 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-commands.sh @@ -0,0 +1,434 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +echo "๐Ÿ”„ Testing CNV VM lifecycle operations with IBM Storage Scale shared storage..." + +# Set default values +CNV_NAMESPACE="${CNV_NAMESPACE:-openshift-cnv}" +SHARED_STORAGE_CLASS="${SHARED_STORAGE_CLASS:-ibm-spectrum-scale-cnv}" +TEST_NAMESPACE="${TEST_NAMESPACE:-cnv-lifecycle-test}" +VM_NAME="${VM_NAME:-test-lifecycle-vm}" +VM_CPU_REQUEST="${VM_CPU_REQUEST:-1}" +VM_MEMORY_REQUEST="${VM_MEMORY_REQUEST:-1Gi}" + +# JUnit XML test results +JUNIT_RESULTS_FILE="${ARTIFACT_DIR}/junit_vm_lifecycle_tests.xml" +TEST_START_TIME=$SECONDS +TESTS_TOTAL=0 +TESTS_FAILED=0 +TESTS_PASSED=0 +TEST_CASES="" + +# Function to escape XML special characters +escape_xml() { + local text="$1" + # Escape XML special characters: & must be first to avoid double-escaping + echo "$text" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'\''/\'/g' +} + +# Function to add test result to JUnit XML +add_test_result() { + local test_name="$1" + local test_status="$2" # "passed" or "failed" + local test_duration="$3" + local test_message="${4:-}" + local test_classname="${5:-VMLifecycleTests}" + + # Escape XML special characters in user-provided strings + test_name=$(escape_xml "$test_name") + test_message=$(escape_xml "$test_message") + test_classname=$(escape_xml "$test_classname") + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [[ "$test_status" == "passed" ]]; then + TESTS_PASSED=$((TESTS_PASSED + 1)) + TEST_CASES="${TEST_CASES} + " + else + TESTS_FAILED=$((TESTS_FAILED + 1)) + TEST_CASES="${TEST_CASES} + + ${test_message} + " + fi +} + +# Function to generate JUnit XML report +generate_junit_xml() { + local total_duration=$((SECONDS - TEST_START_TIME)) + + cat > "${JUNIT_RESULTS_FILE}" < + + +${TEST_CASES} + + +EOF + + echo "" + echo "๐Ÿ“Š Test Results Summary:" + echo " Total Tests: ${TESTS_TOTAL}" + echo " Passed: ${TESTS_PASSED}" + echo " Failed: ${TESTS_FAILED}" + echo " Duration: ${total_duration}s" + echo " Results File: ${JUNIT_RESULTS_FILE}" + + # Copy to SHARED_DIR for data router reporter (if available) + if [[ -n "${SHARED_DIR:-}" ]] && [[ -d "${SHARED_DIR}" ]]; then + cp "${JUNIT_RESULTS_FILE}" "${SHARED_DIR}/junit_vm_lifecycle_tests.xml" + echo " โœ… Results copied to SHARED_DIR" + fi +} + +start_test() { + local test_description="$1" + : "๐Ÿงช ${test_description}..." + echo "$SECONDS" +} + +# Helper function to record test result (eliminates repetitive duration calculation) +record_test() { + local test_start="$1" + local test_name="$2" + local test_status="$3" + local test_message="${4:-}" + + local test_duration=$((SECONDS - test_start)) + add_test_result "$test_name" "$test_status" "$test_duration" "$test_message" +} + +# Trap to ensure JUnit XML is generated even on failure +trap generate_junit_xml EXIT + +echo "๐Ÿ“‹ Configuration:" +echo " CNV Namespace: ${CNV_NAMESPACE}" +echo " Test Namespace: ${TEST_NAMESPACE}" +echo " Shared Storage Class: ${SHARED_STORAGE_CLASS}" +echo " VM Name: ${VM_NAME}" +echo " VM CPU Request: ${VM_CPU_REQUEST}" +echo " VM Memory Request: ${VM_MEMORY_REQUEST}" +echo "" + +# Create test namespace +echo "๐Ÿ“ Creating test namespace..." +if oc get namespace "${TEST_NAMESPACE}" >/dev/null; then + echo " โœ… Test namespace already exists: ${TEST_NAMESPACE}" +else + oc create namespace "${TEST_NAMESPACE}" --dry-run=client -o yaml | oc apply -f - + oc wait --for=jsonpath='{.status.phase}'=Active namespace/"${TEST_NAMESPACE}" --timeout=300s + echo " โœ… Test namespace created: ${TEST_NAMESPACE}" +fi + +# Check if shared storage class exists +echo "" +echo "๐Ÿ” Checking shared storage class..." +if oc get storageclass "${SHARED_STORAGE_CLASS}" >/dev/null; then + echo " โœ… Shared storage class found" + PROVISIONER=$(oc get storageclass "${SHARED_STORAGE_CLASS}" -o jsonpath='{.provisioner}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š Provisioner: ${PROVISIONER}" +else + echo " โŒ Shared storage class not found" + echo " Please ensure the shared storage class is created before running this test" + exit 1 +fi + +# Create DataVolume for VM +echo "" +echo "๐Ÿ“ฆ Creating DataVolume for VM..." +if oc apply -f - </dev/null; then + VMI_FOUND=true + break + fi + sleep 5 + ELAPSED=$((ELAPSED + 5)) + done + + if [[ "$VMI_FOUND" == "true" ]]; then + echo " โœ… VMI created successfully" + + # Wait for VMI to be running + echo " โณ Waiting for VMI to be running (5m timeout)..." + if timeout 300 bash -c "until oc get vmi ${VM_NAME} -n ${TEST_NAMESPACE} -o jsonpath='{.status.phase}' 2>/dev/null | grep -q 'Running'; do sleep 5; done"; then + echo " โœ… VMI is running" + + # Get VM status + VM_STATUS=$(oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.printableStatus}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š VM Status: ${VM_STATUS}" + + test_status="passed" + else + echo " โš ๏ธ VMI not running within timeout" + test_message="VMI not running within 5m timeout" + oc describe vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" || true + fi + else + echo " โš ๏ธ VMI not created within timeout" + test_message="VMI not created within 5m timeout" + oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" -o yaml || true + fi +else + echo " โŒ Failed to start VM" + test_message="Failed to patch VM spec.running=true" +fi + +record_test "$test_start" "fa_cnv_1011_prerequisite_start_vm" "$test_status" "$test_message" + +# If VM didn't start, we can't continue with remaining tests +if [[ "$test_status" != "passed" ]]; then + echo "" + echo "โŒ VM failed to start - cannot continue with lifecycle tests" + exit 1 +fi + +# Test 2: FA-CNV-1011 - Stop VM +test_start=$(start_test "FA-CNV-1011: Stopping VM with shared storage") +test_status="failed" +test_message="" + +echo " ๐Ÿ›‘ Stopping VM by setting spec.running=false..." +if oc patch vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":false}}'; then + echo " โœ… VM stop command sent" + + # Wait for VMI to be deleted + echo " โณ Waiting for VMI to be deleted (5m timeout)..." + TIMEOUT=300 + ELAPSED=0 + VMI_DELETED=false + + while [[ $ELAPSED -lt $TIMEOUT ]]; do + if ! oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + VMI_DELETED=true + break + fi + sleep 5 + ELAPSED=$((ELAPSED + 5)) + done + + if [[ "$VMI_DELETED" == "true" ]]; then + echo " โœ… VMI deleted successfully" + + # Verify VM status shows Stopped + VM_STATUS=$(oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.printableStatus}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š VM Status after stop: ${VM_STATUS}" + + if [[ "$VM_STATUS" == "Stopped" ]]; then + echo " โœ… VM status is Stopped" + test_status="passed" + else + echo " โš ๏ธ VM status is not Stopped (status: ${VM_STATUS})" + test_message="VM status not 'Stopped' after VMI deletion (status: ${VM_STATUS})" + fi + else + echo " โš ๏ธ VMI not deleted within timeout" + test_message="VMI not deleted within 5m timeout" + oc describe vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" || true + fi +else + echo " โŒ Failed to stop VM" + test_message="Failed to patch VM spec.running=false" +fi + +record_test "$test_start" "fa_cnv_1011_stop_vm_with_shared_storage" "$test_status" "$test_message" + +# Test 3: FA-CNV-1012 - Restart VM +test_start=$(start_test "FA-CNV-1012: Restarting VM with shared storage") +test_status="failed" +test_message="" + +echo " ๐Ÿ”„ Restarting VM by setting spec.running=true..." +if oc patch vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":true}}'; then + echo " โœ… VM restart command sent" + + # Wait for new VMI to be created + echo " โณ Waiting for new VMI to be created (5m timeout)..." + TIMEOUT=300 + ELAPSED=0 + VMI_FOUND=false + + while [[ $ELAPSED -lt $TIMEOUT ]]; do + if oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + VMI_FOUND=true + break + fi + sleep 5 + ELAPSED=$((ELAPSED + 5)) + done + + if [[ "$VMI_FOUND" == "true" ]]; then + echo " โœ… New VMI created successfully" + + # Wait for VMI to be running + echo " โณ Waiting for VMI to be running (5m timeout)..." + if timeout 300 bash -c "until oc get vmi ${VM_NAME} -n ${TEST_NAMESPACE} -o jsonpath='{.status.phase}' 2>/dev/null | grep -q 'Running'; do sleep 5; done"; then + echo " โœ… VMI is running after restart" + + # Get VM status + VM_STATUS=$(oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.printableStatus}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š VM Status after restart: ${VM_STATUS}" + + # Verify PVC is still bound (data persistence check) + PVC_STATUS=$(oc get pvc "${VM_NAME}-dv" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š PVC Status: ${PVC_STATUS}" + + if [[ "$PVC_STATUS" == "Bound" ]]; then + echo " โœ… PVC still bound - data persistence verified" + test_status="passed" + else + echo " โš ๏ธ PVC not bound (status: ${PVC_STATUS})" + test_message="PVC not bound after VM restart (status: ${PVC_STATUS})" + fi + else + echo " โš ๏ธ VMI not running within timeout" + test_message="VMI not running within 5m timeout after restart" + oc describe vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" || true + fi + else + echo " โš ๏ธ VMI not created within timeout" + test_message="VMI not created within 5m timeout after restart" + oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" -o yaml || true + fi +else + echo " โŒ Failed to restart VM" + test_message="Failed to patch VM spec.running=true for restart" +fi + +record_test "$test_start" "fa_cnv_1012_restart_vm_with_shared_storage" "$test_status" "$test_message" + +# Cleanup +echo "" +echo "๐Ÿงน Cleaning up test resources..." +echo " ๐Ÿ—‘๏ธ Stopping VM..." +if oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + oc patch vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":false}}' || true + sleep 10 +fi + +echo " ๐Ÿ—‘๏ธ Deleting VM..." +oc delete vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting DataVolume..." +oc delete datavolume "${VM_NAME}-dv" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test namespace..." +oc delete namespace "${TEST_NAMESPACE}" --ignore-not-found + +echo " โœ… Cleanup completed" + +echo "" +echo "๐Ÿ“Š VM Lifecycle Test Summary" +echo "============================" +echo "โœ… FA-CNV-1011: VM stop operation tested" +echo "โœ… FA-CNV-1012: VM restart operation tested" +echo "โœ… Data persistence verified across VM lifecycle" +echo "" +echo "๐ŸŽ‰ VM lifecycle operations with IBM Storage Scale shared storage completed!" + + diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.metadata.json new file mode 100644 index 0000000000000..a4ae5742e2087 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.yaml new file mode 100644 index 0000000000000..3d7709566fd7e --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-lifecycle/interop-tests-ibm-fusion-access-test-vm-lifecycle-ref.yaml @@ -0,0 +1,46 @@ +ref: + as: interop-tests-ibm-fusion-access-test-vm-lifecycle + from: cli + commands: interop-tests-ibm-fusion-access-test-vm-lifecycle-commands.sh + timeout: 2h0m0s + grace_period: 5m0s + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Test CNV VM lifecycle operations with IBM Storage Scale shared storage. + + This step tests VM stop and restart operations to verify that VMs can be + properly stopped and restarted while preserving data on IBM Storage Scale + shared storage. + + Tests implemented: + - FA-CNV-1011: Stop VM with shared storage (verify VMI deletion and VM status) + - FA-CNV-1012: Restart VM with shared storage (verify data persistence) + + Prerequisites: + - CNV must be deployed and operational + - IBM Storage Scale shared storage class must be configured + - Test namespace will be created if it doesn't exist + env: + - name: CNV_NAMESPACE + documentation: The namespace for CNV + default: "openshift-cnv" + - name: SHARED_STORAGE_CLASS + documentation: Storage class for shared storage between CNV and IBM Fusion Access + default: "ibm-spectrum-scale-cnv" + - name: TEST_NAMESPACE + documentation: Namespace for testing VM lifecycle operations + default: "cnv-lifecycle-test" + - name: VM_NAME + documentation: Name of the test VM + default: "test-lifecycle-vm" + - name: VM_CPU_REQUEST + documentation: CPU request for test VM + default: "1" + - name: VM_MEMORY_REQUEST + documentation: Memory request for test VM + default: "1Gi" + + diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-commands.sh new file mode 100644 index 0000000000000..c37ea97f0b3b9 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-commands.sh @@ -0,0 +1,446 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +echo "๐Ÿš€ Testing CNV VM live migration with IBM Storage Scale shared storage..." + +# Set default values +CNV_NAMESPACE="${CNV_NAMESPACE:-openshift-cnv}" +SHARED_STORAGE_CLASS="${SHARED_STORAGE_CLASS:-ibm-spectrum-scale-cnv}" +TEST_NAMESPACE="${TEST_NAMESPACE:-cnv-migration-test}" +VM_NAME="${VM_NAME:-test-migration-vm}" +VM_CPU_REQUEST="${VM_CPU_REQUEST:-1}" +VM_MEMORY_REQUEST="${VM_MEMORY_REQUEST:-1Gi}" +VM_MIGRATION_TIMEOUT="${VM_MIGRATION_TIMEOUT:-15m}" + +# JUnit XML test results +JUNIT_RESULTS_FILE="${ARTIFACT_DIR}/junit_vm_migration_tests.xml" +TEST_START_TIME=$SECONDS +TESTS_TOTAL=0 +TESTS_FAILED=0 +TESTS_PASSED=0 +TEST_CASES="" + +# Function to escape XML special characters +escape_xml() { + local text="$1" + # Escape XML special characters: & must be first to avoid double-escaping + echo "$text" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'\''/\'/g' +} + +# Function to add test result to JUnit XML +add_test_result() { + local test_name="$1" + local test_status="$2" # "passed" or "failed" + local test_duration="$3" + local test_message="${4:-}" + local test_classname="${5:-VMMigrationTests}" + + # Escape XML special characters in user-provided strings + test_name=$(escape_xml "$test_name") + test_message=$(escape_xml "$test_message") + test_classname=$(escape_xml "$test_classname") + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [[ "$test_status" == "passed" ]]; then + TESTS_PASSED=$((TESTS_PASSED + 1)) + TEST_CASES="${TEST_CASES} + " + else + TESTS_FAILED=$((TESTS_FAILED + 1)) + TEST_CASES="${TEST_CASES} + + ${test_message} + " + fi +} + +# Function to generate JUnit XML report +generate_junit_xml() { + local total_duration=$((SECONDS - TEST_START_TIME)) + + cat > "${JUNIT_RESULTS_FILE}" < + + +${TEST_CASES} + + +EOF + + echo "" + echo "๐Ÿ“Š Test Results Summary:" + echo " Total Tests: ${TESTS_TOTAL}" + echo " Passed: ${TESTS_PASSED}" + echo " Failed: ${TESTS_FAILED}" + echo " Duration: ${total_duration}s" + echo " Results File: ${JUNIT_RESULTS_FILE}" + + # Copy to SHARED_DIR for data router reporter (if available) + if [[ -n "${SHARED_DIR:-}" ]] && [[ -d "${SHARED_DIR}" ]]; then + cp "${JUNIT_RESULTS_FILE}" "${SHARED_DIR}/junit_vm_migration_tests.xml" + echo " โœ… Results copied to SHARED_DIR" + fi +} + +start_test() { + local test_description="$1" + : "๐Ÿงช ${test_description}..." + echo "$SECONDS" +} + +# Helper function to record test result (eliminates repetitive duration calculation) +record_test() { + local test_start="$1" + local test_name="$2" + local test_status="$3" + local test_message="${4:-}" + + local test_duration=$((SECONDS - test_start)) + add_test_result "$test_name" "$test_status" "$test_duration" "$test_message" +} + +# Trap to ensure JUnit XML is generated even on failure +trap generate_junit_xml EXIT + +echo "๐Ÿ“‹ Configuration:" +echo " CNV Namespace: ${CNV_NAMESPACE}" +echo " Test Namespace: ${TEST_NAMESPACE}" +echo " Shared Storage Class: ${SHARED_STORAGE_CLASS}" +echo " VM Name: ${VM_NAME}" +echo " VM CPU Request: ${VM_CPU_REQUEST}" +echo " VM Memory Request: ${VM_MEMORY_REQUEST}" +echo " Migration Timeout: ${VM_MIGRATION_TIMEOUT}" +echo "" + +# Create test namespace +echo "๐Ÿ“ Creating test namespace..." +if oc get namespace "${TEST_NAMESPACE}" >/dev/null; then + echo " โœ… Test namespace already exists: ${TEST_NAMESPACE}" +else + oc create namespace "${TEST_NAMESPACE}" --dry-run=client -o yaml | oc apply -f - + oc wait --for=jsonpath='{.status.phase}'=Active namespace/"${TEST_NAMESPACE}" --timeout=300s + echo " โœ… Test namespace created: ${TEST_NAMESPACE}" +fi + +# Check if shared storage class exists +echo "" +echo "๐Ÿ” Checking shared storage class..." +if oc get storageclass "${SHARED_STORAGE_CLASS}" >/dev/null; then + echo " โœ… Shared storage class found" + PROVISIONER=$(oc get storageclass "${SHARED_STORAGE_CLASS}" -o jsonpath='{.provisioner}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š Provisioner: ${PROVISIONER}" +else + echo " โŒ Shared storage class not found" + echo " Please ensure the shared storage class is created before running this test" + exit 1 +fi + +# Test 1: FA-CNV-1022 - Preparation for live migration +test_start=$(start_test "FA-CNV-1022: Preparing environment for VM live migration") +test_status="failed" +test_message="" + +# Check for multiple worker nodes +echo " ๐Ÿ” Checking for multiple worker nodes..." +WORKER_NODES=$(oc get nodes -l node-role.kubernetes.io/worker --no-headers | wc -l) +echo " ๐Ÿ“Š Worker nodes available: ${WORKER_NODES}" + +if [[ ${WORKER_NODES} -lt 2 ]]; then + echo " โš ๏ธ Insufficient worker nodes for migration testing (need 2+, found ${WORKER_NODES})" + test_message="Insufficient worker nodes for migration (need 2+, found ${WORKER_NODES})" + record_test "$test_start" "fa_cnv_1022_prepare_migration_environment" "$test_status" "$test_message" + + echo "" + echo "โŒ Cannot perform live migration tests with less than 2 worker nodes" + echo " Skipping migration tests..." + exit 0 +fi + +echo " โœ… Multiple worker nodes available for migration testing" + +# List available worker nodes +echo " ๐Ÿ“‹ Available worker nodes:" +oc get nodes -l node-role.kubernetes.io/worker -o custom-columns="NAME:.metadata.name,STATUS:.status.conditions[?(@.type=='Ready')].status,ROLE:.metadata.labels.node-role\.kubernetes\.io/worker" + +test_status="passed" +record_test "$test_start" "fa_cnv_1022_prepare_migration_environment" "$test_status" "$test_message" + +# Create DataVolume for VM +echo "" +echo "๐Ÿ“ฆ Creating DataVolume for migration test VM..." +if oc apply -f - </dev/null || echo "NotFound") + if [[ "$VMI_PHASE" == "Running" ]]; then + VMI_RUNNING=true + break + fi + sleep 5 + ELAPSED=$((ELAPSED + 5)) + done + + if [[ "$VMI_RUNNING" == "true" ]]; then + echo " โœ… VMI is running" + + # Get the current node where VM is running + SOURCE_NODE=$(oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.nodeName}') + echo " ๐Ÿ“Š VM currently running on node: ${SOURCE_NODE}" + else + echo " โŒ VMI not running within timeout" + oc describe vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" || true + exit 1 + fi +else + echo " โŒ Failed to create VM" + exit 1 +fi + +# Test 2: FA-CNV-1023 - Execute live migration +test_start=$(start_test "FA-CNV-1023: Executing VM live migration") +test_status="failed" +test_message="" + +# Get current node before migration +SOURCE_NODE=$(oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.nodeName}') +echo " ๐Ÿ“Š Source node before migration: ${SOURCE_NODE}" + +# Create VirtualMachineInstanceMigration resource +MIGRATION_NAME="${VM_NAME}-migration-$(date +%s)" +echo " ๐Ÿš€ Creating VirtualMachineInstanceMigration: ${MIGRATION_NAME}..." + +if oc apply -f - </dev/null || echo "Unknown") + echo " ๐Ÿ“Š Migration status: ${MIGRATION_STATUS}" + + test_status="passed" + else + echo " โš ๏ธ Migration did not complete within timeout" + test_message="Migration did not complete within ${VM_MIGRATION_TIMEOUT}" + + # Get migration details for debugging + echo " ๐Ÿ“Š Migration details:" + oc get vmim "${MIGRATION_NAME}" -n "${TEST_NAMESPACE}" -o yaml || true + oc describe vmim "${MIGRATION_NAME}" -n "${TEST_NAMESPACE}" || true + fi +else + echo " โŒ Failed to create VirtualMachineInstanceMigration" + test_message="Failed to create VirtualMachineInstanceMigration resource" +fi + +record_test "$test_start" "fa_cnv_1023_execute_vm_live_migration" "$test_status" "$test_message" + +# Test 3: FA-CNV-1024 - Verify migration results +test_start=$(start_test "FA-CNV-1024: Verifying VM migration results") +test_status="failed" +test_message="" + +# Get current node after migration +# Check if VMI exists first to avoid false positive when VMI is deleted/missing +if ! oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + echo " โŒ VMI not found after migration" + test_message="VMI not found after migration" + TARGET_NODE="" +else + TARGET_NODE=$(oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.nodeName}' 2>/dev/null || echo "") + echo " ๐Ÿ“Š Target node after migration: ${TARGET_NODE}" +fi + +# Verify VM migrated to a different node +if [[ -n "${TARGET_NODE}" ]] && [[ "${SOURCE_NODE}" != "${TARGET_NODE}" ]]; then + echo " โœ… VM successfully migrated to different node" + echo " Source: ${SOURCE_NODE}" + echo " Target: ${TARGET_NODE}" + + # Verify VMI is still running + VMI_PHASE=$(oc get vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š VMI phase after migration: ${VMI_PHASE}" + + if [[ "$VMI_PHASE" == "Running" ]]; then + echo " โœ… VMI is running on new node" + + # Verify PVC is still bound (shared storage still accessible) + PVC_STATUS=$(oc get pvc "${VM_NAME}-dv" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š PVC status after migration: ${PVC_STATUS}" + + if [[ "$PVC_STATUS" == "Bound" ]]; then + echo " โœ… PVC still bound - shared storage accessible" + + # Get VM status + VM_STATUS=$(oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.printableStatus}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š VM status after migration: ${VM_STATUS}" + + if [[ "$VM_STATUS" == "Running" ]]; then + echo " โœ… VM status is Running after migration" + test_status="passed" + else + echo " โš ๏ธ VM status is not Running (status: ${VM_STATUS})" + test_message="VM status not 'Running' after migration (status: ${VM_STATUS})" + fi + else + echo " โš ๏ธ PVC not bound after migration (status: ${PVC_STATUS})" + test_message="PVC not bound after migration (status: ${PVC_STATUS})" + fi + else + echo " โš ๏ธ VMI not running after migration (phase: ${VMI_PHASE})" + test_message="VMI not running after migration (phase: ${VMI_PHASE})" + oc describe vmi "${VM_NAME}" -n "${TEST_NAMESPACE}" || true + fi +else + if [[ -z "${TARGET_NODE}" ]]; then + echo " โš ๏ธ VM migration verification failed - VMI not available" + echo " Source: ${SOURCE_NODE}" + # test_message already set above when VMI not found + else + echo " โš ๏ธ VM did not migrate to a different node" + echo " Source: ${SOURCE_NODE}" + echo " Target: ${TARGET_NODE}" + test_message="VM stayed on same node (${SOURCE_NODE})" + fi +fi + +record_test "$test_start" "fa_cnv_1024_verify_migration_results" "$test_status" "$test_message" + +# Display migration summary +echo "" +echo "๐Ÿ“Š Migration Summary:" +echo " Source Node: ${SOURCE_NODE}" +echo " Target Node: ${TARGET_NODE}" +echo " Migration Name: ${MIGRATION_NAME}" +if oc get vmim "${MIGRATION_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + oc get vmim "${MIGRATION_NAME}" -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,PHASE:.status.phase,START:.metadata.creationTimestamp" +fi + +# Cleanup +echo "" +echo "๐Ÿงน Cleaning up test resources..." +echo " ๐Ÿ—‘๏ธ Stopping VM..." +if oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + oc patch vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":false}}' || true + sleep 10 +fi + +echo " ๐Ÿ—‘๏ธ Deleting migration resource..." +oc delete vmim "${MIGRATION_NAME}" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting VM..." +oc delete vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting DataVolume..." +oc delete datavolume "${VM_NAME}-dv" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test namespace..." +oc delete namespace "${TEST_NAMESPACE}" --ignore-not-found + +echo " โœ… Cleanup completed" + +echo "" +echo "๐Ÿ“Š VM Migration Test Summary" +echo "=============================" +echo "โœ… FA-CNV-1022: Migration environment preparation tested" +echo "โœ… FA-CNV-1023: VM live migration execution tested" +echo "โœ… FA-CNV-1024: Migration verification tested" +echo "โœ… Shared storage accessibility verified post-migration" +echo "" +echo "๐ŸŽ‰ VM live migration with IBM Storage Scale shared storage completed!" + + diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.metadata.json new file mode 100644 index 0000000000000..0132c9bd7641d --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.yaml new file mode 100644 index 0000000000000..f0fffd09f868b --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-migration/interop-tests-ibm-fusion-access-test-vm-migration-ref.yaml @@ -0,0 +1,52 @@ +ref: + as: interop-tests-ibm-fusion-access-test-vm-migration + from: cli + commands: interop-tests-ibm-fusion-access-test-vm-migration-commands.sh + timeout: 2h0m0s + grace_period: 5m0s + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Test CNV VM live migration with IBM Storage Scale shared storage. + + This step tests VM live migration to verify that VMs can be migrated + between nodes while maintaining access to IBM Storage Scale shared storage. + + Tests implemented: + - FA-CNV-1022: Prepare migration environment (verify 2+ worker nodes) + - FA-CNV-1023: Execute live migration using VirtualMachineInstanceMigration + - FA-CNV-1024: Verify migration success and shared storage accessibility + + Prerequisites: + - CNV must be deployed and operational + - IBM Storage Scale shared storage class must be configured + - At least 2 worker nodes required for migration + - Test namespace will be created if it doesn't exist + + Note: Tests will be skipped gracefully if insufficient worker nodes available. + env: + - name: CNV_NAMESPACE + documentation: The namespace for CNV + default: "openshift-cnv" + - name: SHARED_STORAGE_CLASS + documentation: Storage class for shared storage between CNV and IBM Fusion Access + default: "ibm-spectrum-scale-cnv" + - name: TEST_NAMESPACE + documentation: Namespace for testing VM migration + default: "cnv-migration-test" + - name: VM_NAME + documentation: Name of the test VM + default: "test-migration-vm" + - name: VM_CPU_REQUEST + documentation: CPU request for test VM + default: "1" + - name: VM_MEMORY_REQUEST + documentation: Memory request for test VM + default: "1Gi" + - name: VM_MIGRATION_TIMEOUT + documentation: Timeout for VM migration operation + default: "15m" + + diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-commands.sh new file mode 100644 index 0000000000000..4ea04ca04a605 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-commands.sh @@ -0,0 +1,548 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +echo "๐Ÿ“ธ Testing CNV VM snapshot operations with IBM Storage Scale shared storage..." + +# Set default values +CNV_NAMESPACE="${CNV_NAMESPACE:-openshift-cnv}" +SHARED_STORAGE_CLASS="${SHARED_STORAGE_CLASS:-ibm-spectrum-scale-cnv}" +TEST_NAMESPACE="${TEST_NAMESPACE:-cnv-snapshots-test}" +VM_NAME="${VM_NAME:-test-snapshot-vm}" +SNAPSHOT_NAME="${SNAPSHOT_NAME:-test-vm-snapshot}" +RESTORE_VM_NAME="${RESTORE_VM_NAME:-restored-vm}" +VM_CPU_REQUEST="${VM_CPU_REQUEST:-1}" +VM_MEMORY_REQUEST="${VM_MEMORY_REQUEST:-1Gi}" +VM_SNAPSHOT_TIMEOUT="${VM_SNAPSHOT_TIMEOUT:-10m}" + +# JUnit XML test results +JUNIT_RESULTS_FILE="${ARTIFACT_DIR}/junit_vm_snapshots_tests.xml" +TEST_START_TIME=$SECONDS +TESTS_TOTAL=0 +TESTS_FAILED=0 +TESTS_PASSED=0 +TEST_CASES="" + +# Function to escape XML special characters +escape_xml() { + local text="$1" + # Escape XML special characters: & must be first to avoid double-escaping + echo "$text" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'\''/\'/g' +} + +# Function to add test result to JUnit XML +add_test_result() { + local test_name="$1" + local test_status="$2" # "passed" or "failed" + local test_duration="$3" + local test_message="${4:-}" + local test_classname="${5:-VMSnapshotsTests}" + + # Escape XML special characters in user-provided strings + test_name=$(escape_xml "$test_name") + test_message=$(escape_xml "$test_message") + test_classname=$(escape_xml "$test_classname") + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [[ "$test_status" == "passed" ]]; then + TESTS_PASSED=$((TESTS_PASSED + 1)) + TEST_CASES="${TEST_CASES} + " + else + TESTS_FAILED=$((TESTS_FAILED + 1)) + TEST_CASES="${TEST_CASES} + + ${test_message} + " + fi +} + +# Function to generate JUnit XML report +generate_junit_xml() { + local total_duration=$((SECONDS - TEST_START_TIME)) + + cat > "${JUNIT_RESULTS_FILE}" < + + +${TEST_CASES} + + +EOF + + echo "" + echo "๐Ÿ“Š Test Results Summary:" + echo " Total Tests: ${TESTS_TOTAL}" + echo " Passed: ${TESTS_PASSED}" + echo " Failed: ${TESTS_FAILED}" + echo " Duration: ${total_duration}s" + echo " Results File: ${JUNIT_RESULTS_FILE}" + + # Copy to SHARED_DIR for data router reporter (if available) + if [[ -n "${SHARED_DIR:-}" ]] && [[ -d "${SHARED_DIR}" ]]; then + cp "${JUNIT_RESULTS_FILE}" "${SHARED_DIR}/junit_vm_snapshots_tests.xml" + echo " โœ… Results copied to SHARED_DIR" + fi +} + +start_test() { + local test_description="$1" + : "๐Ÿงช ${test_description}..." + echo "$SECONDS" +} + +# Helper function to record test result (eliminates repetitive duration calculation) +record_test() { + local test_start="$1" + local test_name="$2" + local test_status="$3" + local test_message="${4:-}" + + local test_duration=$((SECONDS - test_start)) + add_test_result "$test_name" "$test_status" "$test_duration" "$test_message" +} + +# Trap to ensure JUnit XML is generated even on failure +trap generate_junit_xml EXIT + +echo "๐Ÿ“‹ Configuration:" +echo " CNV Namespace: ${CNV_NAMESPACE}" +echo " Test Namespace: ${TEST_NAMESPACE}" +echo " Shared Storage Class: ${SHARED_STORAGE_CLASS}" +echo " VM Name: ${VM_NAME}" +echo " Snapshot Name: ${SNAPSHOT_NAME}" +echo " Restore VM Name: ${RESTORE_VM_NAME}" +echo " VM CPU Request: ${VM_CPU_REQUEST}" +echo " VM Memory Request: ${VM_MEMORY_REQUEST}" +echo " Snapshot Timeout: ${VM_SNAPSHOT_TIMEOUT}" +echo "" + +# Create test namespace +echo "๐Ÿ“ Creating test namespace..." +if oc get namespace "${TEST_NAMESPACE}" >/dev/null; then + echo " โœ… Test namespace already exists: ${TEST_NAMESPACE}" +else + oc create namespace "${TEST_NAMESPACE}" --dry-run=client -o yaml | oc apply -f - + oc wait --for=jsonpath='{.status.phase}'=Active namespace/"${TEST_NAMESPACE}" --timeout=300s + echo " โœ… Test namespace created: ${TEST_NAMESPACE}" +fi + +# Check if shared storage class exists +echo "" +echo "๐Ÿ” Checking shared storage class..." +if oc get storageclass "${SHARED_STORAGE_CLASS}" >/dev/null; then + echo " โœ… Shared storage class found" + PROVISIONER=$(oc get storageclass "${SHARED_STORAGE_CLASS}" -o jsonpath='{.provisioner}' 2>/dev/null || echo "Unknown") + echo " ๐Ÿ“Š Provisioner: ${PROVISIONER}" +else + echo " โŒ Shared storage class not found" + echo " Please ensure the shared storage class is created before running this test" + exit 1 +fi + +# Check for VolumeSnapshotClass +echo "" +echo "๐Ÿ” Checking for VolumeSnapshotClass..." +SNAPSHOT_CLASSES=$(oc get volumesnapshotclass --no-headers 2>/dev/null | wc -l || echo "0") +echo " ๐Ÿ“Š VolumeSnapshotClass count: ${SNAPSHOT_CLASSES}" + +if [[ ${SNAPSHOT_CLASSES} -eq 0 ]]; then + echo " โš ๏ธ No VolumeSnapshotClass found" + echo " Attempting to create VolumeSnapshotClass for IBM Storage Scale CSI..." + + # Create VolumeSnapshotClass for IBM Storage Scale CSI + if oc apply -f - </dev/null || echo "Unknown") + echo " ๐Ÿ“Š Snapshot status: ${SNAPSHOT_STATUS}" + + test_status="passed" + else + echo " โš ๏ธ Snapshot not ready within timeout" + test_message="Snapshot not ready within ${VM_SNAPSHOT_TIMEOUT}" + + # Get snapshot details for debugging + echo " ๐Ÿ“Š Snapshot details:" + oc get vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" -o yaml || true + oc describe vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" || true + fi +else + echo " โŒ Failed to create VirtualMachineSnapshot" + test_message="Failed to create VirtualMachineSnapshot resource" +fi + +record_test "$test_start" "fa_cnv_1025_create_vm_snapshot" "$test_status" "$test_message" + +# Test 2: FA-CNV-1026 - Verify snapshot exists +test_start=$(start_test "FA-CNV-1026: Verifying VM snapshot exists") +test_status="failed" +test_message="" + +# Check if snapshot exists +if oc get vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + echo " โœ… VirtualMachineSnapshot exists" + + # Get snapshot details + SNAPSHOT_READY=$(oc get vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.readyToUse}' 2>/dev/null || echo "false") + echo " ๐Ÿ“Š Snapshot readyToUse: ${SNAPSHOT_READY}" + + # Check for VolumeSnapshot resources created by the VM snapshot + echo " ๐Ÿ” Checking for VolumeSnapshot resources..." + VOLUME_SNAPSHOTS=$(oc get volumesnapshot -n "${TEST_NAMESPACE}" --no-headers 2>/dev/null | wc -l || echo "0") + echo " ๐Ÿ“Š VolumeSnapshot count: ${VOLUME_SNAPSHOTS}" + + if [[ ${VOLUME_SNAPSHOTS} -gt 0 ]]; then + echo " โœ… VolumeSnapshot resources created" + echo " ๐Ÿ“‹ VolumeSnapshots:" + oc get volumesnapshot -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,READYTOUSE:.status.readyToUse,SOURCEPVC:.spec.source.persistentVolumeClaimName" + + # Verify snapshot content manifest + SNAPSHOT_CONTENT=$(oc get vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" -o jsonpath='{.status.virtualMachineSnapshotContentName}' 2>/dev/null || echo "") + if [[ -n "${SNAPSHOT_CONTENT}" ]]; then + echo " โœ… Snapshot content manifest exists: ${SNAPSHOT_CONTENT}" + test_status="passed" + else + echo " โš ๏ธ Snapshot content manifest not found" + test_message="Snapshot content manifest not found" + fi + else + echo " โš ๏ธ No VolumeSnapshot resources found" + test_message="No VolumeSnapshot resources created" + fi +else + echo " โŒ VirtualMachineSnapshot not found" + test_message="VirtualMachineSnapshot resource not found" +fi + +record_test "$test_start" "fa_cnv_1026_verify_vm_snapshot_exists" "$test_status" "$test_message" + +# Test 3: FA-CNV-1027 - Restore VM from snapshot +test_start=$(start_test "FA-CNV-1027: Restoring VM from snapshot") +test_status="failed" +test_message="" + +echo " ๐Ÿ”„ Creating VirtualMachineRestore: ${RESTORE_VM_NAME}-restore..." +if oc apply -f - </dev/null || echo "Unknown") + echo " ๐Ÿ“Š Restore status: ${RESTORE_STATUS}" + + # Check if restored VM exists + if oc get vm "${RESTORE_VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + echo " โœ… Restored VM exists" + + # Try to start the restored VM + echo " ๐Ÿš€ Starting restored VM to verify it boots..." + if oc patch vm "${RESTORE_VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":true}}'; then + echo " โœ… Restored VM start command sent" + + # Wait for VMI to be created + TIMEOUT=120 + ELAPSED=0 + VMI_FOUND=false + + while [[ $ELAPSED -lt $TIMEOUT ]]; do + if oc get vmi "${RESTORE_VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + VMI_FOUND=true + break + fi + sleep 5 + ELAPSED=$((ELAPSED + 5)) + done + + if [[ "$VMI_FOUND" == "true" ]]; then + echo " โœ… Restored VM VMI created - VM boots successfully" + test_status="passed" + else + echo " โš ๏ธ Restored VM VMI not created" + test_message="Restored VM VMI not created within timeout" + fi + else + echo " โš ๏ธ Failed to start restored VM" + test_message="Failed to start restored VM" + fi + else + echo " โš ๏ธ Restored VM not found" + test_message="Restored VM not found after restore operation" + fi + else + echo " โš ๏ธ Restore not complete within timeout" + test_message="Restore not complete within ${VM_SNAPSHOT_TIMEOUT}" + + # Get restore details for debugging + echo " ๐Ÿ“Š Restore details:" + oc get vmrestore "${RESTORE_VM_NAME}-restore" -n "${TEST_NAMESPACE}" -o yaml || true + oc describe vmrestore "${RESTORE_VM_NAME}-restore" -n "${TEST_NAMESPACE}" || true + fi +else + echo " โŒ Failed to create VirtualMachineRestore" + test_message="Failed to create VirtualMachineRestore resource" +fi + +record_test "$test_start" "fa_cnv_1027_restore_vm_from_snapshot" "$test_status" "$test_message" + +# Test 4: FA-CNV-1028 - Delete VM snapshot +test_start=$(start_test "FA-CNV-1028: Deleting VM snapshot") +test_status="failed" +test_message="" + +echo " ๐Ÿ—‘๏ธ Deleting VirtualMachineSnapshot: ${SNAPSHOT_NAME}..." +if oc delete vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}"; then + echo " โœ… VirtualMachineSnapshot deletion initiated" + + # Wait for snapshot to be deleted + echo " โณ Waiting for snapshot to be deleted (2m timeout)..." + TIMEOUT=120 + ELAPSED=0 + SNAPSHOT_DELETED=false + + while [[ $ELAPSED -lt $TIMEOUT ]]; do + if ! oc get vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + SNAPSHOT_DELETED=true + break + fi + sleep 5 + ELAPSED=$((ELAPSED + 5)) + done + + if [[ "$SNAPSHOT_DELETED" == "true" ]]; then + echo " โœ… VirtualMachineSnapshot deleted successfully" + + # Verify VolumeSnapshot resources are cleaned up + echo " ๐Ÿ” Checking VolumeSnapshot cleanup..." + VOLUME_SNAPSHOTS=$(oc get volumesnapshot -n "${TEST_NAMESPACE}" --no-headers 2>/dev/null | wc -l || echo "0") + echo " ๐Ÿ“Š Remaining VolumeSnapshot count: ${VOLUME_SNAPSHOTS}" + + # Verify original VM is unaffected + if oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + echo " โœ… Original VM unaffected by snapshot deletion" + test_status="passed" + else + echo " โš ๏ธ Original VM not found (unexpected)" + test_message="Original VM not found after snapshot deletion" + fi + else + echo " โš ๏ธ Snapshot not deleted within timeout" + test_message="Snapshot not deleted within 2m timeout" + oc get vmsnapshot "${SNAPSHOT_NAME}" -n "${TEST_NAMESPACE}" -o yaml || true + fi +else + echo " โŒ Failed to delete VirtualMachineSnapshot" + test_message="Failed to delete VirtualMachineSnapshot resource" +fi + +record_test "$test_start" "fa_cnv_1028_delete_vm_snapshot" "$test_status" "$test_message" + +# Display snapshot summary +echo "" +echo "๐Ÿ“Š Snapshot Operations Summary:" +if oc get vmsnapshot -n "${TEST_NAMESPACE}" >/dev/null; then + echo " ๐Ÿ“‹ VirtualMachineSnapshots:" + oc get vmsnapshot -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,PHASE:.status.phase,READYTOUSE:.status.readyToUse,AGE:.metadata.creationTimestamp" 2>/dev/null || echo " None" +fi + +if oc get volumesnapshot -n "${TEST_NAMESPACE}" >/dev/null; then + echo " ๐Ÿ“‹ VolumeSnapshots:" + oc get volumesnapshot -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,READYTOUSE:.status.readyToUse,SOURCEPVC:.spec.source.persistentVolumeClaimName" 2>/dev/null || echo " None" +fi + +# Cleanup +echo "" +echo "๐Ÿงน Cleaning up test resources..." +echo " ๐Ÿ—‘๏ธ Stopping VMs..." +if oc get vm "${VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + oc patch vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":false}}' || true +fi +if oc get vm "${RESTORE_VM_NAME}" -n "${TEST_NAMESPACE}" >/dev/null; then + oc patch vm "${RESTORE_VM_NAME}" -n "${TEST_NAMESPACE}" --type=merge -p '{"spec":{"running":false}}' || true +fi +sleep 10 + +echo " ๐Ÿ—‘๏ธ Deleting restore resource..." +oc delete vmrestore "${RESTORE_VM_NAME}-restore" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting snapshots..." +oc delete vmsnapshot -n "${TEST_NAMESPACE}" --all --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting VMs..." +oc delete vm "${VM_NAME}" -n "${TEST_NAMESPACE}" --ignore-not-found +oc delete vm "${RESTORE_VM_NAME}" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting DataVolumes..." +oc delete datavolume "${VM_NAME}-dv" -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test namespace..." +oc delete namespace "${TEST_NAMESPACE}" --ignore-not-found + +echo " โœ… Cleanup completed" + +echo "" +echo "๐Ÿ“Š VM Snapshot Test Summary" +echo "===========================" +echo "โœ… FA-CNV-1025: VM snapshot creation tested" +echo "โœ… FA-CNV-1026: VM snapshot verification tested" +echo "โœ… FA-CNV-1027: VM restore from snapshot tested" +echo "โœ… FA-CNV-1028: VM snapshot deletion tested" +echo "โœ… VolumeSnapshot integration with IBM Storage Scale CSI verified" +echo "" +echo "๐ŸŽ‰ VM snapshot operations with IBM Storage Scale shared storage completed!" + + diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.metadata.json new file mode 100644 index 0000000000000..38d11263372c0 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.yaml new file mode 100644 index 0000000000000..3fa0a52140cb6 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/test-vm-snapshots/interop-tests-ibm-fusion-access-test-vm-snapshots-ref.yaml @@ -0,0 +1,60 @@ +ref: + as: interop-tests-ibm-fusion-access-test-vm-snapshots + from: cli + commands: interop-tests-ibm-fusion-access-test-vm-snapshots-commands.sh + timeout: 2h0m0s + grace_period: 5m0s + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Test CNV VM snapshot operations with IBM Storage Scale shared storage. + + This step tests VM snapshot creation, verification, restore, and deletion + to verify that VM snapshots work correctly with IBM Storage Scale CSI driver. + + Tests implemented: + - FA-CNV-1025: Create VM snapshot using VirtualMachineSnapshot + - FA-CNV-1026: Verify snapshot exists and check VolumeSnapshot resources + - FA-CNV-1027: Restore VM from snapshot using VirtualMachineRestore + - FA-CNV-1028: Delete snapshot and verify cleanup + + Prerequisites: + - CNV must be deployed and operational + - IBM Storage Scale shared storage class must be configured + - VolumeSnapshotClass for IBM Storage Scale CSI (will be created if missing) + - Test namespace will be created if it doesn't exist + + Note: This step will attempt to create a VolumeSnapshotClass if none exists, + but snapshot operations may fail if the CSI driver doesn't support snapshots. + env: + - name: CNV_NAMESPACE + documentation: The namespace for CNV + default: "openshift-cnv" + - name: SHARED_STORAGE_CLASS + documentation: Storage class for shared storage between CNV and IBM Fusion Access + default: "ibm-spectrum-scale-cnv" + - name: TEST_NAMESPACE + documentation: Namespace for testing VM snapshots + default: "cnv-snapshots-test" + - name: VM_NAME + documentation: Name of the test VM + default: "test-snapshot-vm" + - name: SNAPSHOT_NAME + documentation: Name of the VM snapshot + default: "test-vm-snapshot" + - name: RESTORE_VM_NAME + documentation: Name of the restored VM + default: "restored-vm" + - name: VM_CPU_REQUEST + documentation: CPU request for test VM + default: "1" + - name: VM_MEMORY_REQUEST + documentation: Memory request for test VM + default: "1Gi" + - name: VM_SNAPSHOT_TIMEOUT + documentation: Timeout for VM snapshot and restore operations + default: "10m" + + diff --git a/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/OWNERS similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/OWNERS rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/OWNERS diff --git a/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-commands.sh similarity index 100% rename from ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-commands.sh rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-commands.sh diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.metadata.json new file mode 100644 index 0000000000000..7ab023b4b53d8 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.yaml similarity index 86% rename from ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.yaml rename to ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.yaml index 96ef53b738f8f..ff2a9c10cd41b 100644 --- a/ci-operator/step-registry/interop-tests/fusion-access/verify-cluster/interop-tests-fusion-access-verify-cluster-ref.yaml +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-cluster/interop-tests-ibm-fusion-access-verify-cluster-ref.yaml @@ -1,7 +1,7 @@ ref: - as: interop-tests-fusion-access-verify-cluster + as: interop-tests-ibm-fusion-access-verify-cluster from: cli - commands: interop-tests-fusion-access-verify-cluster-commands.sh + commands: interop-tests-ibm-fusion-access-verify-cluster-commands.sh timeout: 10m0s grace_period: 15s best_effort: true diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/OWNERS b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-commands.sh b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-commands.sh new file mode 100644 index 0000000000000..7955761370bf8 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-commands.sh @@ -0,0 +1,415 @@ +#!/bin/bash +set -eux -o pipefail; shopt -s inherit_errexit + +echo "๐Ÿ” Verifying Shared Storage Between CNV and IBM Fusion Access" +echo "=======================================================" + +# Set default values +CNV_NAMESPACE="${CNV_NAMESPACE:-openshift-cnv}" +FUSION_ACCESS_NAMESPACE="${FUSION_ACCESS_NAMESPACE:-ibm-fusion-access}" +SHARED_STORAGE_CLASS="${SHARED_STORAGE_CLASS:-ibm-spectrum-scale-cnv}" +TEST_NAMESPACE="${TEST_NAMESPACE:-shared-storage-test}" + +# JUnit XML test results +JUNIT_RESULTS_FILE="${ARTIFACT_DIR}/junit_verify_shared_storage_tests.xml" +TEST_START_TIME=$SECONDS +TESTS_TOTAL=0 +TESTS_FAILED=0 +TESTS_PASSED=0 +TEST_CASES="" + +# Function to escape XML special characters +escape_xml() { + local text="$1" + # Escape XML special characters: & must be first to avoid double-escaping + echo "$text" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'\''/\'/g' +} + +# Function to add test result to JUnit XML +add_test_result() { + local test_name="$1" + local test_status="$2" # "passed" or "failed" + local test_duration="$3" + local test_message="${4:-}" + local test_classname="${5:-SharedStorageVerificationTests}" + + # Escape XML special characters in user-provided strings + test_name=$(escape_xml "$test_name") + test_message=$(escape_xml "$test_message") + test_classname=$(escape_xml "$test_classname") + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [[ "$test_status" == "passed" ]]; then + TESTS_PASSED=$((TESTS_PASSED + 1)) + TEST_CASES="${TEST_CASES} + " + else + TESTS_FAILED=$((TESTS_FAILED + 1)) + TEST_CASES="${TEST_CASES} + + ${test_message} + " + fi +} + +# Function to generate JUnit XML report +generate_junit_xml() { + local total_duration=$((SECONDS - TEST_START_TIME)) + + cat > "${JUNIT_RESULTS_FILE}" < + + +${TEST_CASES} + + +EOF + + echo "" + echo "๐Ÿ“Š Test Results Summary:" + echo " Total Tests: ${TESTS_TOTAL}" + echo " Passed: ${TESTS_PASSED}" + echo " Failed: ${TESTS_FAILED}" + echo " Duration: ${total_duration}s" + echo " Results File: ${JUNIT_RESULTS_FILE}" + + # Copy to SHARED_DIR for data router reporter (if available) + if [[ -n "${SHARED_DIR:-}" ]] && [[ -d "${SHARED_DIR}" ]]; then + cp "${JUNIT_RESULTS_FILE}" "${SHARED_DIR}/junit_verify_shared_storage_tests.xml" + echo " โœ… Results copied to SHARED_DIR" + fi +} + +start_test() { + local test_description="$1" + : "๐Ÿงช ${test_description}..." + echo "$SECONDS" +} + +# Helper function to record test result (eliminates repetitive duration calculation) +record_test() { + local test_start="$1" + local test_name="$2" + local test_status="$3" + local test_message="${4:-}" + + local test_duration=$((SECONDS - test_start)) + add_test_result "$test_name" "$test_status" "$test_duration" "$test_message" +} + +# Trap to ensure JUnit XML is generated even on failure +trap generate_junit_xml EXIT + +echo "๐Ÿ“‹ Configuration:" +echo " CNV Namespace: ${CNV_NAMESPACE}" +echo " IBM Fusion Access Namespace: ${FUSION_ACCESS_NAMESPACE}" +echo " Test Namespace: ${TEST_NAMESPACE}" +echo " Shared Storage Class: ${SHARED_STORAGE_CLASS}" + +# Create test namespace +echo "๐Ÿ“ Creating test namespace..." +oc create namespace "${TEST_NAMESPACE}" --dry-run=client -o yaml | oc apply -f - +echo " โœ… Test namespace created: ${TEST_NAMESPACE}" + +# Step 1: Create a PVC from CNV side +test_start=$(start_test "Step 1: Creating PVC from CNV side") +test_status="failed" +test_message="" + +if oc apply -f - < /shared-storage/cnv-data.txt && echo 'CNV data written successfully' && sleep 3600"] + volumeMounts: + - name: shared-storage + mountPath: /shared-storage + volumes: + - name: shared-storage + persistentVolumeClaim: + claimName: cnv-shared-storage-pvc + restartPolicy: Never +EOF +then + echo " โœ… CNV data writer pod created" + + # Wait for pod to be running + echo " โณ Waiting for CNV data writer pod to be running..." + if oc wait pod cnv-data-writer -n "${TEST_NAMESPACE}" --for=condition=Ready --timeout=2m; then + echo " โœ… CNV data writer pod is running" + + # Wait a bit for data to be written + echo " โณ Waiting for data to be written..." + sleep 10 + + # Check if data was written + echo " ๐Ÿ“Š Checking data written by CNV pod..." + if oc exec cnv-data-writer -n "${TEST_NAMESPACE}" -- cat /shared-storage/cnv-data.txt 2>/dev/null; then + echo " โœ… Data successfully written by CNV pod" + test_status="passed" + else + echo " โŒ Failed to read data written by CNV pod" + test_message="Failed to read data from CNV PVC" + fi + else + echo " โš ๏ธ CNV data writer pod not ready within timeout" + test_message="CNV data writer pod not ready within 2m timeout" + oc describe pod cnv-data-writer -n "${TEST_NAMESPACE}" + fi +else + echo " โŒ Failed to create CNV data writer pod" + test_message="Failed to create CNV data writer pod resource" +fi + +record_test "$test_start" "test_cnv_data_write" "$test_status" "$test_message" + +# Step 3: Create a PVC from IBM Fusion Access side (using the same storage) +test_start=$(start_test "Step 3: Creating PVC from IBM Fusion Access side") +test_status="failed" +test_message="" + +if oc apply -f - < /shared-storage/fusion-data.txt && echo 'IBM Fusion Access data written successfully' && sleep 3600"] + volumeMounts: + - name: shared-storage + mountPath: /shared-storage + volumes: + - name: shared-storage + persistentVolumeClaim: + claimName: fusion-shared-storage-pvc + restartPolicy: Never +EOF +then + echo " โœ… IBM Fusion Access data reader pod created" + + # Wait for pod to be running + echo " โณ Waiting for IBM Fusion Access data reader pod to be running..." + if oc wait pod fusion-data-reader -n "${TEST_NAMESPACE}" --for=condition=Ready --timeout=2m; then + echo " โœ… IBM Fusion Access data reader pod is running" + + # Wait a bit for data processing + echo " โณ Waiting for data processing..." + sleep 10 + + # Check pod logs to see if it found the shared data + echo " ๐Ÿ“Š Checking IBM Fusion Access pod logs..." + oc logs fusion-data-reader -n "${TEST_NAMESPACE}" --tail=20 + test_status="passed" + else + echo " โš ๏ธ IBM Fusion Access data reader pod not ready within timeout" + test_message="IBM Fusion Access data reader pod not ready within 2m timeout" + oc describe pod fusion-data-reader -n "${TEST_NAMESPACE}" + fi +else + echo " โŒ Failed to create IBM Fusion Access data reader pod" + test_message="Failed to create IBM Fusion Access data reader pod resource" +fi + +record_test "$test_start" "test_fusion_access_data_read" "$test_status" "$test_message" + +# Step 5: Verify shared storage by checking both PVCs point to the same underlying storage +test_start=$(start_test "Step 5: Verifying shared storage configuration") +test_status="failed" +test_message="" + +# Check PVC details +echo " ๐Ÿ“Š CNV PVC Details:" +oc get pvc cnv-shared-storage-pvc -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,STORAGECLASS:.spec.storageClassName,CAPACITY:.status.capacity,VOLUME:.spec.volumeName" + +echo " ๐Ÿ“Š IBM Fusion Access PVC Details:" +oc get pvc fusion-shared-storage-pvc -n "${TEST_NAMESPACE}" -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,STORAGECLASS:.spec.storageClassName,CAPACITY:.status.capacity,VOLUME:.spec.volumeName" + +# Check if both PVCs are using the same storage class +echo " ๐Ÿ“Š Storage Class Verification:" +CNV_STORAGE_CLASS=$(oc get pvc cnv-shared-storage-pvc -n "${TEST_NAMESPACE}" -o jsonpath='{.spec.storageClassName}' 2>/dev/null || echo "Unknown") +FUSION_STORAGE_CLASS=$(oc get pvc fusion-shared-storage-pvc -n "${TEST_NAMESPACE}" -o jsonpath='{.spec.storageClassName}' 2>/dev/null || echo "Unknown") + +if [[ "${CNV_STORAGE_CLASS}" == "${FUSION_STORAGE_CLASS}" ]] && [[ "${CNV_STORAGE_CLASS}" == "${SHARED_STORAGE_CLASS}" ]]; then + echo " โœ… Both PVCs use the same storage class: ${CNV_STORAGE_CLASS}" + test_status="passed" +else + echo " โŒ PVCs use different storage classes:" + echo " CNV: ${CNV_STORAGE_CLASS}" + echo " IBM Fusion Access: ${FUSION_STORAGE_CLASS}" + test_message="PVCs use different storage classes: CNV=${CNV_STORAGE_CLASS}, Fusion=${FUSION_STORAGE_CLASS}" +fi + +record_test "$test_start" "test_storage_class_verification" "$test_status" "$test_message" + +# Step 6: Final verification - check if data is accessible from both sides +test_start=$(start_test "Step 6: Final verification - checking data accessibility") +test_status="passed" +test_message="" + +# Check if CNV pod can still access its data +echo " ๐Ÿ“Š Checking CNV pod data access..." +if oc exec cnv-data-writer -n "${TEST_NAMESPACE}" -- ls -la /shared-storage/ 2>/dev/null; then + echo " โœ… CNV pod can access shared storage" +else + echo " โŒ CNV pod cannot access shared storage" + test_status="failed" + test_message="CNV pod cannot access shared storage" +fi + +# Check if IBM Fusion Access pod can access its data +echo " ๐Ÿ“Š Checking IBM Fusion Access pod data access..." +if oc exec fusion-data-reader -n "${TEST_NAMESPACE}" -- ls -la /shared-storage/ 2>/dev/null; then + echo " โœ… IBM Fusion Access pod can access shared storage" +else + echo " โŒ IBM Fusion Access pod cannot access shared storage" + test_status="failed" + test_message="${test_message}; IBM Fusion Access pod cannot access shared storage" +fi + +record_test "$test_start" "test_data_accessibility_from_both_sides" "$test_status" "$test_message" + +# Step 7: Summary and cleanup +echo "๐Ÿ“Š Shared Storage Verification Summary" +echo "=====================================" + +# Count successful PVCs +CNV_PVC_STATUS=$(oc get pvc cnv-shared-storage-pvc -n "${TEST_NAMESPACE}" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") +FUSION_PVC_STATUS=$(oc get pvc fusion-shared-storage-pvc -n "${TEST_NAMESPACE}" -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown") + +echo "โœ… CNV PVC Status: ${CNV_PVC_STATUS}" +echo "โœ… IBM Fusion Access PVC Status: ${FUSION_PVC_STATUS}" +echo "โœ… Storage Class: ${SHARED_STORAGE_CLASS}" +echo "โœ… IBM Storage Scale: Available" + +if [[ "${CNV_PVC_STATUS}" == "Bound" ]] && [[ "${FUSION_PVC_STATUS}" == "Bound" ]]; then + echo "" + echo "๐ŸŽ‰ SUCCESS: Shared storage between CNV and IBM Fusion Access is working!" + echo " Both PVCs are bound and using the same storage class" + echo " Data can be written and read from both sides" + echo " IBM Storage Scale provides the underlying shared storage" +else + echo "" + echo "โš ๏ธ PARTIAL SUCCESS: Some PVCs may not be bound" + echo " Check the status above for details" +fi + +# Cleanup +echo "๐Ÿงน Cleaning up test resources..." +echo " ๐Ÿ—‘๏ธ Deleting test pods..." +oc delete pod cnv-data-writer -n "${TEST_NAMESPACE}" --ignore-not-found +oc delete pod fusion-data-reader -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test PVCs..." +oc delete pvc cnv-shared-storage-pvc -n "${TEST_NAMESPACE}" --ignore-not-found +oc delete pvc fusion-shared-storage-pvc -n "${TEST_NAMESPACE}" --ignore-not-found + +echo " ๐Ÿ—‘๏ธ Deleting test namespace..." +oc delete namespace "${TEST_NAMESPACE}" --ignore-not-found + +echo " โœ… Cleanup completed" + +echo "๐ŸŽฏ Conclusion:" +echo "The test demonstrates that CNV and IBM Fusion Access can share the same" +echo "IBM Storage Scale storage infrastructure, enabling unified storage" +echo "management for both containerized and virtualized workloads." diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.metadata.json b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.metadata.json new file mode 100644 index 0000000000000..eaadfede7e34a --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.metadata.json @@ -0,0 +1,11 @@ +{ + "path": "interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.yaml", + "owners": { + "approvers": [ + "cspi-qe-ocp-lp" + ], + "reviewers": [ + "cspi-qe-ocp-lp" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.yaml b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.yaml new file mode 100644 index 0000000000000..06e1e16ddf2a2 --- /dev/null +++ b/ci-operator/step-registry/interop-tests/ibm-fusion-access/verify-shared-storage/interop-tests-ibm-fusion-access-verify-shared-storage-ref.yaml @@ -0,0 +1,27 @@ +ref: + as: interop-tests-ibm-fusion-access-verify-shared-storage + from: cli + commands: interop-tests-ibm-fusion-access-verify-shared-storage-commands.sh + timeout: 1h0m0s + grace_period: 5m0s + resources: + requests: + cpu: 100m + memory: 200Mi + documentation: |- + Verify that storage space is shared between CNV and IBM Fusion Access deployments. + This step creates PVCs from both sides and demonstrates data sharing + through the IBM Storage Scale shared storage infrastructure. + env: + - name: CNV_NAMESPACE + documentation: The namespace for CNV + default: "openshift-cnv" + - name: FUSION_ACCESS_NAMESPACE + documentation: The namespace for IBM Fusion Access + default: "ibm-fusion-access" + - name: SHARED_STORAGE_CLASS + documentation: Storage class for shared storage between CNV and IBM Fusion Access + default: "ibm-spectrum-scale-cnv" + - name: TEST_NAMESPACE + documentation: Namespace for testing shared storage + default: "shared-storage-test"