From 7b32a31c9242c9f8389a548360537cc20bc37900 Mon Sep 17 00:00:00 2001 From: khaled jabari Date: Wed, 2 Oct 2024 13:41:30 +0300 Subject: [PATCH 1/3] feat: add namespace override support to Helm chart Extended the Helm chart to allow for a namespace override via the new `namespaceOverride` value. This ensures that a custom namespace can be specified and used, otherwise defaults to the release namespace. This update enhances deployment flexibility in different Kubernetes environments. --- charts/localstack/templates/_helpers.tpl | 13 +++++++++++++ charts/localstack/templates/deployment.yaml | 2 +- charts/localstack/values.yaml | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/charts/localstack/templates/_helpers.tpl b/charts/localstack/templates/_helpers.tpl index 696a0d1..6bd119e 100644 --- a/charts/localstack/templates/_helpers.tpl +++ b/charts/localstack/templates/_helpers.tpl @@ -23,6 +23,19 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} +{{/* +Create a default namespace for the app. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If a namespace override is provided, it will be used as the namespace. +*/}} +{{- define "localstack.namespace" -}} +{{- if .Values.namespaceOverride }} +{{- .Values.namespaceOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- .Release.Namespace | quote }} +{{- end }} +{{- end }} + {{/* Create chart name and version as used by the chart label. */}} diff --git a/charts/localstack/templates/deployment.yaml b/charts/localstack/templates/deployment.yaml index 3cb1086..acdefe0 100644 --- a/charts/localstack/templates/deployment.yaml +++ b/charts/localstack/templates/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "localstack.fullname" . }} - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "localstack.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/values.yaml b/charts/localstack/values.yaml index 8622b49..f20f622 100644 --- a/charts/localstack/values.yaml +++ b/charts/localstack/values.yaml @@ -18,6 +18,7 @@ image: imagePullSecrets: [] nameOverride: "" fullnameOverride: "" +namespaceOverride: "" ## @param extraDeploy Extra objects to deploy (value evaluated as a template) ## From 3d99d2f63809ca957e45b86304e8facf7412de55 Mon Sep 17 00:00:00 2001 From: khaled jabari Date: Tue, 8 Oct 2024 14:34:11 +0300 Subject: [PATCH 2/3] feat: Switch to common namespace template Updated various Kubernetes resource templates to use the 'common.names.namespace' helper instead of '.Release.Namespace'. This change standardizes the namespace declaration across all templates for consistency and maintainability. --- charts/localstack/templates/_helpers.tpl | 8 ++++---- charts/localstack/templates/configmap.yaml | 2 +- charts/localstack/templates/deployment.yaml | 2 +- charts/localstack/templates/ingress.yaml | 2 +- charts/localstack/templates/pvc.yaml | 2 +- charts/localstack/templates/role.yaml | 2 +- charts/localstack/templates/rolebinding.yaml | 2 +- charts/localstack/templates/service.yaml | 2 +- charts/localstack/templates/serviceaccount.yaml | 2 +- charts/localstack/values.yaml | 6 +++++- 10 files changed, 17 insertions(+), 13 deletions(-) diff --git a/charts/localstack/templates/_helpers.tpl b/charts/localstack/templates/_helpers.tpl index 6bd119e..9d74c20 100644 --- a/charts/localstack/templates/_helpers.tpl +++ b/charts/localstack/templates/_helpers.tpl @@ -26,11 +26,11 @@ If release name contains chart name it will be used as a full name. {{/* Create a default namespace for the app. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If a namespace override is provided, it will be used as the namespace. +If a common.names.namespace is provided, it will be used as the namespace. */}} -{{- define "localstack.namespace" -}} -{{- if .Values.namespaceOverride }} -{{- .Values.namespaceOverride | trunc 63 | trimSuffix "-" }} +{{- define "common.names.namespace" -}} +{{- if .Values.common.names.namespaces }} +{{- .Values.common.names.namespaces | trunc 63 | trimSuffix "-" }} {{- else }} {{- .Release.Namespace | quote }} {{- end }} diff --git a/charts/localstack/templates/configmap.yaml b/charts/localstack/templates/configmap.yaml index 75b9edb..251f572 100644 --- a/charts/localstack/templates/configmap.yaml +++ b/charts/localstack/templates/configmap.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ template "localstack.fullname" . }}-init-scripts-config - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/templates/deployment.yaml b/charts/localstack/templates/deployment.yaml index acdefe0..43f6a84 100644 --- a/charts/localstack/templates/deployment.yaml +++ b/charts/localstack/templates/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "localstack.fullname" . }} - namespace: {{ include "localstack.namespace" . }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/templates/ingress.yaml b/charts/localstack/templates/ingress.yaml index f02f4e2..8d6d87f 100644 --- a/charts/localstack/templates/ingress.yaml +++ b/charts/localstack/templates/ingress.yaml @@ -13,7 +13,7 @@ apiVersion: extensions/v1beta1 kind: Ingress metadata: name: {{ $fullName }} - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/templates/pvc.yaml b/charts/localstack/templates/pvc.yaml index 491e145..11e365b 100644 --- a/charts/localstack/templates/pvc.yaml +++ b/charts/localstack/templates/pvc.yaml @@ -3,7 +3,7 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: {{ include "common.names.fullname" . }} - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/templates/role.yaml b/charts/localstack/templates/role.yaml index 4c8587d..06f68d5 100644 --- a/charts/localstack/templates/role.yaml +++ b/charts/localstack/templates/role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} name: {{ include "localstack.roleName" . }} labels: {{- include "localstack.labels" . | nindent 4 }} diff --git a/charts/localstack/templates/rolebinding.yaml b/charts/localstack/templates/rolebinding.yaml index c278598..9cdb897 100644 --- a/charts/localstack/templates/rolebinding.yaml +++ b/charts/localstack/templates/rolebinding.yaml @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: {{ include "localstack.roleBindingName" . }} - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} subjects: diff --git a/charts/localstack/templates/service.yaml b/charts/localstack/templates/service.yaml index 7407d20..b7d5705 100644 --- a/charts/localstack/templates/service.yaml +++ b/charts/localstack/templates/service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: name: {{ include "localstack.fullname" . }} - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/templates/serviceaccount.yaml b/charts/localstack/templates/serviceaccount.yaml index 317491f..9a47e77 100644 --- a/charts/localstack/templates/serviceaccount.yaml +++ b/charts/localstack/templates/serviceaccount.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ include "localstack.serviceAccountName" . }} - namespace: {{ .Release.Namespace | quote }} + namespace: {{ include "common.names.namespace" . }} labels: {{- include "localstack.labels" . | nindent 4 }} annotations: diff --git a/charts/localstack/values.yaml b/charts/localstack/values.yaml index f20f622..3589c45 100644 --- a/charts/localstack/values.yaml +++ b/charts/localstack/values.yaml @@ -18,7 +18,10 @@ image: imagePullSecrets: [] nameOverride: "" fullnameOverride: "" -namespaceOverride: "" + +common: + names: + namespaces: "" ## @param extraDeploy Extra objects to deploy (value evaluated as a template) ## @@ -264,3 +267,4 @@ volumeMounts: [] ## @param priorityClassName Allows you to set the priorityClassName for the pod ## The default is not to set any priorityClassName # priorityClassName: "" + From a4ae0f6e82be630562812877fcdf3ad9f2707db8 Mon Sep 17 00:00:00 2001 From: khaled jabari Date: Wed, 9 Oct 2024 09:16:53 +0300 Subject: [PATCH 3/3] feat: remove unused namespace helper function --- charts/localstack/templates/_helpers.tpl | 13 ------------- charts/localstack/values.yaml | 4 ---- 2 files changed, 17 deletions(-) diff --git a/charts/localstack/templates/_helpers.tpl b/charts/localstack/templates/_helpers.tpl index 9d74c20..696a0d1 100644 --- a/charts/localstack/templates/_helpers.tpl +++ b/charts/localstack/templates/_helpers.tpl @@ -23,19 +23,6 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} -{{/* -Create a default namespace for the app. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If a common.names.namespace is provided, it will be used as the namespace. -*/}} -{{- define "common.names.namespace" -}} -{{- if .Values.common.names.namespaces }} -{{- .Values.common.names.namespaces | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- .Release.Namespace | quote }} -{{- end }} -{{- end }} - {{/* Create chart name and version as used by the chart label. */}} diff --git a/charts/localstack/values.yaml b/charts/localstack/values.yaml index 3589c45..b2ba480 100644 --- a/charts/localstack/values.yaml +++ b/charts/localstack/values.yaml @@ -19,10 +19,6 @@ imagePullSecrets: [] nameOverride: "" fullnameOverride: "" -common: - names: - namespaces: "" - ## @param extraDeploy Extra objects to deploy (value evaluated as a template) ## extraDeploy: []