Skip to content

Conversation

@orenc1
Copy link
Contributor

@orenc1 orenc1 commented Dec 2, 2025

The kubevirt platform in Hosted Control Planes (HCP) supports a dual-stack topology.
Adding it to the dualStackPlatforms list to avoid reconciler error when the hosted cluster is dual-stack.

The kubevirt platform in Hosted Control Planes (HCP) supports a dual-stack topology.
Adding it to the dualStackPlatforms list to avoid reconciler error when the hosted cluster is dual-stack.

Signed-off-by: Oren Cohen <ocohen@redhat.com>
@coderabbitai
Copy link

coderabbitai bot commented Dec 2, 2025

Walkthrough

The change adds Kubevirt platform type to the dual-stack platforms set in network rendering logic, expanding platform coverage for dual-stack validation support.

Changes

Cohort / File(s) Change Summary
Dual-stack platform support
pkg/network/render.go
Added string(configv1.KubevirtPlatformType) to the dualStackPlatforms set to include Kubevirt as a supported platform for dual-stack validation

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between a3935d6 and d4f5de4.

📒 Files selected for processing (1)
  • pkg/network/render.go (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/network/render.go
🔇 Additional comments (1)
pkg/network/render.go (1)

34-40: KubeVirt addition to dualStackPlatforms looks correct; verify platform support assumptions

Including string(configv1.KubevirtPlatformType) in dualStackPlatforms cleanly extends isSupportedDualStackPlatform without altering other logic, and matches how other platform types are handled.

Please just confirm this matches the current platform support matrix (i.e., KubeVirt clusters are indeed allowed to run or migrate as dual-stack in all environments where this code runs, and don’t need an extra prohibition like the OpenStack special case below).

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@qinqon qinqon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Dec 2, 2025
@jrvaldes
Copy link

jrvaldes commented Dec 2, 2025

@orenc1 orenc1 changed the title Add kubevirt platform to dual-stack supported platforms OCPBUGS-66253: Add kubevirt platform to dual-stack supported platforms Dec 4, 2025
@openshift-ci-robot openshift-ci-robot added jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Dec 4, 2025
@openshift-ci-robot
Copy link
Contributor

@orenc1: This pull request references Jira Issue OCPBUGS-66253, which is invalid:

  • expected the bug to target the "4.21.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

The kubevirt platform in Hosted Control Planes (HCP) supports a dual-stack topology.
Adding it to the dualStackPlatforms list to avoid reconciler error when the hosted cluster is dual-stack.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@orenc1
Copy link
Contributor Author

orenc1 commented Dec 4, 2025

/retest

@orenc1 orenc1 changed the title OCPBUGS-66253: Add kubevirt platform to dual-stack supported platforms OCPBUGS-66417: Add kubevirt platform to dual-stack supported platforms Dec 4, 2025
@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Dec 4, 2025
@openshift-ci-robot
Copy link
Contributor

@orenc1: This pull request references Jira Issue OCPBUGS-66417, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.21.0) matches configured target version for branch (4.21.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)

No GitHub users were found matching the public email listed for the QA contact in Jira (yli2@redhat.com), skipping review request.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

The kubevirt platform in Hosted Control Planes (HCP) supports a dual-stack topology.
Adding it to the dualStackPlatforms list to avoid reconciler error when the hosted cluster is dual-stack.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@qinqon
Copy link
Contributor

qinqon commented Dec 5, 2025

/retest-required

@tssurya
Copy link
Contributor

tssurya commented Dec 5, 2025

Isn't dualstack support for kubevirt supposed to be a feature? Why is this a bug fix? Where are the links and history for this feature on JIRA? Also what about CI? How do we know doing this is going to work? Which team's QE is testing this? -> is it hypershift qe? kubevirt qe? supposed to be core-net-qe?
Did we always support dualstack or its new? Does our product docs cover this?

@qinqon
Copy link
Contributor

qinqon commented Dec 5, 2025

Isn't dualstack support for kubevirt supposed to be a feature?

From what I see on the enhancement it was part of the Goals

https://github.com/openshift/enhancements/blob/master/enhancements/network/ovn-hypershift-live-migration.md#goals

Why is this a bug fix?

Well since it was part of the goals it was implemented, so this is a bugfix, what is weird is that this means that
we never tested dual stack ? Don't know if this CNO check is new and it was testing before...

Where are the links and history for this feature on JIRA?
This is the jira that implement the enhancement
https://issues.redhat.com/browse/CORENET-3897

Since the enhancement goals include IPv6 then it's part of the task.

Also what about CI? How do we know doing this is going to work? Which team's QE is testing this?
is it hypershift qe? kubevirt qe? supposed to be core-net-qe?

This should be tested by hypershift qe team, but clearly it was never tested and we don't have CI.

Did we always support dualstack or its new? Does our product docs cover this?

SO from the enhancement we were supposed to suport it from the beginning, for sure we implemented it at ovn-kubernetes level and at MCO level.

Isn't dualstack support for kubevirt supposed to be a feature? Why is this a bug fix? Where are the links and history for this feature on JIRA? Also what about CI? How do we know doing this is going to work? Which team's QE is testing this? -> is it hypershift qe? kubevirt qe? supposed to be core-net-qe? Did we always support dualstack or its new? Does our product docs cover this?

The hypershift qe team is suppose to test this.

@tssurya
Copy link
Contributor

tssurya commented Dec 5, 2025

Isn't dualstack support for kubevirt supposed to be a feature?

From what I see on the enhancement it was part of the Goals

https://github.com/openshift/enhancements/blob/master/enhancements/network/ovn-hypershift-live-migration.md#goals

Why is this a bug fix?

Well since it was part of the goals it was implemented, so this is a bugfix, what is weird is that this means that we never tested dual stack ? Don't know if this CNO check is new and it was testing before...

Where are the links and history for this feature on JIRA?
This is the jira that implement the enhancement
https://issues.redhat.com/browse/CORENET-3897

Since the enhancement goals include IPv6 then it's part of the task.

Also what about CI? How do we know doing this is going to work? Which team's QE is testing this? is it hypershift qe? kubevirt qe? supposed to be core-net-qe?

This should be tested by hypershift qe team, but clearly it was never tested and we don't have CI.

Did we always support dualstack or its new? Does our product docs cover this?

SO from the enhancement we were supposed to suport it from the beginning, for sure we implemented it at ovn-kubernetes level and at MCO level.

Isn't dualstack support for kubevirt supposed to be a feature? Why is this a bug fix? Where are the links and history for this feature on JIRA? Also what about CI? How do we know doing this is going to work? Which team's QE is testing this? -> is it hypershift qe? kubevirt qe? supposed to be core-net-qe? Did we always support dualstack or its new? Does our product docs cover this?

The hypershift qe team is suppose to test this.

Thanks @qinqon for the details, then I need a pre-merge testing label "verified" from hypershift-qe OR a CI here in this repo I guess? I think former ack from QE is better..

Do we document this in hypershift-docs as supported? User facing docs I mean?

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 5, 2025

The dualstack supported platform check is not new.
It would be good for the owning QE to ACK that this works before we get it in.
Are also going to support converting a v4 cluster to dual-stack?

@orenc1
Copy link
Contributor Author

orenc1 commented Dec 18, 2025

We have verified that a dual-stack Hosted Cluster created with kubevirt plaform is working as expected with both stacks.

Hosted Cluster yaml
apiVersion: hypershift.openshift.io/v1beta1
kind: HostedCluster
metadata:
  annotations:
    hypershift.openshift.io/HasBeenAvailable: "true"
    hypershift.openshift.io/management-platform: BareMetal
  creationTimestamp: "2025-12-18T12:23:59Z"
  finalizers:
  - hypershift.openshift.io/finalizer
  generation: 3
  labels:
    hypershift.openshift.io/auto-created-for-infra: dualstack-420b-bbfq2
  name: dualstack-420b
  namespace: clusters
  resourceVersion: "14495427"
  uid: 31dc9446-eedf-4e24-b9df-8602f72b5260
spec:
  autoscaling:
    scaling: ScaleUpAndScaleDown
  capabilities: {}
  clusterID: 48ad7330-3436-479b-ae1b-8f6f21e86e77
  configuration: {}
  controllerAvailabilityPolicy: HighlyAvailable
  dns:
    baseDomain: apps.bm17a-tlv2.abi.cnv-qe.rhood.us
  etcd:
    managed:
      storage:
        persistentVolume:
          size: 8Gi
        type: PersistentVolume
    managementType: Managed
  fips: false
  infraID: dualstack-420b-bbfq2
  infrastructureAvailabilityPolicy: SingleReplica
  issuerURL: https://kubernetes.default.svc
  networking:
    clusterNetwork:
    - cidr: 10.132.0.0/14
    - cidr: fd04::/48
    networkType: OVNKubernetes
    serviceNetwork:
    - cidr: 172.31.0.0/16
    - cidr: fd05::/112
  olmCatalogPlacement: management
  platform:
    kubevirt:
      baseDomainPassthrough: true
      generateID: pv47sctlz4
    type: KubeVirt
  pullSecret:
    name: dualstack-420b-pull-secret
  release:
    image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release:latest
  secretEncryption:
    aescbc:
      activeKey:
        name: dualstack-420b-etcd-encryption-key
    type: aescbc
  services:
  - service: APIServer
    servicePublishingStrategy:
      type: LoadBalancer
  - service: Ignition
    servicePublishingStrategy:
      type: Route
  - service: Konnectivity
    servicePublishingStrategy:
      type: Route
  - service: OAuthServer
    servicePublishingStrategy:
      type: Route
  sshKey:
    name: dualstack-420b-ssh-key
status:
  conditions:
  - lastTransitionTime: "2025-12-18T12:24:03Z"
    message: Reconciliation completed successfully
    observedGeneration: 3
    reason: ReconciliatonSucceeded
    status: "True"
    type: ReconciliationSucceeded
  - lastTransitionTime: "2025-12-18T12:26:39Z"
    message: Payload loaded version="4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest"
      image="registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release@sha256:0cf754c8303ce925795b1a08196b2907a164d85f084e5667dd9ee1b37d592b8e"
      architecture="amd64"
    observedGeneration: 3
    reason: PayloadLoaded
    status: "True"
    type: ClusterVersionReleaseAccepted
  - lastTransitionTime: "2025-12-18T12:40:17Z"
    message: Condition not found in the CVO.
    observedGeneration: 3
    reason: FromClusterVersion
    status: "True"
    type: ClusterVersionUpgradeable
  - lastTransitionTime: "2025-12-18T12:40:17Z"
    message: Done applying 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
    observedGeneration: 3
    reason: FromClusterVersion
    status: "True"
    type: ClusterVersionAvailable
  - lastTransitionTime: "2025-12-18T12:40:17Z"
    message: ""
    observedGeneration: 3
    reason: FromClusterVersion
    status: "True"
    type: ClusterVersionSucceeding
  - lastTransitionTime: "2025-12-18T12:40:17Z"
    message: Cluster version is 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
    observedGeneration: 3
    reason: FromClusterVersion
    status: "False"
    type: ClusterVersionProgressing
  - lastTransitionTime: "2025-12-18T12:37:41Z"
    message: The hosted cluster is not degraded
    observedGeneration: 3
    reason: AsExpected
    status: "False"
    type: Degraded
  - lastTransitionTime: "2025-12-18T12:28:41Z"
    message: 'Non-live-migratable node(s) have been found on the following NodePool(s)
      attached to this Hosted Cluster: dualstack-420b. It is recommended to use live-migratable
      nodes in order to improve cluster stability and downtime. Check the reason for
      the non-live-migratability in the corresponding NodePool(s).'
    observedGeneration: 3
    reason: KubeVirtNodesNotLiveMigratable
    status: "False"
    type: KubeVirtNodesLiveMigratable
  - lastTransitionTime: "2025-12-18T12:25:31Z"
    message: ""
    observedGeneration: 3
    reason: QuorumAvailable
    status: "True"
    type: EtcdAvailable
  - lastTransitionTime: "2025-12-18T12:25:59Z"
    message: Kube APIServer deployment is available
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: KubeAPIServerAvailable
  - lastTransitionTime: "2025-12-18T12:25:04Z"
    message: All is well
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: InfrastructureReady
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: External DNS is not configured
    observedGeneration: 3
    reason: StatusUnknown
    status: Unknown
    type: ExternalDNSReachable
  - lastTransitionTime: "2025-12-18T12:24:06Z"
    message: Configuration passes validation
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: ValidHostedControlPlaneConfiguration
  - lastTransitionTime: "2025-12-18T12:25:04Z"
    message: All is well
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: ValidReleaseInfo
  - lastTransitionTime: "2025-12-18T12:25:03Z"
    message: Identity provider configuration is valid
    observedGeneration: 3
    reason: IDPConfigurationValid
    status: "True"
    type: ValidIDPConfiguration
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: Condition not found in the HCP
    observedGeneration: 3
    reason: StatusUnknown
    status: Unknown
    type: HostedClusterRestoredFromBackup
  - lastTransitionTime: "2025-12-18T12:26:00Z"
    message: The hosted control plane is available
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: Available
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: Configuration passes validation
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: ValidConfiguration
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: HostedCluster is supported by operator configuration
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: SupportedHostedCluster
  - lastTransitionTime: "2025-12-18T12:26:06Z"
    message: Ignition server deployment is available
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: IgnitionEndpointAvailable
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: Reconciliation active on resource
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: ReconciliationActive
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: Release image is valid
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: ValidReleaseImage
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: HostedCluster is at expected version
    observedGeneration: 3
    reason: AsExpected
    status: "False"
    type: Progressing
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: Required platform credentials are found
    observedGeneration: 3
    reason: AsExpected
    status: "True"
    type: PlatformCredentialsFound
  - lastTransitionTime: "2025-12-18T12:26:39Z"
    message: The update channel has not been configured.
    observedGeneration: 3
    reason: NoChannel
    status: "False"
    type: ClusterVersionRetrievedUpdates
  - lastTransitionTime: "2025-12-18T12:31:48Z"
    message: A suboptimal MTU size has been detected. Due to performance, we recommend
      setting an MTU of 9000 bytes or greater for the infra cluster that hosts the
      KubeVirt VirtualMachines. When smaller MTUs are used, the cluster will still
      operate, but network performance will be degraded due to fragmentation of the
      double encapsulation in OVN-Kubernetes.
    observedGeneration: 3
    reason: KubeVirtSuboptimalMTUDetected
    status: "False"
    type: ValidKubeVirtInfraNetworkMTU
  controlPlaneEndpoint:
    host: 10.46.255.10
    port: 6443
  ignitionEndpoint: ignition-server-clusters-dualstack-420b.apps.bm17a-tlv2.abi.cnv-qe.rhood.us
  kubeadminPassword:
    name: dualstack-420b-kubeadmin-password
  kubeconfig:
    name: dualstack-420b-admin-kubeconfig
  oauthCallbackURLTemplate: https://oauth-clusters-dualstack-420b.apps.bm17a-tlv2.abi.cnv-qe.rhood.us:443/oauth2callback/[identity-provider-name]
  payloadArch: AMD64
  version:
    availableUpdates: null
    desired:
      image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release@sha256:0cf754c8303ce925795b1a08196b2907a164d85f084e5667dd9ee1b37d592b8e
      version: 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
    history:
    - completionTime: "2025-12-18T12:40:17Z"
      image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release@sha256:0cf754c8303ce925795b1a08196b2907a164d85f084e5667dd9ee1b37d592b8e
      startedTime: "2025-12-18T12:26:32Z"
      state: Completed
      verified: false
      version: 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
    observedGeneration: 1
NodePool yaml
apiVersion: hypershift.openshift.io/v1beta1
kind: NodePool
metadata:
  annotations:
    hypershift.openshift.io/nodePoolCurrentConfig: 3fce1191
    hypershift.openshift.io/nodePoolCurrentConfigVersion: 3c1d316a
    hypershift.openshift.io/nodePoolPlatformMachineTemplate: dualstack-420b-49aab8d0
    hypershift.openshift.io/nodepool-supports-kubevirt-topology-spread-constraints: "true"
  creationTimestamp: "2025-12-18T12:23:59Z"
  finalizers:
  - hypershift.openshift.io/finalizer
  generation: 1
  labels:
    hypershift.openshift.io/auto-created-for-infra: dualstack-420b-bbfq2
  name: dualstack-420b
  namespace: clusters
  ownerReferences:
  - apiVersion: hypershift.openshift.io/v1beta1
    kind: HostedCluster
    name: dualstack-420b
    uid: 31dc9446-eedf-4e24-b9df-8602f72b5260
  resourceVersion: "14489188"
  uid: 8ba144a1-a61e-462a-9f48-bf82b32a3666
spec:
  arch: amd64
  clusterName: dualstack-420b
  management:
    autoRepair: false
    replace:
      rollingUpdate:
        maxSurge: 1
        maxUnavailable: 0
      strategy: RollingUpdate
    upgradeType: Replace
  nodeDrainTimeout: 0s
  nodeVolumeDetachTimeout: 0s
  platform:
    kubevirt:
      attachDefaultNetwork: true
      compute:
        cores: 4
        memory: 16Gi
        qosClass: Burstable
      networkInterfaceMultiqueue: Enable
      rootVolume:
        persistent:
          size: 32Gi
        type: Persistent
    type: KubeVirt
  release:
    image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release:latest
  replicas: 3
status:
  conditions:
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidArchPlatform
  - lastTransitionTime: "2025-12-18T12:32:48Z"
    observedGeneration: 1
    reason: AsExpected
    status: "False"
    type: UpdatingVersion
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: All is well
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidPlatformConfig
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    observedGeneration: 1
    reason: AsExpected
    status: "False"
    type: AutoscalingEnabled
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: UpdateManagementEnabled
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: 'Using release image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release:latest'
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidReleaseImage
  - lastTransitionTime: "2025-12-18T12:23:59Z"
    message: Reconciliation active on resource
    observedGeneration: 1
    reason: ReconciliationActive
    status: "True"
    type: ReconciliationActive
  - lastTransitionTime: "2025-12-18T12:28:21Z"
    message: All is well
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: AllMachinesReady
  - lastTransitionTime: "2025-12-18T12:32:48Z"
    message: All is well
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: AllNodesHealthy
  - lastTransitionTime: "2025-12-18T12:25:35Z"
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidMachineConfig
  - lastTransitionTime: "2025-12-18T12:32:48Z"
    observedGeneration: 1
    reason: AsExpected
    status: "False"
    type: UpdatingConfig
  - lastTransitionTime: "2025-12-18T12:27:39Z"
    message: Payload generated successfully
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidGeneratedPayload
  - lastTransitionTime: "2025-12-18T12:28:20Z"
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ReachedIgnitionEndpoint
  - lastTransitionTime: "2025-12-18T12:26:00Z"
    message: Bootstrap KubeVirt Image is quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d6f7de2cc6c6bc49486533a2550d8180c30c7a8b2ec9cd8ec069c5d92bffd11a
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidPlatformImage
  - lastTransitionTime: "2025-12-18T12:26:00Z"
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: ValidTuningConfig
  - lastTransitionTime: "2025-12-18T12:32:48Z"
    observedGeneration: 1
    reason: AsExpected
    status: "False"
    type: UpdatingPlatformMachineTemplate
  - lastTransitionTime: "2025-12-18T12:26:00Z"
    observedGeneration: 1
    reason: AsExpected
    status: "False"
    type: AutorepairEnabled
  - lastTransitionTime: "2025-12-18T12:28:41Z"
    message: |
      3 of 3 machines are not live migratable
      Machine dualstack-420b-bssm2-vdcld: DisksNotLiveMigratable: dualstack-420b-bssm2-vdcld is not a live migratable machine: cannot migrate VMI: PVC dualstack-420b-bssm2-vdcld-rhcos is not shared, live migration requires that all PVCs must be shared (using ReadWriteMany access mode)
      Machine dualstack-420b-bssm2-fprpn: DisksNotLiveMigratable: dualstack-420b-bssm2-fprpn is not a live migratable machine: cannot migrate VMI: PVC dualstack-420b-bssm2-fprpn-rhcos is not shared, live migration requires that all PVCs must be shared (using ReadWriteMany access mode)
      Machine dualstack-420b-bssm2-9nb8z: DisksNotLiveMigratable: dualstack-420b-bssm2-9nb8z is not a live migratable machine: cannot migrate VMI: PVC dualstack-420b-bssm2-9nb8z-rhcos is not shared, live migration requires that all PVCs must be shared (using ReadWriteMany access mode)
    observedGeneration: 1
    reason: DisksNotLiveMigratable
    status: "False"
    type: KubeVirtNodesLiveMigratable
  - lastTransitionTime: "2025-12-18T12:32:48Z"
    observedGeneration: 1
    reason: AsExpected
    status: "True"
    type: Ready
  replicas: 3
  version: 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
Cluster Operators
NAME                                       VERSION                                                AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
console                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      3m40s   
csi-snapshot-controller                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
dns                                        4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m4s    
image-registry                             4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m7s    
ingress                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      5m53s   
insights                                   4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m53s   
kube-apiserver                             4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
kube-controller-manager                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
kube-scheduler                             4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
kube-storage-version-migrator              4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m45s   
monitoring                                 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      4m26s   
network                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m52s   
node-tuning                                4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      8m12s   
openshift-apiserver                        4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
openshift-controller-manager               4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
openshift-samples                          4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      5m50s   
operator-lifecycle-manager                 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      13m     
operator-lifecycle-manager-catalog         4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      13m     
operator-lifecycle-manager-packageserver   4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
service-ca                                 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m50s   
storage                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      13m     

ClusterVersion:

$ oc get clusterversion
NAME      VERSION                                                AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         14s     Cluster version is 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest

/verified by @orenc @qinqon

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Dec 18, 2025
@openshift-ci-robot
Copy link
Contributor

@orenc1: This PR has been marked as verified by @orenc @qinqon.

Details

In response to this:

We have verified that a dual-stack Hosted Cluster created with kubevirt plaform is working as expected with both stacks.

Hosted Cluster yaml
apiVersion: hypershift.openshift.io/v1beta1
kind: HostedCluster
metadata:
 annotations:
   hypershift.openshift.io/HasBeenAvailable: "true"
   hypershift.openshift.io/management-platform: BareMetal
 creationTimestamp: "2025-12-18T12:23:59Z"
 finalizers:
 - hypershift.openshift.io/finalizer
 generation: 3
 labels:
   hypershift.openshift.io/auto-created-for-infra: dualstack-420b-bbfq2
 name: dualstack-420b
 namespace: clusters
 resourceVersion: "14495427"
 uid: 31dc9446-eedf-4e24-b9df-8602f72b5260
spec:
 autoscaling:
   scaling: ScaleUpAndScaleDown
 capabilities: {}
 clusterID: 48ad7330-3436-479b-ae1b-8f6f21e86e77
 configuration: {}
 controllerAvailabilityPolicy: HighlyAvailable
 dns:
   baseDomain: apps.bm17a-tlv2.abi.cnv-qe.rhood.us
 etcd:
   managed:
     storage:
       persistentVolume:
         size: 8Gi
       type: PersistentVolume
   managementType: Managed
 fips: false
 infraID: dualstack-420b-bbfq2
 infrastructureAvailabilityPolicy: SingleReplica
 issuerURL: https://kubernetes.default.svc
 networking:
   clusterNetwork:
   - cidr: 10.132.0.0/14
   - cidr: fd04::/48
   networkType: OVNKubernetes
   serviceNetwork:
   - cidr: 172.31.0.0/16
   - cidr: fd05::/112
 olmCatalogPlacement: management
 platform:
   kubevirt:
     baseDomainPassthrough: true
     generateID: pv47sctlz4
   type: KubeVirt
 pullSecret:
   name: dualstack-420b-pull-secret
 release:
   image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release:latest
 secretEncryption:
   aescbc:
     activeKey:
       name: dualstack-420b-etcd-encryption-key
   type: aescbc
 services:
 - service: APIServer
   servicePublishingStrategy:
     type: LoadBalancer
 - service: Ignition
   servicePublishingStrategy:
     type: Route
 - service: Konnectivity
   servicePublishingStrategy:
     type: Route
 - service: OAuthServer
   servicePublishingStrategy:
     type: Route
 sshKey:
   name: dualstack-420b-ssh-key
status:
 conditions:
 - lastTransitionTime: "2025-12-18T12:24:03Z"
   message: Reconciliation completed successfully
   observedGeneration: 3
   reason: ReconciliatonSucceeded
   status: "True"
   type: ReconciliationSucceeded
 - lastTransitionTime: "2025-12-18T12:26:39Z"
   message: Payload loaded version="4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest"
     image="registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release@sha256:0cf754c8303ce925795b1a08196b2907a164d85f084e5667dd9ee1b37d592b8e"
     architecture="amd64"
   observedGeneration: 3
   reason: PayloadLoaded
   status: "True"
   type: ClusterVersionReleaseAccepted
 - lastTransitionTime: "2025-12-18T12:40:17Z"
   message: Condition not found in the CVO.
   observedGeneration: 3
   reason: FromClusterVersion
   status: "True"
   type: ClusterVersionUpgradeable
 - lastTransitionTime: "2025-12-18T12:40:17Z"
   message: Done applying 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
   observedGeneration: 3
   reason: FromClusterVersion
   status: "True"
   type: ClusterVersionAvailable
 - lastTransitionTime: "2025-12-18T12:40:17Z"
   message: ""
   observedGeneration: 3
   reason: FromClusterVersion
   status: "True"
   type: ClusterVersionSucceeding
 - lastTransitionTime: "2025-12-18T12:40:17Z"
   message: Cluster version is 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
   observedGeneration: 3
   reason: FromClusterVersion
   status: "False"
   type: ClusterVersionProgressing
 - lastTransitionTime: "2025-12-18T12:37:41Z"
   message: The hosted cluster is not degraded
   observedGeneration: 3
   reason: AsExpected
   status: "False"
   type: Degraded
 - lastTransitionTime: "2025-12-18T12:28:41Z"
   message: 'Non-live-migratable node(s) have been found on the following NodePool(s)
     attached to this Hosted Cluster: dualstack-420b. It is recommended to use live-migratable
     nodes in order to improve cluster stability and downtime. Check the reason for
     the non-live-migratability in the corresponding NodePool(s).'
   observedGeneration: 3
   reason: KubeVirtNodesNotLiveMigratable
   status: "False"
   type: KubeVirtNodesLiveMigratable
 - lastTransitionTime: "2025-12-18T12:25:31Z"
   message: ""
   observedGeneration: 3
   reason: QuorumAvailable
   status: "True"
   type: EtcdAvailable
 - lastTransitionTime: "2025-12-18T12:25:59Z"
   message: Kube APIServer deployment is available
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: KubeAPIServerAvailable
 - lastTransitionTime: "2025-12-18T12:25:04Z"
   message: All is well
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: InfrastructureReady
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: External DNS is not configured
   observedGeneration: 3
   reason: StatusUnknown
   status: Unknown
   type: ExternalDNSReachable
 - lastTransitionTime: "2025-12-18T12:24:06Z"
   message: Configuration passes validation
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: ValidHostedControlPlaneConfiguration
 - lastTransitionTime: "2025-12-18T12:25:04Z"
   message: All is well
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: ValidReleaseInfo
 - lastTransitionTime: "2025-12-18T12:25:03Z"
   message: Identity provider configuration is valid
   observedGeneration: 3
   reason: IDPConfigurationValid
   status: "True"
   type: ValidIDPConfiguration
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: Condition not found in the HCP
   observedGeneration: 3
   reason: StatusUnknown
   status: Unknown
   type: HostedClusterRestoredFromBackup
 - lastTransitionTime: "2025-12-18T12:26:00Z"
   message: The hosted control plane is available
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: Available
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: Configuration passes validation
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: ValidConfiguration
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: HostedCluster is supported by operator configuration
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: SupportedHostedCluster
 - lastTransitionTime: "2025-12-18T12:26:06Z"
   message: Ignition server deployment is available
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: IgnitionEndpointAvailable
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: Reconciliation active on resource
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: ReconciliationActive
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: Release image is valid
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: ValidReleaseImage
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: HostedCluster is at expected version
   observedGeneration: 3
   reason: AsExpected
   status: "False"
   type: Progressing
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: Required platform credentials are found
   observedGeneration: 3
   reason: AsExpected
   status: "True"
   type: PlatformCredentialsFound
 - lastTransitionTime: "2025-12-18T12:26:39Z"
   message: The update channel has not been configured.
   observedGeneration: 3
   reason: NoChannel
   status: "False"
   type: ClusterVersionRetrievedUpdates
 - lastTransitionTime: "2025-12-18T12:31:48Z"
   message: A suboptimal MTU size has been detected. Due to performance, we recommend
     setting an MTU of 9000 bytes or greater for the infra cluster that hosts the
     KubeVirt VirtualMachines. When smaller MTUs are used, the cluster will still
     operate, but network performance will be degraded due to fragmentation of the
     double encapsulation in OVN-Kubernetes.
   observedGeneration: 3
   reason: KubeVirtSuboptimalMTUDetected
   status: "False"
   type: ValidKubeVirtInfraNetworkMTU
 controlPlaneEndpoint:
   host: 10.46.255.10
   port: 6443
 ignitionEndpoint: ignition-server-clusters-dualstack-420b.apps.bm17a-tlv2.abi.cnv-qe.rhood.us
 kubeadminPassword:
   name: dualstack-420b-kubeadmin-password
 kubeconfig:
   name: dualstack-420b-admin-kubeconfig
 oauthCallbackURLTemplate: https://oauth-clusters-dualstack-420b.apps.bm17a-tlv2.abi.cnv-qe.rhood.us:443/oauth2callback/[identity-provider-name]
 payloadArch: AMD64
 version:
   availableUpdates: null
   desired:
     image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release@sha256:0cf754c8303ce925795b1a08196b2907a164d85f084e5667dd9ee1b37d592b8e
     version: 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
   history:
   - completionTime: "2025-12-18T12:40:17Z"
     image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release@sha256:0cf754c8303ce925795b1a08196b2907a164d85f084e5667dd9ee1b37d592b8e
     startedTime: "2025-12-18T12:26:32Z"
     state: Completed
     verified: false
     version: 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
   observedGeneration: 1
NodePool yaml
apiVersion: hypershift.openshift.io/v1beta1
kind: NodePool
metadata:
 annotations:
   hypershift.openshift.io/nodePoolCurrentConfig: 3fce1191
   hypershift.openshift.io/nodePoolCurrentConfigVersion: 3c1d316a
   hypershift.openshift.io/nodePoolPlatformMachineTemplate: dualstack-420b-49aab8d0
   hypershift.openshift.io/nodepool-supports-kubevirt-topology-spread-constraints: "true"
 creationTimestamp: "2025-12-18T12:23:59Z"
 finalizers:
 - hypershift.openshift.io/finalizer
 generation: 1
 labels:
   hypershift.openshift.io/auto-created-for-infra: dualstack-420b-bbfq2
 name: dualstack-420b
 namespace: clusters
 ownerReferences:
 - apiVersion: hypershift.openshift.io/v1beta1
   kind: HostedCluster
   name: dualstack-420b
   uid: 31dc9446-eedf-4e24-b9df-8602f72b5260
 resourceVersion: "14489188"
 uid: 8ba144a1-a61e-462a-9f48-bf82b32a3666
spec:
 arch: amd64
 clusterName: dualstack-420b
 management:
   autoRepair: false
   replace:
     rollingUpdate:
       maxSurge: 1
       maxUnavailable: 0
     strategy: RollingUpdate
   upgradeType: Replace
 nodeDrainTimeout: 0s
 nodeVolumeDetachTimeout: 0s
 platform:
   kubevirt:
     attachDefaultNetwork: true
     compute:
       cores: 4
       memory: 16Gi
       qosClass: Burstable
     networkInterfaceMultiqueue: Enable
     rootVolume:
       persistent:
         size: 32Gi
       type: Persistent
   type: KubeVirt
 release:
   image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release:latest
 replicas: 3
status:
 conditions:
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidArchPlatform
 - lastTransitionTime: "2025-12-18T12:32:48Z"
   observedGeneration: 1
   reason: AsExpected
   status: "False"
   type: UpdatingVersion
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: All is well
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidPlatformConfig
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   observedGeneration: 1
   reason: AsExpected
   status: "False"
   type: AutoscalingEnabled
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: UpdateManagementEnabled
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: 'Using release image: registry.build06.ci.openshift.org/ci-ln-c3ifyb2/release:latest'
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidReleaseImage
 - lastTransitionTime: "2025-12-18T12:23:59Z"
   message: Reconciliation active on resource
   observedGeneration: 1
   reason: ReconciliationActive
   status: "True"
   type: ReconciliationActive
 - lastTransitionTime: "2025-12-18T12:28:21Z"
   message: All is well
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: AllMachinesReady
 - lastTransitionTime: "2025-12-18T12:32:48Z"
   message: All is well
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: AllNodesHealthy
 - lastTransitionTime: "2025-12-18T12:25:35Z"
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidMachineConfig
 - lastTransitionTime: "2025-12-18T12:32:48Z"
   observedGeneration: 1
   reason: AsExpected
   status: "False"
   type: UpdatingConfig
 - lastTransitionTime: "2025-12-18T12:27:39Z"
   message: Payload generated successfully
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidGeneratedPayload
 - lastTransitionTime: "2025-12-18T12:28:20Z"
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ReachedIgnitionEndpoint
 - lastTransitionTime: "2025-12-18T12:26:00Z"
   message: Bootstrap KubeVirt Image is quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d6f7de2cc6c6bc49486533a2550d8180c30c7a8b2ec9cd8ec069c5d92bffd11a
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidPlatformImage
 - lastTransitionTime: "2025-12-18T12:26:00Z"
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: ValidTuningConfig
 - lastTransitionTime: "2025-12-18T12:32:48Z"
   observedGeneration: 1
   reason: AsExpected
   status: "False"
   type: UpdatingPlatformMachineTemplate
 - lastTransitionTime: "2025-12-18T12:26:00Z"
   observedGeneration: 1
   reason: AsExpected
   status: "False"
   type: AutorepairEnabled
 - lastTransitionTime: "2025-12-18T12:28:41Z"
   message: |
     3 of 3 machines are not live migratable
     Machine dualstack-420b-bssm2-vdcld: DisksNotLiveMigratable: dualstack-420b-bssm2-vdcld is not a live migratable machine: cannot migrate VMI: PVC dualstack-420b-bssm2-vdcld-rhcos is not shared, live migration requires that all PVCs must be shared (using ReadWriteMany access mode)
     Machine dualstack-420b-bssm2-fprpn: DisksNotLiveMigratable: dualstack-420b-bssm2-fprpn is not a live migratable machine: cannot migrate VMI: PVC dualstack-420b-bssm2-fprpn-rhcos is not shared, live migration requires that all PVCs must be shared (using ReadWriteMany access mode)
     Machine dualstack-420b-bssm2-9nb8z: DisksNotLiveMigratable: dualstack-420b-bssm2-9nb8z is not a live migratable machine: cannot migrate VMI: PVC dualstack-420b-bssm2-9nb8z-rhcos is not shared, live migration requires that all PVCs must be shared (using ReadWriteMany access mode)
   observedGeneration: 1
   reason: DisksNotLiveMigratable
   status: "False"
   type: KubeVirtNodesLiveMigratable
 - lastTransitionTime: "2025-12-18T12:32:48Z"
   observedGeneration: 1
   reason: AsExpected
   status: "True"
   type: Ready
 replicas: 3
 version: 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest
Cluster Operators
NAME                                       VERSION                                                AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
console                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      3m40s   
csi-snapshot-controller                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
dns                                        4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m4s    
image-registry                             4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m7s    
ingress                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      5m53s   
insights                                   4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m53s   
kube-apiserver                             4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
kube-controller-manager                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
kube-scheduler                             4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
kube-storage-version-migrator              4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m45s   
monitoring                                 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      4m26s   
network                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m52s   
node-tuning                                4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      8m12s   
openshift-apiserver                        4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
openshift-controller-manager               4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
openshift-samples                          4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      5m50s   
operator-lifecycle-manager                 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      13m     
operator-lifecycle-manager-catalog         4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      13m     
operator-lifecycle-manager-packageserver   4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      12m     
service-ca                                 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      6m50s   
storage                                    4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         False      13m     

ClusterVersion:

$ oc get clusterversion
NAME      VERSION                                                AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest   True        False         14s     Cluster version is 4.20.0-0-2025-12-18-094514-test-ci-ln-c3ifyb2-latest

/verified by @orenc @qinqon

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@orenc1
Copy link
Contributor Author

orenc1 commented Dec 18, 2025

/test e2e-metal-ipi-ovn-dualstack-bgp

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 18, 2025

/lgtm

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 18, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: kyrtapz, orenc1, qinqon

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Dec 18, 2025
@orenc1
Copy link
Contributor Author

orenc1 commented Dec 18, 2025

/cherry-pick release-4.21

@openshift-cherrypick-robot

@orenc1: once the present PR merges, I will cherry-pick it on top of release-4.21 in a new PR and assign it to you.

Details

In response to this:

/cherry-pick release-4.21

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 8d09651 and 2 for PR HEAD d4f5de4 in total

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 19, 2025

/override ci/prow/e2e-metal-ipi-ovn-ipv6-ipsec
This change does not affect the metal platform.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 19, 2025

@kyrtapz: Overrode contexts on behalf of kyrtapz: ci/prow/e2e-metal-ipi-ovn-ipv6-ipsec

Details

In response to this:

/override ci/prow/e2e-metal-ipi-ovn-ipv6-ipsec
This change does not affect the metal platform.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 41c1ac3 and 1 for PR HEAD d4f5de4 in total

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 19, 2025

unrelated to this change:
/override ci/prow/e2e-aws-ovn-windows
/override ci/prow/e2e-metal-ipi-ovn-dualstack-bgp

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 19, 2025

/test e2e-aws-ovn-hypershift-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 19, 2025

@kyrtapz: Overrode contexts on behalf of kyrtapz: ci/prow/e2e-aws-ovn-windows, ci/prow/e2e-metal-ipi-ovn-dualstack-bgp

Details

In response to this:

unrelated to this change:
/override ci/prow/e2e-aws-ovn-windows
/override ci/prow/e2e-metal-ipi-ovn-dualstack-bgp

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 19, 2025

/test e2e-aws-ovn-hypershift-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 19, 2025

@orenc1: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/security d4f5de4 link false /test security

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@kyrtapz
Copy link
Contributor

kyrtapz commented Dec 19, 2025

Hypershift job passed before on this pr.
/override ci/prow/e2e-aws-ovn-hypershift-conformance

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 19, 2025

@kyrtapz: Overrode contexts on behalf of kyrtapz: ci/prow/e2e-aws-ovn-hypershift-conformance

Details

In response to this:

Hypershift job passed before on this pr.
/override ci/prow/e2e-aws-ovn-hypershift-conformance

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-merge-bot openshift-merge-bot bot merged commit 9d8ab48 into openshift:master Dec 19, 2025
27 of 28 checks passed
@openshift-ci-robot
Copy link
Contributor

@orenc1: Jira Issue Verification Checks: Jira Issue OCPBUGS-66417
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-66417 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

The kubevirt platform in Hosted Control Planes (HCP) supports a dual-stack topology.
Adding it to the dualStackPlatforms list to avoid reconciler error when the hosted cluster is dual-stack.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-cherrypick-robot

@orenc1: new pull request created: #2861

Details

In response to this:

/cherry-pick release-4.21

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants