Skip to content

Instantly share code, notes, and snippets.

@devpilot
Created May 3, 2024 07:47
Show Gist options
  • Save devpilot/4a24bbb0bc76a451da2cd71b3d71135d to your computer and use it in GitHub Desktop.
Save devpilot/4a24bbb0bc76a451da2cd71b3d71135d to your computer and use it in GitHub Desktop.
deploy keycloak for theme development
apiVersion: v1
kind: Namespace
metadata:
labels:
kubernetes.io/metadata.name: keycloak-test
name: keycloak-test
spec:
finalizers:
- kubernetes
status:
phase: Active
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: keycloak
namespace: keycloak-test
labels:
app: keycloak
spec:
replicas: 1
selector:
matchLabels:
app: keycloak
template:
metadata:
labels:
app: keycloak
spec:
containers:
- name: keycloak
image: coredgeio/kg-keycloak:19.0.3-6
imagePullPolicy: IfNotPresent
env:
- name: KEYCLOAK_USER
valueFrom:
secretKeyRef:
name: keycloak-admin
key: username
- name: KEYCLOAK_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-admin
key: password
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: DB_VENDOR
value: postgres
- name: DB_ADDR
value: keycloak-pg
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
value: keycloak
- name: DB_USER
valueFrom:
secretKeyRef:
name: keycloak-pg
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-pg
key: password
- name: JAVA_OPTS
value: "-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"
ports:
- name: http
containerPort: 8080
- name: https
containerPort: 8443
readinessProbe:
httpGet:
path: /auth/realms/master
port: 8080
volumeMounts:
- mountPath: /opt/jboss/keycloak/themes/compass_v2
name: compass-theme
volumes:
- hostPath:
path: /home/core/keycloak-themes/compass_v2
type: Directory
name: compass-theme
---
apiVersion: v1
kind: Secret
metadata:
name: keycloak-admin
namespace: keycloak-test
stringData:
password: admin@kg
username: admin
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
name: keycloak-pg
namespace: keycloak-test
stringData:
password: qdYfHbqUPmwtE9dB
username: root
type: Opaque
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: keycloak-pg
namespace: keycloak-test
spec:
serviceName: "keycloak-pg"
replicas: 1
selector:
matchLabels:
app: keycloak-pg
template:
metadata:
labels:
app: keycloak-pg
spec:
containers:
- name: postgres
image: coredgeio/postgres:9.5
volumeMounts:
- name: postgres-data
mountPath: /var/lib/postgresql/data
subPath: pgdata
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: keycloak-pg
key: username
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: keycloak-pg
key: password
- name: POSTGRES_DB
value: keycloak
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
ports:
- containerPort: 5432
terminationGracePeriodSeconds: 60
volumeClaimTemplates:
- metadata:
name: postgres-data
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 2Gi
---
apiVersion: v1
kind: Service
metadata:
name: keycloak-pg
namespace: keycloak-test
spec:
ports:
- name: pgql
port: 5432
targetPort: 5432
protocol: TCP
selector:
app: keycloak-pg
---
apiVersion: v1
kind: Service
metadata:
name: keycloak
namespace: keycloak-test
labels:
app: keycloak
spec:
ports:
- name: http
port: 8080
targetPort: 8080
nodePort: 30110
- name: https
port: 8443
targetPort: 8443
nodePort: 30111
type: NodePort
selector:
app: keycloak
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment