From 6aa7aaf7881997a24b27672ecffaf71074aa6985 Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 16:28:18 +0200 Subject: [PATCH 01/12] initial cloudnative-pg supprt --- kubernetes/cluster-secret.yaml | 11 +++++++++++ kubernetes/cluster.yaml | 15 +++++++++++++++ kubernetes/database-prod.yaml | 11 +++++++++++ kubernetes/helm/templates/app-deployment.yaml | 2 +- .../helm/templates/db-postgresdatabase.yaml | 11 +++++++++++ kubernetes/helm/values.yaml | 7 ++++--- kubernetes/kustomization.yaml | 4 ++++ 7 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 kubernetes/cluster-secret.yaml create mode 100644 kubernetes/cluster.yaml create mode 100644 kubernetes/database-prod.yaml create mode 100644 kubernetes/helm/templates/db-postgresdatabase.yaml diff --git a/kubernetes/cluster-secret.yaml b/kubernetes/cluster-secret.yaml new file mode 100644 index 0000000..671e925 --- /dev/null +++ b/kubernetes/cluster-secret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: city-api-pg-secret + namespace: default + labels: + app: city-api-pg + type: Opaque +data: + username: Y2l0eV9hcGk= + password: Y2l0eV9hcGk= diff --git a/kubernetes/cluster.yaml b/kubernetes/cluster.yaml new file mode 100644 index 0000000..ad48938 --- /dev/null +++ b/kubernetes/cluster.yaml @@ -0,0 +1,15 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: Cluster +metadata: + name: city-api-pg +spec: + instances: 1 + imageName: postgres:15 + storage: + size: 1Gi + bootstrap: + initdb: + database: city_api + owner: city_api + secret: + name: city-api-pg-secret diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml new file mode 100644 index 0000000..950e048 --- /dev/null +++ b/kubernetes/database-prod.yaml @@ -0,0 +1,11 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: PostgresDatabase +metadata: + name: city-api-db-template +spec: + cluster: + name: city-api-pg + database: + name: city_api_clone + template: + name: city_api diff --git a/kubernetes/helm/templates/app-deployment.yaml b/kubernetes/helm/templates/app-deployment.yaml index f5cebf9..10fd5c0 100644 --- a/kubernetes/helm/templates/app-deployment.yaml +++ b/kubernetes/helm/templates/app-deployment.yaml @@ -23,7 +23,7 @@ spec: - name: CITY_API_PORT value: {{ .Values.app.port | quote }} - name: CITY_API_DB_URL - value: {{ .Values.db.host }} + value: "postgresql://{{ .Values.db.user }}:{{ .Values.db.password }}@{{ .Values.db.host }}:{{ .Values.db.port }}/{{ .Values.db.name }}" - name: CITY_API_DB_USER value: {{ .Values.db.user }} - name: CITY_API_DB_PWD diff --git a/kubernetes/helm/templates/db-postgresdatabase.yaml b/kubernetes/helm/templates/db-postgresdatabase.yaml new file mode 100644 index 0000000..f802e6e --- /dev/null +++ b/kubernetes/helm/templates/db-postgresdatabase.yaml @@ -0,0 +1,11 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: PostgresDatabase +metadata: + name: {{ printf "city-api-%s-db" .Values.app.env_name }} +spec: + cluster: + name: {{ .Values.db.clusterName | default "city-api-pg" }} + database: + name: {{ required "db.name is required" .Values.db.name }} + template: + name: city_api-pg diff --git a/kubernetes/helm/values.yaml b/kubernetes/helm/values.yaml index bead9ef..5b64479 100644 --- a/kubernetes/helm/values.yaml +++ b/kubernetes/helm/values.yaml @@ -1,15 +1,16 @@ app: image: ghcr.io/aurianecodebien/cityapi + env_name: "prod" tag: "latest" port: 2022 - nodePort: 30022 # FIXME: Also support ClusterIP + Ingress + nodePort: 30022 addr: "0.0.0.0" db: - image: postgres + clusterName: city-api-pg port: 5432 storage: 1Gi - name: city_api + name: city_api-pg user: city_api password: city_api host: city-api-db diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml index 480a7d7..1aec867 100644 --- a/kubernetes/kustomization.yaml +++ b/kubernetes/kustomization.yaml @@ -5,7 +5,11 @@ namespace: cityapi resources: - namespace.yaml - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml + - https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.22.0/cloudnative-pg.yaml - argo-cd.yaml + - cluster-secret.yaml + - cluster.yaml + - database-prod.yaml patches: - patch: |- - op: replace From 22c4b4765d546a15da5c8d9bd7218f792ab1eceb Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 16:35:33 +0200 Subject: [PATCH 02/12] cloudnative-pg --- kubernetes/kustomization.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml index 1aec867..34c2bf8 100644 --- a/kubernetes/kustomization.yaml +++ b/kubernetes/kustomization.yaml @@ -5,7 +5,7 @@ namespace: cityapi resources: - namespace.yaml - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml - - https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.22.0/cloudnative-pg.yaml + - https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.27/releases/cnpg-1.27.0.yaml - argo-cd.yaml - cluster-secret.yaml - cluster.yaml From 0d0761a23772015bb3787ee09fde97a5fb99d6cf Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 16:37:49 +0200 Subject: [PATCH 03/12] cloudnative-pg --- kubernetes/kustomization.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml index 34c2bf8..737ec2d 100644 --- a/kubernetes/kustomization.yaml +++ b/kubernetes/kustomization.yaml @@ -3,7 +3,6 @@ kind: Kustomization namespace: cityapi resources: - - namespace.yaml - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml - https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.27/releases/cnpg-1.27.0.yaml - argo-cd.yaml From acd863f6c84b358c495fc0abf57eaa36b625c957 Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 16:42:29 +0200 Subject: [PATCH 04/12] cloudnative-pg --- kubernetes/cluster-secret.yaml | 3 +-- kubernetes/kustomization.yaml | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/kubernetes/cluster-secret.yaml b/kubernetes/cluster-secret.yaml index 671e925..8ea93c0 100644 --- a/kubernetes/cluster-secret.yaml +++ b/kubernetes/cluster-secret.yaml @@ -2,10 +2,9 @@ apiVersion: v1 kind: Secret metadata: name: city-api-pg-secret - namespace: default labels: app: city-api-pg - type: Opaque +type: Opaque data: username: Y2l0eV9hcGk= password: Y2l0eV9hcGk= diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml index 737ec2d..eb35f51 100644 --- a/kubernetes/kustomization.yaml +++ b/kubernetes/kustomization.yaml @@ -3,12 +3,12 @@ kind: Kustomization namespace: cityapi resources: - - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml - https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.27/releases/cnpg-1.27.0.yaml - - argo-cd.yaml - - cluster-secret.yaml - cluster.yaml - database-prod.yaml + - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml + - argo-cd.yaml + - cluster-secret.yaml patches: - patch: |- - op: replace From 5748a2c457515509634c8691554d6f3a79756656 Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 16:48:08 +0200 Subject: [PATCH 05/12] cloudnative-pg --- INSTALL.md | 5 ++++- kubernetes/kustomization.yaml | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index fb02ee7..bafd971 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -15,11 +15,14 @@ https://docs.k3s.io/quick-start `kubectl create namespace cityapi` -### 2. Installer Argo-CD +### 2. Installer Argo-CD et Cloudnative-pg ```bash kubectl -n cityapi apply -k kubernetes +kubectl apply --server-side -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.27/releases/cnpg-1.27.0.yaml ``` +Note: CLoudnative-pg ne peut pas être installé via kustomize car ses CRD sont trop longs. + ### 3. Déployer ApplicationSet `kubectl -n cityapi apply -f kubernetes/base/argo-cd.yaml` diff --git a/kubernetes/kustomization.yaml b/kubernetes/kustomization.yaml index eb35f51..5a062e7 100644 --- a/kubernetes/kustomization.yaml +++ b/kubernetes/kustomization.yaml @@ -3,7 +3,6 @@ kind: Kustomization namespace: cityapi resources: - - https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.27/releases/cnpg-1.27.0.yaml - cluster.yaml - database-prod.yaml - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml From 46a4c1dc25caa502f2a3a30544c72a41886909ee Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 16:53:24 +0200 Subject: [PATCH 06/12] cloudnative-pg --- kubernetes/database-prod.yaml | 8 +++----- kubernetes/helm/templates/db-postgresdatabase.yaml | 4 ++-- kubernetes/helm/values.yaml | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index 950e048..f9da434 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -1,11 +1,9 @@ apiVersion: postgresql.cnpg.io/v1 -kind: PostgresDatabase +kind: Database metadata: - name: city-api-db-template + name: city-api-prod-db spec: cluster: name: city-api-pg database: - name: city_api_clone - template: - name: city_api + name: city_api-prod-pg \ No newline at end of file diff --git a/kubernetes/helm/templates/db-postgresdatabase.yaml b/kubernetes/helm/templates/db-postgresdatabase.yaml index f802e6e..fce4086 100644 --- a/kubernetes/helm/templates/db-postgresdatabase.yaml +++ b/kubernetes/helm/templates/db-postgresdatabase.yaml @@ -1,5 +1,5 @@ apiVersion: postgresql.cnpg.io/v1 -kind: PostgresDatabase +kind: Database metadata: name: {{ printf "city-api-%s-db" .Values.app.env_name }} spec: @@ -8,4 +8,4 @@ spec: database: name: {{ required "db.name is required" .Values.db.name }} template: - name: city_api-pg + name: city_api-prod-pg diff --git a/kubernetes/helm/values.yaml b/kubernetes/helm/values.yaml index 5b64479..70e6a06 100644 --- a/kubernetes/helm/values.yaml +++ b/kubernetes/helm/values.yaml @@ -10,7 +10,7 @@ db: clusterName: city-api-pg port: 5432 storage: 1Gi - name: city_api-pg + name: city_api-prod-pg user: city_api password: city_api host: city-api-db From d8905cf06755603bb25b479447577a6d91d0ea6d Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 17:02:18 +0200 Subject: [PATCH 07/12] cloudnative-pg --- kubernetes/database-prod.yaml | 5 +++-- kubernetes/helm/templates/db-postgresdatabase.yaml | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index f9da434..53ec47f 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -3,7 +3,8 @@ kind: Database metadata: name: city-api-prod-db spec: + databaseReclaimPolicy: retain + name: city_api-prod-pg cluster: name: city-api-pg - database: - name: city_api-prod-pg \ No newline at end of file + owner: city_api \ No newline at end of file diff --git a/kubernetes/helm/templates/db-postgresdatabase.yaml b/kubernetes/helm/templates/db-postgresdatabase.yaml index fce4086..ac06147 100644 --- a/kubernetes/helm/templates/db-postgresdatabase.yaml +++ b/kubernetes/helm/templates/db-postgresdatabase.yaml @@ -3,9 +3,10 @@ kind: Database metadata: name: {{ printf "city-api-%s-db" .Values.app.env_name }} spec: + databaseReclaimPolicy: delete + name: {{ required "db.name is required" .Values.db.name }} cluster: name: {{ .Values.db.clusterName | default "city-api-pg" }} - database: - name: {{ required "db.name is required" .Values.db.name }} - template: - name: city_api-prod-pg + template: + name: city_api-prod-pg + owner: city_api \ No newline at end of file From a937a687977d0d2607c612e8e9418090130b9a6e Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 17:09:24 +0200 Subject: [PATCH 08/12] cloudnative-pg --- kubernetes/database-prod.yaml | 3 +++ kubernetes/helm/templates/app-deployment.yaml | 5 +++++ kubernetes/helm/templates/app-pvc.yaml | 3 +++ kubernetes/helm/templates/app-service.yaml | 3 +++ kubernetes/helm/templates/db-config.yaml | 3 +++ kubernetes/helm/templates/db-deployment.yaml | 5 +++++ kubernetes/helm/templates/db-postgresdatabase.yaml | 3 +++ kubernetes/helm/templates/db-service.yaml | 4 ++++ 8 files changed, 29 insertions(+) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index 53ec47f..52dc26b 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -2,6 +2,9 @@ apiVersion: postgresql.cnpg.io/v1 kind: Database metadata: name: city-api-prod-db + labels: + app: city-api-app + environment: prod spec: databaseReclaimPolicy: retain name: city_api-prod-pg diff --git a/kubernetes/helm/templates/app-deployment.yaml b/kubernetes/helm/templates/app-deployment.yaml index 10fd5c0..72e0890 100644 --- a/kubernetes/helm/templates/app-deployment.yaml +++ b/kubernetes/helm/templates/app-deployment.yaml @@ -2,15 +2,20 @@ apiVersion: apps/v1 kind: Deployment metadata: name: city-api-app + labels: + app: city-api-app + environment: {{ .Values.app.env_name }} spec: replicas: 1 selector: matchLabels: app: city-api-app + environment: {{ .Values.app.env_name }} template: metadata: labels: app: city-api-app + environment: {{ .Values.app.env_name }} spec: containers: - name: city-api diff --git a/kubernetes/helm/templates/app-pvc.yaml b/kubernetes/helm/templates/app-pvc.yaml index ae3f273..d9a5f69 100644 --- a/kubernetes/helm/templates/app-pvc.yaml +++ b/kubernetes/helm/templates/app-pvc.yaml @@ -2,6 +2,9 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: city-api-pvc + labels: + app: city-api + environment: {{ .Values.app.env_name }} spec: accessModes: - ReadWriteOnce diff --git a/kubernetes/helm/templates/app-service.yaml b/kubernetes/helm/templates/app-service.yaml index b36a391..200d6f4 100644 --- a/kubernetes/helm/templates/app-service.yaml +++ b/kubernetes/helm/templates/app-service.yaml @@ -2,6 +2,9 @@ apiVersion: v1 kind: Service metadata: name: city-api-app + labels: + app: city-api-app + environment: {{ .Values.app.env_name }} spec: type: NodePort selector: diff --git a/kubernetes/helm/templates/db-config.yaml b/kubernetes/helm/templates/db-config.yaml index 61e05c8..46d3860 100644 --- a/kubernetes/helm/templates/db-config.yaml +++ b/kubernetes/helm/templates/db-config.yaml @@ -2,6 +2,9 @@ apiVersion: v1 kind: ConfigMap metadata: name: city-api-init + labels: + app: city-api + environment: {{ .Values.app.env_name }} data: init.sql: | {{ .Values.initSql | indent 4 }} diff --git a/kubernetes/helm/templates/db-deployment.yaml b/kubernetes/helm/templates/db-deployment.yaml index 4ee583d..ac311bf 100644 --- a/kubernetes/helm/templates/db-deployment.yaml +++ b/kubernetes/helm/templates/db-deployment.yaml @@ -2,15 +2,20 @@ apiVersion: apps/v1 kind: Deployment metadata: name: city-api-db + labels: + app: city-api-db + environment: {{ .Values.app.env_name }} spec: replicas: 1 selector: matchLabels: app: city-api-db + environment: {{ .Values.app.env_name }} template: metadata: labels: app: city-api-db + environment: {{ .Values.app.env_name }} spec: containers: - name: postgres diff --git a/kubernetes/helm/templates/db-postgresdatabase.yaml b/kubernetes/helm/templates/db-postgresdatabase.yaml index ac06147..8ef4803 100644 --- a/kubernetes/helm/templates/db-postgresdatabase.yaml +++ b/kubernetes/helm/templates/db-postgresdatabase.yaml @@ -2,6 +2,9 @@ apiVersion: postgresql.cnpg.io/v1 kind: Database metadata: name: {{ printf "city-api-%s-db" .Values.app.env_name }} + labels: + app: city-api + environment: {{ .Values.app.env_name }} spec: databaseReclaimPolicy: delete name: {{ required "db.name is required" .Values.db.name }} diff --git a/kubernetes/helm/templates/db-service.yaml b/kubernetes/helm/templates/db-service.yaml index 2ab42be..c88f006 100644 --- a/kubernetes/helm/templates/db-service.yaml +++ b/kubernetes/helm/templates/db-service.yaml @@ -2,9 +2,13 @@ apiVersion: v1 kind: Service metadata: name: city-api-db + labels: + app: city-api-db + environment: {{ .Values.app.env_name }} spec: selector: app: city-api-db + environment: {{ .Values.app.env_name }} ports: - protocol: TCP port: {{ .Values.db.port }} From 454f572a076512389dfeb7bf79149a1d2cf1a029 Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 17:11:58 +0200 Subject: [PATCH 09/12] cloudnative-pg --- kubernetes/database-prod.yaml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index 52dc26b..e6e0cf4 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -10,4 +10,28 @@ spec: name: city_api-prod-pg cluster: name: city-api-pg - owner: city_api \ No newline at end of file + owner: city_api +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: cnpg-manager-role + namespace: cityapi +rules: + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: cnpg-manager-rolebinding + namespace: cityapi +subjects: + - kind: ServiceAccount + name: cnpg-manager + namespace: cityapi +roleRef: + kind: Role + name: cnpg-manager-role + apiGroup: rbac.authorization.k8s.io From 7191bb88a752a69cbe292b2e5c62b3e7598f320e Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 17:13:25 +0200 Subject: [PATCH 10/12] cloudnative-pg --- kubernetes/database-prod.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index e6e0cf4..df82490 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -19,7 +19,7 @@ metadata: namespace: cityapi rules: - apiGroups: [""] - resources: ["configmaps"] + resources: ["secrets"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 From cef685001188e5897b4154e276da24c67359d89c Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 17:22:36 +0200 Subject: [PATCH 11/12] cloudnative-pg --- kubernetes/database-prod.yaml | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index df82490..fceaf0c 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -12,26 +12,21 @@ spec: name: city-api-pg owner: city_api --- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role +apiVersion: v1 +kind: ConfigMap metadata: - name: cnpg-manager-role - namespace: cityapi -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list", "watch"] + name: cnpg-controller-manager-config + namespace: cnpg-system +data: + INHERITED_ANNOTATIONS: categories + INHERITED_LABELS: environment, workload, app + ENABLE_INSTANCE_MANAGER_INPLACE_UPDATES: 'true' --- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding +apiVersion: v1 +kind: Secret metadata: - name: cnpg-manager-rolebinding - namespace: cityapi -subjects: - - kind: ServiceAccount - name: cnpg-manager - namespace: cityapi -roleRef: - kind: Role - name: cnpg-manager-role - apiGroup: rbac.authorization.k8s.io + name: cnpg-controller-manager-config + namespace: cnpg-system +type: Opaque +data: + CNPG_PASSWORD: eW91ci1wYXNzd29yZA== From 20433d1102954df781619f15500a428f0f43a6ae Mon Sep 17 00:00:00 2001 From: rrouviere Date: Thu, 16 Oct 2025 17:25:24 +0200 Subject: [PATCH 12/12] cloudnative-pg --- kubernetes/database-prod.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/kubernetes/database-prod.yaml b/kubernetes/database-prod.yaml index fceaf0c..8469d9a 100644 --- a/kubernetes/database-prod.yaml +++ b/kubernetes/database-prod.yaml @@ -12,6 +12,30 @@ spec: name: city-api-pg owner: city_api --- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: cnpg-manager-role + namespace: cityapi +rules: + - apiGroups: [""] + resources: ["secrets", "configmaps", "pods", "services", "persistentvolumeclaims", "events"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: cnpg-manager-rolebinding + namespace: cityapi +subjects: + - kind: ServiceAccount + name: cnpg-manager + namespace: cityapi +roleRef: + kind: Role + name: cnpg-manager-role + apiGroup: rbac.authorization.k8s.io +--- apiVersion: v1 kind: ConfigMap metadata: @@ -30,3 +54,4 @@ metadata: type: Opaque data: CNPG_PASSWORD: eW91ci1wYXNzd29yZA== +