Previously. Problem statement: An ArgoCD application shows a persistent diff on a PodDisruptionBudget — spec.selector.matchExpressions is in the rendered manifest but missing from the live object. Sync doesn’t clear it. Hard refresh doesn’t clear it. Syncing with replace or with server-side apply or with force doesn’t clear it. Ugh! policy/PodDisruptionBudget/default/my-super-cool-app: selector: matchExpressions: - key: job-name operator: DoesNotExist matchLabels: release: my-super-cool-app The chart was updated to add matchExpressions to the PDB selector. The diff shows up. Sync runs. Diff stays. First idea: Kubernetes mutates PDB selectors server-side — no. The PDB registry strategy in pkg/registry/policy/poddisruptionbudget/strategy.go only touches Status and Generation. No selector mutation, no admission plugin in tree that injects this. Patterns like matchExpressions: [{key: job-name, operator: DoesNotExist}] come from chart authors, not from K8s. This is all according to the…
No comments yet. Log in to reply on the Fediverse. Comments will appear here.