feat(argocd-applicationset): Add resources metrics-service and servicemonitor. (#1041)
* [argocd-applicationset]: Add metrics-service and servicemonitor to applicationset. Signed-off-by: fuyuan.chu <fuyuan.chu@airwallex.com> * [argocd-applicationset]: Add ci values for servicemonitor. Signed-off-by: fuyuan.chu <fuyuan.chu@airwallex.com> * format indent Signed-off-by: fuyuan.chu <fuyuan.chu@airwallex.com> * update helm docs Signed-off-by: fuyuan.chu <fuyuan.chu@airwallex.com> * update ci values Signed-off-by: fuyuan.chu <fuyuan.chu@airwallex.com> * update ci values Signed-off-by: fuyuan.chu <fuyuan.chu@airwallex.com> * chore: Use consistent indents and file ending Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> * Also disable mounts of ArgoCD during metrics test Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>
This commit is contained in:
parent
60693bb289
commit
817652a449
7 changed files with 115 additions and 3 deletions
|
@ -2,7 +2,7 @@ apiVersion: v2
|
||||||
name: argocd-applicationset
|
name: argocd-applicationset
|
||||||
description: A Helm chart for installing ArgoCD ApplicationSet
|
description: A Helm chart for installing ArgoCD ApplicationSet
|
||||||
type: application
|
type: application
|
||||||
version: 1.6.0
|
version: 1.7.0
|
||||||
appVersion: "v0.2.0"
|
appVersion: "v0.2.0"
|
||||||
home: https://github.com/argoproj/argo-helm
|
home: https://github.com/argoproj/argo-helm
|
||||||
icon: https://argocd-applicationset.readthedocs.io/en/stable/assets/logo.png
|
icon: https://argocd-applicationset.readthedocs.io/en/stable/assets/logo.png
|
||||||
|
@ -14,5 +14,4 @@ maintainers:
|
||||||
- name: maruina
|
- name: maruina
|
||||||
annotations:
|
annotations:
|
||||||
artifacthub.io/changes: |
|
artifacthub.io/changes: |
|
||||||
- "[Added]: Install the chart into a kind cluster during the chart testing process"
|
- "[Added]: Add resources metrics-service and servicemonitor, not enabled by default."
|
||||||
- "[Changed]: Parameter 'args.namespace' now defaults to the namespace where you install the chart to"
|
|
||||||
|
|
|
@ -73,6 +73,17 @@ kubectl apply -k https://github.com/argoproj-labs/applicationset.git/manifests/c
|
||||||
| image.repository | string | `"quay.io/argoproj/argocd-applicationset"` | The image repository |
|
| image.repository | string | `"quay.io/argoproj/argocd-applicationset"` | The image repository |
|
||||||
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
|
| image.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. |
|
||||||
| imagePullSecrets | list | `[]` | If defined, uses a Secret to pull an image from a private Docker registry or repository. |
|
| imagePullSecrets | list | `[]` | If defined, uses a Secret to pull an image from a private Docker registry or repository. |
|
||||||
|
| metrics.enabled | bool | `false` | Deploy metrics service |
|
||||||
|
| metrics.service.annotations | object | `{}` | Metrics service annotations |
|
||||||
|
| metrics.service.labels | object | `{}` | Metrics service labels |
|
||||||
|
| metrics.service.servicePort | int | `8085` | Metrics service port |
|
||||||
|
| metrics.serviceMonitor.additionalLabels | object | `{}` | Prometheus ServiceMonitor labels |
|
||||||
|
| metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor |
|
||||||
|
| metrics.serviceMonitor.interval | string | `"30s"` | Prometheus ServiceMonitor interval |
|
||||||
|
| metrics.serviceMonitor.metricRelabelings | list | `[]` | Prometheus [MetricRelabelConfigs] to apply to samples before ingestion |
|
||||||
|
| metrics.serviceMonitor.namespace | string | `""` | Prometheus ServiceMonitor namespace |
|
||||||
|
| metrics.serviceMonitor.relabelings | list | `[]` | Prometheus [RelabelConfigs] to apply to samples before scraping |
|
||||||
|
| metrics.serviceMonitor.selector | object | `{}` | Prometheus ServiceMonitor selector |
|
||||||
| mountGPGKeyringVolume | bool | `true` | Mount an emptyDir volume for `gpg-keyring` |
|
| mountGPGKeyringVolume | bool | `true` | Mount an emptyDir volume for `gpg-keyring` |
|
||||||
| mountGPGKeysVolume | bool | `false` | Mount the `argocd-gpg-keys-cm` volume |
|
| mountGPGKeysVolume | bool | `false` | Mount the `argocd-gpg-keys-cm` volume |
|
||||||
| mountSSHKnownHostsVolume | bool | `true` | Mount the `argocd-ssh-known-hosts-cm` volume |
|
| mountSSHKnownHostsVolume | bool | `true` | Mount the `argocd-ssh-known-hosts-cm` volume |
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# Disable mounts of ArgoCD related ConfigMaps as ArgoCD isn't installed during chart testing
|
||||||
|
mountSSHKnownHostsVolume: false
|
||||||
|
mountTLSCertsVolume: false
|
||||||
|
mountGPGKeysVolume: false
|
|
@ -53,6 +53,9 @@ spec:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: {{ (split ":" .Values.args.probeBindAddr)._1 }}
|
containerPort: {{ (split ":" .Values.args.probeBindAddr)._1 }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
|
- name: metrics
|
||||||
|
containerPort: {{ (split ":" .Values.args.metricsAddr)._1 }}
|
||||||
|
protocol: TCP
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.resources | nindent 12 }}
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|
25
charts/argocd-applicationset/templates/metrics-service.yaml
Normal file
25
charts/argocd-applicationset/templates/metrics-service.yaml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{{- if .Values.metrics.enabled }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
{{- if .Values.metrics.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- range $key, $value := .Values.metrics.service.annotations }}
|
||||||
|
{{ $key }}: {{ $value | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "argo-applicationset.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.metrics.service.labels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
name: {{ template "argo-applicationset.fullname" . }}-metrics
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: metrics
|
||||||
|
protocol: TCP
|
||||||
|
port: {{ .Values.metrics.service.servicePort }}
|
||||||
|
targetPort: metrics
|
||||||
|
selector:
|
||||||
|
{{- include "argo-applicationset.selectorLabels" . | nindent 4 }}
|
||||||
|
{{- end }}
|
38
charts/argocd-applicationset/templates/servicemonitor.yaml
Normal file
38
charts/argocd-applicationset/templates/servicemonitor.yaml
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "argo-applicationset.fullname" . }}
|
||||||
|
{{- if .Values.metrics.serviceMonitor.namespace }}
|
||||||
|
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "argo-applicationset.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.metrics.serviceMonitor.selector }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.metrics.serviceMonitor.additionalLabels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- port: metrics
|
||||||
|
{{- with .Values.metrics.serviceMonitor.interval }}
|
||||||
|
interval: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
path: /metrics
|
||||||
|
{{- with .Values.metrics.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.metrics.serviceMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- {{ .Release.Namespace }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "argo-applicationset.selectorLabels" . | nindent 6 }}
|
||||||
|
{{- end }}
|
|
@ -31,6 +31,35 @@ args:
|
||||||
# -- Enable dry run mode
|
# -- Enable dry run mode
|
||||||
dryRun: false
|
dryRun: false
|
||||||
|
|
||||||
|
## Metrics service configuration
|
||||||
|
metrics:
|
||||||
|
# -- Deploy metrics service
|
||||||
|
enabled: false
|
||||||
|
service:
|
||||||
|
# -- Metrics service annotations
|
||||||
|
annotations: {}
|
||||||
|
# -- Metrics service labels
|
||||||
|
labels: {}
|
||||||
|
# -- Metrics service port
|
||||||
|
servicePort: 8085
|
||||||
|
serviceMonitor:
|
||||||
|
# -- Enable a prometheus ServiceMonitor
|
||||||
|
enabled: false
|
||||||
|
# -- Prometheus ServiceMonitor interval
|
||||||
|
interval: 30s
|
||||||
|
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
|
||||||
|
relabelings: []
|
||||||
|
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
|
||||||
|
metricRelabelings: []
|
||||||
|
# -- Prometheus ServiceMonitor selector
|
||||||
|
selector: {}
|
||||||
|
# prometheus: kube-prometheus
|
||||||
|
|
||||||
|
# -- Prometheus ServiceMonitor namespace
|
||||||
|
namespace: "" # monitoring
|
||||||
|
# -- Prometheus ServiceMonitor labels
|
||||||
|
additionalLabels: {}
|
||||||
|
|
||||||
# -- If defined, uses a Secret to pull an image from a private Docker registry or repository.
|
# -- If defined, uses a Secret to pull an image from a private Docker registry or repository.
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
# -- Provide a name in place of `argocd-applicationset`
|
# -- Provide a name in place of `argocd-applicationset`
|
||||||
|
|
Loading…
Reference in a new issue