-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Description
Checklist:
- I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
- I've included steps to reproduce the bug.
- I've pasted the output of
argocd version.
ArgoCD seems to be removing spec.infrastructure.parametersRef.group from the resource below. This causes the following error:
Gateway.gateway.networking.k8s.io "egress-istio-waypoint" is invalid: [spec.infrastructure.parametersRef.group: Required value, <nil>: Invalid value: "null": some validation rules were not checked because the object was invalid; correct the existing errors to complete validation]
Gateway:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: egress-istio-waypoint
namespace: istio-egress
annotations:
argocd.argoproj.io/sync-options: Validate=false
spec:
gatewayClassName: istio-waypoint
infrastructure:
parametersRef:
group: ""
kind: ConfigMap
name: egress-istio-waypoint-config
listeners:
- name: mesh
protocol: HBONE
port: 15008ConfigMap:
apiVersion: v1
data:
deployment: |
spec:
replicas: 3
template:
spec:
containers:
- name: istio-proxy
resources:
limits:
memory: 256Mi
requests:
cpu: 50m
memory: 128Mi
horizontalPodAutoscaler: |
spec:
minReplicas: 2
maxReplicas: 9
scaleTargetRef:
kind: Deployment
name: egress
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
podDisruptionBudget: |
spec:
minAvailable: 1
matchLabels:
gateway.networking.k8s.io/gateway-name: egress
kind: ConfigMap
metadata:
name: egress-istio-waypoint-config
namespace: istio-egressThis issue does not occur when trying to apply this resource via kubectl apply, so it appears to be something specific within ArgoCD. Additionally, the issue is not that it is treating an empty string as invalid. Any value placed in Group results in the same error.
Server-Side for Client-Side apply does not seem to be a factor here, as both result in the same error.
Here are some Istio docs showing support for this field: https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment
Here are the Gateway API docs that mention this field:
- https://gateway-api.sigs.k8s.io/reference/1.4/spec/#localparametersreference
- https://gateway-api.sigs.k8s.io/reference/1.4/spec/#group
ArgoCD Version: v3.1.8+becb020
ArgoCD Cluster Version: v1.33.5-eks-3cfe0ce
Destination Cluster Version: v1.33.5-eks-3cfe0ce
To Reproduce
- Install the Gateway API CRDs to target cluster:
kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml - Install Istio in Ambient mode to target cluster:
istioctl install --set profile=ambient --skip-confirmation - Create a simple Application that generates the above Gateway and ConfigMap.
Expected behavior
ArgoCD should create the gateway as specified.
Screenshots
Diff shown in ArgoCD UI:
Error:
Version
argocd: v3.1.8+becb020
BuildDate: 2025-09-30T15:33:46Z
GitCommit: becb020064fe9be5381bf6e5818ff8587ca8f377
GitTreeState: clean
GoVersion: go1.24.6
Compiler: gc
Platform: linux/amd64
Logs
Couldn't find anything besides the error see in the UI.