Keycloak and postgres integration issue in kubernetes

Hi,
When installing keycloak with postgres getting below error. Can any one has idea regarding this issue.
Here is my yaml files.
keycloak yaml file.
apiVersion: v1
kind: Service
metadata:
name: keycloak
labels:
app: keycloak
spec:
ports:

  • name: http
    port: 8080
    targetPort: 8080
    selector:
    app: keycloak
    type: ClusterIP

apiVersion: apps/v1
kind: Deployment
metadata:
name: keycloak
namespace: default
labels:
app: keycloak
spec:
replicas: 1
selector:
matchLabels:
app: keycloak
template:
metadata:
labels:
app: keycloak
spec:
containers:
- name: keycloak
image: Quay
env:
- name: KEYCLOAK_USER
value: “admin”
- name: KEYCLOAK_PASSWORD
value: “admin”
- name: PROXY_ADDRESS_FORWARDING
value: “true”
- name: DB_VENDOR
value: POSTGRES
- name: DB_ADDR
value: postgres
- name: DB_DATABASE
value: keycloak
- name: DB_USER
value: root
- name: DB_PASSWORD
value: password
- name : KEYCLOAK_HTTP_PORT
value : “80”
- name: KEYCLOAK_HTTPS_PORT
value: “443”
- name : KEYCLOAK_HOSTNAME
value : 0.0.0.0

postgres
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
ports:

  • name: pgql
    port: 5432
    targetPort: 5432
    protocol: TCP
    selector:
    app: postgres

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres
spec:
serviceName: “postgres”
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:9.5
#volumeMounts:
#- name: postgres-data
#mountPath: /var/lib/postgresql/data
#subPath: pgdata
env:
- name: POSTGRES_USER
value: root
- name: POSTGRES_PASSWORD
value: password
- name: POSTGRES_DB
value: keycloak
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
ports:
- containerPort: 5432
volumeMounts:
- name: postgres-data
mountPath: /var/lib/postgresql/data
subPath: pgdata
volumes:
- name: postgres-data
persistentVolumeClaim:
claimName: tc-pv-claim

Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
at org.postgresql.jdbc@42.2.5//org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:292)
at org.postgresql.jdbc@42.2.5//org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc@42.2.5//org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
at org.postgresql.jdbc@42.2.5//org.postgresql.Driver.makeConnection(Driver.java:454)
at org.postgresql.jdbc@42.2.5//org.postgresql.Driver.connect(Driver.java:256)
Caused by: java.net.UnknownHostException: postgres
at org.postgresql.jdbc@42.2.5//org.postgresql.core.PGStream.(PGStream.java:70)
at org.postgresql.jdbc@42.2.5//org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:91)
at org.postgresql.jdbc@42.2.5//org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
06:16:51,020 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0019: Stopped Driver service with driver-name = postgresql
06:18:28,668 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation (“add”) failed - address: ([(“subsystem” => “microprofile-metrics-smallrye”)]): java.lang.NullPointerException
at org.wildfly.extension.microprofile.metrics-smallrye@19.0.0.Final//org.wildfly.extension.microprofile.metrics.MicroProfileMetricsSubsystemAdd$2.execute(MicroProfileMetricsSubsystemAdd.java:86)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:999)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:743)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:467)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1413)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:527)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:515)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:477)
at org.jboss.as.server@11.0.0.Final//org.jboss.as.server.ServerService.boot(ServerService.java:448)
at org.jboss.as.server@11.0.0.Final//org.jboss.as.server.ServerService.boot(ServerService.java:401)
at org.jboss.as.controller@11.0.0.Final//org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:416)
at java.base/java.lang.Thread.run(Thread.java:834)

Try using a FQDN for postgres instead of the shortname, it can’t resolve postgres.

I am also trying to deploy keycloak with postgresql(AWS RDS instance) and it is failing with below error:

ERROR: Failed to start server in (production) mode
2022-06-23 16:40:14,895 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to obtain JDBC connection
2022-06-23 16:40:14,895 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: No suitable driver found for jdbc:postgresql://kc.****.us-east-1.rds.amazonaws.com:5432/keycloakdb
2022-06-23 16:40:14,895 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) For more details run the same command passing the ‘–verbose’ option. Also you can use ‘–help’ to see the details about the usage of the particular command.

Here is my deployment file: keycloak deploy - Pastebin.com

Hi @parth6288 @venkat_dev did you find any solution for this ?
am also facing the same issue .