I am using https://postgres-operator.readthedocs.io/en/latest/ and have deployed:
kind: "postgresql"
apiVersion: "acid.zalan.do/v1"
metadata:
name: "acid-databaker-db"
namespace: "dev"
labels:
team: acid
spec:
teamId: "acid"
postgresql:
version: "12"
numberOfInstances: 2
volume:
size: "2Gi"
users:
admin:
- superuser
- createdb
kcadmin: []
databases:
keycloak: kcadmin
allowedSourceRanges:
# IP ranges to access your cluster go here
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 500m
memory: 500Mieverything is up and running and I can connect to database, but I do not understand this part:
users:
admin:
- superuser
- createdb
kcadmin: []
databases:
keycloak: kcadminAccording to the doc, admin is a role - right? What about kcadmin? Is it an user or role? If it is an user, what kind of role does the kcadmin has?
This is a community wiki answer based on the correct info from the comments and with more explanation and details.
In your use case:
users:
admin:
- superuser
- createdb
kcadmin: []
databases:
keycloak: kcadminwe see two users: admin and kcadmin.
User admin has two manifest roles: superuser and createdb.
User kcadmin has no manifest roles.
Manifest roles are defined as a dictionary, with a role name as a key and a list of role options as a value. For a role without any options it is best to supply the empty list [], like with your kcadmin user.
The following roles can be used: superuser, inherit, login, nologin, createrole, createdb, replication and bypassrls.
I hope it helps.