feat(argo-cd): Add compatibility to v1 Ingress (#637)
* feat(argo-cd): Add compatibility to v1 Ingress Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> * chore(argo-cd): Add spaces to improve readability Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> * feat(argo-cd): Bump chart version Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> * fix: Apply review changes Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Co-authored-by: Oliver Bähler <oliverbaehler@hotmail.com> Co-authored-by: Oliver Bähler <oliverbaehler@hotmail.com>
This commit is contained in:
parent
abcd61717f
commit
49ccf4ae8a
6 changed files with 119 additions and 44 deletions
|
@ -2,7 +2,7 @@ apiVersion: v2
|
||||||
appVersion: 2.0.0
|
appVersion: 2.0.0
|
||||||
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
||||||
name: argo-cd
|
name: argo-cd
|
||||||
version: 3.1.2
|
version: 3.2.0
|
||||||
home: https://github.com/argoproj/argo-helm
|
home: https://github.com/argoproj/argo-helm
|
||||||
icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png
|
icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png
|
||||||
keywords:
|
keywords:
|
||||||
|
|
|
@ -227,12 +227,14 @@ Helm v3 has removed the `install-crds` hook so CRDs are now populated by files i
|
||||||
| server.ingress.enabled | Enable an ingress resource for the server | `false` |
|
| server.ingress.enabled | Enable an ingress resource for the server | `false` |
|
||||||
| server.ingress.hosts | List of ingress hosts | `[]` |
|
| server.ingress.hosts | List of ingress hosts | `[]` |
|
||||||
| server.ingress.labels | Additional ingress labels. | `{}` |
|
| server.ingress.labels | Additional ingress labels. | `{}` |
|
||||||
|
| server.ingress.ingressClassName | Defines which ingress controller will implement the resource | `""` |
|
||||||
| server.ingress.tls | Ingress TLS configuration. | `[]` |
|
| server.ingress.tls | Ingress TLS configuration. | `[]` |
|
||||||
| server.ingress.https | Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` | `false` |
|
| server.ingress.https | Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` | `false` |
|
||||||
| server.ingressGrpc.annotations | Additional ingress annotations for dedicated [gRPC-ingress] | `{}` |
|
| server.ingressGrpc.annotations | Additional ingress annotations for dedicated [gRPC-ingress] | `{}` |
|
||||||
| server.ingressGrpc.enabled | Enable an ingress resource for the server for dedicated [gRPC-ingress] | `false` |
|
| server.ingressGrpc.enabled | Enable an ingress resource for the server for dedicated [gRPC-ingress] | `false` |
|
||||||
| server.ingressGrpc.hosts | List of ingress hosts for dedicated [gRPC-ingress] | `[]` |
|
| server.ingressGrpc.hosts | List of ingress hosts for dedicated [gRPC-ingress] | `[]` |
|
||||||
| server.ingressGrpc.labels | Additional ingress labels for dedicated [gRPC-ingress] | `{}` |
|
| server.ingressGrpc.labels | Additional ingress labels for dedicated [gRPC-ingress] | `{}` |
|
||||||
|
| server.ingressGrpc.ingressClassName | Defines which ingress controller will implement the resource [gRPC-ingress] | `""` |
|
||||||
| server.ingressGrpc.tls | Ingress TLS configuration for dedicated [gRPC-ingress] | `[]` |
|
| server.ingressGrpc.tls | Ingress TLS configuration for dedicated [gRPC-ingress] | `[]` |
|
||||||
| server.route.enabled | Enable a OpenShift route for the server | `false` |
|
| server.route.enabled | Enable a OpenShift route for the server | `false` |
|
||||||
| server.route.hostname | Hostname of OpenShift route | `""` |
|
| server.route.hostname | Hostname of OpenShift route | `""` |
|
||||||
|
|
|
@ -138,4 +138,17 @@ app.kubernetes.io/instance: {{ .context.Release.Name }}
|
||||||
{{- if .component }}
|
{{- if .component }}
|
||||||
app.kubernetes.io/component: {{ .component }}
|
app.kubernetes.io/component: {{ .component }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the appropriate apiVersion for ingress
|
||||||
|
*/}}
|
||||||
|
{{- define "argo-cd.ingress.apiVersion" -}}
|
||||||
|
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||||
|
{{- print "extensions/v1beta1" -}}
|
||||||
|
{{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||||
|
{{- print "networking.k8s.io/v1beta1" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- print "networking.k8s.io/v1" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
|
@ -3,11 +3,7 @@
|
||||||
{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingressGrpc.https -}}
|
{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingressGrpc.https -}}
|
||||||
{{- $paths := .Values.server.ingressGrpc.paths -}}
|
{{- $paths := .Values.server.ingressGrpc.paths -}}
|
||||||
{{- $extraPaths := .Values.server.ingressGrpc.extraPaths -}}
|
{{- $extraPaths := .Values.server.ingressGrpc.extraPaths -}}
|
||||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
apiVersion: {{ include "argo-cd.ingress.apiVersion" . }}
|
||||||
apiVersion: networking.k8s.io/v1beta1
|
|
||||||
{{ else }}
|
|
||||||
apiVersion: extensions/v1beta1
|
|
||||||
{{ end -}}
|
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
{{- if .Values.server.ingressGrpc.annotations }}
|
{{- if .Values.server.ingressGrpc.annotations }}
|
||||||
|
@ -19,41 +15,74 @@ metadata:
|
||||||
name: {{ template "argo-cd.server.fullname" . }}-grpc
|
name: {{ template "argo-cd.server.fullname" . }}-grpc
|
||||||
labels:
|
labels:
|
||||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
|
{{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
|
||||||
{{- if .Values.server.ingressGrpc.labels }}
|
{{- if .Values.server.ingressGrpc.labels }}
|
||||||
{{- toYaml .Values.server.ingressGrpc.labels | nindent 4 }}
|
{{- toYaml .Values.server.ingressGrpc.labels | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
{{- with .Values.server.ingress.ingressClassName }}
|
||||||
|
ingressClassName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
{{- if .Values.server.ingressGrpc.hosts }}
|
{{- if .Values.server.ingressGrpc.hosts }}
|
||||||
{{- range $host := .Values.server.ingressGrpc.hosts }}
|
{{- range $host := .Values.server.ingressGrpc.hosts }}
|
||||||
- host: {{ $host }}
|
- host: {{ $host }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
{{- if $extraPaths }}
|
{{- if $extraPaths }}
|
||||||
{{- toYaml $extraPaths | nindent 10 }}
|
{{- toYaml $extraPaths | nindent 10 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- range $p := $paths }}
|
{{- range $p := $paths }}
|
||||||
- path: {{ $p }}
|
- path: {{ $p }}
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
pathType: Prefix
|
||||||
|
{{- end }}
|
||||||
backend:
|
backend:
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
service:
|
||||||
|
name: {{ $serviceName }}
|
||||||
|
port:
|
||||||
|
{{- if kindIs "float64" $servicePort }}
|
||||||
|
number: {{ $servicePort }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ $servicePort }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
serviceName: {{ $serviceName }}
|
serviceName: {{ $serviceName }}
|
||||||
servicePort: {{ $servicePort }}
|
servicePort: {{ $servicePort }}
|
||||||
{{- end -}}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
- http:
|
- http:
|
||||||
paths:
|
paths:
|
||||||
{{- if $extraPaths }}
|
{{- if $extraPaths }}
|
||||||
{{- toYaml $extraPaths | nindent 10 }}
|
{{- toYaml $extraPaths | nindent 10 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- range $p := $paths }}
|
{{- range $p := $paths }}
|
||||||
- path: {{ $p }}
|
- path: {{ $p }}
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
pathType: Prefix
|
||||||
|
{{- end }}
|
||||||
backend:
|
backend:
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
service:
|
||||||
|
name: {{ $serviceName }}
|
||||||
|
port:
|
||||||
|
{{- if kindIs "float64" $servicePort }}
|
||||||
|
number: {{ $servicePort }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ $servicePort }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
serviceName: {{ $serviceName }}
|
serviceName: {{ $serviceName }}
|
||||||
servicePort: {{ $servicePort }}
|
servicePort: {{ $servicePort }}
|
||||||
{{- end -}}
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if .Values.server.ingressGrpc.tls }}
|
{{- if .Values.server.ingressGrpc.tls }}
|
||||||
tls:
|
tls:
|
||||||
{{- toYaml .Values.server.ingressGrpc.tls | nindent 4 }}
|
{{- toYaml .Values.server.ingressGrpc.tls | nindent 4 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -3,11 +3,7 @@
|
||||||
{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingress.https -}}
|
{{- $servicePort := ternary .Values.server.service.servicePortHttps .Values.server.service.servicePortHttp .Values.server.ingress.https -}}
|
||||||
{{- $paths := .Values.server.ingress.paths -}}
|
{{- $paths := .Values.server.ingress.paths -}}
|
||||||
{{- $extraPaths := .Values.server.ingress.extraPaths -}}
|
{{- $extraPaths := .Values.server.ingress.extraPaths -}}
|
||||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
apiVersion: {{ include "argo-cd.ingress.apiVersion" . }}
|
||||||
apiVersion: networking.k8s.io/v1beta1
|
|
||||||
{{ else }}
|
|
||||||
apiVersion: extensions/v1beta1
|
|
||||||
{{ end -}}
|
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
{{- if .Values.server.ingress.annotations }}
|
{{- if .Values.server.ingress.annotations }}
|
||||||
|
@ -19,41 +15,74 @@ metadata:
|
||||||
name: {{ template "argo-cd.server.fullname" . }}
|
name: {{ template "argo-cd.server.fullname" . }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
|
{{- include "argo-cd.labels" (dict "context" . "component" .Values.server.name "name" .Values.server.name) | nindent 4 }}
|
||||||
{{- if .Values.server.ingress.labels }}
|
{{- if .Values.server.ingress.labels }}
|
||||||
{{- toYaml .Values.server.ingress.labels | nindent 4 }}
|
{{- toYaml .Values.server.ingress.labels | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
{{- with .Values.server.ingress.ingressClassName }}
|
||||||
|
ingressClassName: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
{{- if .Values.server.ingress.hosts }}
|
{{- if .Values.server.ingress.hosts }}
|
||||||
{{- range $host := .Values.server.ingress.hosts }}
|
{{- range $host := .Values.server.ingress.hosts }}
|
||||||
- host: {{ $host }}
|
- host: {{ $host }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
{{- if $extraPaths }}
|
{{- if $extraPaths }}
|
||||||
{{- toYaml $extraPaths | nindent 10 }}
|
{{- toYaml $extraPaths | nindent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- range $p := $paths }}
|
{{- range $p := $paths }}
|
||||||
- path: {{ $p }}
|
- path: {{ $p }}
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
pathType: Prefix
|
||||||
|
{{- end }}
|
||||||
backend:
|
backend:
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
service:
|
||||||
|
name: {{ $serviceName }}
|
||||||
|
port:
|
||||||
|
{{- if kindIs "float64" $servicePort }}
|
||||||
|
number: {{ $servicePort }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ $servicePort }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
serviceName: {{ $serviceName }}
|
serviceName: {{ $serviceName }}
|
||||||
servicePort: {{ $servicePort }}
|
servicePort: {{ $servicePort }}
|
||||||
{{- end -}}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
- http:
|
- http:
|
||||||
paths:
|
paths:
|
||||||
{{- if $extraPaths }}
|
{{- if $extraPaths }}
|
||||||
{{- toYaml $extraPaths | nindent 10 }}
|
{{- toYaml $extraPaths | nindent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- range $p := $paths }}
|
{{- range $p := $paths }}
|
||||||
- path: {{ $p }}
|
- path: {{ $p }}
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
pathType: Prefix
|
||||||
|
{{- end }}
|
||||||
backend:
|
backend:
|
||||||
|
{{- if eq (include "argo-cd.ingress.apiVersion" $) "networking.k8s.io/v1" }}
|
||||||
|
service:
|
||||||
|
name: {{ $serviceName }}
|
||||||
|
port:
|
||||||
|
{{- if kindIs "float64" $servicePort }}
|
||||||
|
number: {{ $servicePort }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ $servicePort }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
serviceName: {{ $serviceName }}
|
serviceName: {{ $serviceName }}
|
||||||
servicePort: {{ $servicePort }}
|
servicePort: {{ $servicePort }}
|
||||||
{{- end -}}
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if .Values.server.ingress.tls }}
|
{{- if .Values.server.ingress.tls }}
|
||||||
tls:
|
tls:
|
||||||
{{- toYaml .Values.server.ingress.tls | nindent 4 }}
|
{{- toYaml .Values.server.ingress.tls | nindent 4 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -493,6 +493,7 @@ server:
|
||||||
enabled: false
|
enabled: false
|
||||||
annotations: {}
|
annotations: {}
|
||||||
labels: {}
|
labels: {}
|
||||||
|
ingressClassName: ""
|
||||||
|
|
||||||
## Argo Ingress.
|
## Argo Ingress.
|
||||||
## Hostnames must be provided if Ingress is enabled.
|
## Hostnames must be provided if Ingress is enabled.
|
||||||
|
@ -521,6 +522,7 @@ server:
|
||||||
enabled: false
|
enabled: false
|
||||||
annotations: {}
|
annotations: {}
|
||||||
labels: {}
|
labels: {}
|
||||||
|
ingressClassName: ""
|
||||||
|
|
||||||
## Argo Ingress.
|
## Argo Ingress.
|
||||||
## Hostnames must be provided if Ingress is enabled.
|
## Hostnames must be provided if Ingress is enabled.
|
||||||
|
|
Loading…
Reference in a new issue