diff --git a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-main.yaml b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-main.yaml index 3602713229b2b..c6e34b597c018 100644 --- a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-main.yaml +++ b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-main.yaml @@ -68,7 +68,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.18.yaml b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.18.yaml index 8a5f28a3aabdd..c658a2890f2c4 100644 --- a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.18.yaml +++ b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.18.yaml @@ -68,7 +68,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: diff --git a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.19.yaml b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.19.yaml index e4604e4dd099d..e22fd538180b7 100644 --- a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.19.yaml +++ b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.19.yaml @@ -69,7 +69,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.20.yaml b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.20.yaml index 7b471d02a72ae..2c61ceeaf6890 100644 --- a/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.20.yaml +++ b/ci-operator/config/openshift-priv/cluster-api-provider-openstack/openshift-priv-cluster-api-provider-openstack-release-4.20.yaml @@ -68,7 +68,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-main.yaml b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-main.yaml index dd76a27cfe347..fc4a43f850826 100644 --- a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-main.yaml +++ b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-main.yaml @@ -256,7 +256,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -271,15 +270,12 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.18.yaml b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.18.yaml index 529961019cfe2..db5775e68521b 100644 --- a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.18.yaml +++ b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.18.yaml @@ -190,7 +190,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: @@ -206,15 +205,13 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" + RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.19.yaml b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.19.yaml index ca78eba559451..a8a08214c6816 100644 --- a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.19.yaml +++ b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.19.yaml @@ -249,7 +249,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -264,15 +263,12 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.20.yaml b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.20.yaml index 33c54961b1b93..21400d0e1b8d3 100644 --- a/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.20.yaml +++ b/ci-operator/config/openshift-priv/hypershift/openshift-priv-hypershift-release-4.20.yaml @@ -248,7 +248,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -263,15 +262,12 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-master.yaml b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-master.yaml index e8b0ef26ba65c..c5bfeb42d8737 100644 --- a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-master.yaml +++ b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-master.yaml @@ -475,7 +475,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.18.yaml b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.18.yaml index fc9a2eab00cc8..ac115761e8dd1 100644 --- a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.18.yaml +++ b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.18.yaml @@ -445,7 +445,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: diff --git a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.19.yaml b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.19.yaml index e0be42a0f71f0..a4a1b77617151 100644 --- a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.19.yaml +++ b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.19.yaml @@ -476,7 +476,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.20.yaml b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.20.yaml index 1352358f7fb08..f7b4b22aaabdd 100644 --- a/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.20.yaml +++ b/ci-operator/config/openshift-priv/machine-config-operator/openshift-priv-machine-config-operator-release-4.20.yaml @@ -475,7 +475,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-main.yaml b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-main.yaml index 41974f52ba1ed..0332ae25294a0 100644 --- a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-main.yaml +++ b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-main.yaml @@ -68,7 +68,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.18.yaml b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.18.yaml index a7e228c058401..27783ceab4b83 100644 --- a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.18.yaml +++ b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.18.yaml @@ -68,7 +68,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: diff --git a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.19.yaml b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.19.yaml index ae8ebcf4b1dd4..cad9641caf874 100644 --- a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.19.yaml +++ b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.19.yaml @@ -69,7 +69,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.20.yaml b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.20.yaml index 702f8b8be4e2f..9f239e7da20ae 100644 --- a/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.20.yaml +++ b/ci-operator/config/openshift/cluster-api-provider-openstack/openshift-cluster-api-provider-openstack-release-4.20.yaml @@ -68,7 +68,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml index e1ff46aa69abd..b960730142b51 100644 --- a/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml +++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml @@ -254,7 +254,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -269,15 +268,12 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18.yaml index 75fcf088a017f..379f9d72ddd1b 100644 --- a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18.yaml +++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18.yaml @@ -189,7 +189,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: @@ -205,15 +204,13 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" + RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18__periodics.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18__periodics.yaml index 31f27055b07b3..27082707a2584 100644 --- a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18__periodics.yaml +++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.18__periodics.yaml @@ -197,7 +197,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: @@ -206,6 +205,19 @@ tests: test: - chain: hypershift-openstack-e2e workflow: hypershift-aws-e2e-external +- as: e2e-openstack-aws-nfv + minimum_interval: 96h + steps: + cluster_profile: hypershift + env: + CLUSTER_TYPE_OVERRIDE: openstack-nfv + NFV_NODEPOOLS: "true" + RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool + TECH_PREVIEW_NO_UPGRADE: "true" + leases: + - env: OPENSTACK_CLOUD + resource_type: openstack-nfv-quota-slice + workflow: hypershift-openstack-aws-nfv - as: e2e-openstack-aws-conformance minimum_interval: 72h steps: diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19.yaml index 487e6109de82d..efb991377d9fa 100644 --- a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19.yaml +++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19.yaml @@ -248,7 +248,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -263,15 +262,12 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19__periodics.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19__periodics.yaml index 368aec1ea2368..719c3fd535337 100644 --- a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19__periodics.yaml +++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.19__periodics.yaml @@ -185,7 +185,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -193,6 +192,18 @@ tests: test: - chain: hypershift-openstack-e2e workflow: hypershift-aws-e2e-external +- as: e2e-openstack-aws-nfv + minimum_interval: 96h + steps: + cluster_profile: hypershift + env: + CLUSTER_TYPE_OVERRIDE: openstack-nfv + NFV_NODEPOOLS: "true" + TECH_PREVIEW_NO_UPGRADE: "true" + leases: + - env: OPENSTACK_CLOUD + resource_type: openstack-nfv-quota-slice + workflow: hypershift-openstack-aws-nfv - as: e2e-openstack-aws-conformance minimum_interval: 72h steps: diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.20.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.20.yaml index afa97ccee4a6c..4e1f5c7b4a695 100644 --- a/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.20.yaml +++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.20.yaml @@ -247,7 +247,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD @@ -262,15 +261,12 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-nfv - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c NFV_NODEPOOLS: "true" TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD resource_type: openstack-nfv-quota-slice - test: - - chain: hypershift-openstack-e2e - workflow: hypershift-aws-e2e-external + workflow: hypershift-openstack-aws-nfv - always_run: false as: e2e-openstack-aws-conformance optional: true diff --git a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-master.yaml b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-master.yaml index 8d7e380a71fe6..3456007cbaf87 100644 --- a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-master.yaml +++ b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-master.yaml @@ -474,7 +474,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.18.yaml b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.18.yaml index 522a5f4267682..fa84a7c27f24e 100644 --- a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.18.yaml +++ b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.18.yaml @@ -444,7 +444,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c RHCOS_IMAGE_NAME: rhcos-4.18-hcp-nodepool TECH_PREVIEW_NO_UPGRADE: "true" leases: diff --git a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.19.yaml b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.19.yaml index cc31d7feb77e6..7d72eb9da0b7e 100644 --- a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.19.yaml +++ b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.19.yaml @@ -475,7 +475,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.20.yaml b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.20.yaml index 3fe0a0f25179f..b0dd89eda383e 100644 --- a/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.20.yaml +++ b/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.20.yaml @@ -474,7 +474,6 @@ tests: cluster_profile: hypershift env: CLUSTER_TYPE_OVERRIDE: openstack-vexxhost - HYPERSHIFT_ZONES: us-east-1a,us-east-1b,us-east-1c TECH_PREVIEW_NO_UPGRADE: "true" leases: - env: OPENSTACK_CLOUD diff --git a/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.18-periodics.yaml b/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.18-periodics.yaml index e9cfe6c87dcd5..d6f662a927f4a 100644 --- a/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.18-periodics.yaml +++ b/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.18-periodics.yaml @@ -1432,6 +1432,89 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build01 + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: release-4.18 + org: openshift + repo: hypershift + labels: + ci-operator.openshift.io/cloud: hypershift + ci-operator.openshift.io/cloud-cluster-profile: hypershift + ci-operator.openshift.io/variant: periodics + ci.openshift.io/generator: prowgen + job-release: "4.18" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + minimum_interval: 96h + name: periodic-ci-openshift-hypershift-release-4.18-periodics-e2e-openstack-aws-nfv + reporter_config: + slack: + channel: '#shiftstack-bot' + job_states_to_report: + - failure + - error + report_template: ':volcano: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. + <{{.Status.URL}}|View logs> :volcano:' + 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=e2e-openstack-aws-nfv + - --variant=periodics + command: + - ci-operator + image: 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: build01 cron: 0 8 * * * diff --git a/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.19-periodics.yaml b/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.19-periodics.yaml index 9ec265a4a0c58..38fdc464de661 100644 --- a/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.19-periodics.yaml +++ b/ci-operator/jobs/openshift/hypershift/openshift-hypershift-release-4.19-periodics.yaml @@ -1357,6 +1357,89 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build09 + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: release-4.19 + org: openshift + repo: hypershift + labels: + ci-operator.openshift.io/cloud: hypershift + ci-operator.openshift.io/cloud-cluster-profile: hypershift + ci-operator.openshift.io/variant: periodics + ci.openshift.io/generator: prowgen + job-release: "4.19" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + minimum_interval: 96h + name: periodic-ci-openshift-hypershift-release-4.19-periodics-e2e-openstack-aws-nfv + reporter_config: + slack: + channel: '#shiftstack-bot' + job_states_to_report: + - failure + - error + report_template: ':volcano: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. + <{{.Status.URL}}|View logs> :volcano:' + 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=e2e-openstack-aws-nfv + - --variant=periodics + command: + - ci-operator + image: 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: build01 decorate: true diff --git a/ci-operator/step-registry/openstack/provision/config-drive/OWNERS b/ci-operator/step-registry/hypershift/openstack/aws/nfv/OWNERS similarity index 100% rename from ci-operator/step-registry/openstack/provision/config-drive/OWNERS rename to ci-operator/step-registry/hypershift/openstack/aws/nfv/OWNERS diff --git a/ci-operator/step-registry/openstack/provision/vhostuser/openstack-provision-vhostuser-ref.metadata.json b/ci-operator/step-registry/hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.metadata.json similarity index 57% rename from ci-operator/step-registry/openstack/provision/vhostuser/openstack-provision-vhostuser-ref.metadata.json rename to ci-operator/step-registry/hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.metadata.json index 05df2a7d56db3..b0412afeb388a 100644 --- a/ci-operator/step-registry/openstack/provision/vhostuser/openstack-provision-vhostuser-ref.metadata.json +++ b/ci-operator/step-registry/hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.metadata.json @@ -1,5 +1,5 @@ { - "path": "openstack/provision/vhostuser/openstack-provision-vhostuser-ref.yaml", + "path": "hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.yaml", "owners": { "approvers": [ "openstack-approvers" diff --git a/ci-operator/step-registry/hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.yaml b/ci-operator/step-registry/hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.yaml new file mode 100644 index 0000000000000..ddd25a8b14ef5 --- /dev/null +++ b/ci-operator/step-registry/hypershift/openstack/aws/nfv/hypershift-openstack-aws-nfv-workflow.yaml @@ -0,0 +1,46 @@ +workflow: + as: hypershift-openstack-aws-nfv + documentation: |- + Sets up all the mgmt/infra AWS cluster prerequisites necessary for hypershift openstack guest clusters. + Then runs NFV related tests for SR-IOV and DPDK. + + Learn more about HyperShift here: https://github.com/openshift/hypershift + + Track HyperShift's development here: https://issues.redhat.com/projects/HOSTEDCP + steps: + env: + API_FIP_ENABLED: "false" + AWS_PROFILE: "" + BASE_DOMAIN: "origin-ci-int-aws.dev.rhcloud.com" + CONFIG_TYPE: "minimal" + HCP_INGRESS_FIP_ENABLED: "true" + HYPERSHIFT_NODE_COUNT: "1" + INGRESS_FIP_ENABLED: "false" + OPENSTACK_DPDK_NETWORK: "intel-dpdk" + OPENSTACK_SRIOV_NETWORK: "intel-sriov" + pre: + - ref: ipi-install-rbac + - chain: hypershift-setup-nested-management-cluster + - ref: hypershift-install + - ref: openstack-conf-resourcenames + - ref: openstack-conf-clouds + - ref: openstack-conf-proxy + - ref: openstack-conf-externalnetworkid + - ref: openstack-provision-floatingips + - ref: hypershift-openstack-create-hostedcluster + - ref: openstack-provision-dnsrecords + - ref: hypershift-openstack-create-wait + - ref: hypershift-performanceprofile + - ref: openstack-provision-sriov-worker + - ref: openstack-provision-sriov-operator + - ref: openstack-provision-sriov-networknodepolicy + test: + - ref: openstack-test-dpdk + - ref: openstack-test-sriov + post: + - chain: hypershift-dump + - chain: gather-core-dump + - ref: hypershift-openstack-destroy + - ref: openstack-deprovision-dnsrecords + - ref: openstack-deprovision-floatingips + - chain: hypershift-destroy-nested-management-cluster diff --git a/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-commands.sh b/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-commands.sh index 10686468c97f7..17620184635a0 100755 --- a/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-commands.sh +++ b/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-commands.sh @@ -9,6 +9,9 @@ OPENSTACK_EXTERNAL_NETWORK_ID=$(cat "${SHARED_DIR}/OPENSTACK_EXTERNAL_NETWORK_ID export OS_CLIENT_CONFIG_FILE="${SHARED_DIR}/clouds.yaml" +# We copy the file here so we can later modify it if needed (e.g. for NFV). +cp /etc/ci-pull-credentials/.dockerconfigjson /tmp/global-pull-secret.json + # For disconnected or otherwise unreachable environments, we want to # have steps use an HTTP(S) proxy to reach the API server. This proxy # configuration file should export HTTP_PROXY, HTTPS_PROXY, and NO_PROXY @@ -23,6 +26,9 @@ fi CLUSTER_NAME="$(echo -n "$PROW_JOB_ID"|sha256sum|cut -c-20)" echo "$CLUSTER_NAME" > "${SHARED_DIR}/CLUSTER_NAME" echo "$(date) Creating HyperShift cluster ${CLUSTER_NAME}" +# In order to save CI resources, we use the "InPlace" upgrade type so +# when a node needs to be replacement, we will just restart it with its +# new configuration and not create another that will replace it. COMMAND=( /usr/bin/hcp create cluster openstack --name "${CLUSTER_NAME}" @@ -30,14 +36,34 @@ COMMAND=( --openstack-external-network-id "${OPENSTACK_EXTERNAL_NETWORK_ID}" --openstack-node-flavor "${OPENSTACK_COMPUTE_FLAVOR}" --openstack-node-image-name "${RHCOS_IMAGE_NAME}" + --node-upgrade-type InPlace --base-domain "${HYPERSHIFT_BASE_DOMAIN}" --control-plane-availability-policy "${HYPERSHIFT_CP_AVAILABILITY_POLICY}" --infra-availability-policy "${HYPERSHIFT_INFRA_AVAILABILITY_POLICY}" - --pull-secret=/etc/ci-pull-credentials/.dockerconfigjson + --pull-secret=/tmp/global-pull-secret.json --release-image "${RELEASE_IMAGE}" --annotations=hypershift.openshift.io/skip-release-image-validation=true ) +if [ "${NFV_NODEPOOLS}" == "true" ]; then + if test -f "${SHARED_DIR}/OPENSTACK_DPDK_NETWORK_ID"; then + OPENSTACK_DPDK_NETWORK_ID="$(<"${SHARED_DIR}/OPENSTACK_DPDK_NETWORK_ID")" + COMMAND+=("--openstack-node-additional-port=network-id:$OPENSTACK_DPDK_NETWORK_ID,disable-port-security:true") + fi + if test -f "${SHARED_DIR}/OPENSTACK_SRIOV_NETWORK_ID"; then + OPENSTACK_SRIOV_NETWORK_ID="$(<"${SHARED_DIR}/OPENSTACK_SRIOV_NETWORK_ID")" + COMMAND+=("--openstack-node-additional-port=network-id:$OPENSTACK_SRIOV_NETWORK_ID,vnic-type:direct,disable-port-security:true") + fi + # Use private credentials to pull CNF images for SR-IOV network operator + # Credentials are in shiftstack vault: shiftstack-secrets/quay-openshift-credentials + QUAY_USERNAME=$(cat /var/run/quay-openshift-credentials/quay_username) + QUAY_PASSWORD=$(cat /var/run/quay-openshift-credentials/quay_password) + QUAY_AUTH=$(echo -n "${QUAY_USERNAME}:${QUAY_PASSWORD}" | base64 -w 0) + curl -s -L https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64 -o /tmp/jq && chmod +x /tmp/jq + /tmp/jq --arg QUAY_AUTH "$QUAY_AUTH" '.auths += {"quay.io/openshift": {"auth":$QUAY_AUTH}}' /tmp/global-pull-secret.json > /tmp/global-pull-secret.json.tmp + mv /tmp/global-pull-secret.json.tmp /tmp/global-pull-secret.json +fi + if [[ $ENABLE_ICSP == "true" ]]; then COMMAND+=(--image-content-sources "${SHARED_DIR}/mgmt_icsp.yaml") fi diff --git a/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-ref.yaml b/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-ref.yaml index 3df1029764ac1..a5d02f52bb242 100644 --- a/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-ref.yaml +++ b/ci-operator/step-registry/hypershift/openstack/create/hostedcluster/hypershift-openstack-create-hostedcluster-ref.yaml @@ -6,6 +6,9 @@ ref: - mount_path: /etc/ci-pull-credentials name: ci-pull-credentials namespace: test-credentials + - mount_path: /var/run/quay-openshift-credentials + name: shiftstack-quay-openshift-credentials + namespace: test-credentials dependencies: - name: "release:latest" env: RELEASE_IMAGE_LATEST @@ -43,6 +46,11 @@ ref: documentation: "If true, render artifacts to ${SHARED_DIR}/hypershift_create_cluster_render.yaml" - name: RHCOS_IMAGE_NAME default: "rhcos-latest-hcp-nodepool" + - default: 'false' + documentation: |- + Whether or not the Hypershift nodepools need to be configured for NFV (PerformanceProfile, + additional ports for SR-IOV, etc). + name: NFV_NODEPOOLS from: hypershift-operator grace_period: 5m0s resources: diff --git a/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-commands.sh b/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-commands.sh index 5e461ec325689..cdfcf0d5df053 100755 --- a/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-commands.sh +++ b/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-commands.sh @@ -21,13 +21,6 @@ if [ ! -f "${SHARED_DIR}/clouds.yaml" ]; then exit 1 fi -if [ "${NFV_NODEPOOLS}" == "true" ]; then - # TODO(emilien): be more specific on the regex to only select the NFV related tests. - E2E_TESTS_REGEX='^TestNodePool$' - # NFV's flavor uses dedicated CPU so we can't deploy many nodepools at the same time - E2E_TESTS_PARALLEL=1 -fi - # For disconnected or otherwise unreachable environments, we want to # have steps use an HTTP(S) proxy to reach the API server. This proxy # configuration file should export HTTP_PROXY, HTTPS_PROXY, and NO_PROXY diff --git a/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-ref.yaml b/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-ref.yaml index f0c95cfe37bed..236770358f019 100644 --- a/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-ref.yaml +++ b/ci-operator/step-registry/hypershift/openstack/e2e/execute/hypershift-openstack-e2e-execute-ref.yaml @@ -16,11 +16,6 @@ ref: env: - default: "rhcos-latest-hcp-nodepool" name: RHCOS_IMAGE_NAME - - default: 'false' - documentation: |- - Whether or not the Hypershift nodepools need to be configured for NFV (PerformanceProfile, - additional ports for SR-IOV, etc). - name: NFV_NODEPOOLS - default: 'TestCreateCluster$|TestNodePool|TestAutoscaling' documentation: |- Regular expression to be used to filter hypershift e2e tests. diff --git a/ci-operator/step-registry/openstack/provision/vfio-noiommu/OWNERS b/ci-operator/step-registry/hypershift/performanceprofile/OWNERS similarity index 100% rename from ci-operator/step-registry/openstack/provision/vfio-noiommu/OWNERS rename to ci-operator/step-registry/hypershift/performanceprofile/OWNERS diff --git a/ci-operator/step-registry/hypershift/performanceprofile/hypershift-performanceprofile-commands.sh b/ci-operator/step-registry/hypershift/performanceprofile/hypershift-performanceprofile-commands.sh new file mode 100755 index 0000000000000..5ba3fc6dae581 --- /dev/null +++ b/ci-operator/step-registry/hypershift/performanceprofile/hypershift-performanceprofile-commands.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +set -exuo pipefail + +CLUSTER_NAME="$(echo -n $PROW_JOB_ID|sha256sum|cut -c-20)" +HYPERSHIFT_NAMESPACE="$(oc get hostedclusters -A -o=jsonpath="{.items[?(@.metadata.name==\"$CLUSTER_NAME\")].metadata.namespace}")" + +cat > /tmp/performance_profile.yaml < "${SHARED_DIR}/OPENSTACK_EXTERNAL_NETWORK_ID" + echo "OPENSTACK_EXTERNAL_NETWORK_ID: $OPENSTACK_EXTERNAL_NETWORK_ID" fi -cat <<< "$OPENSTACK_EXTERNAL_NETWORK_ID" > "${SHARED_DIR}/OPENSTACK_EXTERNAL_NETWORK_ID" +if [[ -n ${OPENSTACK_DPDK_NETWORK} ]]; then + if ! openstack network show "${OPENSTACK_DPDK_NETWORK}" >/dev/null 2>&1; then + echo "DPDK network ${OPENSTACK_DPDK_NETWORK} does not exist" + exit 1 + fi + OPENSTACK_DPDK_NETWORK_ID=$(openstack network show -f value -c id "${OPENSTACK_DPDK_NETWORK}") + cat <<< "$OPENSTACK_DPDK_NETWORK_ID" > "${SHARED_DIR}/OPENSTACK_DPDK_NETWORK_ID" + echo "OPENSTACK_DPDK_NETWORK_ID: $OPENSTACK_DPDK_NETWORK_ID" +fi -cat </dev/null 2>&1; then + echo "SR-IOV network ${OPENSTACK_SRIOV_NETWORK} does not exist" + exit 1 + fi + OPENSTACK_SRIOV_NETWORK_ID=$(openstack network show -f value -c id "${OPENSTACK_SRIOV_NETWORK}") + cat <<< "$OPENSTACK_SRIOV_NETWORK_ID" > "${SHARED_DIR}/OPENSTACK_SRIOV_NETWORK_ID" + echo "OPENSTACK_SRIOV_NETWORK_ID: $OPENSTACK_SRIOV_NETWORK_ID" +fi \ No newline at end of file diff --git a/ci-operator/step-registry/openstack/conf/externalnetworkid/openstack-conf-externalnetworkid-ref.yaml b/ci-operator/step-registry/openstack/conf/externalnetworkid/openstack-conf-externalnetworkid-ref.yaml index 4b0a787d1983d..6d0e6ddad224d 100644 --- a/ci-operator/step-registry/openstack/conf/externalnetworkid/openstack-conf-externalnetworkid-ref.yaml +++ b/ci-operator/step-registry/openstack/conf/externalnetworkid/openstack-conf-externalnetworkid-ref.yaml @@ -9,6 +9,15 @@ ref: env: - name: OS_CLOUD default: "openstack" + - name: OPENSTACK_DPDK_NETWORK + default: '' + documentation: |- + Name of the OpenStack DPDK network. + - name: OPENSTACK_SRIOV_NETWORK + default: '' + documentation: |- + Name of the OpenStack SR-IOV network. documentation: |- - Fetches the values for OPENSTACK_EXTERNAL_NETWORK_ID based on the existing - value of OPENSTACK_EXTERNAL_NETWORK, then persists it in $SHARED_DIR. + Fetches the values for external network IDs based on the existing + value of OPENSTACK_EXTERNAL_NETWORK, OPENSTACK_DPDK_NETWORK and + OPENSTACK_SRIOV_NETWORK, then persists it in $SHARED_DIR. diff --git a/ci-operator/step-registry/openstack/provision/config-drive/openstack-provision-config-drive-commands.sh b/ci-operator/step-registry/openstack/provision/config-drive/openstack-provision-config-drive-commands.sh deleted file mode 100755 index f3770bd0f6a58..0000000000000 --- a/ci-operator/step-registry/openstack/provision/config-drive/openstack-provision-config-drive-commands.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env bash - -set -o nounset -set -o errexit -set -o pipefail - -function check_workers_updated() { - INTERVAL=5 - CNT=5 - - old_config=$(oc get mcp worker --no-headers | awk '{print $2}') - while [ $((CNT)) -gt 0 ]; do - READY=false - while read -r i - do - name=$(echo "${i}" | awk '{print $1}') - current_config=$(echo "${i}" | awk '{print $2}') - degraded=$(echo "${i}" | awk '{print $5}') - degraded_machine_cnt=$(echo "${i}" | awk '{print $9}') - - if [[ "${old_config}" != "${current_config}" && "${degraded}" == "False" && $((degraded_machine_cnt)) -eq 0 ]]; then - READY=true - else - echo "Waiting for mcp ${name} to rollout" - READY=false - fi - done <<< "$(oc get mcp worker --no-headers)" - - if [[ "${READY}" == "true" ]]; then - echo "Worker config has successfully rolled out" - return 0 - else - sleep "${INTERVAL}" - CNT=$((CNT))-1 - fi - - if [[ $((CNT)) -eq 0 ]]; then - echo "Worker config did not successfully roll out" - oc get mcp "${name}" - return 1 - fi - done -} - -# For disconnected or otherwise unreachable environments, we want to -# have steps use an HTTP(S) proxy to reach the API server. This proxy -# configuration file should export HTTP_PROXY, HTTPS_PROXY, and NO_PROXY -# environment variables, as well as their lowercase equivalents (note -# that libcurl doesn't recognize the uppercase variables). -if test -f "${SHARED_DIR}/proxy-conf.sh" -then - # shellcheck disable=SC1090 - source "${SHARED_DIR}/proxy-conf.sh" -fi - -oc_version=$(oc version -o json | jq -r '.openshiftVersion') -if [[ "${oc_version}" != *"4.9"* && "${oc_version}" != *"4.10"* ]]; then - echo "This script is only needed for OpenShift 4.9 and 4.10" - exit 0 -fi - -CONFIG_DRIVE=$( - oc create -f - -o jsonpath='{.metadata.name}' </dev/null 2>&1; then - echo "vhostuser is already bound to the ${OPENSTACK_DPDK_NETWORK} network." - exit 0 - fi create_sriov_networknodepolicy "dpdk1" "${OPENSTACK_DPDK_NETWORK}" "vfio-pci" "false" fi diff --git a/ci-operator/step-registry/openstack/provision/sriov-operator/openstack-provision-sriov-operator-commands.sh b/ci-operator/step-registry/openstack/provision/sriov-operator/openstack-provision-sriov-operator-commands.sh index 337bab8de0f50..2907865e36784 100755 --- a/ci-operator/step-registry/openstack/provision/sriov-operator/openstack-provision-sriov-operator-commands.sh +++ b/ci-operator/step-registry/openstack/provision/sriov-operator/openstack-provision-sriov-operator-commands.sh @@ -14,6 +14,14 @@ then # shellcheck disable=SC1090 source "${SHARED_DIR}/proxy-conf.sh" fi + +# If this file is present, we want to run the tests against an Hypershift HostedCluster +# and therefore we want to load the KUBECONFIG from a specific path. +if test -f "${SHARED_DIR}/nested_kubeconfig" +then + export KUBECONFIG="${SHARED_DIR}/nested_kubeconfig" +fi + function wait_for_sriov_pods() { # Wait up to 15 minutes for SNO to be installed for _ in $(seq 1 15); do @@ -112,16 +120,21 @@ if [ -n "${is_dev_version:-}" ]; then pod-security.kubernetes.io/warn=privileged \ security.openshift.io/scc.podSecurityLabelSync=false - # Use private credentials to pull CNF images - # See in our vault: shiftstack-secrets/quay-openshift-credentials - QUAY_USERNAME=$(cat /var/run/quay-openshift-credentials/quay_username) - QUAY_PASSWORD=$(cat /var/run/quay-openshift-credentials/quay_password) - oc get secret pull-secret -n openshift-config -o json | jq -r '.data.".dockerconfigjson"' | base64 -d > /tmp/global-pull-secret.json - QUAY_AUTH=$(echo -n "${QUAY_USERNAME}:${QUAY_PASSWORD}" | base64 -w 0) - jq --arg QUAY_AUTH "$QUAY_AUTH" '.auths += {"quay.io/openshift": {"auth":$QUAY_AUTH}}' /tmp/global-pull-secret.json > /tmp/global-pull-secret.json.tmp - mv /tmp/global-pull-secret.json.tmp /tmp/global-pull-secret.json - oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=/tmp/global-pull-secret.json - rm /tmp/global-pull-secret.json + # On Hypershift deployments, the CNF credentials have already been loaded when creating + # the HostedCluster so we don't need to do it again. + if ! test -f "${SHARED_DIR}/nested_kubeconfig" + then + # Use private credentials to pull CNF images + # See in our vault: shiftstack-secrets/quay-openshift-credentials + QUAY_USERNAME=$(cat /var/run/quay-openshift-credentials/quay_username) + QUAY_PASSWORD=$(cat /var/run/quay-openshift-credentials/quay_password) + oc get secret pull-secret -n openshift-config -o json | jq -r '.data.".dockerconfigjson"' | base64 -d > /tmp/global-pull-secret.json + QUAY_AUTH=$(echo -n "${QUAY_USERNAME}:${QUAY_PASSWORD}" | base64 -w 0) + jq --arg QUAY_AUTH "$QUAY_AUTH" '.auths += {"quay.io/openshift": {"auth":$QUAY_AUTH}}' /tmp/global-pull-secret.json > /tmp/global-pull-secret.json.tmp + mv /tmp/global-pull-secret.json.tmp /tmp/global-pull-secret.json + oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=/tmp/global-pull-secret.json + rm /tmp/global-pull-secret.json + fi make deploy-setup popd diff --git a/ci-operator/step-registry/openstack/provision/sriov-worker/openstack-provision-sriov-worker-commands.sh b/ci-operator/step-registry/openstack/provision/sriov-worker/openstack-provision-sriov-worker-commands.sh index c465c6ef6e88d..43eff31e6f68b 100755 --- a/ci-operator/step-registry/openstack/provision/sriov-worker/openstack-provision-sriov-worker-commands.sh +++ b/ci-operator/step-registry/openstack/provision/sriov-worker/openstack-provision-sriov-worker-commands.sh @@ -49,29 +49,34 @@ then source "${SHARED_DIR}/proxy-conf.sh" fi -if ! openstack network show "${OPENSTACK_SRIOV_NETWORK}" >/dev/null 2>&1; then - echo "Network ${OPENSTACK_SRIOV_NETWORK} doesn't exist" - exit 1 -fi -NETWORK_ID=$(openstack network show "${OPENSTACK_SRIOV_NETWORK}" -f value -c id) -SUBNET_ID=$(openstack network show "${OPENSTACK_SRIOV_NETWORK}" -f json -c subnets | jq '.subnets[0]' | sed 's/"//g') - -oc_version=$(oc version -o json | jq -r '.openshiftVersion') -if [[ "${oc_version}" != *"4.9"* && "${oc_version}" != *"4.10"* && "$CONFIG_DRIVE" != "true" ]]; then - CONFIG_DRIVE=false +# If this file is present, Hypershift has already configured the workers correctly +# in a previous step so there's no need to recreate them. +if test -f "${SHARED_DIR}/nested_kubeconfig" +then + export KUBECONFIG="${SHARED_DIR}/nested_kubeconfig" else - CONFIG_DRIVE=true -fi - -echo "Downloading current MachineSet for workers" -WORKER_MACHINESET=$(oc get machinesets.machine.openshift.io -n openshift-machine-api | grep worker | awk '{print $1}') -oc get machinesets.machine.openshift.io -n openshift-machine-api "${WORKER_MACHINESET}" -o json > "${SHARED_DIR}/original-worker-machineset.json" - -if [[ "${OPENSTACK_SRIOV_NETWORK}" == *"hwoffload"* ]]; then - PROFILE="\"profile\": {\"capabilities\": \"[switchdev]\"}," -fi - -cat < "${SHARED_DIR}/sriov_patch.json" + if ! openstack network show "${OPENSTACK_SRIOV_NETWORK}" >/dev/null 2>&1; then + echo "Network ${OPENSTACK_SRIOV_NETWORK} doesn't exist" + exit 1 + fi + NETWORK_ID=$(openstack network show "${OPENSTACK_SRIOV_NETWORK}" -f value -c id) + SUBNET_ID=$(openstack network show "${OPENSTACK_SRIOV_NETWORK}" -f json -c subnets | jq '.subnets[0]' | sed 's/"//g') + + if [[ "$CONFIG_DRIVE" != "true" ]]; then + CONFIG_DRIVE=false + else + CONFIG_DRIVE=true + fi + + echo "Downloading current MachineSet for workers" + WORKER_MACHINESET=$(oc get machinesets.machine.openshift.io -n openshift-machine-api | grep worker | awk '{print $1}') + oc get machinesets.machine.openshift.io -n openshift-machine-api "${WORKER_MACHINESET}" -o json > "${SHARED_DIR}/original-worker-machineset.json" + + if [[ "${OPENSTACK_SRIOV_NETWORK}" == *"hwoffload"* ]]; then + PROFILE="\"profile\": {\"capabilities\": \"[switchdev]\"}," + fi + + cat < "${SHARED_DIR}/sriov_patch.json" { "spec": { "template": { @@ -104,20 +109,21 @@ cat < "${SHARED_DIR}/sriov_patch.json" } } EOF -echo "Merging the original worker MachineSet with the patched configuration for SR-IOV" -jq -Ss '.[0] * .[1]' "${SHARED_DIR}/original-worker-machineset.json" "${SHARED_DIR}/sriov_patch.json" > "${SHARED_DIR}/sriov-worker-machineset.json" -python -c 'import sys, yaml, json; yaml.dump(json.load(sys.stdin), sys.stdout, indent=2)' < "${SHARED_DIR}/sriov-worker-machineset.json" > "${SHARED_DIR}/sriov-worker-machineset.yaml" - -echo "Apply the new MachineSet for SR-IOV workers" -oc apply -f "${SHARED_DIR}/sriov-worker-machineset.yaml" - -echo "Scaling up worker to 1" -oc scale --replicas=1 machinesets.machine.openshift.io "${WORKER_MACHINESET}" -n openshift-machine-api -wait_for_worker_machines - -echo "Disable mastersSchedulable since we now have a dedicated worker node" -oc patch Scheduler cluster --type=merge --patch '{ "spec": { "mastersSchedulable": false } }' -sleep 10 + echo "Merging the original worker MachineSet with the patched configuration for SR-IOV" + jq -Ss '.[0] * .[1]' "${SHARED_DIR}/original-worker-machineset.json" "${SHARED_DIR}/sriov_patch.json" > "${SHARED_DIR}/sriov-worker-machineset.json" + python -c 'import sys, yaml, json; yaml.dump(json.load(sys.stdin), sys.stdout, indent=2)' < "${SHARED_DIR}/sriov-worker-machineset.json" > "${SHARED_DIR}/sriov-worker-machineset.yaml" + + echo "Apply the new MachineSet for SR-IOV workers" + oc apply -f "${SHARED_DIR}/sriov-worker-machineset.yaml" + + echo "Scaling up worker to 1" + oc scale --replicas=1 machinesets.machine.openshift.io "${WORKER_MACHINESET}" -n openshift-machine-api + wait_for_worker_machines + + echo "Disable mastersSchedulable since we now have a dedicated worker node" + oc patch Scheduler cluster --type=merge --patch '{ "spec": { "mastersSchedulable": false } }' + sleep 10 +fi echo "Apply SRIOV capable label to the worker node" WORKER_NODE=$(oc get node -o custom-columns=NAME:.metadata.name --no-headers -l node-role.kubernetes.io/worker) diff --git a/ci-operator/step-registry/openstack/provision/vfio-noiommu/openstack-provision-vfio-noiommu-commands.sh b/ci-operator/step-registry/openstack/provision/vfio-noiommu/openstack-provision-vfio-noiommu-commands.sh deleted file mode 100755 index cc87a9bf7be6d..0000000000000 --- a/ci-operator/step-registry/openstack/provision/vfio-noiommu/openstack-provision-vfio-noiommu-commands.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -set -o nounset -set -o errexit -set -o pipefail - -function check_workers_updated() { - # Wait up to 2 minutes for PAO to update the worker config - INTERVAL=5 - CNT=24 - - old_config=$(oc get mcp worker --no-headers | awk '{print $2}') - while [ $((CNT)) -gt 0 ]; do - READY=false - while read -r i - do - name=$(echo "${i}" | awk '{print $1}') - current_config=$(echo "${i}" | awk '{print $2}') - degraded=$(echo "${i}" | awk '{print $5}') - degraded_machine_cnt=$(echo "${i}" | awk '{print $9}') - - if [[ "${old_config}" != "${current_config}" && "${degraded}" == "False" && $((degraded_machine_cnt)) -eq 0 ]]; then - READY=true - else - echo "Waiting for mcp ${name} to rollout" - READY=false - fi - done <<< "$(oc get mcp worker --no-headers)" - - if [[ "${READY}" == "true" ]]; then - echo "Worker config has successfully rolled out" - return 0 - else - sleep "${INTERVAL}" - CNT=$((CNT))-1 - fi - - if [[ $((CNT)) -eq 0 ]]; then - echo "Worker config did not successfully roll out" - oc get mcp "${name}" - return 1 - fi - done -} - -# For disconnected or otherwise unreachable environments, we want to -# have steps use an HTTP(S) proxy to reach the API server. This proxy -# configuration file should export HTTP_PROXY, HTTPS_PROXY, and NO_PROXY -# environment variables, as well as their lowercase equivalents (note -# that libcurl doesn't recognize the uppercase variables). -if test -f "${SHARED_DIR}/proxy-conf.sh" -then - # shellcheck disable=SC1090 - source "${SHARED_DIR}/proxy-conf.sh" -fi - -oc_version=$(oc version -o json | jq -r '.openshiftVersion') -if [[ "${oc_version}" != *"4.9"* && "${oc_version}" != *"4.10"* ]]; then - echo "This script is only needed for OpenShift 4.9 and 4.10" - exit 0 -fi - -VFIO_NOIOMMU=$( - oc create -f - -o jsonpath='{.metadata.name}' <