diff --git a/packages/apps/clickhouse/Chart.yaml b/packages/apps/clickhouse/Chart.yaml index 46691771..5dbf8e09 100644 --- a/packages/apps/clickhouse/Chart.yaml +++ b/packages/apps/clickhouse/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.3.0 +version: 0.4.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/clickhouse/templates/clickhouse.yaml b/packages/apps/clickhouse/templates/clickhouse.yaml index c2b0a5b2..11a057ca 100644 --- a/packages/apps/clickhouse/templates/clickhouse.yaml +++ b/packages/apps/clickhouse/templates/clickhouse.yaml @@ -1,3 +1,32 @@ +{{- $existingSecret := lookup "v1" "Secret" .Release.Namespace (printf "%s-credentials" .Release.Name) }} +{{- $passwords := dict }} + +{{- with (index $existingSecret "data") }} + {{- range $k, $v := . }} + {{- $_ := set $passwords $k (b64dec $v) }} + {{- end }} +{{- end }} + +{{- range $user, $u := .Values.users }} + {{- if $u.password }} + {{- $_ := set $passwords $user $u.password }} + {{- else if not (index $passwords $user) }} + {{- $_ := set $passwords $user (randAlphaNum 16) }} + {{- end }} +{{- end }} + +{{- if .Values.users }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-credentials +stringData: + {{- range $user, $u := .Values.users }} + {{ quote $user }}: {{ quote (index $passwords $user) }} + {{- end }} +{{- end }} + +--- apiVersion: "clickhouse.altinity.com/v1" kind: "ClickHouseInstallation" metadata: @@ -12,7 +41,7 @@ spec: {{- with .Values.users }} users: {{- range $name, $u := . }} - {{ $name }}/password_sha256_hex: {{ sha256sum $u.password }} + {{ $name }}/password_sha256_hex: {{ sha256sum (index $passwords $name) }} {{ $name }}/profile: {{ ternary "readonly" "default" (index $u "readonly" | default false) }} {{ $name }}/networks/ip: ["::/0"] {{- end }} @@ -31,7 +60,7 @@ spec: spec: accessModes: - ReadWriteOnce - {{- with .Values.storageClass }} + {{- with $.Values.storageClass }} storageClassName: {{ . }} {{- end }} resources: diff --git a/packages/apps/clickhouse/templates/dashboard-resourcemap.yaml b/packages/apps/clickhouse/templates/dashboard-resourcemap.yaml new file mode 100644 index 00000000..f6040943 --- /dev/null +++ b/packages/apps/clickhouse/templates/dashboard-resourcemap.yaml @@ -0,0 +1,19 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ .Release.Name }}-dashboard-resources +rules: +- apiGroups: + - "" + resources: + - services + resourceNames: + - chi-clickhouse-test-clickhouse-0-0 + verbs: ["get", "list", "watch"] +- apiGroups: + - "" + resources: + - secrets + resourceNames: + - {{ .Release.Name }}-credentials + verbs: ["get", "list", "watch"]