Patch Relase 2.19.4 #43
|
@ -0,0 +1 @@
|
|||
../kubezero-istio/.helmignore
|
|
@ -2,7 +2,7 @@ apiVersion: v2
|
|||
name: kubezero-istio-ingress
|
||||
description: KubeZero Umbrella Chart for Istio based Ingress
|
||||
type: application
|
||||
version: 0.5.2
|
||||
version: 0.5.6
|
||||
appVersion: 1.9.3
|
||||
home: https://kubezero.com
|
||||
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
||||
|
|
|
@ -17,6 +17,8 @@ spec:
|
|||
{{- if $gateway.replicaCount }}
|
||||
replicas: {{ $gateway.replicaCount }}
|
||||
{{- end }}
|
||||
# Give the LB 120s to detect and take into service, should only be 40s by we are on AWS so ??
|
||||
minReadySeconds: 120
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
|
@ -69,7 +71,7 @@ spec:
|
|||
{{- if .Values.global.priorityClassName }}
|
||||
priorityClassName: "{{ .Values.global.priorityClassName }}"
|
||||
{{- end }}
|
||||
terminationGracePeriodSeconds: 90
|
||||
terminationGracePeriodSeconds: 120
|
||||
{{- if .Values.global.proxy.enableCoreDump }}
|
||||
initContainers:
|
||||
- name: enable-core-dump
|
||||
|
@ -141,6 +143,11 @@ spec:
|
|||
privileged: false
|
||||
readOnlyRootFilesystem: true
|
||||
{{- end }}
|
||||
#This needs kube-proxy support coming with 1.22 hopefully, cilium ?
|
||||
#lifecycle:
|
||||
# preStop:
|
||||
# exec:
|
||||
# command: ["/bin/sh","-c","sleep 30"]
|
||||
readinessProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
|
|
|
@ -17,6 +17,8 @@ spec:
|
|||
{{- if $gateway.replicaCount }}
|
||||
replicas: {{ $gateway.replicaCount }}
|
||||
{{- end }}
|
||||
# Give the LB 120s to detect and take into service, should only be 40s by we are on AWS so ??
|
||||
minReadySeconds: 120
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
|
@ -69,7 +71,7 @@ spec:
|
|||
{{- if .Values.global.priorityClassName }}
|
||||
priorityClassName: "{{ .Values.global.priorityClassName }}"
|
||||
{{- end }}
|
||||
terminationGracePeriodSeconds: 90
|
||||
terminationGracePeriodSeconds: 120
|
||||
{{- if .Values.global.proxy.enableCoreDump }}
|
||||
initContainers:
|
||||
- name: enable-core-dump
|
||||
|
@ -141,6 +143,11 @@ spec:
|
|||
privileged: false
|
||||
readOnlyRootFilesystem: true
|
||||
{{- end }}
|
||||
#This needs kube-proxy support coming with 1.22 hopefully, cilium ?
|
||||
#lifecycle:
|
||||
# preStop:
|
||||
# exec:
|
||||
# command: ["/bin/sh","-c","sleep 30"]
|
||||
readinessProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
# https://www.envoyproxy.io/docs/envoy/v1.17.1/configuration/best_practices/edge#configuring-envoy-as-an-edge-proxy
|
||||
# https://github.com/istio/istio/issues/24715
|
||||
{{- if or (index .Values "istio-ingress" "enabled") (index .Values "istio-private-ingress" "enabled") }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: istio-gateway-bootstrap-config
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
data:
|
||||
custom_bootstrap.json: |
|
||||
{
|
||||
"overload_manager": {
|
||||
"actions": [
|
||||
{
|
||||
"name": "envoy.overload_actions.shrink_heap",
|
||||
"triggers": [
|
||||
{
|
||||
"name": "envoy.resource_monitors.fixed_heap",
|
||||
"threshold": {
|
||||
"value": 0.9
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "envoy.overload_actions.stop_accepting_requests",
|
||||
"triggers": [
|
||||
{
|
||||
"name": "envoy.resource_monitors.fixed_heap",
|
||||
"threshold": {
|
||||
"value": 0.99
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"refresh_interval": "0.25s",
|
||||
"resource_monitors": [
|
||||
{
|
||||
"name": "envoy.resource_monitors.fixed_heap",
|
||||
"typed_config": {
|
||||
"@type": "type.googleapis.com/envoy.config.resource_monitor.fixed_heap.v2alpha.FixedHeapConfig",
|
||||
"max_heap_size_bytes": 536870912
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"layeredRuntime": {
|
||||
"layers": [
|
||||
{
|
||||
"name": "static_layer_0",
|
||||
"staticLayer": {
|
||||
"overload.global_downstream_max_connections": 50000
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
{{- end }}
|
|
@ -0,0 +1,38 @@
|
|||
{{- if or (index .Values "istio-ingress" "enabled") (index .Values "istio-private-ingress" "enabled") }}
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: EnvoyFilter
|
||||
metadata:
|
||||
name: ingressgateway-hardening
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
spec:
|
||||
configPatches:
|
||||
- applyTo: CLUSTER
|
||||
patch:
|
||||
operation: MERGE
|
||||
value:
|
||||
connect_timeout: 15s
|
||||
per_connection_buffer_limit_bytes: 32768 # 32 KiB
|
||||
- applyTo: NETWORK_FILTER
|
||||
match:
|
||||
listener:
|
||||
filterChain:
|
||||
filter:
|
||||
name: "envoy.filters.network.http_connection_manager"
|
||||
patch:
|
||||
operation: MERGE
|
||||
value:
|
||||
name: "envoy.filters.network.http_connection_manager"
|
||||
typed_config:
|
||||
"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"
|
||||
common_http_protocol_options:
|
||||
idle_timeout: 3600s # 1 hour
|
||||
# headers_with_underscores_action: REJECT_REQUEST
|
||||
http2_protocol_options:
|
||||
max_concurrent_streams: 500
|
||||
initial_stream_window_size: 65536 # 64 KiB
|
||||
initial_connection_window_size: 1048576 # 1 MiB
|
||||
#stream_idle_timeout: 300s # 5 mins, must be disabled for long-lived and streaming requests
|
||||
#request_timeout: 300s # 5 mins, must be disabled for long-lived and streaming requests
|
||||
{{- end }}
|
|
@ -0,0 +1,33 @@
|
|||
{{- if or (index .Values "istio-ingress" "enabled") (index .Values "istio-private-ingress" "enabled") }}
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: EnvoyFilter
|
||||
metadata:
|
||||
name: ingressgateway-listener-tcp-keepalive
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
spec:
|
||||
configPatches:
|
||||
- applyTo: LISTENER
|
||||
patch:
|
||||
operation: MERGE
|
||||
value:
|
||||
socket_options:
|
||||
# SOL_SOCKET = 1
|
||||
# SO_KEEPALIVE = 9
|
||||
- level: 1
|
||||
name: 9
|
||||
int_value: 1
|
||||
state: STATE_LISTENING
|
||||
# IPPROTO_TCP = 6
|
||||
# TCP_KEEPIDLE = 4
|
||||
- level: 6
|
||||
name: 4
|
||||
int_value: 60
|
||||
state: STATE_LISTENING
|
||||
# TCP_KEEPINTVL = 5
|
||||
- level: 6
|
||||
name: 5
|
||||
int_value: 60
|
||||
state: STATE_LISTENING
|
||||
{{- end }}
|
|
@ -1,70 +0,0 @@
|
|||
{{- if index .Values "istio-ingress" "enabled" }}
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: EnvoyFilter
|
||||
metadata:
|
||||
name: ingressgateway-listener-tcp-keepalive
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
workloadSelector:
|
||||
labels:
|
||||
istio: ingressgateway
|
||||
configPatches:
|
||||
- applyTo: LISTENER
|
||||
patch:
|
||||
operation: MERGE
|
||||
value:
|
||||
socket_options:
|
||||
# SOL_SOCKET = 1
|
||||
# SO_KEEPALIVE = 9
|
||||
- level: 1
|
||||
name: 9
|
||||
int_value: 1
|
||||
state: STATE_LISTENING
|
||||
# IPPROTO_TCP = 6
|
||||
# TCP_KEEPIDLE = 4
|
||||
- level: 6
|
||||
name: 4
|
||||
int_value: 60
|
||||
state: STATE_LISTENING
|
||||
# TCP_KEEPINTVL = 5
|
||||
- level: 6
|
||||
name: 5
|
||||
int_value: 60
|
||||
state: STATE_LISTENING
|
||||
{{- end }}
|
||||
|
||||
{{- if index .Values "istio-private-ingress" "enabled" }}
|
||||
---
|
||||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: EnvoyFilter
|
||||
metadata:
|
||||
name: private-ingressgateway-listener-tcp-keepalive
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
workloadSelector:
|
||||
labels:
|
||||
istio: private-ingressgateway
|
||||
configPatches:
|
||||
- applyTo: LISTENER
|
||||
patch:
|
||||
operation: MERGE
|
||||
value:
|
||||
socket_options:
|
||||
# SOL_SOCKET = 1
|
||||
# SO_KEEPALIVE = 9
|
||||
- level: 1
|
||||
name: 9
|
||||
int_value: 1
|
||||
state: STATE_LISTENING
|
||||
# IPPROTO_TCP = 6
|
||||
# TCP_KEEPIDLE = 4
|
||||
- level: 6
|
||||
name: 4
|
||||
int_value: 60
|
||||
state: STATE_LISTENING
|
||||
# TCP_KEEPINTVL = 5
|
||||
- level: 6
|
||||
name: 5
|
||||
int_value: 60
|
||||
state: STATE_LISTENING
|
||||
{{- end }}
|
|
@ -0,0 +1,35 @@
|
|||
{{- if or ( index .Values "istio-ingress" "telemetry" "enabled" ) ( index .Values "istio-private-ingress" "telemetry" "enabled" )}}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PodMonitor
|
||||
metadata:
|
||||
name: envoy-stats-monitor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchExpressions:
|
||||
- {key: istio-prometheus-ignore, operator: DoesNotExist}
|
||||
jobLabel: envoy-stats
|
||||
podMetricsEndpoints:
|
||||
- path: /stats/prometheus
|
||||
relabelings:
|
||||
- action: keep
|
||||
sourceLabels: [__meta_kubernetes_pod_container_name]
|
||||
regex: "istio-proxy"
|
||||
- action: keep
|
||||
sourceLabels: [__meta_kubernetes_pod_annotationpresent_prometheus_io_scrape]
|
||||
- sourceLabels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
|
||||
action: replace
|
||||
regex: ([^:]+)(?::\d+)?;(\d+)
|
||||
replacement: $1:$2
|
||||
targetLabel: __address__
|
||||
- action: labeldrop
|
||||
regex: "__meta_kubernetes_pod_label_(.+)"
|
||||
- sourceLabels: [__meta_kubernetes_namespace]
|
||||
action: replace
|
||||
targetLabel: namespace
|
||||
- sourceLabels: [__meta_kubernetes_pod_name]
|
||||
action: replace
|
||||
targetLabel: pod_name
|
||||
{{- end }}
|
|
@ -17,10 +17,15 @@ global:
|
|||
istio-ingress:
|
||||
enabled: false
|
||||
|
||||
telemetry:
|
||||
enabled: false
|
||||
|
||||
gateways:
|
||||
istio-ingressgateway:
|
||||
autoscaleEnabled: false
|
||||
replicaCount: 1
|
||||
rollingMaxSurge: 1
|
||||
rollingMaxUnavailable: 0
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
|
@ -35,9 +40,17 @@ istio-ingress:
|
|||
topologyKey: kubernetes.io/hostname
|
||||
values: istio-ingressgateway
|
||||
type: NodePort
|
||||
podAnnotations:
|
||||
proxy.istio.io/config: '{ "terminationDrainDuration": "20s" }'
|
||||
|
||||
# custom hardened bootstrap config
|
||||
env:
|
||||
TERMINATION_DRAIN_DURATION_SECONDS: '"60"'
|
||||
# ISTIO_META_HTTP10: '"1"'
|
||||
ISTIO_BOOTSTRAP_OVERRIDE: /etc/istio/custom-bootstrap/custom_bootstrap.json
|
||||
configVolumes:
|
||||
- name: custom-bootstrap-volume
|
||||
mountPath: /etc/istio/custom-bootstrap
|
||||
configMapName: istio-gateway-bootstrap-config
|
||||
|
||||
# The node selector is normally the list of nodeports, see CloudBender
|
||||
nodeSelector:
|
||||
node.kubernetes.io/ingress.public: "30080_30443"
|
||||
|
@ -72,9 +85,17 @@ istio-ingress:
|
|||
dnsNames: []
|
||||
# - '*.example.com'
|
||||
|
||||
meshConfig:
|
||||
defaultConfig:
|
||||
proxyMetadata:
|
||||
# ISTIO_META_HTTP10: 1
|
||||
|
||||
istio-private-ingress:
|
||||
enabled: false
|
||||
|
||||
telemetry:
|
||||
enabled: false
|
||||
|
||||
gateways:
|
||||
istio-ingressgateway:
|
||||
# name and labels make the ingress private
|
||||
|
@ -85,6 +106,8 @@ istio-private-ingress:
|
|||
|
||||
autoscaleEnabled: false
|
||||
replicaCount: 1
|
||||
rollingMaxSurge: 1
|
||||
rollingMaxUnavailable: 0
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
|
@ -99,13 +122,12 @@ istio-private-ingress:
|
|||
topologyKey: kubernetes.io/hostname
|
||||
values: istio-private-ingressgateway
|
||||
type: NodePort
|
||||
env:
|
||||
TERMINATION_DRAIN_DURATION_SECONDS: '"60"'
|
||||
# ISTIO_META_HTTP10: '"1"'
|
||||
podAnnotations:
|
||||
# sidecar.istio.io/bootstrapOverride: istio-gateway-bootstrap-config
|
||||
proxy.istio.io/config: '{ "terminationDrainDuration": "20s" }'
|
||||
nodeSelector:
|
||||
node.kubernetes.io/ingress.private: "31080_31443"
|
||||
#nodeSelector: "31080_31443_31671_31672_31224"
|
||||
|
||||
ports:
|
||||
- name: status-port
|
||||
port: 15021
|
||||
|
@ -149,3 +171,7 @@ istio-private-ingress:
|
|||
dnsNames: []
|
||||
# - '*.example.com'
|
||||
|
||||
meshConfig:
|
||||
defaultConfig:
|
||||
proxyMetadata:
|
||||
# ISTIO_META_HTTP10: 1
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
istioctl
|
||||
istio-?.?.?
|
||||
istio
|
||||
istio.zdt
|
||||
|
|
|
@ -1,2 +1,31 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
|
||||
README.md.gotmpl
|
||||
*.patch
|
||||
*.sh
|
||||
*.py
|
||||
|
||||
istioctl
|
||||
istio-?.?.?
|
||||
|
|
|
@ -2,7 +2,7 @@ apiVersion: v2
|
|||
name: kubezero-istio
|
||||
description: KubeZero Umbrella Chart for Istio
|
||||
type: application
|
||||
version: 0.5.3
|
||||
version: 0.5.6
|
||||
appVersion: 1.9.3
|
||||
home: https://kubezero.com
|
||||
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
||||
|
|
|
@ -22,3 +22,9 @@ Installs the Istio control plane
|
|||
- https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#IstioOperatorSpec
|
||||
- https://github.com/istio/istio/blob/master/manifests/profiles/default.yaml
|
||||
- https://istio.io/latest/docs/setup/install/standalone-operator/
|
||||
|
||||
### Grafana
|
||||
- https://grafana.com/grafana/dashboards/7645
|
||||
- https://grafana.com/grafana/dashboards/7639
|
||||
- https://grafana.com/grafana/dashboards/7636
|
||||
- https://grafana.com/grafana/dashboards/7630
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
configmap: grafana-dashboards
|
||||
gzip: true
|
||||
folder: Istio
|
||||
condition: 'index .Values "istio-discovery" "telemetry" "enabled"'
|
||||
dashboards:
|
||||
- name: istio-control-plane
|
||||
url: https://grafana.com/api/dashboards/7645/revisions/60/download
|
||||
tags:
|
||||
- Istio
|
||||
- name: istio-mesh
|
||||
url: https://grafana.com/api/dashboards/7639/revisions/60/download
|
||||
tags:
|
||||
- Istio
|
||||
- name: istio-service
|
||||
url: https://grafana.com/api/dashboards/7636/revisions/60/download
|
||||
tags:
|
||||
- Istio
|
||||
- name: istio-workload
|
||||
url: https://grafana.com/api/dashboards/7630/revisions/60/download
|
||||
tags:
|
||||
- Istio
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/charts/kubezero-istio-ingress/charts/istio-ingress/templates/deployment.yaml b/charts/kubezero-istio-ingress/charts/istio-ingress/templates/deployment.yaml
|
||||
index b69da65..b5137a4 100644
|
||||
--- a/charts/kubezero-istio-ingress/charts/istio-ingress/templates/deployment.yaml
|
||||
+++ b/charts/kubezero-istio-ingress/charts/istio-ingress/templates/deployment.yaml
|
||||
@@ -63,6 +63,7 @@ spec:
|
||||
{{- if .Values.global.priorityClassName }}
|
||||
priorityClassName: "{{ .Values.global.priorityClassName }}"
|
||||
{{- end }}
|
||||
+ terminationGracePeriodSeconds: 90
|
||||
{{- if .Values.global.proxy.enableCoreDump }}
|
||||
initContainers:
|
||||
- name: enable-core-dump
|
|
@ -1,16 +0,0 @@
|
|||
diff --git a/charts/kubezero-istio/charts/istio-discovery/templates/deployment.yaml b/charts/kubezero-istio/charts/istio-discovery/templates/deployment.yaml
|
||||
index e4a983a..ba586de 100644
|
||||
--- a/charts/kubezero-istio/charts/istio-discovery/templates/deployment.yaml
|
||||
+++ b/charts/kubezero-istio/charts/istio-discovery/templates/deployment.yaml
|
||||
@@ -59,6 +59,11 @@ spec:
|
||||
{{- end }}
|
||||
securityContext:
|
||||
fsGroup: 1337
|
||||
+ nodeSelector:
|
||||
+ node-role.kubernetes.io/master: ""
|
||||
+ tolerations:
|
||||
+ - effect: NoSchedule
|
||||
+ key: node-role.kubernetes.io/master
|
||||
containers:
|
||||
- name: discovery
|
||||
{{- if contains "/" .Values.pilot.image }}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,17 @@
|
|||
{{- if index .Values "istio-discovery" "telemetry" "enabled" }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: istio-component-monitor
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
spec:
|
||||
jobLabel: istio
|
||||
targetLabels: [app]
|
||||
selector:
|
||||
matchExpressions:
|
||||
- {key: istio, operator: In, values: [pilot]}
|
||||
endpoints:
|
||||
- port: http-monitoring
|
||||
{{- end }}
|
|
@ -1,37 +1,40 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
### TODO
|
||||
# - https://istio.io/latest/docs/ops/configuration/security/harden-docker-images/
|
||||
|
||||
export ISTIO_VERSION=1.9.3
|
||||
|
||||
if [ ! -d istio-$ISTIO_VERSION ]; then
|
||||
NAME="istio-$ISTIO_VERSION"
|
||||
URL="https://github.com/istio/istio/releases/download/${ISTIO_VERSION}/istio-${ISTIO_VERSION}-linux-amd64.tar.gz"
|
||||
|
||||
curl -sL "$URL" | tar xz
|
||||
fi
|
||||
|
||||
# Extract control plane charts
|
||||
rm -rf charts/base charts/istio-*
|
||||
cp -r istio-${ISTIO_VERSION}/manifests/charts/base charts/
|
||||
cp -r istio-${ISTIO_VERSION}/manifests/charts/istio-control/istio-discovery charts/
|
||||
|
||||
# Patch for istiod to control plane
|
||||
patch -p3 -i istio-discovery.patch --no-backup-if-mismatch
|
||||
rm -rf istio
|
||||
curl -sL "https://github.com/istio/istio/releases/download/${ISTIO_VERSION}/istio-${ISTIO_VERSION}-linux-amd64.tar.gz" | tar xz
|
||||
mv istio-${ISTIO_VERSION} istio
|
||||
|
||||
# remove unused old telemetry filters
|
||||
rm -f charts/istio-discovery/templates/telemetryv2_1.[678].yaml
|
||||
rm -f istio/manifests/charts/istio-control/istio-discovery/templates/telemetryv2_1.[678].yaml
|
||||
|
||||
# Ingress charts
|
||||
# Patch
|
||||
patch -p0 -i zdt.patch --no-backup-if-mismatch
|
||||
|
||||
### Create kubezero istio charts
|
||||
|
||||
# remove previous charts
|
||||
rm -rf charts/base charts/istio-*
|
||||
|
||||
# create istio main chart
|
||||
cp -r istio/manifests/charts/base charts/
|
||||
cp -r istio/manifests/charts/istio-control/istio-discovery charts/
|
||||
|
||||
# Create ingress charts
|
||||
rm -rf ../kubezero-istio-ingress/charts/istio-*
|
||||
cp -r istio-${ISTIO_VERSION}/manifests/charts/gateways/istio-ingress ../kubezero-istio-ingress/charts/
|
||||
cp -r istio-${ISTIO_VERSION}/manifests/charts/gateways/istio-ingress ../kubezero-istio-ingress/charts/istio-private-ingress
|
||||
cp -r istio/manifests/charts/gateways/istio-ingress ../kubezero-istio-ingress/charts/
|
||||
cp -r istio/manifests/charts/gateways/istio-ingress ../kubezero-istio-ingress/charts/istio-private-ingress
|
||||
|
||||
# Rename private chart
|
||||
sed -i -e 's/name: istio-ingress/name: istio-private-ingress/' ../kubezero-istio-ingress/charts/istio-private-ingress/Chart.yaml
|
||||
|
||||
# Patch for ingress for extended termination grace period
|
||||
patch -i ingress-terminationgraceperiod.patch ../kubezero-istio-ingress/charts/istio-ingress/templates/deployment.yaml --no-backup-if-mismatch
|
||||
patch -i ingress-terminationgraceperiod.patch ../kubezero-istio-ingress/charts/istio-private-ingress/templates/deployment.yaml --no-backup-if-mismatch
|
||||
|
||||
# Get matching istioctl
|
||||
[ -x istioctl ] && [ "$(./istioctl version --remote=false)" == $ISTIO_VERSION ] || { curl -sL https://github.com/istio/istio/releases/download/${ISTIO_VERSION}/istioctl-${ISTIO_VERSION}-linux-amd64.tar.gz | tar xz; chmod +x istioctl; }
|
||||
|
||||
# Fetch dashboards from Grafana.com and update ZDT CM
|
||||
../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
global:
|
||||
# hub: docker.io/istio
|
||||
# tag: 1.9.0
|
||||
# tag: 1.9.3
|
||||
|
||||
logAsJson: true
|
||||
jwtPolicy: first-party-jwt
|
||||
|
@ -35,13 +35,5 @@ istio-discovery:
|
|||
enabled: false
|
||||
|
||||
meshConfig:
|
||||
defaultConfig:
|
||||
terminationDrainDuration: 60s
|
||||
# proxyMetadata:
|
||||
# ISTIO_META_HTTP10: '"1"'
|
||||
accessLogFile: /dev/stdout
|
||||
accessLogEncoding: 'JSON'
|
||||
h2UpgradePolicy: 'DO_NOT_UPGRADE'
|
||||
tcpKeepalive:
|
||||
interval: 30s
|
||||
time: 60s
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
diff -turN istio/manifests/charts/gateways/istio-ingress/templates/deployment.yaml istio.zdt/manifests/charts/gateways/istio-ingress/templates/deployment.yaml
|
||||
--- istio/manifests/charts/gateways/istio-ingress/templates/deployment.yaml 2021-04-11 01:57:29.000000000 +0200
|
||||
+++ istio.zdt/manifests/charts/gateways/istio-ingress/templates/deployment.yaml 2021-04-20 12:20:04.401862116 +0200
|
||||
@@ -17,6 +17,8 @@
|
||||
{{- if $gateway.replicaCount }}
|
||||
replicas: {{ $gateway.replicaCount }}
|
||||
{{- end }}
|
||||
+ # Give the LB 120s to detect and take into service, should only be 40s by we are on AWS so ??
|
||||
+ minReadySeconds: 120
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
@@ -69,6 +71,7 @@
|
||||
{{- if .Values.global.priorityClassName }}
|
||||
priorityClassName: "{{ .Values.global.priorityClassName }}"
|
||||
{{- end }}
|
||||
+ terminationGracePeriodSeconds: 120
|
||||
{{- if .Values.global.proxy.enableCoreDump }}
|
||||
initContainers:
|
||||
- name: enable-core-dump
|
||||
@@ -140,6 +143,11 @@
|
||||
privileged: false
|
||||
readOnlyRootFilesystem: true
|
||||
{{- end }}
|
||||
+ #This needs kube-proxy support coming with 1.22 hopefully, cilium ?
|
||||
+ #lifecycle:
|
||||
+ # preStop:
|
||||
+ # exec:
|
||||
+ # command: ["/bin/sh","-c","sleep 30"]
|
||||
readinessProbe:
|
||||
failureThreshold: 30
|
||||
httpGet:
|
||||
diff -turN istio/manifests/charts/istio-control/istio-discovery/templates/deployment.yaml istio.zdt/manifests/charts/istio-control/istio-discovery/templates/deployment.yaml
|
||||
--- istio/manifests/charts/istio-control/istio-discovery/templates/deployment.yaml 2021-04-11 01:57:29.000000000 +0200
|
||||
+++ istio.zdt/manifests/charts/istio-control/istio-discovery/templates/deployment.yaml 2021-04-19 21:55:45.461749267 +0200
|
||||
@@ -60,6 +60,11 @@
|
||||
{{- end }}
|
||||
securityContext:
|
||||
fsGroup: 1337
|
||||
+ nodeSelector:
|
||||
+ node-role.kubernetes.io/master: ""
|
||||
+ tolerations:
|
||||
+ - effect: NoSchedule
|
||||
+ key: node-role.kubernetes.io/master
|
||||
containers:
|
||||
- name: discovery
|
||||
{{- if contains "/" .Values.pilot.image }}
|
|
@ -2,7 +2,7 @@ apiVersion: v2
|
|||
name: kubezero-kiam
|
||||
description: KubeZero Umbrella Chart for Kiam
|
||||
type: application
|
||||
version: 0.3.3
|
||||
version: 0.3.4
|
||||
appVersion: "4.0"
|
||||
home: https://kubezero.com
|
||||
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
configmap: grafana-dashboards-kiam
|
||||
condition: '.Values.kiam.server.prometheus.servicemonitor.enabled'
|
||||
gzip: true
|
||||
folder: AWS
|
||||
dashboards:
|
||||
- name: kiam
|
||||
url: https://raw.githubusercontent.com/uswitch/kiam/master/docs/dashboard-prom.json
|
||||
tags: ['AWS']
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
# Fetch dashboards
|
||||
../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml
|
|
@ -0,0 +1,14 @@
|
|||
configmap: grafana-dashboards
|
||||
gzip: true
|
||||
folder: Logging
|
||||
condition: '.Values.es.prometheus'
|
||||
dashboards:
|
||||
- name: fluent-logging
|
||||
url: https://grafana.com/api/dashboards/7752/revisions/4/download
|
||||
#url: https://grafana.com/api/dashboards/13042/revisions/2/download
|
||||
tags:
|
||||
- Fluent
|
||||
- name: elasticsearch-logging
|
||||
url: https://grafana.com/api/dashboards/266/revisions/4/download
|
||||
tags:
|
||||
- ECK
|
File diff suppressed because one or more lines are too long
|
@ -15,3 +15,6 @@ rm -rf charts/fluentd
|
|||
curl -L -s -o - https://github.com/fluent/helm-charts/releases/download/fluentd-${FLUENTD_VERSION}/fluentd-${FLUENTD_VERSION}.tgz | tar xfz - -C charts
|
||||
|
||||
patch -i fluentd.patch -p0 --no-backup-if-mismatch
|
||||
|
||||
# Fetch dashboards from Grafana.com and update ZDT CM
|
||||
../kubezero-metrics/sync_grafana_dashboards.py dashboards.yaml templates/grafana-dashboards.yaml
|
||||
|
|
|
@ -205,7 +205,7 @@ fluent-bit:
|
|||
enabled: false
|
||||
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
enabled: false
|
||||
selector:
|
||||
release: metrics
|
||||
|
||||
|
@ -216,7 +216,7 @@ fluent-bit:
|
|||
resources:
|
||||
requests:
|
||||
cpu: 20m
|
||||
memory: 16Mi
|
||||
memory: 32Mi
|
||||
limits:
|
||||
memory: 64Mi
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
dashboards/vendor
|
|
@ -21,3 +21,9 @@
|
|||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
|
||||
README.md.gotmpl
|
||||
*.patch
|
||||
*.sh
|
||||
*.py
|
||||
dashboards
|
||||
|
|
|
@ -2,7 +2,7 @@ apiVersion: v2
|
|||
name: kubezero-metrics
|
||||
description: KubeZero Umbrella Chart for prometheus-operator
|
||||
type: application
|
||||
version: 0.3.5
|
||||
version: 0.4.0
|
||||
home: https://kubezero.com
|
||||
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
||||
keywords:
|
||||
|
@ -16,7 +16,7 @@ dependencies:
|
|||
version: ">= 0.1.3"
|
||||
repository: https://zero-down-time.github.io/kubezero/
|
||||
- name: kube-prometheus-stack
|
||||
version: 14.9.0
|
||||
version: 15.2.0
|
||||
# Switch back to upstream once all alerts are fixed eg. etcd gpcr
|
||||
# repository: https://prometheus-community.github.io/helm-charts
|
||||
- name: prometheus-adapter
|
||||
|
|
|
@ -6,7 +6,7 @@ annotations:
|
|||
url: https://github.com/prometheus-operator/kube-prometheus
|
||||
artifacthub.io/operator: "true"
|
||||
apiVersion: v2
|
||||
appVersion: 0.46.0
|
||||
appVersion: 0.47.0
|
||||
dependencies:
|
||||
- condition: kubeStateMetrics.enabled
|
||||
name: kube-state-metrics
|
||||
|
@ -19,7 +19,7 @@ dependencies:
|
|||
- condition: grafana.enabled
|
||||
name: grafana
|
||||
repository: https://grafana.github.io/helm-charts
|
||||
version: 6.7.*
|
||||
version: 6.8.*
|
||||
description: kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards, and Prometheus rules combined with documentation and scripts to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator.
|
||||
home: https://github.com/prometheus-operator/kube-prometheus
|
||||
icon: https://raw.githubusercontent.com/prometheus/prometheus.github.io/master/assets/prometheus_logo-cb55bb5c346.png
|
||||
|
@ -44,4 +44,4 @@ sources:
|
|||
- https://github.com/prometheus-community/helm-charts
|
||||
- https://github.com/prometheus-operator/kube-prometheus
|
||||
type: application
|
||||
version: 14.9.0
|
||||
version: 15.2.0
|
||||
|
|
|
@ -83,6 +83,19 @@ _See [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) for command documen
|
|||
|
||||
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
|
||||
|
||||
### From 14.x to 15.x
|
||||
Version 15 upgrades prometheus-operator from 0.46.x to 0.47.x. Helm does not automatically upgrade or install new CRDs on a chart upgrade, so you have to install the CRDs manually before updating:
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
|
||||
```
|
||||
|
||||
### From 13.x to 14.x
|
||||
|
||||
Version 14 upgrades prometheus-operator from 0.45.x to 0.46.x. Helm does not automatically upgrade or install new CRDs on a chart upgrade, so you have to install the CRDs manually before updating:
|
||||
|
|
|
@ -19,4 +19,4 @@ name: grafana
|
|||
sources:
|
||||
- https://github.com/grafana/grafana
|
||||
type: application
|
||||
version: 6.7.4
|
||||
version: 6.8.0
|
||||
|
|
|
@ -63,6 +63,7 @@ This version requires Helm >= 3.1.0.
|
|||
| `image.sha` | Image sha (optional) | `2b56f6106ddc376bb46d974230d530754bf65a640dfbc5245191d72d3b49efc6` |
|
||||
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `image.pullSecrets` | Image pull secrets | `{}` |
|
||||
| `service.enabled` | Enable grafana service | `true` |
|
||||
| `service.type` | Kubernetes service type | `ClusterIP` |
|
||||
| `service.port` | Kubernetes port where service is exposed | `80` |
|
||||
| `service.portName` | Name of the port on the service | `service` |
|
||||
|
@ -215,6 +216,7 @@ This version requires Helm >= 3.1.0.
|
|||
| `imageRenderer.securityContext` | image-renderer deployment securityContext | `{}` |
|
||||
| `imageRenderer.hostAliases` | image-renderer deployment Host Aliases | `[]` |
|
||||
| `imageRenderer.priorityClassName` | image-renderer deployment priority class | `''` |
|
||||
| `imageRenderer.service.enabled` | Enable the image-renderer service | `true` |
|
||||
| `imageRenderer.service.portName` | image-renderer service port name | `'http'` |
|
||||
| `imageRenderer.service.port` | image-renderer service port used by both service and deployment | `8081` |
|
||||
| `imageRenderer.grafanaSubPath` | Grafana sub path to use for image renderer callback url | `''` |
|
||||
|
|
|
@ -197,11 +197,16 @@ containers:
|
|||
- name: FOLDER_ANNOTATION
|
||||
value: "{{ .Values.sidecar.dashboards.folderAnnotation }}"
|
||||
{{- end }}
|
||||
- name: SCRIPT
|
||||
value: /opt/script.sh
|
||||
resources:
|
||||
{{ toYaml .Values.sidecar.resources | indent 6 }}
|
||||
volumeMounts:
|
||||
- name: sc-dashboard-volume
|
||||
mountPath: {{ .Values.sidecar.dashboards.folder | quote }}
|
||||
- name: script-volume
|
||||
mountPath: /opt/script.sh
|
||||
subPath: script.sh
|
||||
{{- end}}
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- if .Values.image.sha }}
|
||||
|
|
|
@ -19,8 +19,10 @@ data:
|
|||
{{- range $elem, $elemVal := $value }}
|
||||
{{- if kindIs "invalid" $elemVal }}
|
||||
{{ $elem }} =
|
||||
{{- else if kindIs "string" $elemVal }}
|
||||
{{ $elem }} = {{ tpl $elemVal $ }}
|
||||
{{- else }}
|
||||
{{ $elem }} = {{ tpl (toYaml $elemVal) $ }}
|
||||
{{ $elem }} = {{ $elemVal }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{{ if .Values.imageRenderer.enabled }}
|
||||
{{ if .Values.imageRenderer.service.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
@ -26,3 +27,4 @@ spec:
|
|||
selector:
|
||||
{{- include "grafana.imageRenderer.selectorLabels" . | nindent 4 }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
{{ if .Values.service.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
@ -47,4 +48,4 @@ spec:
|
|||
{{- end }}
|
||||
selector:
|
||||
{{- include "grafana.selectorLabels" . | nindent 4 }}
|
||||
|
||||
{{ end }}
|
||||
|
|
|
@ -125,6 +125,7 @@ podPortName: grafana
|
|||
## ref: http://kubernetes.io/docs/user-guide/services/
|
||||
##
|
||||
service:
|
||||
enabled: true
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
targetPort: 3000
|
||||
|
@ -688,6 +689,8 @@ imageRenderer:
|
|||
# image-renderer deployment priority class
|
||||
priorityClassName: ''
|
||||
service:
|
||||
# Enable the image-renderer service
|
||||
enabled: true
|
||||
# image-renderer service port name
|
||||
portName: 'http'
|
||||
# image-renderer service port used by both service and deployment
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
@ -161,7 +161,7 @@ spec:
|
|||
description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.
|
||||
type: string
|
||||
relabelings:
|
||||
description: 'RelabelConfigs to apply to samples before ingestion. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
||||
description: 'RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields and replaces original scrape job name with __tmp_prometheus_job_name. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
||||
items:
|
||||
description: 'RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
||||
properties:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
@ -35,6 +35,55 @@ spec:
|
|||
spec:
|
||||
description: Specification of desired Ingress selection for target discovery by Prometheus.
|
||||
properties:
|
||||
basicAuth:
|
||||
description: 'BasicAuth allow an endpoint to authenticate over basic authentication. More info: https://prometheus.io/docs/operating/configuration/#endpoint'
|
||||
properties:
|
||||
password:
|
||||
description: The secret in the service monitor namespace that contains the password for authentication.
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
username:
|
||||
description: The secret in the service monitor namespace that contains the username for authentication.
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
type: object
|
||||
bearerTokenSecret:
|
||||
description: Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the probe and accessible by the Prometheus Operator.
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
interval:
|
||||
description: Interval at which targets are probed using the configured prober. If not specified Prometheus' global scrape interval is used.
|
||||
type: string
|
||||
|
@ -188,6 +237,99 @@ spec:
|
|||
type: array
|
||||
type: object
|
||||
type: object
|
||||
tlsConfig:
|
||||
description: TLS configuration to use when scraping the endpoint.
|
||||
properties:
|
||||
ca:
|
||||
description: Struct containing the CA cert to use for the targets.
|
||||
properties:
|
||||
configMap:
|
||||
description: ConfigMap containing data to use for the targets.
|
||||
properties:
|
||||
key:
|
||||
description: The key to select.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the ConfigMap or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
secret:
|
||||
description: Secret containing data to use for the targets.
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
type: object
|
||||
cert:
|
||||
description: Struct containing the client cert file for the targets.
|
||||
properties:
|
||||
configMap:
|
||||
description: ConfigMap containing data to use for the targets.
|
||||
properties:
|
||||
key:
|
||||
description: The key to select.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the ConfigMap or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
secret:
|
||||
description: Secret containing data to use for the targets.
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
type: object
|
||||
insecureSkipVerify:
|
||||
description: Disable target certificate validation.
|
||||
type: boolean
|
||||
keySecret:
|
||||
description: Secret containing the client key file for the targets.
|
||||
properties:
|
||||
key:
|
||||
description: The key of the secret to select from. Must be a valid secret key.
|
||||
type: string
|
||||
name:
|
||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||
type: string
|
||||
optional:
|
||||
description: Specify whether the Secret or its key must be defined
|
||||
type: boolean
|
||||
required:
|
||||
- key
|
||||
type: object
|
||||
serverName:
|
||||
description: Used to verify the hostname for the targets.
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
required:
|
||||
- spec
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
@ -1467,6 +1467,11 @@ spec:
|
|||
enableAdminAPI:
|
||||
description: 'Enable access to prometheus web admin API. Defaults to the value of `false`. WARNING: Enabling the admin APIs enables mutating endpoints, to delete data, shutdown Prometheus, and more. Enabling this should be done with care and the user is advised to add additional authentication authorization via a proxy to ensure only clients authorized to perform these actions can do so. For more information see https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis'
|
||||
type: boolean
|
||||
enableFeatures:
|
||||
description: Enable access to Prometheus disabled features. By default, no features are enabled. Enabling disabled features is entirely outside the scope of what the maintainers will support and by doing so, you accept that this behaviour may break at any time without notice. For more information see https://prometheus.io/docs/prometheus/latest/disabled_features/
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
enforcedNamespaceLabel:
|
||||
description: EnforcedNamespaceLabel enforces adding a namespace label of origin for each alert and metric that is user created. The label value will always be the namespace of the object that is being created.
|
||||
type: string
|
||||
|
@ -2465,7 +2470,7 @@ spec:
|
|||
type: object
|
||||
type: object
|
||||
bearerToken:
|
||||
description: bearer token for remote read.
|
||||
description: Bearer token for remote read.
|
||||
type: string
|
||||
bearerTokenFile:
|
||||
description: File to read bearer token for remote read.
|
||||
|
@ -2636,7 +2641,7 @@ spec:
|
|||
type: object
|
||||
type: object
|
||||
bearerToken:
|
||||
description: File to read bearer token for remote write.
|
||||
description: Bearer token for remote write.
|
||||
type: string
|
||||
bearerTokenFile:
|
||||
description: File to read bearer token for remote write.
|
||||
|
@ -2646,6 +2651,16 @@ spec:
|
|||
type: string
|
||||
description: Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. Only valid in Prometheus versions 2.25.0 and newer.
|
||||
type: object
|
||||
metadataConfig:
|
||||
description: MetadataConfig configures the sending of series metadata to remote storage.
|
||||
properties:
|
||||
send:
|
||||
description: Whether metric metadata is sent to remote storage or not.
|
||||
type: boolean
|
||||
sendInterval:
|
||||
description: How frequently metric metadata is sent to remote storage.
|
||||
type: string
|
||||
type: object
|
||||
name:
|
||||
description: The name of the remote write queue, must be unique if specified. The name is used in metrics and logging in order to differentiate queues. Only valid in Prometheus versions 2.15.0 and newer.
|
||||
type: string
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
@ -149,7 +149,7 @@ spec:
|
|||
description: ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.
|
||||
type: string
|
||||
relabelings:
|
||||
description: 'RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
||||
description: 'RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields and replaces original scrape job name with __tmp_prometheus_job_name. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
||||
items:
|
||||
description: 'RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
||||
properties:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.46.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
|
||||
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.47.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
|
|
|
@ -46,6 +46,10 @@ The longest name that gets created adds and extra 37 characters, so truncation s
|
|||
|
||||
{{/* Generate basic labels */}}
|
||||
{{- define "kube-prometheus-stack.labels" }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/version: "{{ .Chart.Version }}"
|
||||
app.kubernetes.io/part-of: {{ template "kube-prometheus-stack.name" . }}
|
||||
chart: {{ template "kube-prometheus-stack.chartref" . }}
|
||||
release: {{ $.Release.Name | quote }}
|
||||
heritage: {{ $.Release.Service | quote }}
|
||||
|
|
|
@ -91,7 +91,7 @@ spec:
|
|||
labelSelector:
|
||||
matchExpressions:
|
||||
- {key: app, operator: In, values: [alertmanager]}
|
||||
- {key: prometheus, operator: In, values: [{{ template "kube-prometheus-stack.fullname" . }}-alertmanager]}
|
||||
- {key: alertmanager, operator: In, values: [{{ template "kube-prometheus-stack.fullname" . }}-alertmanager]}
|
||||
{{- else if eq .Values.alertmanager.alertmanagerSpec.podAntiAffinity "soft" }}
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
|
|
|
@ -4,11 +4,13 @@
|
|||
{{- $servicePort := .Values.alertmanager.service.port -}}
|
||||
{{- $routePrefix := list .Values.alertmanager.alertmanagerSpec.routePrefix }}
|
||||
{{- $paths := .Values.alertmanager.ingress.paths | default $routePrefix -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{ end -}}
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $serviceName }}
|
||||
|
@ -41,8 +43,15 @@ spec:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else }}
|
||||
|
@ -54,8 +63,15 @@ spec:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.alertmanager.ingress.tls }}
|
||||
|
|
|
@ -11,11 +11,13 @@ metadata:
|
|||
items:
|
||||
{{ range $i, $e := until $count }}
|
||||
- kind: Ingress
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if $.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{ end -}}
|
||||
{{- end }}
|
||||
metadata:
|
||||
name: {{ include "kube-prometheus-stack.fullname" $ }}-alertmanager-{{ $i }}
|
||||
namespace: {{ template "kube-prometheus-stack.namespace" $ }}
|
||||
|
@ -45,8 +47,15 @@ items:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ include "kube-prometheus-stack.fullname" $ }}-alertmanager-{{ $i }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ include "kube-prometheus-stack.fullname" $ }}-alertmanager-{{ $i }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- if or $ingressValues.tlsSecretName $ingressValues.tlsSecretPerReplica.enabled }}
|
||||
tls:
|
||||
|
|
|
@ -6,6 +6,8 @@ metadata:
|
|||
namespace: {{ template "kube-prometheus-stack.namespace" . }}
|
||||
labels:
|
||||
app: {{ template "kube-prometheus-stack.name" . }}-alertmanager
|
||||
app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-alertmanager
|
||||
app.kubernetes.io/component: alertmanager
|
||||
{{ include "kube-prometheus-stack.labels" . | indent 4 }}
|
||||
{{- if .Values.alertmanager.serviceAccount.annotations }}
|
||||
annotations:
|
||||
|
|
|
@ -6,6 +6,8 @@ metadata:
|
|||
namespace: {{ template "kube-prometheus-stack.namespace" . }}
|
||||
labels:
|
||||
app: {{ template "kube-prometheus-stack.name" . }}-operator
|
||||
app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus-operator
|
||||
app.kubernetes.io/component: prometheus-operator
|
||||
{{ include "kube-prometheus-stack.labels" . | indent 4 }}
|
||||
imagePullSecrets:
|
||||
{{ toYaml .Values.global.imagePullSecrets | indent 2 }}
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
{{- if and .Values.prometheus.enabled .Values.prometheus.ingress.enabled }}
|
||||
{{- $pathType := .Values.prometheus.ingress.pathType | default "" }}
|
||||
{{- $serviceName := printf "%s-%s" (include "kube-prometheus-stack.fullname" .) "prometheus" }}
|
||||
{{- if and .Values.prometheus.enabled .Values.prometheus.ingress.enabled -}}
|
||||
{{- $pathType := .Values.prometheus.ingress.pathType | default "" -}}
|
||||
{{- $serviceName := printf "%s-%s" (include "kube-prometheus-stack.fullname" .) "prometheus" -}}
|
||||
{{- $servicePort := .Values.prometheus.service.port -}}
|
||||
{{- $routePrefix := list .Values.prometheus.prometheusSpec.routePrefix }}
|
||||
{{- $routePrefix := list .Values.prometheus.prometheusSpec.routePrefix -}}
|
||||
{{- $paths := .Values.prometheus.ingress.paths | default $routePrefix -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{ end -}}
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
{{- if .Values.prometheus.ingress.annotations }}
|
||||
|
@ -41,8 +43,15 @@ spec:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else }}
|
||||
|
@ -54,8 +63,15 @@ spec:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.prometheus.ingress.tls }}
|
||||
|
|
|
@ -4,11 +4,13 @@
|
|||
{{- $thanosPort := .Values.prometheus.thanosIngress.servicePort -}}
|
||||
{{- $routePrefix := list .Values.prometheus.prometheusSpec.routePrefix }}
|
||||
{{- $paths := .Values.prometheus.thanosIngress.paths | default $routePrefix -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{ end -}}
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
{{- if .Values.prometheus.thanosIngress.annotations }}
|
||||
|
@ -40,8 +42,15 @@ spec:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $thanosPort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $thanosPort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else }}
|
||||
|
@ -53,8 +62,15 @@ spec:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $thanosPort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $thanosPort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.prometheus.thanosIngress.tls }}
|
||||
|
|
|
@ -11,11 +11,13 @@ metadata:
|
|||
items:
|
||||
{{ range $i, $e := until $count }}
|
||||
- kind: Ingress
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if $.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{ end -}}
|
||||
{{- end }}
|
||||
metadata:
|
||||
name: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-{{ $i }}
|
||||
namespace: {{ template "kube-prometheus-stack.namespace" $ }}
|
||||
|
@ -45,8 +47,15 @@ items:
|
|||
pathType: {{ $pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
|
||||
service:
|
||||
name: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-{{ $i }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{- else }}
|
||||
serviceName: {{ include "kube-prometheus-stack.fullname" $ }}-prometheus-{{ $i }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- if or $ingressValues.tlsSecretName $ingressValues.tlsSecretPerReplica.enabled }}
|
||||
tls:
|
||||
|
|
|
@ -70,6 +70,12 @@ spec:
|
|||
logFormat: {{ .Values.prometheus.prometheusSpec.logFormat }}
|
||||
listenLocal: {{ .Values.prometheus.prometheusSpec.listenLocal }}
|
||||
enableAdminAPI: {{ .Values.prometheus.prometheusSpec.enableAdminAPI }}
|
||||
{{- if .Values.prometheus.prometheusSpec.enableFeatures }}
|
||||
enableFeatures:
|
||||
{{- range $enableFeatures := .Values.prometheus.prometheusSpec.enableFeatures }}
|
||||
- {{ tpl $enableFeatures $ }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.prometheus.prometheusSpec.scrapeInterval }}
|
||||
scrapeInterval: {{ .Values.prometheus.prometheusSpec.scrapeInterval }}
|
||||
{{- end }}
|
||||
|
|
|
@ -6,6 +6,8 @@ metadata:
|
|||
namespace: {{ template "kube-prometheus-stack.namespace" . }}
|
||||
labels:
|
||||
app: {{ template "kube-prometheus-stack.name" . }}-prometheus
|
||||
app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus
|
||||
app.kubernetes.io/component: prometheus
|
||||
{{ include "kube-prometheus-stack.labels" . | indent 4 }}
|
||||
{{- if .Values.prometheus.serviceAccount.annotations }}
|
||||
annotations:
|
||||
|
|
|
@ -1536,7 +1536,7 @@ prometheusOperator:
|
|||
##
|
||||
image:
|
||||
repository: quay.io/prometheus-operator/prometheus-operator
|
||||
tag: v0.46.0
|
||||
tag: v0.47.0
|
||||
sha: ""
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
|
@ -1552,7 +1552,7 @@ prometheusOperator:
|
|||
##
|
||||
prometheusConfigReloaderImage:
|
||||
repository: quay.io/prometheus-operator/prometheus-config-reloader
|
||||
tag: v0.46.0
|
||||
tag: v0.47.0
|
||||
sha: ""
|
||||
|
||||
## Set the prometheus config reloader side-car CPU limit
|
||||
|
@ -1868,6 +1868,11 @@ prometheus:
|
|||
##
|
||||
enableAdminAPI: false
|
||||
|
||||
# EnableFeatures API enables access to Prometheus disabled features.
|
||||
# ref: https://prometheus.io/docs/prometheus/latest/disabled_features/
|
||||
enableFeatures: []
|
||||
# - exemplar-storage
|
||||
|
||||
## Image of Prometheus.
|
||||
##
|
||||
image:
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
jb update
|
||||
|
||||
mkdir -p kube-mixin
|
||||
jsonnet -J vendor -m kube-mixin -e '(import "mixin.libsonnet").grafanaDashboards'
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"version": 1,
|
||||
"dependencies": [
|
||||
{
|
||||
"source": {
|
||||
"git": {
|
||||
"remote": "https://github.com/kubernetes-monitoring/kubernetes-mixin.git",
|
||||
"subdir": ""
|
||||
}
|
||||
},
|
||||
"version": "master"
|
||||
}
|
||||
],
|
||||
"legacyImports": true
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"version": 1,
|
||||
"dependencies": [
|
||||
{
|
||||
"source": {
|
||||
"git": {
|
||||
"remote": "https://github.com/grafana/grafonnet-lib.git",
|
||||
"subdir": "grafonnet"
|
||||
}
|
||||
},
|
||||
"version": "55cf4ee53ced2b6d3ce96ecce9fb813b4465be98",
|
||||
"sum": "4/sUV0Kk+o8I+wlYxL9R6EPhL/NiLfYHk+NXlU64RUk="
|
||||
},
|
||||
{
|
||||
"source": {
|
||||
"git": {
|
||||
"remote": "https://github.com/grafana/jsonnet-libs.git",
|
||||
"subdir": "grafana-builder"
|
||||
}
|
||||
},
|
||||
"version": "970b0dd2fc5b896406eba258cad78b7e0b0f18bf",
|
||||
"sum": "GRf2GvwEU4jhXV+JOonXSZ4wdDv8mnHBPCQ6TUVd+g8="
|
||||
},
|
||||
{
|
||||
"source": {
|
||||
"git": {
|
||||
"remote": "https://github.com/kubernetes-monitoring/kubernetes-mixin.git",
|
||||
"subdir": ""
|
||||
}
|
||||
},
|
||||
"version": "39a9cda705b5201c35105bd1f24c83923fa839ef",
|
||||
"sum": "8GmlcgCeC46NSHfRBebyqUOJCG1YvqvuGMj98u+Pge4="
|
||||
}
|
||||
],
|
||||
"legacyImports": false
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
configmap: grafana-dashboards-kube-mixin
|
||||
gzip: true
|
||||
folder: Kubernetes
|
||||
dashboards:
|
||||
- name: coreDNS
|
||||
url: https://grafana.com/api/dashboards/12539/revisions/5/download
|
||||
tags: ['kubernetes', 'DNS']
|
||||
- name: etcd
|
||||
url: https://grafana.com/api/dashboards/3070/revisions/3/download
|
||||
tags: ['kubernetes']
|
||||
# cd kube-mixin; for f in *.json; do echo "- name: ${f%%.json}" >> ../dashboards.yaml; echo " url: file://kube-mixin/$f" >> ../dashboards.yaml; done; cd -
|
||||
- name: apiserver
|
||||
url: file://kube-mixin/apiserver.json
|
||||
- name: cluster-total
|
||||
url: file://kube-mixin/cluster-total.json
|
||||
- name: controller-manager
|
||||
url: file://kube-mixin/controller-manager.json
|
||||
- name: k8s-resources-cluster
|
||||
url: file://kube-mixin/k8s-resources-cluster.json
|
||||
- name: k8s-resources-namespace
|
||||
url: file://kube-mixin/k8s-resources-namespace.json
|
||||
- name: k8s-resources-node
|
||||
url: file://kube-mixin/k8s-resources-node.json
|
||||
- name: k8s-resources-pod
|
||||
url: file://kube-mixin/k8s-resources-pod.json
|
||||
- name: k8s-resources-workload
|
||||
url: file://kube-mixin/k8s-resources-workload.json
|
||||
- name: k8s-resources-workloads-namespace
|
||||
url: file://kube-mixin/k8s-resources-workloads-namespace.json
|
||||
- name: kubelet
|
||||
url: file://kube-mixin/kubelet.json
|
||||
- name: namespace-by-pod
|
||||
url: file://kube-mixin/namespace-by-pod.json
|
||||
- name: namespace-by-workload
|
||||
url: file://kube-mixin/namespace-by-workload.json
|
||||
- name: persistentvolumesusage
|
||||
url: file://kube-mixin/persistentvolumesusage.json
|
||||
- name: pod-total
|
||||
url: file://kube-mixin/pod-total.json
|
||||
- name: proxy
|
||||
url: file://kube-mixin/proxy.json
|
||||
- name: scheduler
|
||||
url: file://kube-mixin/scheduler.json
|
||||
- name: workload-total
|
||||
url: file://kube-mixin/workload-total.json
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,833 @@
|
|||
{
|
||||
"annotations": {
|
||||
"list": [ ]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"hideControls": false,
|
||||
"links": [ ],
|
||||
"refresh": "10s",
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 10,
|
||||
"id": 1,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 0,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null as zero",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", node=~\"$node\"}) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
"legendLink": null,
|
||||
"step": 10
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU Usage",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "CPU Usage",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"id": 2,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null as zero",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"styles": [
|
||||
{
|
||||
"alias": "Time",
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"pattern": "Time",
|
||||
"type": "hidden"
|
||||
},
|
||||
{
|
||||
"alias": "CPU Usage",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #A",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "CPU Requests",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #B",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "CPU Requests %",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #C",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "percentunit"
|
||||
},
|
||||
{
|
||||
"alias": "CPU Limits",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #D",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "CPU Limits %",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #E",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "percentunit"
|
||||
},
|
||||
{
|
||||
"alias": "Pod",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "pod",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"pattern": "/.*/",
|
||||
"thresholds": [ ],
|
||||
"type": "string",
|
||||
"unit": "short"
|
||||
}
|
||||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", node=~\"$node\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "A",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(kube_pod_container_resource_requests{cluster=\"$cluster\", node=~\"$node\", resource=\"cpu\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "B",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", node=~\"$node\"}) by (pod) / sum(kube_pod_container_resource_requests{cluster=\"$cluster\", node=~\"$node\", resource=\"cpu\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "C",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(kube_pod_container_resource_limits{cluster=\"$cluster\", node=~\"$node\", resource=\"cpu\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "D",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", node=~\"$node\"}) by (pod) / sum(kube_pod_container_resource_limits{cluster=\"$cluster\", node=~\"$node\", resource=\"cpu\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "E",
|
||||
"step": 10
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU Quota",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"transform": "table",
|
||||
"type": "table",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "CPU Quota",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 10,
|
||||
"id": 3,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 0,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null as zero",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 12,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{cluster=\"$cluster\", node=~\"$node\", container!=\"\"}) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
"legendLink": null,
|
||||
"step": 10
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory Usage (w/o cache)",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Memory Usage",
|
||||
"titleSize": "h6"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"height": "250px",
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null as zero",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"styles": [
|
||||
{
|
||||
"alias": "Time",
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"pattern": "Time",
|
||||
"type": "hidden"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Usage",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #A",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "bytes"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Requests",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #B",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "bytes"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Requests %",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #C",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "percentunit"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Limits",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #D",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "bytes"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Limits %",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #E",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "percentunit"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Usage (RSS)",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #F",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "bytes"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Usage (Cache)",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #G",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "bytes"
|
||||
},
|
||||
{
|
||||
"alias": "Memory Usage (Swap)",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "Value #H",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "bytes"
|
||||
},
|
||||
{
|
||||
"alias": "Pod",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"link": false,
|
||||
"linkTargetBlank": false,
|
||||
"linkTooltip": "Drill down",
|
||||
"linkUrl": "",
|
||||
"pattern": "pod",
|
||||
"thresholds": [ ],
|
||||
"type": "number",
|
||||
"unit": "short"
|
||||
},
|
||||
{
|
||||
"alias": "",
|
||||
"colorMode": null,
|
||||
"colors": [ ],
|
||||
"dateFormat": "YYYY-MM-DD HH:mm:ss",
|
||||
"decimals": 2,
|
||||
"pattern": "/.*/",
|
||||
"thresholds": [ ],
|
||||
"type": "string",
|
||||
"unit": "short"
|
||||
}
|
||||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{cluster=\"$cluster\", node=~\"$node\",container!=\"\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "A",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(kube_pod_container_resource_requests{cluster=\"$cluster\", node=~\"$node\", resource=\"memory\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "B",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{cluster=\"$cluster\", node=~\"$node\",container!=\"\"}) by (pod) / sum(kube_pod_container_resource_requests{cluster=\"$cluster\", node=~\"$node\", resource=\"memory\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "C",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(kube_pod_container_resource_limits{cluster=\"$cluster\", node=~\"$node\", resource=\"memory\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "D",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{cluster=\"$cluster\", node=~\"$node\",container!=\"\"}) by (pod) / sum(kube_pod_container_resource_limits{cluster=\"$cluster\", node=~\"$node\", resource=\"memory\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "E",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_rss{cluster=\"$cluster\", node=~\"$node\",container!=\"\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "F",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_cache{cluster=\"$cluster\", node=~\"$node\",container!=\"\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "G",
|
||||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(node_namespace_pod_container:container_memory_swap{cluster=\"$cluster\", node=~\"$node\",container!=\"\"}) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "H",
|
||||
"step": 10
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory Quota",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"transform": "table",
|
||||
"type": "table",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": true,
|
||||
"title": "Memory Quota",
|
||||
"titleSize": "h6"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 14,
|
||||
"style": "dark",
|
||||
"tags": [
|
||||
"kubernetes"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"current": {
|
||||
"text": "default",
|
||||
"value": "default"
|
||||
},
|
||||
"hide": 0,
|
||||
"label": null,
|
||||
"name": "datasource",
|
||||
"options": [ ],
|
||||
"query": "prometheus",
|
||||
"refresh": 1,
|
||||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "cluster",
|
||||
"options": [ ],
|
||||
"query": "label_values(kube_pod_info, cluster)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
"text": "",
|
||||
"value": ""
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": true,
|
||||
"name": "node",
|
||||
"options": [ ],
|
||||
"query": "label_values(kube_pod_info{cluster=\"$cluster\"}, node)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "UTC",
|
||||
"title": "Compute Resources / Node (Pods)",
|
||||
"uid": "200ac8fdbfbb74b39aff88118e4d1c2c",
|
||||
"version": 0
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,494 @@
|
|||
{
|
||||
"__inputs": [ ],
|
||||
"__requires": [ ],
|
||||
"annotations": {
|
||||
"list": [ ]
|
||||
},
|
||||
"editable": false,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [ ],
|
||||
"refresh": "10s",
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"collapsed": false,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 2,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 9,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(\n sum without(instance, node) (kubelet_volume_stats_capacity_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"})\n -\n sum without(instance, node) (kubelet_volume_stats_available_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"})\n)\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Used Space",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "sum without(instance, node) (kubelet_volume_stats_available_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"})\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Free Space",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Volume Space Usage",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": false,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(50, 172, 45, 0.97)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(245, 54, 54, 0.9)"
|
||||
],
|
||||
"datasource": "$datasource",
|
||||
"format": "percent",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": true,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"gridPos": { },
|
||||
"id": 3,
|
||||
"interval": null,
|
||||
"links": [ ],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
{
|
||||
"name": "value to text",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"name": "range to text",
|
||||
"value": 2
|
||||
}
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"rangeMaps": [
|
||||
{
|
||||
"from": "null",
|
||||
"text": "N/A",
|
||||
"to": "null"
|
||||
}
|
||||
],
|
||||
"span": 3,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"tableColumn": "",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max without(instance,node) (\n(\n kubelet_volume_stats_capacity_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"}\n -\n kubelet_volume_stats_available_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"}\n)\n/\nkubelet_volume_stats_capacity_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"}\n* 100)\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "80, 90",
|
||||
"title": "Volume Space Usage",
|
||||
"tooltip": {
|
||||
"shared": false
|
||||
},
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"op": "=",
|
||||
"text": "N/A",
|
||||
"value": "null"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": false,
|
||||
"title": "Dashboard Row",
|
||||
"titleSize": "h6",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"collapsed": false,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": true,
|
||||
"max": true,
|
||||
"min": true,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 9,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum without(instance, node) (kubelet_volume_stats_inodes_used{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"})\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "Used inodes",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "(\n sum without(instance, node) (kubelet_volume_stats_inodes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"})\n -\n sum without(instance, node) (kubelet_volume_stats_inodes_used{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"})\n)\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": " Free inodes",
|
||||
"refId": "B"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Volume inodes Usage",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "none",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "none",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": false,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"rgba(50, 172, 45, 0.97)",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"rgba(245, 54, 54, 0.9)"
|
||||
],
|
||||
"datasource": "$datasource",
|
||||
"format": "percent",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": true,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"gridPos": { },
|
||||
"id": 5,
|
||||
"interval": null,
|
||||
"links": [ ],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
{
|
||||
"name": "value to text",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"name": "range to text",
|
||||
"value": 2
|
||||
}
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"rangeMaps": [
|
||||
{
|
||||
"from": "null",
|
||||
"text": "N/A",
|
||||
"to": "null"
|
||||
}
|
||||
],
|
||||
"span": 3,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"tableColumn": "",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max without(instance,node) (\nkubelet_volume_stats_inodes_used{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"}\n/\nkubelet_volume_stats_inodes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\", persistentvolumeclaim=\"$volume\"}\n* 100)\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "80, 90",
|
||||
"title": "Volume inodes Usage",
|
||||
"tooltip": {
|
||||
"shared": false
|
||||
},
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"op": "=",
|
||||
"text": "N/A",
|
||||
"value": "null"
|
||||
}
|
||||
],
|
||||
"valueName": "current"
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": false,
|
||||
"title": "Dashboard Row",
|
||||
"titleSize": "h6",
|
||||
"type": "row"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 14,
|
||||
"style": "dark",
|
||||
"tags": [
|
||||
"kubernetes"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"current": {
|
||||
"text": "default",
|
||||
"value": "default"
|
||||
},
|
||||
"hide": 0,
|
||||
"label": null,
|
||||
"name": "datasource",
|
||||
"options": [ ],
|
||||
"query": "prometheus",
|
||||
"refresh": 1,
|
||||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": { },
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": "cluster",
|
||||
"multi": false,
|
||||
"name": "cluster",
|
||||
"options": [ ],
|
||||
"query": "label_values(kubelet_volume_stats_capacity_bytes, cluster)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": { },
|
||||
"datasource": "$datasource",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": "Namespace",
|
||||
"multi": false,
|
||||
"name": "namespace",
|
||||
"options": [ ],
|
||||
"query": "label_values(kubelet_volume_stats_capacity_bytes{cluster=\"$cluster\", job=\"kubelet\"}, namespace)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": { },
|
||||
"datasource": "$datasource",
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": "PersistentVolumeClaim",
|
||||
"multi": false,
|
||||
"name": "volume",
|
||||
"options": [ ],
|
||||
"query": "label_values(kubelet_volume_stats_capacity_bytes{cluster=\"$cluster\", job=\"kubelet\", namespace=\"$namespace\"}, persistentvolumeclaim)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-7d",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "UTC",
|
||||
"title": "Persistent Volumes",
|
||||
"uid": "919b92a8e8041bd567af9edab12c840c",
|
||||
"version": 0
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,955 @@
|
|||
{
|
||||
"__inputs": [ ],
|
||||
"__requires": [ ],
|
||||
"annotations": {
|
||||
"list": [ ]
|
||||
},
|
||||
"editable": false,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"hideControls": false,
|
||||
"id": null,
|
||||
"links": [ ],
|
||||
"refresh": "10s",
|
||||
"rows": [
|
||||
{
|
||||
"collapse": false,
|
||||
"collapsed": false,
|
||||
"panels": [
|
||||
{
|
||||
"cacheTimeout": null,
|
||||
"colorBackground": false,
|
||||
"colorValue": false,
|
||||
"colors": [
|
||||
"#299c46",
|
||||
"rgba(237, 129, 40, 0.89)",
|
||||
"#d44a3a"
|
||||
],
|
||||
"datasource": "$datasource",
|
||||
"format": "none",
|
||||
"gauge": {
|
||||
"maxValue": 100,
|
||||
"minValue": 0,
|
||||
"show": false,
|
||||
"thresholdLabels": false,
|
||||
"thresholdMarkers": true
|
||||
},
|
||||
"gridPos": { },
|
||||
"id": 2,
|
||||
"interval": null,
|
||||
"links": [ ],
|
||||
"mappingType": 1,
|
||||
"mappingTypes": [
|
||||
{
|
||||
"name": "value to text",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"name": "range to text",
|
||||
"value": 2
|
||||
}
|
||||
],
|
||||
"maxDataPoints": 100,
|
||||
"nullPointMode": "connected",
|
||||
"nullText": null,
|
||||
"postfix": "",
|
||||
"postfixFontSize": "50%",
|
||||
"prefix": "",
|
||||
"prefixFontSize": "50%",
|
||||
"rangeMaps": [
|
||||
{
|
||||
"from": "null",
|
||||
"text": "N/A",
|
||||
"to": "null"
|
||||
}
|
||||
],
|
||||
"span": 2,
|
||||
"sparkline": {
|
||||
"fillColor": "rgba(31, 118, 189, 0.18)",
|
||||
"full": false,
|
||||
"lineColor": "rgb(31, 120, 193)",
|
||||
"show": false
|
||||
},
|
||||
"tableColumn": "",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(up{cluster=\"$cluster\", job=\"kube-scheduler\"})",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": "",
|
||||
"title": "Up",
|
||||
"tooltip": {
|
||||
"shared": false
|
||||
},
|
||||
"type": "singlestat",
|
||||
"valueFontSize": "80%",
|
||||
"valueMaps": [
|
||||
{
|
||||
"op": "=",
|
||||
"text": "N/A",
|
||||
"value": "null"
|
||||
}
|
||||
],
|
||||
"valueName": "min"
|
||||
},
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 3,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 5,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(rate(scheduler_e2e_scheduling_duration_seconds_count{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\"}[5m])) by (instance)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} e2e",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "sum(rate(scheduler_binding_duration_seconds_count{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\"}[5m])) by (instance)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} binding",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"expr": "sum(rate(scheduler_scheduling_algorithm_duration_seconds_count{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\"}[5m])) by (instance)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} scheduling algorithm",
|
||||
"refId": "C"
|
||||
},
|
||||
{
|
||||
"expr": "sum(rate(scheduler_volume_scheduling_duration_seconds_count{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\"}[5m])) by (instance)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} volume",
|
||||
"refId": "D"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Scheduling Rate",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "ops",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "ops",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 5,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "histogram_quantile(0.99, sum(rate(scheduler_e2e_scheduling_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\",instance=~\"$instance\"}[5m])) by (instance, le))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} e2e",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "histogram_quantile(0.99, sum(rate(scheduler_binding_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\",instance=~\"$instance\"}[5m])) by (instance, le))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} binding",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"expr": "histogram_quantile(0.99, sum(rate(scheduler_scheduling_algorithm_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\",instance=~\"$instance\"}[5m])) by (instance, le))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} scheduling algorithm",
|
||||
"refId": "C"
|
||||
},
|
||||
{
|
||||
"expr": "histogram_quantile(0.99, sum(rate(scheduler_volume_scheduling_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\",instance=~\"$instance\"}[5m])) by (instance, le))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}} volume",
|
||||
"refId": "D"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Scheduling latency 99th Quantile",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": false,
|
||||
"title": "Dashboard Row",
|
||||
"titleSize": "h6",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"collapsed": false,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 5,
|
||||
"legend": {
|
||||
"alignAsTable": false,
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(rate(rest_client_requests_total{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\",code=~\"2..\"}[5m]))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "2xx",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"expr": "sum(rate(rest_client_requests_total{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\",code=~\"3..\"}[5m]))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "3xx",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"expr": "sum(rate(rest_client_requests_total{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\",code=~\"4..\"}[5m]))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "4xx",
|
||||
"refId": "C"
|
||||
},
|
||||
{
|
||||
"expr": "sum(rate(rest_client_requests_total{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\",code=~\"5..\"}[5m]))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "5xx",
|
||||
"refId": "D"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Kube API Request Rate",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "ops",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "ops",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"alignAsTable": false,
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 8,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\", verb=\"POST\"}[5m])) by (verb, url, le))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{verb}} {{url}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Post Request Latency 99th Quantile",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": false,
|
||||
"title": "Dashboard Row",
|
||||
"titleSize": "h6",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"collapsed": false,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 7,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": false,
|
||||
"current": true,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 12,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\", verb=\"GET\"}[5m])) by (verb, url, le))",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{verb}} {{url}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Get Request Latency 99th Quantile",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "s",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": false,
|
||||
"title": "Dashboard Row",
|
||||
"titleSize": "h6",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"collapse": false,
|
||||
"collapsed": false,
|
||||
"panels": [
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 8,
|
||||
"legend": {
|
||||
"alignAsTable": false,
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "process_resident_memory_bytes{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\"}",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Memory",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 9,
|
||||
"legend": {
|
||||
"alignAsTable": false,
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "rate(process_cpu_seconds_total{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\"}[5m])",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "CPU usage",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "bytes",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": 0,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"aliasColors": { },
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": "$datasource",
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": { },
|
||||
"id": 10,
|
||||
"legend": {
|
||||
"alignAsTable": false,
|
||||
"avg": false,
|
||||
"current": false,
|
||||
"max": false,
|
||||
"min": false,
|
||||
"rightSide": false,
|
||||
"show": true,
|
||||
"sideWidth": null,
|
||||
"total": false,
|
||||
"values": false
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"links": [ ],
|
||||
"nullPointMode": "null",
|
||||
"percentage": false,
|
||||
"pointradius": 5,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"repeat": null,
|
||||
"seriesOverrides": [ ],
|
||||
"spaceLength": 10,
|
||||
"span": 4,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "go_goroutines{cluster=\"$cluster\", job=\"kube-scheduler\",instance=~\"$instance\"}",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{instance}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [ ],
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Goroutines",
|
||||
"tooltip": {
|
||||
"shared": false,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"buckets": null,
|
||||
"mode": "time",
|
||||
"name": null,
|
||||
"show": true,
|
||||
"values": [ ]
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"format": "short",
|
||||
"label": null,
|
||||
"logBase": 1,
|
||||
"max": null,
|
||||
"min": null,
|
||||
"show": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"repeat": null,
|
||||
"repeatIteration": null,
|
||||
"repeatRowId": null,
|
||||
"showTitle": false,
|
||||
"title": "Dashboard Row",
|
||||
"titleSize": "h6",
|
||||
"type": "row"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 14,
|
||||
"style": "dark",
|
||||
"tags": [
|
||||
"kubernetes"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"current": {
|
||||
"text": "default",
|
||||
"value": "default"
|
||||
},
|
||||
"hide": 0,
|
||||
"label": null,
|
||||
"name": "datasource",
|
||||
"options": [ ],
|
||||
"query": "prometheus",
|
||||
"refresh": 1,
|
||||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": { },
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": "cluster",
|
||||
"multi": false,
|
||||
"name": "cluster",
|
||||
"options": [ ],
|
||||
"query": "label_values(kube_pod_info, cluster)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": { },
|
||||
"datasource": "$datasource",
|
||||
"hide": 0,
|
||||
"includeAll": true,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "instance",
|
||||
"options": [ ],
|
||||
"query": "label_values(process_cpu_seconds_total{cluster=\"$cluster\", job=\"kube-scheduler\"}, instance)",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [ ],
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
]
|
||||
},
|
||||
"timezone": "UTC",
|
||||
"title": "Scheduler",
|
||||
"uid": "2e6b6a3b4bddf1427b3a55aa1311c656",
|
||||
"version": 0
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
|||
# https://github.com/kubernetes-monitoring/kubernetes-mixin
|
||||
|
||||
local kubernetes = import "kubernetes-mixin/mixin.libsonnet";
|
||||
|
||||
kubernetes {
|
||||
_config+:: {
|
||||
grafanaK8s+:: {
|
||||
dashboardNamePrefix: '',
|
||||
dashboardTags: ['kubernetes'],
|
||||
},
|
||||
},
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
configmap: grafana-dashboards-zdt
|
||||
gzip: true
|
||||
dashboards:
|
||||
- name: home
|
||||
url: file://zdt/home.json
|
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "Prometheus",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"gnetId": null,
|
||||
"graphTooltip": 0,
|
||||
"id": 29,
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"datasource": null,
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 6,
|
||||
"options": {
|
||||
"content": "![ZDT Logo](https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png \"zdt\")\nWelcome to KubeZero Metrics ! ",
|
||||
"mode": "markdown"
|
||||
},
|
||||
"pluginVersion": "7.5.3",
|
||||
"timeFrom": null,
|
||||
"timeShift": null,
|
||||
"title": "Home",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"datasource": null,
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 15,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 3
|
||||
},
|
||||
"id": 3,
|
||||
"links": [],
|
||||
"options": {
|
||||
"folderId": 0,
|
||||
"maxItems": 30,
|
||||
"query": "",
|
||||
"showHeadings": true,
|
||||
"showRecentlyViewed": true,
|
||||
"showSearch": false,
|
||||
"showStarred": true,
|
||||
"tags": []
|
||||
},
|
||||
"pluginVersion": "7.5.3",
|
||||
"tags": [],
|
||||
"title": "Dashboards",
|
||||
"type": "dashlist"
|
||||
},
|
||||
{
|
||||
"datasource": null,
|
||||
"fieldConfig": {
|
||||
"defaults": {},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 15,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 3
|
||||
},
|
||||
"id": 4,
|
||||
"links": [],
|
||||
"options": {
|
||||
"feedUrl": "https://zero-downtime.net/index.xml"
|
||||
},
|
||||
"title": "Latest from our blog",
|
||||
"type": "news"
|
||||
}
|
||||
],
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 27,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"hidden": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
],
|
||||
"type": "timepicker"
|
||||
},
|
||||
"timezone": "browser",
|
||||
"title": "Home Copy",
|
||||
"uid": "6QOeg59Mz",
|
||||
"version": 4
|
||||
}
|
|
@ -1,6 +1,26 @@
|
|||
diff -turN charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl charts/kube-prometheus-stack.zdt/charts/grafana/templates/_pod.tpl
|
||||
--- charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl 2021-04-22 00:36:35.000000000 +0200
|
||||
+++ charts/kube-prometheus-stack.zdt/charts/grafana/templates/_pod.tpl 2021-04-25 11:16:06.807876896 +0200
|
||||
@@ -197,11 +197,16 @@
|
||||
- name: FOLDER_ANNOTATION
|
||||
value: "{{ .Values.sidecar.dashboards.folderAnnotation }}"
|
||||
{{- end }}
|
||||
+ - name: SCRIPT
|
||||
+ value: /opt/script.sh
|
||||
resources:
|
||||
{{ toYaml .Values.sidecar.resources | indent 6 }}
|
||||
volumeMounts:
|
||||
- name: sc-dashboard-volume
|
||||
mountPath: {{ .Values.sidecar.dashboards.folder | quote }}
|
||||
+ - name: script-volume
|
||||
+ mountPath: /opt/script.sh
|
||||
+ subPath: script.sh
|
||||
{{- end}}
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- if .Values.image.sha }}
|
||||
diff -turN charts/kube-prometheus-stack/templates/prometheus/rules-1.14/etcd.yaml charts/kube-prometheus-stack.zdt/templates/prometheus/rules-1.14/etcd.yaml
|
||||
--- charts/kube-prometheus-stack/templates/prometheus/rules-1.14/etcd.yaml 2021-04-14 22:13:29.000000000 +0200
|
||||
+++ charts/kube-prometheus-stack.zdt/templates/prometheus/rules-1.14/etcd.yaml 2021-04-15 14:43:03.074281889 +0200
|
||||
--- charts/kube-prometheus-stack/templates/prometheus/rules-1.14/etcd.yaml 2021-04-22 00:36:35.000000000 +0200
|
||||
+++ charts/kube-prometheus-stack.zdt/templates/prometheus/rules-1.14/etcd.yaml 2021-04-25 11:10:33.021207900 +0200
|
||||
@@ -54,34 +54,6 @@
|
||||
{{- if .Values.defaultRules.additionalRuleLabels }}
|
||||
{{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }}
|
||||
|
@ -37,8 +57,8 @@ diff -turN charts/kube-prometheus-stack/templates/prometheus/rules-1.14/etcd.yam
|
|||
annotations:
|
||||
message: 'etcd cluster "{{`{{`}} $labels.job {{`}}`}}": gRPC requests to {{`{{`}} $labels.grpc_method {{`}}`}} are taking {{`{{`}} $value {{`}}`}}s on etcd instance {{`{{`}} $labels.instance {{`}}`}}.'
|
||||
diff -turN charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.yaml charts/kube-prometheus-stack.zdt/templates/prometheus/rules-1.14/node-exporter.yaml
|
||||
--- charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.yaml 2021-04-14 22:13:29.000000000 +0200
|
||||
+++ charts/kube-prometheus-stack.zdt/templates/prometheus/rules-1.14/node-exporter.yaml 2021-04-15 14:49:41.614282790 +0200
|
||||
--- charts/kube-prometheus-stack/templates/prometheus/rules-1.14/node-exporter.yaml 2021-04-22 00:36:35.000000000 +0200
|
||||
+++ charts/kube-prometheus-stack.zdt/templates/prometheus/rules-1.14/node-exporter.yaml 2021-04-25 11:10:33.021207900 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
summary: Filesystem is predicted to run out of space within the next 24 hours.
|
||||
expr: |-
|
|
@ -0,0 +1,120 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import json
|
||||
import yaml
|
||||
import requests
|
||||
import textwrap
|
||||
import io
|
||||
import gzip
|
||||
import base64
|
||||
|
||||
config_file = sys.argv[1]
|
||||
configmap_file = sys.argv[2]
|
||||
|
||||
|
||||
def traverse_json(obj):
|
||||
if isinstance(obj, dict):
|
||||
for k, v in obj.items():
|
||||
# CloudBender::StackRef
|
||||
if k == "datasource" and v:
|
||||
obj[k] = "Prometheus"
|
||||
|
||||
if isinstance(v, dict) or isinstance(v, list):
|
||||
traverse_json(v)
|
||||
|
||||
elif isinstance(obj, list):
|
||||
for k in obj:
|
||||
if isinstance(k, dict) or isinstance(k, list):
|
||||
traverse_json(k)
|
||||
|
||||
|
||||
# read config file
|
||||
with open(config_file, 'r') as yaml_contents:
|
||||
config = yaml.safe_load(yaml_contents.read())
|
||||
|
||||
|
||||
if 'condition' in config:
|
||||
configmap = '''{{- if %(condition)s }}
|
||||
''' % config
|
||||
else:
|
||||
configmap = ''
|
||||
|
||||
# Base configmap for KubeZero
|
||||
configmap += '''apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ printf "%%s-%%s" (include "kubezero-lib.fullname" $) "%(configmap)s" | trunc 63 | trimSuffix "-" }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
grafana_dashboard: "1"
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
''' % config
|
||||
|
||||
# Put all dashboards into a folder ?
|
||||
if 'folder' in config:
|
||||
configmap += ''' annotations:
|
||||
k8s-sidecar-target-directory: %(folder)s
|
||||
''' % config
|
||||
|
||||
# compress ?
|
||||
if 'gzip' in config and config['gzip']:
|
||||
configmap += '''binaryData:
|
||||
'''
|
||||
else:
|
||||
configmap += '''data:
|
||||
'''
|
||||
|
||||
for b in config['dashboards']:
|
||||
if not b['url'].startswith('file://'):
|
||||
response = requests.get(b['url'])
|
||||
if response.status_code != 200:
|
||||
print('Skipping the file, response code %s not equals 200' % response.status_code)
|
||||
continue
|
||||
raw_text = response.text
|
||||
else:
|
||||
with open(b['url'].replace('file://', ''), 'r') as file_contents:
|
||||
raw_text = file_contents.read()
|
||||
|
||||
obj = json.loads(raw_text)
|
||||
|
||||
# replace datasources
|
||||
traverse_json(obj)
|
||||
|
||||
# Set default tim in all charts to 1h
|
||||
obj['time'] = { "from": "now-1h", "to": "now" }
|
||||
obj['refresh'] = "30s"
|
||||
|
||||
# set tags
|
||||
if 'tags' in b:
|
||||
obj['tags'] = b['tags']
|
||||
|
||||
text = json.dumps(obj, indent=2)
|
||||
|
||||
if 'gzip' in config and config['gzip']:
|
||||
# compress and base64 encode
|
||||
buf = io.BytesIO()
|
||||
f = gzip.GzipFile(mode='w', fileobj=buf, mtime=0)
|
||||
f.write(text.encode())
|
||||
f.close()
|
||||
|
||||
textb64 = base64.b64encode(buf.getvalue()).decode('utf-8')
|
||||
textb64 = textwrap.indent(textb64, ' '*4)
|
||||
configmap += ''' %(name)s.json.gz:
|
||||
''' % b
|
||||
configmap += textb64+'\n'
|
||||
else:
|
||||
# encode otherwise helm will mess with raw json
|
||||
text = text.replace("{{", "{{`{{").replace("}}", "}}`}}").replace("{{`{{", "{{`{{`}}").replace("}}`}}", "{{`}}`}}")
|
||||
text = textwrap.indent(text, ' '*4)
|
||||
configmap += ''' %(name)s.json:
|
||||
''' % b
|
||||
configmap += text+'\n'
|
||||
|
||||
|
||||
if 'condition' in config:
|
||||
configmap += '{{- end }}'+'\n'
|
||||
|
||||
# Write Configmap
|
||||
with open(configmap_file, 'w') as f:
|
||||
f.write(configmap)
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: script-configmap
|
||||
namespace: {{ $.Release.Namespace }}
|
||||
labels:
|
||||
{{ include "kubezero-lib.labels" $ | indent 4 }}
|
||||
data:
|
||||
script.sh: |-
|
||||
#!/bin/sh
|
||||
find /tmp/dashboards -name "*.gz" -exec gunzip -f -k {} \;
|
|
@ -0,0 +1,49 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" (include "kubezero-lib.fullname" $) "grafana-dashboards-kube-mixin" | trunc 63 | trimSuffix "-" }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
grafana_dashboard: "1"
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
annotations:
|
||||
k8s-sidecar-target-directory: Kubernetes
|
||||
binaryData:
|
||||
coreDNS.json.gz:
|
||||
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
|
||||
etcd.json.gz:
|
||||
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
|
||||
apiserver.json.gz:
|
||||
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
|
||||
cluster-total.json.gz:
|
||||
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
|
||||
controller-manager.json.gz:
|
||||
H4sIAAAAAAAC/+1dW3PbthJ+96/gsOfM2DNKDnVLrM7kwXGaTKZx6yRq+9BmNBAJUaxJgAFAW65H/e1nAV4EkpAtO4klx3jxWLu4LPb6cUWRV3uO404mEUkzwd0fnT8/dXIKw5+ziGGNhgihAomIEkm8AhIQ44gLNQQ+LtUwHEQCTWMM1BmKOVbEkGDxNgASyeI4pzCUzseUxiJKge4p4jwK8DElgtGY1+ZHtblxRM40wRiegaBzILh9j7s5jV6oEUrKXFag+jSOUcprstUYQYuTIoLj1VL6cvlM5M/xOEowzYQm44pPY8peIv8sZDQjrfVXY35HcYbXs+siKPoPvdHIHzxzO3UyC6dov9d/3nG6vVHHGXgdx3t6ODpojvshGAxQH7ka9VNt3wAJxGnGfCmWe8pogsUcZ7y2kDujLEHy6C6hBNd5IcpCXDlLRU7Qojxt1/MaYiURKZlNFp/TC5OGgCXm0gVoHLxDU1x3HtOoE8TOsNKpYBnWBi3r8rMoOKXK3esM5Y+9OokIzM5RbHKCusNqekjTiITjy1SpYh2vbfq6PmE0QYky0rnUnCOoI/BCNAzuFGy5VY2x7Gy2OEMk3GDxXn3xte4FXvAKPOyUguZ42xVcqUXFPKGB2t+nhGBfQJC2xo2lRAbFp5SLWbSQs10T4zUkm4/RP2r5offfxhhILMa5in7tVKWqE8goN5tuBnGlogdkbytV5Adzf/nfkYFJq4kb6pxDOmt5LhDZGbioIVJnURwfy/Sj7C8TS78LeaV7CH8ORzKxdA9biWUmBTIHoNxFXy9frgcpqjvqtxbS431tjKpiA2tmCWmbSiAWYrGBFfAiVTLxLNnP0is/zjiE84u/3P8U//7ldpy/6RQoZ9kUP/HzKhVj9iRBBIVywPKgbaJVdhRQIyYcswjz9rAyebxGvlDK6bWGxDjEJHhdrddeBNxS1Vj3aFN3qPIhN6guEqqIu7+lDUZVtK+a5kJsVUHXGyxPdy6H9BZjDpCivr7KI3p0HTajS43YLLqolNN9ccvAKlPZrWJLTfqlyJVQxVbztPPXsAOKI8SPy+reKDFTxIxlDMoyn7/DJBRzlTRbPLxu2kbVPFKx220R3zAURJiIZlm+oUb263VQ+XDbc0ARITni4wI3yprcSAXoPFyTUvyMsVwuwzSoMWumSQOZOSwK5+B7wRpJiqRk4sCcP6JA2aVZiVTcCLQuLyrfuRGOyOzJDXsrxkWxc3cT5NGqra3q46YYXIUIFJpBaSpnS5/I5PLDNs/shWCqADOscu0spo3QZzjFyFjI88T56zlm4G7YcCIoYj5eFxZF2WtSBcByo5SQ8NMUB+/ymtjm36msMCTw/gVlZ58znOEJCgI+UT5xt2rTcSICJyA+fvEvTCw/QBn6c5h8OjhwppfOfkntOBLE3Wt9uroqN18unasruf9y+dWLVsML5CFe54Cq5UKS93EezYSZWVS7P8BAzntpIecoCJwPYLQ7lb9mbqBMGK5oVNxPyooYkSA6j4IM1WqOuXqq6+e6ZAu0iHhbrmnmn+XOakhKSRH/UjlN+FXgfsOs9TmwSmSqI2A+wiVabHJNs3JNmhpcMpYXekbxJJOGLxFvXVVpNcE4LS8KRpZ25FtdPD2QU+jRttekVjFmTtAF9S2kCNUeMrM/0ItaB6iSZ1yEXr3vUgXkK4A0U4oYxCLIXueXCHH+TGMUAcJg9J5moW/ZBHoEQG5ggZwFcjsD5Ho7BOQCnIq5xXC7ieFeSeNYALdlAAfbMXGf4Mf7Bvhtlw9h4ZuFb9fCt6GFbxa+Wfg2j7igUHmTyecMERHFeN97Ohp1HAOuK9BdlmdFgFWA4AI+yavxveG9jhPjAwv6bgX63oEhiX9pYd+2Yd930LWzPTsL+h4q6Ht2F9BnyoKboD4juPtC2GfMyN8U911/64IFfl8G/AZbb9sBAhETP5bBpG5xhY/lt7B3xW4dH0woab2nTyskd5+ArbdY3AKedXZIY/0taax/rcZe7rDGBlvS2OBajR3vsMaGW9LY8FqNvdqNi6afQa/O0elb50OudXu/g73f4RHf7/B479N8bi8V7KXCLl0qHO5ui9iAVu6pTdxxQKly6umvH8f1rrFkdJyMxdtoGMvNVbMY9n8IvWLIg6KCPEW32BmNxNx5X9jcYqDH1Dv2Hnrj2N4qYLvGXwsKHtpbBeytAvZWgQeBA9/8ZGHg3WHgG2xRoEWBFgVaFGhRYBMFjmxD0DYE7b0DP8rHvVAfcw4QTzoJYL0EJ5RdTqaXAvM7Art1t4Fu6z7P3cdqJ0rpFpBtGZApp/8Ovpzc8XPYryfraKQhn4UjFo48VjiiWk8lJvHTrOo0fcmzZK79WYoFJetAyfHpb07GpVtbXGJ/YfwIf2H8iBFJ1yISi0gsIpF1hk5CymgmpAFtQ+S+vryqVG7Bx2MDH9/qt667fY7v+TurveIELvfnOEG/Y8ZzKbuDnCwu860CxM7yVxxA8Vp5qUqtjGDZ1arWEjhJYzguCdsvbNhreoOGNmpYrnxQcoBnKItNz2rWuSZoqF7rUE8ua3yqetS8huk0Lk3Lt0/o2dT9nGF2WXTq29hPez1Et0YNcfPZ7pVdtO33GsfRFIbiuHxTQeMYmip1PWyAVEtdadUK0i4U0gAfmZ6qXinSLYqtvlYCFokMc0otG6bcpGK13STPovvS5yYpDSYRmdGOUyx3YFZ+7yblFyVINxK4uNIwf1/u79a5LUElzTy4MG1+Eo2RcTzOF9Lh6X3b21tn73oNWxc3N1m6BDZ3NvVXbjgtV7c2fR/usldWpfwlOAquVDm3esUDvXjSLUFR+faGvASspqURwCG2mlyoZFICWh2ZuMOVL7ldT/vQ1z90k9X/Q+3/rv6h7+mcFXRze9r/3SBPiJ/KM0gIrjnSjbvoCz/TF9Z36Q30D6vXfbjPA13eUpaa+v6hJH9rwfi4KJNVs67yQ+ck98N8QKau593nPexhbzjFs6E3GuHhzBuMpt5wFviD3ggHg3zweVWYvb3l/wHmMGkaPWkAAA==
|
||||
k8s-resources-cluster.json.gz:
|
||||
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
|
||||
k8s-resources-namespace.json.gz:
|
||||
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
|
||||
k8s-resources-node.json.gz:
|
||||
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
|
||||
k8s-resources-pod.json.gz:
|
||||
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
|
||||
k8s-resources-workload.json.gz:
|
||||
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
|
||||
k8s-resources-workloads-namespace.json.gz:
|
||||
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
|
||||
kubelet.json.gz:
|
||||
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
|
||||
namespace-by-pod.json.gz:
|
||||
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
|
||||
namespace-by-workload.json.gz:
|
||||
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
|
||||
persistentvolumesusage.json.gz:
|
||||
H4sIAAAAAAAC/+1bX2/bNhB/96cQiA1oBneTnLixB/ShzZBhQNtla9o9LIVBS7TMhSY1isqfBfnuO5KSTElUY7ddlrYG2iK6O56Od8e7H6/KzSAI0GxGeVaoHP0Y/PluaCmS/F1QSRwa5lworKjgmngDJCAymisjAo+3RowkVOE5I0BdYJYTQ0w5Ub8kQOIFY5YicbY8FYIpmgE9NMQlTciR4EoKljfW08ZaRvm5Y5gkCzB0CQS0H+bI0sSlkTBWWluBGgvGcJY3bGswkg4nw5ywtSpXneFjRnF+JJiQxiu3Q5c5xzJvazSMBOfLF4SnSlsdhR0e6VumcC4KGesdoBMpVkQtSWH3XEstKGNabYf4s8QJJVxV/q6ZqaTJifBswPh91CAxkhKe1BngOiLlz/LTMvZKFg3btcRF6mfEhZTWLA9zha96GJT7GZKmS/UaUsnnQ+DnS3HpX5nDoj9oYqJSZZvDVpD/rEfpBWaFiZpW67Ca/oTMrYU6jMvyzVGb4yR7TdbmnQjK1UthNmoIzTzICCQKVzj1OgJlerXOiEKrH3d5/hyESCVEEqnfuWBCoRY3I1h53IdyIinJf70gEpKNeHaUZzgmfYcCmDra0yZR4fjc581ckSwjyQtwqncPCsuUqOapbp9sI0iuMrPRR2c8CPJiFVxStRSFekQ5vJzHZBhw8P9e8Oi8mBNG1OxCsGJFZsBV+SzGsCeqrmfza0Xym5gVYJl8eoa+KX88Q8PgLzEHSrleEzheEeMMLVg/aA5ENIeCC0G1r4kZpistZR/P0O2eNvTxh1mLLzBl+vjeq7nwBw3bfl8IuTJphBTV9pnc6YpBkhIJJ+8Yx0rI9tFxytVxre8NFPngtbawqw4aiWlS6BlqsG6Hm2XJ5+Ly+/T3sSTkTn8/b/nbeWrWCLXUnV6wxFM/tOXH0BJ9xUfzXi/pQvmZyrQs9Nb4yFobvMl14WwK1nDlpt1RsOxih4opZKfjVg1jpq4z82rKE3pBkwL6S2/zqGQNdGpadoWvaN61a17E57bOebrZqmwc2jet2CCdU/5V/c2z7oAGDPq3cI2vyAZld52O5lh0MwfODGFeAzVTpM+xAXnd9LRowrvM4omwQ3d2vFVV+Dw24R61gWdrDbAb43hJTiFfoML5TlKscfBzaMqpFAX3Hggr81bnSj+7myJIpnP8aBwOg+hwNAwOxsMg/H56uNdOXCM22j8EudEU5EItN5n2yGk14wP7F9Ttod7CsyHyrkNeYq8mO8WFwWI3HYRb+SMKwy7KrZjhxkexLpMvdIrlPYWplnqJ5TmRd4LX998S9pukslP4sqQH0a5wllGentoqF/XxNigfZfWyFSlQIlDkSnXP30Xl9K2OdaVcYp5uoHy0YWeDJPgJcuykAt6tTOji/VhwTmIFbacjd6ot8jg+E7laUF07EPIxjuHq/Zr+Y9SPw29bMtCtvWsN/b1Ljatewv16g8pvG3j3NmMz1m4MvfrhmYcp6oUb+ry8VOy3ifKc2ZtD66DqO7S56pv46wqyH0GhiSbwz2SqS0g06VSaRcH67oz6La4+q26ki9x0v6OoPO5GUT9G0GDySOMY3g3V1tceSMouoC3x7Bk3l6IHcu+prz0PBWabi80PZ/zB+Oc7XVI+Kfgf3Qn+t7hibQb50QQOxzRE/yl+vxOA59CKGNGhbOo3Nd+thJN2JTQSm1VCoe1ET7csglXb2aoOmkWvyr5WDeMG7XX1Gv+Qp6T+AklihsR+9u/isjEHrivbaRnE5vS1Du1POF/OBZZJABpQk195e/nEYZShkiA9cCK5GwV/1Cj4YDcK3o2Cv+5R8PZDPqqZ+ayAmvIFDvjMQNVu8dNPVD9w7m7Neejz9vvPi3tOjcAMf+/MjYc1/bXm7sa/D2L8ywUnn/v09wHvYTf83Q1/P8nwd7wb/u6Gv7vh71c0/H0IiLZ/wHp/F4CvabD60dB4N1n9Eierg3IHKAeAuMJv9ZkxVkYHlqyu7asSKK7281yF03WgzFGUnOiPJGpdiqwyBtvlafdj40E7sM7YsAFZq4AmZIEL5sspl+tDwOaT5Cb86oHuNTZw0KLDFVn15bSLfNDfBZHXBjP6UKXzaXPUoKak3YzruDivH7S24zgMM1Yhy9Y2HFe6ftgAA1e+csoX1DYovAl55muDtSNRWZxdXSuICPWsqbzsWXKXi83rZvaeusn3msOgfMmePySju0JSXv3d0EHiG7/nv1VWoSa3Y76m+YXLgNv9OQxov6dWkVt07zsLwq2z4FXVebfJA+5b9KkzYTMgcesgiV3K3EvKnNT4zEKUI43PtkkfG/T/P3f6QehtDwr9MjJsUM2e7C8PmWFk3e/r+6C4fBxVI8/qqmfhx3pZRuNz819R5eLSJbMKXbvAEI3X6Yei0HnYdx+idSqhsfNz5D7shy5nPZhFI+fnKLHN+F21B30fcDLtzre4ip+4it23jA7ch/VsAB0mrr2VLQ33/SPMpRe9OT0qIVoFENdnLLCHrPwVq8JMftA0ms6nIzwhk/AgmifjJ4d4MSUJnkejeHIQxlb4ogaF4eD2X7zU1kR1NgAA
|
||||
pod-total.json.gz:
|
||||
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
|
||||
proxy.json.gz:
|
||||
H4sIAAAAAAAC/+1dW3PbthJ+96/gsD0zzoyao3uszuTBcU4ymSapm6jtQ5PRQCRE8ZgCGAC0pXp0fvtZgBeBJGjLcR1JMV4y4i4ui93F7oclHVwfOY47mYQkTgR3f3b++txKKQx/SUKGNRoihAokQkok8RpIQIxCLlQTeFyrZtgPBZpGGKgzFHGsiAHB4o0PJJJEUUphKJ6PKY1EGAO9rYjz0MdnlAhGI17qH5b6RiG50ARjeAaCzoHg9trcTWn0SrVQUqayAtWjUYRiXpKtxPBrnBgRHG2G0odLeyJvjsfhAtNEaDJu+DSi7AXyLgJGE1Ibf9PmDxQluJldFkHRf+iORl5/6LbKZBZM0XG396zldLqjltNvt5z205PRk2q7H/x+H/WQq1E/l+b1kUCcJsyTYrnnjC6wmOOElwZyZ5QtkFy6SyjBZV6AkgAXzlKQF2iZr7bTblfEWoQkZ1ZZfE6vTBoClphLF6CR/xZNcdl5TK3eIXaBlU4FS7DWaF2Wn4X+OVXuXmYof+yWSURgdokikxOUHVbTQxyHJBivYqWKJl7d9GV9QmuCFspIl1JzjqCOwEtRMbiTseVUJca6td3gDJFgi8G75cEb3Qu84CV42DkFzfG6K7hSi4r5jvpqfo8Sgj0Bm7TWbiwlMig+plzMwqXs7ZoYryDYfAz/VsMP2v+qtIHAYuyr6Dd2Vap6BxHldtPNYF+p3QOy15Uq0oW57/99amDSouOWOucQzmqeC0R2AS5q2KmzMIrOZPhR9peBpdeBuNI5gX9ORjKwdE5qgWUmBTJvQDmLPl46XBdCVGfUqw2k7/fGPaqSDYyZLEjdVAKxAIstrICXsZKJJ4vjJL72ooTDdn7+yf0x+/nJbTn/pVOgXCRT/FPM6HL1yV0/qVtlExAFpIUJxyzEvN4sjxevkCeUPrq1JhEOMPFfFePVBwFPVGnVPd3WA4oQyA3aCoXK2+7vcYVR5OnrqoUQ2yTNZhulEc7lENEizAFFlMdXoUPfUCfVDaVabLehqJTTfX7HvZRHrzttJ9XpfRYeIXFt+mnrL8EFFIWIn+UJvZJVpogZMxdkYj5/i0kg5ipO1ni4qdtWCTxU27VTI75myA8xEdVMfEta7JVTn/LhuueAIgJyysdVqKg3uQwaOF7CWCqYiQuJpYkTkgYOC4M5eJ/fJEsWiiRaqHKg05+hr0xTzT9q6wjUFA2V+/Bbd48MmtwwuWJcZVN3tgEctZRaSzpujMFdiECBGYvGsrf0i0QOP6jzzJ4I1vIxwyrEziJa2f4MxxgZ83caPH+9xAxcDhtWBLnLw01bI8t2ZSkh+ngXRiEhzMcx9t+mmbDO/6pkwpDAxzJlqIwx4SviTdKfLIFQOPETps5UkCcA3/h84sExQWydgFpOSGBFxMPP/wdt8wfITH8NFp+ffNP0JJf6j6eoir2lzK9SxFRzFsn7OA9nwszMctsHqXbnI9jB+VAVeNtEVw0BlAnDcUVt70me+0Lih5ehn6BSdjHnSXU4Lku2RMuQ1+WaJt5F6pOG2LPIdrlUTBVbZaDe0Ks51BXxSh33zUtYoeU2B5aNF9LY4H2RPMUZxZNMGrxAvHZk0mK/sVsa/Ns1urbeOx2LDmEJ+h6z2ORnp/812MSwE7aBJoZu90UmJvjxoMDkxuqIxSUHikvmIRcUcsxi8iVBRIQRPm4/HY1ad8YqafY5SLByfZ1Pv14fBmhJMctbsBHxVs5oJObOb5n5LIjZMYg5eAhzWADmqLIDzZE6o76B2KDClpn9gV6V3kwV8oyzzVd+H1RsyZeAbaYUMd+BEdwyPy9jzYcaI9sWDFofacZ5yJdTjwDRDWy1yVab9gnVDfeo2kSwuKLsQoI4CffAIQNbcPrW2O19agTnfGMEW3mylSdbeXpUOGVoK0+28vToMUpT5cn5WvDyD1egnOnKOc6pLSfCtih1N2Bjy1O2PGXLU7Y8ZctTKex7ZstTtjy1T9Cvv/PyFEASMfEiuZnUX5nAI58oz7g/jGt5YEtJ6z59upOSVHe5vANwa+2j6no7Ul3vRtW9OATV9Xekuv6Nqjs7BNUNdqS6wY2qe7kfJ61fQJXO6fkb50Oqfls/foT1YyPr4ErId1uFrSKXjxMn9jhhjxP7dJw42d9KsgG23L9+3ARjQIuy7fmvH8flYrJktJyERbuoJsvJ12vn+hrmP4SKMgQ+UWAcW0q2pWRbSralZFtKTrHfyH5BYL8g2Bfc1+k+MuDXWMByMuj3+j8W+X098nuNLfCzwM8CPwv8LPCrAr+KfLbqZ6t+j/UjAkBjHuYcYJ10EsB3C7ygbDWZrgTm967ire23nk347J3SswVhOwZhys+/g5eOe74O+9qxgkA6FoFYBGIRSPY3p8c5DPHipCgo3fGDqBv/DsXikCYccnb+u5Nw6ckWiuy4HjSX2jv0mtAeL8KCkAoI6VoQYkGIBSEyz9BJQBlNhDSgLXs84GupQssWbzw2vPFApY89X8f3/DbqKFuBy705XqA/MOOplJ1+ShardCofsYv0HiHIVxsvVdGUESxrV8VYAi/iCJZLgvqtSEdVb9AARgm+5VcT+HiGksh0O4LONaFBdXdSObg0+FRxn4sG4zQujfMrnvRo6n5JMFtlJfg63NPuYOqUqAGuXqBS2EWb/qiyHE1hKIry64Aqy9BUqethC3Ca60rLVhB2IXf6+NR0dUmhSDfLr/pYC7BIaOiTa9nQ5TYVq+kmaRRV/yHGJKb+JCQz2nKy4Z6Yld+9TflZCtKNBC6uNMx/y+d3y9yaoJJmbpyZNl2Jxkg4HqcD6Yj0W9u73WTvcg5r2je3WToHNvcy9cP93yfrzTdM34f3HOVJKr14TqGXIgQX1yrRq586OUbKb0xKM8KmWxyCJtmmc6aSSY5vdaDiDjau5Xba2kNPf+gsNr8H2u+O/tBr65wNknO72u+On8bHz/kaJCLX/OrWWfSBh/rA+izdvv6wuWLLfebr8uaylNT3NyXptUHjsyxrFh/0S9dLaYk6xLvDXhd3hwMft7uj4Unf67en3Y43fTaceqg/G/XTxpdFam4frf8PZcHkVKRwAAA=
|
||||
scheduler.json.gz:
|
||||
H4sIAAAAAAAC/+1d62/bNhD/nr9C0DYgAdzO8iONC/RDmq5FsbbLWnf7sBUGLdGyFllUSSpxFnh/+47Uw5REJbbrxnnwSxHd8XG8O979jlLpqz3LskejIIoTzuzn1l9fWimF4q9JQLFCQ1FEOOIBiQTxCkhADAPGZRN4XMhm2As4GocYqBMUMiyJfoT5Ww9IURKGKYWieDokJORBDPS2JE4DD5+QiFMSslL/oNQ3DKIzRTCKJyDoFAh2t83slEYuZAspZSorUF0ShihmJdlKDK/GiVGEw+VQ6nBpT+RO8TCYYZJwRcYln4SEvkTumU9JEtXGX7b5A4UJbmaXRZD0HzqDgds7tFtlMvXHaL/TfdaynM6gZfXaLav99GhwUG33g9froS6yFeqX0rwe4oiRhLpCLPuUkhnmU5yw0kD2hNAZEku3IxLhMs9HiY8LZynIMzTPV+u02xWxZkGUM6ssNiUXOg0Bi0+FC5DQe4fGuOw8ulbvET3DUqecJlhptCjLTwPvlEh3LzOkP3bKpIhjeo5CnROUHVbRQxwHkT+8jKUqmnh105f1Ca0jNJNGOheaszixOJ7zisGtjC2mKjEWrdUGpyjyVxi8Ux680b3AC16Bh50S0Byru4IttCiZ74kn53dJFGGXwyattRsKiTSKjwnjk2Auets6xmsINp+Cf+Xw/fZPlTYQWLR9Jf3arlJV7yGi3Gy6CewruXtA9rpSebow+8PPxxomKTquqHMG4azmuUCkZ+Cimp06CcLwRIQfaX8RWLoOxBXnCP45GojA4hzVAstECKTfgGIWdbx0uA6EKGfQrQ2k7vfGPSqTDYyZzKK6qTiiPuYrWAHPYykTS2b7SXzlhgmD7fzib/vH7M+/7Zb1DxkD5SwZ4ycMor6XhIK+OKhbZhkUOaSGEcM0wKzeLI8Zr5HLpU46tSYh9nHkvS7Gqw8C3ihTq328qhcUYZBpNBZwmbvtz3GFUeTqq6qVEF0mzmY7pVHOZhDVQswASZTHl+FD3VRH1U0lW6y2qYiQ036x5n7KI9haW0p2+pCFSEhey37K+kuQAYUBYid5Uq9kljGi2uwF2ZhN3+HI51MZK2s83NRtpSQeyC3r1IhvKPICHPFqNr4hNXbL6U/6cN1zQBF+dMyGGVwUqbgSAdC53xBJ3ITSVC5NN0gtDd2EgfQcGvhT8D2vQZIsFuk40OfPwJN2qSYguW84agqH0nduRCEiaDLN3JJxkc3srAI4aim1lnTsGIOrRBz5eiwai97CJxIxfL/O03shmMrDFMsQOwlJZetTHGOkzd9p4PztHFNwN6xZEeQuFzdtiyzblaWEyOOeaYWEMB/H2HuXZsI6f6NkQhHH+0W2GOEOZIP0CeLgyEuorKggQwC68djIhSKBr5V+WlYQwZoiF7/4D9rnD5CX/urPvhwcWONLaz+n3mqqurrKp10sLFj4GqmrtbGCx0HkPS7NZiu+Rrsvt6ZdxXVR6BMa8OnsEal6uXyrWP41ej/Zmt7PBb59pJEjXfs1an61Ee6tJBKxhNdpKVbLQoL3aRpMuJ6ZAeZPS+f4CNbbCD1XoQWhXHMOImHDKAfUYvufB16CSpBVD77lqVtZsjmaB6wu1zhxz9Jkp8E0sww+CMVUi7bstEDTqxlCFThIniPql3CJ5quchCydksQaZwzF8ZBWPMEk/kvEamcxCqTUdksxZbtGV9a7Vhy4D0tQ95gpeJ5bPVPwmILn0Rc804BxAjlmNvqaoIgHId5vPx0MWtYGlVCagNYDNGvgmZYV4oMHVg6to/7GOulh6/27FUvr6H61KuphG+J2Sql1rLJCjfWwTXIPC60QTBi5l9ZgwKfW75mJTeW148rr3tdd96vq2qtsQT28zKhvIUbIoKZnfyQXpe90CnmG2e4rfx1T7MlXUJCNCaKeBSPYZX7+Qm96qDCybUGh9Z5inO/5qc4jKEP7m5Shuvi3Sh2qLTe/sRDVxuLvWole/9balKLfVor2dv7uDZAIH7mh2Ezyo0Z4ZCPpGds5LG+5YE9B6zx9WsC628Rwnfn8O75ZuzX1dXekvu616nt5X9TX25H6eteq7+S+qK+/I/X1r1XfHSm4fgV1Wsenb62PqQnM+y3zfsu833pUhcWhKSxMYXGXCouju/uOSwNatnOU3IhiLNCl6HH626dh+WhZMFpWQsNdnC2LyRcL6+oK5l8stv7l+tZxDoQ/XmCcd+Zo2Rwtm6Nlc7RsjpYlAnxmvnAyXzjdFfTndAz8q8O/N78Y9Lc5+nuDDfgz4M+APwP+DPirgr8jc/xnjv/MdwXPxeUfxMWMAbITTgIQb4ZnhF6Oxpccsy3997tdfQF69zHae6lsA8R2DMSks98mltGyvh2P3fF1mJeQZRQyMCjEoBCDQuRVbBzv51DEjZPiXGmL30alB0kGizRhkZPTz1bChDsbOPLI4Ej7IWAR8zXUxkCkIp9BIgaJPFYk4pORTyhJuDDgdv5nrIEcja+oCk0bzLHrd1FTob37fwRyx9fxkN9M7WUrsEVQnKE/MGWplE4vJfPLdCoP0bP0WnvIWUsvlRGVRljgxmIsjmdxCMuN/Pol/XtVb1BARgnC5bfkeniCklB3Ua/K1SFCeZV/Obg0+FRxvbgC5RQuifNfHFCjqf01wfQyO4+vQz7lJwGcEtXH1fu8C7so0+9VlqMoDIVhfjt9ZRmKKlU9rABQc10p2QrCLuRPDx/rbtIuFGlnOVYdawYWCTR9ci1rutykYjndKI2i+8LnRjHxRkE0IS0rG+5Ar/zOTcrPUpBqJHBxqWH2ez6/XebWBBU0fePMtOlKFEbC8DAdSEWlt23vdpO9yzmsad/cZOkc2Gxs6u2cLy2WB0wPw0v28mSU/t6JRClFqC1u8ycXT5wcC+UX9aeRf9ktDgAF0WXnTCWjHMeqgMTuL13IdtrKQ1d9cJaX6Nh95W9Hfei2Vc4Ssdkd5W/HS+Pgl3wNAnkr/nPjLOrAh+rA6iydnvqw/GUH+5mnypvLUlLfvyRKb6ofnmTZsXJDTBbm7EQW7XYHH44PUXfcG3vexOl1no27qN9HyOk6jnvYT3O1fV6k4fbe4n8f6M1nH2cAAA==
|
||||
workload-total.json.gz:
|
||||
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
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" (include "kubezero-lib.fullname" $) "grafana-dashboards-zdt" | trunc 63 | trimSuffix "-" }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
grafana_dashboard: "1"
|
||||
{{ include "kubezero-lib.labels" . | indent 4 }}
|
||||
binaryData:
|
||||
home.json.gz:
|
||||
H4sIAAAAAAAC/9VVS2/UMBC+8yuMD6hI7e5mH63ghlohKkAUWopEWyFvPEmsdexgO93dVv3v2M7L2RQqbnDZ9XwzHs/jy8z9M4QwEUIaYpgUGr9G9xayIGfaWOnKS6hGvWZZMm5OhVVG+x1KiSFalioGq8BnSuZgMig1DmxAkCV3eqNKCPCM0UdQFktxLLlUzqFKl2Rvso+mUWR/Fot9FL0MXQuS+4ffdLmgF+gNB2V6IZht4e0o0dlSEkVxrXvw/zf298GZY6DM7ESLUwHmlFpElJxXiCJFdiElN6yw+MSDzJlMX/kzZ2Llqnp148WCCOC6rWtT1X71Gu9ekzDg9FiKhKVtc6orkJCSG9+yhyBDeQtK2YJWrzbZtf5SqzuTuu8rs+Is8LF2CcwDYNMkV8tbJw98+8QPW1EWfU550DbVgHDUws+vvp9coA8ylTd7mTGFfj0ex1SM7kDJAyrXwrAcRrbmY6I1GD1elUtwyjG3dw50Tjg/OJyPCpGia3xHzTV+eS2+AY8t+ZCR6L21/27t0UcwisUaPUdtHEEyufT0wzlRK/csHiRW8DJl4hKUtgk506PRYjRrfWAX6FtL+d3mOfw8Y4kZKoynFn5nQw381Ow0sDFVFHUM/xJRosUOU6LpE0yZPc6UlnE7X8nvyZNITkH5TzB8IyebUwO5M56F+M8SlHsfh93WmVy/A0KZSPVw6DjtF4gtQ/n2ksEa6OM250BU7KqREK4HSkOUeuymIelvqv0kw5qbQwqdNKNMD4nkxpyf5P8vmXrAH9g0/3s2AdCvirs6NeNnOHqYoLAZbXI+nAptBz4QA9qgxE4AZMuJlnY+DXshYK3rPtjfah8oSBRoVwg8m1T9wzrOICcdFaZHFWy2vO6pWlWWPVLYoZEX3K4+kQ63eLfXXGKdPqmGFhZyfRBldczYyBrDvWsFi1egust2bVMQPZY3Cf1gdsqrWxLsOqtcBAyNJoEwC4Uo786L4ByFwmwSarLuPA3OUb3db5q8bBI/OipcPflK6PgwdBy+Mp2HAu3ORzSMdzeWZtR3he0V+04Kr18qudZWWSuCtYGOZbGt8NJ/Afjw8ydIF68+3lXobUuh+bOHXxBMSbrqCQAA
|
|
@ -1,10 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
VERSION=14.9.0
|
||||
VERSION=15.2.0
|
||||
|
||||
rm -rf charts/kube-prometheus-stack
|
||||
curl -L -s -o - https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-${VERSION}/kube-prometheus-stack-${VERSION}.tgz | tar xfz - -C charts
|
||||
|
||||
# The grpc alerts could be re-enabled with etcd 3.5
|
||||
# https://github.com/etcd-io/etcd/pull/12196
|
||||
patch -p0 -i adjust_alarms.patch --no-backup-if-mismatch
|
||||
patch -p0 -i metrics-zdt.patch --no-backup-if-mismatch
|
||||
|
||||
# Create ZDT dashboard configmap
|
||||
cd dashboards
|
||||
../sync_grafana_dashboards.py k8s-dashboards.yaml ../templates/grafana-dashboards-k8s.yaml
|
||||
../sync_grafana_dashboards.py zdt-dashboards.yaml ../templates/grafana-dashboards-zdt.yaml
|
||||
cd -
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
kube-prometheus-stack:
|
||||
global:
|
||||
rbac:
|
||||
pspEnabled: false
|
||||
|
||||
defaultRules:
|
||||
create: true
|
||||
|
||||
|
@ -61,12 +65,6 @@ kube-prometheus-stack:
|
|||
limits:
|
||||
memory: 64Mi
|
||||
|
||||
namespaces:
|
||||
releaseNamespace: true
|
||||
additional:
|
||||
- kube-system
|
||||
- logging
|
||||
|
||||
admissionWebhooks:
|
||||
patch:
|
||||
tolerations:
|
||||
|
@ -87,6 +85,8 @@ kube-prometheus-stack:
|
|||
action: replace
|
||||
|
||||
prometheus-node-exporter:
|
||||
rbac:
|
||||
pspEnabled: false
|
||||
resources:
|
||||
requests:
|
||||
cpu: 20m
|
||||
|
@ -101,6 +101,10 @@ kube-prometheus-stack:
|
|||
logFormat: json
|
||||
# externalUrl:
|
||||
|
||||
# gather all monitors
|
||||
podMonitorSelectorNilUsesHelmValues: false
|
||||
serviceMonitorSelectorNilUsesHelmValues: false
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
|
@ -109,25 +113,68 @@ kube-prometheus-stack:
|
|||
memory: 3Gi
|
||||
# cpu: "1000m"
|
||||
|
||||
walCompression: true
|
||||
storageSpec:
|
||||
volumeClaimTemplate:
|
||||
spec:
|
||||
storageClassName: ebs-sc-gp2-xfs
|
||||
storageClassName: ebs-sc-gp3-xfs
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
resources:
|
||||
requests:
|
||||
storage: 16Gi
|
||||
|
||||
# Custom Grafana tweaks
|
||||
# - persistence, plugins, auth
|
||||
grafana:
|
||||
enabled: true
|
||||
persistence:
|
||||
rbac:
|
||||
pspEnabled: false
|
||||
|
||||
defaultDashboardsEnabled: false
|
||||
|
||||
grafana.ini:
|
||||
server:
|
||||
enable_gzip: true
|
||||
analytics:
|
||||
check_for_updates: false
|
||||
security:
|
||||
disable_gravatar: true
|
||||
cookie_secure: true
|
||||
strict_transport_security: true
|
||||
#auth:
|
||||
# disable_login_form: true
|
||||
# disable_signout_menu: true
|
||||
auth.anonymous:
|
||||
enabled: true
|
||||
size: 4Gi
|
||||
storageClassName: ebs-sc-gp2-xfs
|
||||
deploymentStrategy:
|
||||
type: Recreate
|
||||
dashboards:
|
||||
min_refresh_interval: "30s"
|
||||
default_home_dashboard_path: '/tmp/dashboards/home.json'
|
||||
alerting:
|
||||
enabled: false
|
||||
date_formats:
|
||||
default_timezone: UTC
|
||||
|
||||
sidecar:
|
||||
# We require at least 1.12.0 for the SCRIPT and relative folder names
|
||||
image:
|
||||
tag: 1.12.0
|
||||
dashboards:
|
||||
searchNamespace: ALL
|
||||
provider:
|
||||
foldersFromFilesStructure: true
|
||||
# For the gunzip script
|
||||
extraContainerVolumes:
|
||||
- name: script-volume
|
||||
configMap:
|
||||
name: script-configmap
|
||||
defaultMode: 0777
|
||||
|
||||
#persistence:
|
||||
# enabled: true
|
||||
# size: 4Gi
|
||||
# storageClassName: ebs-sc-gp2-xfs
|
||||
#deploymentStrategy:
|
||||
# type: Recreate
|
||||
|
||||
plugins:
|
||||
- grafana-piechart-panel
|
||||
service:
|
||||
|
@ -139,6 +186,8 @@ kube-prometheus-stack:
|
|||
|
||||
# Assign state metrics to control plane
|
||||
kube-state-metrics:
|
||||
podSecurityPolicy:
|
||||
enabled: false
|
||||
tolerations:
|
||||
- key: node-role.kubernetes.io/master
|
||||
effect: NoSchedule
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v2
|
||||
name: kubezero-nats
|
||||
description: KubeZero umbrella chart for NATS
|
||||
type: application
|
||||
version: 0.1.0
|
||||
home: https://kubezero.com
|
||||
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
|
||||
keywords:
|
||||
- kubezero
|
||||
- nats
|
||||
maintainers:
|
||||
- name: Quarky9
|
||||
dependencies:
|
||||
- name: nats
|
||||
version: 0.8.3
|
||||
#repository: https://nats-io.github.io/k8s/helm/charts/
|
||||
kubeVersion: ">= 1.18.0"
|
|
@ -0,0 +1,24 @@
|
|||
# kubezero-nats
|
||||
|
||||
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
|
||||
|
||||
KubeZero umbrella chart for NATS
|
||||
|
||||
**Homepage:** <https://kubezero.com>
|
||||
|
||||
## Maintainers
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| Quarky9 | | |
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>= 1.18.0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| | nats | 0.8.3 |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
|
@ -0,0 +1,19 @@
|
|||
{{ template "chart.header" . }}
|
||||
{{ template "chart.deprecationWarning" . }}
|
||||
|
||||
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "chart.homepageLine" . }}
|
||||
|
||||
{{ template "chart.maintainersSection" . }}
|
||||
|
||||
{{ template "chart.sourcesSection" . }}
|
||||
|
||||
{{ template "chart.requirementsSection" . }}
|
||||
|
||||
{{ template "chart.valuesSection" . }}
|
||||
|
||||
## Resources
|
||||
- https://grafana.com/grafana/dashboards/13707
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: v2
|
||||
appVersion: "2.1.9"
|
||||
description: A Helm chart for the NATS.io High Speed Cloud Native Distributed Communications Technology.
|
||||
name: nats
|
||||
keywords:
|
||||
- nats
|
||||
- messaging
|
||||
- cncf
|
||||
version: 0.8.3
|
||||
home: http://github.com/nats-io/k8s
|
||||
maintainers:
|
||||
- name: Waldemar Quevedo
|
||||
github: https://github.com/wallyqs
|
||||
email: wally@nats.io
|
||||
- name: Colin Sullivan
|
||||
github: https://github.com/ColinSullivan1
|
||||
email: colin@nats.io
|
||||
- name: Jaime Piña
|
||||
github: https://github.com/variadico
|
||||
email: jaime@nats.io
|
||||
icon: https://nats.io/img/nats-icon-color.png
|
|
@ -0,0 +1,586 @@
|
|||
# NATS Server
|
||||
|
||||
[NATS](https://nats.io) is a simple, secure and performant communications system for digital systems, services and devices. NATS is part of the Cloud Native Computing Foundation ([CNCF](https://cncf.io)). NATS has over [30 client language implementations](https://nats.io/download/), and its server can run on-premise, in the cloud, at the edge, and even on a Raspberry Pi. NATS can secure and simplify design and operation of modern distributed systems.
|
||||
|
||||
## TL;DR;
|
||||
|
||||
```console
|
||||
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
|
||||
helm install my-nats nats/nats
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Server Image
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
image: nats:2.1.7-alpine3.11
|
||||
pullPolicy: IfNotPresent
|
||||
```
|
||||
|
||||
### Limits
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
# The number of connect attempts against discovered routes.
|
||||
connectRetries: 30
|
||||
|
||||
# How many seconds should pass before sending a PING
|
||||
# to a client that has no activity.
|
||||
pingInterval:
|
||||
|
||||
# Server settings.
|
||||
limits:
|
||||
maxConnections:
|
||||
maxSubscriptions:
|
||||
maxControlLine:
|
||||
maxPayload:
|
||||
|
||||
writeDeadline:
|
||||
maxPending:
|
||||
maxPings:
|
||||
lameDuckDuration:
|
||||
|
||||
# Number of seconds to wait for client connections to end after the pod termination is requested
|
||||
terminationGracePeriodSeconds: 60
|
||||
```
|
||||
|
||||
### Logging
|
||||
|
||||
*Note*: It is not recommended to enable trace or debug in production since enabling it will significantly degrade performance.
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
logging:
|
||||
debug:
|
||||
trace:
|
||||
logtime:
|
||||
connectErrorReports:
|
||||
reconnectErrorReports:
|
||||
```
|
||||
|
||||
### TLS setup for client connections
|
||||
|
||||
You can find more on how to setup and trouble shoot TLS connnections at:
|
||||
https://docs.nats.io/nats-server/configuration/securing_nats/tls
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
tls:
|
||||
secret:
|
||||
name: nats-client-tls
|
||||
ca: "ca.crt"
|
||||
cert: "tls.crt"
|
||||
key: "tls.key"
|
||||
```
|
||||
|
||||
## Clustering
|
||||
|
||||
If clustering is enabled, then a 3-node cluster will be setup. More info at:
|
||||
https://docs.nats.io/nats-server/configuration/clustering#nats-server-clustering
|
||||
|
||||
```yaml
|
||||
cluster:
|
||||
enabled: true
|
||||
replicas: 3
|
||||
|
||||
tls:
|
||||
secret:
|
||||
name: nats-server-tls
|
||||
ca: "ca.crt"
|
||||
cert: "tls.crt"
|
||||
key: "tls.key"
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```sh
|
||||
$ helm install nats nats/nats --set cluster.enabled=true
|
||||
```
|
||||
|
||||
## Leafnodes
|
||||
|
||||
Leafnode connections to extend a cluster. More info at:
|
||||
https://docs.nats.io/nats-server/configuration/leafnodes
|
||||
|
||||
```yaml
|
||||
leafnodes:
|
||||
enabled: true
|
||||
remotes:
|
||||
- url: "tls://connect.ngs.global:7422"
|
||||
|
||||
#######################
|
||||
# #
|
||||
# TLS Configuration #
|
||||
# #
|
||||
#######################
|
||||
#
|
||||
# # You can find more on how to setup and trouble shoot TLS connnections at:
|
||||
#
|
||||
# # https://docs.nats.io/nats-server/configuration/securing_nats/tls
|
||||
#
|
||||
tls:
|
||||
secret:
|
||||
name: nats-client-tls
|
||||
ca: "ca.crt"
|
||||
cert: "tls.crt"
|
||||
key: "tls.key"
|
||||
```
|
||||
|
||||
## Setting up External Access
|
||||
|
||||
### Using HostPorts
|
||||
|
||||
In case of both external access and advertisements being enabled, an
|
||||
initializer container will be used to gather the public ips. This
|
||||
container will required to have enough RBAC policy to be able to make a
|
||||
look up of the public ip of the node where it is running.
|
||||
|
||||
For example, to setup external access for a cluster and advertise the public ip to clients:
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
# Toggle whether to enable external access.
|
||||
# This binds a host port for clients, gateways and leafnodes.
|
||||
externalAccess: true
|
||||
|
||||
# Toggle to disable client advertisements (connect_urls),
|
||||
# in case of running behind a load balancer (which is not recommended)
|
||||
# it might be required to disable advertisements.
|
||||
advertise: true
|
||||
|
||||
# In case both external access and advertise are enabled
|
||||
# then a service account would be required to be able to
|
||||
# gather the public ip from a node.
|
||||
serviceAccount: "nats-server"
|
||||
```
|
||||
|
||||
Where the service account named `nats-server` has the following RBAC policy for example:
|
||||
|
||||
```yaml
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: nats-server
|
||||
namespace: default
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: nats-server
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources:
|
||||
- nodes
|
||||
verbs: ["get"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: nats-server-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: nats-server
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: nats-server
|
||||
namespace: default
|
||||
```
|
||||
|
||||
The container image of the initializer can be customized via:
|
||||
|
||||
```yaml
|
||||
bootconfig:
|
||||
image: connecteverything/nats-boot-config:0.5.2
|
||||
pullPolicy: IfNotPresent
|
||||
```
|
||||
|
||||
### Using LoadBalancers
|
||||
|
||||
In case of using a load balancer for external access, it is recommended to disable no advertise
|
||||
so that internal ips from the NATS Servers are not advertised to the clients connecting through
|
||||
the load balancer.
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
image: nats:alpine
|
||||
|
||||
cluster:
|
||||
enabled: true
|
||||
noAdvertise: true
|
||||
|
||||
leafnodes:
|
||||
enabled: true
|
||||
noAdvertise: true
|
||||
|
||||
natsbox:
|
||||
enabled: true
|
||||
```
|
||||
|
||||
Then could use an L4 enabled load balancer to connect to NATS, for example:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nats-lb
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
selector:
|
||||
app: nats
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 4222
|
||||
targetPort: 4222
|
||||
name: nats
|
||||
- protocol: TCP
|
||||
port: 7422
|
||||
targetPort: 7422
|
||||
name: leafnodes
|
||||
- protocol: TCP
|
||||
port: 7522
|
||||
targetPort: 7522
|
||||
name: gateways
|
||||
```
|
||||
|
||||
## Gateways
|
||||
|
||||
A super cluster can be formed by pointing to remote gateways.
|
||||
You can find more about gateways in the NATS documentation:
|
||||
https://docs.nats.io/nats-server/configuration/gateways
|
||||
|
||||
```yaml
|
||||
gateway:
|
||||
enabled: false
|
||||
name: 'default'
|
||||
|
||||
#############################
|
||||
# #
|
||||
# List of remote gateways #
|
||||
# #
|
||||
#############################
|
||||
# gateways:
|
||||
# - name: other
|
||||
# url: nats://my-gateway-url:7522
|
||||
|
||||
#######################
|
||||
# #
|
||||
# TLS Configuration #
|
||||
# #
|
||||
#######################
|
||||
#
|
||||
# # You can find more on how to setup and trouble shoot TLS connnections at:
|
||||
#
|
||||
# # https://docs.nats.io/nats-server/configuration/securing_nats/tls
|
||||
#
|
||||
# tls:
|
||||
# secret:
|
||||
# name: nats-client-tls
|
||||
# ca: "ca.crt"
|
||||
# cert: "tls.crt"
|
||||
# key: "tls.key"
|
||||
```
|
||||
|
||||
## Auth setup
|
||||
|
||||
### Auth with a Memory Resolver
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
enabled: true
|
||||
|
||||
# Reference to the Operator JWT.
|
||||
operatorjwt:
|
||||
configMap:
|
||||
name: operator-jwt
|
||||
key: KO.jwt
|
||||
|
||||
# Public key of the System Account
|
||||
systemAccount:
|
||||
|
||||
resolver:
|
||||
############################
|
||||
# #
|
||||
# Memory resolver settings #
|
||||
# #
|
||||
##############################
|
||||
type: memory
|
||||
|
||||
#
|
||||
# Use a configmap reference which will be mounted
|
||||
# into the container.
|
||||
#
|
||||
configMap:
|
||||
name: nats-accounts
|
||||
key: resolver.conf
|
||||
```
|
||||
|
||||
### Auth using an Account Server Resolver
|
||||
|
||||
```yaml
|
||||
auth:
|
||||
enabled: true
|
||||
|
||||
# Reference to the Operator JWT.
|
||||
operatorjwt:
|
||||
configMap:
|
||||
name: operator-jwt
|
||||
key: KO.jwt
|
||||
|
||||
# Public key of the System Account
|
||||
systemAccount:
|
||||
|
||||
resolver:
|
||||
##########################
|
||||
# #
|
||||
# URL resolver settings #
|
||||
# #
|
||||
##########################
|
||||
type: URL
|
||||
url: "http://nats-account-server:9090/jwt/v1/accounts/"
|
||||
```
|
||||
|
||||
## JetStream
|
||||
|
||||
### Setting up Memory and File Storage
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
image: synadia/nats-server:nightly
|
||||
|
||||
jetstream:
|
||||
enabled: true
|
||||
|
||||
memStorage:
|
||||
enabled: true
|
||||
size: 2Gi
|
||||
|
||||
fileStorage:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
storageDirectory: /data/
|
||||
storageClassName: default
|
||||
```
|
||||
|
||||
### Using with an existing PersistentVolumeClaim
|
||||
|
||||
For example, given the following `PersistentVolumeClaim`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: nats-js-disk
|
||||
annotations:
|
||||
volume.beta.kubernetes.io/storage-class: "default"
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 3Gi
|
||||
```
|
||||
|
||||
You can start JetStream so that one pod is bounded to it:
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
image: synadia/nats-server:nightly
|
||||
|
||||
jetstream:
|
||||
enabled: true
|
||||
|
||||
fileStorage:
|
||||
enabled: true
|
||||
storageDirectory: /data/
|
||||
existingClaim: nats-js-disk
|
||||
claimStorageSize: 3Gi
|
||||
```
|
||||
|
||||
### Clustering example
|
||||
|
||||
```yaml
|
||||
|
||||
nats:
|
||||
image: synadia/nats-server:nightly
|
||||
|
||||
jetstream:
|
||||
enabled: true
|
||||
|
||||
memStorage:
|
||||
enabled: true
|
||||
size: "2Gi"
|
||||
|
||||
fileStorage:
|
||||
enabled: true
|
||||
size: "1Gi"
|
||||
storageDirectory: /data/
|
||||
storageClassName: default
|
||||
|
||||
cluster:
|
||||
enabled: true
|
||||
# Cluster name is required, by default will be release name.
|
||||
# name: "nats"
|
||||
replicas: 3
|
||||
```
|
||||
|
||||
## Misc
|
||||
|
||||
### NATS Box
|
||||
|
||||
A lightweight container with NATS and NATS Streaming utilities that is deployed along the cluster to confirm the setup.
|
||||
You can find the image at: https://github.com/nats-io/nats-box
|
||||
|
||||
```yaml
|
||||
natsbox:
|
||||
enabled: true
|
||||
image: synadia/nats-box:latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# credentials:
|
||||
# secret:
|
||||
# name: nats-sys-creds
|
||||
# key: sys.creds
|
||||
```
|
||||
|
||||
### Configuration Reload sidecar
|
||||
|
||||
The NATS config reloader image to use:
|
||||
|
||||
```yaml
|
||||
reloader:
|
||||
enabled: true
|
||||
image: connecteverything/nats-server-config-reloader:0.6.0
|
||||
pullPolicy: IfNotPresent
|
||||
```
|
||||
|
||||
### Prometheus Exporter sidecar
|
||||
|
||||
You can toggle whether to start the sidecar that can be used to feed metrics to Prometheus:
|
||||
|
||||
```yaml
|
||||
exporter:
|
||||
enabled: true
|
||||
image: synadia/prometheus-nats-exporter:0.5.0
|
||||
pullPolicy: IfNotPresent
|
||||
```
|
||||
|
||||
### Prometheus operator ServiceMonitor support
|
||||
|
||||
You can enable prometheus operator ServiceMonitor:
|
||||
|
||||
```yaml
|
||||
exporter:
|
||||
# You have to enable exporter first
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
## Specify the namespace where Prometheus Operator is running
|
||||
# namespace: monitoring
|
||||
# ...
|
||||
```
|
||||
|
||||
### Pod Customizations
|
||||
|
||||
#### Security Context
|
||||
|
||||
```yaml
|
||||
# Toggle whether to use setup a Pod Security Context
|
||||
# ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
||||
securityContext:
|
||||
fsGroup: 1000
|
||||
runAsUser: 1000
|
||||
runAsNonRoot: true
|
||||
```
|
||||
|
||||
#### Affinity
|
||||
|
||||
<https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity>
|
||||
|
||||
`matchExpressions` must be configured according to your setup
|
||||
|
||||
```yaml
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: node.kubernetes.io/purpose
|
||||
operator: In
|
||||
values:
|
||||
- nats
|
||||
podAntiAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
- labelSelector:
|
||||
matchExpressions:
|
||||
- key: app
|
||||
operator: In
|
||||
values:
|
||||
- nats
|
||||
- stan
|
||||
topologyKey: "kubernetes.io/hostname"
|
||||
```
|
||||
|
||||
#### Service topology
|
||||
|
||||
[Service topology](https://kubernetes.io/docs/concepts/services-networking/service-topology/) is disabled by default, but can be enabled by setting `topologyKeys`. For example:
|
||||
|
||||
```yaml
|
||||
topologyKeys:
|
||||
- "kubernetes.io/hostname"
|
||||
- "topology.kubernetes.io/zone"
|
||||
- "topology.kubernetes.io/region"
|
||||
```
|
||||
|
||||
#### CPU/Memory Resource Requests/Limits
|
||||
Sets the pods cpu/memory requests/limits
|
||||
|
||||
```yaml
|
||||
nats:
|
||||
resources:
|
||||
requests:
|
||||
cpu: 2
|
||||
memory: 4Gi
|
||||
limits:
|
||||
cpu: 4
|
||||
memory: 6Gi
|
||||
```
|
||||
|
||||
No resources are set by default.
|
||||
|
||||
#### Annotations
|
||||
|
||||
<https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations>
|
||||
|
||||
```yaml
|
||||
podAnnotations:
|
||||
key1 : "value1",
|
||||
key2 : "value2"
|
||||
```
|
||||
|
||||
### Name Overides
|
||||
|
||||
Can change the name of the resources as needed with:
|
||||
|
||||
```yaml
|
||||
nameOverride: "my-nats"
|
||||
```
|
||||
|
||||
### Image Pull Secrets
|
||||
|
||||
```yaml
|
||||
imagePullSecrets:
|
||||
- name: myRegistry
|
||||
```
|
||||
|
||||
Adds this to the StatefulSet:
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: myRegistry
|
||||
```
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
{{- if or .Values.nats.logging.debug .Values.nats.logging.trace }}
|
||||
*WARNING*: Keep in mind that running the server with
|
||||
debug and/or trace enabled significantly affects the
|
||||
performance of the server!
|
||||
{{- end }}
|
||||
|
||||
You can find more information about running NATS on Kubernetes
|
||||
in the NATS documentation website:
|
||||
|
||||
https://docs.nats.io/nats-on-kubernetes/nats-kubernetes
|
||||
|
||||
{{- if .Values.natsbox.enabled }}
|
||||
|
||||
NATS Box has been deployed into your cluster, you can
|
||||
now use the NATS tools within the container as follows:
|
||||
|
||||
kubectl exec -n {{ .Release.Namespace }} -it deployment/{{ template "nats.fullname" . }}-box -- /bin/sh -l
|
||||
|
||||
nats-box:~# nats-sub test &
|
||||
nats-box:~# nats-pub test hi
|
||||
nats-box:~# nc {{ template "nats.fullname" . }} 4222
|
||||
|
||||
{{- end }}
|
||||
|
||||
Thanks for using NATS!
|
|
@ -0,0 +1,95 @@
|
|||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "nats.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{- define "nats.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "nats.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "nats.labels" -}}
|
||||
helm.sh/chart: {{ include "nats.chart" . }}
|
||||
{{ include "nats.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "nats.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "nats.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Return the proper NATS image name
|
||||
*/}}
|
||||
{{- define "nats.clusterAdvertise" -}}
|
||||
{{- printf "$(POD_NAME).%s.$(POD_NAMESPACE).svc" (include "nats.fullname" . ) }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Return the NATS cluster routes.
|
||||
*/}}
|
||||
{{- define "nats.clusterRoutes" -}}
|
||||
{{- $name := default .Release.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- range $i, $e := until (.Values.cluster.replicas | int) -}}
|
||||
{{- printf "nats://%s-%d.%s.%s.svc:6222," $name $i $name $.Release.Namespace -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{- define "nats.tlsConfig" -}}
|
||||
tls {
|
||||
{{- if .cert }}
|
||||
cert_file: {{ .secretPath }}/{{ .secret.name }}/{{ .cert }}
|
||||
{{- end }}
|
||||
{{- if .key }}
|
||||
key_file: {{ .secretPath }}/{{ .secret.name }}/{{ .key }}
|
||||
{{- end }}
|
||||
{{- if .ca }}
|
||||
ca_file: {{ .secretPath }}/{{ .secret.name }}/{{ .ca }}
|
||||
{{- end }}
|
||||
{{- if .insecure }}
|
||||
insecure: {{ .insecure }}
|
||||
{{- end }}
|
||||
{{- if .verify }}
|
||||
verify: {{ .verify }}
|
||||
{{- end }}
|
||||
{{- if .verifyAndMap }}
|
||||
verify_and_map: {{ .verifyAndMap }}
|
||||
{{- end }}
|
||||
{{- if .curvePreferences }}
|
||||
curve_preferences: {{ .curvePreferences }}
|
||||
{{- end }}
|
||||
{{- if .timeout }}
|
||||
timeout: {{ .timeout }}
|
||||
{{- end }}
|
||||
}
|
||||
{{- end }}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue