Scenario 2: CNCC Restarts on restart-date Annotation (Primary Bug Fix)

Objective: Verify that cloud-network-config-controller restarts when hypershift.openshift.io/restart-date is set on the HostedCluster.

Maps to: JIRA reproduction steps and acceptance criteria

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)

Overall Scenario 2: PASS
StepCheckResultEvidence
1 CNCC pod running in HCP namespace PASS cloud-network-config-controller-5c7997f74f-7hllb Running
2 Record pod name and creation timestamp (before) PASS Pod 5c7997f74f-7hllb created 2026-06-17T11:13:20Z
3 Set restart-date annotation on HostedCluster PASS Set to 2026-06-17T11:43:15Z; annotation propagated to HCP
4 Wait up to 5 minutes for CNO reconcile PASS New pod appeared ~2 min after annotation set (CNO ResyncPeriod = 3 min)
5 CNCC pod has newer creation timestamp PASS 11:13:20Z11:45:28Z
6 CNCC pod name changed (new ReplicaSet rolled out) PASS 5c7997f74f-7hllb76dd98d985-k6zvs (new RS)

Evidence

Steps 1-2 — CNCC pod before annotation
$ 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 cloud-network-config
cloud-network-config-controller-5c7997f74f-7hllb     true    0          2026-06-17T11:13:20Z
Step 3 — Set restart-date annotation
$ RESTART_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# RESTART_DATE=2026-06-17T11:43:15Z

$ oc annotate hostedcluster -n clusters brcox-88531-hc \
    "hypershift.openshift.io/restart-date=$RESTART_DATE" --overwrite
hostedcluster.hypershift.openshift.io/brcox-88531-hc annotated

# Verify annotation propagated to HCP:
$ oc get hcp brcox-88531-hc -n clusters-brcox-88531-hc \
    -o jsonpath='{.metadata.annotations.hypershift\.openshift\.io/restart-date}'
2026-06-17T11:43:15Z
Steps 4-6 — CNCC pod after annotation (captured at 11:47 UTC)
$ 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 cloud-network-config
cloud-network-config-controller-76dd98d985-k6zvs      true    0          2026-06-17T11:45:28Z

# New ReplicaSet rolled out: 5c7997f74f -> 76dd98d985
# Creation timestamp changed: 11:13:20Z -> 11:45:28Z
# Pod restarted ~2 minutes after restart-date annotation was set

# Deployment now at generation 2 with restart-date on pod template:
$ oc get deployment cloud-network-config-controller -n clusters-brcox-88531-hc \
    -o jsonpath='generation: {.metadata.generation}  restart-date: {.spec.template.metadata.annotations.hypershift\.openshift\.io/restart-date}'
generation: 2  restart-date: 2026-06-17T11:43:15Z

# ReplicaSet history showing old RS scaled down:
$ oc get rs -n clusters-brcox-88531-hc | grep 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
← Scenario 1 Scenario 3 →