diff --git a/charts/typesense-operator/templates/_helpers.tpl b/charts/typesense-operator/templates/_helpers.tpl index 8b5e1ca..0fe0219 100644 --- a/charts/typesense-operator/templates/_helpers.tpl +++ b/charts/typesense-operator/templates/_helpers.tpl @@ -23,6 +23,13 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} +{{/* +Allow the release namespace to be overridden for multi-namespace deployments in combined charts. +*/}} +{{- define "typesense-operator.namespace" -}} +{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + {{/* Create chart name and version as used by the chart label. */}} diff --git a/charts/typesense-operator/templates/deployment.yaml b/charts/typesense-operator/templates/deployment.yaml index d0df06a..ee386be 100644 --- a/charts/typesense-operator/templates/deployment.yaml +++ b/charts/typesense-operator/templates/deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "typesense-operator.fullname" . }}-controller-manager + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: control-plane: controller-manager {{- include "typesense-operator.labels" . | nindent 4 }} @@ -49,4 +50,4 @@ spec: securityContext: {{- toYaml .Values.controllerManager.podSecurityContext | nindent 8 }} serviceAccountName: {{ include "typesense-operator.fullname" . }}-controller-manager - terminationGracePeriodSeconds: 10 \ No newline at end of file + terminationGracePeriodSeconds: 10 diff --git a/charts/typesense-operator/templates/leader-election-rbac.yaml b/charts/typesense-operator/templates/leader-election-rbac.yaml index 75d218b..4942adf 100644 --- a/charts/typesense-operator/templates/leader-election-rbac.yaml +++ b/charts/typesense-operator/templates/leader-election-rbac.yaml @@ -2,6 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ include "typesense-operator.fullname" . }}-leader-election-role + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} rules: @@ -50,4 +51,4 @@ roleRef: subjects: - kind: ServiceAccount name: '{{ include "typesense-operator.fullname" . }}-controller-manager' - namespace: '{{ .Release.Namespace }}' \ No newline at end of file + namespace: {{ include "typesense-operator.namespace" . | quote }} diff --git a/charts/typesense-operator/templates/manager-rbac.yaml b/charts/typesense-operator/templates/manager-rbac.yaml index 24f8f68..4a8b536 100644 --- a/charts/typesense-operator/templates/manager-rbac.yaml +++ b/charts/typesense-operator/templates/manager-rbac.yaml @@ -2,6 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "typesense-operator.fullname" . }}-manager-role + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} rules: @@ -179,4 +180,4 @@ roleRef: subjects: - kind: ServiceAccount name: '{{ include "typesense-operator.fullname" . }}-controller-manager' - namespace: '{{ .Release.Namespace }}' \ No newline at end of file + namespace: {{ include "typesense-operator.namespace" . | quote }} diff --git a/charts/typesense-operator/templates/metrics-auth-rbac.yaml b/charts/typesense-operator/templates/metrics-auth-rbac.yaml index e40bcab..a4331a0 100644 --- a/charts/typesense-operator/templates/metrics-auth-rbac.yaml +++ b/charts/typesense-operator/templates/metrics-auth-rbac.yaml @@ -2,6 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "typesense-operator.fullname" . }}-metrics-auth-role + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} rules: @@ -31,4 +32,4 @@ roleRef: subjects: - kind: ServiceAccount name: '{{ include "typesense-operator.fullname" . }}-controller-manager' - namespace: '{{ .Release.Namespace }}' \ No newline at end of file + namespace: {{ include "typesense-operator.namespace" . | quote }} diff --git a/charts/typesense-operator/templates/metrics-reader-rbac.yaml b/charts/typesense-operator/templates/metrics-reader-rbac.yaml index ca6e7e3..6dc62de 100644 --- a/charts/typesense-operator/templates/metrics-reader-rbac.yaml +++ b/charts/typesense-operator/templates/metrics-reader-rbac.yaml @@ -2,10 +2,11 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "typesense-operator.fullname" . }}-metrics-reader + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} rules: - nonResourceURLs: - /metrics verbs: - - get \ No newline at end of file + - get diff --git a/charts/typesense-operator/templates/metrics-service.yaml b/charts/typesense-operator/templates/metrics-service.yaml index 81877f1..4d85af3 100644 --- a/charts/typesense-operator/templates/metrics-service.yaml +++ b/charts/typesense-operator/templates/metrics-service.yaml @@ -2,6 +2,7 @@ apiVersion: v1 kind: Service metadata: name: {{ include "typesense-operator.fullname" . }}-controller-manager-metrics-service + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: control-plane: controller-manager {{- include "typesense-operator.labels" . | nindent 4 }} @@ -11,4 +12,4 @@ spec: control-plane: controller-manager {{- include "typesense-operator.selectorLabels" . | nindent 4 }} ports: - {{- .Values.metricsService.ports | toYaml | nindent 2 }} \ No newline at end of file + {{- .Values.metricsService.ports | toYaml | nindent 2 }} diff --git a/charts/typesense-operator/templates/serviceaccount.yaml b/charts/typesense-operator/templates/serviceaccount.yaml index c73d651..fd89a2f 100644 --- a/charts/typesense-operator/templates/serviceaccount.yaml +++ b/charts/typesense-operator/templates/serviceaccount.yaml @@ -2,7 +2,8 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ include "typesense-operator.fullname" . }}-controller-manager + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} annotations: - {{- toYaml .Values.controllerManager.serviceAccount.annotations | nindent 4 }} \ No newline at end of file + {{- toYaml .Values.controllerManager.serviceAccount.annotations | nindent 4 }} diff --git a/charts/typesense-operator/templates/typesensecluster-editor-rbac.yaml b/charts/typesense-operator/templates/typesensecluster-editor-rbac.yaml index d18ddc9..89b4fd7 100644 --- a/charts/typesense-operator/templates/typesensecluster-editor-rbac.yaml +++ b/charts/typesense-operator/templates/typesensecluster-editor-rbac.yaml @@ -2,6 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "typesense-operator.fullname" . }}-typesensecluster-editor-role + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} rules: @@ -22,4 +23,4 @@ rules: resources: - typesenseclusters/status verbs: - - get \ No newline at end of file + - get diff --git a/charts/typesense-operator/templates/typesensecluster-viewer-rbac.yaml b/charts/typesense-operator/templates/typesensecluster-viewer-rbac.yaml index c9ad825..b8976ea 100644 --- a/charts/typesense-operator/templates/typesensecluster-viewer-rbac.yaml +++ b/charts/typesense-operator/templates/typesensecluster-viewer-rbac.yaml @@ -2,6 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "typesense-operator.fullname" . }}-typesensecluster-viewer-role + namespace: {{ include "typesense-operator.namespace" . | quote }} labels: {{- include "typesense-operator.labels" . | nindent 4 }} rules: @@ -18,4 +19,4 @@ rules: resources: - typesenseclusters/status verbs: - - get \ No newline at end of file + - get diff --git a/charts/typesense-operator/values.yaml b/charts/typesense-operator/values.yaml index f1f349c..2f079e7 100644 --- a/charts/typesense-operator/values.yaml +++ b/charts/typesense-operator/values.yaml @@ -1,3 +1,5 @@ +namespaceOverride: "" + controllerManager: manager: args: diff --git a/internal/controller/utils.go b/internal/controller/utils.go index e720266..524dc80 100644 --- a/internal/controller/utils.go +++ b/internal/controller/utils.go @@ -4,9 +4,10 @@ import ( "crypto/rand" "encoding/base64" "fmt" + "sort" + tsv1alpha1 "github.com/akyriako/typesense-operator/api/v1alpha1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sort" ) const (