Instalação do Keycloak com helm no GKE com banco de dados Cloud SQL (externo)

Instalação do Keycloak com helm no GKE com banco de dados Cloud SQL (externo)

Estou tentando instalar o keycloak no cluster GKE no GCP com banco de dados externo, ou seja, CloudSQL postrges db. Quero usar o helm para instalá-lo, então:

helm repo add bitnami https://charts.bitnami.com/bitnami

Baixei o arquivo Values.yml do repositório bitnami e atualizei a seção "externalDatabase.externalSecret" deste arquivo, pois não quero inserir credenciais em texto simples. Em vez disso, criei o segredo do Kubernetes:

$ kubectl get secret keycloak-db-secret -o yaml
apiVersion: v1
data:
  POSTGRES_DATABASE: <value>
  POSTGRES_EXTERNAL_ADDRESS: <value>
  POSTGRES_EXTERNAL_PORT: <value>
  POSTGRES_PASSWORD: <value>
  POSTGRES_USERNAME: <value>
kind: Secret
metadata:
...

E as modificações em Values.yml são (o resto do arquivo não é alterado):

postgresql:
  enabled: false
externalDatabase:
  existingSecret:
    name: keycloak-db-secret
    keyMapping:
      host: POSTGRES_EXTERNAL_ADDRESS
      port: POSTGRES_EXTERNAL_PORT
      user: POSTGRES_USERNAME
      password: POSTGRES_PASSWORD
      database: POSTGRES_DATABASE

Quando eu corro

helm install --debug my-keycloak bitnami/keycloak -f Values.yml

Recebo uma mensagem de erro

install.go:173: [debug] Original chart version: ""
install.go:190: [debug] CHART PATH: /home/michal/.cache/helm/repository/keycloak-5.0.7.tgz

coalesce.go:203: warning: destination for existingSecret is a table. Ignoring non-table value
coalesce.go:203: warning: destination for existingSecret is a table. Ignoring non-table value
Error: YAML parse error on keycloak/templates/statefulset.yaml: error converting YAML to JSON: yaml: line 88: mapping values are not allowed in this context
helm.go:81: [debug] error converting YAML to JSON: yaml: line 88: mapping values are not allowed in this context
YAML parse error on keycloak/templates/statefulset.yaml
helm.sh/helm/v3/pkg/releaseutil.(*manifestFile).sort
        /home/circleci/helm.sh/helm/pkg/releaseutil/manifest_sorter.go:146
helm.sh/helm/v3/pkg/releaseutil.SortManifests
        /home/circleci/helm.sh/helm/pkg/releaseutil/manifest_sorter.go:106
helm.sh/helm/v3/pkg/action.(*Configuration).renderResources
        /home/circleci/helm.sh/helm/pkg/action/action.go:165
helm.sh/helm/v3/pkg/action.(*Install).Run
        /home/circleci/helm.sh/helm/pkg/action/install.go:240
main.runInstall
        /home/circleci/helm.sh/helm/cmd/helm/install.go:242
main.newInstallCmd.func2
        /home/circleci/helm.sh/helm/cmd/helm/install.go:120
github.com/spf13/cobra.(*Command).execute
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:850
github.com/spf13/cobra.(*Command).ExecuteC
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:958
github.com/spf13/cobra.(*Command).Execute
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:895
main.main
        /home/circleci/helm.sh/helm/cmd/helm/helm.go:80
runtime.main
        /usr/local/go/src/runtime/proc.go:204
runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:1374

Verifiquei os templates/statefulset.yaml, mas não consegui encontrar nada que pudesse ser um problema (sou iniciante no leme). A linha 88 refere-se ao arquivo yaml gerado e não ao arquivo de modelo, o que torna a caça ao bug mais difícil.

O que estou faltando na minha configuração? Como posso depurar ainda mais? por favor ajude

PS. A documentação para conectar o Keycloak ao banco de dados externo está aqui :(https://docs.bitnami.com/kubernetes/apps/keycloak/configuration/use-external-database/

Responder1

A externalDatabase.existingSecretchave espera apenas um nome secreto.
A linha relevante éaqui.

por exemplo

postgresql:
  enabled: false
externalDatabase:
  existingSecret: keycloak-db-secret
  host: pg.ns.svc.cluster.local
  port: 5432
  user: pg_username
  database: db_name

NOTA: O segredo deve ter uma chave de "senha", para usar uma versão totalmente customizada preencha um auth.existingSecretouauth.existingSecretPerPassword

informação relacionada