extend RBAC in prepatation to switch to configmap-based cluster management (#2961)

This commit is contained in:
Felix Kunde 2025-10-14 10:59:43 +02:00 committed by GitHub
parent dc29425969
commit 8ba57b28f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 31 additions and 5 deletions

View File

@ -107,8 +107,13 @@ Those are top-level keys, containing both leaf keys and groups.
* **kubernetes_use_configmaps** * **kubernetes_use_configmaps**
Select if setup uses endpoints (default), or configmaps to manage leader when Select if setup uses endpoints (default), or configmaps to manage leader when
DCS is kubernetes (not etcd or similar). In OpenShift it is not possible to DCS is kubernetes (not etcd or similar). In OpenShift it is not possible to
use endpoints option, and configmaps is required. By default, use endpoints option, and configmaps is required. Starting with K8s 1.33,
`kubernetes_use_configmaps: false`, meaning endpoints will be used. endpoints are marked as deprecated. It's recommended to switch to config maps
instead. But, to do so make sure you scale the Postgres cluster down to just
one primary pod (e.g. using `max_instances` option). Otherwise, you risk
running into a split-brain scenario.
By default, `kubernetes_use_configmaps: false`, meaning endpoints will be used.
Starting from v1.16.0 the default will be changed to `true`.
* **docker_image** * **docker_image**
Spilo Docker image for Postgres instances. For production, don't rely on the Spilo Docker image for Postgres instances. For production, don't rely on the

View File

@ -59,13 +59,20 @@ rules:
- get - get
- patch - patch
- update - update
# to read configuration from ConfigMaps # to read configuration from ConfigMaps and help Patroni manage the cluster if endpoints are not used
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
- configmaps - configmaps
verbs: verbs:
- create
- delete
- deletecollection
- get - get
- list
- patch
- update
- watch
# to send events to the CRs # to send events to the CRs
- apiGroups: - apiGroups:
- "" - ""
@ -78,7 +85,7 @@ rules:
- patch - patch
- update - update
- watch - watch
# to manage endpoints which are also used by Patroni # to manage endpoints which are also used by Patroni (if it is using config maps)
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
@ -249,7 +256,21 @@ kind: ClusterRole
metadata: metadata:
name: postgres-pod name: postgres-pod
rules: rules:
# Patroni needs to watch and manage endpoints # Patroni needs to watch and manage config maps (or endpoints)
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
# Patroni needs to watch and manage endpoints (or config maps)
- apiGroups: - apiGroups:
- "" - ""
resources: resources: