argo-cd: add statusbadge option to chart

This commit is contained in:
AntoineDao 2019-10-30 08:04:03 +10:00
parent 361ea8d13d
commit 5d42be2215
3 changed files with 122 additions and 199 deletions

View file

@ -1,6 +1,6 @@
apiVersion: v1 apiVersion: v1
appVersion: "1.2.4" appVersion: "1.2.5"
description: A Helm chart for ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes. description: A Helm chart for Argo-CD
name: argo-cd name: argo-cd
version: 1.0.6 version: 1.0.6
home: https://github.com/argoproj/argo-helm home: https://github.com/argoproj/argo-helm

View file

@ -29,200 +29,72 @@ $ helm install --name my-release argo/argo-cd
## Chart Values ## Chart Values
| Parameter | Description | Default | | Key | Type | Default | Description |
|-----|------|---------| | -------------------------------------- | ------ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| global.image.imagePullPolicy | If defined, a imagePullPolicy applied to all ArgoCD deployments. | `"IfNotPresent"` | | applicationController.containerPort | int | `8082` | Container port for application controller server and metrics |
| global.image.repository | If defined, a repository applied to all ArgoCD deployments. | `"argoproj/argocd"` | | applicationController.image.pullPolicy | string | `"Always"` | Docker image pull policy |
| global.image.tag | If defined, a tag applied to all ArgoCD deployments. | `"v1.2.3"` | | applicationController.image.repository | string | `"argoproj/argocd"` | Docker image repo |
| nameOverride | Provide a name in place of `argocd` | `"argocd"` | | applicationController.image.tag | string | `"v1.2.4"` | Docker image tag |
| configs.knownHosts.data.ssh_known_hosts | Known Hosts | See [values.yaml](values.yaml) | | applicationController.servicePort | int | `8082` | Service port for applicaiton controller server |
| configs.secret.bitbucketSecret | BitBucket incoming webhook secret | `""` | | applicationController.volumeMounts | list | `[]` | Additional volume mounts |
| configs.secret.createSecret | Create the argocd-secret. | `true` | | applicationController.volumes | list | `[]` | Additional volumes |
| configs.secret.githubSecret | GitHub incoming webhook secret | `""` | | certificate.enabled | bool | `false` | Enable certificate (requires cert-manager) |
| configs.secret.gitlabSecret | GitLab incoming webhook secret | `""` | | clusterAdminAccess.enabled | bool | `true` | Standard Argo CD installation with cluster-admin access. Set this true if you plan to use Argo CD to deploy applications in the same cluster that Argo CD runs in (i.e. kubernetes.svc.default). Will still be able to deploy to external clusters with inputted credentials. |
| configs.tlsCerts.data."argocd.example.com" | TLS certificate | See [values.yaml](values.yaml) | | config.configManagementPlugins | string | `nil` | List of custom config management plugins, see [values.yaml](./values.yaml) for format |
| config.createSecret | bool | `true` | Creates the argocd-secret secret, set to false to manage externally |
## ArgoCD Controller | config.dexConfig | string | `nil` | Configuration for external auth and URL, see [values.yaml](./values.yaml) for format |
| config.helmRepositories | string | `nil` | Configuration for external Helm charts, see [values.yaml](./values.yaml) for format |
| Key | Type | Default | Description | | config.oidcConfig | string | `nil` | Configuration for OpenID connect, see [values.yaml](./values.yaml) for format |
|-----|------|---------|-------------| | config.repositories | string | `nil` | Configuration for remote Git repositories for Applications, see [values.yaml](./values.yaml) for format |
| controller.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | config.resourceCustomizations | string | `nil` | resourceCustomizations can be used to create custom health checks for resources [https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/health.md#way-1-define-a-custom-health-check-in-argocd-cm-configmap] |
| controller.args.operationProcessors | define the controller `--operation-processors` | `"10"` | | config.url | string | `nil` | External URL for ArgoCD |
| controller.args.statusProcessors | define the controller `--status-processors` | `"20"` | | config.instanceLabelKey | string | `nil` | Custom instance label key |
| controller.clusterAdminAccess.enabled | Enable RBAC for local cluster deployments. | `true` | | config.webhook.bitbucketSecret | string | `nil` | BitBucket incoming webhook secret |
| controller.containerPort | Controller listening port. | `8082` | | config.webhook.githubSecret | string | `nil` | GitHub incoming webhook secret |
| controller.extraArgs | Additional arguments for the controller. | `[]` | | config.webhook.gitlabSecret | string | `nil` | GitLab incoming webhook secret |
| controller.image.repository | Repository to use for the controller | `global.image.repository` | | config.statusbadge.enabled | bool | `nil` | Toggle to enable status badges in argocd-cm |
| controller.image.imagePullPolicy | Image pull policy for the controller | `global.image.imagePullPolicy` | | dexServer.containerPortGrpc | int | `5557` | Container port for Dex Server GRPC |
| controller.image.tag | Tag to use for the controller | `global.image.tag` | | dexServer.containerPortHttp | int | `5556` | Container port for Dex Server HTTP |
| controller.livenessProbe.failureThreshold | int | `3` | | dexServer.image.pullPolicy | string | `"Always"` | Docker image pull policy |
| controller.livenessProbe.initialDelaySeconds | int | `10` | | dexServer.image.repository | string | `"quay.io/dexidp/dex"` | Docker image repo |
| controller.livenessProbe.periodSeconds | int | `10` | | dexServer.image.tag | string | `"v2.12.0"` | Docker image tag |
| controller.livenessProbe.successThreshold | int | `1` | | dexServer.initImage.pullPolicy | string | `"Always"` | Docker image pull policy |
| controller.livenessProbe.timeoutSeconds | int | `1` | | dexServer.initImage.repository | string | `"argoproj/argocd"` | Docker image repo |
| controller.logLevel | Controller log level | `"info"` | | dexServer.initImage.tag | string | `"v1.2.0"` | Docker image tag |
| controller.metrics.enabled | Deploy metrics service | `false` | | dexServer.servicePortGrpc | int | `5557` | Service port for Dex Server GRPC |
| controller.metrics.service.annotations | Metrics service annotations | `{}` | | dexServer.servicePortHttp | int | `5556` | Service port for Dex Server GRPC |
| controller.metrics.service.labels | Metrics service labels | `{}` | | dexServer.volumeMounts | list | `[]` | Additional volume mounts |
| controller.metrics.service.servicePort | Metrics service port | `8082` | | dexServer.volumes | list | `[]` | Additional volumes |
| controller.metrics.serviceMonitor.enabled | Enable a prometheus ServiceMonitor. | `false` | | ingress.additionalHosts | list | `[]` | Ingress additional hosts |
| controller.metrics.serviceMonitor.selector | Prometheus ServiceMonitor selector. | `{}` | | ingress.annotations | object | `{}` | Annotations for ingress object, set `nginx.ingress.kubernetes.io/force-ssl-redirect: "true"` and `nginx.ingress.kubernetes.io/ssl-passthrough: "true"` if serving GRPC and HTTPS on the same ingress |
| controller.name | Controller name string. | `"application-controller"` | | ingress.enabled | bool | `false` | Enable ingress |
| controller.nodeSelector | controller node selector https://kubernetes.io/docs/user-guide/node-selection/ | `{}` | | ingress.tls | object | `{}` | Ingress TLS configuration |
| controller.podAnnotations | Annotations for the controller pods | `{}` | | rbac.policyCsv | string | `nil` | RBAC policy in CSV, see [values.yaml](./values.yaml) for format |
| controller.podLabels | Labels for the controller pods | `{}` | | rbac.policyDefault | string | `nil` | The default role Argo CD will fall back to, when authorizing API requests, ie: `role:readonly` |
| controller.priorityClassName | Priority class for the controller pods | `""` | | rbac.scopes | string | `nil` | Scopes controls which OIDC scopes to examine during rbac enforcement (in addition to `sub` scope). ie: `[groups]` |
| controller.readinessProbe.failureThreshold | int | `3` | | redis.containerPort | int | `6379` | Container port for Redis |
| controller.readinessProbe.initialDelaySeconds | int | `10` | | redis.image.pullPolicy | string | `"Always"` | Docker image pull policy |
| controller.readinessProbe.periodSeconds | int | `10` | | redis.image.repository | string | `"redis"` | Docker image repo |
| controller.readinessProbe.successThreshold | int | `1` | | redis.image.tag | string | `"5.0.3"` | Docker image tag |
| controller.readinessProbe.timeoutSeconds | int | `1` | | redis.servicePort | int | `6379` | Service port for Redis |
| controller.resources | Resource limits and requests for the controller pods. | `{}` | | repoServer.containerPort | int | `8081` | Container port for repo server |
| controller.service.annotations | Controller service annotations. | `{}` | | repoServer.image.pullPolicy | string | `"Always"` | Docker image pull policy |
| controller.service.labels | Controller service labels. | `{}` | | repoServer.image.repository | string | `"argoproj/argocd"` | Docker image repo |
| controller.service.port | Controller service port. | `8082` | | repoServer.image.tag | string | `"v1.2.0"` | Docker image tag |
| controller.serviceAccount.create | Create a service account for the controller | `true` | | repoServer.servicePort | int | `8081` | Service port for repo server |
| controller.serviceAccount.name | Service account name. | `"argocd-application-controller"` | | repoServer.volumeMounts | list | `[]` | Additional volume mounts |
| controller.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` | | repoServer.volumes | list | `[]` | Additional volumes |
| controller.volumeMounts | Controller volume mounts | `[]` | | repoServer.initContainers | list | `[]` | Initialisation containers, see [values.yaml](./values.yaml) for syntax for Helm v2.12.3 |
| controller.volumes | Controller volumes | `[]` | | repoServer.imagePullSecrets | list | `[]` | List of image pull secrets, see [values.yaml](./values.yaml) for syntax for a secret called "docker-auth-secret" |
| server.annotations | object | `{}` | Annotations for the server deployment |
## Argo Repo Server | server.containerPort | int | `8080` | Container port for server |
| server.extraArgs | list | `[]` | Add additional arguments |
| Key | Type | Default | Description | | server.image.pullPolicy | string | `"Always"` | Docker image pull policy |
|-----|------|---------|-------------| | server.image.repository | string | `"argoproj/argocd"` | Docker image repo |
| repoServer.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` | | server.image.tag | string | `"v1.2.0"` | Docker image tag |
| repoServer.containerPort | Repo server port | `8081` | | server.metricsPort | int | `8083` | Container port for server metrics |
| repoServer.extraArgs | Additional arguments for the repo server | `[]` | | server.serviceAnnotations | object | `{}` | Annotations for server service |
| repoServer.image.repository | Repository to use for the repo server | `global.image.repository` | | server.servicePortHttp | int | `80` | HTTP Container port for server |
| repoServer.image.imagePullPolicy | Image pull policy for the repo server | `global.image.imagePullPolicy` | | server.servicePortHttps | int | `443` | HTTPS Container port for server |
| repoServer.image.tag | Tag to use for the repo server | `global.image.tag` | | server.volumeMounts | list | `[]` | Additional volume mounts, see [values.yaml](./values.yaml) for syntax for SSH known hosts |
| repoServer.livenessProbe.failureThreshold | int | `3` | | server.volumes | list | `[]` | Additional volumes, see [values.yaml](./values.yaml) for syntax for SSH known hosts |
| repoServer.livenessProbe.initialDelaySeconds | int | `10` |
| repoServer.livenessProbe.periodSeconds | int | `10` |
| repoServer.livenessProbe.successThreshold | int | `1` |
| repoServer.livenessProbe.timeoutSeconds | int | `1` |
| repoServer.logLevel | Log level | `"info"` |
| repoServer.metrics.enabled | Deploy metrics service | `false` |
| repoServer.metrics.service.annotations | Metrics service annotations | `{}` |
| repoServer.metrics.service.labels | Metrics service labels | `{}` |
| repoServer.metrics.service.servicePort | Metrics service port | `8082` |
| repoServer.metrics.serviceMonitor.enabled | Enable a prometheus ServiceMonitor. | `false` |
| repoServer.metrics.serviceMonitor.selector | Prometheus ServiceMonitor selector. | `{}` |
| repoServer.name | Repo server name | `"repo-server"` |
| repoServer.nodeSelector | controller node selector https://kubernetes.io/docs/user-guide/node-selection/ | `{}` |
| repoServer.podAnnotations | Annotations for the repo server pods | `{}` |
| repoServer.podLabels | Labels for the repo server pods | `{}` |
| repoServer.priorityClassName | Priority class for the repo server | `""` |
| repoServer.readinessProbe.failureThreshold | int | `3` |
| repoServer.readinessProbe.initialDelaySeconds | int | `10` |
| repoServer.readinessProbe.periodSeconds | int | `10` |
| repoServer.readinessProbe.successThreshold | int | `1` |
| repoServer.readinessProbe.timeoutSeconds | int | `1` |
| repoServer.resources | Resource limits and requests for the repo server pods. | `{}` |
| repoServer.service.annotations | Repo server service annotations. | `{}` |
| repoServer.service.labels | Repo server service labels. | `{}` |
| repoServer.service.port | Repo server service port. | `8081` |
| repoServer.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` |
| repoServer.volumeMounts | Repo server volume mounts | `[]` |
| repoServer.volumes | Repo server volumes | `[]` |
## Argo Server
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| server.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| server.certificate.additionalHosts | Certificate manager additional hosts | `[]` |
| server.certificate.domain | Certificate manager domain | `"argocd.example.com"` |
| server.certificate.enabled | Enables a certificate manager certificate. | `false` |
| server.certificate.issuer | Certificate manager issuer | `{}` |
| server.config | URL for Argo CD | `{}` |
| server.containerPort | Server container port. | `8080` |
| server.extraArgs | Additional arguments for the server | `[]` |
| server.image.repository | Repository to use for the server | `global.image.repository` |
| server.image.imagePullPolicy | Image pull policy for the server | `global.image.imagePullPolicy` |
| server.image.tag | Tag to use for the repo server | `global.image.tag` |
| server.ingress.annotations | Additional ingress annotations | `{}` |
| server.ingress.enabled | Enable an ingress resource for the server | `false` |
| server.ingress.hosts | List of ingress hosts | `[]` |
| server.ingress.labels | Additional ingress labels. | `{}` |
| server.ingress.tls | Ingress TLS configuration. | `[]` |
| server.route.enabled | Enable a OpenShift route for the server | `false` |
| server.route.hostname | Hostname of OpenShift route | `""` |
| server.livenessProbe.failureThreshold | int | `3` |
| server.livenessProbe.initialDelaySeconds | int | `10` |
| server.livenessProbe.periodSeconds | int | `10` |
| server.livenessProbe.successThreshold | int | `1` |
| server.livenessProbe.timeoutSeconds | int | `1` |
| server.logLevel | Log level | `"info"` |
| server.metrics.enabled | Deploy metrics service | `false` |
| server.metrics.service.annotations | Metrics service annotations | `{}` |
| server.metrics.service.labels | Metrics service labels | `{}` |
| server.metrics.service.servicePort | Metrics service port | `8082` |
| server.metrics.serviceMonitor.enabled | Enable a prometheus ServiceMonitor. | `false` |
| server.metrics.serviceMonitor.selector | Prometheus ServiceMonitor selector. | `{}` |
| server.name | Argo CD server name | `"server"` |
| server.nodeSelector | controller node selector https://kubernetes.io/docs/user-guide/node-selection/ | `{}` |
| server.podAnnotations | Annotations for the repo server pods | `{}` |
| server.podLabels | Labels for the repo server pods | `{}` |
| server.priorityClassName | Priority class for the repo server | `""` |
| server.rbacConfig | Argo CD RBAC policy https://argoproj.github.io/argo-cd/operator-manual/rbac/ | `See [values.yaml](values.yaml)` |
| server.readinessProbe.failureThreshold | int | `3` |
| server.readinessProbe.initialDelaySeconds | int | `10` |
| server.readinessProbe.periodSeconds | int | `10` |
| server.readinessProbe.successThreshold | int | `1` |
| server.readinessProbe.timeoutSeconds | int | `1` |
| server.resources | Resource limits and requests for the server | `{}` |
| server.service.annotations | Server service annotations | `{}` |
| server.service.labels | Server service labels | `{}` |
| server.service.servicePortHttp | Server service http port | `80` |
| server.service.servicePortHttps | Server service https port | `443` |
| server.service.type | Server service type | `"ClusterIP"` |
| server.serviceAccount.create | Create server service account | `true` |
| server.serviceAccount.name | Server service account name | `"argocd-server"` |
| server.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` |
| server.volumeMounts | Server volume mounts | `[]` |
| server.volumes | Server volumes | `[]` |
## Dex
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| dex.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| dex.containerPortGrpc | GRPC container port | `5557` |
| dex.containerPortHttp | HTTP container port | `5556` |
| dex.enabled | Enable dex | `true` |
| dex.image.imagePullPolicy | Dex imagePullPolicy | `"IfNotPresent"` |
| dex.image.repository | Dex image repository | `"quay.io/dexidp/dex"` |
| dex.image.tag | Dex image tag | `"v2.14.0"` |
| dex.initImage.repository | Argo CD init image repository. | `global.image.repository` |
| dex.initImage.imagePullPolicy | Argo CD init image imagePullPolicy | `global.image.imagePullPolicy` |
| dex.initImage.tag | Argo CD init image tag | `global.image.tag` |
| dex.name | Dex name | `"dex-server"` |
| dex.nodeSelector | Dex node selector https://kubernetes.io/docs/user-guide/node-selection/ | `{}` |
| dex.priorityClassName | Priority class for dex | `""` |
| dex.resources | Resource limits and requests for dex | `{}` |
| dex.serviceAccount.create | Create dex service account | `true` |
| dex.serviceAccount.name | Dex service account name | `"argocd-dex-server"` |
| dex.servicePortGrpc | Server GRPC port | `5557` |
| dex.servicePortHttp | Server HTTP port | `5556` |
| dex.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` |
| dex.volumeMounts | Dex volume mounts | `"/shared"` |
| dex.volumes | Dex volumes | `{}` |
## Redis
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| redis.affinity | Assign custom affinity rules to the deployment https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | `{}` |
| redis.containerPort | Redis container port | `6379` |
| redis.enabled | Enable redis | `false` |
| redis.image.imagePullPolicy | Redis imagePullPolicy | `"IfNotPresent"` |
| redis.image.repository | Redis repository | `"redis"` |
| redis.image.tag | Redis tag | `"5.0.3"` |
| redis.name | Redis name | `"redis"` |
| redis.nodeSelector | Redis node selector https://kubernetes.io/docs/user-guide/node-selection/ | `{}` |
| redis.priorityClassName | Priority class for redis | `""` |
| redis.resources | Resource limits and requests for redis | `{}` |
| redis.servicePort | Redis service port | `6379` |
| redis.tolerations | Tolerations for use with node taints https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ | `[]` |

View file

@ -0,0 +1,51 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: argocd
data:
{{- if .Values.config.enableAnonymousAccess }}
users.anonymous.enabled: "{{ .Values.config.enableAnonymousAccess }}"
{{- end }}
{{- if .Values.config.helmRepositories }}
helm.repositories: |
{{ toYaml .Values.config.helmRepositories | indent 4 }}
{{- end }}
{{- if .Values.config.repositories }}
repositories: |
{{ toYaml .Values.config.repositories | indent 4 }}
{{- end }}
{{- if .Values.config.dexConfig }}
dex.config: |
{{ toYaml .Values.config.dexConfig | indent 4 }}
{{- end }}
{{- if .Values.config.url }}
url: {{ .Values.config.url }}
{{- end }}
{{- if .Values.config.instanceLabelKey }}
application.instanceLabelKey: {{ .Values.config.instanceLabelKey }}
{{- end }}
{{- if .Values.config.oidcConfig }}
oidc.config: |
{{ toYaml .Values.config.oidcConfig | indent 4 }}
{{- end }}
{{- if .Values.config.resourceCustomizations }}
resource.customizations: |
{{ toYaml .Values.config.resourceCustomizations | indent 4 }}
{{- end }}
{{- if .Values.config.resourceExclusions }}
resource.exclusions: |
{{ toYaml .Values.config.resourceExclusions | indent 4 }}
{{- end }}
{{- if .Values.config.configManagementPlugins }}
configManagementPlugins: |
{{ toYaml .Values.config.configManagementPlugins | indent 4 }}
{{ -if .Values.config.statusbadge.enabled }}
statusbadge.enabled: "true"
{{ - end }}
{{- end }}