X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=service-exposure%2Fkeycloak.yaml;h=a23b2cc64cf76563d66c6ebb2578b7bc32e753b4;hb=b593154ee3bcca6835e768e7d8336d0837530434;hp=d611c6d217563a23b96f06a916c16395aa9fad3f;hpb=28fa9fbfee514da8c85171facbabe6747f499988;p=nonrtric.git diff --git a/service-exposure/keycloak.yaml b/service-exposure/keycloak.yaml index d611c6d2..a23b2cc6 100644 --- a/service-exposure/keycloak.yaml +++ b/service-exposure/keycloak.yaml @@ -1,6 +1,6 @@ # # ============LICENSE_START======================================================= -# Copyright (C) 2022 Nordix Foundation. +# Copyright (C) 2022-23 Nordix Foundation. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: keycloak + name: keycloak namespace: default --- apiVersion: v1 @@ -29,14 +29,16 @@ metadata: name: keycloak labels: app: keycloak + app.kubernetes.io/instance: keycloak + app.kubernetes.io/name: keycloak spec: type: ExternalName - externalName: keycloak.local + externalName: keycloak.local ports: - name: http port: 8080 targetPort: 8080 - nodePort: 31560 + nodePort: 31560 - name: https port: 8443 targetPort: 8443 @@ -52,6 +54,8 @@ metadata: namespace: default labels: app: keycloak + app.kubernetes.io/instance: keycloak + app.kubernetes.io/name: keycloak spec: replicas: 1 selector: @@ -61,46 +65,58 @@ spec: metadata: labels: app: keycloak + app.kubernetes.io/instance: keycloak + app.kubernetes.io/name: keycloak spec: initContainers: - name: init-postgres image: busybox - imagePullPolicy: IfNotPresent + imagePullPolicy: IfNotPresent command: ['sh', '-c', 'until nc -vz postgres 5432; do echo waiting for postgres db; sleep 2; done;'] - serviceAccountName: keycloak + serviceAccountName: keycloak containers: - name: keycloak image: quay.io/keycloak/keycloak:latest - imagePullPolicy: IfNotPresent + imagePullPolicy: IfNotPresent + args: [ + 'start', + '--https-key-store-file=/etc/x509/https/keystore.jks', + '--https-key-store-password=$(KC_KEYSTORE_PASSWORD)', + '--https-key-store-type=JKS', + '--https-trust-store-file=/etc/x509/https/truststore.jks', + '--https-trust-store-password=$(KC_KEYSTORE_PASSWORD)', + '--https-trust-store-type=JKS', + '--https-client-auth=request', + '--http-enabled=true' + ] env: - - name: KEYCLOAK_USER - value: "admin" - - name: KEYCLOAK_PASSWORD - value: "admin" - - name: KEYCLOAK_HTTPS_PORT - value: "8443" - - name: PROXY_ADDRESS_FORWARDING + - name : KEYCLOAK_ADMIN + value: admin + - name : KEYCLOAK_ADMIN_PASSWORD + value: admin + - name : KC_DB + value: postgres + - name : KC_DB_URL + value: "jdbc:postgresql://postgres:5432/keycloak" + - name : KC_DB_USERNAME + value: keycloak + - name : KC_DB_PASSWORD + value: keycloak + - name : KC_HOSTNAME + value: keycloak + - name: KC_DB_URL_DATABASE + value: keycloak + - name : MY_PROVIDER_JAR_URL + value: /opt/jboss/keycloak/standalone/deployments/authz-js-policies.jar + - name: KC_HEALTH_ENABLED + value: "true" + - name: KC_METRICS_ENABLED value: "true" - - name: MANAGEMENT_USER - value: "wildfly-admin" - - name: MANAGEMENT_PASSWORD - value: "secret" - - name: INGRESS_ENABLED - value: "false" - - name: DB_VENDOR - value: "postgres" - - name: DB_ADDR - value: "postgres" - - name: DB_PORT - value: "5432" - - name: DB_DATABASE - value: "keycloak" - - name: DB_USER - value: "keycloak" - - name : DB_PASSWORD - value: "keycloak" - - name : X509_CA_BUNDLE - value: /etc/x509/https/rootCA.crt + - name: KC_KEYSTORE_PASSWORD + valueFrom: + secretKeyRef: + name: cm-keycloak-jwk-pw + key: password ports: - name: http containerPort: 8080 @@ -108,16 +124,23 @@ spec: containerPort: 8443 readinessProbe: httpGet: - path: /auth/realms/master - port: 8080 + scheme: HTTPS + path: /health/ready + port: 8443 volumeMounts: - - name: keycloak-certs - mountPath: /etc/x509/https + - name: keycloak-certs + mountPath: /etc/x509/https + readOnly: true + - name: authz-js-policies + mountPath: /opt/jboss/keycloak/standalone/deployments/authz-js-policies.jar volumes: - - name: keycloak-certs + - name: keycloak-certs + secret: + secretName: cm-keycloak-server-certs + - name: authz-js-policies hostPath: - path: /var/keycloak/certs - type: Directory + path: /var/keycloak/deployments/authz-js-policies.jar + type: File --- apiVersion: networking.istio.io/v1alpha3 kind: Gateway @@ -170,12 +193,12 @@ spec: hosts: - "*" gateways: - - kcgateway + - kcgateway http: - name: "keycloak-routes" match: - uri: - prefix: "/auth" + prefix: "/realms" route: - destination: port: