diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl new file mode 100644 index 0000000000000000000000000000000000000000..e27fd56b0af5af8ba3f38b91550bb01031e36338 --- /dev/null +++ b/templates/_helpers.tpl @@ -0,0 +1,53 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "MyAppCtx.name" -}} +{{- default .Chart.Name | trunc 63 | trimSuffix "-" }} +{{- end }} + + +{{/* +Application image tag +We select by default the Chart appVersion or an override in values +*/}} +{{- define "MyAppCtx.imageTag" }} +{{- $name := default .Chart.AppVersion .Values.image.tag }} +{{- printf "%s" $name }} +{{- end }} + + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "MyAppCtx.fullname" }} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-"}} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "MyAppCtx.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "MyAppCtx.labels" -}} +helm.sh/chart: {{ include "MyAppCtx.chart" . }} +{{ include "MyAppCtx.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "MyAppCtx.selectorLabels" -}} +app.kubernetes.io/name: {{ include "MyAppCtx.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/templates/api/api-config.yaml b/templates/api/api-config.yaml index b20aafd3a00086db5f5a6357f6c445bef72858f2..1a3ee02009c469d69667e2947ce72f59c01b7be2 100644 --- a/templates/api/api-config.yaml +++ b/templates/api/api-config.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: api-config + name: {{ include "MyAppCtx.fullname" . }}-api-config data: DB_ENDPOINT: "postgres:5432" DB_NAME: "{{ .Values.name }}-db" diff --git a/templates/api/api-deployment.yaml b/templates/api/api-deployment.yaml index dd06696e18885826f92266659ec35bf38af7b292..706f493f88ddde684d0f958a16208306a8f81544 100644 --- a/templates/api/api-deployment.yaml +++ b/templates/api/api-deployment.yaml @@ -2,18 +2,18 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: api + name: {{ include "MyAppCtx.fullname" . }}-api labels: - app: api + app: {{ include "MyAppCtx.fullname" . }}-api spec: replicas: {{ .Values.api.replicaCount }} selector: matchLabels: - app: api + app: {{ include "MyAppCtx.fullname" . }}-api template: metadata: labels: - app: api + app: {{ include "MyAppCtx.fullname" . }}-api spec: securityContext: runAsUser: 1001 @@ -60,21 +60,21 @@ spec: - name: DB_ENDPOINT valueFrom: configMapKeyRef: - name: api-config + name: {{ include "MyAppCtx.fullname" . }}-api-config key: DB_ENDPOINT - name: POSTGRES_DB valueFrom: configMapKeyRef: - name: api-config + name: {{ include "MyAppCtx.fullname" . }}-api-config key: DB_NAME - name: POSTGRES_USER valueFrom: secretKeyRef: - name: pg-credentials # Nom du secret + name: {{ include "MyAppCtx.fullname" . }}-pg-credentials # Nom du secret key: pg_username # nom de la clef dans le config map - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: pg-credentials # Nom du secret + name: {{ include "MyAppCtx.fullname" . }}-pg-credentials # Nom du secret key: pg_password {{- end}} \ No newline at end of file diff --git a/templates/api/api-ingress.yaml b/templates/api/api-ingress.yaml index 57a8b3a7636e39ffbbe4b87ba33b1b8b6e9e9f8e..e9ddd5f61cfdafa68fc0adff303a1112bbaf084b 100644 --- a/templates/api/api-ingress.yaml +++ b/templates/api/api-ingress.yaml @@ -4,7 +4,7 @@ kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx - name: api + name: {{ include "MyAppCtx.fullname" . }}-api spec: rules: - host: {{ .Values.api.ingress.host }} @@ -12,7 +12,7 @@ spec: paths: - backend: service: - name: api + name: {{ include "MyAppCtx.fullname" . }}-api port: number: 80 path: / diff --git a/templates/api/api-service.yaml b/templates/api/api-service.yaml index 2cc25a08b4aafcb408e56655b7800c4a0297197e..6b99ea66fbcef0f3f74bea021d3c903b91ef0def 100644 --- a/templates/api/api-service.yaml +++ b/templates/api/api-service.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: Service metadata: - name: api + name: {{ include "MyAppCtx.fullname" . }}-api spec: selector: - app: api + app: {{ include "MyAppCtx.fullname" . }}-api ports: - protocol: TCP port: 80 diff --git a/templates/database/pg-config.yaml b/templates/database/pg-config.yaml index f768aeee20e3e371d9cf89bb1bb3baa77ff4ebcf..7c118c9854ba62b3e93a02280d4fbb1af7ebd7a1 100644 --- a/templates/database/pg-config.yaml +++ b/templates/database/pg-config.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: pg-config + name: {{ include "MyAppCtx.fullname" . }}-pg-config data: db_name: "{{ .Values.name }}-db" db_path: "/var/lib/postgresql/data/pgdata" diff --git a/templates/database/pg-credentials.yaml b/templates/database/pg-credentials.yaml index a44056126445454c76202a368bf94b3d5f306c15..176354b977fac8c32f13c4a3ab59764567e7cc9e 100644 --- a/templates/database/pg-credentials.yaml +++ b/templates/database/pg-credentials.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Secret metadata: - name: pg-credentials + name: {{ include "MyAppCtx.fullname" . }}-pg-credentials type: Opaque data: pg_username: {{ .Values.database.credentials.username }} diff --git a/templates/database/pg-deployment.yaml b/templates/database/pg-deployment.yaml index 37727b01f2a3a4f72f664b7250e909e7b62e16b5..d6d5524975c88d17905afeb263b6a5357b45a2bd 100644 --- a/templates/database/pg-deployment.yaml +++ b/templates/database/pg-deployment.yaml @@ -2,18 +2,18 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: pg-database + name: {{ include "MyAppCtx.fullname" . }}-database labels: - app: pg + app: {{ include "MyAppCtx.fullname" . }}-pg spec: replicas: {{ .Values.database.replicaCount }} selector: matchLabels: - app: pg + app: {{ include "MyAppCtx.fullname" . }}-pg template: metadata: labels: - app: pg + app: {{ include "MyAppCtx.fullname" . }}-pg spec: containers: - name: postgres @@ -24,22 +24,22 @@ spec: - name: POSTGRES_DB valueFrom: configMapKeyRef: - name: pg-config # Nom du configmap + name: {{ include "MyAppCtx.fullname" . }}-pg-config # Nom du configmap key: db_name # nom de la clef dans le config map contenant le nom de la DB - name: PGDATA valueFrom: configMapKeyRef: - name: pg-config # Nom du configmap + name: {{ include "MyAppCtx.fullname" . }}-pg-config # Nom du configmap key: db_path # nom de la clef dans le configMap contenant path ou installer la db dans le volume persistant - name: POSTGRES_USER valueFrom: secretKeyRef: - name: pg-credentials # Nom du secret + name: {{ include "MyAppCtx.fullname" . }}-pg-credentials # Nom du secret key: pg_username # nom de la clef dans le secret - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: pg-credentials # Nom du secret + name: {{ include "MyAppCtx.fullname" . }}-pg-credentials # Nom du secret key: pg_password # nom de la clef dans le secret contenant le password imagePullSecrets: - name: takima-school-registry diff --git a/templates/database/pg-service.yaml b/templates/database/pg-service.yaml index 8fdacbeb33deb72fb349423eed270b6b5894c0f4..91fb92d44cc9cd0730413b364bd0d5148a812819 100644 --- a/templates/database/pg-service.yaml +++ b/templates/database/pg-service.yaml @@ -2,13 +2,13 @@ apiVersion: v1 kind: Service metadata: - name: postgres + name: {{ include "MyAppCtx.fullname" . }}-service labels: - app: pg + app: {{ include "MyAppCtx.fullname" . }}-pg spec: type: ClusterIP ports: - port: 5432 selector: - app: pg + app: {{ include "MyAppCtx.fullname" . }}-pg {{- end}} \ No newline at end of file diff --git a/templates/front/front-config.yaml b/templates/front/front-config.yaml index da89df77a97e1c3bee1c975c1c7dbb9db99547b5..f5f50152631cf9b2a4a75d1fda1aaae5f5a8030a 100644 --- a/templates/front/front-config.yaml +++ b/templates/front/front-config.yaml @@ -8,7 +8,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ .Values.name }}-front + name: {{ include "MyAppCtx.fullname" . }}-front data: API_URL: {{ $apiUrl }} {{- end }} \ No newline at end of file diff --git a/templates/front/front-deployment.yaml b/templates/front/front-deployment.yaml index fa7c697c84c6b69bc07da8282ea9a3952024706f..fe164b0aba871d60b98838d26513e37ea101f51a 100644 --- a/templates/front/front-deployment.yaml +++ b/templates/front/front-deployment.yaml @@ -2,18 +2,18 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ .Values.name }}-front + name: {{ include "MyAppCtx.fullname" . }}-front labels: - app: front + app: {{ include "MyAppCtx.fullname" . }}-front spec: replicas: {{ .Values.front.replicaCount }} selector: matchLabels: - app: front + app: {{ include "MyAppCtx.fullname" . }}-front template: metadata: labels: - app: front + app: {{ include "MyAppCtx.fullname" . }}-front spec: imagePullSecrets: - name: takima-school-registry @@ -63,6 +63,6 @@ spec: - name: API_URL valueFrom: configMapKeyRef: - name: {{ .Values.name }}-front + name: {{ include "MyAppCtx.fullname" . }}-front key: API_URL {{- end }} \ No newline at end of file diff --git a/templates/front/front-ingress.yaml b/templates/front/front-ingress.yaml index 8513bb5bc872270f3785ecc4f51469e7b2b881cc..4a3bb59155dc9f9341bf9774f0006ccae71191bc 100644 --- a/templates/front/front-ingress.yaml +++ b/templates/front/front-ingress.yaml @@ -4,7 +4,7 @@ kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx - name: {{ .Values.name }}-front + name: {{ include "MyAppCtx.fullname" . }}-front spec: rules: - host: {{ .Values.front.ingress.host }} @@ -12,7 +12,7 @@ spec: paths: - backend: service: - name: {{ .Values.name }}-front + name: {{ include "MyAppCtx.fullname" . }}-front port: number: 80 path: / diff --git a/templates/front/front-service.yaml b/templates/front/front-service.yaml index 8031d1a9e190946393c8359877c954bfb10ec2d5..317949955e1d622f768d84836147b76cc6ef2937 100644 --- a/templates/front/front-service.yaml +++ b/templates/front/front-service.yaml @@ -2,10 +2,10 @@ apiVersion: v1 kind: Service metadata: - name: {{ .Values.name }}-front + name: {{ include "MyAppCtx.fullname" . }}-front spec: selector: - app: front + app: {{ include "MyAppCtx.fullname" . }}-front ports: - protocol: TCP port: 80 diff --git a/values.yaml b/values.yaml index 3de0c5fe449bcb4cc7e17c59b20bb282de7a8bec..764c38217fe8f4dbdae74697048ce45b44b8c0a0 100644 --- a/values.yaml +++ b/values.yaml @@ -2,7 +2,7 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. # We have only done front for now -name: cdb +nameOverride: computer-db database: enabled: true @@ -19,7 +19,7 @@ api: image: repository: registry.gitlab.com/takima-school/images/cdb/api tag: latest - replicaCount: 2 + replicaCount: 1 ingress: tlsEnabled: true host: api.lherve.takima.school