From 85bab2065c4350af813975633d446f49f07debec Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Fri, 3 Feb 2023 14:28:09 -0500 Subject: [PATCH 1/9] helm: Add serviceAccounts, rbac, and small fixes --- helm/druid/README.md | 31 +++++++ helm/druid/charts/mysql-1.6.4.tgz | Bin 0 -> 11121 bytes helm/druid/charts/postgresql-8.6.4.tgz | Bin 0 -> 32017 bytes helm/druid/charts/zookeeper-2.1.4.tgz | Bin 0 -> 10795 bytes helm/druid/templates/broker/deployment.yaml | 20 +++-- helm/druid/templates/broker/role.yaml | 21 +++++ helm/druid/templates/broker/roleBinding.yaml | 20 +++++ .../templates/broker/serviceAccount.yaml | 20 +++++ .../templates/coordinator/deployment.yaml | 20 +++-- helm/druid/templates/coordinator/role.yaml | 21 +++++ .../templates/coordinator/roleBinding.yaml | 20 +++++ .../templates/coordinator/serviceAccount.yaml | 20 +++++ helm/druid/templates/historical/role.yaml | 21 +++++ .../templates/historical/roleBinding.yaml | 20 +++++ .../templates/historical/serviceAccount.yaml | 20 +++++ .../templates/historical/statefulset.yaml | 20 +++-- helm/druid/templates/middleManager/role.yaml | 21 +++++ .../templates/middleManager/roleBinding.yaml | 20 +++++ .../middleManager/serviceAccount.yaml | 20 +++++ .../templates/middleManager/statefulset.yaml | 20 +++-- helm/druid/templates/overlord/deployment.yaml | 20 +++-- helm/druid/templates/overlord/role.yaml | 27 ++++++ .../druid/templates/overlord/roleBinding.yaml | 20 +++++ .../templates/overlord/serviceAccount.yaml | 20 +++++ helm/druid/templates/router/deployment.yaml | 20 +++-- helm/druid/templates/router/role.yaml | 21 +++++ helm/druid/templates/router/roleBinding.yaml | 20 +++++ .../templates/router/serviceAccount.yaml | 20 +++++ helm/druid/values.yaml | 78 +++++++++++++++++- 29 files changed, 552 insertions(+), 49 deletions(-) create mode 100644 helm/druid/charts/mysql-1.6.4.tgz create mode 100644 helm/druid/charts/postgresql-8.6.4.tgz create mode 100644 helm/druid/charts/zookeeper-2.1.4.tgz create mode 100644 helm/druid/templates/broker/role.yaml create mode 100644 helm/druid/templates/broker/roleBinding.yaml create mode 100644 helm/druid/templates/broker/serviceAccount.yaml create mode 100644 helm/druid/templates/coordinator/role.yaml create mode 100644 helm/druid/templates/coordinator/roleBinding.yaml create mode 100644 helm/druid/templates/coordinator/serviceAccount.yaml create mode 100644 helm/druid/templates/historical/role.yaml create mode 100644 helm/druid/templates/historical/roleBinding.yaml create mode 100644 helm/druid/templates/historical/serviceAccount.yaml create mode 100644 helm/druid/templates/middleManager/role.yaml create mode 100644 helm/druid/templates/middleManager/roleBinding.yaml create mode 100644 helm/druid/templates/middleManager/serviceAccount.yaml create mode 100644 helm/druid/templates/overlord/role.yaml create mode 100644 helm/druid/templates/overlord/roleBinding.yaml create mode 100644 helm/druid/templates/overlord/serviceAccount.yaml create mode 100644 helm/druid/templates/router/role.yaml create mode 100644 helm/druid/templates/router/roleBinding.yaml create mode 100644 helm/druid/templates/router/serviceAccount.yaml diff --git a/helm/druid/README.md b/helm/druid/README.md index 64274a71d7c8..92bfb40255a1 100644 --- a/helm/druid/README.md +++ b/helm/druid/README.md @@ -96,10 +96,16 @@ The following table lists the configurable parameters of the Druid chart and the | `configVars` | druid configuration variables for all components | `` | | `gCloudStorage.enabled` | look for secret to set google cloud credentials | `false` | | `gCloudStorage.secretName` | secretName to be mounted as google cloud credentials | `false` | +| `rbac.create` | Create roles and roleBindings for service Accounts | `true` | | `broker.enabled` | enable broker | `true` | | `broker.name` | broker component name | `broker` | | `broker.replicaCount` | broker node replicas (deployment) | `1` | | `broker.port` | port of broker component | `8082` | +| `broker.serviceAccount.create` | Create a service account for broker service | `true` | +| `broker.serviceAccount.name` | Service account name | `true` | +| `broker.serviceAccount.annotations` | Annotations applied to created service account | `true` | +| `broker.serviceAccount.labels` | Labels applied to created service account | `true` | +| `broker.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `broker.serviceType` | service type for service | `ClusterIP` | | `broker.resources` | broker node resources requests & limits | `{}` | | `broker.podAnnotations` | broker deployment annotations | `{}` | @@ -117,6 +123,11 @@ The following table lists the configurable parameters of the Druid chart and the | `coordinator.replicaCount` | coordinator node replicas (deployment) | `1` | | `coordinator.port` | port of coordinator component | `8081` | | `coordinator.serviceType` | service type for service | `ClusterIP` | +| `coordinator.serviceAccount.create` | Create a service account for coordinator service | `true` | +| `coordinator.serviceAccount.name` | Service account name | `true` | +| `coordinator.serviceAccount.annotations` | Annotations applied to created service account | `true` | +| `coordinator.serviceAccount.labels` | Labels applied to created service account | `true` | +| `coordinator.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `coordinator.resources` | coordinator node resources requests & limits | `{}` | | `coordinator.podAnnotations` | coordinator Deployment annotations | `{}` | | `coordinator.nodeSelector` | node labels for coordinator pod assignment | `{}` | @@ -133,6 +144,11 @@ The following table lists the configurable parameters of the Druid chart and the | `overlord.replicaCount` | overlord node replicas (deployment) | `1` | | `overlord.port` | port of overlord component | `8081` | | `overlord.serviceType` | service type for service | `ClusterIP` | +| `overlord.serviceAccount.create` | Create a service account for overlord service | `true` | +| `overlord.serviceAccount.name` | Service account name | `true` | +| `overlord.serviceAccount.annotations` | Annotations applied to created service account | `true` | +| `overlord.serviceAccount.labels` | Labels applied to created service account | `true` | +| `overlord.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `overlord.resources` | overlord node resources requests & limits | `{}` | | `overlord.podAnnotations` | overlord Deployment annotations | `{}` | | `overlord.nodeSelector` | node labels for overlord pod assignment | `{}` | @@ -149,6 +165,11 @@ The following table lists the configurable parameters of the Druid chart and the | `historical.replicaCount` | historical node replicas (statefulset) | `1` | | `historical.port` | port of historical component | `8083` | | `historical.serviceType` | service type for service | `ClusterIP` | +| `historical.serviceAccount.create` | Create a service account for historical service | `true` | +| `historical.serviceAccount.name` | Service account name | `true` | +| `historical.serviceAccount.annotations` | Annotations applied to created service account | `true` | +| `historical.serviceAccount.labels` | Labels applied to created service account | `true` | +| `historical.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `historical.resources` | historical node resources requests & limits | `{}` | | `historical.livenessProbeInitialDelaySeconds` | historical node liveness probe initial delay in seconds | `60` | | `historical.readinessProbeInitialDelaySeconds` | historical node readiness probe initial delay in seconds | `60` | @@ -173,6 +194,11 @@ The following table lists the configurable parameters of the Druid chart and the | `middleManager.replicaCount` | middleManager node replicas (statefulset) | `1` | | `middleManager.port` | port of middleManager component | `8091` | | `middleManager.serviceType` | service type for service | `ClusterIP` | +| `middleManager.serviceAccount.create` | Create a service account for middleManager service | `true` | +| `middleManager.serviceAccount.name` | Service account name | `true` | +| `middleManager.serviceAccount.annotations` | Annotations applied to created service account | `true` | +| `middleManager.serviceAccount.labels` | Labels applied to created service account | `true` | +| `middleManager.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `middleManager.resources` | middleManager node resources requests & limits | `{}` | | `middleManager.podAnnotations` | middleManager Deployment annotations | `{}` | | `middleManager.nodeSelector` | Node labels for middleManager pod assignment | `{}` | @@ -199,6 +225,11 @@ The following table lists the configurable parameters of the Druid chart and the | `router.replicaCount` | router node replicas (deployment) | `1` | | `router.port` | port of router component | `8888` | | `router.serviceType` | service type for service | `ClusterIP` | +| `router.serviceAccount.create` | Create a service account for router service | `true` | +| `router.serviceAccount.name` | Service account name | `true` | +| `router.serviceAccount.annotations` | Annotations applied to created service account | `true` | +| `router.serviceAccount.labels` | Labels applied to created service account | `true` | +| `router.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `router.resources` | router node resources requests & limits | `{}` | | `router.podAnnotations` | router Deployment annotations | `{}` | | `router.nodeSelector` | node labels for router pod assignment | `{}` | diff --git a/helm/druid/charts/mysql-1.6.4.tgz b/helm/druid/charts/mysql-1.6.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..89202e2bbaac436b6b16d44986c024714b56c1f1 GIT binary patch literal 11121 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 D0elb* literal 0 HcmV?d00001 diff --git a/helm/druid/charts/postgresql-8.6.4.tgz b/helm/druid/charts/postgresql-8.6.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..314c4285fc8db9b4e326e860773974541953b097 GIT binary patch literal 32017 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 Date: Wed, 8 Feb 2023 16:45:18 -0500 Subject: [PATCH 2/9] Add helper method for serviceAccount names and conditionals for serviceAccounts, roles, and roleBindings --- helm/druid/templates/_helpers.tpl | 66 +++++++++++++++++++ helm/druid/templates/broker/deployment.yaml | 2 +- helm/druid/templates/broker/role.yaml | 2 +- helm/druid/templates/broker/roleBinding.yaml | 2 +- .../templates/broker/serviceAccount.yaml | 4 +- .../templates/coordinator/deployment.yaml | 2 +- helm/druid/templates/coordinator/role.yaml | 2 +- .../templates/coordinator/roleBinding.yaml | 2 +- .../templates/coordinator/serviceAccount.yaml | 4 +- helm/druid/templates/historical/role.yaml | 2 +- .../templates/historical/roleBinding.yaml | 2 +- .../templates/historical/serviceAccount.yaml | 4 +- .../templates/historical/statefulset.yaml | 2 +- helm/druid/templates/middleManager/role.yaml | 2 +- .../templates/middleManager/roleBinding.yaml | 2 +- .../middleManager/serviceAccount.yaml | 4 +- .../templates/middleManager/statefulset.yaml | 2 +- helm/druid/templates/overlord/deployment.yaml | 2 +- helm/druid/templates/overlord/role.yaml | 2 +- .../druid/templates/overlord/roleBinding.yaml | 2 +- .../templates/overlord/serviceAccount.yaml | 4 +- helm/druid/templates/router/deployment.yaml | 2 +- helm/druid/templates/router/role.yaml | 2 +- helm/druid/templates/router/roleBinding.yaml | 2 +- .../templates/router/serviceAccount.yaml | 4 +- helm/druid/values.yaml | 12 ++-- 26 files changed, 102 insertions(+), 36 deletions(-) diff --git a/helm/druid/templates/_helpers.tpl b/helm/druid/templates/_helpers.tpl index bb4714953e52..a4ca3c9a0ee2 100644 --- a/helm/druid/templates/_helpers.tpl +++ b/helm/druid/templates/_helpers.tpl @@ -98,3 +98,69 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- define "druid.router.fullname" -}} {{ template "druid.fullname" . }}-{{ .Values.router.name }} {{- end -}} + +{{/* +Create the name of the broker service account +*/}} +{{- define "druid.broker.serviceAccountName" -}} + {{- if .Values.broker.serviceAccount.create }} + {{- default (include "druid.broker.fullname" .) .Values.broker.serviceAccount.name }} + {{- else }} + {{- default "default" .Values.broker.serviceAccount.name }} + {{- end }} +{{- end }} + +{{/* +Create the name of the historical service account +*/}} +{{- define "druid.historical.serviceAccountName" -}} + {{- if .Values.historical.serviceAccount.create }} + {{- default (include "druid.historical.fullname" .) .Values.historical.serviceAccount.name }} + {{- else }} + {{- default "default" .Values.historical.serviceAccount.name }} + {{- end }} +{{- end }} + +{{/* +Create the name of the middleManager service account +*/}} +{{- define "druid.middleManager.serviceAccountName" -}} + {{- if .Values.middleManager.serviceAccount.create }} + {{- default (include "druid.middleManager.fullname" .) .Values.middleManager.serviceAccount.name }} + {{- else }} + {{- default "default" .Values.middleManager.serviceAccount.name }} + {{- end }} +{{- end }} + +{{/* +Create the name of the coordinator service account +*/}} +{{- define "druid.coordinator.serviceAccountName" -}} + {{- if .Values.coordinator.serviceAccount.create }} + {{- default (include "druid.coordinator.fullname" .) .Values.coordinator.serviceAccount.name }} + {{- else }} + {{- default "default" .Values.coordinator.serviceAccount.name }} + {{- end }} +{{- end }} + +{{/* +Create the name of the overlord service account +*/}} +{{- define "druid.overlord.serviceAccountName" -}} + {{- if .Values.overlord.serviceAccount.create }} + {{- default (include "druid.overlord.fullname" .) .Values.overlord.serviceAccount.name }} + {{- else }} + {{- default "default" .Values.overlord.serviceAccount.name }} + {{- end }} +{{- end }} + +{{/* +Create the name of the router service account +*/}} +{{- define "druid.router.serviceAccountName" -}} + {{- if .Values.router.serviceAccount.create }} + {{- default (include "druid.router.fullname" .) .Values.router.serviceAccount.name }} + {{- else }} + {{- default "default" .Values.router.serviceAccount.name }} + {{- end }} +{{- end }} diff --git a/helm/druid/templates/broker/deployment.yaml b/helm/druid/templates/broker/deployment.yaml index 9bb2a70bc4ea..80251de1ec15 100644 --- a/helm/druid/templates/broker/deployment.yaml +++ b/helm/druid/templates/broker/deployment.yaml @@ -53,7 +53,7 @@ spec: {{- end }} spec: {{- if .Values.broker.serviceAccount.create }} - serviceAccountName: "{{ .Values.broker.serviceAccount.name }}" + serviceAccountName: {{ include "druid.broker.serviceAccountName" . }} {{- end }} containers: - name: {{ .Chart.Name }} diff --git a/helm/druid/templates/broker/role.yaml b/helm/druid/templates/broker/role.yaml index b3d97f764189..24ed7a6550fa 100644 --- a/helm/druid/templates/broker/role.yaml +++ b/helm/druid/templates/broker/role.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.broker.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/helm/druid/templates/broker/roleBinding.yaml b/helm/druid/templates/broker/roleBinding.yaml index 628fbd4d62fd..6e4c3649e6f0 100644 --- a/helm/druid/templates/broker/roleBinding.yaml +++ b/helm/druid/templates/broker/roleBinding.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.broker.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: diff --git a/helm/druid/templates/broker/serviceAccount.yaml b/helm/druid/templates/broker/serviceAccount.yaml index d62cf39df75c..2cdad693037d 100644 --- a/helm/druid/templates/broker/serviceAccount.yaml +++ b/helm/druid/templates/broker/serviceAccount.yaml @@ -1,9 +1,9 @@ -{{- if .Values.broker.serviceAccount.create }} +{{- if and (.Values.broker.serviceAccount.create) (.Values.broker.enabled) }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.broker.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ .Values.broker.serviceAccount.name }} + name: {{ include "druid.broker.serviceAccountName" . }} {{- with .Values.broker.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/druid/templates/coordinator/deployment.yaml b/helm/druid/templates/coordinator/deployment.yaml index 9fe81138e0b2..66456a5112b3 100644 --- a/helm/druid/templates/coordinator/deployment.yaml +++ b/helm/druid/templates/coordinator/deployment.yaml @@ -53,7 +53,7 @@ spec: {{- end }} spec: {{- if .Values.coordinator.serviceAccount.create }} - serviceAccountName: "{{ .Values.coordinator.serviceAccount.name }}" + serviceAccountName: {{ include "druid.coordinator.serviceAccountName" . }} {{- end }} containers: - name: {{ .Chart.Name }} diff --git a/helm/druid/templates/coordinator/role.yaml b/helm/druid/templates/coordinator/role.yaml index cf759e110445..ed595fb82ba4 100644 --- a/helm/druid/templates/coordinator/role.yaml +++ b/helm/druid/templates/coordinator/role.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.coordinator.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/helm/druid/templates/coordinator/roleBinding.yaml b/helm/druid/templates/coordinator/roleBinding.yaml index acf45a7532e9..befee95d28e0 100644 --- a/helm/druid/templates/coordinator/roleBinding.yaml +++ b/helm/druid/templates/coordinator/roleBinding.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.coordinator.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: diff --git a/helm/druid/templates/coordinator/serviceAccount.yaml b/helm/druid/templates/coordinator/serviceAccount.yaml index f569ff72c3e5..e46b1e988fe7 100644 --- a/helm/druid/templates/coordinator/serviceAccount.yaml +++ b/helm/druid/templates/coordinator/serviceAccount.yaml @@ -1,9 +1,9 @@ -{{- if .Values.coordinator.serviceAccount.create }} +{{- if and (.Values.coordinator.serviceAccount.create) (.Values.coordinator.enabled) }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.coordinator.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ .Values.coordinator.serviceAccount.name }} + name: {{ include "druid.coordinator.serviceAccountName" . }} {{- with .Values.coordinator.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/druid/templates/historical/role.yaml b/helm/druid/templates/historical/role.yaml index b539c5ce5c9f..8b5eafeee6c8 100644 --- a/helm/druid/templates/historical/role.yaml +++ b/helm/druid/templates/historical/role.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.historical.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/helm/druid/templates/historical/roleBinding.yaml b/helm/druid/templates/historical/roleBinding.yaml index 1bc46a52e549..9ec5f2207ba7 100644 --- a/helm/druid/templates/historical/roleBinding.yaml +++ b/helm/druid/templates/historical/roleBinding.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.historical.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: diff --git a/helm/druid/templates/historical/serviceAccount.yaml b/helm/druid/templates/historical/serviceAccount.yaml index 4fe3f1aec462..7794845131ad 100644 --- a/helm/druid/templates/historical/serviceAccount.yaml +++ b/helm/druid/templates/historical/serviceAccount.yaml @@ -1,9 +1,9 @@ -{{- if .Values.historical.serviceAccount.create }} +{{- if and (.Values.historical.serviceAccount.create) (.Values.historical.enabled) }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.historical.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ .Values.historical.serviceAccount.name }} + name: {{ include "druid.historical.serviceAccountName" . }} {{- with .Values.historical.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/druid/templates/historical/statefulset.yaml b/helm/druid/templates/historical/statefulset.yaml index 4aadc5e26d7c..0e12c6508c1e 100644 --- a/helm/druid/templates/historical/statefulset.yaml +++ b/helm/druid/templates/historical/statefulset.yaml @@ -98,7 +98,7 @@ spec: {{ toYaml .Values.image.pullSecrets | indent 8 }} {{- end }} {{- if .Values.historical.serviceAccount.create }} - serviceAccountName: "{{ .Values.historical.serviceAccount.name }}" + serviceAccountName: {{ include "druid.historical.serviceAccountName" . }} {{- end }} containers: - name: druid diff --git a/helm/druid/templates/middleManager/role.yaml b/helm/druid/templates/middleManager/role.yaml index d5f72bc959d5..88dee48f6354 100644 --- a/helm/druid/templates/middleManager/role.yaml +++ b/helm/druid/templates/middleManager/role.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.middleManager.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/helm/druid/templates/middleManager/roleBinding.yaml b/helm/druid/templates/middleManager/roleBinding.yaml index e006e991a0a9..52437898f0d8 100644 --- a/helm/druid/templates/middleManager/roleBinding.yaml +++ b/helm/druid/templates/middleManager/roleBinding.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.middleManager.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: diff --git a/helm/druid/templates/middleManager/serviceAccount.yaml b/helm/druid/templates/middleManager/serviceAccount.yaml index b9c72902b0b3..5ab380fe5bab 100644 --- a/helm/druid/templates/middleManager/serviceAccount.yaml +++ b/helm/druid/templates/middleManager/serviceAccount.yaml @@ -1,9 +1,9 @@ -{{- if .Values.middleManager.serviceAccount.create }} +{{- if and (.Values.middleManager.serviceAccount.create) (.Values.middleManager.enabled) }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.middleManager.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ .Values.middleManager.serviceAccount.name }} + name: {{ include "druid.middleManager.serviceAccountName" . }} {{- with .Values.middleManager.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/druid/templates/middleManager/statefulset.yaml b/helm/druid/templates/middleManager/statefulset.yaml index e60b617dc32a..8dd750075947 100644 --- a/helm/druid/templates/middleManager/statefulset.yaml +++ b/helm/druid/templates/middleManager/statefulset.yaml @@ -98,7 +98,7 @@ spec: {{ toYaml .Values.image.pullSecrets | indent 8 }} {{- end }} {{- if .Values.middleManager.serviceAccount.create }} - serviceAccountName: "{{ .Values.middleManager.serviceAccount.name }}" + serviceAccountName: {{ include "druid.middleManager.serviceAccountName" . }} {{- end }} containers: - name: druid diff --git a/helm/druid/templates/overlord/deployment.yaml b/helm/druid/templates/overlord/deployment.yaml index 036c8a187b0d..f34722885940 100644 --- a/helm/druid/templates/overlord/deployment.yaml +++ b/helm/druid/templates/overlord/deployment.yaml @@ -53,7 +53,7 @@ spec: {{- end }} spec: {{- if .Values.overlord.serviceAccount.create }} - serviceAccountName: "{{ .Values.overlord.serviceAccount.name }}" + serviceAccountName: {{ include "druid.overlord.serviceAccountName" . }} {{- end }} containers: - name: {{ .Chart.Name }} diff --git a/helm/druid/templates/overlord/role.yaml b/helm/druid/templates/overlord/role.yaml index d28b45b3afba..f7b993c4be16 100644 --- a/helm/druid/templates/overlord/role.yaml +++ b/helm/druid/templates/overlord/role.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.overlord.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/helm/druid/templates/overlord/roleBinding.yaml b/helm/druid/templates/overlord/roleBinding.yaml index e6cb2adba7ee..93079f109d67 100644 --- a/helm/druid/templates/overlord/roleBinding.yaml +++ b/helm/druid/templates/overlord/roleBinding.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.overlord.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: diff --git a/helm/druid/templates/overlord/serviceAccount.yaml b/helm/druid/templates/overlord/serviceAccount.yaml index e1ac04741256..f809753d055c 100644 --- a/helm/druid/templates/overlord/serviceAccount.yaml +++ b/helm/druid/templates/overlord/serviceAccount.yaml @@ -1,9 +1,9 @@ -{{- if .Values.overlord.serviceAccount.create }} +{{- if and (.Values.overlord.serviceAccount.create) (.Values.overlord.enabled) }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.overlord.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ .Values.overlord.serviceAccount.name }} + name: {{ include "druid.overlord.serviceAccountName" . }} {{- with .Values.overlord.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/druid/templates/router/deployment.yaml b/helm/druid/templates/router/deployment.yaml index d796fcaf2fa3..79960fe13b99 100644 --- a/helm/druid/templates/router/deployment.yaml +++ b/helm/druid/templates/router/deployment.yaml @@ -53,7 +53,7 @@ spec: {{- end }} spec: {{- if .Values.router.serviceAccount.create }} - serviceAccountName: "{{ .Values.router.serviceAccount.name }}" + serviceAccountName: {{ include "druid.router.serviceAccountName" . }} {{- end }} containers: - name: {{ .Chart.Name }} diff --git a/helm/druid/templates/router/role.yaml b/helm/druid/templates/router/role.yaml index 67bf5599bd05..7816f5705283 100644 --- a/helm/druid/templates/router/role.yaml +++ b/helm/druid/templates/router/role.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.router.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/helm/druid/templates/router/roleBinding.yaml b/helm/druid/templates/router/roleBinding.yaml index f0a67256e2c6..507ff2a69b41 100644 --- a/helm/druid/templates/router/roleBinding.yaml +++ b/helm/druid/templates/router/roleBinding.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rbac.create }} +{{- if and (.Values.rbac.create) (.Values.router.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: diff --git a/helm/druid/templates/router/serviceAccount.yaml b/helm/druid/templates/router/serviceAccount.yaml index 3cfba223be60..aaa9488438fb 100644 --- a/helm/druid/templates/router/serviceAccount.yaml +++ b/helm/druid/templates/router/serviceAccount.yaml @@ -1,9 +1,9 @@ -{{- if .Values.router.serviceAccount.create }} +{{- if and (.Values.router.serviceAccount.create) (.Values.router.enabled) }} apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: {{ .Values.router.serviceAccount.automountServiceAccountToken }} metadata: - name: {{ .Values.router.serviceAccount.name }} + name: {{ include "druid.router.serviceAccountName" . }} {{- with .Values.router.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm/druid/values.yaml b/helm/druid/values.yaml index 178138f1fe23..dab6a49b807b 100644 --- a/helm/druid/values.yaml +++ b/helm/druid/values.yaml @@ -99,7 +99,7 @@ broker: # -- Create a service account for the broker create: true # -- Service Account name - name: druid-broker + name: # -- Annotations applied to created service account annotations: {} # -- Labels applied to created service account @@ -154,7 +154,7 @@ coordinator: # -- Create a service account for the coordinator create: true # -- Service Account name - name: druid-coordinator + name: # -- Annotations applied to created service account annotations: {} # -- Labels applied to created service account @@ -200,7 +200,7 @@ overlord: # -- Create a service account for the overlord create: true # -- Service Account name - name: druid-overlord + name: # -- Annotations applied to created service account annotations: {} # -- Labels applied to created service account @@ -277,7 +277,7 @@ historical: # -- Create a service account for the overlord create: true # -- Service Account name - name: druid-historical + name: # -- Annotations applied to created service account annotations: {} # -- Labels applied to created service account @@ -374,7 +374,7 @@ middleManager: # -- Create a service account for the overlord create: true # -- Service Account name - name: druid-middlemanager + name: # -- Annotations applied to created service account annotations: {} # -- Labels applied to created service account @@ -432,7 +432,7 @@ router: # -- Create a service account for the overlord create: true # -- Service Account name - name: druid-router + name: # -- Annotations applied to created service account annotations: {} # -- Labels applied to created service account From 3bfbf7dcc46657190c8c6257b003248a15817909 Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Sat, 11 Feb 2023 12:23:56 -0500 Subject: [PATCH 3/9] Fix README default value documentation --- helm/druid/README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/helm/druid/README.md b/helm/druid/README.md index 92bfb40255a1..a02697728697 100644 --- a/helm/druid/README.md +++ b/helm/druid/README.md @@ -102,9 +102,9 @@ The following table lists the configurable parameters of the Druid chart and the | `broker.replicaCount` | broker node replicas (deployment) | `1` | | `broker.port` | port of broker component | `8082` | | `broker.serviceAccount.create` | Create a service account for broker service | `true` | -| `broker.serviceAccount.name` | Service account name | `true` | -| `broker.serviceAccount.annotations` | Annotations applied to created service account | `true` | -| `broker.serviceAccount.labels` | Labels applied to created service account | `true` | +| `broker.serviceAccount.name` | Service account name | `` | +| `broker.serviceAccount.annotations` | Annotations applied to created service account | `{}` | +| `broker.serviceAccount.labels` | Labels applied to created service account | `{}` | | `broker.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `broker.serviceType` | service type for service | `ClusterIP` | | `broker.resources` | broker node resources requests & limits | `{}` | @@ -124,9 +124,9 @@ The following table lists the configurable parameters of the Druid chart and the | `coordinator.port` | port of coordinator component | `8081` | | `coordinator.serviceType` | service type for service | `ClusterIP` | | `coordinator.serviceAccount.create` | Create a service account for coordinator service | `true` | -| `coordinator.serviceAccount.name` | Service account name | `true` | -| `coordinator.serviceAccount.annotations` | Annotations applied to created service account | `true` | -| `coordinator.serviceAccount.labels` | Labels applied to created service account | `true` | +| `coordinator.serviceAccount.name` | Service account name | `` | +| `coordinator.serviceAccount.annotations` | Annotations applied to created service account | `{}` | +| `coordinator.serviceAccount.labels` | Labels applied to created service account | `{}` | | `coordinator.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `coordinator.resources` | coordinator node resources requests & limits | `{}` | | `coordinator.podAnnotations` | coordinator Deployment annotations | `{}` | @@ -145,9 +145,9 @@ The following table lists the configurable parameters of the Druid chart and the | `overlord.port` | port of overlord component | `8081` | | `overlord.serviceType` | service type for service | `ClusterIP` | | `overlord.serviceAccount.create` | Create a service account for overlord service | `true` | -| `overlord.serviceAccount.name` | Service account name | `true` | -| `overlord.serviceAccount.annotations` | Annotations applied to created service account | `true` | -| `overlord.serviceAccount.labels` | Labels applied to created service account | `true` | +| `overlord.serviceAccount.name` | Service account name | `` | +| `overlord.serviceAccount.annotations` | Annotations applied to created service account | `{}` | +| `overlord.serviceAccount.labels` | Labels applied to created service account | `{}` | | `overlord.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `overlord.resources` | overlord node resources requests & limits | `{}` | | `overlord.podAnnotations` | overlord Deployment annotations | `{}` | @@ -166,9 +166,9 @@ The following table lists the configurable parameters of the Druid chart and the | `historical.port` | port of historical component | `8083` | | `historical.serviceType` | service type for service | `ClusterIP` | | `historical.serviceAccount.create` | Create a service account for historical service | `true` | -| `historical.serviceAccount.name` | Service account name | `true` | -| `historical.serviceAccount.annotations` | Annotations applied to created service account | `true` | -| `historical.serviceAccount.labels` | Labels applied to created service account | `true` | +| `historical.serviceAccount.name` | Service account name | `` | +| `historical.serviceAccount.annotations` | Annotations applied to created service account | `{}` | +| `historical.serviceAccount.labels` | Labels applied to created service account | `{}` | | `historical.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `historical.resources` | historical node resources requests & limits | `{}` | | `historical.livenessProbeInitialDelaySeconds` | historical node liveness probe initial delay in seconds | `60` | @@ -195,9 +195,9 @@ The following table lists the configurable parameters of the Druid chart and the | `middleManager.port` | port of middleManager component | `8091` | | `middleManager.serviceType` | service type for service | `ClusterIP` | | `middleManager.serviceAccount.create` | Create a service account for middleManager service | `true` | -| `middleManager.serviceAccount.name` | Service account name | `true` | -| `middleManager.serviceAccount.annotations` | Annotations applied to created service account | `true` | -| `middleManager.serviceAccount.labels` | Labels applied to created service account | `true` | +| `middleManager.serviceAccount.name` | Service account name | `` | +| `middleManager.serviceAccount.annotations` | Annotations applied to created service account | `{}` | +| `middleManager.serviceAccount.labels` | Labels applied to created service account | `{}` | | `middleManager.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `middleManager.resources` | middleManager node resources requests & limits | `{}` | | `middleManager.podAnnotations` | middleManager Deployment annotations | `{}` | @@ -226,9 +226,9 @@ The following table lists the configurable parameters of the Druid chart and the | `router.port` | port of router component | `8888` | | `router.serviceType` | service type for service | `ClusterIP` | | `router.serviceAccount.create` | Create a service account for router service | `true` | -| `router.serviceAccount.name` | Service account name | `true` | -| `router.serviceAccount.annotations` | Annotations applied to created service account | `true` | -| `router.serviceAccount.labels` | Labels applied to created service account | `true` | +| `router.serviceAccount.name` | Service account name | `` | +| `router.serviceAccount.annotations` | Annotations applied to created service account | `{}` | +| `router.serviceAccount.labels` | Labels applied to created service account | `{}` | | `router.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | | `router.resources` | router node resources requests & limits | `{}` | | `router.podAnnotations` | router Deployment annotations | `{}` | From 9bed5f6eb432549e1b7abb1e15479a5e9294ab58 Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Tue, 14 Feb 2023 15:44:45 -0500 Subject: [PATCH 4/9] Fix middleManager podAnnotations with statement Fix invalid use of the full podAnnotations path for middleManager --- helm/druid/templates/middleManager/statefulset.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/druid/templates/middleManager/statefulset.yaml b/helm/druid/templates/middleManager/statefulset.yaml index 8dd750075947..b91824e2c597 100644 --- a/helm/druid/templates/middleManager/statefulset.yaml +++ b/helm/druid/templates/middleManager/statefulset.yaml @@ -45,7 +45,7 @@ spec: annotations: druid.k8s.enablePatching: "true" {{- with .Values.middleManager.podAnnotations }} - {{- toYaml .Values.middleManager.podAnnotations | nindent 8 }} + {{- toYaml . | nindent 8 }} {{- end }} {{- if .Values.prometheus.enabled }} {{- with .Values.prometheus.annotation }} @@ -174,4 +174,4 @@ spec: requests: storage: "{{ .Values.middleManager.persistence.size }}" {{- end }} -{{- end }} \ No newline at end of file +{{- end }} From 60e1630ccd1e986cfacfeb966ca5033ea65a290b Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Wed, 15 Feb 2023 01:08:13 -0500 Subject: [PATCH 5/9] Fix roleBinding serviceAccount name to use template definition --- helm/druid/templates/broker/roleBinding.yaml | 2 +- helm/druid/templates/coordinator/roleBinding.yaml | 2 +- helm/druid/templates/historical/roleBinding.yaml | 2 +- helm/druid/templates/middleManager/roleBinding.yaml | 2 +- helm/druid/templates/overlord/roleBinding.yaml | 2 +- helm/druid/templates/router/roleBinding.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/helm/druid/templates/broker/roleBinding.yaml b/helm/druid/templates/broker/roleBinding.yaml index 6e4c3649e6f0..f83aba31d4d3 100644 --- a/helm/druid/templates/broker/roleBinding.yaml +++ b/helm/druid/templates/broker/roleBinding.yaml @@ -15,6 +15,6 @@ roleRef: name: {{ template "druid.broker.fullname" . }} subjects: - kind: ServiceAccount - name: {{ .Values.broker.serviceAccount.name }} + name: {{ include "druid.broker.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} diff --git a/helm/druid/templates/coordinator/roleBinding.yaml b/helm/druid/templates/coordinator/roleBinding.yaml index befee95d28e0..177caf15c336 100644 --- a/helm/druid/templates/coordinator/roleBinding.yaml +++ b/helm/druid/templates/coordinator/roleBinding.yaml @@ -15,6 +15,6 @@ roleRef: name: {{ template "druid.coordinator.fullname" . }} subjects: - kind: ServiceAccount - name: {{ .Values.coordinator.serviceAccount.name }} + name: {{ include "druid.coordinator.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} diff --git a/helm/druid/templates/historical/roleBinding.yaml b/helm/druid/templates/historical/roleBinding.yaml index 9ec5f2207ba7..f267a67bdc14 100644 --- a/helm/druid/templates/historical/roleBinding.yaml +++ b/helm/druid/templates/historical/roleBinding.yaml @@ -15,6 +15,6 @@ roleRef: name: {{ template "druid.historical.fullname" . }} subjects: - kind: ServiceAccount - name: {{ .Values.historical.serviceAccount.name }} + name: {{ include "druid.historical.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} diff --git a/helm/druid/templates/middleManager/roleBinding.yaml b/helm/druid/templates/middleManager/roleBinding.yaml index 52437898f0d8..b511d6a8b591 100644 --- a/helm/druid/templates/middleManager/roleBinding.yaml +++ b/helm/druid/templates/middleManager/roleBinding.yaml @@ -15,6 +15,6 @@ roleRef: name: {{ template "druid.middleManager.fullname" . }} subjects: - kind: ServiceAccount - name: {{ .Values.middleManager.serviceAccount.name }} + name: {{ include "druid.middleManager.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} diff --git a/helm/druid/templates/overlord/roleBinding.yaml b/helm/druid/templates/overlord/roleBinding.yaml index 93079f109d67..8b22c3b7de86 100644 --- a/helm/druid/templates/overlord/roleBinding.yaml +++ b/helm/druid/templates/overlord/roleBinding.yaml @@ -15,6 +15,6 @@ roleRef: name: {{ template "druid.overlord.fullname" . }} subjects: - kind: ServiceAccount - name: {{ .Values.overlord.serviceAccount.name }} + name: {{ include "druid.overlord.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} diff --git a/helm/druid/templates/router/roleBinding.yaml b/helm/druid/templates/router/roleBinding.yaml index 507ff2a69b41..6905aa9044fe 100644 --- a/helm/druid/templates/router/roleBinding.yaml +++ b/helm/druid/templates/router/roleBinding.yaml @@ -15,6 +15,6 @@ roleRef: name: {{ template "druid.router.fullname" . }} subjects: - kind: ServiceAccount - name: {{ .Values.router.serviceAccount.name }} + name: {{ include "druid.router.serviceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end }} From 658361518d646c75a7366154f9596cde3576a714 Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Wed, 15 Feb 2023 01:54:24 -0500 Subject: [PATCH 6/9] Change README description for default serviceAccount name value --- helm/druid/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/helm/druid/README.md b/helm/druid/README.md index a02697728697..85c72ef2a818 100644 --- a/helm/druid/README.md +++ b/helm/druid/README.md @@ -102,7 +102,7 @@ The following table lists the configurable parameters of the Druid chart and the | `broker.replicaCount` | broker node replicas (deployment) | `1` | | `broker.port` | port of broker component | `8082` | | `broker.serviceAccount.create` | Create a service account for broker service | `true` | -| `broker.serviceAccount.name` | Service account name | `` | +| `broker.serviceAccount.name` | Service account name | Derived from the name of service | | `broker.serviceAccount.annotations` | Annotations applied to created service account | `{}` | | `broker.serviceAccount.labels` | Labels applied to created service account | `{}` | | `broker.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | @@ -124,7 +124,7 @@ The following table lists the configurable parameters of the Druid chart and the | `coordinator.port` | port of coordinator component | `8081` | | `coordinator.serviceType` | service type for service | `ClusterIP` | | `coordinator.serviceAccount.create` | Create a service account for coordinator service | `true` | -| `coordinator.serviceAccount.name` | Service account name | `` | +| `coordinator.serviceAccount.name` | Service account name | Derived from the name of service | | `coordinator.serviceAccount.annotations` | Annotations applied to created service account | `{}` | | `coordinator.serviceAccount.labels` | Labels applied to created service account | `{}` | | `coordinator.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | @@ -145,7 +145,7 @@ The following table lists the configurable parameters of the Druid chart and the | `overlord.port` | port of overlord component | `8081` | | `overlord.serviceType` | service type for service | `ClusterIP` | | `overlord.serviceAccount.create` | Create a service account for overlord service | `true` | -| `overlord.serviceAccount.name` | Service account name | `` | +| `overlord.serviceAccount.name` | Service account name | Derived from the name of service | | `overlord.serviceAccount.annotations` | Annotations applied to created service account | `{}` | | `overlord.serviceAccount.labels` | Labels applied to created service account | `{}` | | `overlord.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | @@ -165,8 +165,8 @@ The following table lists the configurable parameters of the Druid chart and the | `historical.replicaCount` | historical node replicas (statefulset) | `1` | | `historical.port` | port of historical component | `8083` | | `historical.serviceType` | service type for service | `ClusterIP` | -| `historical.serviceAccount.create` | Create a service account for historical service | `true` | -| `historical.serviceAccount.name` | Service account name | `` | +| `historical.serviceAccount.create` | Create a service account for historical service | `true` | +| `historical.serviceAccount.name` | Service account name | Derived from the name of service | | `historical.serviceAccount.annotations` | Annotations applied to created service account | `{}` | | `historical.serviceAccount.labels` | Labels applied to created service account | `{}` | | `historical.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | @@ -226,7 +226,7 @@ The following table lists the configurable parameters of the Druid chart and the | `router.port` | port of router component | `8888` | | `router.serviceType` | service type for service | `ClusterIP` | | `router.serviceAccount.create` | Create a service account for router service | `true` | -| `router.serviceAccount.name` | Service account name | `` | +| `router.serviceAccount.name` | Service account name | Derived from the name of service | | `router.serviceAccount.annotations` | Annotations applied to created service account | `{}` | | `router.serviceAccount.labels` | Labels applied to created service account | `{}` | | `router.serviceAccount.automountServiceAccountToken` | Automount API credentials for the Service Account | `true` | From d38b79c3ed834a4ee7ee0657a02c1e976f032b04 Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Wed, 22 Feb 2023 13:48:57 -0500 Subject: [PATCH 7/9] Remove helm chart dependencies that were accidentally included --- helm/druid/charts/mysql-1.6.4.tgz | Bin 11121 -> 0 bytes helm/druid/charts/postgresql-8.6.4.tgz | Bin 32017 -> 0 bytes helm/druid/charts/zookeeper-2.1.4.tgz | Bin 10795 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 helm/druid/charts/mysql-1.6.4.tgz delete mode 100644 helm/druid/charts/postgresql-8.6.4.tgz delete mode 100644 helm/druid/charts/zookeeper-2.1.4.tgz diff --git a/helm/druid/charts/mysql-1.6.4.tgz b/helm/druid/charts/mysql-1.6.4.tgz deleted file mode 100644 index 89202e2bbaac436b6b16d44986c024714b56c1f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11121 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 D0elb* diff --git a/helm/druid/charts/postgresql-8.6.4.tgz b/helm/druid/charts/postgresql-8.6.4.tgz deleted file mode 100644 index 314c4285fc8db9b4e326e860773974541953b097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32017 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 Date: Wed, 22 Feb 2023 13:54:39 -0500 Subject: [PATCH 8/9] Add apache 2.0 license to all new files --- helm/druid/templates/broker/role.yaml | 19 +++++++++++++++++++ helm/druid/templates/broker/roleBinding.yaml | 19 +++++++++++++++++++ .../templates/broker/serviceAccount.yaml | 19 +++++++++++++++++++ helm/druid/templates/coordinator/role.yaml | 19 +++++++++++++++++++ .../templates/coordinator/roleBinding.yaml | 19 +++++++++++++++++++ .../templates/coordinator/serviceAccount.yaml | 19 +++++++++++++++++++ helm/druid/templates/historical/role.yaml | 19 +++++++++++++++++++ .../templates/historical/roleBinding.yaml | 19 +++++++++++++++++++ .../templates/historical/serviceAccount.yaml | 19 +++++++++++++++++++ helm/druid/templates/middleManager/role.yaml | 19 +++++++++++++++++++ .../templates/middleManager/roleBinding.yaml | 19 +++++++++++++++++++ .../middleManager/serviceAccount.yaml | 19 +++++++++++++++++++ helm/druid/templates/overlord/role.yaml | 19 +++++++++++++++++++ .../druid/templates/overlord/roleBinding.yaml | 19 +++++++++++++++++++ .../templates/overlord/serviceAccount.yaml | 19 +++++++++++++++++++ helm/druid/templates/router/role.yaml | 19 +++++++++++++++++++ helm/druid/templates/router/roleBinding.yaml | 19 +++++++++++++++++++ .../templates/router/serviceAccount.yaml | 19 +++++++++++++++++++ 18 files changed, 342 insertions(+) diff --git a/helm/druid/templates/broker/role.yaml b/helm/druid/templates/broker/role.yaml index 24ed7a6550fa..f6ff22d8b546 100644 --- a/helm/druid/templates/broker/role.yaml +++ b/helm/druid/templates/broker/role.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.broker.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/helm/druid/templates/broker/roleBinding.yaml b/helm/druid/templates/broker/roleBinding.yaml index f83aba31d4d3..0667c282cfaf 100644 --- a/helm/druid/templates/broker/roleBinding.yaml +++ b/helm/druid/templates/broker/roleBinding.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.broker.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/helm/druid/templates/broker/serviceAccount.yaml b/helm/druid/templates/broker/serviceAccount.yaml index 2cdad693037d..644aa7dad8f8 100644 --- a/helm/druid/templates/broker/serviceAccount.yaml +++ b/helm/druid/templates/broker/serviceAccount.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.broker.serviceAccount.create) (.Values.broker.enabled) }} apiVersion: v1 kind: ServiceAccount diff --git a/helm/druid/templates/coordinator/role.yaml b/helm/druid/templates/coordinator/role.yaml index ed595fb82ba4..c4dc3ba13671 100644 --- a/helm/druid/templates/coordinator/role.yaml +++ b/helm/druid/templates/coordinator/role.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.coordinator.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/helm/druid/templates/coordinator/roleBinding.yaml b/helm/druid/templates/coordinator/roleBinding.yaml index 177caf15c336..fd60eb5d06ff 100644 --- a/helm/druid/templates/coordinator/roleBinding.yaml +++ b/helm/druid/templates/coordinator/roleBinding.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.coordinator.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/helm/druid/templates/coordinator/serviceAccount.yaml b/helm/druid/templates/coordinator/serviceAccount.yaml index e46b1e988fe7..b7778322c787 100644 --- a/helm/druid/templates/coordinator/serviceAccount.yaml +++ b/helm/druid/templates/coordinator/serviceAccount.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.coordinator.serviceAccount.create) (.Values.coordinator.enabled) }} apiVersion: v1 kind: ServiceAccount diff --git a/helm/druid/templates/historical/role.yaml b/helm/druid/templates/historical/role.yaml index 8b5eafeee6c8..b4be8cc42ffe 100644 --- a/helm/druid/templates/historical/role.yaml +++ b/helm/druid/templates/historical/role.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.historical.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/helm/druid/templates/historical/roleBinding.yaml b/helm/druid/templates/historical/roleBinding.yaml index f267a67bdc14..aa9e9fbeb352 100644 --- a/helm/druid/templates/historical/roleBinding.yaml +++ b/helm/druid/templates/historical/roleBinding.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.historical.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/helm/druid/templates/historical/serviceAccount.yaml b/helm/druid/templates/historical/serviceAccount.yaml index 7794845131ad..2524503c89eb 100644 --- a/helm/druid/templates/historical/serviceAccount.yaml +++ b/helm/druid/templates/historical/serviceAccount.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.historical.serviceAccount.create) (.Values.historical.enabled) }} apiVersion: v1 kind: ServiceAccount diff --git a/helm/druid/templates/middleManager/role.yaml b/helm/druid/templates/middleManager/role.yaml index 88dee48f6354..22e0622f2ce7 100644 --- a/helm/druid/templates/middleManager/role.yaml +++ b/helm/druid/templates/middleManager/role.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.middleManager.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/helm/druid/templates/middleManager/roleBinding.yaml b/helm/druid/templates/middleManager/roleBinding.yaml index b511d6a8b591..fbca0994280b 100644 --- a/helm/druid/templates/middleManager/roleBinding.yaml +++ b/helm/druid/templates/middleManager/roleBinding.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.middleManager.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/helm/druid/templates/middleManager/serviceAccount.yaml b/helm/druid/templates/middleManager/serviceAccount.yaml index 5ab380fe5bab..00dc83cb1f3e 100644 --- a/helm/druid/templates/middleManager/serviceAccount.yaml +++ b/helm/druid/templates/middleManager/serviceAccount.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.middleManager.serviceAccount.create) (.Values.middleManager.enabled) }} apiVersion: v1 kind: ServiceAccount diff --git a/helm/druid/templates/overlord/role.yaml b/helm/druid/templates/overlord/role.yaml index f7b993c4be16..37ffbd891816 100644 --- a/helm/druid/templates/overlord/role.yaml +++ b/helm/druid/templates/overlord/role.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.overlord.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/helm/druid/templates/overlord/roleBinding.yaml b/helm/druid/templates/overlord/roleBinding.yaml index 8b22c3b7de86..2a5284e606a4 100644 --- a/helm/druid/templates/overlord/roleBinding.yaml +++ b/helm/druid/templates/overlord/roleBinding.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.overlord.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/helm/druid/templates/overlord/serviceAccount.yaml b/helm/druid/templates/overlord/serviceAccount.yaml index f809753d055c..b27ea8b4b31d 100644 --- a/helm/druid/templates/overlord/serviceAccount.yaml +++ b/helm/druid/templates/overlord/serviceAccount.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.overlord.serviceAccount.create) (.Values.overlord.enabled) }} apiVersion: v1 kind: ServiceAccount diff --git a/helm/druid/templates/router/role.yaml b/helm/druid/templates/router/role.yaml index 7816f5705283..52afc0a685a7 100644 --- a/helm/druid/templates/router/role.yaml +++ b/helm/druid/templates/router/role.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.router.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role diff --git a/helm/druid/templates/router/roleBinding.yaml b/helm/druid/templates/router/roleBinding.yaml index 6905aa9044fe..1b9e129305d0 100644 --- a/helm/druid/templates/router/roleBinding.yaml +++ b/helm/druid/templates/router/roleBinding.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.rbac.create) (.Values.router.enabled) }} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/helm/druid/templates/router/serviceAccount.yaml b/helm/druid/templates/router/serviceAccount.yaml index aaa9488438fb..d357b2bd0c40 100644 --- a/helm/druid/templates/router/serviceAccount.yaml +++ b/helm/druid/templates/router/serviceAccount.yaml @@ -1,3 +1,22 @@ +{{/* + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/}} + {{- if and (.Values.router.serviceAccount.create) (.Values.router.enabled) }} apiVersion: v1 kind: ServiceAccount From b7afbb2ebbb90cdc9b5d219dbcf64e26c7e0cc45 Mon Sep 17 00:00:00 2001 From: Jason Witkowski Date: Wed, 22 Feb 2023 14:10:01 -0500 Subject: [PATCH 9/9] Bump chart patch version --- helm/druid/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/druid/Chart.yaml b/helm/druid/Chart.yaml index cc4083be290e..aeb629d9fcf2 100644 --- a/helm/druid/Chart.yaml +++ b/helm/druid/Chart.yaml @@ -30,7 +30,7 @@ dependencies: version: 8.6.4 repository: https://charts.helm.sh/stable condition: postgresql.enabled -version: 0.3.4 +version: 0.3.5 home: https://druid.apache.org/ icon: https://druid.apache.org/img/favicon.png sources: