Skip to content

Commit 7c7481c

Browse files
committed
fix(hcco): OCPBUGS-84939: [release-4.21] add CP pull-secret watches for in-place propagation
Add watches on the pull-secret in the control plane namespace so that changes are propagated in-place without requiring a rollout. This includes setting up a global pull-secret controller and ensuring resources are updated when the pull-secret changes.
1 parent 2a1af0d commit 7c7481c

21 files changed

Lines changed: 260 additions & 76 deletions

File tree

api/hypershift/v1beta1/hostedcluster_types.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -652,10 +652,11 @@ type HostedClusterSpec struct {
652652
// pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
653653
// If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
654654
// TODO(alberto): Signal this in a condition.
655-
// This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
656-
// and it will be injected into the container runtime of all NodePools.
657-
// Changing this value will trigger a rollout for all existing NodePools in the cluster.
658-
// Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
655+
// This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
656+
// Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
657+
// Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
658+
// In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
659+
// will still propagate the updated credentials down to the guest cluster and kubelet config.
659660
// +required
660661
// +rollout
661662
// TODO(alberto): have our own local reference type to include our opinions and avoid transparent changes.

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AAA_ungated.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5359,10 +5359,11 @@ spec:
53595359
description: |-
53605360
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
53615361
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5362-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5363-
and it will be injected into the container runtime of all NodePools.
5364-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5365-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5362+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5363+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5364+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5365+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5366+
will still propagate the updated credentials down to the guest cluster and kubelet config.
53665367
properties:
53675368
name:
53685369
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AutoNodeKarpenter.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5389,10 +5389,11 @@ spec:
53895389
description: |-
53905390
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
53915391
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5392-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5393-
and it will be injected into the container runtime of all NodePools.
5394-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5395-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5392+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5393+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5394+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5395+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5396+
will still propagate the updated credentials down to the guest cluster and kubelet config.
53965397
properties:
53975398
name:
53985399
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5362,10 +5362,11 @@ spec:
53625362
description: |-
53635363
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
53645364
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5365-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5366-
and it will be injected into the container runtime of all NodePools.
5367-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5368-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5365+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5366+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5367+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5368+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5369+
will still propagate the updated credentials down to the guest cluster and kubelet config.
53695370
properties:
53705371
name:
53715372
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDC.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5699,10 +5699,11 @@ spec:
56995699
description: |-
57005700
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
57015701
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5702-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5703-
and it will be injected into the container runtime of all NodePools.
5704-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5705-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5702+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5703+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5704+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5705+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5706+
will still propagate the updated credentials down to the guest cluster and kubelet config.
57065707
properties:
57075708
name:
57085709
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5853,10 +5853,11 @@ spec:
58535853
description: |-
58545854
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
58555855
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5856-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5857-
and it will be injected into the container runtime of all NodePools.
5858-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5859-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5856+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5857+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5858+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5859+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5860+
will still propagate the updated credentials down to the guest cluster and kubelet config.
58605861
properties:
58615862
name:
58625863
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/GCPPlatform.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5641,10 +5641,11 @@ spec:
56415641
description: |-
56425642
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
56435643
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5644-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5645-
and it will be injected into the container runtime of all NodePools.
5646-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5647-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5644+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5645+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5646+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5647+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5648+
will still propagate the updated credentials down to the guest cluster and kubelet config.
56485649
properties:
56495650
name:
56505651
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5364,10 +5364,11 @@ spec:
53645364
description: |-
53655365
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
53665366
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5367-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5368-
and it will be injected into the container runtime of all NodePools.
5369-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5370-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5367+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5368+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5369+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5370+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5371+
will still propagate the updated credentials down to the guest cluster and kubelet config.
53715372
properties:
53725373
name:
53735374
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ImageStreamImportMode.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5360,10 +5360,11 @@ spec:
53605360
description: |-
53615361
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
53625362
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5363-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5364-
and it will be injected into the container runtime of all NodePools.
5365-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5366-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5363+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5364+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5365+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5366+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5367+
will still propagate the updated credentials down to the guest cluster and kubelet config.
53675368
properties:
53685369
name:
53695370
default: ""

api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/KMSEncryptionProvider.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5418,10 +5418,11 @@ spec:
54185418
description: |-
54195419
pullSecret is a local reference to a Secret that must have a ".dockerconfigjson" key whose content must be a valid Openshift pull secret JSON.
54205420
If the reference is set but none of the above requirements are met, the HostedCluster will enter a degraded state.
5421-
This pull secret will be part of every payload generated by the controllers for any NodePool of the HostedCluster
5422-
and it will be injected into the container runtime of all NodePools.
5423-
Changing this value will trigger a rollout for all existing NodePools in the cluster.
5424-
Changing the content of the secret inplace will not trigger a rollout and might result in unpredictable behaviour.
5421+
This pull secret is included in NodePool ignition/bootstrap payloads and applied to the container runtime when nodes provision.
5422+
Changing this value will trigger a rollout for all existing NodePools in the cluster (for both replace and inplace upgrade types).
5423+
Updating the referenced Secret's data in place (without changing this reference) does not trigger that rollout.
5424+
In AWS and Azure NodePools using the Replace upgrade strategy, the Secret's data in place changes
5425+
will still propagate the updated credentials down to the guest cluster and kubelet config.
54255426
properties:
54265427
name:
54275428
default: ""

0 commit comments

Comments
 (0)