[argocd-notifications] add monitoring and slack bot service annotations (#411)

* feat: add slack bot service annotations to argocd-notifications

* feat: add monitoring to argocd-notifications
pull/409/head^2
Maciej Moleda 2020-07-23 01:58:59 +01:00 committed by GitHub
parent 9b80bd95e4
commit c716c1795e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 94 additions and 1 deletions

View File

@ -3,7 +3,7 @@ appVersion: 0.7.0
description: A Helm chart for ArgoCD notifications, an add-on to ArgoCD.
name: argocd-notifications
type: application
version: 1.0.7
version: 1.0.8
home: https://github.com/argoproj/argo-helm
icon: https://raw.githubusercontent.com/argoproj/argo/master/docs/assets/argo.png
keywords:

View File

@ -43,6 +43,19 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Common metrics labels
*/}}
{{- define "argocd-notifications.metrics.labels" -}}
helm.sh/chart: {{ include "argocd-notifications.chart" . }}
{{ include "argocd-notifications.metrics.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Common slack bot labels
*/}}
@ -63,6 +76,14 @@ app.kubernetes.io/name: {{ include "argocd-notifications.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Selector metrics labels
*/}}
{{- define "argocd-notifications.metrics.selectorLabels" -}}
app.kubernetes.io/name: {{ include "argocd-notifications.name" . }}-metrics
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Selector slack bot labels
*/}}

View File

@ -3,6 +3,10 @@ apiVersion: v1
kind: Service
metadata:
name: {{ include "argocd-notifications.name" . }}-bot
{{- if .Values.bots.slack.service.annotations }}
annotations:
{{- toYaml .Values.bots.slack.service.annotations | nindent 4 }}
{{- end }}
spec:
ports:
- name: server

View File

@ -29,6 +29,16 @@ spec:
command:
- /app/argocd-notifications
- controller
- --loglevel={{ .Values.logLevel }}
{{- if .Values.metrics.enabled }}
- --metrics-port={{ .Values.metrics.port }}
{{- end }}
ports:
{{- if .Values.metrics.enabled }}
- containerPort: {{ .Values.metrics.port }}
name: metrics
protocol: TCP
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}

View File

@ -0,0 +1,15 @@
{{- if .Values.metrics.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ include "argocd-notifications.name" . }}-metrics
labels:
{{- include "argocd-notifications.metrics.labels" . | nindent 4 }}
spec:
selector:
{{- include "argocd-notifications.selectorLabels" . | nindent 4 }}
ports:
- name: metrics
port: {{ .Values.metrics.port }}
targetPort: {{ .Values.metrics.port }}
{{- end }}

View File

@ -0,0 +1,30 @@
{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "argocd-notifications.name" . }}-metrics
{{- if .Values.metrics.serviceMonitor.namespace }}
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
{{- end }}
labels:
{{- include "argocd-notifications.metrics.labels" . | nindent 4 }}
{{- if .Values.metrics.serviceMonitor.additionalLabels }}
{{- toYaml .Values.metrics.serviceMonitor.additionalLabels | nindent 4 }}
{{- end }}
spec:
endpoints:
- port: metrics
path: /metrics
{{- if .Values.metrics.serviceMonitor.interval }}
interval: {{ .Values.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
{{- end }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
selector:
matchLabels:
{{- include "argocd-notifications.metrics.selectorLabels" . | nindent 6 }}
{{- end }}

View File

@ -87,6 +87,18 @@ secret:
# email address in from field
from:
logLevel: info
metrics:
enabled: false
port: 9001
serviceMonitor:
enabled: false
additionalLabels: {}
# namespace: monitoring
# interval: 30s
# scrapeTimeout: 10s
resources: {}
# limits:
# cpu: 100m
@ -194,6 +206,7 @@ bots:
imagePullSecrets: []
service:
annotations: {}
type: LoadBalancer
serviceAccount: