Stateless version of KeyCloak using H2 and importing realms and users every-time. Good for Dev Env
1.7K
version: '3'
services:
keycloak:
image: xmlking/keycloak-openshift-stateless
container_name: keycloak
volumes:
- $PWD/.docker/keycloak/realm-config:/opt/jboss/keycloak/realm-config
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
DB_VENDOR: H2
KEYCLOAK_USER_CACHE_ENABLED: "false"
KEYCLOAK_REALM_CACHE_ENABLED: "false"
ports:
- 9080:9080
- 9444:9443
- 10990:10990
docker-compose up keycloak
Deploy keycloak-openshift-stateless on to OpenShift. It will be available on port 9080
oc new-app -f keycloak.tmpl.yml -p APPNAME=keycloak
apiVersion: v1
kind: Template
metadata:
name: ${APPNAME}
annotations:
"openshift.io/display-name": ${APPNAME}
description: |
keycloak with ms ldap
iconClass: icon-cogs
tags: "oidc,keycloak,ldap"
objects:
- apiVersion: v1
kind: ConfigMap
metadata:
name: ${APPNAME}-config
data:
kubernetes-realm.json: |
kubernetes-users-0.json: |
- apiVersion: v1
kind: ConfigMap
metadata:
labels:
app: ${APPNAME}
name: ${APPNAME}-env
data:
keycloak_user: admin
db_vendor: H2
keycloak_user_cache_enabled: "false"
keycloak_realm_cache_enabled: "false"
- apiVersion: v1
kind: Secret
metadata:
labels:
app: ${APPNAME}
name: ${APPNAME}-secrets
stringData:
keycloak_password: admin
- apiVersion: v1
kind: Route
metadata:
labels:
app: ${APPNAME}
name: ${APPNAME}
spec:
to:
kind: Service
name: ${APPNAME}
tls:
termination: edge
port:
targetPort: ${APPNAME}-9080-http
- apiVersion: v1
kind: Service
metadata:
labels:
app: ${APPNAME}
annotations:
name: ${APPNAME}
spec:
ports:
- name: ${APPNAME}-9080-http
port: 9080
protocol: TCP
targetPort: 9080
selector:
app: ${APPNAME}
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: ${APPNAME}
name: ${APPNAME}
spec:
replicas: 1
strategy:
type: Rolling
triggers:
- type: ConfigChange
selector:
app: ${APPNAME}
template:
metadata:
labels:
app: ${APPNAME}
deploymentConfig: ${APPNAME}
name: ${APPNAME}
spec:
volumes:
- name: ${APPNAME}-volume
configMap:
defaultMode: 420
name: ${APPNAME}-config
containers:
- name: ${APPNAME}
image: ${DOCKERIMAGE}
imagePullPolicy: IfNotPresent
resources:
limits:
cpu: "400m"
memory: "2048Mi"
ports:
- containerPort: 9080
name: keycloak
- containerPort: 9443
name: keycloak-ssh
- containerPort: 10990
name: keycloak-other
env:
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: KEYCLOAK_USER_CACHE_ENABLED
valueFrom:
configMapKeyRef:
name: ${APPNAME}-env
key: keycloak_user_cache_enabled
- name: KEYCLOAK_REALM_CACHE_ENABLED
valueFrom:
configMapKeyRef:
name: ${APPNAME}-env
key: keycloak_realm_cache_enabled
- name: KEYCLOAK_USER
valueFrom:
configMapKeyRef:
name: ${APPNAME}-env
key: keycloak_user
- name: KEYCLOAK_PASSWORD
valueFrom:
secretKeyRef:
name: ${APPNAME}-secrets
key: keycloak_password
- name: DB_VENDOR
valueFrom:
configMapKeyRef:
name: ${APPNAME}-env
key: db_vendor
securityContext:
privileged: false
volumeMounts:
- name: ${APPNAME}-volume
mountPath: /opt/jboss/keycloak/realm-config
parameters:
- name: APPNAME
value: keycloak
- name: DOCKERIMAGE
value: xmlking/keycloak-openshift-stateless:4.0.0.Final
Content type
Image
Digest
Size
480.2 MB
Last updated
over 8 years ago
docker pull xmlking/keycloak-openshift-stateless