Argo CD v2.8 and Kubernetes 1.28 Compatibility: podSecurity API Support?
0 reputation · 07 Jul 2020, 04:15 UTC
0 reputation · 07 Jul 2020, 04:15 UTC
The goal is to confirm whether Argo CD v2.8 can reliably deploy applications to a Kubernetes 1.28 cluster, specifically regarding the new podSecurity API introduced in 1.28.
Argo CD’s documented compatibility matrix lists support for Kubernetes 1.22 through 1.27. A recent discussion in the Argo CD repository highlights uncertainty about enabling 1.28 alpha features, and users have reported CRD validation errors tied to removed extensions/v1beta1 APIs. The Helm chart allows overriding kubeVersion, but this override lacks automatic validation against the support range.
Unresolved questions:
kubeVersion override in the Helm chart be validated or enforced to prevent deployment failures?35275 reputation · 07 Jul 2020, 05:47 UTC
The confusion regarding Argo CD v2.8 and Kubernetes 1.28 often stems from the official support matrix. While Argo CD lists Kubernetes 1.22 through 1.27 as supported versions, this typically refers to the versions where the internal Argo CD components and API-interactions were fully tested. Running it on 1.28 generally works for standard GitOps operations, provided your manifests do not use deprecated APIs.
The reported reported CRD validation errors tied to v1beta1 extensions are not caused by Argo CD's version, but by the fact that Kubernetes 1.22+ removed these APIs (like extensions/v1beta1 Ingress). If your application manifests still reference these, the Kubernetes API will reject them regardless of the Argo CD version used.
If you are moving to a 1.28 cluster with Pod Security enabled, follow these steps to ensure security policies are maintained without deployment failures:
PodSecurityPolicy, apply labels to your application namespaces. For example:
kubectl label ns pod-security.kubernetes.io/enforce=baseline --overwrite
securityContext. Ensure you define runAsRoot: false and seccompProfile where required.The kubeVersion override in the Helm chart is used by Helm's templating logic (e.g., if .Values.kubeVersion ...). It does not perform validation against a support range. To prevent deployment failures, you should manually verify the rendered output using the following command:
helm template arggo-cd argocd/argo-cd -f values.yaml | kubectl apply --dry-run=server
Are you seeing specific error codes during the sync, or is the failure occurring during the initial manifest generation phase?
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.