feat(argo-cd): Enable to add certificate to ApplicationSet Controller (#2052)
* feat(argo-cd): Add ability to add certificate to Argo CD Controller Signed-off-by: yu-croco <yu.croco@gmail.com> * fix(argo-cd): Add Certificate to right component Signed-off-by: yu-croco <yu.croco@gmail.com>
This commit is contained in:
parent
5dd7ae964d
commit
6564b44538
4 changed files with 88 additions and 3 deletions
|
@ -3,7 +3,7 @@ appVersion: v2.7.2
|
||||||
kubeVersion: ">=1.22.0-0"
|
kubeVersion: ">=1.22.0-0"
|
||||||
description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
description: A Helm chart for Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes.
|
||||||
name: argo-cd
|
name: argo-cd
|
||||||
version: 5.33.2
|
version: 5.33.3
|
||||||
home: https://github.com/argoproj/argo-helm
|
home: https://github.com/argoproj/argo-helm
|
||||||
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
|
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
|
||||||
sources:
|
sources:
|
||||||
|
@ -26,5 +26,5 @@ annotations:
|
||||||
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
|
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
|
||||||
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
|
||||||
artifacthub.io/changes: |
|
artifacthub.io/changes: |
|
||||||
- kind: changed
|
- kind: added
|
||||||
description: Upgrade Argo CD to v2.7.2
|
description: Enable to add certificate to ApplicationSet Controller
|
||||||
|
|
|
@ -1024,6 +1024,19 @@ If you want to use an existing Redis (eg. a managed service from a cloud provide
|
||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| applicationSet.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules |
|
| applicationSet.affinity | object | `{}` (defaults to global.affinity preset) | Assign custom [affinity] rules |
|
||||||
| applicationSet.args | object | `{}` | DEPRECATED - ApplicationSet controller command line flags |
|
| applicationSet.args | object | `{}` | DEPRECATED - ApplicationSet controller command line flags |
|
||||||
|
| applicationSet.certificate.additionalHosts | list | `[]` | Certificate Subject Alternate Names (SANs) |
|
||||||
|
| applicationSet.certificate.domain | string | `"argocd.example.com"` | Certificate primary domain (commonName) |
|
||||||
|
| applicationSet.certificate.duration | string | `""` (defaults to 2160h = 90d if not specified) | The requested 'duration' (i.e. lifetime) of the certificate. |
|
||||||
|
| applicationSet.certificate.enabled | bool | `false` | Deploy a Certificate resource (requires cert-manager) |
|
||||||
|
| applicationSet.certificate.issuer.group | string | `""` | Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io` |
|
||||||
|
| applicationSet.certificate.issuer.kind | string | `""` | Certificate issuer kind. Either `Issuer` or `ClusterIssuer` |
|
||||||
|
| applicationSet.certificate.issuer.name | string | `""` | Certificate issuer name. Eg. `letsencrypt` |
|
||||||
|
| applicationSet.certificate.privateKey.algorithm | string | `"RSA"` | Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA` |
|
||||||
|
| applicationSet.certificate.privateKey.encoding | string | `"PKCS1"` | The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8` |
|
||||||
|
| applicationSet.certificate.privateKey.rotationPolicy | string | `"Never"` | Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always` |
|
||||||
|
| applicationSet.certificate.privateKey.size | int | `2048` | Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. |
|
||||||
|
| applicationSet.certificate.renewBefore | string | `""` (defaults to 360h = 15d if not specified) | How long before the expiry a certificate should be renewed. |
|
||||||
|
| applicationSet.certificate.secretName | string | `"argocd-application-controller-tls"` | The name of the Secret that will be automatically created and managed by this Certificate resource |
|
||||||
| applicationSet.containerPorts.metrics | int | `8080` | Metrics container port |
|
| applicationSet.containerPorts.metrics | int | `8080` | Metrics container port |
|
||||||
| applicationSet.containerPorts.probe | int | `8081` | Probe container port |
|
| applicationSet.containerPorts.probe | int | `8081` | Probe container port |
|
||||||
| applicationSet.containerPorts.webhook | int | `7000` | Webhook container port |
|
| applicationSet.containerPorts.webhook | int | `7000` | Webhook container port |
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
{{- if .Values.applicationSet.certificate.enabled -}}
|
||||||
|
apiVersion: {{ include "argo-cd.apiVersion.cert-manager" . }}
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ template "argo-cd.applicationSet.fullname" . }}
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
labels:
|
||||||
|
{{- include "argo-cd.labels" (dict "context" . "component" .Values.applicationSet.name "name" .Values.applicationSet.name) | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
secretName: {{ .Values.applicationSet.certificate.secretName }}
|
||||||
|
commonName: {{ .Values.applicationSet.certificate.domain | quote }}
|
||||||
|
dnsNames:
|
||||||
|
- {{ .Values.applicationSet.certificate.domain | quote }}
|
||||||
|
{{- range .Values.applicationSet.certificate.additionalHosts }}
|
||||||
|
- {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.applicationSet.certificate.duration }}
|
||||||
|
duration: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.applicationSet.certificate.renewBefore }}
|
||||||
|
renewBefore: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
issuerRef:
|
||||||
|
{{- with .Values.applicationSet.certificate.issuer.group }}
|
||||||
|
group: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
kind: {{ .Values.applicationSet.certificate.issuer.kind | quote }}
|
||||||
|
name: {{ .Values.applicationSet.certificate.issuer.name | quote }}
|
||||||
|
{{- with .Values.applicationSet.certificate.privateKey }}
|
||||||
|
privateKey:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -2623,6 +2623,45 @@ applicationSet:
|
||||||
# hosts:
|
# hosts:
|
||||||
# - argocd-applicationset.example.com
|
# - argocd-applicationset.example.com
|
||||||
|
|
||||||
|
# TLS certificate configuration via cert-manager
|
||||||
|
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-configuration
|
||||||
|
certificate:
|
||||||
|
# -- Deploy a Certificate resource (requires cert-manager)
|
||||||
|
enabled: false
|
||||||
|
# -- The name of the Secret that will be automatically created and managed by this Certificate resource
|
||||||
|
secretName: argocd-application-controller-tls
|
||||||
|
# -- Certificate primary domain (commonName)
|
||||||
|
domain: argocd.example.com
|
||||||
|
# -- Certificate Subject Alternate Names (SANs)
|
||||||
|
additionalHosts: []
|
||||||
|
# -- The requested 'duration' (i.e. lifetime) of the certificate.
|
||||||
|
# @default -- `""` (defaults to 2160h = 90d if not specified)
|
||||||
|
## Ref: https://cert-manager.io/docs/usage/certificate/#renewal
|
||||||
|
duration: ""
|
||||||
|
# -- How long before the expiry a certificate should be renewed.
|
||||||
|
# @default -- `""` (defaults to 360h = 15d if not specified)
|
||||||
|
## Ref: https://cert-manager.io/docs/usage/certificate/#renewal
|
||||||
|
renewBefore: ""
|
||||||
|
# Certificate issuer
|
||||||
|
## Ref: https://cert-manager.io/docs/concepts/issuer
|
||||||
|
issuer:
|
||||||
|
# -- Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io`
|
||||||
|
group: ""
|
||||||
|
# -- Certificate issuer kind. Either `Issuer` or `ClusterIssuer`
|
||||||
|
kind: ""
|
||||||
|
# -- Certificate issuer name. Eg. `letsencrypt`
|
||||||
|
name: ""
|
||||||
|
# Private key of the certificate
|
||||||
|
privateKey:
|
||||||
|
# -- Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always`
|
||||||
|
rotationPolicy: Never
|
||||||
|
# -- The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8`
|
||||||
|
encoding: PKCS1
|
||||||
|
# -- Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA`
|
||||||
|
algorithm: RSA
|
||||||
|
# -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored.
|
||||||
|
size: 2048
|
||||||
|
|
||||||
## Notifications controller
|
## Notifications controller
|
||||||
notifications:
|
notifications:
|
||||||
# -- Enable notifications controller
|
# -- Enable notifications controller
|
||||||
|
|
Loading…
Reference in a new issue