mirror of
https://github.com/bitnami/charts.git
synced 2026-03-16 06:47:30 +08:00
[bitnami/kafka] Fix labels on kafka exporter & add metric services
Signed-off-by: juan131 <juan@bitnami.com>
This commit is contained in:
@@ -217,3 +217,16 @@ but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Renders a value that contains template.
|
||||
Usage:
|
||||
{{ include "kafka.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }}
|
||||
*/}}
|
||||
{{- define "kafka.tplValue" -}}
|
||||
{{- if typeIs "string" .value }}
|
||||
{{- tpl .value .context }}
|
||||
{{- else }}
|
||||
{{- tpl (.value | toYaml) .context }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
@@ -13,29 +13,29 @@ spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "kafka.name" . }}
|
||||
release: "{{ .Release.Name }}"
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: metrics
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
{{- if and .Values.metrics.kafka.enabled }}
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: {{ .Values.metrics.kafka.port | quote }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app: {{ template "kafka.name" . }}
|
||||
release: "{{ .Release.Name }}"
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
helm.sh/chart: {{ template "kafka.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: metrics
|
||||
spec:
|
||||
{{- include "kafka.imagePullSecrets" . | indent 6 }}
|
||||
containers:
|
||||
- image: {{ template "kafka.metrics.kafka.image" . }}
|
||||
name: kafka-exporter
|
||||
args:
|
||||
- --kafka.server={{ template "kafka.fullname" . }}:{{ .Values.service.port }}
|
||||
- --web.listen-address=:{{ .Values.metrics.kafka.port }}
|
||||
ports:
|
||||
- name: kafka-port
|
||||
containerPort: {{ .Values.metrics.kafka.port }}
|
||||
resources:
|
||||
{{ toYaml .Values.metrics.kafka.resources | indent 10 }}
|
||||
- image: {{ template "kafka.metrics.kafka.image" . }}
|
||||
name: kafka-exporter
|
||||
args:
|
||||
- --kafka.server={{ template "kafka.fullname" . }}:{{ .Values.service.port }}
|
||||
- --web.listen-address=:{{ .Values.metrics.kafka.port }}
|
||||
ports:
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.metrics.kafka.port }}
|
||||
{{- if .Values.metrics.kafka.resources }}
|
||||
resources: {{ toYaml .Values.metrics.kafka.resources | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
34
bitnami/kafka/templates/kafka-jmx-metrics-svc.yaml
Normal file
34
bitnami/kafka/templates/kafka-jmx-metrics-svc.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
{{- if .Values.metrics.jmx.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "kafka.fullname" . }}-jmx-metrics
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
helm.sh/chart: {{ template "kafka.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: kafka
|
||||
annotations: {{ include "kafka.tplValue" ( dict "value" .Values.metrics.jmx.service.annotations "context" $) | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.metrics.jmx.service.type }}
|
||||
{{- if and .Values.metrics.jmx.service.loadBalancerIP (eq .Values.metrics.jmx.service.type "LoadBalancer") }}
|
||||
loadBalancerIP: {{ .Values.metrics.jmx.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if and (eq .Values.metrics.jmx.service.type "ClusterIP") .Values.metrics.jmx.service.clusterIP }}
|
||||
clusterIP: {{ .Values.metrics.jmx.service.clusterIP }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: metrics
|
||||
port: {{ .Values.metrics.jmx.service.port }}
|
||||
targetPort: metrics
|
||||
{{- if (and (or (eq .Values.metrics.jmx.service.type "NodePort") (eq .Values.metrics.jmx.service.type "LoadBalancer")) (not (empty .Values.metrics.jmx.service.nodePort)))}}
|
||||
nodePort: {{ .Values.metrics.jmx.service.nodePort }}
|
||||
{{- else if eq .Values.metrics.jmx.service.type "ClusterIP" }}
|
||||
nodePort: null
|
||||
{{- end }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: kafka
|
||||
{{- end }}
|
||||
34
bitnami/kafka/templates/kafka-metrics-svc.yaml
Normal file
34
bitnami/kafka/templates/kafka-metrics-svc.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
{{- if .Values.metrics.kafka.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "kafka.fullname" . }}-metrics
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
helm.sh/chart: {{ template "kafka.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: metrics
|
||||
annotations: {{ include "kafka.tplValue" ( dict "value" .Values.metrics.kafka.service.annotations "context" $) | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.metrics.kafka.service.type }}
|
||||
{{- if and .Values.metrics.kafka.service.loadBalancerIP (eq .Values.metrics.kafka.service.type "LoadBalancer") }}
|
||||
loadBalancerIP: {{ .Values.metrics.kafka.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if and (eq .Values.metrics.kafka.service.type "ClusterIP") .Values.metrics.kafka.service.clusterIP }}
|
||||
clusterIP: {{ .Values.metrics.kafka.service.clusterIP }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: metrics
|
||||
port: {{ .Values.metrics.kafka.service.port }}
|
||||
targetPort: metrics
|
||||
{{- if (and (or (eq .Values.metrics.kafka.service.type "NodePort") (eq .Values.metrics.kafka.service.type "LoadBalancer")) (not (empty .Values.metrics.kafka.service.nodePort)))}}
|
||||
nodePort: {{ .Values.metrics.kafka.service.nodePort }}
|
||||
{{- else if eq .Values.metrics.kafka.service.type "ClusterIP" }}
|
||||
nodePort: null
|
||||
{{- end }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- end }}
|
||||
@@ -1,8 +1,8 @@
|
||||
{{- if and (or .Values.metrics.kafka.enabled .Values.metrics.jmx.enabled) .Values.metrics.serviceMonitor.enabled }}
|
||||
{{- if and .Values.metrics.jmx.enabled .Values.metrics.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ template "kafka.fullname" . }}
|
||||
name: {{ template "kafka.fullname" . }}-jmx-metrics
|
||||
{{- if .Values.metrics.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
@@ -22,25 +22,15 @@ spec:
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: kafka
|
||||
endpoints:
|
||||
{{- if .Values.metrics.kafka.enabled }}
|
||||
- port: kafka-port
|
||||
- port: metrics
|
||||
path: "/"
|
||||
{{- if .Values.metrics.serviceMonitor.interval }}
|
||||
interval: {{ .Values.metrics.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.jmx.enabled }}
|
||||
- port: jmx-port
|
||||
{{- if .Values.metrics.serviceMonitor.interval }}
|
||||
interval: {{ .Values.metrics.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace }}
|
||||
- {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
36
bitnami/kafka/templates/servicemonitor-metrics.yaml
Normal file
36
bitnami/kafka/templates/servicemonitor-metrics.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
{{- if and .Values.metrics.kafka.enabled .Values.metrics.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ template "kafka.fullname" . }}-metrics
|
||||
{{- if .Values.metrics.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
helm.sh/chart: {{ template "kafka.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- range $key, $value := .Values.metrics.serviceMonitor.selector }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/component: metrics
|
||||
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 }}
|
||||
{{- end }}
|
||||
@@ -27,11 +27,7 @@ spec:
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
{{ if .Values.metrics.jmx.enabled }}
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: {{ .Values.metrics.jmx.exporterPort | quote }}
|
||||
{{- end }}
|
||||
name: "{{ template "kafka.fullname" . }}"
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ template "kafka.name" . }}
|
||||
@@ -261,17 +257,17 @@ spec:
|
||||
{{- if .Values.persistence.enabled }}
|
||||
- name: data
|
||||
mountPath: /bitnami/kafka
|
||||
{{ end }}
|
||||
{{ if .Values.config }}
|
||||
{{- end }}
|
||||
{{- if .Values.config }}
|
||||
- name: kafka-config
|
||||
mountPath: /opt/bitnami/kafka/conf/server.properties
|
||||
subPath: server.properties
|
||||
{{ end }}
|
||||
{{ if .Values.auth.enabled }}
|
||||
{{- end }}
|
||||
{{- if .Values.auth.enabled }}
|
||||
- name: kafka-certificates
|
||||
mountPath: /opt/bitnami/kafka/conf/certs/
|
||||
readOnly: true
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{ if .Values.metrics.jmx.enabled }}
|
||||
- name: jmx-exporter
|
||||
image: "{{ template "kafka.metrics.jmx.image" . }}"
|
||||
@@ -287,10 +283,11 @@ spec:
|
||||
- {{ .Values.metrics.jmx.exporterPort | quote }}
|
||||
- /etc/jmx-kafka/jmx-kafka-prometheus.yml
|
||||
ports:
|
||||
- name: jmx-port
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.metrics.jmx.exporterPort }}
|
||||
resources:
|
||||
{{ toYaml .Values.metrics.jmx.resources | indent 10 }}
|
||||
{{- if .Values.metrics.jmx.resources }}
|
||||
resources: {{ toYaml .Values.metrics.jmx.resources | nindent 10 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: jmx-config
|
||||
mountPath: /etc/jmx-kafka
|
||||
|
||||
@@ -8,10 +8,7 @@ metadata:
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/component: kafka
|
||||
annotations:
|
||||
{{- range $key, $value := .Values.service.annotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
annotations: {{ include "kafka.tplValue" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if eq .Values.service.type "LoadBalancer" }}
|
||||
|
||||
Reference in New Issue
Block a user