chore(kaap): upgrade operator + CRDs to 0.4.4 for modern k8s (1.33+)#7
Open
dcbouius wants to merge 1 commit into
Open
chore(kaap): upgrade operator + CRDs to 0.4.4 for modern k8s (1.33+)#7dcbouius wants to merge 1 commit into
dcbouius wants to merge 1 commit into
Conversation
KAAP 0.3.0 cannot reconcile on Kubernetes 1.33+ (incl. GKE 1.35): its bundled fabric8 client fails to parse the API server /version response (Unrecognized field "emulationMajor"), so the operator throws before creating any Pulsar resources — silently inert on upgraded clusters. Brings helm/kaap to upstream 0.4.4 (fork carried no local deltas): - operator image datastax/kaap:0.3.0 -> 0.4.4 (newer fabric8 client) - refreshed all 8 CRDs to 0.4.4 (declare securityContext etc. that the 0.4.4 operator emits; stale CRDs stall reconcile on typed-patch errors) - split RBAC into cluster-scoped/namespace-scoped, gated on new operator.watchAllNamespaces flag (default false = namespaced watch, same scope as before). configmap sets JOSDK_WATCH_CURRENT accordingly - operator template gains nodeSelector/tolerations passthrough - bump kaap-stack dependency to 0.4.x + regenerate Chart.lock NOTE: helm does not upgrade CRDs on `helm upgrade` (crds/ only installs on first install). Existing clusters must `kubectl apply --server-side` the 0.4.4 CRDs before/with the operator bump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
KAAP 0.3.0 cannot reconcile against a Kubernetes 1.33+ API server (incl. GKE 1.35). Its bundled fabric8 kubernetes-client parses the
/versionresponse strictly and throwsUnrecognizedPropertyException: Unrecognized field "emulationMajor"before creating/reconciling any Pulsar resource. The operator pod stays Ready with 0 restarts but is silently inert — this is why KAAP went dead on upgraded prod EKS, and it blocks the GKE migration.What
Brings
helm/kaapto upstream 0.4.4 (the fork carried no local deltas from 0.3.0):datastax/kaap:0.3.0→ 0.4.4 (newer fabric8 client toleratesemulationMajor)securityContextetc. that the 0.4.4 operator emits; stale CRDs stall reconcile withfield not declared in schematemplates/rbac/{cluster-scoped,namespace-scoped}.yaml, gated on a newoperator.watchAllNamespacesflag (defaultfalse= namespaced watch, same scope as before).configmap.yamlsetsJOSDK_WATCH_CURRENTwhen namespacednodeSelector/tolerationspassthroughkaap-stackdependency to0.4.x; regenerate Chart.lockhelm lintclean; umbrella renders operator 0.4.4 + namespaced Role carrying thekaap.oss.datastax.comCR grants.Validated
GKE 1.35 dev: 0.4.4 operator + 0.4.4 CRDs stood up a healthy Pulsar (zk+bookie+broker+bastion,
pulsar-admin brokers healthcheck= ok), then LangStream + a sample app passed an end-to-end produce→agent→consume test.crds/installs only on first install). Apply the 0.4.4 CRDs manually first — server-side is required (they exceed the client-side annotation limit):securityContextdiff and trigger a rolling restart. Treat as a maintenance window and let each tier recover before the next. (Not exercised in the demo — fresh cluster.)operator.watchAllNamespaces: falsefor prod to preserve the current namespaced watch scope.