diff --git a/charts/README.md b/charts/README.md new file mode 100644 index 000000000..9b5505eb4 --- /dev/null +++ b/charts/README.md @@ -0,0 +1,20 @@ +# Apache Dubbo Admin + +A Helm chart for Dubbo Admin The ops and reference implementation for Apache Dubbo. + +## Prerequisites + +* Kubernetes v1.14+ +* Helm v3+ + +### Install + +```bash +helm install [RELEASE_NAME] dubbo-admin --namespace dubbo-system --create-namespace +``` + +### Uninstall + +```bash +helm delete [RELEASE_NAME] --namespace dubbo-system +``` \ No newline at end of file diff --git a/charts/admin-stack/charts/dubbo-admin/.helmignore b/charts/admin-stack/charts/dubbo-admin/.helmignore deleted file mode 100644 index 0e8a0eb36..000000000 --- a/charts/admin-stack/charts/dubbo-admin/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# 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/ diff --git a/charts/admin-stack/charts/dubbo-admin/Chart.yaml b/charts/admin-stack/charts/dubbo-admin/Chart.yaml deleted file mode 100644 index dff5d7f22..000000000 --- a/charts/admin-stack/charts/dubbo-admin/Chart.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v2 -appVersion: "" -name: dubbo-admin -description: Distributed application monitoring and management platform. -home: https://cn.dubbo.apache.org -kubeVersion: '>=1.20.0-0' -maintainers: - - email: dev@dubbo.apache.org - name: dubbo -sources: - - https://github.com/apache/dubbo -type: application -version: 0.5.0 \ No newline at end of file diff --git a/charts/admin-stack/charts/dubbo-admin/templates/NOTES.txt b/charts/admin-stack/charts/dubbo-admin/templates/NOTES.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/charts/admin-stack/charts/dubbo-admin/templates/_helpers.tpl b/charts/admin-stack/charts/dubbo-admin/templates/_helpers.tpl deleted file mode 100644 index 538e61c9a..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/_helpers.tpl +++ /dev/null @@ -1,103 +0,0 @@ -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "dubbo-admin.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "dubbo-admin.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "dubbo-admin.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 }} - -{{- define "dubbo-admin.labels" -}} -app.kubernetes.io/name: {{ include "dubbo-admin.name" . }} -helm.sh/chart: {{ include "dubbo-admin.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} - - -{{/* -Allow the release namespace to be overridden for multi-namespace deployments in combined charts -*/}} -{{- define "dubbo-admin.namespace" -}} -{{- if .Values.namespaceOverride }} -{{- .Values.namespaceOverride }} -{{- else }} -{{- .Release.Namespace }} -{{- end }} -{{- end }} - - -{{/* -Labels to use on sts.spec.selector.matchLabels and svc.spec.selector -*/}} -{{- define "dubbo-admin.matchLabels" -}} -app.kubernetes.io/name: {{ include "dubbo-admin.name" . }} -{{- end -}} - - -{{- define "dubbo-admin.selectorLabels" -}} -app.kubernetes.io/name: {{ include "dubbo-admin.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - - -{{/* -Create the name of the service account to use -*/}} -{{- define "dubbo-admin.serviceAccountName" -}} -{{- if .Values.serviceAccount.enabled }} -{{- default (include "dubbo-admin.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - - -{{- define "dubbo-admin.serviceAccountNameTest" -}} -{{- if .Values.serviceAccount.enabled }} -{{- default (print (include "dubbo-admin.fullname" .) "-test") .Values.serviceAccount.nameTest }} -{{- else }} -{{- default "default" .Values.serviceAccount.nameTest }} -{{- end }} -{{- end }} - -{{- define "dubbo-admin.rbac.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" }} -{{- print "rbac.authorization.k8s.io/v1" }} -{{- else }} -{{- print "rbac.authorization.k8s.io/v1beta1" }} -{{- end }} -{{- end }} - -{{- define "dubbo-admin.podDisruptionBudget.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }} -{{- print "policy/v1" }} -{{- else }} -{{- print "policy/v1beta1" }} -{{- end }} -{{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/dubbo-admin/templates/clusterrole.yaml b/charts/admin-stack/charts/dubbo-admin/templates/clusterrole.yaml deleted file mode 100644 index 1d666a563..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/clusterrole.yaml +++ /dev/null @@ -1,39 +0,0 @@ -{{- if and .Values.rbac.enabled }} -apiVersion: {{ include "dubbo-admin.rbac.apiVersion" . }} -kind: ClusterRole -metadata: - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - name: {{ include "dubbo-admin.fullname" . }}-clusterrole -rules: - - apiGroups: # "" indicates the core API group - - "" - resources: - - configmaps - - secrets - - pods - verbs: - - get - - watch - - list - - apiGroups: - - "extensions" - resources: - - ingresses - verbs: - - get - - apiGroups: - - "apps" - resources: - - configmaps - - deployments - - services - verbs: - - get - - list - - watch - {{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/clusterrolebinding.yaml b/charts/admin-stack/charts/dubbo-admin/templates/clusterrolebinding.yaml deleted file mode 100644 index d0e99d961..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,20 +0,0 @@ -{{- if and .Values.rbac.enabled }} -apiVersion: {{ include "dubbo-admin.rbac.apiVersion" . }} -kind: ClusterRoleBinding -metadata: - name: {{ include "dubbo-admin.fullname" . }}-clusterrolebinding - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -subjects: - - kind: ServiceAccount - name: {{ include "dubbo-admin.serviceAccountName" . }} - namespace: {{ include "dubbo-admin.namespace" . }} -roleRef: - kind: ClusterRole - name: {{ include "dubbo-admin.fullname" . }}-clusterrole - {{- end }} - apiGroup: rbac.authorization.k8s.io diff --git a/charts/admin-stack/charts/dubbo-admin/templates/ingress.yaml b/charts/admin-stack/charts/dubbo-admin/templates/ingress.yaml deleted file mode 100644 index 9fe91f02e..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/ingress.yaml +++ /dev/null @@ -1,78 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $ingressApiIsStable := eq (include "dubbo-admin.ingress.isStable" .) "true" -}} -{{- $ingressSupportsIngressClassName := eq (include "dubbo-admin.ingress.supportsIngressClassName" .) "true" -}} -{{- $ingressSupportsPathType := eq (include "dubbo-admin.ingress.supportsPathType" .) "true" -}} -{{- $fullName := include "dubbo-admin.fullname" . -}} -{{- $servicePort := .Values.service.port -}} -{{- $ingressPath := .Values.ingress.path -}} -{{- $ingressPathType := .Values.ingress.pathType -}} -{{- $extraPaths := .Values.ingress.extraPaths -}} -apiVersion: {{ include "dubbo-admin.ingress.apiVersion" . }} -kind: Ingress -metadata: - name: {{ $fullName }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.ingress.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ tpl $value $ | quote }} - {{- end }} - {{- end }} -spec: - {{- if and $ingressSupportsIngressClassName .Values.ingress.ingressClassName }} - ingressClassName: {{ .Values.ingress.ingressClassName }} - {{- end -}} - {{- with .Values.ingress.tls }} - tls: - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - rules: - {{- if .Values.ingress.hosts }} - {{- range .Values.ingress.hosts }} - - host: {{ tpl . $ }} - http: - paths: - {{- with $extraPaths }} - {{- toYaml . | nindent 10 }} - {{- end }} - - path: {{ $ingressPath }} - {{- if $ingressSupportsPathType }} - pathType: {{ $ingressPathType }} - {{- end }} - backend: - {{- if $ingressApiIsStable }} - service: - name: {{ $fullName }} - port: - number: {{ $servicePort }} - {{- else }} - serviceName: {{ $fullName }} - servicePort: {{ $servicePort }} - {{- end }} - {{- end }} - {{- else }} - - http: - paths: - - backend: - {{- if $ingressApiIsStable }} - service: - name: {{ $fullName }} - port: - number: {{ $servicePort }} - {{- else }} - serviceName: {{ $fullName }} - servicePort: {{ $servicePort }} - {{- end }} - {{- with $ingressPath }} - path: {{ . }} - {{- end }} - {{- if $ingressSupportsPathType }} - pathType: {{ $ingressPathType }} - {{- end }} - {{- end -}} -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/networkpolicy.yaml b/charts/admin-stack/charts/dubbo-admin/templates/networkpolicy.yaml deleted file mode 100644 index 70f3e8a34..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/networkpolicy.yaml +++ /dev/null @@ -1,52 +0,0 @@ -{{- if .Values.networkPolicy.enabled }} -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: {{ include "dubbo-admin.fullname" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - policyTypes: - {{- if .Values.networkPolicy.ingress }} - - Ingress - {{- end }} - {{- if .Values.networkPolicy.egress.enabled }} - - Egress - {{- end }} - podSelector: - matchLabels: - {{- include "dubbo-admin.selectorLabels" . | nindent 6 }} - - {{- if .Values.networkPolicy.egress.enabled }} - egress: - - ports: - {{ .Values.networkPolicy.egress.ports | toJson }} - {{- end }} - {{- if .Values.networkPolicy.ingress }} - ingress: - - ports: - - port: {{ .Values.service.targetPort }} - {{- if not .Values.networkPolicy.allowExternal }} - from: - - podSelector: - matchLabels: - {{ include "dubbo-admin.fullname" . }}-client: "true" - {{- with .Values.networkPolicy.explicitNamespacesSelector }} - - namespaceSelector: - {{- toYaml . | nindent 12 }} - {{- end }} - - podSelector: - matchLabels: - {{- include "dubbo-admin.labels" . | nindent 14 }} - role: read - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/pdb.yaml b/charts/admin-stack/charts/dubbo-admin/templates/pdb.yaml deleted file mode 100644 index 86809fe79..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/pdb.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: {{ include "dubbo-admin.podDisruptionBudget.apiVersion" . }} -kind: PodDisruptionBudget -metadata: - name: {{ include "dubbo-admin.fullname" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.podDisruptionBudget.minAvailable }} - minAvailable: {{ . }} - {{- end }} - {{- with .Values.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ . }} - {{- end }} - selector: - matchLabels: - {{- include "dubbo-admin.selectorLabels" . | nindent 6 }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/pvc.yaml b/charts/admin-stack/charts/dubbo-admin/templates/pvc.yaml deleted file mode 100644 index 2af3e1ae2..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/pvc.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if and .Values.persistence.enabled }} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "dubbo-admin.fullname" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.persistence.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - accessModes: - {{- range .Values.persistence.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} - {{- with .Values.persistence.storageClass }} - storageClassName: {{ . }} - {{- end }} - {{- with .Values.persistence.selectorLabels }} - selector: - matchLabels: - {{- toYaml . | nindent 6 }} - {{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/role.yaml b/charts/admin-stack/charts/dubbo-admin/templates/role.yaml deleted file mode 100644 index b096ba5b8..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/role.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if and .Values.rbac.enabled -}} -apiVersion: {{ include "dubbo-admin.rbac.apiVersion" . }} -kind: Role -metadata: - name: {{ include "dubbo-admin.fullname" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- if .Values.rbac.pspEnabled }} -rules: - {{- if .Values.rbac.pspEnabled }} - - apiGroups: - - extensions - resources: - - podsecuritypolicies - verbs: - - use - resourceNames: - - {{ include "dubbo-admin.fullname" . }} - {{- end }} -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/rolebinding.yaml b/charts/admin-stack/charts/dubbo-admin/templates/rolebinding.yaml deleted file mode 100644 index 357f9352f..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/rolebinding.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if .Values.rbac.enabled }} -apiVersion: {{ include "dubbo-admin.rbac.apiVersion" . }} -kind: RoleBinding -metadata: - name: {{ include "dubbo-admin.fullname" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ include "dubbo-admin.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ include "dubbo-admin.serviceAccountName" . }} - namespace: {{ include "dubbo-admin.namespace" . }} -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/secret.yaml b/charts/admin-stack/charts/dubbo-admin/templates/secret.yaml deleted file mode 100644 index fcad8feea..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "dubbo-admin.fullname" . }}-secret - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -data: - application.properties: {{ tpl (toYaml .Values.properties) . | b64enc }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/serviceaccount.yaml b/charts/admin-stack/charts/dubbo-admin/templates/serviceaccount.yaml deleted file mode 100644 index 3ccaf61f7..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/serviceaccount.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- if .Values.serviceAccount.enabled }} -{{- $admin := . -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- tpl (toYaml . | nindent 4) $admin }} - {{- end }} - name: {{ include "dubbo-admin.serviceAccountName" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - {{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/svc-headless.yaml b/charts/admin-stack/charts/dubbo-admin/templates/svc-headless.yaml deleted file mode 100644 index 0a5c08691..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/svc-headless.yaml +++ /dev/null @@ -1,45 +0,0 @@ -{{- if .Values.service.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "dubbo-admin.fullname" . }}-headless - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} - type: {{ .Values.service.type }} - clusterIP: None - {{- else if eq .Values.service.type "LoadBalancer" }} - type: {{ .Values.service.type }} - {{- with .Values.service.loadBalancerIP }} - loadBalancerIP: {{ . }} - {{- end }} - {{- with .Values.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- else }} - type: {{ .Values.service.type }} - {{- end }} - {{- with .Values.service.externalIPs }} - externalIPs: - {{- toYaml . | nindent 4 }} - {{- end }} - ports: - - name: {{ .Values.service.portName }} - port: {{ .Values.service.port }} - protocol: {{ .Values.service.protocol }} - targetPort: {{ .Values.service.targetPort }} - {{- with .Values.service.appProtocol }} - appProtocol: {{ . }} - {{- end }} - {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} - selector: - {{- include "dubbo-admin.selectorLabels" . | nindent 4 }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/dubbo-admin/templates/svc.yaml b/charts/admin-stack/charts/dubbo-admin/templates/svc.yaml deleted file mode 100644 index 941c917fb..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/svc.yaml +++ /dev/null @@ -1,49 +0,0 @@ -{{- if .Values.service.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "dubbo-admin.fullname" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} - type: {{ .Values.service.type }} - {{- with .Values.service.clusterIP }} - clusterIP: {{ . }} - {{- end }} - {{- else if eq .Values.service.type "LoadBalancer" }} - type: {{ .Values.service.type }} - {{- with .Values.service.loadBalancerIP }} - loadBalancerIP: {{ . }} - {{- end }} - {{- with .Values.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- else }} - type: {{ .Values.service.type }} - {{- end }} - {{- with .Values.service.externalIPs }} - externalIPs: - {{- toYaml . | nindent 4 }} - {{- end }} - ports: - - name: {{ .Values.service.portName }} - port: {{ .Values.service.port }} - protocol: {{ .Values.service.protocol }} - targetPort: {{ .Values.service.targetPort }} - {{- with .Values.service.appProtocol }} - appProtocol: {{ . }} - {{- end }} - {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} - selector: - {{- include "dubbo-admin.selectorLabels" . | nindent 4 }} - {{- end }} - - diff --git a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-role.yaml b/charts/admin-stack/charts/dubbo-admin/templates/tests/test-role.yaml deleted file mode 100644 index 5a5982399..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-role.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") .Values.tests.enabled .Values.rbac.pspEnabled }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: {{ include "dubbo-admin.fullname" . }}-test - namespace: {{ include "dubbo-admin.namespace" . }} - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} -rules: - - apiGroups: - - extensions - resources: - - podsecuritypolicies - verbs: - - use - resourceNames: - - {{ include "dubbo-admin.fullname" . }}-test -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-rolebinding.yaml b/charts/admin-stack/charts/dubbo-admin/templates/tests/test-rolebinding.yaml deleted file mode 100644 index 7bb20ebb9..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-rolebinding.yaml +++ /dev/null @@ -1,20 +0,0 @@ -{{- if and (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") .Values.tests.enabled .Values.rbac.pspEnabled }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ include "dubbo-admin.fullname" . }}-test - namespace: {{ include "dubbo-admin.namespace" . }} - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: {{ include "dubbo-admin.fullname" . }}-test -subjects: - - kind: ServiceAccount - name: {{ include "dubbo-admin.serviceAccountNameTest" . }} - namespace: {{ include "dubbo-admin.namespace" . }} -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-secret.yaml b/charts/admin-stack/charts/dubbo-admin/templates/tests/test-secret.yaml deleted file mode 100644 index 7ee857b2a..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "dubbo-admin.fullname" . }}-secret-test - namespace: {{ include "dubbo-admin.namespace" . }} - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} -type: Opaque -data: - application.properties: {{ tpl (toYaml .Values.properties) . | b64enc }}-test diff --git a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-serviceaccount.yaml b/charts/admin-stack/charts/dubbo-admin/templates/tests/test-serviceaccount.yaml deleted file mode 100644 index 0590e0b62..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/tests/test-serviceaccount.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- if and .Values.tests.enabled .Values.serviceAccount.enabled }} -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - name: {{ include "dubbo-admin.serviceAccountNameTest" . }} - namespace: {{ include "dubbo-admin.namespace" . }} - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/tests/test.yaml b/charts/admin-stack/charts/dubbo-admin/templates/tests/test.yaml deleted file mode 100644 index 1cf6b6414..000000000 --- a/charts/admin-stack/charts/dubbo-admin/templates/tests/test.yaml +++ /dev/null @@ -1,49 +0,0 @@ -{{- if .Values.tests.enabled }} -{{- $root := . }} -apiVersion: v1 -kind: Pod -metadata: - name: {{ include "dubbo-admin.fullname" . }}-test - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test-success - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - namespace: {{ include "dubbo-admin.namespace" . }} -spec: - serviceAccountName: {{ include "dubbo-admin.serviceAccountName" . }} - {{- with .Values.tests.securityContext }} - securityContext: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- if or .Values.image.pullSecrets .Values.global.imagePullSecrets }} - imagePullSecrets: - {{- include "dubbo-admin.imagePullSecrets" (dict "root" $root "imagePullSecrets" .Values.image.pullSecrets) | nindent 4 }} - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- tpl (toYaml .) $root | nindent 4 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 4 }} - {{- end }} - containers: - - name: {{ .Release.Name }}-test - image: "{{ .Values.tests.image}}" - imagePullPolicy: "{{ .Values.tests.imagePullPolicy}}" - command: ["wget"] - volumeMounts: - - mountPath: /tests - name: tests - readOnly: true - volumes: - - name: tests - secret: - secretName: {{ include "dubbo-admin.fullname" . }}-secret - restartPolicy: Never -{{- end }} diff --git a/charts/admin-stack/charts/dubbo-admin/values.yaml b/charts/admin-stack/charts/dubbo-admin/values.yaml deleted file mode 100644 index cf9ff5e1a..000000000 --- a/charts/admin-stack/charts/dubbo-admin/values.yaml +++ /dev/null @@ -1,413 +0,0 @@ -image: - registry: docker.io - ## E.g registry.k8s.io - ## - repository: apache/dubbo-admin - ## - ## - tag: "0.6.0" - ## - ## - debug: false - ## - ## Specify a imagePullPolicy - ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' - ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images - ## - pullPolicy: IfNotPresent - ## - ## Optionally specify an array of imagePullSecrets. - ## Secrets must be manually created in the namespace. - ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - ## Can be templated. - ## - pullSecrets: [] - # - RegisterKeySecretName - -replicas: 1 - -## global.imageRegistry Global Docker image registry -## global.imagePullSecrets Global Docker registry secret names as an array -## global.storageClass Global StorageClass for Persistent Volume(s) -## -global: - imageRegistry: "" - ## E.g. - ## imagePullSecrets: - ## - myRegistryKeySecretName - ## - imagePullSecrets: [] - - -rbac: - # Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) - enabled: true - pspEnabled: true - - -## serviceAccount -serviceAccount: - enabled: true - ## ## ServiceAccount name. - name: {} - ## ServiceAccount nameTests. - nameTest: {} - ## ServiceAccount labels. - labels: {} - ## ServiceAccount annotations. - annotations: {} - - -# -- Optional array of imagePullSecrets containing private registry credentials -## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ -imagePullSecrets: [] -# - name: secretName - - -## Create HorizontalPodAutoscaler object for deployment type -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 5 - targetCPU: "60" - targetMemory: "" - behavior: {} - - -## See `kubectl explain deployment.spec.strategy` for more -## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy -deploymentStrategy: - type: RollingUpdate - - -## @param readinessProbe.enabled Enable readinessProbe on containers -readinessProbe: - httpGet: - path: / - port: 8080 - ## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe - initialDelaySeconds: 60 - ## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe - timeoutSeconds: 30 - ## @param readinessProbe.periodSeconds Period seconds for readinessProbe - periodSeconds: 10 - ## @param readinessProbe.successThreshold Success threshold for readinessProbe - successThreshold: 1 - ## @param readinessProbe.failureThreshold Failure threshold for readinessProbe - failureThreshold: 3 - ## @param readinessProbe.probeCommandTimeout Probe command timeout for readinessProbe - probeCommandTimeout: 1 - - -## @param livenessProbe.enabled Enable livenessProbe on containers -livenessProbe: - httpGet: - path: / - port: 8080 - ## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe - initialDelaySeconds: 60 - ## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe - timeoutSeconds: 30 - ## @param livenessProbe.periodSeconds Period seconds for livenessProbe - periodSeconds: 10 - ## @param livenessProbe.successThreshold Success threshold for livenessProbe - successThreshold: 1 - ## @param livenessProbe.failureThreshold Failure threshold for livenessProbe - failureThreshold: 3 - ## @param livenessProbe.probeCommandTimeout Probe command timeout for livenessProbe - probeCommandTimeout: 1 - - -## @param startupProbe.enabled Enable startupProbe on containers -startupProbe: - httpGet: - path: / - port: 8080 - ## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe - initialDelaySeconds: 60 - ## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe - timeoutSeconds: 30 - ## @param startupProbe.periodSeconds Period seconds for startupProbe - periodSeconds: 10 - ## @param startupProbe.successThreshold Success threshold for startupProbe - successThreshold: 1 - ## @param startupProbe.failureThreshold Failure threshold for startupProbe - failureThreshold: 3 - - -tests: - enabled: true - image: busybox - tag: "" - imagePullPolicy: IfNotPresent - securityContext: {} - - -## configmap mounts -ConfigmapMounts: [] - # - name: configMap-file - # mountPath: /config - # configMap: configMap-file - # readOnly: true - - -## secret mounts -SecretMounts: -# - name: secret-file -# secret: -# secretName: secret-file - - -## emptyDir mounts -EmptyDirMounts: [] -# - name: "" -# mountPath: / - - -## Expose the dubbo-admin service to be accessed from outside the cluster (LoadBalancer service). -## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it. -## ref: http://kubernetes.io/docs/user-guide/services/ -## -service: - name: http - ## - ## Service name. - ## - enabled: true - ## - ## Service enable true or false. - ## - type: ClusterIP - ## - ## Service type. - ## - clusterIP: "" - ## - ## Service clusterIP. - ## - loadBalancerIP: "" - ## - ## Service loadBalancerIP. - ## - loadBalancerSourceRanges: "" - ## - ## Service loadBalancerSourceRanges. - ## - externalIPs: "" - ## - ## Service externalIPs. - ## - nodePort: "" - ## - ## Service nodePort. - ## - path: / - ## - ## Service path. - ## - port: 38080 - ## - ## Service port. - ## - targetPort: http - ## - ## Service targetPort. - ## - containerPort: 8080 - ## - ## Service containerPort. - ## - protocol: TCP - ## - ## Service protocol. - ## - ## - labels: {} - ## - ## Service labels. - ## - annotations: {} - ## - ## Service annotations. Can be templated. - ## - portName: service - ## - ## Service portName. - ## - appProtocol: "" - ## - ## Service appProtocol. - ## - - -ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - ## - ## - # pathType is only for k8s >= 1.1= - pathType: Prefix - ## - ## - hosts: - - chart-example.local - ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # backend: - # serviceName: ssl-redirect - # servicePort: use-annotation - ## Or for k8s > 1.19 - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: use-annotation - ## - ## - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - - -resources: {} -# limits: -# cpu: 100m -# memory: 128Mi -# requests: -# cpu: 100m -# memory: 128Mi - - -## Enable persistence using Persistent Volume Claims -## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ -## -persistence: - enabled: false - storageClass: "" - accessModes: - - ReadWriteOnce - size: 10Gi - ## Name of an existing PVC. Can be templated. - ClaimName: {} - ## - ## persistence emptyDir - emptyDir: {} - - -securityContext: - runAsNonRoot: false - runAsUser: 0 - - -## Container Lifecycle Hooks. Execute a specific bash command or make an HTTP request -lifecycleHooks: {} - # postStart: - # exec: - # command: [] - # preStop: - # exec: - # command: [] - - -## See `kubectl explain poddisruptionbudget.spec` for more -## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ -podDisruptionBudget: - enabled: false - minAvailable: 1 - # maxUnavailable: 1 - - -networkPolicy: - ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. - ## - enabled: false - ## @param networkPolicy.allowExternal Don't require client label for connections - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to dubbo-admin port defined. - ## When true, dubbo-admin will accept connections from any source - ## (with the correct destination port). - ## - ingress: true - ## @param networkPolicy.ingress When true enables the creation - ## an ingress network policy - ## - ## - ## - ## - egress: - ## @param networkPolicy.egress.enabled When enabled, an egress network policy will be - ## created allowing dubbo-admin to connect to external data sources from kubernetes cluster. - enabled: false - ## - ## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress - ports: [] - ## Add ports to the egress by specifying - port: - ## E.X. - ## ports: - ## - port: 80 - ## - port: 443 - - - - -## @param Dubbo-admin Default Enable Configuration -properties: - admin.registry.address: zookeeper://zookeeper:2181 - admin.config-center: zookeeper://zookeeper:2181 - admin.metadata-report.address: zookeeper://zookeeper:2181 - admin.root.user.name: root - admin.root.user.password: root - admin.check.sessionTimeoutMilli: 3600000 - server.compression.enabled: true - server.compression.mime-types: text/css,text/javascript,application/javascript - server.compression.min-response-size: 10240 - admin.check.tokenTimeoutMilli: 3600000 - admin.check.signSecret: 86295dd0c4ef69a1036b0b0c15158d77 - dubbo.application.name: dubbo-admin - dubbo.registry.address: ${admin.registry.address} - spring.datasource.url: jdbc:h2:mem:~/dubbo-admin;MODE=MYSQL; - spring.datasource.username: sa - spring.datasource.password: - mybatis-plus.global-config.db-config.id-type: none - dubbo.application.logger: slf4j - - # nacos config, add parameters to url like username=nacos&password=nacos - # admin.registry.address: nacos://nacos:8848?group=DEFAULT_GROUP&namespace=public - # admin.config-center: nacos://nacos:8848?group=dubbo - # admin.metadata-report.address: nacos://nacos:8848?group=dubbo - - - # group (Deprecated it is recommended to use URL to add parameters,will be removed in the future) - # admin.registry.group: dubbo - # admin.config-center.group: dubbo - # admin.metadata-report.group: dubbo - - # namespace used by nacos.(Deprecated it is recommended to use URL to add parameters,will be removed in the future) - # admin.registry.namespace: public - # admin.config-center.namespace: public - # admin.metadata-report.namespace: public - - # apollo config - # admin.config-center: apollo://localhost:8070?token=e16e5cd903fd0c97a116c873b448544b9d086de9&app.id=test&env=dev&cluster=default&namespace=dubbo - # admin.apollo.token: e16e5cd903fd0c97a116c873b448544b9d086de9 - # admin.apollo.appId: test - # admin.apollo.env: dev - # admin.apollo.cluster: default - - # mysql - # spring.datasource.driver-class-name: com.mysql.jdbc.Driver - # spring.datasource.url: jdbc:mysql://localhost:3306/dubbo-admin?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true - # spring.datasource.username: root - # spring.datasource.password: mysql \ No newline at end of file diff --git a/charts/admin-stack/charts/grafana/.helmignore b/charts/admin-stack/charts/grafana/.helmignore deleted file mode 100644 index 8cade1318..000000000 --- a/charts/admin-stack/charts/grafana/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# 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 -*~ -# Various IDEs -.vscode -.project -.idea/ -*.tmproj -OWNERS diff --git a/charts/admin-stack/charts/grafana/Chart.yaml b/charts/admin-stack/charts/grafana/Chart.yaml deleted file mode 100644 index 988609267..000000000 --- a/charts/admin-stack/charts/grafana/Chart.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v2 -appVersion: 9.3.6 -description: The leading tool for querying and visualizing time series and metrics. -home: https://grafana.net -kubeVersion: ^1.8.0-0 -maintainers: - - email: dev@dubbo.apache.org - name: dubbo -name: grafana -sources: - - https://github.com/grafana/grafana -type: application -version: 6.50.6 diff --git a/charts/admin-stack/charts/grafana/dashboards/custom-dashboard.json b/charts/admin-stack/charts/grafana/dashboards/custom-dashboard.json deleted file mode 100644 index f14ec3225..000000000 --- a/charts/admin-stack/charts/grafana/dashboards/custom-dashboard.json +++ /dev/null @@ -1,4358 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 9, - "links": [ - { - "asDropdown": false, - "icon": "external link", - "includeVars": false, - "keepTime": false, - "tags": [], - "targetBlank": false, - "title": "New link", - "tooltip": "", - "type": "dashboards", - "url": "" - } - ], - "liveNow": false, - "panels": [ - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 57, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "application_name", - "gridPos": { - "h": 3, - "w": 24, - "x": 0, - "y": 17 - }, - "id": 42, - "options": { - "code": { - "language": "html", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "
${application_name}
", - "mode": "html" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "expr": "qps{application_name=\"$application_name\"}", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "application_name", - "type": "text" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 0, - "y": 20 - }, - "id": 47, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "sum(dubbo_provider_requests_succeed_total{application_name=\"$application_name\"}) / sum(dubbo_provider_requests_total{application_name=\"$application_name\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "provider_success_rate", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 0 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 4, - "y": 20 - }, - "id": 53, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "sum(dubbo_provider_requests_failed_total{application_name=\"$application_name\"}) OR on() vector(0) / sum(dubbo_provider_requests_total{application_name=\"$application_name\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "provider_failed_rate", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "red", - "mode": "fixed" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 8, - "y": 20 - }, - "id": 48, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "sum(dubbo_provider_requests_failed_total{application_name=\"$application_name\"}) OR on() vector(0)", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "provider_error_total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "red", - "mode": "fixed" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 12, - "y": 20 - }, - "id": 51, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "sum(dubbo_provider_requests_timeout_total{application_name=\"$application_name\"}) OR on() vector(0)", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "timeout_total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "red", - "mode": "fixed" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 16, - "y": 20 - }, - "id": 50, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "sum(dubbo_provider_requests_limit_total{application_name=\"$application_name\"}) OR on() vector(0)", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "limit_total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "red", - "mode": "fixed" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 4, - "x": 20, - "y": 20 - }, - "id": 52, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "sum(dubbo_provider_requests_unknown_total{application_name=\"$application_name\"})OR on() vector(0)", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "unknown_total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 25 - }, - "id": 54, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "max(dubbo_provider_rt_seconds_max{application_name=\"$application_name\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "rt_max", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 25 - }, - "id": 55, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "expr": "min(dubbo_provider_rt_seconds_min{application_name=\"$application_name\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "rt_min", - "type": "stat" - } - ], - "title": "Dubbo Stat", - "type": "row" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 1 - }, - "id": 10, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "refId": "A" - } - ], - "title": "Provider Request", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 1, - "axisWidth": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 15, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 4, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 18, - "options": { - "legend": { - "calcs": [ - "min", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_qps_seconds{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_qps", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 15, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 36, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "increase(dubbo_provider_requests_total{application_name=\"$application_name\"}[2m])", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_total(2m)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 19, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 15 - }, - "id": 32, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_requests_processing{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_processing", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 18, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 15 - }, - "id": 33, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "increase(dubbo_provider_requests_succeed_total{application_name=\"$application_name\"}[2m])", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_succeed(2m)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 13, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 23 - }, - "id": 38, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_requests_total_aggregate{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_total_aggregate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 13, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 23 - }, - "id": 60, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_requests_succeed_aggregate{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_succeed_aggregate", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 30 - }, - "id": 44, - "panels": [], - "title": "Provider RT", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 72, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 23, - "x": 0, - "y": 31 - }, - "id": 45, - "options": { - "legend": { - "calcs": [ - "min", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "increase(dubbo_provider_rt_seconds_sum{application_name=\"$application_name\"}[1m])", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_rt_sum(1m)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 38 - }, - "id": 29, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_min{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_rt_min", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 38 - }, - "id": 30, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_max{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_rt_max", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 24, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 45 - }, - "id": 78, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_avg{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_rt_avg ", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 35, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 45 - }, - "id": 39, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_last{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_rt_last", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 34, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 52 - }, - "id": 40, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_p95{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": " provider_rt_p95", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 31, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "org.apache.dubbo.samples.metrics.prometheus.api.DemoService.sayHello" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 52 - }, - "id": 35, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_p99{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_rt_p99", - "type": "timeseries" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 59 - }, - "id": 59, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 31, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_requests_failed_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_failed_total", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 62, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_requests_limit_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_limit", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 64, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_requests_business_failed_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_business_failed", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 63, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_requests_unknown_failed_total{application_name=\"$application_name\"}OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_unknown_failed", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 61, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_provider_requests_timeout_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "provider_requests_timeout", - "type": "timeseries" - } - ], - "title": "Provider Error", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 60 - }, - "id": 12, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 1, - "axisWidth": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 15, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 4, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "org.apache.dubbo.samples.metrics.prometheus.api.DemoService.sayHello" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 35 - }, - "id": 65, - "options": { - "legend": { - "calcs": [ - "min", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_qps_seconds{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_qps", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 15, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 66, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "increase(dubbo_consumer_requests_total{application_name=\"$application_name\"}[2m])", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_request_total(2m)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 19, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 48 - }, - "id": 67, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_processing{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_processing", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 18, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 48 - }, - "id": 68, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "increase(dubbo_consumer_requests_succeed_total{application_name=\"$application_name\"}[2m])", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_succeed(2m)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 13, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 56 - }, - "id": 69, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_total_aggregate{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_total_aggregate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 13, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 56 - }, - "id": 70, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_succeed_aggregate{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_succeed_aggregate", - "type": "timeseries" - } - ], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "refId": "A" - } - ], - "title": "Consumer Request", - "type": "row" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 61 - }, - "id": 72, - "panels": [], - "title": "Consumer RT", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 72, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 23, - "x": 0, - "y": 62 - }, - "id": 75, - "options": { - "legend": { - "calcs": [ - "min", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "increase(dubbo_consumer_rt_seconds_sum{application_name=\"$application_name\"}[1m])", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_sum(1m)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 69 - }, - "id": 76, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "dubbo_provider_rt_seconds_min{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_min", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 69 - }, - "id": 77, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.3.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_rt_seconds_max{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_max", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 24, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 76 - }, - "id": 34, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_rt_seconds_avg{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_avg ", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 35, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 76 - }, - "id": 79, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_rt_seconds_last{application_name=\"$application_name\"}", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_last", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 34, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 83 - }, - "id": 80, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_rt_seconds_p95{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_p95", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 31, - "gradientMode": "opacity", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ms" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "org.apache.dubbo.samples.metrics.prometheus.api.DemoService.sayHello" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 83 - }, - "id": 81, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_rt_seconds_p99{application_name=\"$application_name\"}", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_rt_p99", - "type": "timeseries" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 90 - }, - "id": 74, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 82, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_failed_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_failed_total", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 12 - }, - "id": 83, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_limit_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_limit", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 12 - }, - "id": 84, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_business_failed_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_business_failed", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 19 - }, - "id": 85, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_unknown_failed_total{application_name=\"$application_name\"}OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_unknown_failed", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 14, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 19 - }, - "id": 86, - "options": { - "legend": { - "calcs": [], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "editorMode": "code", - "exemplar": false, - "expr": "dubbo_consumer_requests_timeout_total{application_name=\"$application_name\"} OR on() vector(0)", - "format": "time_series", - "instant": false, - "interval": "", - "legendFormat": "{{interface}}.{{method}}", - "range": true, - "refId": "A" - } - ], - "title": "consumer_requests_timeout", - "type": "timeseries" - } - ], - "title": "Consumer Error", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 91 - }, - "id": 4, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "refId": "A" - } - ], - "title": "注册中心", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 92 - }, - "id": 2, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "refId": "A" - } - ], - "title": "配置中心", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 93 - }, - "id": 8, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "refId": "A" - } - ], - "title": "元数据中心", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 37, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "metrics-demo-consumer", - "value": "metrics-demo-consumer" - }, - "datasource": { - "type": "prometheus", - "uid": "U_7pLbpnk" - }, - "definition": "dubbo_provider_rt_seconds_p99", - "description": "", - "hide": 1, - "includeAll": false, - "label": "application_name", - "multi": false, - "name": "application_name", - "options": [], - "query": { - "query": "dubbo_provider_rt_seconds_p99", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/.*application_name=\"([^\"]*).*/", - "skipUrlSync": false, - "sort": 0, - "type": "query" - } - ] - }, - "time": { - "from": "now-24h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Dubbo可观测性面板", - "uid": "ewNiYNcVk", - "version": 42, - "weekStart": "" -} \ No newline at end of file diff --git a/charts/admin-stack/charts/grafana/templates/_helpers.tpl b/charts/admin-stack/charts/grafana/templates/_helpers.tpl deleted file mode 100644 index 03db1442c..000000000 --- a/charts/admin-stack/charts/grafana/templates/_helpers.tpl +++ /dev/null @@ -1,219 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "grafana.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "grafana.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 "grafana.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - - -{{/* -Create the name of the service account -*/}} -{{- define "grafana.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "grafana.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - - -{{- define "grafana.serviceAccountNameTest" -}} -{{- if .Values.serviceAccount.create }} -{{- default (print (include "grafana.fullname" .) "-test") .Values.serviceAccount.nameTest }} -{{- else }} -{{- default "default" .Values.serviceAccount.nameTest }} -{{- end }} -{{- end }} - - -{{/* -Allow the release namespace to be overridden for multi-namespace deployments in combined charts -*/}} -{{- define "grafana.namespace" -}} -{{- if .Values.namespaceOverride }} -{{- .Values.namespaceOverride }} -{{- else }} -{{- .Release.Namespace }} -{{- end }} -{{- end }} - - -{{/* -Common labels -*/}} -{{- define "grafana.labels" -}} -helm.sh/chart: {{ include "grafana.chart" . }} -{{ include "grafana.selectorLabels" . }} -{{- if or .Chart.AppVersion .Values.image.tag }} -app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- with .Values.extraLabels }} -{{ toYaml . }} -{{- end }} -{{- end }} - - -{{/* -Selector labels -*/}} -{{- define "grafana.selectorLabels" -}} -app.kubernetes.io/name: {{ include "grafana.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - - -{{/* -Common labels -*/}} -{{- define "grafana.imageRenderer.labels" -}} -helm.sh/chart: {{ include "grafana.chart" . }} -{{ include "grafana.imageRenderer.selectorLabels" . }} -{{- if or .Chart.AppVersion .Values.image.tag }} -app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - - -{{/* -Selector labels ImageRenderer -*/}} -{{- define "grafana.imageRenderer.selectorLabels" -}} -app.kubernetes.io/name: {{ include "grafana.name" . }}-image-renderer -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - - -{{/* -Looks if there's an existing secret and reuse its password. If not it generates -new password and use it. -*/}} -{{- define "grafana.password" -}} -{{- $secret := (lookup "v1" "Secret" (include "grafana.namespace" .) (include "grafana.fullname" .) ) }} -{{- if $secret }} -{{- index $secret "data" "admin-password" }} -{{- else }} -{{- (randAlphaNum 40) | b64enc | quote }} -{{- end }} -{{- end }} - - -{{/* -Return the appropriate apiVersion for rbac. -*/}} -{{- define "grafana.rbac.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" }} -{{- print "rbac.authorization.k8s.io/v1" }} -{{- else }} -{{- print "rbac.authorization.k8s.io/v1beta1" }} -{{- end }} -{{- end }} - - -{{/* -Return the appropriate apiVersion for ingress. -*/}} -{{- define "grafana.ingress.apiVersion" -}} -{{- if and ($.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19-0" .Capabilities.KubeVersion.Version) }} -{{- print "networking.k8s.io/v1" }} -{{- else if $.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }} -{{- print "networking.k8s.io/v1beta1" }} -{{- else }} -{{- print "extensions/v1beta1" }} -{{- end }} -{{- end }} - - -{{/* -Return the appropriate apiVersion for Horizontal Pod Autoscaler. -*/}} -{{- define "grafana.hpa.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "autoscaling/v2/HorizontalPodAutoscaler" }} -{{- print "autoscaling/v2" }} -{{- else if $.Capabilities.APIVersions.Has "autoscaling/v2beta2/HorizontalPodAutoscaler" }} -{{- print "autoscaling/v2beta2" }} -{{- else }} -{{- print "autoscaling/v2beta1" }} -{{- end }} -{{- end }} - - -{{/* -Return the appropriate apiVersion for podDisruptionBudget. -*/}} -{{- define "grafana.podDisruptionBudget.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }} -{{- print "policy/v1" }} -{{- else }} -{{- print "policy/v1beta1" }} -{{- end }} -{{- end }} - - -{{/* -Return if ingress is stable. -*/}} -{{- define "grafana.ingress.isStable" -}} -{{- eq (include "grafana.ingress.apiVersion" .) "networking.k8s.io/v1" }} -{{- end }} - - -{{/* -Return if ingress supports ingressClassName. -*/}} -{{- define "grafana.ingress.supportsIngressClassName" -}} -{{- or (eq (include "grafana.ingress.isStable" .) "true") (and (eq (include "grafana.ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18-0" .Capabilities.KubeVersion.Version)) }} -{{- end }} - - -{{/* -Return if ingress supports pathType. -*/}} -{{- define "grafana.ingress.supportsPathType" -}} -{{- or (eq (include "grafana.ingress.isStable" .) "true") (and (eq (include "grafana.ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18-0" .Capabilities.KubeVersion.Version)) }} -{{- end }} - - -{{/* -Formats imagePullSecrets. Input is (dict "root" . "imagePullSecrets" .{specific imagePullSecrets}) -*/}} -{{- define "grafana.imagePullSecrets" -}} -{{- $root := .root }} -{{- range (concat .root.Values.global.imagePullSecrets .imagePullSecrets) }} -{{- if eq (typeOf .) "map[string]interface {}" }} -- {{ toYaml (dict "name" (tpl .name $root)) | trim }} -{{- else }} -- name: {{ tpl . $root }} -{{- end }} -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/_pod.tpl b/charts/admin-stack/charts/grafana/templates/_pod.tpl deleted file mode 100644 index 4c4755dcd..000000000 --- a/charts/admin-stack/charts/grafana/templates/_pod.tpl +++ /dev/null @@ -1,1153 +0,0 @@ -{{- define "grafana.pod" -}} -{{- $sts := list "sts" "StatefulSet" "statefulset" -}} -{{- $root := . -}} -{{- with .Values.schedulerName }} -schedulerName: "{{ . }}" -{{- end }} -serviceAccountName: {{ include "grafana.serviceAccountName" . }} -automountServiceAccountToken: {{ .Values.serviceAccount.autoMount }} -{{- with .Values.securityContext }} -securityContext: - {{- toYaml . | nindent 2 }} -{{- end }} -{{- with .Values.hostAliases }} -hostAliases: - {{- toYaml . | nindent 2 }} -{{- end }} -{{- with .Values.priorityClassName }} -priorityClassName: {{ . }} -{{- end }} -{{- if ( or .Values.persistence.enabled .Values.dashboards .Values.extraInitContainers (and .Values.sidecar.datasources.enabled .Values.sidecar.datasources.initDatasources) (and .Values.sidecar.notifiers.enabled .Values.sidecar.notifiers.initNotifiers)) }} -initContainers: -{{- end }} -{{- if ( and .Values.persistence.enabled .Values.initChownData.enabled ) }} - - name: init-chown-data - {{- if .Values.initChownData.image.sha }} - image: "{{ .Values.initChownData.image.repository }}:{{ .Values.initChownData.image.tag }}@sha256:{{ .Values.initChownData.image.sha }}" - {{- else }} - image: "{{ .Values.initChownData.image.repository }}:{{ .Values.initChownData.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.initChownData.image.pullPolicy }} - {{- with .Values.initChownData.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - command: - - chown - - -R - - {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.runAsGroup }} - - /var/lib/grafana - {{- with .Values.initChownData.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: storage - mountPath: "/var/lib/grafana" - {{- with .Values.persistence.subPath }} - subPath: {{ tpl . $root }} - {{- end }} -{{- end }} -{{- if .Values.dashboards }} - - name: download-dashboards - {{- if .Values.downloadDashboardsImage.sha }} - image: "{{ .Values.downloadDashboardsImage.repository }}:{{ .Values.downloadDashboardsImage.tag }}@sha256:{{ .Values.downloadDashboardsImage.sha }}" - {{- else }} - image: "{{ .Values.downloadDashboardsImage.repository }}:{{ .Values.downloadDashboardsImage.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.downloadDashboardsImage.pullPolicy }} - command: ["/bin/sh"] - args: [ "-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh" ] - {{- with .Values.downloadDashboards.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - env: - {{- range $key, $value := .Values.downloadDashboards.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- range $key, $value := .Values.downloadDashboards.envValueFrom }} - - name: {{ $key | quote }} - valueFrom: - {{- tpl (toYaml $value) $ | nindent 10 }} - {{- end }} - {{- with .Values.downloadDashboards.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.downloadDashboards.envFromSecret }} - envFrom: - - secretRef: - name: {{ tpl . $root }} - {{- end }} - volumeMounts: - - name: config - mountPath: "/etc/grafana/download_dashboards.sh" - subPath: download_dashboards.sh - - name: storage - mountPath: "/var/lib/grafana" - {{- with .Values.persistence.subPath }} - subPath: {{ tpl . $root }} - {{- end }} - {{- range .Values.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - readOnly: {{ .readOnly }} - {{- end }} -{{- end }} -{{- if and .Values.sidecar.datasources.enabled .Values.sidecar.datasources.initDatasources }} - - name: {{ include "grafana.name" . }}-init-sc-datasources - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.datasources.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.datasources.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: "LIST" - - name: LABEL - value: "{{ .Values.sidecar.datasources.label }}" - {{- with .Values.sidecar.datasources.labelValue }} - - name: LABEL_VALUE - value: {{ quote . }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.datasources.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.datasources.logLevel }} - {{- end }} - - name: FOLDER - value: "/etc/grafana/provisioning/datasources" - - name: RESOURCE - value: {{ quote .Values.sidecar.datasources.resource }} - {{- with .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ . }}" - {{- end }} - {{- if .Values.sidecar.datasources.searchNamespace }} - - name: NAMESPACE - value: "{{ tpl (.Values.sidecar.datasources.searchNamespace | join ",") . }}" - {{- end }} - {{- with .Values.sidecar.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" -{{- end }} -{{- if and .Values.sidecar.notifiers.enabled .Values.sidecar.notifiers.initNotifiers }} - - name: {{ include "grafana.name" . }}-init-sc-notifiers - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.notifiers.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.notifiers.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: LIST - - name: LABEL - value: "{{ .Values.sidecar.notifiers.label }}" - {{- with .Values.sidecar.notifiers.labelValue }} - - name: LABEL_VALUE - value: {{ quote . }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.notifiers.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.notifiers.logLevel }} - {{- end }} - - name: FOLDER - value: "/etc/grafana/provisioning/notifiers" - - name: RESOURCE - value: {{ quote .Values.sidecar.notifiers.resource }} - {{- with .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.notifiers.searchNamespace }} - - name: NAMESPACE - value: "{{ tpl (. | join ",") $root }}" - {{- end }} - {{- with .Values.sidecar.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-notifiers-volume - mountPath: "/etc/grafana/provisioning/notifiers" -{{- end}} -{{- with .Values.extraInitContainers }} - {{- tpl (toYaml .) $root | nindent 2 }} -{{- end }} -{{- if or .Values.image.pullSecrets .Values.global.imagePullSecrets }} -imagePullSecrets: - {{- include "grafana.imagePullSecrets" (dict "root" $root "imagePullSecrets" .Values.image.pullSecrets) | nindent 2 }} -{{- end }} -{{- if not .Values.enableKubeBackwardCompatibility }} -enableServiceLinks: {{ .Values.enableServiceLinks }} -{{- end }} -containers: -{{- if .Values.sidecar.alerts.enabled }} - - name: {{ include "grafana.name" . }}-sc-alerts - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.alerts.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.alerts.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: {{ .Values.sidecar.alerts.watchMethod }} - - name: LABEL - value: "{{ .Values.sidecar.alerts.label }}" - {{- with .Values.sidecar.alerts.labelValue }} - - name: LABEL_VALUE - value: {{ quote . }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.alerts.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.alerts.logLevel }} - {{- end }} - - name: FOLDER - value: "/etc/grafana/provisioning/alerting" - - name: RESOURCE - value: {{ quote .Values.sidecar.alerts.resource }} - {{- with .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.alerts.searchNamespace }} - - name: NAMESPACE - value: {{ . | join "," | quote }} - {{- end }} - {{- with .Values.sidecar.alerts.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: {{ quote . }} - {{- end }} - {{- with .Values.sidecar.alerts.script }} - - name: SCRIPT - value: {{ quote . }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_USER) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.userKey | default "admin-user" }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.passwordKey | default "admin-password" }} - {{- end }} - {{- if not .Values.sidecar.alerts.skipReload }} - - name: REQ_URL - value: {{ .Values.sidecar.alerts.reloadURL }} - - name: REQ_METHOD - value: POST - {{- end }} - {{- if .Values.sidecar.alerts.watchServerTimeout }} - {{- if ne .Values.sidecar.alerts.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.alerts.watchServerTimeout with .Values.sidecar.alerts.watchMethod %s" .Values.sidecar.alerts.watchMethod) }} - {{- end }} - - name: WATCH_SERVER_TIMEOUT - value: "{{ .Values.sidecar.alerts.watchServerTimeout }}" - {{- end }} - {{- if .Values.sidecar.alerts.watchClientTimeout }} - {{- if ne .Values.sidecar.alerts.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.alerts.watchClientTimeout with .Values.sidecar.alerts.watchMethod %s" .Values.sidecar.alerts.watchMethod) }} - {{- end }} - - name: WATCH_CLIENT_TIMEOUT - value: "{{ .Values.sidecar.alerts.watchClientTimeout }}" - {{- end }} - {{- with .Values.sidecar.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-alerts-volume - mountPath: "/etc/grafana/provisioning/alerting" -{{- end}} -{{- if .Values.sidecar.dashboards.enabled }} - - name: {{ include "grafana.name" . }}-sc-dashboard - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.dashboards.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.dashboards.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: {{ .Values.sidecar.dashboards.watchMethod }} - - name: LABEL - value: "{{ .Values.sidecar.dashboards.label }}" - {{- with .Values.sidecar.dashboards.labelValue }} - - name: LABEL_VALUE - value: {{ quote . }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.dashboards.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.dashboards.logLevel }} - {{- end }} - - name: FOLDER - value: "{{ .Values.sidecar.dashboards.folder }}{{- with .Values.sidecar.dashboards.defaultFolderName }}/{{ . }}{{- end }}" - - name: RESOURCE - value: {{ quote .Values.sidecar.dashboards.resource }} - {{- with .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.dashboards.searchNamespace }} - - name: NAMESPACE - value: "{{ tpl (. | join ",") $root }}" - {{- end }} - {{- with .Values.sidecar.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.dashboards.folderAnnotation }} - - name: FOLDER_ANNOTATION - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.dashboards.script }} - - name: SCRIPT - value: "{{ . }}" - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_USER) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.userKey | default "admin-user" }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.passwordKey | default "admin-password" }} - {{- end }} - {{- if not .Values.sidecar.dashboards.skipReload }} - - name: REQ_URL - value: {{ .Values.sidecar.dashboards.reloadURL }} - - name: REQ_METHOD - value: POST - {{- end }} - {{- if .Values.sidecar.dashboards.watchServerTimeout }} - {{- if ne .Values.sidecar.dashboards.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.dashboards.watchServerTimeout with .Values.sidecar.dashboards.watchMethod %s" .Values.sidecar.dashboards.watchMethod) }} - {{- end }} - - name: WATCH_SERVER_TIMEOUT - value: "{{ .Values.sidecar.dashboards.watchServerTimeout }}" - {{- end }} - {{- if .Values.sidecar.dashboards.watchClientTimeout }} - {{- if ne .Values.sidecar.dashboards.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.dashboards.watchClientTimeout with .Values.sidecar.dashboards.watchMethod %s" .Values.sidecar.dashboards.watchMethod) }} - {{- end }} - - name: WATCH_CLIENT_TIMEOUT - value: {{ .Values.sidecar.dashboards.watchClientTimeout | quote }} - {{- end }} - {{- with .Values.sidecar.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-dashboard-volume - mountPath: {{ .Values.sidecar.dashboards.folder | quote }} - {{- with .Values.sidecar.dashboards.extraMounts }} - {{- toYaml . | trim | nindent 6 }} - {{- end }} -{{- end}} -{{- if .Values.sidecar.datasources.enabled }} - - name: {{ include "grafana.name" . }}-sc-datasources - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.datasources.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.datasources.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: {{ .Values.sidecar.datasources.watchMethod }} - - name: LABEL - value: "{{ .Values.sidecar.datasources.label }}" - {{- with .Values.sidecar.datasources.labelValue }} - - name: LABEL_VALUE - value: {{ quote . }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.datasources.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.datasources.logLevel }} - {{- end }} - - name: FOLDER - value: "/etc/grafana/provisioning/datasources" - - name: RESOURCE - value: {{ quote .Values.sidecar.datasources.resource }} - {{- with .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.datasources.searchNamespace }} - - name: NAMESPACE - value: "{{ tpl (. | join ",") $root }}" - {{- end }} - {{- if .Values.sidecar.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: "{{ .Values.sidecar.skipTlsVerify }}" - {{- end }} - {{- if .Values.sidecar.datasources.script }} - - name: SCRIPT - value: "{{ .Values.sidecar.datasources.script }}" - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_USER) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.userKey | default "admin-user" }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.passwordKey | default "admin-password" }} - {{- end }} - {{- if not .Values.sidecar.datasources.skipReload }} - - name: REQ_URL - value: {{ .Values.sidecar.datasources.reloadURL }} - - name: REQ_METHOD - value: POST - {{- end }} - {{- if .Values.sidecar.datasources.watchServerTimeout }} - {{- if ne .Values.sidecar.datasources.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.datasources.watchServerTimeout with .Values.sidecar.datasources.watchMethod %s" .Values.sidecar.datasources.watchMethod) }} - {{- end }} - - name: WATCH_SERVER_TIMEOUT - value: "{{ .Values.sidecar.datasources.watchServerTimeout }}" - {{- end }} - {{- if .Values.sidecar.datasources.watchClientTimeout }} - {{- if ne .Values.sidecar.datasources.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.datasources.watchClientTimeout with .Values.sidecar.datasources.watchMethod %s" .Values.sidecar.datasources.watchMethod) }} - {{- end }} - - name: WATCH_CLIENT_TIMEOUT - value: "{{ .Values.sidecar.datasources.watchClientTimeout }}" - {{- end }} - {{- with .Values.sidecar.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" -{{- end}} -{{- if .Values.sidecar.notifiers.enabled }} - - name: {{ include "grafana.name" . }}-sc-notifiers - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.notifiers.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.notifiers.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: {{ .Values.sidecar.notifiers.watchMethod }} - - name: LABEL - value: "{{ .Values.sidecar.notifiers.label }}" - {{- with .Values.sidecar.notifiers.labelValue }} - - name: LABEL_VALUE - value: {{ quote . }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.notifiers.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.notifiers.logLevel }} - {{- end }} - - name: FOLDER - value: "/etc/grafana/provisioning/notifiers" - - name: RESOURCE - value: {{ quote .Values.sidecar.notifiers.resource }} - {{- if .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ .Values.sidecar.enableUniqueFilenames }}" - {{- end }} - {{- with .Values.sidecar.notifiers.searchNamespace }} - - name: NAMESPACE - value: "{{ tpl (. | join ",") $root }}" - {{- end }} - {{- with .Values.sidecar.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: "{{ . }}" - {{- end }} - {{- if .Values.sidecar.notifiers.script }} - - name: SCRIPT - value: "{{ .Values.sidecar.notifiers.script }}" - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_USER) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.userKey | default "admin-user" }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.passwordKey | default "admin-password" }} - {{- end }} - {{- if not .Values.sidecar.notifiers.skipReload }} - - name: REQ_URL - value: {{ .Values.sidecar.notifiers.reloadURL }} - - name: REQ_METHOD - value: POST - {{- end }} - {{- if .Values.sidecar.notifiers.watchServerTimeout }} - {{- if ne .Values.sidecar.notifiers.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.notifiers.watchServerTimeout with .Values.sidecar.notifiers.watchMethod %s" .Values.sidecar.notifiers.watchMethod) }} - {{- end }} - - name: WATCH_SERVER_TIMEOUT - value: "{{ .Values.sidecar.notifiers.watchServerTimeout }}" - {{- end }} - {{- if .Values.sidecar.notifiers.watchClientTimeout }} - {{- if ne .Values.sidecar.notifiers.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.notifiers.watchClientTimeout with .Values.sidecar.notifiers.watchMethod %s" .Values.sidecar.notifiers.watchMethod) }} - {{- end }} - - name: WATCH_CLIENT_TIMEOUT - value: "{{ .Values.sidecar.notifiers.watchClientTimeout }}" - {{- end }} - {{- with .Values.sidecar.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-notifiers-volume - mountPath: "/etc/grafana/provisioning/notifiers" -{{- end}} -{{- if .Values.sidecar.plugins.enabled }} - - name: {{ include "grafana.name" . }}-sc-plugins - {{- if .Values.sidecar.image.sha }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}@sha256:{{ .Values.sidecar.image.sha }}" - {{- else }} - image: "{{ .Values.sidecar.image.repository }}:{{ .Values.sidecar.image.tag }}" - {{- end }} - imagePullPolicy: {{ .Values.sidecar.imagePullPolicy }} - env: - {{- range $key, $value := .Values.sidecar.plugins.env }} - - name: "{{ $key }}" - value: "{{ $value }}" - {{- end }} - {{- if .Values.sidecar.plugins.ignoreAlreadyProcessed }} - - name: IGNORE_ALREADY_PROCESSED - value: "true" - {{- end }} - - name: METHOD - value: {{ .Values.sidecar.plugins.watchMethod }} - - name: LABEL - value: "{{ .Values.sidecar.plugins.label }}" - {{- if .Values.sidecar.plugins.labelValue }} - - name: LABEL_VALUE - value: {{ quote .Values.sidecar.plugins.labelValue }} - {{- end }} - {{- if or .Values.sidecar.logLevel .Values.sidecar.plugins.logLevel }} - - name: LOG_LEVEL - value: {{ default .Values.sidecar.logLevel .Values.sidecar.plugins.logLevel }} - {{- end }} - - name: FOLDER - value: "/etc/grafana/provisioning/plugins" - - name: RESOURCE - value: {{ quote .Values.sidecar.plugins.resource }} - {{- with .Values.sidecar.enableUniqueFilenames }} - - name: UNIQUE_FILENAMES - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.plugins.searchNamespace }} - - name: NAMESPACE - value: "{{ tpl (. | join ",") $root }}" - {{- end }} - {{- with .Values.sidecar.plugins.script }} - - name: SCRIPT - value: "{{ . }}" - {{- end }} - {{- with .Values.sidecar.skipTlsVerify }} - - name: SKIP_TLS_VERIFY - value: "{{ . }}" - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_USER) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_USERNAME - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.userKey | default "admin-user" }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: REQ_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.passwordKey | default "admin-password" }} - {{- end }} - {{- if not .Values.sidecar.plugins.skipReload }} - - name: REQ_URL - value: {{ .Values.sidecar.plugins.reloadURL }} - - name: REQ_METHOD - value: POST - {{- end }} - {{- if .Values.sidecar.plugins.watchServerTimeout }} - {{- if ne .Values.sidecar.plugins.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.plugins.watchServerTimeout with .Values.sidecar.plugins.watchMethod %s" .Values.sidecar.plugins.watchMethod) }} - {{- end }} - - name: WATCH_SERVER_TIMEOUT - value: "{{ .Values.sidecar.plugins.watchServerTimeout }}" - {{- end }} - {{- if .Values.sidecar.plugins.watchClientTimeout }} - {{- if ne .Values.sidecar.plugins.watchMethod "WATCH" }} - {{- fail (printf "Cannot use .Values.sidecar.plugins.watchClientTimeout with .Values.sidecar.plugins.watchMethod %s" .Values.sidecar.plugins.watchMethod) }} - {{- end }} - - name: WATCH_CLIENT_TIMEOUT - value: "{{ .Values.sidecar.plugins.watchClientTimeout }}" - {{- end }} - {{- with .Values.sidecar.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.sidecar.securityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: sc-plugins-volume - mountPath: "/etc/grafana/provisioning/plugins" -{{- end}} - - name: {{ .Chart.Name }} - {{- if .Values.image.sha }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}@sha256:{{ .Values.image.sha }}" - {{- else }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - {{- if .Values.command }} - command: - {{- range .Values.command }} - - {{ . | quote }} - {{- end }} - {{- end}} - {{- with .Values.containerSecurityContext }} - securityContext: - {{- toYaml . | nindent 6 }} - {{- end }} - volumeMounts: - - name: config - mountPath: "/etc/grafana/grafana.ini" - subPath: grafana.ini - {{- if .Values.ldap.enabled }} - - name: ldap - mountPath: "/etc/grafana/ldap.toml" - subPath: ldap.toml - {{- end }} - {{- range .Values.extraConfigmapMounts }} - - name: {{ tpl .name $root }} - mountPath: {{ tpl .mountPath $root }} - subPath: {{ (tpl .subPath $root) | default "" }} - readOnly: {{ .readOnly }} - {{- end }} - - name: storage - mountPath: "/var/lib/grafana" - {{- with .Values.persistence.subPath }} - subPath: {{ tpl . $root }} - {{- end }} - {{- with .Values.dashboards }} - {{- range $provider, $dashboards := . }} - {{- range $key, $value := $dashboards }} - {{- if (or (hasKey $value "json") (hasKey $value "file")) }} - - name: dashboards-{{ $provider }} - mountPath: "/var/lib/grafana/dashboards/{{ $provider }}/{{ $key }}.json" - subPath: "{{ $key }}.json" - {{- end }} - {{- end }} - {{- end }} - {{- end }} - {{- with .Values.dashboardsConfigMaps }} - {{- range (keys . | sortAlpha) }} - - name: dashboards-{{ . }} - mountPath: "/var/lib/grafana/dashboards/{{ . }}" - {{- end }} - {{- end }} - {{- with .Values.datasources }} - {{- range (keys . | sortAlpha) }} - - name: config - mountPath: "/etc/grafana/provisioning/datasources/{{ . }}" - subPath: {{ . | quote }} - {{- end }} - {{- end }} - {{- with .Values.notifiers }} - {{- range (keys . | sortAlpha) }} - - name: config - mountPath: "/etc/grafana/provisioning/notifiers/{{ . }}" - subPath: {{ . | quote }} - {{- end }} - {{- end }} - {{- with .Values.alerting }} - {{- range (keys . | sortAlpha) }} - - name: config - mountPath: "/etc/grafana/provisioning/alerting/{{ . }}" - subPath: {{ . | quote }} - {{- end }} - {{- end }} - {{- with .Values.dashboardProviders }} - {{- range (keys . | sortAlpha) }} - - name: config - mountPath: "/etc/grafana/provisioning/dashboards/{{ . }}" - subPath: {{ . | quote }} - {{- end }} - {{- end }} - {{- with .Values.sidecar.alerts.enabled }} - - name: sc-alerts-volume - mountPath: "/etc/grafana/provisioning/alerting" - {{- end}} - {{- if .Values.sidecar.dashboards.enabled }} - - name: sc-dashboard-volume - mountPath: {{ .Values.sidecar.dashboards.folder | quote }} - {{- if .Values.sidecar.dashboards.SCProvider }} - - name: sc-dashboard-provider - mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml" - subPath: provider.yaml - {{- end}} - {{- end}} - {{- if .Values.sidecar.datasources.enabled }} - - name: sc-datasources-volume - mountPath: "/etc/grafana/provisioning/datasources" - {{- end}} - {{- if .Values.sidecar.plugins.enabled }} - - name: sc-plugins-volume - mountPath: "/etc/grafana/provisioning/plugins" - {{- end}} - {{- if .Values.sidecar.notifiers.enabled }} - - name: sc-notifiers-volume - mountPath: "/etc/grafana/provisioning/notifiers" - {{- end}} - {{- range .Values.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - readOnly: {{ .readOnly }} - subPath: {{ .subPath | default "" }} - {{- end }} - {{- range .Values.extraVolumeMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath | default "" }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.extraEmptyDirMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - {{- end }} - ports: - - name: {{ .Values.podPortName }} - containerPort: {{ .Values.service.targetPort }} - protocol: TCP - - name: {{ .Values.gossipPortName }}-tcp - containerPort: 9094 - protocol: TCP - - name: {{ .Values.gossipPortName }}-udp - containerPort: 9094 - protocol: UDP - env: - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - {{- if and (not .Values.env.GF_SECURITY_ADMIN_USER) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: GF_SECURITY_ADMIN_USER - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.userKey | default "admin-user" }} - {{- end }} - {{- if and (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - - name: GF_SECURITY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: {{ (tpl .Values.admin.existingSecret .) | default (include "grafana.fullname" .) }} - key: {{ .Values.admin.passwordKey | default "admin-password" }} - {{- end }} - {{- if .Values.plugins }} - - name: GF_INSTALL_PLUGINS - valueFrom: - configMapKeyRef: - name: {{ include "grafana.fullname" . }} - key: plugins - {{- end }} - {{- if .Values.smtp.existingSecret }} - - name: GF_SMTP_USER - valueFrom: - secretKeyRef: - name: {{ .Values.smtp.existingSecret }} - key: {{ .Values.smtp.userKey | default "user" }} - - name: GF_SMTP_PASSWORD - valueFrom: - secretKeyRef: - name: {{ .Values.smtp.existingSecret }} - key: {{ .Values.smtp.passwordKey | default "password" }} - {{- end }} - {{- if .Values.imageRenderer.enabled }} - - name: GF_RENDERING_SERVER_URL - value: http://{{ include "grafana.fullname" . }}-image-renderer.{{ include "grafana.namespace" . }}:{{ .Values.imageRenderer.service.port }}/render - - name: GF_RENDERING_CALLBACK_URL - value: {{ .Values.imageRenderer.grafanaProtocol }}://{{ include "grafana.fullname" . }}.{{ include "grafana.namespace" . }}:{{ .Values.service.port }}/{{ .Values.imageRenderer.grafanaSubPath }} - {{- end }} - - name: GF_PATHS_DATA - value: {{ (get .Values "grafana.ini").paths.data }} - - name: GF_PATHS_LOGS - value: {{ (get .Values "grafana.ini").paths.logs }} - - name: GF_PATHS_PLUGINS - value: {{ (get .Values "grafana.ini").paths.plugins }} - - name: GF_PATHS_PROVISIONING - value: {{ (get .Values "grafana.ini").paths.provisioning }} - {{- range $key, $value := .Values.envValueFrom }} - - name: {{ $key | quote }} - valueFrom: - {{- tpl (toYaml $value) $ | nindent 10 }} - {{- end }} - {{- range $key, $value := .Values.env }} - - name: "{{ tpl $key $ }}" - value: "{{ tpl (print $value) $ }}" - {{- end }} - {{- if or .Values.envFromSecret (or .Values.envRenderSecret .Values.envFromSecrets) .Values.envFromConfigMaps }} - envFrom: - {{- if .Values.envFromSecret }} - - secretRef: - name: {{ tpl .Values.envFromSecret . }} - {{- end }} - {{- if .Values.envRenderSecret }} - - secretRef: - name: {{ include "grafana.fullname" . }}-env - {{- end }} - {{- range .Values.envFromSecrets }} - - secretRef: - name: {{ tpl .name $ }} - optional: {{ .optional | default false }} - {{- end }} - {{- range .Values.envFromConfigMaps }} - - configMapRef: - name: {{ tpl .name $ }} - optional: {{ .optional | default false }} - {{- end }} - {{- end }} - {{- with .Values.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 6 }} - {{- end }} - {{- with .Values.lifecycleHooks }} - lifecycle: - {{- tpl (toYaml .) $root | nindent 6 }} - {{- end }} - {{- with .Values.resources }} - resources: - {{- toYaml . | nindent 6 }} - {{- end }} -{{- with .Values.extraContainers }} - {{- tpl . $ | nindent 2 }} -{{- end }} -{{- with .Values.nodeSelector }} -nodeSelector: - {{- toYaml . | nindent 2 }} -{{- end }} -{{- with .Values.affinity }} -affinity: - {{- tpl (toYaml .) $root | nindent 2 }} -{{- end }} -{{- with .Values.topologySpreadConstraints }} -topologySpreadConstraints: - {{- toYaml . | nindent 2 }} -{{- end }} -{{- with .Values.tolerations }} -tolerations: - {{- toYaml . | nindent 2 }} -{{- end }} -volumes: - - name: config - configMap: - name: {{ include "grafana.fullname" . }} - {{- range .Values.extraConfigmapMounts }} - - name: {{ tpl .name $root }} - configMap: - name: {{ tpl .configMap $root }} - {{- with .items }} - items: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - {{- if .Values.dashboards }} - {{- range (keys .Values.dashboards | sortAlpha) }} - - name: dashboards-{{ . }} - configMap: - name: {{ include "grafana.fullname" $ }}-dashboards-{{ . }} - {{- end }} - {{- end }} - {{- if .Values.dashboardsConfigMaps }} - {{- range $provider, $name := .Values.dashboardsConfigMaps }} - - name: dashboards-{{ $provider }} - configMap: - name: {{ tpl $name $root }} - {{- end }} - {{- end }} - {{- if .Values.ldap.enabled }} - - name: ldap - secret: - {{- if .Values.ldap.existingSecret }} - secretName: {{ .Values.ldap.existingSecret }} - {{- else }} - secretName: {{ include "grafana.fullname" . }} - {{- end }} - items: - - key: ldap-toml - path: ldap.toml - {{- end }} - {{- if and .Values.persistence.enabled (eq .Values.persistence.type "pvc") }} - - name: storage - persistentVolumeClaim: - claimName: {{ tpl (.Values.persistence.existingClaim | default (include "grafana.fullname" .)) . }} - {{- else if and .Values.persistence.enabled (has .Values.persistence.type $sts) }} - {{/* nothing */}} - {{- else }} - - name: storage - {{- if .Values.persistence.inMemory.enabled }} - emptyDir: - medium: Memory - {{- with .Values.persistence.inMemory.sizeLimit }} - sizeLimit: {{ . }} - {{- end }} - {{- else }} - emptyDir: {} - {{- end }} - {{- end }} - {{- if .Values.sidecar.alerts.enabled }} - - name: sc-alerts-volume - emptyDir: - {{- with .Values.sidecar.alerts.sizeLimit }} - sizeLimit: {{ . }} - {{- else }} - {} - {{- end }} - {{- end }} - {{- if .Values.sidecar.dashboards.enabled }} - - name: sc-dashboard-volume - emptyDir: - {{- with .Values.sidecar.dashboards.sizeLimit }} - sizeLimit: {{ . }} - {{- else }} - {} - {{- end }} - {{- if .Values.sidecar.dashboards.SCProvider }} - - name: sc-dashboard-provider - configMap: - name: {{ include "grafana.fullname" . }}-config-dashboards - {{- end }} - {{- end }} - {{- if .Values.sidecar.datasources.enabled }} - - name: sc-datasources-volume - emptyDir: - {{- with .Values.sidecar.datasources.sizeLimit }} - sizeLimit: {{ . }} - {{- else }} - {} - {{- end }} - {{- end }} - {{- if .Values.sidecar.plugins.enabled }} - - name: sc-plugins-volume - emptyDir: - {{- with .Values.sidecar.plugins.sizeLimit }} - sizeLimit: {{ . }} - {{- else }} - {} - {{- end }} - {{- end }} - {{- if .Values.sidecar.notifiers.enabled }} - - name: sc-notifiers-volume - emptyDir: - {{- with .Values.sidecar.notifiers.sizeLimit }} - sizeLimit: {{ . }} - {{- else }} - {} - {{- end }} - {{- end }} - {{- range .Values.extraSecretMounts }} - {{- if .secretName }} - - name: {{ .name }} - secret: - secretName: {{ .secretName }} - defaultMode: {{ .defaultMode }} - {{- with .items }} - items: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- else if .projected }} - - name: {{ .name }} - projected: - {{- toYaml .projected | nindent 6 }} - {{- else if .csi }} - - name: {{ .name }} - csi: - {{- toYaml .csi | nindent 6 }} - {{- end }} - {{- end }} - {{- range .Values.extraVolumeMounts }} - - name: {{ .name }} - {{- if .existingClaim }} - persistentVolumeClaim: - claimName: {{ .existingClaim }} - {{- else if .hostPath }} - hostPath: - path: {{ .hostPath }} - {{- else if .csi }} - csi: - {{- toYaml .data | nindent 6 }} - {{- else }} - emptyDir: {} - {{- end }} - {{- end }} - {{- range .Values.extraEmptyDirMounts }} - - name: {{ .name }} - emptyDir: {} - {{- end }} - {{- with .Values.extraContainerVolumes }} - {{- tpl (toYaml .) $root | nindent 2 }} - {{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/clusterrole.yaml b/charts/admin-stack/charts/grafana/templates/clusterrole.yaml deleted file mode 100644 index 3396713a1..000000000 --- a/charts/admin-stack/charts/grafana/templates/clusterrole.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if and .Values.rbac.create (not .Values.rbac.namespaced) (not .Values.rbac.useExistingRole) }} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - name: {{ include "grafana.fullname" . }}-clusterrole -{{- if or .Values.sidecar.dashboards.enabled (or .Values.rbac.extraClusterRoleRules (or .Values.sidecar.datasources.enabled .Values.sidecar.plugins.enabled)) }} -rules: - {{- if or .Values.sidecar.dashboards.enabled (or .Values.sidecar.datasources.enabled .Values.sidecar.plugins.enabled) }} - - apiGroups: [""] # "" indicates the core API group - resources: ["configmaps", "secrets"] - verbs: ["get", "watch", "list"] - {{- end}} - {{- with .Values.rbac.extraClusterRoleRules }} - {{- toYaml . | nindent 2 }} - {{- end}} -{{- else }} -rules: [] -{{- end}} -{{- end}} diff --git a/charts/admin-stack/charts/grafana/templates/clusterrolebinding.yaml b/charts/admin-stack/charts/grafana/templates/clusterrolebinding.yaml deleted file mode 100644 index 48411fe83..000000000 --- a/charts/admin-stack/charts/grafana/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if and .Values.rbac.create (not .Values.rbac.namespaced) }} -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: {{ include "grafana.fullname" . }}-clusterrolebinding - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -subjects: - - kind: ServiceAccount - name: {{ include "grafana.serviceAccountName" . }} - namespace: {{ include "grafana.namespace" . }} -roleRef: - kind: ClusterRole - {{- if .Values.rbac.useExistingRole }} - name: {{ .Values.rbac.useExistingRole }} - {{- else }} - name: {{ include "grafana.fullname" . }}-clusterrole - {{- end }} - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/configmap-dashboard-provider.yaml b/charts/admin-stack/charts/grafana/templates/configmap-dashboard-provider.yaml deleted file mode 100644 index 1f706a8bb..000000000 --- a/charts/admin-stack/charts/grafana/templates/configmap-dashboard-provider.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if and .Values.sidecar.dashboards.enabled .Values.sidecar.dashboards.SCProvider }} -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - name: {{ include "grafana.fullname" . }}-config-dashboards - namespace: {{ include "grafana.namespace" . }} -data: - provider.yaml: |- - apiVersion: 1 - providers: - - name: '{{ .Values.sidecar.dashboards.provider.name }}' - orgId: {{ .Values.sidecar.dashboards.provider.orgid }} - {{- if not .Values.sidecar.dashboards.provider.foldersFromFilesStructure }} - folder: '{{ .Values.sidecar.dashboards.provider.folder }}' - {{- end }} - type: {{ .Values.sidecar.dashboards.provider.type }} - disableDeletion: {{ .Values.sidecar.dashboards.provider.disableDelete }} - allowUiUpdates: {{ .Values.sidecar.dashboards.provider.allowUiUpdates }} - updateIntervalSeconds: {{ .Values.sidecar.dashboards.provider.updateIntervalSeconds | default 30 }} - options: - foldersFromFilesStructure: {{ .Values.sidecar.dashboards.provider.foldersFromFilesStructure }} - path: {{ .Values.sidecar.dashboards.folder }}{{- with .Values.sidecar.dashboards.defaultFolderName }}/{{ . }}{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/configmap.yaml b/charts/admin-stack/charts/grafana/templates/configmap.yaml deleted file mode 100644 index b0735a2b3..000000000 --- a/charts/admin-stack/charts/grafana/templates/configmap.yaml +++ /dev/null @@ -1,125 +0,0 @@ -{{- if .Values.createConfigmap }} -{{- $root := . -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -data: - {{- with .Values.plugins }} - plugins: {{ join "," . }} - {{- end }} - grafana.ini: | - {{- range $elem, $elemVal := index .Values "grafana.ini" }} - {{- if not (kindIs "map" $elemVal) }} - {{- if kindIs "invalid" $elemVal }} - {{ $elem }} = - {{- else if kindIs "string" $elemVal }} - {{ $elem }} = {{ tpl $elemVal $ }} - {{- else }} - {{ $elem }} = {{ $elemVal }} - {{- end }} - {{- end }} - {{- end }} - {{- range $key, $value := index .Values "grafana.ini" }} - {{- if kindIs "map" $value }} - [{{ $key }}] - {{- range $elem, $elemVal := $value }} - {{- if kindIs "invalid" $elemVal }} - {{ $elem }} = - {{- else if kindIs "string" $elemVal }} - {{ $elem }} = {{ tpl $elemVal $ }} - {{- else }} - {{ $elem }} = {{ $elemVal }} - {{- end }} - {{- end }} - {{- end }} - {{- end }} - - {{- range $key, $value := .Values.datasources }} - {{- $key | nindent 2 }}: | - {{- tpl (toYaml $value | nindent 4) $root }} - {{- end }} - - {{- range $key, $value := .Values.notifiers }} - {{- $key | nindent 2 }}: | - {{- toYaml $value | nindent 4 }} - {{- end }} - - {{- range $key, $value := .Values.alerting }} - {{- $key | nindent 2 }}: | - {{- tpl (toYaml $value | nindent 4) $root }} - {{- end }} - - {{- range $key, $value := .Values.dashboardProviders }} - {{- $key | nindent 2 }}: | - {{- toYaml $value | nindent 4 }} - {{- end }} - -{{- if .Values.dashboards }} - download_dashboards.sh: | - #!/usr/bin/env sh - set -euf - {{- if .Values.dashboardProviders }} - {{- range $key, $value := .Values.dashboardProviders }} - {{- range $value.providers }} - mkdir -p {{ .options.path }} - {{- end }} - {{- end }} - {{- end }} - {{ $dashboardProviders := .Values.dashboardProviders }} - {{- range $provider, $dashboards := .Values.dashboards }} - {{- range $key, $value := $dashboards }} - {{- if (or (hasKey $value "gnetId") (hasKey $value "url")) }} - curl -skf \ - --connect-timeout 60 \ - --max-time 60 \ - {{- if not $value.b64content }} - -H "Accept: application/json" \ - {{- if $value.token }} - -H "Authorization: token {{ $value.token }}" \ - {{- end }} - {{- if $value.bearerToken }} - -H "Authorization: Bearer {{ $value.bearerToken }}" \ - {{- end }} - {{- if $value.gitlabToken }} - -H "PRIVATE-TOKEN: {{ $value.gitlabToken }}" \ - {{- end }} - -H "Content-Type: application/json;charset=UTF-8" \ - {{- end }} - {{- $dpPath := "" -}} - {{- range $kd := (index $dashboardProviders "dashboardproviders.yaml").providers }} - {{- if eq $kd.name $provider }} - {{- $dpPath = $kd.options.path }} - {{- end }} - {{- end }} - {{- if $value.url }} - "{{ $value.url }}" \ - {{- else }} - "https://grafana.com/api/dashboards/{{ $value.gnetId }}/revisions/{{- if $value.revision -}}{{ $value.revision }}{{- else -}}1{{- end -}}/download" \ - {{- end }} - {{- if $value.datasource }} - {{- if kindIs "string" $value.datasource }} - | sed '/-- .* --/! s/"datasource":.*,/"datasource": "{{ $value.datasource }}",/g' \ - {{- end }} - {{- if kindIs "slice" $value.datasource }} - {{- range $value.datasource }} - | sed '/-- .* --/! s/${{"{"}}{{ .name }}}/{{ .value }}/g' \ - {{- end }} - {{- end }} - {{- end }} - {{- if $value.b64content }} - | base64 -d \ - {{- end }} - > "{{- if $dpPath -}}{{ $dpPath }}{{- else -}}/var/lib/grafana/dashboards/{{ $provider }}{{- end -}}/{{ $key }}.json" - {{ end }} - {{- end }} - {{- end }} -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/dashboards-json-configmap.yaml b/charts/admin-stack/charts/grafana/templates/dashboards-json-configmap.yaml deleted file mode 100644 index df0ed0d8c..000000000 --- a/charts/admin-stack/charts/grafana/templates/dashboards-json-configmap.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- if .Values.dashboards }} -{{ $files := .Files }} -{{- range $provider, $dashboards := .Values.dashboards }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "grafana.fullname" $ }}-dashboards-{{ $provider }} - namespace: {{ include "grafana.namespace" $ }} - labels: - {{- include "grafana.labels" $ | nindent 4 }} - dashboard-provider: {{ $provider }} -{{- if $dashboards }} -data: -{{- $dashboardFound := false }} -{{- range $key, $value := $dashboards }} -{{- if (or (hasKey $value "json") (hasKey $value "file")) }} -{{- $dashboardFound = true }} - {{- print $key | nindent 2 }}.json: - {{- if hasKey $value "json" }} - |- - {{- $value.json | nindent 6 }} - {{- end }} - {{- if hasKey $value "file" }} - {{- toYaml ( $files.Get $value.file ) | nindent 4}} - {{- end }} -{{- end }} -{{- end }} -{{- if not $dashboardFound }} - {} -{{- end }} -{{- end }} ---- -{{- end }} - -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/deployment.yaml b/charts/admin-stack/charts/grafana/templates/deployment.yaml deleted file mode 100644 index 42bde46a3..000000000 --- a/charts/admin-stack/charts/grafana/templates/deployment.yaml +++ /dev/null @@ -1,52 +0,0 @@ -{{- if (and (not .Values.useStatefulSet) (or (not .Values.persistence.enabled) (eq .Values.persistence.type "pvc"))) }} -{{- if .Values.enabled }} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if and (not .Values.autoscaling.enabled) (.Values.replicas) }} - replicas: {{ .Values.replicas }} - {{- end }} - revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} - selector: - matchLabels: - {{- include "grafana.selectorLabels" . | nindent 6 }} - {{- with .Values.deploymentStrategy }} - strategy: - {{- toYaml . | trim | nindent 4 }} - {{- end }} - template: - metadata: - labels: - {{- include "grafana.selectorLabels" . | nindent 8 }} - {{- with .Values.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - annotations: - checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} - checksum/dashboards-json-config: {{ include (print $.Template.BasePath "/dashboards-json-configmap.yaml") . | sha256sum }} - checksum/sc-dashboard-provider-config: {{ include (print $.Template.BasePath "/configmap-dashboard-provider.yaml") . | sha256sum }} - {{- if and (or (and (not .Values.admin.existingSecret) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD)) (and .Values.ldap.enabled (not .Values.ldap.existingSecret))) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }} - {{- end }} - {{- if .Values.envRenderSecret }} - checksum/secret-env: {{ include (print $.Template.BasePath "/secret-env.yaml") . | sha256sum }} - {{- end }} - {{- with .Values.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- include "grafana.pod" . | nindent 6 }} -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/headless-service.yaml b/charts/admin-stack/charts/grafana/templates/headless-service.yaml deleted file mode 100644 index 3028589d3..000000000 --- a/charts/admin-stack/charts/grafana/templates/headless-service.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- $sts := list "sts" "StatefulSet" "statefulset" -}} -{{- if or .Values.headlessService (and .Values.persistence.enabled (not .Values.persistence.existingClaim) (has .Values.persistence.type $sts)) }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "grafana.fullname" . }}-headless - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - clusterIP: None - selector: - {{- include "grafana.selectorLabels" . | nindent 4 }} - type: ClusterIP - ports: - - name: {{ .Values.gossipPortName }}-tcp - port: 9094 -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/ingress.yaml b/charts/admin-stack/charts/grafana/templates/ingress.yaml deleted file mode 100644 index 063cdfaa5..000000000 --- a/charts/admin-stack/charts/grafana/templates/ingress.yaml +++ /dev/null @@ -1,78 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $ingressApiIsStable := eq (include "grafana.ingress.isStable" .) "true" -}} -{{- $ingressSupportsIngressClassName := eq (include "grafana.ingress.supportsIngressClassName" .) "true" -}} -{{- $ingressSupportsPathType := eq (include "grafana.ingress.supportsPathType" .) "true" -}} -{{- $fullName := include "grafana.fullname" . -}} -{{- $servicePort := .Values.service.port -}} -{{- $ingressPath := .Values.ingress.path -}} -{{- $ingressPathType := .Values.ingress.pathType -}} -{{- $extraPaths := .Values.ingress.extraPaths -}} -apiVersion: {{ include "grafana.ingress.apiVersion" . }} -kind: Ingress -metadata: - name: {{ $fullName }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.ingress.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.annotations }} - annotations: - {{- range $key, $value := . }} - {{ $key }}: {{ tpl $value $ | quote }} - {{- end }} - {{- end }} -spec: - {{- if and $ingressSupportsIngressClassName .Values.ingress.ingressClassName }} - ingressClassName: {{ .Values.ingress.ingressClassName }} - {{- end -}} - {{- with .Values.ingress.tls }} - tls: - {{- tpl (toYaml .) $ | nindent 4 }} - {{- end }} - rules: - {{- if .Values.ingress.hosts }} - {{- range .Values.ingress.hosts }} - - host: {{ tpl . $ }} - http: - paths: - {{- with $extraPaths }} - {{- toYaml . | nindent 10 }} - {{- end }} - - path: {{ $ingressPath }} - {{- if $ingressSupportsPathType }} - pathType: {{ $ingressPathType }} - {{- end }} - backend: - {{- if $ingressApiIsStable }} - service: - name: {{ $fullName }} - port: - number: {{ $servicePort }} - {{- else }} - serviceName: {{ $fullName }} - servicePort: {{ $servicePort }} - {{- end }} - {{- end }} - {{- else }} - - http: - paths: - - backend: - {{- if $ingressApiIsStable }} - service: - name: {{ $fullName }} - port: - number: {{ $servicePort }} - {{- else }} - serviceName: {{ $fullName }} - servicePort: {{ $servicePort }} - {{- end }} - {{- with $ingressPath }} - path: {{ . }} - {{- end }} - {{- if $ingressSupportsPathType }} - pathType: {{ $ingressPathType }} - {{- end }} - {{- end -}} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/networkpolicy.yaml b/charts/admin-stack/charts/grafana/templates/networkpolicy.yaml deleted file mode 100644 index ea4578bec..000000000 --- a/charts/admin-stack/charts/grafana/templates/networkpolicy.yaml +++ /dev/null @@ -1,52 +0,0 @@ -{{- if .Values.networkPolicy.enabled }} -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - policyTypes: - {{- if .Values.networkPolicy.ingress }} - - Ingress - {{- end }} - {{- if .Values.networkPolicy.egress.enabled }} - - Egress - {{- end }} - podSelector: - matchLabels: - {{- include "grafana.selectorLabels" . | nindent 6 }} - - {{- if .Values.networkPolicy.egress.enabled }} - egress: - - ports: - {{ .Values.networkPolicy.egress.ports | toJson }} - {{- end }} - {{- if .Values.networkPolicy.ingress }} - ingress: - - ports: - - port: {{ .Values.service.targetPort }} - {{- if not .Values.networkPolicy.allowExternal }} - from: - - podSelector: - matchLabels: - {{ include "grafana.fullname" . }}-client: "true" - {{- with .Values.networkPolicy.explicitNamespacesSelector }} - - namespaceSelector: - {{- toYaml . | nindent 12 }} - {{- end }} - - podSelector: - matchLabels: - {{- include "grafana.labels" . | nindent 14 }} - role: read - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/poddisruptionbudget.yaml b/charts/admin-stack/charts/grafana/templates/poddisruptionbudget.yaml deleted file mode 100644 index 05251214a..000000000 --- a/charts/admin-stack/charts/grafana/templates/poddisruptionbudget.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if .Values.podDisruptionBudget }} -apiVersion: {{ include "grafana.podDisruptionBudget.apiVersion" . }} -kind: PodDisruptionBudget -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.podDisruptionBudget.minAvailable }} - minAvailable: {{ . }} - {{- end }} - {{- with .Values.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ . }} - {{- end }} - selector: - matchLabels: - {{- include "grafana.selectorLabels" . | nindent 6 }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/pvc.yaml b/charts/admin-stack/charts/grafana/templates/pvc.yaml deleted file mode 100644 index eb8f87f07..000000000 --- a/charts/admin-stack/charts/grafana/templates/pvc.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "pvc")}} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.persistence.extraPvcLabels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.persistence.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.persistence.finalizers }} - finalizers: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - accessModes: - {{- range .Values.persistence.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} - {{- with .Values.persistence.storageClassName }} - storageClassName: {{ . }} - {{- end }} - {{- with .Values.persistence.selectorLabels }} - selector: - matchLabels: - {{- toYaml . | nindent 6 }} - {{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/role.yaml b/charts/admin-stack/charts/grafana/templates/role.yaml deleted file mode 100644 index ffdb16f67..000000000 --- a/charts/admin-stack/charts/grafana/templates/role.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if and .Values.rbac.create (not .Values.rbac.useExistingRole) -}} -apiVersion: {{ include "grafana.rbac.apiVersion" . }} -kind: Role -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -{{- if or .Values.rbac.pspEnabled (and .Values.rbac.namespaced (or .Values.sidecar.dashboards.enabled .Values.sidecar.datasources.enabled .Values.sidecar.plugins.enabled .Values.rbac.extraRoleRules)) }} -rules: - {{- if .Values.rbac.pspEnabled }} - - apiGroups: ['extensions'] - resources: ['podsecuritypolicies'] - verbs: ['use'] - resourceNames: [{{ include "grafana.fullname" . }}] - {{- end }} - {{- if and .Values.rbac.namespaced (or .Values.sidecar.dashboards.enabled .Values.sidecar.datasources.enabled .Values.sidecar.plugins.enabled) }} - - apiGroups: [""] # "" indicates the core API group - resources: ["configmaps", "secrets"] - verbs: ["get", "watch", "list"] - {{- end }} - {{- with .Values.rbac.extraRoleRules }} - {{- toYaml . | nindent 2 }} - {{- end}} -{{- else }} -rules: [] -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/rolebinding.yaml b/charts/admin-stack/charts/grafana/templates/rolebinding.yaml deleted file mode 100644 index cc07bd9a0..000000000 --- a/charts/admin-stack/charts/grafana/templates/rolebinding.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create }} -apiVersion: {{ include "grafana.rbac.apiVersion" . }} -kind: RoleBinding -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - {{- if .Values.rbac.useExistingRole }} - name: {{ .Values.rbac.useExistingRole }} - {{- else }} - name: {{ include "grafana.fullname" . }} - {{- end }} -subjects: -- kind: ServiceAccount - name: {{ include "grafana.serviceAccountName" . }} - namespace: {{ include "grafana.namespace" . }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/secret-env.yaml b/charts/admin-stack/charts/grafana/templates/secret-env.yaml deleted file mode 100644 index c7655671e..000000000 --- a/charts/admin-stack/charts/grafana/templates/secret-env.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if .Values.envRenderSecret }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "grafana.fullname" . }}-env - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} -type: Opaque -data: -{{- range $key, $val := .Values.envRenderSecret }} - {{ $key }}: {{ $val | b64enc | quote }} -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/secret.yaml b/charts/admin-stack/charts/grafana/templates/secret.yaml deleted file mode 100644 index 5cbd52744..000000000 --- a/charts/admin-stack/charts/grafana/templates/secret.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{- if or (and (not .Values.admin.existingSecret) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION)) (and .Values.ldap.enabled (not .Values.ldap.existingSecret)) }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -data: - {{- if and (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) (not .Values.admin.existingSecret) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD) }} - admin-user: {{ .Values.adminUser | b64enc | quote }} - {{- if .Values.adminPassword }} - admin-password: {{ .Values.adminPassword | b64enc | quote }} - {{- else }} - admin-password: {{ include "grafana.password" . }} - {{- end }} - {{- end }} - {{- if not .Values.ldap.existingSecret }} - ldap-toml: {{ tpl .Values.ldap.config $ | b64enc | quote }} - {{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/service.yaml b/charts/admin-stack/charts/grafana/templates/service.yaml deleted file mode 100644 index 17b2c4b63..000000000 --- a/charts/admin-stack/charts/grafana/templates/service.yaml +++ /dev/null @@ -1,51 +0,0 @@ -{{- if .Values.service.enabled }} -{{- $root := . }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.service.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} - type: ClusterIP - {{- with .Values.service.clusterIP }} - clusterIP: {{ . }} - {{- end }} - {{- else if eq .Values.service.type "LoadBalancer" }} - type: {{ .Values.service.type }} - {{- with .Values.service.loadBalancerIP }} - loadBalancerIP: {{ . }} - {{- end }} - {{- with .Values.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: - {{- toYaml . | nindent 4 }} - {{- end }} - {{- else }} - type: {{ .Values.service.type }} - {{- end }} - {{- with .Values.service.externalIPs }} - externalIPs: - {{- toYaml . | nindent 4 }} - {{- end }} - ports: - - name: {{ .Values.service.portName }} - port: {{ .Values.service.port }} - protocol: TCP - targetPort: {{ .Values.service.targetPort }} - {{- with .Values.service.appProtocol }} - appProtocol: {{ . }} - {{- end }} - {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} - {{- with .Values.extraExposePorts }} - {{- tpl (toYaml . | nindent 4) $root }} - {{- end }} - selector: - {{- include "grafana.selectorLabels" . | nindent 4 }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/serviceaccount.yaml b/charts/admin-stack/charts/grafana/templates/serviceaccount.yaml deleted file mode 100644 index 784e71ba6..000000000 --- a/charts/admin-stack/charts/grafana/templates/serviceaccount.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- if .Values.serviceAccount.create }} -{{- $root := . -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- tpl (toYaml . | nindent 4) $root }} - {{- end }} - name: {{ include "grafana.serviceAccountName" . }} - namespace: {{ include "grafana.namespace" . }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/templates/statefulset.yaml b/charts/admin-stack/charts/grafana/templates/statefulset.yaml deleted file mode 100644 index da2a5c46d..000000000 --- a/charts/admin-stack/charts/grafana/templates/statefulset.yaml +++ /dev/null @@ -1,57 +0,0 @@ -{{- if .Values.enabled }} -{{- $sts := list "sts" "StatefulSet" "statefulset" -}} -{{- if (or (.Values.useStatefulSet) (and .Values.persistence.enabled (not .Values.persistence.existingClaim) (has .Values.persistence.type $sts)))}} -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ include "grafana.fullname" . }} - namespace: {{ include "grafana.namespace" . }} - labels: - {{- include "grafana.labels" . | nindent 4 }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - replicas: {{ .Values.replicas }} - selector: - matchLabels: - {{- include "grafana.selectorLabels" . | nindent 6 }} - serviceName: {{ include "grafana.fullname" . }}-headless - template: - metadata: - labels: - {{- include "grafana.selectorLabels" . | nindent 8 }} - {{- with .Values.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - annotations: - checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} - checksum/dashboards-json-config: {{ include (print $.Template.BasePath "/dashboards-json-configmap.yaml") . | sha256sum }} - checksum/sc-dashboard-provider-config: {{ include (print $.Template.BasePath "/configmap-dashboard-provider.yaml") . | sha256sum }} - {{- if and (or (and (not .Values.admin.existingSecret) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD)) (and .Values.ldap.enabled (not .Values.ldap.existingSecret))) (not .Values.env.GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION) }} - checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }} - {{- end }} - {{- with .Values.podAnnotations }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- include "grafana.pod" . | nindent 6 }} - {{- if .Values.persistence.enabled}} - volumeClaimTemplates: - - metadata: - name: storage - spec: - accessModes: {{ .Values.persistence.accessModes }} - storageClassName: {{ .Values.persistence.storageClassName }} - resources: - requests: - storage: {{ .Values.persistence.size }} - {{- with .Values.persistence.selectorLabels }} - selector: - matchLabels: - {{- toYaml . | nindent 10 }} - {{- end }} - {{- end }} -{{- end }} -{{- end }} diff --git a/charts/admin-stack/charts/grafana/values.yaml b/charts/admin-stack/charts/grafana/values.yaml deleted file mode 100644 index b2b52873c..000000000 --- a/charts/admin-stack/charts/grafana/values.yaml +++ /dev/null @@ -1,1078 +0,0 @@ -image: - repository: grafana/grafana - # Overrides the Grafana image tag whose default is the chart appVersion - tag: "" - sha: "" - pullPolicy: IfNotPresent - - ## Optionally specify an array of imagePullSecrets. - ## Secrets must be manually created in the namespace. - ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - ## Can be templated. - ## - pullSecrets: [] - # - myRegistrKeySecretName - -replicas: 1 - -persistence: - enabled: false - type: pvc - # storageClassName: default - accessModes: - - ReadWriteOnce - size: 10Gi - # annotations: {} - finalizers: - - kubernetes.io/pvc-protection - # selectorLabels: {} - ## Sub-directory of the PV to mount. Can be templated. - # subPath: "" - ## Name of an existing PVC. Can be templated. - # existingClaim: - ## Extra labels to apply to a PVC. - extraPvcLabels: {} - - ## If persistence is not enabled, this allows to mount the - ## local storage in-memory to improve performance - ## - inMemory: - enabled: false - ## The maximum usage on memory medium EmptyDir would be - ## the minimum value between the SizeLimit specified - ## here and the sum of memory limits of all containers in a pod - ## - # sizeLimit: 300Mi - - -## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service). -## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it. -## ref: http://kubernetes.io/docs/user-guide/services/ -## -service: - enabled: true - type: ClusterIP - clusterIP: "" - loadBalancerIP: "" - loadBalancerSourceRanges: "" - externalIPs: "" - nodePort: "" - port: 80 - targetPort: 3000 - # targetPort: 4181 To be used with a proxy extraContainer - ## Service annotations. Can be templated. - annotations: {} - labels: {} - portName: service - # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp" - appProtocol: "" - -downloadDashboardsImage: - repository: curlimages/curl - tag: 7.85.0 - sha: "" - pullPolicy: IfNotPresent - - -downloadDashboards: - env: {} - envFromSecret: "" - resources: {} - securityContext: {} - envValueFrom: {} - # ENV_NAME: - # configMapKeyRef: - # name: configmap-name - # key: value_key - - -## Pod Annotations -# podAnnotations: {} - - -## Pod Labels -# podLabels: {} - - -podPortName: grafana -gossipPortName: gossip -## Deployment annotations -# annotations: {} - - -# Enable creating the grafana configmap -createConfigmap: true - - -## See `kubectl explain poddisruptionbudget.spec` for more -## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ -podDisruptionBudget: -# minAvailable: 1 -# maxUnavailable: 1 - - -readinessProbe: - httpGet: - path: /api/health - port: 3000 - -livenessProbe: - httpGet: - path: /api/health - port: 3000 - initialDelaySeconds: 60 - timeoutSeconds: 30 - failureThreshold: 10 - - -## Use an alternate scheduler, e.g. "stork". -## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ -## -# schedulerName: "default-scheduler" - - -## See `kubectl explain deployment.spec.strategy` for more -## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy -deploymentStrategy: - type: RollingUpdate - - -## Create HorizontalPodAutoscaler object for deployment type -# -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 5 - targetCPU: "60" - targetMemory: "" - behavior: {} - - -## Number of old ReplicaSets to retain -## -revisionHistoryLimit: 10 - - -rbac: - create: true - ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) - # useExistingRole: name-of-some-(cluster)role - pspEnabled: true - pspUseAppArmor: true - namespaced: false - extraRoleRules: [] - # - apiGroups: [] - # resources: [] - # verbs: [] - extraClusterRoleRules: [] - # - apiGroups: [] - # resources: [] - # verbs: [] - - -serviceAccount: - create: true - name: - nameTest: - ## ServiceAccount labels. - labels: {} - ## Service account annotations. Can be templated. - # annotations: - # eks.amazonaws.com/role-arn: arn:aws:iam::123456789000:role/iam-role-name-here - autoMount: true - - -## Create a headless service for the deployment -headlessService: false - - -# Administrator credentials when not using an existing secret (see below) -adminUser: admin -# adminPassword: strongpassword - -# Use an existing secret for the admin user. -admin: - ## Name of the secret. Can be templated. - existingSecret: "" - userKey: admin-user - passwordKey: admin-password - -## Define command to be executed at startup by grafana container -## Needed if using `vault-env` to manage secrets (ref: https://banzaicloud.com/blog/inject-secrets-into-pods-vault/) -## Default is "run.sh" as defined in grafana's Dockerfile -# command: -# - "sh" -# - "/run.sh" - -## Extra environment variables that will be pass onto deployment pods -## -## to provide grafana with access to CloudWatch on AWS EKS: -## 1. create an iam role of type "Web identity" with provider oidc.eks.* (note the provider for later) -## 2. edit the "Trust relationships" of the role, add a line inside the StringEquals clause using the -## same oidc eks provider as noted before (same as the existing line) -## also, replace NAMESPACE and prometheus-operator-grafana with the service account namespace and name -## -## "oidc.eks.us-east-1.amazonaws.com/id/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:sub": "system:serviceaccount:NAMESPACE:prometheus-operator-grafana", -## -## 3. attach a policy to the role, you can use a built in policy called CloudWatchReadOnlyAccess -## 4. use the following env: (replace 123456789000 and iam-role-name-here with your aws account number and role name) -## -## env: -## AWS_ROLE_ARN: arn:aws:iam::123456789000:role/iam-role-name-here -## AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token -## AWS_REGION: us-east-1 -## -## 5. uncomment the EKS section in extraSecretMounts: below -## 6. uncomment the annotation section in the serviceAccount: above -## make sure to replace arn:aws:iam::123456789000:role/iam-role-name-here with your role arn - -env: {} - -## "valueFrom" environment variable references that will be added to deployment pods. Name is templated. -## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#envvarsource-v1-core -## Renders in container spec as: -## env: -## ... -## - name: -## valueFrom: -## -envValueFrom: {} - # ENV_NAME: - # configMapKeyRef: - # name: configmap-name -# key: value_key - -## The name of a secret in the same kubernetes namespace which contain values to be added to the environment -## This can be useful for auth tokens, etc. Value is templated. -envFromSecret: "" - -## Sensible environment variables that will be rendered as new secret object -## This can be useful for auth tokens, etc -envRenderSecret: {} - -## The names of secrets in the same kubernetes namespace which contain values to be added to the environment -## Each entry should contain a name key, and can optionally specify whether the secret must be defined with an optional key. -## Name is templated. -envFromSecrets: [] -## - name: secret-name -## optional: true - -## The names of conifgmaps in the same kubernetes namespace which contain values to be added to the environment -## Each entry should contain a name key, and can optionally specify whether the configmap must be defined with an optional key. -## Name is templated. -## ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#configmapenvsource-v1-core -envFromConfigMaps: [] -## - name: configmap-name -## optional: true - -# Inject Kubernetes services as environment variables. -# See https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#environment-variables -enableServiceLinks: true - -## Additional grafana server secret mounts -# Defines additional mounts with secrets. Secrets must be manually created in the namespace. -extraSecretMounts: [] - # - name: secret-files - # mountPath: /etc/secrets - # secretName: grafana-secret-files - # readOnly: true - # subPath: "" - # - # for AWS EKS (cloudwatch) use the following (see also instruction in env: above) - # - name: aws-iam-token - # mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount - # readOnly: true - # projected: - # defaultMode: 420 - # sources: - # - serviceAccountToken: - # audience: sts.amazonaws.com - # expirationSeconds: 86400 - # path: token - # - # for CSI e.g. Azure Key Vault use the following - # - name: secrets-store-inline - # mountPath: /run/secrets - # readOnly: true - # csi: - # driver: secrets-store.csi.k8s.io - # readOnly: true - # volumeAttributes: - # secretProviderClass: "akv-grafana-spc" - # nodePublishSecretRef: # Only required when using service principal mode -# name: grafana-akv-creds # Only required when using service principal mode - -## Additional grafana server volume mounts -# Defines additional volume mounts. -extraVolumeMounts: [] - # - name: extra-volume-0 - # mountPath: /mnt/volume0 - # readOnly: true - # existingClaim: volume-claim - # - name: extra-volume-1 - # mountPath: /mnt/volume1 - # readOnly: true - # hostPath: /usr/shared/ - # - name: grafana-secrets - # csi: true - # data: - # driver: secrets-store.csi.k8s.io - # readOnly: true - # volumeAttributes: -# secretProviderClass: "grafana-env-spc" - -## Container Lifecycle Hooks. Execute a specific bash command or make an HTTP request -lifecycleHooks: {} - # postStart: - # exec: -# command: [] - -## Pass the plugins you want installed as a list. -## -plugins: [] - # - digrich-bubblechart-panel -# - grafana-clock-panel - -initChownData: - ## If false, data ownership will not be reset at startup - ## This allows the grafana-server to be run with an arbitrary user - ## - enabled: true - - - ## initChownData container image - ## - image: - repository: busybox - tag: "1.31.1" - sha: "" - pullPolicy: IfNotPresent - - ## initChownData resource requests and limits - ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/ - ## - resources: {} - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - securityContext: - runAsNonRoot: false - runAsUser: 0 - - -# Administrator credentials when not using an existing secret (see below) -adminUser: admin -# adminPassword: strongpassword - - -## Configure grafana datasources -## ref: http://docs.grafana.org/administration/provisioning/#datasources -## -datasources: {} -# datasources.yaml: -# apiVersion: 1 -# datasources: -# - name: Prometheus -# type: prometheus -# url: http://prometheus-prometheus-server -# access: proxy -# isDefault: true -# - name: CloudWatch -# type: cloudwatch -# access: proxy -# uid: cloudwatch -# editable: false -# jsonData: -# authType: default -# defaultRegion: us-east-1 - -## Configure grafana alerting (can be templated) -## ref: http://docs.grafana.org/administration/provisioning/#alerting -## -alerting: {} - # rules.yaml: - # apiVersion: 1 - # groups: - # - orgId: 1 - # name: '{{ .Chart.Name }}_my_rule_group' - # folder: my_first_folder - # interval: 60s - # rules: - # - uid: my_id_1 - # title: my_first_rule - # condition: A - # data: - # - refId: A - # datasourceUid: '-100' - # model: - # conditions: - # - evaluator: - # params: - # - 3 - # type: gt - # operator: - # type: and - # query: - # params: - # - A - # reducer: - # type: last - # type: query - # datasource: - # type: __expr__ - # uid: '-100' - # expression: 1==0 - # intervalMs: 1000 - # maxDataPoints: 43200 - # refId: A - # type: math - # dashboardUid: my_dashboard - # panelId: 123 - # noDataState: Alerting - # for: 60s - # annotations: - # some_key: some_value - # labels: - # team: sre_team_1 - # contactpoints.yaml: - # apiVersion: 1 - # contactPoints: - # - orgId: 1 - # name: cp_1 - # receivers: - # - uid: first_uid - # type: pagerduty - # settings: - # integrationKey: XXX - # severity: critical - # class: ping failure - # component: Grafana - # group: app-stack - # summary: | -# {{ `{{ include "default.message" . }}` }} - -## Configure notifiers -## ref: http://docs.grafana.org/administration/provisioning/#alert-notification-channels -## -notifiers: {} -# notifiers.yaml: -# notifiers: -# - name: email-notifier -# type: email -# uid: email1 -# # either: -# org_id: 1 -# # or -# org_name: Main Org. -# is_default: true -# settings: -# addresses: an_email_address@example.com -# delete_notifiers: - -## Configure grafana dashboard providers -## ref: http://docs.grafana.org/administration/provisioning/#dashboards -## -## `path` must be /var/lib/grafana/dashboards/ -## -dashboardProviders: {} -# dashboardproviders.yaml: -# apiVersion: 1 -# providers: -# - name: 'default' -# orgId: 1 -# folder: '' -# type: file -# disableDeletion: false -# editable: true -# options: -# path: /var/lib/grafana/dashboards/default - -## Configure grafana dashboard to import -## NOTE: To use dashboards you must also enable/configure dashboardProviders -## ref: https://grafana.com/dashboards -## -## dashboards per provider, use provider name as key. -## -dashboards: {} - # default: - # some-dashboard: - # json: | - # $RAW_JSON - # custom-dashboard: - # file: dashboards/custom-dashboard.json - # prometheus-stats: - # gnetId: 2 - # revision: 2 - # datasource: Prometheus - # local-dashboard: - # url: https://example.com/repository/test.json - # token: '' - # local-dashboard-base64: - # url: https://example.com/repository/test-b64.json - # token: '' - # b64content: true - # local-dashboard-gitlab: - # url: https://example.com/repository/test-gitlab.json - # gitlabToken: '' - # local-dashboard-bitbucket: - # url: https://example.com/repository/test-bitbucket.json -# bearerToken: '' - -## Reference to external ConfigMap per provider. Use provider name as key and ConfigMap name as value. -## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both. -## ConfigMap data example: -## -## data: -## example-dashboard.json: | -## RAW_JSON -## -dashboardsConfigMaps: {} -# default: "" - -## Grafana's primary configuration -## NOTE: values in map will be converted to ini format -## ref: http://docs.grafana.org/installation/configuration/ -## -grafana.ini: - paths: - data: /var/lib/grafana/ - logs: /var/log/grafana - plugins: /var/lib/grafana/plugins - provisioning: /etc/grafana/provisioning - analytics: - check_for_updates: true - log: - mode: console - grafana_net: - url: https://grafana.net - server: - domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ .Values.ingress.hosts | first }}{{ else }}''{{ end }}" - ## grafana Authentication can be enabled with the following values on grafana.ini - # server: - # The full public facing url you use in browser, used for redirects and emails - # root_url: - # https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana - # auth.github: - # enabled: false - # allow_sign_up: false - # scopes: user:email,read:org - # auth_url: https://github.com/login/oauth/authorize - # token_url: https://github.com/login/oauth/access_token - # api_url: https://api.github.com/user - # team_ids: - # allowed_organizations: - # client_id: - # client_secret: - ## LDAP Authentication can be enabled with the following values on grafana.ini - ## NOTE: Grafana will fail to start if the value for ldap.toml is invalid - # auth.ldap: - # enabled: true - # allow_sign_up: true - # config_file: /etc/grafana/ldap.toml - -## Grafana's LDAP configuration -## Templated by the template in _helpers.tpl -## NOTE: To enable the grafana.ini must be configured with auth.ldap.enabled -## ref: http://docs.grafana.org/installation/configuration/#auth-ldap -## ref: http://docs.grafana.org/installation/ldap/#configuration -ldap: - enabled: false - # `existingSecret` is a reference to an existing secret containing the ldap configuration - # for Grafana in a key `ldap-toml`. - existingSecret: "" - # `config` is the content of `ldap.toml` that will be stored in the created secret - config: "" - # config: |- - # verbose_logging = true - - # [[servers]] - # host = "my-ldap-server" - # port = 636 - # use_ssl = true - # start_tls = false - # ssl_skip_verify = false - # bind_dn = "uid=%s,ou=users,dc=myorg,dc=com" - -## Grafana's SMTP configuration -## NOTE: To enable, grafana.ini must be configured with smtp.enabled -## ref: http://docs.grafana.org/installation/configuration/#smtp -smtp: - # `existingSecret` is a reference to an existing secret containing the smtp configuration - # for Grafana. - existingSecret: "" - userKey: "user" - passwordKey: "password" - -## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders -## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards -sidecar: - image: - repository: quay.io/kiwigrid/k8s-sidecar - tag: 1.22.0 - sha: "" - imagePullPolicy: IfNotPresent - resources: {} - # limits: - # cpu: 100m - # memory: 100Mi - # requests: - # cpu: 50m - # memory: 50Mi - securityContext: {} - # skipTlsVerify Set to true to skip tls verification for kube api calls - # skipTlsVerify: true - enableUniqueFilenames: false - readinessProbe: {} - livenessProbe: {} - # Log level default for all sidecars. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. Defaults to INFO - # logLevel: INFO - alerts: - enabled: false - # Additional environment variables for the alerts sidecar - env: {} - # Do not reprocess already processed unchanged resources on k8s API reconnect. - # ignoreAlreadyProcessed: true - # label that the configmaps with alert are marked with - label: grafana_alert - # value of label that the configmaps with alert are set to - labelValue: "" - # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. - # logLevel: INFO - # If specified, the sidecar will search for alert config-maps inside this namespace. - # Otherwise the namespace in which the sidecar is running will be used. - # It's also possible to specify ALL to search in all namespaces - searchNamespace: null - # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds. - watchMethod: WATCH - # search in configmap, secret or both - resource: both - # watchServerTimeout: request to the server, asking it to cleanly close the connection after that. - # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S - # watchServerTimeout: 3600 - # - # watchClientTimeout: is a client-side timeout, configuring your local socket. - # If you have a network outage dropping all packets with no RST/FIN, - # this is how long your client waits before realizing & dropping the connection. - # defaults to 66sec (sic!) - # watchClientTimeout: 60 - # - # Endpoint to send request to reload alerts - reloadURL: "http://localhost:3000/api/admin/provisioning/alerting/reload" - # Absolute path to shell script to execute after a alert got reloaded - script: null - skipReload: false - # Deploy the alert sidecar as an initContainer in addition to a container. - # Sets the size limit of the alert sidecar emptyDir volume - sizeLimit: {} - dashboards: - enabled: false - # Additional environment variables for the dashboards sidecar - env: {} - # Do not reprocess already processed unchanged resources on k8s API reconnect. - # ignoreAlreadyProcessed: true - SCProvider: true - # label that the configmaps with dashboards are marked with - label: grafana_dashboard - # value of label that the configmaps with dashboards are set to - labelValue: "" - # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. - # logLevel: INFO - # folder in the pod that should hold the collected dashboards (unless `defaultFolderName` is set) - folder: /tmp/dashboards - # The default folder name, it will create a subfolder under the `folder` and put dashboards in there instead - defaultFolderName: null - # Namespaces list. If specified, the sidecar will search for config-maps/secrets inside these namespaces. - # Otherwise the namespace in which the sidecar is running will be used. - # It's also possible to specify ALL to search in all namespaces. - searchNamespace: null - # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds. - watchMethod: WATCH - # search in configmap, secret or both - resource: both - # If specified, the sidecar will look for annotation with this name to create folder and put graph here. - # You can use this parameter together with `provider.foldersFromFilesStructure`to annotate configmaps and create folder structure. - folderAnnotation: null - # Endpoint to send request to reload alerts - reloadURL: "http://localhost:3000/api/admin/provisioning/dashboards/reload" - # Absolute path to shell script to execute after a configmap got reloaded - script: null - skipReload: false - # watchServerTimeout: request to the server, asking it to cleanly close the connection after that. - # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S - # watchServerTimeout: 3600 - # - # watchClientTimeout: is a client-side timeout, configuring your local socket. - # If you have a network outage dropping all packets with no RST/FIN, - # this is how long your client waits before realizing & dropping the connection. - # defaults to 66sec (sic!) - # watchClientTimeout: 60 - # - # provider configuration that lets grafana manage the dashboards - provider: - # name of the provider, should be unique - name: sidecarProvider - # orgid as configured in grafana - orgid: 1 - # folder in which the dashboards should be imported in grafana - folder: '' - # type of the provider - type: file - # disableDelete to activate a import-only behaviour - disableDelete: false - # allow updating provisioned dashboards from the UI - allowUiUpdates: false - # allow Grafana to replicate dashboard structure from filesystem - foldersFromFilesStructure: false - # Additional dashboard sidecar volume mounts - extraMounts: [] - # Sets the size limit of the dashboard sidecar emptyDir volume - sizeLimit: {} - datasources: - enabled: false - # Additional environment variables for the datasourcessidecar - env: {} - # Do not reprocess already processed unchanged resources on k8s API reconnect. - # ignoreAlreadyProcessed: true - # label that the configmaps with datasources are marked with - label: grafana_datasource - # value of label that the configmaps with datasources are set to - labelValue: "" - # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. - # logLevel: INFO - # If specified, the sidecar will search for datasource config-maps inside this namespace. - # Otherwise the namespace in which the sidecar is running will be used. - # It's also possible to specify ALL to search in all namespaces - searchNamespace: null - # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds. - watchMethod: WATCH - # search in configmap, secret or both - resource: both - # watchServerTimeout: request to the server, asking it to cleanly close the connection after that. - # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S - # watchServerTimeout: 3600 - # - # watchClientTimeout: is a client-side timeout, configuring your local socket. - # If you have a network outage dropping all packets with no RST/FIN, - # this is how long your client waits before realizing & dropping the connection. - # defaults to 66sec (sic!) - # watchClientTimeout: 60 - # - # Endpoint to send request to reload datasources - reloadURL: "http://localhost:3000/api/admin/provisioning/datasources/reload" - # Absolute path to shell script to execute after a datasource got reloaded - script: null - skipReload: false - # Deploy the datasource sidecar as an initContainer in addition to a container. - # This is needed if skipReload is true, to load any datasources defined at startup time. - initDatasources: false - # Sets the size limit of the datasource sidecar emptyDir volume - sizeLimit: {} - plugins: - enabled: false - # Additional environment variables for the plugins sidecar - env: {} - # Do not reprocess already processed unchanged resources on k8s API reconnect. - # ignoreAlreadyProcessed: true - # label that the configmaps with plugins are marked with - label: grafana_plugin - # value of label that the configmaps with plugins are set to - labelValue: "" - # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. - # logLevel: INFO - # If specified, the sidecar will search for plugin config-maps inside this namespace. - # Otherwise the namespace in which the sidecar is running will be used. - # It's also possible to specify ALL to search in all namespaces - searchNamespace: null - # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds. - watchMethod: WATCH - # search in configmap, secret or both - resource: both - # watchServerTimeout: request to the server, asking it to cleanly close the connection after that. - # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S - # watchServerTimeout: 3600 - # - # watchClientTimeout: is a client-side timeout, configuring your local socket. - # If you have a network outage dropping all packets with no RST/FIN, - # this is how long your client waits before realizing & dropping the connection. - # defaults to 66sec (sic!) - # watchClientTimeout: 60 - # - # Endpoint to send request to reload plugins - reloadURL: "http://localhost:3000/api/admin/provisioning/plugins/reload" - # Absolute path to shell script to execute after a plugin got reloaded - script: null - skipReload: false - # Deploy the datasource sidecar as an initContainer in addition to a container. - # This is needed if skipReload is true, to load any plugins defined at startup time. - initPlugins: false - # Sets the size limit of the plugin sidecar emptyDir volume - sizeLimit: {} - notifiers: - enabled: false - # Additional environment variables for the notifierssidecar - env: {} - # Do not reprocess already processed unchanged resources on k8s API reconnect. - # ignoreAlreadyProcessed: true - # label that the configmaps with notifiers are marked with - label: grafana_notifier - # value of label that the configmaps with notifiers are set to - labelValue: "" - # Log level. Can be one of: DEBUG, INFO, WARN, ERROR, CRITICAL. - # logLevel: INFO - # If specified, the sidecar will search for notifier config-maps inside this namespace. - # Otherwise the namespace in which the sidecar is running will be used. - # It's also possible to specify ALL to search in all namespaces - searchNamespace: null - # Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH requests, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds. - watchMethod: WATCH - # search in configmap, secret or both - resource: both - # watchServerTimeout: request to the server, asking it to cleanly close the connection after that. - # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S - # watchServerTimeout: 3600 - # - # watchClientTimeout: is a client-side timeout, configuring your local socket. - # If you have a network outage dropping all packets with no RST/FIN, - # this is how long your client waits before realizing & dropping the connection. - # defaults to 66sec (sic!) - # watchClientTimeout: 60 - # - # Endpoint to send request to reload notifiers - reloadURL: "http://localhost:3000/api/admin/provisioning/notifications/reload" - # Absolute path to shell script to execute after a notifier got reloaded - script: null - skipReload: false - # Deploy the notifier sidecar as an initContainer in addition to a container. - # This is needed if skipReload is true, to load any notifiers defined at startup time. - initNotifiers: false - # Sets the size limit of the notifier sidecar emptyDir volume - sizeLimit: {} - -## Override the deployment namespace -## -namespaceOverride: "" - - -## Add a seperate remote image renderer deployment/service -imageRenderer: - deploymentStrategy: {} - # Enable the image-renderer deployment & service - enabled: false - replicas: 1 - autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 5 - targetCPU: "60" - targetMemory: "" - behavior: {} - image: - # image-renderer Image repository - repository: grafana/grafana-image-renderer - # image-renderer Image tag - tag: latest - # image-renderer Image sha (optional) - sha: "" - # image-renderer ImagePullPolicy - pullPolicy: Always - # extra environment variables - env: - HTTP_HOST: "0.0.0.0" - # RENDERING_ARGS: --no-sandbox,--disable-gpu,--window-size=1280x758 - # RENDERING_MODE: clustered - # IGNORE_HTTPS_ERRORS: true - # image-renderer deployment serviceAccount - serviceAccountName: "" - # image-renderer deployment securityContext - securityContext: {} - # image-renderer deployment container securityContext - containerSecurityContext: - capabilities: - drop: ['ALL'] - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - # image-renderer deployment Host Aliases - hostAliases: [] - # 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 - port: 8081 - targetPort: 8081 - # Adds the appProtocol field to the image-renderer service. This allows to work with istio protocol selection. Ex: "http" or "tcp" - appProtocol: "" - serviceMonitor: - ## If true, a ServiceMonitor CRD is created for a prometheus operator - ## https://github.com/coreos/prometheus-operator - ## - enabled: false - path: /metrics - # namespace: monitoring (defaults to use the namespace this chart is deployed to) - labels: {} - interval: 1m - scheme: http - tlsConfig: {} - scrapeTimeout: 30s - relabelings: [] - # See: https://doc.crds.dev/github.com/prometheus-operator/kube-prometheus/monitoring.coreos.com/ServiceMonitor/v1@v0.11.0#spec-targetLabels - targetLabels: [] - # - targetLabel1 - # - targetLabel2 - # If https is enabled in Grafana, this needs to be set as 'https' to correctly configure the callback used in Grafana - grafanaProtocol: http - # In case a sub_path is used this needs to be added to the image renderer callback - grafanaSubPath: "" - # name of the image-renderer port on the pod - podPortName: http - # number of image-renderer replica sets to keep - revisionHistoryLimit: 10 - networkPolicy: - # Enable a NetworkPolicy to limit inbound traffic to only the created grafana pods - limitIngress: true - # Enable a NetworkPolicy to limit outbound traffic to only the created grafana pods - limitEgress: false - # Allow additional services to access image-renderer (eg. Prometheus operator when ServiceMonitor is enabled) - extraIngressSelectors: [] - resources: {} - # limits: - # cpu: 100m - # memory: 100Mi - # requests: - # cpu: 50m - # memory: 50Mi - ## Node labels for pod assignment - ## ref: https://kubernetes.io/docs/user-guide/node-selection/ - # - nodeSelector: {} - - ## Tolerations for pod assignment - ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - ## - tolerations: [] - - ## Affinity for pod assignment (evaluated as template) - ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity - ## - affinity: {} - - ## Use an alternate scheduler, e.g. "stork". - ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ - ## - # schedulerName: "default-scheduler" - - -# Enable backward compatibility of kubernetes where version below 1.13 doesn't have the enableServiceLinks option -enableKubeBackwardCompatibility: false -useStatefulSet: false -# Create a dynamic manifests via values: -extraObjects: [] - # - apiVersion: "kubernetes-client.io/v1" - # kind: ExternalSecret - # metadata: - # name: grafana-secrets - # spec: - # backendType: gcpSecretsManager - # data: - # - key: grafana-admin-password - # name: adminPassword - - -ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - - # pathType is only for k8s >= 1.1= - pathType: Prefix - - hosts: - - chart-example.local - ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # backend: - # serviceName: ssl-redirect - # servicePort: use-annotation - ## Or for k8s > 1.19 - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: use-annotation - - - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - - -networkPolicy: - ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. - ## - enabled: false - ## @param networkPolicy.allowExternal Don't require client label for connections - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to grafana port defined. - ## When true, grafana will accept connections from any source - ## (with the correct destination port). - ## - ingress: true - ## @param networkPolicy.ingress When true enables the creation - ## an ingress network policy - ## - allowExternal: true - ## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed - ## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace - ## and that match other criteria, the ones that have the good label, can reach the grafana. - ## But sometimes, we want the grafana to be accessible to clients from other namespaces, in this case, we can use this - ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added. - ## - ## Example: - ## explicitNamespacesSelector: - ## matchLabels: - ## role: frontend - ## matchExpressions: - ## - {key: role, operator: In, values: [frontend]} - ## - explicitNamespacesSelector: {} - ## - ## - ## - ## - ## - ## - egress: - ## @param networkPolicy.egress.enabled When enabled, an egress network policy will be - ## created allowing grafana to connect to external data sources from kubernetes cluster. - enabled: false - ## - ## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress - ports: [] - ## Add ports to the egress by specifying - port: - ## E.X. - ## ports: - ## - port: 80 - ## - port: 443 - ## - ## - ## - ## - ## - ## diff --git a/charts/admin-stack/charts/nacos/.helmignore b/charts/admin-stack/charts/nacos/.helmignore deleted file mode 100644 index 50af03172..000000000 --- a/charts/admin-stack/charts/nacos/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# 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 -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/admin-stack/charts/nacos/Chart.yaml b/charts/admin-stack/charts/nacos/Chart.yaml deleted file mode 100644 index 54abb3f9f..000000000 --- a/charts/admin-stack/charts/nacos/Chart.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v2 -appVersion: "1.0" -name: nacos -description: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. -home: https://nacos.io -kubeVersion: '>=1.20.0-0' -maintainers: - - email: dev@dubbo.apache.org - name: dubbo -sources: - - https://github.com/alibaba/nacos -type: application -version: 0.1.5 diff --git a/charts/admin-stack/charts/nacos/templates/NOTES.txt b/charts/admin-stack/charts/nacos/templates/NOTES.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/charts/admin-stack/charts/nacos/templates/_helpers.tpl b/charts/admin-stack/charts/nacos/templates/_helpers.tpl deleted file mode 100644 index fd703f0a7..000000000 --- a/charts/admin-stack/charts/nacos/templates/_helpers.tpl +++ /dev/null @@ -1,61 +0,0 @@ - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "nacos.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "nacos.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "nacos.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 -}} - - -{{/* -Nacos Namespace to use -*/}} -{{- define "nacos.namespace" -}} -{{- if .Values.namespaceOverride -}} - {{- .Values.namespaceOverride -}} -{{- else -}} - {{- .Release.Namespace -}} -{{- end -}} -{{- end -}} - -{{- define "nacos.labels" -}} -app.kubernetes.io/name: {{ include "nacos.name" . }} -helm.sh/chart: {{ include "nacos.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} - - -{{/* -Labels to use on sts.spec.selector.matchLabels and svc.spec.selector -*/}} -{{- define "nacos.matchLabels" -}} -app.kubernetes.io/name: {{ include "nacos.name" . }} -{{- end -}} \ No newline at end of file diff --git a/charts/admin-stack/charts/nacos/templates/configmap.yaml b/charts/admin-stack/charts/nacos/templates/configmap.yaml deleted file mode 100644 index f2243bf42..000000000 --- a/charts/admin-stack/charts/nacos/templates/configmap.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.enabled }} -{{- if eq .Values.storage.type "mysql"}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "nacos.fullname" . }}-configmap - namespace: {{ template "nacos.namespace" . }} -data: - {{- with .Values.storage.db }} - mysql.db.host: {{ .host }} - mysql.db.name: {{ .name }} - mysql.port: "{{ .port | default 3306 }}" - mysql.user: {{ .username }} - mysql.password: {{ .password }} - mysql.param: {{ .param | default "characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false" }} - {{- end }} - {{- end }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/nacos/templates/networkpolicy.yaml b/charts/admin-stack/charts/nacos/templates/networkpolicy.yaml deleted file mode 100644 index 195b068d1..000000000 --- a/charts/admin-stack/charts/nacos/templates/networkpolicy.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{- if .Values.networkPolicy.enabled }} -kind: NetworkPolicy -apiVersion: networking.k8s.io/v1 {{ include "nacos.networkPolicy.apiVersion" . }} -metadata: - name: {{ include "nacos.fullname" . }} - namespace: {{ template "nacos.namespace" . }} - labels: {{- include "nacos.labels" . | nindent 4 }} -spec: - podSelector: - matchLabels: {{- include "nacos.matchLabels" . | nindent 6 }} - policyTypes: - - Ingress - ingress: - - ports: - - port: {{ .Values.service.port }} - from: - - podSelector: - matchLabels: - {{ include "nacos.fullname" . }}-client: "true" - - podSelector: - matchLabels: {{- include "nacos.matchLabels" . | nindent 14 }} - - ports: - - port: {{ .Values.service.port }} - from: - - podSelector: - matchLabels: {{- include "nacos.matchLabels" . | nindent 14 }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/nacos/templates/pdb.yaml b/charts/admin-stack/charts/nacos/templates/pdb.yaml deleted file mode 100644 index 869906b4c..000000000 --- a/charts/admin-stack/charts/nacos/templates/pdb.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- $replica := int .Values.replicas }} -{{- if and .Values.podDisruptionBudget.enabled (gt $replica 1) }} -apiVersion: {{ include "nacos.policy.apiVersion" . }} -kind: PodDisruptionBudget -metadata: - name: {{ template "nacos.fullname" . }} - namespace: {{ template "nacos.namespace" . }} - labels: {{- include "nacos.labels" . | nindent 4 }} -spec: - {{- if .Values.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} - {{- end }} - {{- if .Values.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} - {{- end }} - selector: - matchLabels: {{- include "nacos.matchLabels" . | nindent 6 }} -{{- end }} diff --git a/charts/admin-stack/charts/nacos/templates/statefulset.yaml b/charts/admin-stack/charts/nacos/templates/statefulset.yaml deleted file mode 100644 index 563fc2e59..000000000 --- a/charts/admin-stack/charts/nacos/templates/statefulset.yaml +++ /dev/null @@ -1,167 +0,0 @@ -{{- if .Values.enabled }} -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: {{ template "nacos.fullname" . }} - namespace: {{ template "nacos.namespace" . }} -spec: - replicas: {{ .Values.replicas }} - {{- if eq .Values.global.mode "cluster" }} - serviceName: nacos-headless - {{- else }} - serviceName: nacos - {{- end }} - selector: - matchLabels: {{- include "nacos.matchLabels" . | nindent 6 }} - template: - metadata: - labels: - app.kubernetes.io/name: nacos - spec: - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- if and (eq .Values.global.mode "cluster") (.Values.plugin.enable) }} - initContainers: - - name: peer-finder-plugin-install - image: {{.Values.plugin.image.repository }}:{{.Values.plugin.image.tag }} - imagePullPolicy: {{ .Values.plugin.image.pullPolicy }} - volumeMounts: - - mountPath: /home/nacos/plugins/peer-finder - name: data - subPath: peer-finder - {{- end }} - containers: - - name: nacos - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - startupProbe: - initialDelaySeconds: 180 - periodSeconds: 5 - timeoutSeconds: 10 - httpGet: - scheme: HTTP - port: {{ .Values.nacos.service.port }} - path: /nacos/v1/console/health/readiness - livenessProbe: - initialDelaySeconds: 10 - periodSeconds: 5 - timeoutSeconds: 10 - httpGet: - scheme: HTTP - port: {{ .Values.service.port }} - path: /nacos/v1/console/health/liveness - ports: - - name: http - containerPort: {{ .Values.service.port }} - protocol: TCP - - containerPort: {{ add .Values.service.port 1000 }} - name: client-rpc - - containerPort: {{ add .Values.service.port 1001 }} - name: raft-rpc - - containerPort: 7848 - name: old-raft-rpc - resources: - {{- toYaml .Values.resources | nindent 12 }} - env: - - name: NACOS_SERVER_PORT - value: {{ .Values.service.port | quote }} - - name: NACOS_APPLICATION_PORT - value: {{ .Values.service.port | quote }} - - name: PREFER_HOST_MODE - value: {{ .Values.service.port | quote }} - {{- if eq .Values.nacos.mode "standalone" }} - - name: MODE - value: "standalone" - - {{- else if eq .Values.global.mode "cluster" }} - - name: SERVICE_NAME - value: "nacos-hs" - - name: DOMAIN_NAME - value: {{ .Values.nacos.domainName | quote }} - - name: POD_NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - {{- end }} - {{- if eq .Values.storage.type "mysql" }} - - name: SPRING_DATASOURCE_PLATFORM - value: "mysql" - - name: MYSQL_SERVICE_HOST - valueFrom: - configMapKeyRef: - name: nacos-cm - key: mysql.db.host - - name: MYSQL_SERVICE_DB_NAME - valueFrom: - configMapKeyRef: - name: nacos-cm - key: mysql.db.name - - name: MYSQL_SERVICE_PORT - valueFrom: - configMapKeyRef: - name: nacos-cm - key: mysql.port - - name: MYSQL_SERVICE_USER - valueFrom: - configMapKeyRef: - name: nacos-cm - key: mysql.user - - name: MYSQL_SERVICE_PASSWORD - valueFrom: - configMapKeyRef: - name: nacos-cm - key: mysql.password - - name: MYSQL_SERVICE_DB_PARAM - valueFrom: - configMapKeyRef: - name: nacos-cm - key: mysql.param - {{- else }} - - name: EMBEDDED_STORAGE - value: embedded - {{- end }} - volumeMounts: - - name: data - mountPath: /home/nacos/plugins/peer-finder - subPath: peer-finder - - name: data - mountPath: /home/nacos/data - subPath: data - - name: data - mountPath: /home/nacos/logs - subPath: logs - {{- if not .Values.persistence.enabled }} - volumes: - - name: data - emptyDir: {} - {{- end }} - {{- if .Values.persistence.enabled }} - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: - {{- range .Values.persistence.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.size }} - {{ if .Values.persistence.ClaimName }} - claimName: {{ .Values.persistence.ClaimName }} - {{- else -}} - emptyDir: {{ .Values.persistence.emptyDir }} - {{- end }} - {{- end }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/nacos/templates/svc-headless.yaml b/charts/admin-stack/charts/nacos/templates/svc-headless.yaml deleted file mode 100644 index 4ac1bff5f..000000000 --- a/charts/admin-stack/charts/nacos/templates/svc-headless.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if .Values.enabled }} -{{- if and (eq .Values.global.mode "cluster") }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "nacos.name" . }}-headless - namespace: {{ template "nacos.namespace" }} - labels: {{- include "nacos.labels" . | nindent 4 }} -spec: - clusterIP: None - ports: - - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.port }} - protocol: TCP - name: http - - port: {{ add .Values.service.port 1000 }} - name: client-rpc - targetPort: {{ add .Values.service.port 1000 }} - - port: {{ add .Values.service.port 1001 }} - name: raft-rpc - targetPort: {{ add .Values.service.port 1001 }} - - port: 7848 - name: old-raft-rpc - targetPort: 7848 - protocol: TCP - selector: {{- include "nacos.matchLabels" . | nindent 4 }} - {{- end }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/nacos/templates/svc.yaml b/charts/admin-stack/charts/nacos/templates/svc.yaml deleted file mode 100644 index bbcbb5567..000000000 --- a/charts/admin-stack/charts/nacos/templates/svc.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "nacos.name" . }} - namespace: {{ template "nacos.namespace" . }} - labels: {{- include "nacos.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.port }} - protocol: TCP - name: http - - port: {{ add .Values.service.port 1000 }} - name: client-rpc - targetPort: {{add .Values.service.port 1000 }} - - port: {{add .Values.service.port 1001 }} - name: raft-rpc - targetPort: {{add .Values.service.port 1001 }} - - port: 7848 - name: old-raft-rpc - targetPort: 7848 - protocol: TCP - {{- if eq .Values.service.type "NodePort" }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} - selector: {{- include "nacos.matchLabels" . | nindent 4 }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/nacos/values.yaml b/charts/admin-stack/charts/nacos/values.yaml deleted file mode 100644 index 8bd3e6de0..000000000 --- a/charts/admin-stack/charts/nacos/values.yaml +++ /dev/null @@ -1,162 +0,0 @@ -global: - mode: standalone - # mode: cluster - - -image: - registry: docker.io - ## e.g registry.k8s.io - repository: nacos/nacos-server - tag: latest - pullPolicy: IfNotPresent - - -plugin: - enable: true - image: - repository: nacos/nacos-peer-finder-plugin - tag: 1.1 - pullPolicy: IfNotPresent - - -replicas: 1 - - -domainName: cluster.local - - -storage: - type: "" -# type: mysql -# db: -# host: localhost -# name: nacos -# port: 3306 -# username: usernmae -# password: password -# param: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false - - -service: - name: http - ## - ## Service name. - ## - type: NodePort - ## - ## Service type. - ## - port: 8848 - ## - ## Service port. - ## - nodePort: 30000 - ## - ## Service nodePort. - ## - clusterIP: "" - ## - ## Service clusterIP. - ## - loadBalancerIP: "" - ## - ## Service loadBalancerIP. - ## - loadBalancerSourceRanges: "" - ## - ## Service loadBalancerSourceRanges. - ## - externalIPs: "" - ## - ## Service externalIPs. - - -persistence: - enabled: false - accessModes: - - ReadWriteOnce - storageClassName: "" - size: 5Gi - ClaimName: {} - ## persistence emptyDir - emptyDir: {} - - -## See `kubectl explain poddisruptionbudget.spec` for more -## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ -podDisruptionBudget: - enabled: false - minAvailable: 1 - # maxUnavailable: 1 - - -ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - ## - ## - # pathType is only for k8s >= 1.1= - pathType: Prefix - ## - ## - hosts: - - chart-example.local - ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # backend: - # serviceName: ssl-redirect - # servicePort: use-annotation - ## Or for k8s > 1.19 - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: use-annotation - ## - ## - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - - -networkPolicy: - ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. - ## - enabled: false - ## @param networkPolicy.allowExternal Don't require client label for connections - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to dubbo-admin port defined. - ## When true, dubbo-admin will accept connections from any source - ## (with the correct destination port). - ## - ingress: true - ## @param networkPolicy.ingress When true enables the creation - ## an ingress network policy - ## - ## - ## - ## - egress: - ## @param networkPolicy.egress.enabled When enabled, an egress network policy will be - ## created allowing dubbo-admin to connect to external data sources from kubernetes cluster. - enabled: false - ## - ## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress - ports: [] - ## Add ports to the egress by specifying - port: - ## E.X. - ## ports: - ## - port: 80 - ## - port: 443 \ No newline at end of file diff --git a/charts/admin-stack/charts/zookeeper/.helmignore b/charts/admin-stack/charts/zookeeper/.helmignore deleted file mode 100644 index 0e8a0eb36..000000000 --- a/charts/admin-stack/charts/zookeeper/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# 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/ diff --git a/charts/admin-stack/charts/zookeeper/Chart.yaml b/charts/admin-stack/charts/zookeeper/Chart.yaml deleted file mode 100644 index 1cea2e798..000000000 --- a/charts/admin-stack/charts/zookeeper/Chart.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v2 -appVersion: 3.8.1 -description: Apache ZooKeeper provides a reliable, centralized register of configuration - data and services for distributed applications. -home: https://github.com/bitnami/charts/tree/main/bitnami/zookeeper -maintainers: - - name: Bitnami - url: https://github.com/bitnami/charts -name: zookeeper -sources: - - https://zookeeper.apache.org/ -version: 11.1.2 diff --git a/charts/admin-stack/charts/zookeeper/templates/NOTES.txt b/charts/admin-stack/charts/zookeeper/templates/NOTES.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/charts/admin-stack/charts/zookeeper/templates/_helpers.tpl b/charts/admin-stack/charts/zookeeper/templates/_helpers.tpl deleted file mode 100644 index 210ffd34f..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/_helpers.tpl +++ /dev/null @@ -1,62 +0,0 @@ -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "zookeeper.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "zookeeper.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "zookeeper.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 -}} - - -{{/* -Return ZooKeeper Namespace to use -*/}} -{{- define "zookeeper.namespace" -}} -{{- if .Values.namespaceOverride -}} - {{- .Values.namespaceOverride -}} -{{- else -}} - {{- .Release.Namespace -}} -{{- end -}} -{{- end -}} - -{{- define "zookeeper.labels" -}} -app.kubernetes.io/name: {{ include "zookeeper.name" . }} -helm.sh/chart: {{ include "zookeeper.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} - - - -{{/* -Labels to use on sts.spec.selector.matchLabels and svc.spec.selector -*/}} -{{- define "zookeeper.matchLabels" -}} -app.kubernetes.io/name: {{ include "zookeeper.name" . }} -{{- end -}} \ No newline at end of file diff --git a/charts/admin-stack/charts/zookeeper/templates/configmap.yaml b/charts/admin-stack/charts/zookeeper/templates/configmap.yaml deleted file mode 100644 index 8532f0d85..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/configmap.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{- if .Values.enabled }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ printf "%s-scripts" (include "zookeeper.fullname" .) }} - namespace: {{ template "zookeeper.namespace" . }} -data: - setup.sh: |- - #!/bin/bash - - # Execute entrypoint as usual after obtaining ZOO_SERVER_ID - # check ZOO_SERVER_ID in persistent volume via myid - # if not present, set based on POD hostname - if [[ -f "/bitnami/zookeeper/data/myid" ]]; then - export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)" - else - HOSTNAME="$(hostname -s)" - if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then - ORD=${BASH_REMATCH[2]} - export ZOO_SERVER_ID="$((ORD + {{ .Values.minServerId }} ))" - else - echo "Failed to get index from hostname $HOST" - exit 1 - fi - fi - exec /entrypoint.sh /run.sh - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/zookeeper/templates/networkpolicy.yaml b/charts/admin-stack/charts/zookeeper/templates/networkpolicy.yaml deleted file mode 100644 index 7b48c6644..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/networkpolicy.yaml +++ /dev/null @@ -1,38 +0,0 @@ -{{- if .Values.networkPolicy.enabled }} -kind: NetworkPolicy -apiVersion: {{ include "zookeeper.networkPolicy.apiVersion" . }} -metadata: - name: {{ include "zookeeper.fullname" . }} - namespace: {{ template "zookeeper.namespace" . }} - labels: {{- include "zookeeper.labels" . | nindent 4 }} - {{- if .Values.Labels }} - {{- include "zookeeper.tplvalues" ( dict "value" .Values.Labels "context" $ ) | nindent 4 }} - {{- end }} - {{- if .Values.Annotations }} - annotations: {{- include "zookeeper.tplvalues" ( dict "value" .Values.Annotations "context" $ ) | nindent 4 }} - {{- end }} -spec: - podSelector: - matchLabels: {{- include "zookeeper.matchLabels" . | nindent 6 }} - policyTypes: - - Ingress - ingress: - # Allow inbound connections to ZooKeeper - - ports: - - port: {{ .Values.containerPorts.client }} - {{- if not .Values.networkPolicy.allowExternal }} - from: - - podSelector: - matchLabels: - {{ include "zookeeper.fullname" . }}-client: "true" - - podSelector: - matchLabels: {{- include "zookeeper.matchLabels" . | nindent 14 }} - {{- end }} - # Allow internal communications between nodes - - ports: - - port: {{ .Values.containerPorts.follower }} - - port: {{ .Values.containerPorts.election }} - from: - - podSelector: - matchLabels: {{- include "zookeeper.matchLabels" . | nindent 14 }} -{{- end }} diff --git a/charts/admin-stack/charts/zookeeper/templates/pdb.yaml b/charts/admin-stack/charts/zookeeper/templates/pdb.yaml deleted file mode 100644 index c3d799ea1..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/pdb.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{- $replica := int .Values.replicas }} -{{- if and .Values.podDisruptionBudget.enabled (gt $replica 1) }} -apiVersion: {{ include "zookeeper.policy.apiVersion" . }} -kind: PodDisruptionBudget -metadata: - name: {{ template "zookeeper.fullname" . }} - namespace: {{ template "zookeeper.namespace" . }} - labels: {{- include "zookeeper.labels" . | nindent 4 }} - app.kubernetes.io/component: zookeeper - {{- if .Values.Labels }} - {{- include "zookeeper.tplvalues" ( dict "value" .Values.Labels "context" $ ) | nindent 4 }} - {{- end }} - {{- if .Values.Annotations }} - annotations: {{- include "zookeeper.tplvalues" ( dict "value" .Values.Annotations "context" $ ) | nindent 4 }} - {{- end }} -spec: - {{- if .Values.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} - {{- end }} - {{- if .Values.podDisruptionBudget.maxUnavailable }} - maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} - {{- end }} - selector: - matchLabels: {{- include "zookeeper.matchLabels" . | nindent 6 }} - app.kubernetes.io/component: zookeeper -{{- end }} diff --git a/charts/admin-stack/charts/zookeeper/templates/statefulset.yaml b/charts/admin-stack/charts/zookeeper/templates/statefulset.yaml deleted file mode 100644 index 4d07bdfcb..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/statefulset.yaml +++ /dev/null @@ -1,168 +0,0 @@ -{{- if .Values.enabled }} -apiVersion: {{ include "zookeeper.statefulset.apiVersion" . }} -kind: StatefulSet -metadata: - name: {{ template "zookeeper.fullname" . }} - namespace: {{ template "zookeeper.namespace" . }} -spec: - replicas: {{ .Values.replicas }} - selector: - matchLabels: {{- include "zookeeper.matchLabels" . | nindent 6 }} - serviceName: {{ printf "%s-%s" (include "zookeeper.fullname" .) (default "headless" .Values.service.headless.servicenameOverride) | trunc 63 | trimSuffix "-" }} - template: - metadata: - labels: - app.kubernetes.io/name: zookeeper - spec: - containers: - - name: zookeeper - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - {{- if .Values.containerSecurityContext.enabled }} - securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} - {{- end }} - {{- if .Values.resources }} - resources: {{- toYaml .Values.extraresources | nindent 12 }} - {{- end }} - env: - - name: BITNAMI_DEBUG - value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} - - name: ZOO_DATA_LOG_DIR - value: {{ .Values.dataLogDir | quote }} - - name: ZOO_PORT_NUMBER - value: {{ .Values.containerPorts.client | quote }} - - name: ZOO_TICK_TIME - value: {{ .Values.tickTime | quote }} - - name: ZOO_INIT_LIMIT - value: {{ .Values.initLimit | quote }} - - name: ZOO_SYNC_LIMIT - value: {{ .Values.syncLimit | quote }} - - name: ZOO_PRE_ALLOC_SIZE - value: {{ .Values.preAllocSize | quote }} - - name: ZOO_SNAPCOUNT - value: {{ .Values.snapCount | quote }} - - name: ZOO_MAX_CLIENT_CNXNS - value: {{ .Values.maxClientCnxns | quote }} - - name: ZOO_4LW_COMMANDS_WHITELIST - value: {{ .Values.fourlwCommandsWhitelist | quote }} - - name: ZOO_LISTEN_ALLIPS_ENABLED - value: {{ ternary "yes" "no" .Values.listenOnAllIPs | quote }} - - name: ZOO_AUTOPURGE_INTERVAL - value: {{ .Values.autopurge.purgeInterval | quote }} - - name: ZOO_AUTOPURGE_RETAIN_COUNT - value: {{ .Values.autopurge.snapRetainCount | quote }} - - name: ZOO_MAX_SESSION_TIMEOUT - value: {{ .Values.maxSessionTimeout | quote }} - - name: ZOO_ENABLE_AUTH - value: {{ ternary "yes" "no" .Values.auth.client.enabled | quote }} - - name: ZOO_SERVERS - {{- $replicaCount := int .Values.replicas }} - {{- $minServerId := int .Values.minServerId }} - {{- $followerPort := int .Values.containerPorts.follower }} - {{- $electionPort := int .Values.containerPorts.election }} - {{- $releaseNamespace := include "zookeeper.namespace" . }} - {{- $zookeeperFullname := include "zookeeper.fullname" . }} - {{- $zookeeperHeadlessServiceName := printf "%s-%s" $zookeeperFullname "headless" | trunc 63 }} - {{- $clusterDomain := .Values.clusterDomain }} - value: {{ range $i, $e := until $replicaCount }}{{ $zookeeperFullname }}-{{ $e }}.{{ $zookeeperHeadlessServiceName }}.{{ $releaseNamespace }}.svc.{{ $clusterDomain }}:{{ $followerPort }}:{{ $electionPort }}::{{ add $e $minServerId }} {{ end }} - - name: ZOO_HEAP_SIZE - value: {{ .Values.heapSize | quote }} - - name: ZOO_LOG_LEVEL - value: {{ .Values.logLevel | quote }} - - name: ALLOW_ANONYMOUS_LOGIN - value: {{ ternary "no" "yes" .Values.auth.client.enabled | quote }} - ports: - {{- if not .Values.service.disableBaseClientPort }} - - name: client - containerPort: {{ .Values.containerPorts.client }} - {{- end }} - - name: follower - containerPort: {{ .Values.containerPorts.follower }} - - name: election - containerPort: {{ .Values.containerPorts.election }} - volumeMounts: - - name: scripts - mountPath: /scripts/setup.sh - subPath: setup.sh - - name: data - mountPath: /bitnami/zookeeper - {{- if .Values.dataLogDir }} - - name: data-log - mountPath: {{ .Values.dataLogDir }} - {{- end }} - {{- if or .Values.configuration .Values.existingConfigmap }} - - name: config - mountPath: /opt/bitnami/zookeeper/conf/zoo.cfg - subPath: zoo.cfg - {{- end }} - volumes: - - name: scripts - configMap: - name: {{ printf "%s-scripts" (include "zookeeper.fullname" .) }} - defaultMode: 0755 - {{- if or .Values.configuration .Values.existingConfigmap }} - - name: config - configMap: - name: {{ include "zookeeper.configmapName" . }} - {{- end }} - {{- if and .Values.persistence.enabled .Values.persistence.existingClaim }} - - name: data - persistentVolumeClaim: - claimName: {{ printf "%s" (tpl .Values.persistence.existingClaim .) }} - {{- else if not .Values.persistence.enabled }} - - name: data - emptyDir: {} - {{- end }} - {{- if and .Values.persistence.enabled .Values.persistence.dataLogDir.existingClaim }} - - name: data-log - persistentVolumeClaim: - claimName: {{ printf "%s" (tpl .Values.persistence.dataLogDir.existingClaim .) }} - {{- else if and ( not .Values.persistence.enabled ) .Values.dataLogDir }} - - name: data-log - emptyDir: {} - {{- end }} - {{- if .Values.extraVolumes }} - {{- include "zookeeper.tplvalues" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }} - {{- end }} - {{- if and .Values.persistence.enabled (not (and .Values.persistence.existingClaim .Values.persistence.dataLogDir.existingClaim) ) }} - volumeClaimTemplates: - {{- if not .Values.persistence.existingClaim }} - - metadata: - name: data - {{- if .Values.persistence.annotations }} - annotations: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.annotations "context" $) | nindent 10 }} - {{- end }} - {{- if .Values.persistence.labels }} - labels: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.labels "context" $) | nindent 10 }} - {{- end }} - spec: - accessModes: - {{- range .Values.persistence.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} - {{- include "zookeeper.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 8 }} - {{- if .Values.persistence.selector }} - selector: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.selector "context" $) | nindent 10 }} - {{- end }} - {{- end }} - {{- if and (not .Values.persistence.dataLogDir.existingClaim) .Values.dataLogDir }} - - metadata: - name: data-log - spec: - accessModes: - {{- range .Values.persistence.accessModes }} - - {{ . | quote }} - {{- end }} - resources: - requests: - storage: {{ .Values.persistence.dataLogDir.size | quote }} - {{- include "zookeeper.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 8 }} - {{- if .Values.persistence.dataLogDir.selector }} - selector: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.dataLogDir.selector "context" $) | nindent 10 }} - {{- end }} - {{- end }} - {{- end }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/zookeeper/templates/svc-headless.yaml b/charts/admin-stack/charts/zookeeper/templates/svc-headless.yaml deleted file mode 100644 index 008a04bde..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/svc-headless.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if .Values.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "zookeeper.name" . }}-headless - namespace: {{ template "zookeeper.namespace" . }} - labels: {{- include "zookeeper.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - clusterIP: None - ports: - - name: tcp-client - port: {{ .Values.service.ports.client }} - targetPort: client - - name: tcp-follower - port: {{ .Values.service.ports.follower }} - targetPort: follower - - name: tcp-election - port: {{ .Values.service.ports.election }} - targetPort: election - selector: {{- include "zookeeper.matchLabels" . | nindent 4 }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/zookeeper/templates/svc.yaml b/charts/admin-stack/charts/zookeeper/templates/svc.yaml deleted file mode 100644 index a08c07b0a..000000000 --- a/charts/admin-stack/charts/zookeeper/templates/svc.yaml +++ /dev/null @@ -1,48 +0,0 @@ -{{- if .Values.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "zookeeper.name" . }} - namespace: {{ template "zookeeper.namespace" . }} - labels: {{- include "zookeeper.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} - clusterIP: {{ .Values.service.clusterIP }} - {{- end }} - {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }} - externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} - {{- end }} - {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerSourceRanges)) }} - loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }} - {{- end }} - {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }} - loadBalancerIP: {{ .Values.service.loadBalancerIP }} - {{- end }} - {{- if .Values.service.sessionAffinity }} - sessionAffinity: {{ .Values.service.sessionAffinity }} - {{- end }} - {{- if .Values.service.sessionAffinityConfig }} - sessionAffinityConfig: {{- include "zookeeper.tplvalues" (dict "value" .Values.service.sessionAffinityConfig "context" $) | nindent 4 }} - {{- end }} - ports: - {{- if not .Values.service.disableBaseClientPort }} - - name: tcp-client - port: {{ .Values.service.ports.client }} - targetPort: client - {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.client)) }} - nodePort: {{ .Values.service.nodePorts.client }} - {{- else if eq .Values.service.type "ClusterIP" }} - {{- end }} - {{- end }} - - name: tcp-follower - port: {{ .Values.service.ports.follower }} - targetPort: follower - - name: tcp-election - port: {{ .Values.service.ports.election }} - targetPort: election - {{- if .Values.service.extraPorts }} - {{- include "zookeeper.tplvalues" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }} - {{- end }} - selector: {{- include "zookeeper.matchLabels" . | nindent 4 }} - {{- end }} \ No newline at end of file diff --git a/charts/admin-stack/charts/zookeeper/values.yaml b/charts/admin-stack/charts/zookeeper/values.yaml deleted file mode 100644 index 670779ead..000000000 --- a/charts/admin-stack/charts/zookeeper/values.yaml +++ /dev/null @@ -1,499 +0,0 @@ -image: - repository: bitnami/zookeeper - tag: 3.8.1-debian-11-r0 - digest: "" - debug: false - pullPolicy: IfNotPresent - -replicas: 1 - -persistence: - ## @param persistence.enabled Enable ZooKeeper data persistence using PVC. If false, use emptyDir - ## - enabled: false - ## @param persistence.existingClaim Name of an existing PVC to use (only when deploying a single replica) - ## - existingClaim: "" - ## @param persistence.storageClass PVC Storage Class for ZooKeeper data volume - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - storageClass: "" - ## @param persistence.accessModes PVC Access modes - ## - accessModes: - - ReadWriteOnce - ## @param persistence.size PVC Storage Request for ZooKeeper data volume - ## - size: 8Gi - ## @param persistence.labels Labels for the PVC - ## - labels: {} - ## @param persistence.selector Selector to match an existing Persistent Volume for ZooKeeper's data PVC - ## If set, the PVC can't have a PV dynamically provisioned for it - ## E.g. - ## selector: - ## matchLabels: - ## app: my-app - ## - selector: {} - ## Persistence for a dedicated data log directory - ## - dataLogDir: - ## @param persistence.dataLogDir.size PVC Storage Request for ZooKeeper's dedicated data log directory - ## - size: 8Gi - ## @param persistence.dataLogDir.existingClaim Provide an existing `PersistentVolumeClaim` for ZooKeeper's data log directory - ## If defined, PVC must be created manually before volume will be bound - ## The value is evaluated as a template - ## - existingClaim: "" - ## @param persistence.dataLogDir.selector Selector to match an existing Persistent Volume for ZooKeeper's data log PVC - ## If set, the PVC can't have a PV dynamically provisioned for it - ## E.g. - ## selector: - ## matchLabels: - ## app: my-app - ## - selector: {} - - -## Create HorizontalPodAutoscaler object for deployment type -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 5 - targetCPU: "60" - targetMemory: "" - behavior: {} - - -service: - type: ClusterIP - ports: - client: 2181 - follower: 2888 - election: 3888 - ## Node ports to expose - ## NOTE: choose port between <30000-32767> - ## @param service.nodePorts.client Node port for clients - ## @param service.nodePorts.tls Node port for TLS - ## - nodePorts: - client: "" - tls: "" - ## @param service.disableBaseClientPort Remove client port from service definitions. - ## - disableBaseClientPort: false - ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin - ## Values: ClientIP or None - ## ref: https://kubernetes.io/docs/user-guide/services/ - ## - sessionAffinity: None - ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity - ## sessionAffinityConfig: - ## clientIP: - ## timeoutSeconds: 300 - ## - sessionAffinityConfig: {} - ## @param service.clusterIP ZooKeeper service Cluster IP - ## e.g.: - ## clusterIP: None - ## - clusterIP: "" - ## @param service.loadBalancerIP ZooKeeper service Load Balancer IP - ## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer - ## - loadBalancerIP: "" - ## @param service.loadBalancerSourceRanges ZooKeeper service Load Balancer sources - ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service - ## e.g: - ## loadBalancerSourceRanges: - ## - 10.10.10.0/24 - ## - loadBalancerSourceRanges: [] - ## @param service.externalTrafficPolicy ZooKeeper service external traffic policy - ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip - ## - externalTrafficPolicy: Cluster - ## @param service.annotations Additional custom annotations for ZooKeeper service - ## - annotations: {} - ## @param service.extraPorts Extra ports to expose in the ZooKeeper service (normally used with the `sidecar` value) - ## - extraPorts: [] - ## @param service.headless.annotations Annotations for the Headless Service - ## @param service.headless.publishNotReadyAddresses If the ZooKeeper headless service should publish DNS records for not ready pods - ## @param service.headless.servicenameOverride String to partially override headless service name - ## - headless: - publishNotReadyAddresses: true - annotations: {} - servicenameOverride: "" - - -## @param containerPorts.client ZooKeeper client container port -## @param containerPorts.tls ZooKeeper TLS container port -## @param containerPorts.follower ZooKeeper follower container port -## @param containerPorts.election ZooKeeper election container port -## -containerPorts: - client: 2181 - tls: 3181 - follower: 2888 - election: 3888 -## Configure extra options for ZooKeeper containers' liveness, readiness and startup probes -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes -## @param livenessProbe.enabled Enable livenessProbe on ZooKeeper containers -## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe -## @param livenessProbe.periodSeconds Period seconds for livenessProbe -## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe -## @param livenessProbe.failureThreshold Failure threshold for livenessProbe -## @param livenessProbe.successThreshold Success threshold for livenessProbe -## @param livenessProbe.probeCommandTimeout Probe command timeout for livenessProbe -## -livenessProbe: - enabled: true - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 5 - failureThreshold: 6 - successThreshold: 1 - probeCommandTimeout: 2 -## @param readinessProbe.enabled Enable readinessProbe on ZooKeeper containers -## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe -## @param readinessProbe.periodSeconds Period seconds for readinessProbe -## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe -## @param readinessProbe.failureThreshold Failure threshold for readinessProbe -## @param readinessProbe.successThreshold Success threshold for readinessProbe -## @param readinessProbe.probeCommandTimeout Probe command timeout for readinessProbe -## -readinessProbe: - enabled: true - initialDelaySeconds: 5 - periodSeconds: 10 - timeoutSeconds: 5 - failureThreshold: 6 - successThreshold: 1 - probeCommandTimeout: 2 -## @param startupProbe.enabled Enable startupProbe on ZooKeeper containers -## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe -## @param startupProbe.periodSeconds Period seconds for startupProbe -## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe -## @param startupProbe.failureThreshold Failure threshold for startupProbe -## @param startupProbe.successThreshold Success threshold for startupProbe -## -startupProbe: - enabled: false - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 1 - failureThreshold: 15 - successThreshold: 1 -## @param customLivenessProbe Custom livenessProbe that overrides the default one -## -customLivenessProbe: {} -## @param customReadinessProbe Custom readinessProbe that overrides the default one -## -customReadinessProbe: {} -## @param customStartupProbe Custom startupProbe that overrides the default one -## -customStartupProbe: {} -## @param lifecycleHooks for the ZooKeeper container(s) to automate configuration before or after startup -## -lifecycleHooks: {} -## ZooKeeper resource requests and limits -## ref: https://kubernetes.io/docs/user-guide/compute-resources/ -## @param resources.limits The resources limits for the ZooKeeper containers -## @param resources.requests.memory The requested memory for the ZooKeeper containers -## @param resources.requests.cpu The requested cpu for the ZooKeeper containers -## -resources: - limits: {} - requests: - memory: 256Mi - cpu: 250m -## Configure Pods Security Context -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod -## @param podSecurityContext.enabled Enabled ZooKeeper pods' Security Context -## @param podSecurityContext.fsGroup Set ZooKeeper pod's Security Context fsGroup -## -podSecurityContext: - enabled: true - fsGroup: 1001 -## Configure Container Security Context -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container -## @param containerSecurityContext.enabled Enabled ZooKeeper containers' Security Context -## @param containerSecurityContext.runAsUser Set ZooKeeper containers' Security Context runAsUser -## @param containerSecurityContext.runAsNonRoot Set ZooKeeper containers' Security Context runAsNonRoot -## @param containerSecurityContext.allowPrivilegeEscalation Force the child process to be run as nonprivilege -## -containerSecurityContext: - enabled: true - runAsUser: 1001 - runAsNonRoot: true - allowPrivilegeEscalation: false -## @param hostAliases ZooKeeper pods host aliases -## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ -## -hostAliases: [] -## @param podLabels Extra labels for ZooKeeper pods -## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ -## - - -extraVolumes: [] -## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ZooKeeper container(s) -## Example Use Case: mount certificates to enable TLS -## e.g: -## extraVolumeMounts: -## - name: zookeeper-keystore -## mountPath: /certs/keystore -## readOnly: true -## - name: zookeeper-truststore -## mountPath: /certs/truststore -## readOnly: true -## -extraVolumeMounts: [] -## @param sidecars Add additional sidecar containers to the ZooKeeper pod(s) -## e.g: -## sidecars: -## - name: your-image-name -## image: your-image -## imagePullPolicy: Always -## ports: -## - name: portname -## containerPort: 1234 -## -## @param tickTime Basic time unit (in milliseconds) used by ZooKeeper for heartbeats -## -## - - -auth: - client: - ## @param auth.client.enabled Enable ZooKeeper client-server authentication. It uses SASL/Digest-MD5 - ## - enabled: false - ## @param auth.client.clientUser User that will use ZooKeeper clients to auth - ## - clientUser: "" - ## @param auth.client.clientPassword Password that will use ZooKeeper clients to auth - ## - clientPassword: "" - ## @param auth.client.serverUsers Comma, semicolon or whitespace separated list of user to be created - ## Specify them as a string, for example: "user1,user2,admin" - ## - serverUsers: "" - ## @param auth.client.serverPasswords Comma, semicolon or whitespace separated list of passwords to assign to users when created - ## Specify them as a string, for example: "pass4user1, pass4user2, pass4admin" - ## - serverPasswords: "" - ## @param auth.client.existingSecret Use existing secret (ignores previous passwords) - ## - existingSecret: "" - quorum: - ## @param auth.quorum.enabled Enable ZooKeeper server-server authentication. It uses SASL/Digest-MD5 - ## - enabled: false - ## @param auth.quorum.learnerUser User that the ZooKeeper quorumLearner will use to authenticate to quorumServers. - ## Note: Make sure the user is included in auth.quorum.serverUsers - ## - learnerUser: "" - ## @param auth.quorum.learnerPassword Password that the ZooKeeper quorumLearner will use to authenticate to quorumServers. - ## - learnerPassword: "" - ## @param auth.quorum.serverUsers Comma, semicolon or whitespace separated list of users for the quorumServers. - ## Specify them as a string, for example: "user1,user2,admin" - ## - serverUsers: "" - ## @param auth.quorum.serverPasswords Comma, semicolon or whitespace separated list of passwords to assign to users when created - ## Specify them as a string, for example: "pass4user1, pass4user2, pass4admin" - ## - serverPasswords: "" - ## @param auth.quorum.existingSecret Use existing secret (ignores previous passwords) - ## - existingSecret: "" -## @param tickTime Basic time unit (in milliseconds) used by ZooKeeper for heartbeats -## -tickTime: 2000 -## @param initLimit ZooKeeper uses to limit the length of time the ZooKeeper servers in quorum have to connect to a leader -## -initLimit: 10 -## @param syncLimit How far out of date a server can be from a leader -## -syncLimit: 5 -## @param preAllocSize Block size for transaction log file -## -preAllocSize: 65536 -## @param snapCount The number of transactions recorded in the transaction log before a snapshot can be taken (and the transaction log rolled) -## -snapCount: 100000 -## @param maxClientCnxns Limits the number of concurrent connections that a single client may make to a single member of the ZooKeeper ensemble -## -maxClientCnxns: 60 -## @param maxSessionTimeout Maximum session timeout (in milliseconds) that the server will allow the client to negotiate -## Defaults to 20 times the tickTime -## -maxSessionTimeout: 40000 -## @param heapSize Size (in MB) for the Java Heap options (Xmx and Xms) -## This env var is ignored if Xmx an Xms are configured via `jvmFlags` -## -heapSize: 1024 -## @param fourlwCommandsWhitelist A list of comma separated Four Letter Words commands that can be executed -## -fourlwCommandsWhitelist: srvr, mntr, ruok -## @param minServerId Minimal SERVER_ID value, nodes increment their IDs respectively -## Servers increment their ID starting at this minimal value. -## E.g., with `minServerId=10` and 3 replicas, server IDs will be 10, 11, 12 for z-0, z-1 and z-2 respectively. -## -minServerId: 1 -## @param listenOnAllIPs Allow ZooKeeper to listen for connections from its peers on all available IP addresses -## -listenOnAllIPs: false -## Ongoing data directory cleanup configuration -## -autopurge: - ## @param autopurge.snapRetainCount The most recent snapshots amount (and corresponding transaction logs) to retain - ## - snapRetainCount: 3 - ## @param autopurge.purgeInterval The time interval (in hours) for which the purge task has to be triggered - ## Set to a positive integer to enable the auto purging - ## - purgeInterval: 0 -## @param logLevel Log level for the ZooKeeper server. ERROR by default -## Have in mind if you set it to INFO or WARN the ReadinessProve will produce a lot of logs -## -logLevel: ERROR -## @param jvmFlags Default JVM flags for the ZooKeeper process -## -jvmFlags: "" -## @param dataLogDir Dedicated data log directory -## This allows a dedicated log device to be used, and helps avoid competition between logging and snapshots. -## E.g. -## dataLogDir: /bitnami/zookeeper/dataLog -## -dataLogDir: "" -## -## -configuration: "" -## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for ZooKeeper -## NOTE: When it's set the `configuration` parameter is ignored -## -existingConfigmap: "" -## @param extraEnvVars Array with extra environment variables to add to ZooKeeper nodes -## e.g: -## extraEnvVars: -## - name: FOO -## value: "bar" -## -## -## @param clusterDomain Kubernetes Cluster Domain -## -clusterDomain: cluster.local -## @param extraDeploy Extra objects to deploy (evaluated as a template) -## -extraDeploy: [] -## @param commonLabels Add labels to all the deployed resources -## -Labels: {} -## @param commonAnnotations Add annotations to all the deployed resources -## -Annotations: {} -## @param namespaceOverride Override namespace for ZooKeeper resources -## Useful when including ZooKeeper as a chart dependency, so it can be released into a different namespace than the parent -## -diagnosticMode: - ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden) - ## - enabled: false - ## @param diagnosticMode.command Command to override all containers in the statefulset - ## - command: - - sleep - ## @param diagnosticMode.args Args to override all containers in the statefulset - ## - args: - - infinity - -## See `kubectl explain poddisruptionbudget.spec` for more -## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ -podDisruptionBudget: - enabled: false - minAvailable: 1 - # maxUnavailable: 1 - - -ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - ## - ## - # pathType is only for k8s >= 1.1= - pathType: Prefix - ## - ## - hosts: - - chart-example.local - ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # backend: - # serviceName: ssl-redirect - # servicePort: use-annotation - ## Or for k8s > 1.19 - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: use-annotation - ## - ## - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - - -networkPolicy: - ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now. - ## - enabled: false - ## @param networkPolicy.allowExternal Don't require client label for connections - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to dubbo-admin port defined. - ## When true, dubbo-admin will accept connections from any source - ## (with the correct destination port). - ## - ingress: true - ## @param networkPolicy.ingress When true enables the creation - ## an ingress network policy - ## - ## - ## - ## - egress: - ## @param networkPolicy.egress.enabled When enabled, an egress network policy will be - ## created allowing dubbo-admin to connect to external data sources from kubernetes cluster. - enabled: false - ## - ## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress - ports: [] - ## Add ports to the egress by specifying - port: - ## E.X. - ## ports: - ## - port: 80 - ## - port: 443 \ No newline at end of file diff --git a/charts/admin-stack/templates/tpl/_helpers.tpl b/charts/admin-stack/templates/tpl/_helpers.tpl deleted file mode 100644 index 9f30c9390..000000000 --- a/charts/admin-stack/templates/tpl/_helpers.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{{/* -Formats imagePullSecrets. Input is (dict "root" . "imagePullSecrets" .{specific imagePullSecrets}) -*/}} -{{- define "dubbo-admin.imagePullSecrets" -}} -{{- $root := .root }} -{{- range (concat .root.Values.global.imagePullSecrets .imagePullSecrets) }} -{{- if eq (typeOf .) "map[string]interface {}" }} -- {{ toYaml (dict "name" (tpl .name $root)) | trim }} -{{- else }} -- name: {{ tpl . $root }} -{{- end }} -{{- end }} -{{- end }} - - -{{/* -Return the ZooKeeper configuration ConfigMap name -*/}} -{{- define "zookeeper.configmapName" -}} -{{- if .Values.existingConfigmap -}} - {{- printf "%s" (tpl .Values.existingConfigmap $) -}} -{{- else -}} - {{- printf "%s" (include "zookeeper.fullname" .) -}} -{{- end -}} -{{- end -}} - - diff --git a/charts/admin-stack/templates/tpl/_ingress.tpl b/charts/admin-stack/templates/tpl/_ingress.tpl deleted file mode 100644 index 0e63964a8..000000000 --- a/charts/admin-stack/templates/tpl/_ingress.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{{/* -Return if ingress is stable. -*/}} -{{- define "dubbo-admin.ingress.isStable" -}} -{{- eq (include "dubbo-admin.ingress.apiVersion" .) "networking.k8s.io/v1" }} -{{- end }} - - -{{/* -Return if ingress supports ingressClassName. -*/}} -{{- define "dubbo-admin.ingress.supportsIngressClassName" -}} -{{- or (eq (include "dubbo-admin.ingress.isStable" .) "true") (and (eq (include "dubbo-admin.ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18-0" .Capabilities.KubeVersion.Version)) }} -{{- end }} - - -{{/* -Return if ingress supports pathType. -*/}} -{{- define "dubbo-admin.ingress.supportsPathType" -}} -{{- or (eq (include "dubbo-admin.ingress.isStable" .) "true") (and (eq (include "dubbo-admin.ingress.apiVersion" .) "networking.k8s.io/v1beta1") (semverCompare ">= 1.18-0" .Capabilities.KubeVersion.Version)) }} -{{- end }} \ No newline at end of file diff --git a/charts/admin-stack/templates/tpl/_kubeversions.tpl b/charts/admin-stack/templates/tpl/_kubeversions.tpl deleted file mode 100644 index f403a0cd4..000000000 --- a/charts/admin-stack/templates/tpl/_kubeversions.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{{/* -Return the target Kubernetes version -*/}} -{{- define "zookeeper.kubeVersion" -}} -{{- if .Values.global }} - {{- if .Values.global.kubeVersion }} - {{- .Values.global.kubeVersion -}} - {{- else }} - {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} - {{- end -}} -{{- else }} -{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} -{{- end -}} -{{- end -}} - - -{{/* -Return the target Kubernetes version -*/}} -{{- define "nacos.kubeVersion" -}} -{{- if .Values.global }} - {{- if .Values.global.kubeVersion }} - {{- .Values.global.kubeVersion -}} - {{- else }} - {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} - {{- end -}} -{{- else }} -{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} -{{- end -}} -{{- end -}} -{{/* -Return the appropriate apiVersion for statefulset. -*/}} \ No newline at end of file diff --git a/charts/admin-stack/templates/tpl/_storages.tpl b/charts/admin-stack/templates/tpl/_storages.tpl deleted file mode 100644 index b92c9cabc..000000000 --- a/charts/admin-stack/templates/tpl/_storages.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Return the proper Storage Class -{{ include "common.storage.class" ( dict "persistence" .Values.path.to.the.persistence "global" $) }} -*/}} -{{- define "zookeeper.storage.class" -}} - -{{- $storageClass := .persistence.storageClass -}} -{{- if .global -}} - {{- if .global.storageClass -}} - {{- $storageClass = .global.storageClass -}} - {{- end -}} -{{- end -}} - -{{- if $storageClass -}} - {{- if (eq "-" $storageClass) -}} - {{- printf "storageClassName: \"\"" -}} - {{- else }} - {{- printf "storageClassName: %s" $storageClass -}} - {{- end -}} -{{- end -}} - -{{- end -}} \ No newline at end of file diff --git a/charts/admin-stack/templates/tpl/_tplvalues.tpl b/charts/admin-stack/templates/tpl/_tplvalues.tpl deleted file mode 100644 index 2fec36290..000000000 --- a/charts/admin-stack/templates/tpl/_tplvalues.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Renders a value that contains template. -Usage: -{{ include "zookeeper.tplvalues" ( dict "value" .Values.path.to.the.Value "context" $) }} -*/}} -{{- define "zookeeper.tplvalues" -}} - {{- if typeIs "string" .value }} - {{- tpl .value .context }} - {{- else }} - {{- tpl (.value | toYaml) .context }} - {{- end }} -{{- end -}} \ No newline at end of file diff --git a/charts/admin-stack/templates/tpl/_versions.tpl b/charts/admin-stack/templates/tpl/_versions.tpl deleted file mode 100644 index 82611a45d..000000000 --- a/charts/admin-stack/templates/tpl/_versions.tpl +++ /dev/null @@ -1,96 +0,0 @@ -{{/* -Return the appropriate apiVersion for rbac. -*/}} -{{- define "dubbo-admin.rbac.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" }} -{{- print "rbac.authorization.k8s.io/v1" }} -{{- else }} -{{- print "rbac.authorization.k8s.io/v1beta1" }} -{{- end }} -{{- end }} - - -{{/* -Return the appropriate apiVersion for ingress. -*/}} -{{- define "dubbo-admin.ingress.apiVersion" -}} -{{- if and ($.Capabilities.APIVersions.Has "networking.k8s.io/v1") (semverCompare ">= 1.19-0" .Capabilities.KubeVersion.Version) }} -{{- print "networking.k8s.io/v1" }} -{{- else if $.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }} -{{- print "networking.k8s.io/v1beta1" }} -{{- else }} -{{- print "extensions/v1beta1" }} -{{- end }} -{{- end }} - - -{{/* -Return the appropriate apiVersion for podDisruptionBudget. -*/}} -{{- define "dubbo-admin.podDisruptionBudget.apiVersion" -}} -{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }} -{{- print "policy/v1" }} -{{- else }} -{{- print "policy/v1beta1" }} -{{- end }} -{{- end }} - - -{{- define "zookeeper.statefulset.apiVersion" -}} -{{- if semverCompare "<1.14-0" (include "zookeeper.kubeVersion" .) -}} -{{- print "apps/v1beta1" -}} -{{- else -}} -{{- print "apps/v1" -}} -{{- end -}} -{{- end -}} - - -{{/* -Return the appropriate apiVersion for networkpolicy. -*/}} -{{- define "zookeeper.networkPolicy.apiVersion" -}} -{{- if semverCompare "<1.7-0" (include "zookeeper.kubeVersion" .) -}} -{{- print "extensions/v1beta1" -}} -{{- else -}} -{{- print "networking.k8s.io/v1" -}} -{{- end -}} -{{- end -}} - - -{{/* -Return the appropriate apiVersion for networkpolicy. -*/}} -{{- define "nacos.networkPolicy.apiVersion" -}} -{{- if semverCompare "<1.7-0" (include "nacos.kubeVersion" .) -}} -{{- print "extensions/v1beta1" -}} -{{- else -}} -{{- print "networking.k8s.io/v1" -}} -{{- end -}} -{{- end -}} - - -{{/* -Return the appropriate apiVersion for poddisruptionbudget. -*/}} -{{- define "zookeeper.policy.apiVersion" -}} -{{- if semverCompare "<1.21-0" (include "zookeeper.kubeVersion" .) -}} -{{- print "policy/v1beta1" -}} -{{- else -}} -{{- print "policy/v1" -}} -{{- end -}} -{{- end -}} - - -{{/* -Return the appropriate apiVersion for poddisruptionbudget. -*/}} -{{- define "nacos.policy.apiVersion" -}} -{{- if semverCompare "<1.21-0" (include "nacos.kubeVersion" .) -}} -{{- print "policy/v1beta1" -}} -{{- else -}} -{{- print "policy/v1" -}} -{{- end -}} -{{- end -}} - - - diff --git a/charts/admin-stack/values.yaml b/charts/admin-stack/values.yaml deleted file mode 100644 index f26689c88..000000000 --- a/charts/admin-stack/values.yaml +++ /dev/null @@ -1,66 +0,0 @@ -nacos: - enabled: false - default: false - - -zookeeper: - enabled: true - default: true - - -grafana: - enabled: false - default: false - - -dubbo-admin: - enabled: true - default: true - properties: - admin.registry.address: zookeeper://zookeeper:2181 - admin.config-center: zookeeper://zookeeper:2181 - admin.metadata-report.address: zookeeper://zookeeper:2181 - admin.root.user.name: root - admin.root.user.password: root - admin.check.sessionTimeoutMilli: 3600000 - server.compression.enabled: true - server.compression.mime-types: text/css,text/javascript,application/javascript - server.compression.min-response-size: 10240 - admin.check.tokenTimeoutMilli: 3600000 - admin.check.signSecret: 86295dd0c4ef69a1036b0b0c15158d77 - dubbo.application.name: dubbo-admin - dubbo.registry.address: ${admin.registry.address} - spring.datasource.url: jdbc:h2:mem:~/dubbo-admin;MODE=MYSQL; - spring.datasource.username: sa - spring.datasource.password: - mybatis-plus.global-config.db-config.id-type: none - dubbo.application.logger: slf4j - - # nacos config, add parameters to url like username=nacos&password=nacos - # admin.registry.address: nacos://nacos:8848?group=DEFAULT_GROUP&namespace=public - # admin.config-center: nacos://nacos:8848?group=dubbo - # admin.metadata-report.address: nacos://nacos:8848?group=dubbo - - - # group (Deprecated it is recommended to use URL to add parameters,will be removed in the future) - # admin.registry.group: dubbo - # admin.config-center.group: dubbo - # admin.metadata-report.group: dubbo - - # namespace used by nacos.(Deprecated it is recommended to use URL to add parameters,will be removed in the future) - # admin.registry.namespace: public - # admin.config-center.namespace: public - # admin.metadata-report.namespace: public - - # apollo config - # admin.config-center: apollo://localhost:8070?token=e16e5cd903fd0c97a116c873b448544b9d086de9&app.id=test&env=dev&cluster=default&namespace=dubbo - # admin.apollo.token: e16e5cd903fd0c97a116c873b448544b9d086de9 - # admin.apollo.appId: test - # admin.apollo.env: dev - # admin.apollo.cluster: default - - # mysql - # spring.datasource.driver-class-name: com.mysql.jdbc.Driver - # spring.datasource.url: jdbc:mysql://localhost:3306/dubbo-admin?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true - # spring.datasource.username: root - # spring.datasource.password: mysql \ No newline at end of file diff --git a/charts/admin-stack/.helmignore b/charts/dubbo-admin/.helmignore similarity index 100% rename from charts/admin-stack/.helmignore rename to charts/dubbo-admin/.helmignore diff --git a/charts/admin-stack/Chart.yaml b/charts/dubbo-admin/Chart.yaml similarity index 100% rename from charts/admin-stack/Chart.yaml rename to charts/dubbo-admin/Chart.yaml diff --git a/charts/admin-stack/README.md b/charts/dubbo-admin/README.md similarity index 57% rename from charts/admin-stack/README.md rename to charts/dubbo-admin/README.md index 4439046bc..070f9b321 100644 --- a/charts/admin-stack/README.md +++ b/charts/dubbo-admin/README.md @@ -1,5 +1,3 @@ -> **Security Notice: Please remember to change the `admin.check.signSecret`, `admin.root.user.name` and `admin.root.user.password` value before you deploy to production environment.** - ## 1. Project download to local ``` git clone https://github.com/apache/dubbo-admin.git diff --git a/charts/dubbo-admin/templates/_helpers.tpl b/charts/dubbo-admin/templates/_helpers.tpl new file mode 100644 index 000000000..91eab011c --- /dev/null +++ b/charts/dubbo-admin/templates/_helpers.tpl @@ -0,0 +1,41 @@ +{{/* +*/}} +{{- define "dubbo-admin.name" -}} +{{- if .Values.nameOverride }} +{{- else }} +{{- printf "dubbo-admin" -}} +{{- end -}} +{{- end -}} + +{{- define "dubbo-admin.namespace" -}} +{{- if .Values.namespaceOverride }} +{{- else }} +{{- printf "default" }} +{{- end -}} +{{- end -}} + +{{/* +*/}} +{{- define "dubbo-admin.labels" -}} +app.kubernetes.io/name: {{ template "dubbo-admin.name" . }} +helm.sh/chart: {{ include "dubbo-admin.name" . }}-{{ .Values.image.tag }} +app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +*/}} +{{- define "dubbo-admin.matchLabels" -}} +app.kubernetes.io/name: {{ template "dubbo-admin.name" . }} +helm.sh/chart: {{ include "dubbo-admin.name" . }}-{{ .Values.image.tag }} +app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{- define "dubbo-admin.podDisruptionBudget.apiVersion" -}} +{{- if $.Capabilities.APIVersions.Has "policy/v1/PodDisruptionBudget" }} +{{- print "policy/v1" }} +{{- else }} +{{- print "policy/v1beta1" }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/dubbo-admin/templates/cm.yaml b/charts/dubbo-admin/templates/cm.yaml new file mode 100644 index 000000000..410ecc4d8 --- /dev/null +++ b/charts/dubbo-admin/templates/cm.yaml @@ -0,0 +1,47 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "dubbo-admin.name" . }}-cm + namespace: {{ include "dubbo-admin.namespace" . }} +data: + application.properties: |- + {{- if .Values.zookeeper.enabled }} + admin.registry.address: {{ .Values.zookeeper.address }} + admin.config-center: {{ .Values.zookeeper.address }} + admin.metadata-report.address: {{ .Values.zookeeper.address }} + {{- end }} + {{- if .Values.nacos.enabled }} + admin.registry.address: {{ .Values.nacos.address }}?group=DEFAULT_GROUP&namespace={{ .Values.nacos.namespace }} + admin.config-center: {{ .Values.nacos.address }}?group={{ .Values.nacos.group }} + admin.metadata-report.address: {{.Values.nacos.address }}?group={{ .Values.nacos.group }} + {{- end }} + admin.root.user.name: {{ .Values.user.name }} + admin.root.user.password: {{ .Values.user.password }} + admin.check.tokenTimeoutMilli: {{ .Values.check.tokenTimeoutMilli | int64 }} + admin.check.sessionTimeoutMilli: {{ .Values.check.sessionTimeoutMilli | int64 }} + admin.check.signSecret: {{ .Values.check.signSecret }} + {{- if .Values.apollo.enabled }} + admin.config-center: {{ .Values.apollo.address }}?token={{ .Values.apollo.token }}&app.id={{ .Values.apollo.appId }}&env={{ .Values.apollo.env }}&cluster={{ .Values.apollo.cluster }}&namespace={{ .Values.apollo.namespace }} + admin.apollo.token: {{ .Values.apollo.token }} + admin.apollo.appId: {{ .Values.apollo.appId }} + admin.apollo.env: {{ .Values.apollo.env }} + admin.apollo.cluster: {{ .Values.apollo.cluster }} + {{- end }} + server.compression.enabled: {{ .Values.serverCompression.enabled }} + server.compression.mime-types: {{ .Values.serverCompression.mimeTypes }} + server.compression.min-response-size: {{ .Values.serverCompression.minResponseSize }} + dubbo.application.name: {{ .Values.dubbo.name }} + dubbo.application.logger: {{ .Values.dubbo.logger }} + dubbo.registry.address: ${admin.registry.address} + {{- if .Values.mysql.enabled }} + spring.datasource.driver-class-name: {{ .Values.mysql.driverClassName }} + spring.datasource.url: jdbc:{{ .Values.mysql.address }}?characterEncoding={{ .Values.mysql.encode }}&connectTimeout={{ .Values.mysql.connectTimeout }}&socketTimeout={{ .Values.mysql.socketTimeout }}&autoReconnect={{ .Values.mysql.autoReconnect }} + spring.datasource.username: {{ .Values.mysql.username }} + spring.datasource.password: {{ .Values.mysql.password }} + {{- end }} + {{- if .Values.h2.enabled }} + spring.datasource.url: jdbc:h2:mem:{{ .Values.h2.mem }};MODE={{ .Values.h2.mode }}; + spring.datasource.username: {{ .Values.mysql.username }} + spring.datasource.password: {{ .Values.mysql.password }} + {{- end }} + mybatis-plus.global-config.db-config.id-type: {{ .Values.mybatisPlus.global.db.idType }} \ No newline at end of file diff --git a/charts/admin-stack/charts/dubbo-admin/templates/deployment.yaml b/charts/dubbo-admin/templates/deploy.yaml similarity index 64% rename from charts/admin-stack/charts/dubbo-admin/templates/deployment.yaml rename to charts/dubbo-admin/templates/deploy.yaml index d7f1615ac..ffa015731 100644 --- a/charts/admin-stack/charts/dubbo-admin/templates/deployment.yaml +++ b/charts/dubbo-admin/templates/deploy.yaml @@ -1,54 +1,31 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "dubbo-admin.fullname" . }} + name: {{ include "dubbo-admin.name" . }} namespace: {{ include "dubbo-admin.namespace" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} - {{- with .Values.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} spec: - {{- if and (not .Values.autoscaling.enabled) (.Values.replicas) }} replicas: {{ .Values.replicas }} - {{- end }} selector: matchLabels: - {{- include "dubbo-admin.selectorLabels" . | nindent 6 }} - {{- with .Values.deploymentStrategy }} - strategy: - {{- toYaml . | trim | nindent 4 }} - {{- end }} + {{ include "dubbo-admin.matchLabels" . | nindent 6 }} template: metadata: labels: - {{- include "dubbo-admin.selectorLabels" . | nindent 8 }} + {{ include "dubbo-admin.labels" . | nindent 8 }} spec: - {{- if .Values.imagePullSecrets }} imagePullSecrets: {{ toYaml .Values.imagePullSecrets | nindent 8 }} - {{- end }} - {{- if .Values.nodeSelector }} nodeSelector: {{- toYaml .Values.nodeSelector | nindent 8 }} - {{- end }} - {{- if .Values.affinity }} affinity: {{- toYaml .Values.affinity | nindent 8 }} - {{- end }} - {{- if .Values.tolerations }} tolerations: {{- toYaml .Values.tolerations | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "dubbo-admin.serviceAccountName" . }} + {{- if .Values.rbac.enabled }} + serviceAccountName: {{ include "dubbo-admin.name" . }} + {{- end }} containers: - name: {{ .Chart.Name }} - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.Version }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - - name: {{ .Values.service.name }} + - name: http containerPort: {{ .Values.service.containerPort }} volumeMounts: - mountPath: /config @@ -87,15 +64,15 @@ spec: resources: {{- toYaml .Values.resources | nindent 12 }} volumes: - - name: application-properties - secret: - secretName: {{ include "dubbo-admin.fullname" . }}-secret - - name: storage - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - {{ if .Values.persistence.ClaimName }} - claimName: {{ .Values.persistence.ClaimName }} - {{- else -}} - emptyDir: {{ .Values.persistence.emptyDir }} - {{- end -}} - {{- end -}} + - name: application-properties + configMap: + name: {{ include "dubbo-admin.name" . }}-cm + - name: storage + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + {{ if .Values.persistence.ClaimName }} + claimName: {{ .Values.persistence.ClaimName }} + {{- else }} + emptyDir: {{ .Values.persistence.emptyDir }} + {{- end -}} + {{- end -}} diff --git a/charts/dubbo-admin/templates/netpol.yaml b/charts/dubbo-admin/templates/netpol.yaml new file mode 100644 index 000000000..3cfd20cd3 --- /dev/null +++ b/charts/dubbo-admin/templates/netpol.yaml @@ -0,0 +1,11 @@ +{{- if .Values.networkPolicy.enabled }} +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} +spec: + policyTypes: + - Ingress + - Egress +{{- end }} \ No newline at end of file diff --git a/charts/dubbo-admin/templates/pdb.yaml b/charts/dubbo-admin/templates/pdb.yaml new file mode 100644 index 000000000..14efdd19d --- /dev/null +++ b/charts/dubbo-admin/templates/pdb.yaml @@ -0,0 +1,17 @@ +{{- if .Values.pdb.enabled }} +apiVersion: {{ include "dubbo-admin.podDisruptionBudget.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} +spec: + {{- with .Values.pdb.minAvailable }} + minAvailable: {{ . }} + {{- end }} + {{- with .Values.pdb.maxUnavailable }} + maxUnavailable: {{ . }} + {{- end }} + selector: + matchLabels: + {{- include "dubbo-admin.matchLabels" . | nindent 6 }} +{{- end -}} diff --git a/charts/admin-stack/charts/dubbo-admin/templates/psp.yaml b/charts/dubbo-admin/templates/psp.yaml similarity index 57% rename from charts/admin-stack/charts/dubbo-admin/templates/psp.yaml rename to charts/dubbo-admin/templates/psp.yaml index e2b830f39..1130df926 100644 --- a/charts/admin-stack/charts/dubbo-admin/templates/psp.yaml +++ b/charts/dubbo-admin/templates/psp.yaml @@ -1,23 +1,16 @@ -{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has "policy/v1beta1/PodSecurityPolicy") }} +{{- if .Values.psp.enabled }} apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: - name: {{ include "dubbo-admin.fullname" . }} - labels: - {{- include "dubbo-admin.labels" . | nindent 4 }} + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} spec: privileged: false allowPrivilegeEscalation: false requiredDropCapabilities: - ALL volumes: - - 'configMap' - - 'emptyDir' - - 'projected' - - 'csi' - - 'secret' - - 'downwardAPI' - - 'persistentVolumeClaim' + - ALL hostNetwork: false hostIPC: false hostPID: false @@ -36,4 +29,4 @@ spec: - min: 1 max: 65535 readOnlyRootFilesystem: false -{{- end }} +{{- end -}} \ No newline at end of file diff --git a/charts/dubbo-admin/templates/pvc.yaml b/charts/dubbo-admin/templates/pvc.yaml new file mode 100644 index 000000000..88dd9bd47 --- /dev/null +++ b/charts/dubbo-admin/templates/pvc.yaml @@ -0,0 +1,15 @@ +{{- if .Values.persistence.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} +spec: + accessModes: {{ .Values.persistence.accessModes }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} + {{- with .Values.persistence.storageClass }} + storageClassName: {{ . }} + {{- end }} +{{- end -}} diff --git a/charts/dubbo-admin/templates/rbac.yaml b/charts/dubbo-admin/templates/rbac.yaml new file mode 100644 index 000000000..65f1ff380 --- /dev/null +++ b/charts/dubbo-admin/templates/rbac.yaml @@ -0,0 +1,67 @@ +{{- if .Values.serviceAccount.enabled }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} +{{- end }} +--- +{{- if and .Values.rbac.enabled -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} +rules: + - apiGroups: + - "" + resources: + - pods + - deployments + verbs: + - get + - watch + - list +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "dubbo-admin.name" . }} +subjects: + - kind: ServiceAccount + name: {{ include "dubbo-admin.name" . }} + namespace: default +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "dubbo-admin.name" . }}-clusterrole +rules: + - apiGroups: + - "" + resources: + - pods + - deployments + verbs: + - get + - watch + - list +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "dubbo-admin.name" . }}-clusterrolebinding +subjects: + - kind: ServiceAccount + name: dubbo-admin + namespace: default +roleRef: + kind: ClusterRole + name: {{ include "dubbo-admin.name" . }}-clusterrole + apiGroup: rbac.authorization.k8s.io +{{- end -}} \ No newline at end of file diff --git a/charts/dubbo-admin/templates/svc.yaml b/charts/dubbo-admin/templates/svc.yaml new file mode 100644 index 000000000..348fac634 --- /dev/null +++ b/charts/dubbo-admin/templates/svc.yaml @@ -0,0 +1,73 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "dubbo-admin.name" . }} + namespace: {{ include "dubbo-admin.namespace" . }} +spec: + {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} + type: {{ .Values.service.type }} + {{- with .Values.service.clusterIP }} + clusterIP: {{ . }} + {{- end }} + {{- else if eq .Values.service.type "LoadBalancer" }} + type: {{ .Values.service.type }} + {{- with .Values.service.loadBalancerIP }} + loadBalancerIP: {{ . }} + {{- end }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} + type: {{ .Values.service.type }} + {{- end }} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 4 }} + {{- end }} + ports: + - name: http + port: {{ .Values.service.port }} + protocol: {{ .Values.service.protocol }} + targetPort: {{ .Values.service.targetPort }} + {{- with .Values.service.appProtocol }} + appProtocol: {{ . }} + {{- end }} + {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ include "dubbo-admin.name" . }}-headless + namespace: {{ include "dubbo-admin.namespace" . }} +spec: + {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} + type: {{ .Values.service.type }} + clusterIP: None + {{- else if eq .Values.service.type "LoadBalancer" }} + type: {{ .Values.service.type }} + {{- with .Values.service.loadBalancerIP }} + loadBalancerIP: {{ . }} + {{- end }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} + type: {{ .Values.service.type }} + {{- end }} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 4 }} + {{- end }} + ports: + - name: http + port: {{ .Values.service.port }} + protocol: {{ .Values.service.protocol }} + targetPort: {{ .Values.service.targetPort }} + appProtocol: {{ .Values.service.appProtocol }} + {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} diff --git a/charts/dubbo-admin/values.yaml b/charts/dubbo-admin/values.yaml new file mode 100644 index 000000000..21ad2301e --- /dev/null +++ b/charts/dubbo-admin/values.yaml @@ -0,0 +1,168 @@ +nameOverride: ~ + +namespaceOverride: ~ + +nodeSelector: ~ + +affinity: ~ + +tolerations: ~ + +replicas: 1 + +imagePullSecrets: ~ + +image: + registry: docker.io + repository: apache/dubbo-admin + tag: 0.5.0 + pullPolicy: IfNotPresent + +serviceAccount: + enabled: false + labels: {} + annotations: {} + +rbac: + enabled: false + +psp: + enabled: false + labels: {} + annotations: {} + +pdb: + enabled: false + labels: {} + annotations: {} + minAvailable: 1 + maxUnavailable: 1 + +networkPolicy: + enabled: false + +readinessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 60 + timeoutSeconds: 30 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + probeCommandTimeout: 1 + +livenessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 60 + timeoutSeconds: 30 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + probeCommandTimeout: 1 + +startupProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 60 + timeoutSeconds: 30 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 + +resources: {} +# limits: +# cpu: 100m +# memory: 128Mi +# requests: +# cpu: 100m +# memory: 128Mi + +service: + labels: {} + annotations: {} + type: ClusterIP + clusterIP: "" + externalIPs: "" + loadBalancerIP: "" + loadBalancerSourceRanges: "" + nodePort: "" + port: 38080 + targetPort: http + containerPort: 8080 + protocol: TCP + appProtocol: "" + +persistence: + enabled: false + labels: {} + annotations: {} + storageClass: "" + accessModes: ReadWriteOnce + size: 10Gi + ClaimName: {} + emptyDir: {} + +user: + name: root + password: root + +dubbo: + name: dubbo-admin + logger: slf4j + +check: + sessionTimeoutMilli: 3600000 + tokenTimeoutMilli: 3600000 + signSecret: ~ + +serverCompression: + enabled: true + mimeTypes: text/css,text/javascript,application/javascript + minResponseSize: 10240 + +zookeeper: + enabled: false + address: zookeeper://zookeeper:2181 + +nacos: + enabled: true + address: nacos://nacos:8848 + group: DEFAULT_GROUP + namespace: public + +apollo: + enabled: false + address: apollo://apollo:8070 + token: ~ + appId: test + env: dev + cluster: default + namespace: dubbo + +mysql: + enabled: false + driverClassName: com.mysql.jdbc.Driver + address: mysql://mysql:3306/dubbo-admin + encode: utf8 + connectTimeout: 1000 + socketTimeout: 10000 + autoReconnect: true + username: sa + password: ~ + +h2: + enabled: true + mode: MYSQL + mem: ~/dubbo-admin + username: sa + password: + +mybatisPlus: + global: + db: + idType: none +