Scenario 4: Idempotent Behavior — Same restart-date Does Not Re-Trigger

Objective: Verify that repeated reconciles with the same annotation value do not cause pod flapping.

Cluster: brcox-88531-hc on Azure dev mgmt cluster — HCP namespace: clusters-brcox-88531-hc

Release image: registry.build10.ci.openshift.org/ci-ln-1qhpr62/release:latest (CNO PR #3030 + HyperShift PR #8751)

Note: The annotation was already set to 2026-06-17T11:43:15Z during Scenario 2. This test re-applies the same value and verifies no new rollout.

Overall Scenario 4: PASS
StepCheckResultEvidence
1Record current pod state (post-Scenario 2 restart)PASSAll 4 operands at gen 2, restart-date 2026-06-17T11:43:15Z
2Re-apply same restart-date annotation valuePASSRe-applied 2026-06-17T11:43:15Z with --overwrite
3Wait 3+ minutes (CNO reconcile cycle)PASSWaited 11:49:25Z → 11:52:45Z (3m20s, >1 CNO reconcile cycle)
4Pods have NOT restarted againPASSAll 4 pods same name, timestamp, gen still 2; no new ReplicaSets

Evidence

Step 1 — Current pod state before re-applying same annotation
$ oc get deployment -n clusters-brcox-88531-hc \
    cloud-network-config-controller multus-admission-controller \
    network-node-identity ovnkube-control-plane \
    -o jsonpath='{range .items[*]}Deployment: {.metadata.name}  gen: {.metadata.generation}  restart-date: {.spec.template.metadata.annotations.hypershift\.openshift\.io/restart-date}
{end}'
Deployment: cloud-network-config-controller  gen: 2  restart-date: 2026-06-17T11:43:15Z
Deployment: multus-admission-controller  gen: 2  restart-date: 2026-06-17T11:43:15Z
Deployment: network-node-identity  gen: 2  restart-date: 2026-06-17T11:43:15Z
Deployment: ovnkube-control-plane  gen: 2  restart-date: 2026-06-17T11:43:15Z

$ oc get pods -n clusters-brcox-88531-hc \
    -o custom-columns='NAME:.metadata.name,CREATED:.metadata.creationTimestamp' \
    | grep -E "multus|network-node-identity|ovnkube-control-plane|cloud-network-config"
cloud-network-config-controller-76dd98d985-k6zvs      2026-06-17T11:45:28Z
multus-admission-controller-5fd559d858-75t5j          2026-06-17T11:45:35Z
network-node-identity-85d874994d-pd9ks                2026-06-17T11:45:50Z
ovnkube-control-plane-7dbccb64d4-g8stz                2026-06-17T11:45:44Z
Step 2 — Re-apply same annotation value
$ oc annotate hostedcluster -n clusters brcox-88531-hc \
    'hypershift.openshift.io/restart-date=2026-06-17T11:43:15Z' --overwrite
hostedcluster.hypershift.openshift.io/brcox-88531-hc annotated
Step 4 — Pod state after 3+ minutes (captured at 11:52 UTC)
$ oc get deployment -n clusters-brcox-88531-hc \
    cloud-network-config-controller multus-admission-controller \
    network-node-identity ovnkube-control-plane \
    -o jsonpath='{range .items[*]}Deployment: {.metadata.name}  gen: {.metadata.generation}  restart-date: {.spec.template.metadata.annotations.hypershift\.openshift\.io/restart-date}
{end}'
Deployment: cloud-network-config-controller  gen: 2  restart-date: 2026-06-17T11:43:15Z
Deployment: multus-admission-controller  gen: 2  restart-date: 2026-06-17T11:43:15Z
Deployment: network-node-identity  gen: 2  restart-date: 2026-06-17T11:43:15Z
Deployment: ovnkube-control-plane  gen: 2  restart-date: 2026-06-17T11:43:15Z

$ oc get pods -n clusters-brcox-88531-hc \
    -o custom-columns='NAME:.metadata.name,READY:.status.containerStatuses[0].ready,RESTARTS:.status.containerStatuses[0].restartCount,CREATED:.metadata.creationTimestamp' \
    | grep -E "multus|network-node-identity|ovnkube-control-plane|cloud-network-config"
cloud-network-config-controller-76dd98d985-k6zvs      true    0          2026-06-17T11:45:28Z
multus-admission-controller-5fd559d858-75t5j          true    0          2026-06-17T11:45:35Z
network-node-identity-85d874994d-pd9ks                true    0          2026-06-17T11:45:50Z
ovnkube-control-plane-7dbccb64d4-g8stz                true    0          2026-06-17T11:45:44Z

# All 4 pods UNCHANGED after re-applying the same restart-date value.
# Generations still 2, no new ReplicaSets created.
# Idempotent behavior confirmed.

$ oc get rs -n clusters-brcox-88531-hc \
    -o custom-columns='NAME:.metadata.name,DESIRED:.spec.replicas,CURRENT:.status.replicas,READY:.status.readyReplicas,CREATED:.metadata.creationTimestamp' \
    | grep -E "multus|network-node-identity|ovnkube-control-plane|cloud-network-config"
cloud-network-config-controller-5c7997f74f      0         0         <none>   2026-06-17T11:13:20Z
cloud-network-config-controller-76dd98d985      1         1         1        2026-06-17T11:45:28Z
multus-admission-controller-5fd559d858          1         1         1        2026-06-17T11:45:35Z
multus-admission-controller-6d7b6dfc49          0         0         <none>   2026-06-17T11:13:27Z
network-node-identity-85d874994d                1         1         1        2026-06-17T11:45:50Z
network-node-identity-b5d5546d8                 0         0         <none>   2026-06-17T11:13:42Z
ovnkube-control-plane-6c56d86876                0         0         <none>   2026-06-17T11:13:36Z
ovnkube-control-plane-7dbccb64d4                1         1         1        2026-06-17T11:45:44Z
← Scenario 3 Scenario 5 →