diff --git a/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml b/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
index 2b5873481f68b..1fda86ced246b 100644
--- a/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
+++ b/ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
@@ -511,6 +511,18 @@ tests:
GKE_REGION: us-central1
GKE_RELEASE_CHANNEL: stable
workflow: hypershift-gcp-gke-e2e
+- always_run: false
+ as: e2e-v2-gke
+ capabilities:
+ - build-tmpfs
+ optional: true
+ run_if_changed: ^(api/hypershift/v1beta1/gcp.*|hypershift-operator/controllers/.*/gcp.*|control-plane-operator/controllers/.*/gcp.*|cmd/cluster/gcp/.*|cmd/nodepool/gcp/.*)
+ steps:
+ cluster_profile: hypershift-gcp
+ env:
+ GKE_REGION: us-central1
+ GKE_RELEASE_CHANNEL: stable
+ workflow: hypershift-gcp-gke-e2e-v2
zz_generated_metadata:
branch: main
org: openshift
diff --git a/ci-operator/jobs/openshift/hypershift/openshift-hypershift-main-presubmits.yaml b/ci-operator/jobs/openshift/hypershift/openshift-hypershift-main-presubmits.yaml
index 5e592057a4776..24d880c9218c7 100644
--- a/ci-operator/jobs/openshift/hypershift/openshift-hypershift-main-presubmits.yaml
+++ b/ci-operator/jobs/openshift/hypershift/openshift-hypershift-main-presubmits.yaml
@@ -2259,6 +2259,89 @@ presubmits:
secret:
secretName: result-aggregator
trigger: (?m)^/test( | .* )e2e-v2-aws,?($|\s.*)
+ - agent: kubernetes
+ always_run: false
+ branches:
+ - ^main$
+ - ^main-
+ cluster: build01
+ context: ci/prow/e2e-v2-gke
+ decorate: true
+ labels:
+ capability/build-tmpfs: build-tmpfs
+ ci-operator.openshift.io/cloud: hypershift-gcp
+ ci-operator.openshift.io/cloud-cluster-profile: hypershift-gcp
+ ci.openshift.io/generator: prowgen
+ pj-rehearse.openshift.io/can-be-rehearsed: "true"
+ name: pull-ci-openshift-hypershift-main-e2e-v2-gke
+ optional: true
+ rerun_command: /test e2e-v2-gke
+ run_if_changed: ^(api/hypershift/v1beta1/gcp.*|hypershift-operator/controllers/.*/gcp.*|control-plane-operator/controllers/.*/gcp.*|cmd/cluster/gcp/.*|cmd/nodepool/gcp/.*)
+ 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-v2-gke
+ command:
+ - ci-operator
+ env:
+ - name: HTTP_SERVER_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
+ imagePullPolicy: Always
+ name: ""
+ ports:
+ - containerPort: 8080
+ name: http
+ 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
+ trigger: (?m)^/test( | .* )e2e-v2-gke,?($|\s.*)
- agent: kubernetes
always_run: true
branches:
diff --git a/ci-operator/step-registry/hypershift/gcp/create/OWNERS b/ci-operator/step-registry/hypershift/gcp/create/OWNERS
new file mode 100644
index 0000000000000..e6bc6d6200e48
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/create/OWNERS
@@ -0,0 +1,20 @@
+approvers:
+- csrwng
+- muraee
+- devguyio
+- apahim
+- cblecker
+- ckandag
+- cristianoveiga
+- jimdaga
+- patjlm
+reviewers:
+- csrwng
+- muraee
+- devguyio
+- apahim
+- cblecker
+- ckandag
+- cristianoveiga
+- jimdaga
+- patjlm
diff --git a/ci-operator/step-registry/hypershift/gcp/create/hypershift-gcp-create-chain.metadata.json b/ci-operator/step-registry/hypershift/gcp/create/hypershift-gcp-create-chain.metadata.json
new file mode 100644
index 0000000000000..7a90881739590
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/create/hypershift-gcp-create-chain.metadata.json
@@ -0,0 +1,27 @@
+{
+ "path": "hypershift/gcp/create/hypershift-gcp-create-chain.yaml",
+ "owners": {
+ "approvers": [
+ "csrwng",
+ "muraee",
+ "devguyio",
+ "apahim",
+ "cblecker",
+ "ckandag",
+ "cristianoveiga",
+ "jimdaga",
+ "patjlm"
+ ],
+ "reviewers": [
+ "csrwng",
+ "muraee",
+ "devguyio",
+ "apahim",
+ "cblecker",
+ "ckandag",
+ "cristianoveiga",
+ "jimdaga",
+ "patjlm"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ci-operator/step-registry/hypershift/gcp/create/hypershift-gcp-create-chain.yaml b/ci-operator/step-registry/hypershift/gcp/create/hypershift-gcp-create-chain.yaml
new file mode 100644
index 0000000000000..b334702d07f4e
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/create/hypershift-gcp-create-chain.yaml
@@ -0,0 +1,155 @@
+chain:
+ as: hypershift-gcp-create
+ steps:
+ - as: create-hostedcluster
+ cli: latest
+ env:
+ - name: HYPERSHIFT_NODE_COUNT
+ default: "2"
+ documentation: "Number of nodes for the hosted cluster NodePool."
+ - name: HYPERSHIFT_GCP_BOOT_IMAGE
+ default: ""
+ documentation: "GCP boot image for hosted cluster nodes (RHCOS image path). If empty, uses the default from the release image."
+ - name: HYPERSHIFT_GCP_CI_DNS_DOMAIN
+ default: ""
+ documentation: "DNS domain for HyperShift CI hosted clusters"
+ commands: |-
+ set -exuo pipefail
+
+ # Load configuration from SHARED_DIR (populated by prior steps)
+ GCP_REGION="$(<"${SHARED_DIR}/gcp-region")"
+ HC_PROJECT_ID="$(<"${SHARED_DIR}/hosted-cluster-project-id")"
+ CLUSTER_NAME="$(<"${SHARED_DIR}/hosted-cluster-name")"
+
+ # Network config (from hypershift-gcp-hosted-cluster-setup)
+ VPC_NAME="$(<"${SHARED_DIR}/hc-vpc-name")"
+ PSC_SUBNET="$(<"${SHARED_DIR}/hc-subnet-name")"
+
+ # WIF config (from hypershift-gcp-hosted-cluster-setup)
+ WIF_PROJECT_NUMBER="$(<"${SHARED_DIR}/wif-project-number")"
+ WIF_POOL_ID="$(<"${SHARED_DIR}/wif-pool-id")"
+ WIF_PROVIDER_ID="$(<"${SHARED_DIR}/wif-provider-id")"
+ CONTROLPLANE_SA="$(<"${SHARED_DIR}/controlplane-sa")"
+ NODEPOOL_SA="$(<"${SHARED_DIR}/nodepool-sa")"
+ CLOUDCONTROLLER_SA="$(<"${SHARED_DIR}/cloudcontroller-sa")"
+ STORAGE_SA="$(<"${SHARED_DIR}/storage-sa")"
+ IMAGEREGISTRY_SA="$(<"${SHARED_DIR}/imageregistry-sa")"
+ SA_SIGNING_KEY_PATH="$(<"${SHARED_DIR}/sa-signing-key-path")"
+
+ # Construct base domain and OIDC issuer URL
+ BASE_DOMAIN="in.${CLUSTER_NAME}.${HYPERSHIFT_GCP_CI_DNS_DOMAIN}"
+ OIDC_ISSUER_URL="https://hypershift-${CLUSTER_NAME}-oidc"
+
+ RELEASE_IMAGE="${OCP_IMAGE_LATEST}"
+
+ # TODO(GCP-426): Remove CAPG image override once HyperShift's CAPI CRDs serve v1beta2
+ CAPG_IMAGE="quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:bdec420448b81cc57f5b53bbcf491c0ed53b6e3ca97da722f69f386a373afe50"
+
+ # TODO(GCP-440): Remove boot image pin once NodePool controller discovers it from stream metadata
+ GCP_BOOT_IMAGE="${HYPERSHIFT_GCP_BOOT_IMAGE:-projects/rhcos-cloud/global/images/rhcos-9-6-20250925-0-gcp-x86-64}"
+
+ HC_NAME="gcp-hc-${CLUSTER_NAME:0-8}"
+ echo "$(date) Creating GCP HyperShift cluster ${HC_NAME}"
+
+ bin/hypershift create cluster gcp \
+ --name "${HC_NAME}" \
+ --namespace clusters \
+ --base-domain "${BASE_DOMAIN}" \
+ --external-dns-domain="${BASE_DOMAIN}" \
+ --node-pool-replicas "${HYPERSHIFT_NODE_COUNT}" \
+ --release-image "${RELEASE_IMAGE}" \
+ --pull-secret /etc/ci-pull-credentials/.dockerconfigjson \
+ --project "${HC_PROJECT_ID}" \
+ --region "${GCP_REGION}" \
+ --network "${VPC_NAME}" \
+ --private-service-connect-subnet "${PSC_SUBNET}" \
+ --endpoint-access PublicAndPrivate \
+ --workload-identity-project-number "${WIF_PROJECT_NUMBER}" \
+ --workload-identity-pool-id "${WIF_POOL_ID}" \
+ --workload-identity-provider-id "${WIF_PROVIDER_ID}" \
+ --control-plane-service-account "${CONTROLPLANE_SA}" \
+ --node-pool-service-account "${NODEPOOL_SA}" \
+ --cloud-controller-service-account "${CLOUDCONTROLLER_SA}" \
+ --storage-service-account "${STORAGE_SA}" \
+ --image-registry-service-account "${IMAGEREGISTRY_SA}" \
+ --service-account-signing-key-path "${SA_SIGNING_KEY_PATH}" \
+ --oidc-issuer-url "${OIDC_ISSUER_URL}" \
+ --boot-image "${GCP_BOOT_IMAGE}" \
+ --annotations "hypershift.openshift.io/capi-provider-gcp-image=${CAPG_IMAGE}" \
+ --annotations "hypershift.openshift.io/pod-security-admission-label-override=baseline" \
+ --disable-cluster-capabilities ImageRegistry \
+ --disable-cluster-capabilities Console \
+ --disable-cluster-capabilities Ingress \
+ --feature-set TechPreviewNoUpgrade
+
+ # Save HC CR name early so destroy chain can clean up if rollout times out
+ echo "${HC_NAME}" > "${SHARED_DIR}/cluster-name"
+
+ echo "Waiting for cluster to become available"
+ oc wait --timeout=30m --for=condition=Available --namespace=clusters "hostedcluster/${HC_NAME}"
+ echo "Cluster became available, creating kubeconfig"
+ bin/hypershift create kubeconfig --namespace=clusters --name="${HC_NAME}" > "${SHARED_DIR}/nested_kubeconfig"
+
+ # Wait for version rollout to complete
+ set +e
+ export HC_NAME
+ timeout 25m bash -c '
+ until [[ "$(oc get -n clusters hostedcluster/${HC_NAME} -o jsonpath='"'"'{.status.version.history[?(@.state!="")].state}'"'"')" = "Completed" ]]; do
+ sleep 15
+ done
+ '
+
+ if [[ $? -ne 0 ]]; then
+ cat << EOF > ${ARTIFACT_DIR}/junit_hosted_cluster.xml
+
+
+
+
+
+
+
+
+ EOF
+ exit 1
+ else
+ cat << EOF > ${ARTIFACT_DIR}/junit_hosted_cluster.xml
+
+
+
+
+
+
+
+
+ EOF
+ fi
+ from: hypershift-operator
+ grace_period: 5m0s
+ resources:
+ requests:
+ cpu: 100m
+ memory: 100Mi
+ timeout: 60m0s
+ credentials:
+ - mount_path: /etc/ci-pull-credentials
+ name: ci-pull-credentials
+ namespace: test-credentials
+ dependencies:
+ - name: "release:latest"
+ env: OCP_IMAGE_LATEST
+ documentation: |-
+ Creates a GCP HostedCluster using the hypershift CLI and waits for
+ the cluster version rollout to complete.
+
+ Reads infrastructure configuration from SHARED_DIR files created by
+ hypershift-gcp-gke-provision, hypershift-gcp-hosted-cluster-setup,
+ and hypershift-gcp-control-plane-setup.
+
+ Saves the HostedCluster CR name to SHARED_DIR/cluster-name for the
+ e2e-v2 test chain and destroy chain.
diff --git a/ci-operator/step-registry/hypershift/gcp/destroy/OWNERS b/ci-operator/step-registry/hypershift/gcp/destroy/OWNERS
new file mode 100644
index 0000000000000..e6bc6d6200e48
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/destroy/OWNERS
@@ -0,0 +1,20 @@
+approvers:
+- csrwng
+- muraee
+- devguyio
+- apahim
+- cblecker
+- ckandag
+- cristianoveiga
+- jimdaga
+- patjlm
+reviewers:
+- csrwng
+- muraee
+- devguyio
+- apahim
+- cblecker
+- ckandag
+- cristianoveiga
+- jimdaga
+- patjlm
diff --git a/ci-operator/step-registry/hypershift/gcp/destroy/hypershift-gcp-destroy-chain.metadata.json b/ci-operator/step-registry/hypershift/gcp/destroy/hypershift-gcp-destroy-chain.metadata.json
new file mode 100644
index 0000000000000..d856f3938e867
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/destroy/hypershift-gcp-destroy-chain.metadata.json
@@ -0,0 +1,27 @@
+{
+ "path": "hypershift/gcp/destroy/hypershift-gcp-destroy-chain.yaml",
+ "owners": {
+ "approvers": [
+ "csrwng",
+ "muraee",
+ "devguyio",
+ "apahim",
+ "cblecker",
+ "ckandag",
+ "cristianoveiga",
+ "jimdaga",
+ "patjlm"
+ ],
+ "reviewers": [
+ "csrwng",
+ "muraee",
+ "devguyio",
+ "apahim",
+ "cblecker",
+ "ckandag",
+ "cristianoveiga",
+ "jimdaga",
+ "patjlm"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ci-operator/step-registry/hypershift/gcp/destroy/hypershift-gcp-destroy-chain.yaml b/ci-operator/step-registry/hypershift/gcp/destroy/hypershift-gcp-destroy-chain.yaml
new file mode 100644
index 0000000000000..7e8e61cdec1b2
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/destroy/hypershift-gcp-destroy-chain.yaml
@@ -0,0 +1,31 @@
+chain:
+ as: hypershift-gcp-destroy
+ steps:
+ - as: destroy
+ cli: latest
+ commands: |-
+ set -exuo pipefail
+
+ CLUSTER_NAME="$(cat ${SHARED_DIR}/cluster-name)"
+ echo "$(date) Deleting GCP HyperShift cluster ${CLUSTER_NAME}"
+ bin/hypershift destroy cluster gcp \
+ --name "${CLUSTER_NAME}" \
+ --namespace clusters \
+ --cluster-grace-period 40m
+ echo "$(date) Finished deleting cluster"
+ from: hypershift-operator
+ grace_period: 5m0s
+ resources:
+ requests:
+ cpu: 100m
+ memory: 100Mi
+ timeout: 45m0s
+ best_effort: true
+ documentation: |-
+ Destroys a GCP HostedCluster by deleting the HostedCluster CR and
+ waiting for finalizers to complete.
+
+ The underlying GCP infrastructure (VPC, WIF, projects) is cleaned up
+ separately by hypershift-gcp-gke-deprovision via project deletion.
+
+ Reads cluster-name from SHARED_DIR (saved by hypershift-gcp-create).
diff --git a/ci-operator/step-registry/hypershift/gcp/gke/deprovision/hypershift-gcp-gke-deprovision-commands.sh b/ci-operator/step-registry/hypershift/gcp/gke/deprovision/hypershift-gcp-gke-deprovision-commands.sh
index 6c36a8754bd7a..80b4e09a84f13 100644
--- a/ci-operator/step-registry/hypershift/gcp/gke/deprovision/hypershift-gcp-gke-deprovision-commands.sh
+++ b/ci-operator/step-registry/hypershift/gcp/gke/deprovision/hypershift-gcp-gke-deprovision-commands.sh
@@ -98,23 +98,31 @@ gcloud projects delete "${CP_PROJECT_ID}" --quiet || true
EXTERNAL_DNS_GSA="external-dns@${HYPERSHIFT_GCP_CI_PROJECT}.iam.gserviceaccount.com"
# Clean up DNS records from the CI zone (DNS records use the hosted cluster name)
+DNS_CLEANUP_FAILED=false
if [[ -n "${HC_CLUSTER_NAME}" ]]; then
echo "Cleaning up DNS records for hosted cluster ${HC_CLUSTER_NAME}..."
DNS_SUFFIX="in.${HC_CLUSTER_NAME}.${HYPERSHIFT_GCP_CI_DNS_DOMAIN}."
- DNS_RECORDS=$(gcloud dns record-sets list \
+ if ! DNS_RECORDS=$(gcloud dns record-sets list \
--zone="${HYPERSHIFT_GCP_CI_DNS_ZONE}" \
--project="${HYPERSHIFT_GCP_CI_PROJECT}" \
--filter="name ~ ${DNS_SUFFIX}" \
- --format="csv[no-heading](name,type)" 2>/dev/null || true)
+ --format="csv[no-heading](name,type)"); then
+ echo "ERROR: Failed to list DNS records - check service account permissions"
+ DNS_CLEANUP_FAILED=true
+ DNS_RECORDS=""
+ fi
if [[ -n "${DNS_RECORDS}" ]]; then
while IFS=, read -r name type; do
[[ -z "${name}" ]] && continue
echo "Deleting DNS record: ${name} ${type}"
- gcloud dns record-sets delete "${name}" \
+ if ! gcloud dns record-sets delete "${name}" \
--type="${type}" \
--zone="${HYPERSHIFT_GCP_CI_DNS_ZONE}" \
- --project="${HYPERSHIFT_GCP_CI_PROJECT}" --quiet || true
+ --project="${HYPERSHIFT_GCP_CI_PROJECT}" --quiet; then
+ echo "ERROR: Failed to delete DNS record ${name} ${type}"
+ DNS_CLEANUP_FAILED=true
+ fi
done <<< "${DNS_RECORDS}"
else
echo "No DNS records found matching ${DNS_SUFFIX}"
@@ -137,4 +145,9 @@ gcloud iam service-accounts remove-iam-policy-binding "${EXTERNAL_DNS_GSA}" \
--project="${HYPERSHIFT_GCP_CI_PROJECT}" || true
set -x
+if [[ "${DNS_CLEANUP_FAILED}" == "true" ]]; then
+ echo "Cleanup complete but DNS cleanup failed - orphaned DNS records may remain"
+ exit 1
+fi
+
echo "Cleanup complete"
diff --git a/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/OWNERS b/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/OWNERS
new file mode 100644
index 0000000000000..e6bc6d6200e48
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/OWNERS
@@ -0,0 +1,20 @@
+approvers:
+- csrwng
+- muraee
+- devguyio
+- apahim
+- cblecker
+- ckandag
+- cristianoveiga
+- jimdaga
+- patjlm
+reviewers:
+- csrwng
+- muraee
+- devguyio
+- apahim
+- cblecker
+- ckandag
+- cristianoveiga
+- jimdaga
+- patjlm
diff --git a/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.metadata.json b/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.metadata.json
new file mode 100644
index 0000000000000..6887b63665934
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.metadata.json
@@ -0,0 +1,27 @@
+{
+ "path": "hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.yaml",
+ "owners": {
+ "approvers": [
+ "csrwng",
+ "muraee",
+ "devguyio",
+ "apahim",
+ "cblecker",
+ "ckandag",
+ "cristianoveiga",
+ "jimdaga",
+ "patjlm"
+ ],
+ "reviewers": [
+ "csrwng",
+ "muraee",
+ "devguyio",
+ "apahim",
+ "cblecker",
+ "ckandag",
+ "cristianoveiga",
+ "jimdaga",
+ "patjlm"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.yaml b/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.yaml
new file mode 100644
index 0000000000000..9ba104081f070
--- /dev/null
+++ b/ci-operator/step-registry/hypershift/gcp/gke/e2e-v2/hypershift-gcp-gke-e2e-v2-workflow.yaml
@@ -0,0 +1,45 @@
+workflow:
+ as: hypershift-gcp-gke-e2e-v2
+ documentation: |-
+ The HyperShift GCP GKE e2e-v2 workflow provisions a GKE cluster,
+ creates a GCP hosted cluster, runs Ginkgo v2 tests, and cleans up.
+
+ Pre phase:
+ 1. ipi-install-rbac: Grant image-puller permissions on build farm
+ 2. hypershift-gcp-gke-provision: Create GCP projects, VPC, and GKE cluster
+ 3. hypershift-gcp-gke-prerequisites: Install CRDs and cert-manager on GKE
+ 4. hypershift-install: Install the HyperShift operator
+ 5. hypershift-gcp-control-plane-setup: Configure WIF and webhook TLS
+ 6. hypershift-gcp-hosted-cluster-setup: Create WIF and network infrastructure
+ 7. hypershift-gcp-create: Create GCP HostedCluster and wait for rollout
+
+ Test phase:
+ 1. hypershift-e2e-v2: Run Ginkgo v2 tests against the hosted cluster
+
+ Post phase:
+ 1. hypershift-dump: Collect HyperShift artifacts for debugging
+ 2. hypershift-gcp-destroy: Destroy the GCP HostedCluster
+ 3. hypershift-gcp-gke-deprovision: Delete GKE cluster and GCP projects
+ steps:
+ pre:
+ - ref: ipi-install-rbac
+ - ref: hypershift-gcp-gke-provision
+ - ref: hypershift-gcp-gke-prerequisites
+ - ref: hypershift-install
+ - ref: hypershift-gcp-control-plane-setup
+ - ref: hypershift-gcp-hosted-cluster-setup
+ - chain: hypershift-gcp-create
+ test:
+ - chain: hypershift-e2e-v2
+ post:
+ - chain: hypershift-dump
+ - chain: hypershift-gcp-destroy
+ - ref: hypershift-gcp-gke-deprovision
+ env:
+ CLOUD_PROVIDER: "GCP"
+ GKE_REGION: "us-central1"
+ GKE_RELEASE_CHANNEL: "stable"
+ TECH_PREVIEW_NO_UPGRADE: "true"
+ HYPERSHIFT_GCP_CI_PROJECT: "gcp-hcp-hypershift-ci"
+ HYPERSHIFT_GCP_CI_DNS_ZONE: "hypershift-ci-gcp-hcp-openshiftapps-com"
+ HYPERSHIFT_GCP_CI_DNS_DOMAIN: "hypershift-ci.gcp-hcp.openshiftapps.com"
diff --git a/ci-operator/step-registry/hypershift/gcp/gke/e2e/hypershift-gcp-gke-e2e-workflow.yaml b/ci-operator/step-registry/hypershift/gcp/gke/e2e/hypershift-gcp-gke-e2e-workflow.yaml
index 37b47fd57d826..4a5a1c678d306 100644
--- a/ci-operator/step-registry/hypershift/gcp/gke/e2e/hypershift-gcp-gke-e2e-workflow.yaml
+++ b/ci-operator/step-registry/hypershift/gcp/gke/e2e/hypershift-gcp-gke-e2e-workflow.yaml
@@ -37,5 +37,5 @@ workflow:
GKE_RELEASE_CHANNEL: "stable"
TECH_PREVIEW_NO_UPGRADE: "true"
HYPERSHIFT_GCP_CI_PROJECT: "gcp-hcp-hypershift-ci"
- HYPERSHIFT_GCP_CI_DNS_ZONE: "hypershift-ci-zone"
+ HYPERSHIFT_GCP_CI_DNS_ZONE: "hypershift-ci-gcp-hcp-openshiftapps-com"
HYPERSHIFT_GCP_CI_DNS_DOMAIN: "hypershift-ci.gcp-hcp.openshiftapps.com"