diff --git a/charts/argo-cd/Chart.yaml b/charts/argo-cd/Chart.yaml index 5a77e9b1d..665d997f0 100644 --- a/charts/argo-cd/Chart.yaml +++ b/charts/argo-cd/Chart.yaml @@ -3,7 +3,7 @@ appVersion: v3.2.5 kubeVersion: ">=1.25.0-0" description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes. name: argo-cd -version: 9.3.4 +version: 9.3.5 home: https://github.com/argoproj/argo-helm icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png sources: @@ -28,3 +28,5 @@ annotations: artifacthub.io/changes: | - kind: changed description: Bump argo-cd to v3.2.5 + - kind: added + description: Added httproute support to ApplicationSet controller webhook diff --git a/charts/argo-cd/README.md b/charts/argo-cd/README.md index dcd003b5e..979bd84f3 100644 --- a/charts/argo-cd/README.md +++ b/charts/argo-cd/README.md @@ -1675,6 +1675,12 @@ If you use an External Redis (See Option 3 above), this Job is not deployed. | applicationSet.extraEnvFrom | list | `[]` (See [values.yaml]) | envFrom to pass to the ApplicationSet controller | | applicationSet.extraVolumeMounts | list | `[]` | List of extra mounts to add (normally used with extraVolumes) | | applicationSet.extraVolumes | list | `[]` | List of extra volumes to add | +| applicationSet.httproute.annotations | object | `{}` | Additional HTTPRoute annotations | +| applicationSet.httproute.enabled | bool | `false` | Enable HTTPRoute resource for Argo CD Applicationset Webhook (Gateway API) | +| applicationSet.httproute.hostnames | list | `[]` (See [values.yaml]) | List of hostnames for the HTTPRoute | +| applicationSet.httproute.labels | object | `{}` | Additional HTTPRoute labels | +| applicationSet.httproute.parentRefs | list | `[]` (See [values.yaml]) | Gateway API parentRefs for the HTTPRoute | +| applicationSet.httproute.rules | list | `[]` (See [values.yaml]) | HTTPRoute rules configuration | | applicationSet.image.imagePullPolicy | string | `""` (defaults to global.image.imagePullPolicy) | Image pull policy for the ApplicationSet controller | | applicationSet.image.repository | string | `""` (defaults to global.image.repository) | Repository to use for the ApplicationSet controller | | applicationSet.image.tag | string | `""` (defaults to global.image.tag) | Tag to use for the ApplicationSet controller | diff --git a/charts/argo-cd/templates/argocd-applicationset/httproute.yaml b/charts/argo-cd/templates/argocd-applicationset/httproute.yaml new file mode 100644 index 000000000..1f1309889 --- /dev/null +++ b/charts/argo-cd/templates/argocd-applicationset/httproute.yaml @@ -0,0 +1,43 @@ +{{- if .Values.applicationSet.httproute.enabled -}} +{{- $fullName := include "argo-cd.applicationSet.fullname" . -}} +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: {{ include "argo-cd.applicationSet.fullname" . }} + namespace: {{ include "argo-cd.namespace" . }} + labels: + {{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }} + {{- with .Values.applicationSet.httproute.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.applicationSet.httproute.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + parentRefs: + {{- with .Values.applicationSet.httproute.parentRefs }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.applicationSet.httproute.hostnames }} + hostnames: + {{- toYaml . | nindent 4 }} + {{- end }} + rules: + {{- range .Values.applicationSet.httproute.rules }} + {{- with .matches }} + - matches: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .filters }} + filters: + {{- toYaml . | nindent 8 }} + {{- end }} + backendRefs: + - group: '' + kind: Service + name: {{ include "argo-cd.applicationSet.fullname" . }} + port: {{ .Values.applicationSet.service.port }} + weight: 1 + {{- end }} +{{- end }} diff --git a/charts/argo-cd/values.yaml b/charts/argo-cd/values.yaml index 3bf32b476..4816e1b70 100644 --- a/charts/argo-cd/values.yaml +++ b/charts/argo-cd/values.yaml @@ -3511,6 +3511,45 @@ applicationSet: # - secretName: argocd-applicationset-tls # hosts: # - argocd-applicationset.example.com + + ## Gateway API HTTPRoute for the Git Generator webhook + ## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration) + # NOTE: Gateway API support is in EXPERIMENTAL status + # Support depends on your Gateway controller implementation + # Some controllers may require additional configuration (e.g., BackendTLSPolicy for HTTPS backends) + # Refer to https://gateway-api.sigs.k8s.io/implementations/ for controller-specific details + httproute: + # -- Enable HTTPRoute resource for Argo CD Applicationset Webhook (Gateway API) + enabled: false + # -- Additional HTTPRoute labels + labels: {} + # -- Additional HTTPRoute annotations + annotations: {} + # -- Gateway API parentRefs for the HTTPRoute + ## Must reference an existing Gateway + # @default -- `[]` (See [values.yaml]) + parentRefs: [] + # - name: example-gateway + # namespace: example-gateway-namespace + # sectionName: https + # -- List of hostnames for the HTTPRoute + # @default -- `[]` (See [values.yaml]) + hostnames: [] + # - argocd.example.com + # -- HTTPRoute rules configuration + # @default -- `[]` (See [values.yaml]) + rules: + - matches: + - path: + type: PathPrefix + value: /api/webhook + # filters: [] + # - type: RequestHeaderModifier + # requestHeaderModifier: + # add: + # - name: X-Custom-Header + # value: custom-value + # -- Enable ApplicationSet in any namespace feature allowAnyNamespace: false