Adding dependencies, binary autostart
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
{{/*
|
||||
Client definition for LogsInstance
|
||||
*/}}
|
||||
{{- define "loki.logsInstanceClient" -}}
|
||||
{{- $isSingleBinary := eq (include "loki.deployment.isSingleBinary" .) "true" -}}
|
||||
{{- $url := printf "http://%s.%s.svc.%s:%s/loki/api/v1/push" (include "loki.writeFullname" .) .Release.Namespace .Values.global.clusterDomain ( .Values.loki.server.http_listen_port | toString ) }}
|
||||
{{- if $isSingleBinary }}
|
||||
{{- $url = printf "http://%s.%s.svc.%s:%s/loki/api/v1/push" (include "loki.singleBinaryFullname" .) .Release.Namespace .Values.global.clusterDomain ( .Values.loki.server.http_listen_port | toString ) }}
|
||||
{{- else if .Values.gateway.enabled -}}
|
||||
{{- $url = printf "http://%s.%s.svc.%s/loki/api/v1/push" (include "loki.gatewayFullname" .) .Release.Namespace .Values.global.clusterDomain }}
|
||||
{{- end -}}
|
||||
- url: {{ $url }}
|
||||
externalLabels:
|
||||
cluster: {{ include "loki.clusterLabel" . }}
|
||||
{{- if .Values.enterprise.enabled }}
|
||||
basicAuth:
|
||||
username:
|
||||
name: {{ include "enterprise-logs.selfMonitoringTenantSecret" . }}
|
||||
key: username
|
||||
password:
|
||||
name: {{ include "enterprise-logs.selfMonitoringTenantSecret" . }}
|
||||
key: password
|
||||
{{- else if .Values.loki.auth_enabled }}
|
||||
tenantId: {{ .Values.monitoring.selfMonitoring.tenant.name | quote }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Convert a recording rule group to yaml
|
||||
*/}}
|
||||
{{- define "loki.ruleGroupToYaml" -}}
|
||||
{{- range . }}
|
||||
- name: {{ .name }}
|
||||
rules:
|
||||
{{- toYaml .rules | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
GrafanaAgent priority class name
|
||||
*/}}
|
||||
{{- define "grafana-agent.priorityClassName" -}}
|
||||
{{- $pcn := coalesce .Values.global.priorityClassName .Values.monitoring.selfMonitoring.grafanaAgent.priorityClassName -}}
|
||||
{{- if $pcn }}
|
||||
priorityClassName: {{ $pcn }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,6 @@
|
||||
{{/*
|
||||
dashboards name
|
||||
*/}}
|
||||
{{- define "loki.dashboardsName" -}}
|
||||
{{ include "loki.name" . }}-dashboards
|
||||
{{- end }}
|
||||
@@ -0,0 +1,30 @@
|
||||
{{- with .Values.monitoring.dashboards }}
|
||||
{{- if .enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "loki.dashboardsName" $ }}-1
|
||||
namespace: {{ .namespace | default $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
data:
|
||||
"loki-chunks.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-chunks.json" | fromJson | toJson }}
|
||||
"loki-deletion.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-deletion.json" | fromJson | toJson }}
|
||||
"loki-logs.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-logs.json" | fromJson | toJson }}
|
||||
"loki-mixin-recording-rules.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-mixin-recording-rules.json" | fromJson | toJson }}
|
||||
"loki-operational.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-operational.json" | fromJson | toJson }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,30 @@
|
||||
{{- with .Values.monitoring.dashboards }}
|
||||
{{- if .enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "loki.dashboardsName" $ }}-2
|
||||
namespace: {{ .namespace | default $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
data:
|
||||
"loki-reads-resources.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-reads-resources.json" | fromJson | toJson }}
|
||||
"loki-reads.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-reads.json" | fromJson | toJson }}
|
||||
"loki-retention.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-retention.json" | fromJson | toJson }}
|
||||
"loki-writes-resources.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-writes-resources.json" | fromJson | toJson }}
|
||||
"loki-writes.json": |
|
||||
{{ $.Files.Get "src/dashboards/loki-writes.json" | fromJson | toJson }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
100
opencloud/charts/loki/templates/monitoring/grafana-agent.yaml
Normal file
100
opencloud/charts/loki/templates/monitoring/grafana-agent.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
{{- if .Values.monitoring.selfMonitoring.enabled }}
|
||||
{{- with .Values.monitoring.selfMonitoring.grafanaAgent }}
|
||||
apiVersion: monitoring.grafana.com/v1alpha1
|
||||
kind: GrafanaAgent
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ include "loki.fullname" $ }}-grafana-agent
|
||||
enableConfigReadAPI: {{ .enableConfigReadAPI }}
|
||||
{{- include "grafana-agent.priorityClassName" $ | nindent 2 }}
|
||||
logs:
|
||||
instanceSelector:
|
||||
matchLabels:
|
||||
{{- include "loki.selectorLabels" $ | nindent 8 }}
|
||||
{{- with $.Values.monitoring.serviceMonitor}}
|
||||
{{- if .metricsInstance.remoteWrite}}
|
||||
metrics:
|
||||
instanceSelector:
|
||||
matchLabels:
|
||||
{{- include "loki.selectorLabels" $ | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .resources }}
|
||||
resources:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}-grafana-agent
|
||||
namespace: {{ .namespace | default $.Release.Namespace }}
|
||||
|
||||
---
|
||||
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}-grafana-agent
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
- nodes/proxy
|
||||
- nodes/metrics
|
||||
- services
|
||||
- endpoints
|
||||
- pods
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- nonResourceURLs:
|
||||
- /metrics
|
||||
- /metrics/cadvisor
|
||||
verbs:
|
||||
- get
|
||||
|
||||
---
|
||||
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}-grafana-agent
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ include "loki.fullname" $ }}-grafana-agent
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ include "loki.fullname" $ }}-grafana-agent
|
||||
namespace: {{ .namespace | default $.Release.Namespace }}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
@@ -0,0 +1,30 @@
|
||||
{{- if .Values.monitoring.selfMonitoring.enabled }}
|
||||
{{- with .Values.monitoring.selfMonitoring.logsInstance }}
|
||||
apiVersion: monitoring.grafana.com/v1alpha1
|
||||
kind: LogsInstance
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
clients:
|
||||
{{- include "loki.logsInstanceClient" $ | nindent 4}}
|
||||
{{- with .clients}}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
podLogsNamespaceSelector: {}
|
||||
|
||||
podLogsSelector:
|
||||
matchLabels:
|
||||
{{- include "loki.selectorLabels" $ | nindent 6 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
22
opencloud/charts/loki/templates/monitoring/loki-alerts.yaml
Normal file
22
opencloud/charts/loki/templates/monitoring/loki-alerts.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
{{- with .Values.monitoring.rules }}
|
||||
{{- if and ($.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/PrometheusRule") .enabled .alerting }}
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PrometheusRule
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "loki.fullname" $ }}-loki-alerts
|
||||
namespace: {{ .namespace | default $.Release.Namespace }}
|
||||
spec:
|
||||
groups:
|
||||
{{- include "loki.ruleGroupToYaml" (tpl ($.Files.Get "src/alerts.yaml.tpl") $ | fromYaml).groups | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
23
opencloud/charts/loki/templates/monitoring/loki-rules.yaml
Normal file
23
opencloud/charts/loki/templates/monitoring/loki-rules.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
{{- with .Values.monitoring.rules }}
|
||||
{{- if and ($.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/PrometheusRule") .enabled }}
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PrometheusRule
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "loki.fullname" $ }}-loki-rules
|
||||
namespace: {{ .namespace | default $.Release.Namespace }}
|
||||
spec:
|
||||
groups:
|
||||
{{- include "loki.ruleGroupToYaml" (tpl ($.Files.Get "src/rules.yaml.tpl") $ | fromYaml).groups | indent 4 }}
|
||||
{{- include "loki.ruleGroupToYaml" .additionalGroups | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,30 @@
|
||||
{{- if .Values.monitoring.serviceMonitor.enabled }}
|
||||
{{- with .Values.monitoring.serviceMonitor.metricsInstance }}
|
||||
{{- if and ($.Capabilities.APIVersions.Has "monitoring.grafana.com/v1alpha1/MetricsInstance") .enabled }}
|
||||
apiVersion: monitoring.grafana.com/v1alpha1
|
||||
kind: MetricsInstance
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .remoteWrite}}
|
||||
remoteWrite:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
serviceMonitorNamespaceSelector: {}
|
||||
|
||||
serviceMonitorSelector:
|
||||
matchLabels:
|
||||
{{- include "loki.selectorLabels" $ | nindent 6 }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
62
opencloud/charts/loki/templates/monitoring/pod-logs.yaml
Normal file
62
opencloud/charts/loki/templates/monitoring/pod-logs.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
{{- if .Values.monitoring.selfMonitoring.enabled }}
|
||||
{{- with .Values.monitoring.selfMonitoring.podLogs }}
|
||||
apiVersion: {{ .apiVersion }}
|
||||
kind: PodLogs
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
pipelineStages:
|
||||
- cri: { }
|
||||
{{- with .additionalPipelineStages }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
relabelings:
|
||||
- action: replace
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_pod_node_name
|
||||
targetLabel: __host__
|
||||
- action: labelmap
|
||||
regex: __meta_kubernetes_pod_label_(.+)
|
||||
- action: replace
|
||||
replacement: "$1"
|
||||
separator: "-"
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_pod_label_app_kubernetes_io_name
|
||||
- __meta_kubernetes_pod_label_app_kubernetes_io_component
|
||||
targetLabel: __service__
|
||||
- action: replace
|
||||
replacement: "$1"
|
||||
separator: "/"
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_namespace
|
||||
- __service__
|
||||
targetLabel: job
|
||||
- action: replace
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_pod_container_name
|
||||
targetLabel: container
|
||||
- action: replace
|
||||
replacement: "{{ include "loki.clusterLabel" $ }}"
|
||||
targetLabel: cluster
|
||||
{{- with .relabelings }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ $.Release.Namespace }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "loki.selectorLabels" $ | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,63 @@
|
||||
{{- with .Values.monitoring.serviceMonitor }}
|
||||
{{- if and ($.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/ServiceMonitor") .enabled }}
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "loki.fullname" $ }}
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
{{- with .annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "loki.labels" $ | nindent 4 }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .namespaceSelector }}
|
||||
namespaceSelector:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "loki.selectorLabels" $ | nindent 6 }}
|
||||
matchExpressions:
|
||||
- key: prometheus.io/service-monitor
|
||||
operator: NotIn
|
||||
values:
|
||||
- "false"
|
||||
endpoints:
|
||||
- port: http-metrics
|
||||
path: /metrics
|
||||
{{- with .interval }}
|
||||
interval: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .scrapeTimeout }}
|
||||
scrapeTimeout: {{ . }}
|
||||
{{- end }}
|
||||
relabelings:
|
||||
- sourceLabels: [job]
|
||||
action: replace
|
||||
replacement: "{{ $.Release.Namespace }}/$1"
|
||||
targetLabel: job
|
||||
- action: replace
|
||||
replacement: "{{ include "loki.clusterLabel" $ }}"
|
||||
targetLabel: cluster
|
||||
{{- with .relabelings }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .metricRelabelings }}
|
||||
metricRelabelings:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .scheme }}
|
||||
scheme: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .tlsConfig }}
|
||||
tlsConfig:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user