You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| features.alwaysUpdatePulsarResource | bool |`false`|Re-apply observed managed Pulsar resources even when their Kubernetes resources are already Ready. Prefer temporary use for upgrade remediation because it increases Pulsar admin API load on reconciliations and resyncs.|
62
62
| fullnameOverride | string |`""`| It will override the name of deployment |
63
63
| image.manager.registry | string |`"docker.io"`| Specififies the registry of images, especially when user want to use a different image hub |
64
64
| image.manager.repository | string |`"streamnative/pulsar-resources-operator"`| The full repo name for image. |
Copy file name to clipboardExpand all lines: charts/pulsar-resources-operator/values.yaml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ imagePullSecrets: []
41
41
# - name: test
42
42
43
43
features:
44
-
#Enable to force always sync k8s resource status to pulsar.
44
+
#-- Re-apply observed managed Pulsar resources even when their Kubernetes resources are already Ready. Prefer temporary use for upgrade remediation because it increases Pulsar admin API load on reconciliations and resyncs.
45
45
alwaysUpdatePulsarResource: false
46
46
# resyncPeriod determines the minimum frequency at which watched resources are reconciled. The unit is hour, default value is 10 hours.
You can update the namespace policies by editing the `namespace.yaml` file and then applying it again using `kubectl apply -f namespace.yaml`. This allows you to modify various settings of the Pulsar namespace.
542
542
543
+
If a namespace was already `Ready=True` before an operator upgrade introduced a new spec field, that new field may not be applied until the resource is reconciled again. See [Pulsar resource lifecycle reconciliation skip behavior](pulsar_resource_lifecycle.md#reconciliation-skip-behavior) for the skip contract and recovery options, including temporary use of `ALWAYS_UPDATE_PULSAR_RESOURCE`.
544
+
543
545
Please note the following important points:
544
546
545
547
1. The fields `name` and `bundles` cannot be updated after the namespace is created. These are immutable properties of the namespace.
Copy file name to clipboardExpand all lines: docs/pulsar_resource_lifecycle.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,6 +107,18 @@ When you need to delete the actual Pulsar resource (tenant, namespace, or topic)
107
107
108
108
Always ensure you have the necessary permissions and have considered the implications of deleting resources before proceeding with any deletion operation.
109
109
110
+
## Reconciliation Skip Behavior
111
+
112
+
For normal steady-state operation, the operator skips applying Pulsar API changes for a managed child resource when its Kubernetes status already has `Ready=True` and `status.observedGeneration` matches `metadata.generation`. This avoids unnecessary Pulsar admin requests during resyncs.
113
+
114
+
After upgrading the operator, a new spec field may be introduced while existing custom resources remain `Ready=True` at the same generation. In that case, the new field is not applied to Pulsar until the resource is reconciled again. Recovery options are:
115
+
116
+
1. Update the custom resource spec or metadata so Kubernetes increments the resource generation, then wait for `Ready=True` again.
117
+
2. Temporarily enable `ALWAYS_UPDATE_PULSAR_RESOURCE=true` (Helm: `features.alwaysUpdatePulsarResource=true`) so the operator re-applies observed managed child resources even when they are already Ready.
118
+
3. Disable `ALWAYS_UPDATE_PULSAR_RESOURCE` after remediation unless continuous re-application is intentionally required.
119
+
120
+
Use the always-update option carefully. It can apply all observed managed resources on every reconciliation or resync and may increase Pulsar broker/admin API load. The `PulsarConnection` deletion guard is still preserved: a deleting connection is kept until its remaining managed child resources are removed.
121
+
110
122
## Changing the Policy
111
123
112
124
You can change the policy of a Pulsar resource by updating the `lifecyclePolicy` field in the corresponding Kubernetes custom resource. However, there are important considerations to keep in mind when changing the policy:
0 commit comments