Установка в среде контейнеризации#

Использование среды контейнеризации для оркестрации KeyCloak.SE позволяет гибко управлять конфигурацией, производить масштабирование в зависимости от нагрузки, а также устанавливать сопутствующие приложения.

  1. Для установки данного приложения можно воспользоваться данным скриптом. При необходимости значения переменных можно изменить вручную или использовать ansible template. 1.1. Для запуска данного скрипта необходимо подключиться к OpenShift через консоль:

oc login --insecure-skip-tls-verify <OPENSHIFT_HOST> -u <OPENSHIFT_LOGIN> -p <OPENSHIFT_PASSWORD>

1.2. Перейти на нужный namespase:

oc project "<NAMESPASE_NAME>"

1.3. Запустите установку скрипта:

oc process -f kcse-quarkus-template.yml \
    -p KCSE_IMAGE=registry-example.ru/kcse:latest \
    -p KEYCLOAK_ADMIN=admin \
    -p KEYCLOAK_ADMIN_PASSWORD=PASSWORD_EXAMPLE \
    -p KC_DB_URL_HOST=db-host-example.ru \
    -p KC_DB_USERNAME=db_user \
    -p KC_DB_URL_DATABASE=db_name \
    -p KC_DB_SCHEMA=public \
    -p KC_DB_PASSWORD=DB_PASSWORD_EXAMPLE \
    -p HOSTNAME=kcse-quarkus-namespace-example.apps.openshift-cluster.ru \
    -p NAMESPACE=namespace-example | oc apply -f - 

Содержимое файла kcse-quarkus-template.yml:

kind: Template
apiVersion: template.openshift.io/v1
metadata:
   name: kcse-quarkus
   annotations:
      description: An example template for trying out Keycloak on OpenShift
      tags: kcse-quarkus
objects:
   - apiVersion: v1
     kind: Secret
     metadata:
        name: tls-secret
     data:
        tls.crt: '${KC_HTTPS_CERTIFICATE_FILE}'
        tls.key: '${KC_HTTPS_CERTIFICATE_KEY_FILE}'
     type: kubernetes.io/tls
   - apiVersion: v1
     kind: Secret
     metadata:
        name: db-secret
     stringData:
        username: '${KC_DB_USERNAME}' # postgres
        password: '${KC_DB_PASSWORD}' # keycloak
     type: Opaque
   - apiVersion: v1
     kind: Service
     metadata:
        annotations:
           description: The web server's http port.
        labels:
           application: '${APPLICATION_NAME}'
        name: '${APPLICATION_NAME}'
     spec:
        ports:
           - name: 8080-tcp
             port: 8080
             targetPort: 8080
             protocol: TCP
           - name: 8443-tcp
             port: 8443
             targetPort: 8443
             protocol: TCP
        selector:
           app: '${APPLICATION_NAME}'
   - apiVersion: v1
     id: '${APPLICATION_NAME}'
     kind: Route
     metadata:
        annotations:
           description: Route for application's service.
        labels:
           application: '${APPLICATION_NAME}'
        name: '${APPLICATION_NAME}'
     spec:
        host: '${HOSTNAME}'
        port:
           targetPort: 8443-tcp
        tls:
           termination: passthrough
           insecureEdgeTerminationPolicy: None
        to:
           name: '${APPLICATION_NAME}'
   - apiVersion: apps/v1
     kind: Deployment
     metadata:
        labels:
           app: '${APPLICATION_NAME}'
        name: '${APPLICATION_NAME}'
     spec:
        replicas: 1
        selector:
          matchLabels:
            app: '${APPLICATION_NAME}'
        strategy:
           type: RollingUpdate
        template:
           metadata:
              labels:
                 app: '${APPLICATION_NAME}'
              name: '${APPLICATION_NAME}'
           spec:
              imagePullSecrets:
                 - name: docker-registry
              containers:
                 - env:
                      - name: KC_DB
                        value: '${KC_DB}'
                      - name: KC_DB_URL_HOST
                        value: '${KC_DB_URL_HOST}'
                      - name: KC_DB_URL_DATABASE
                        value: '${KC_DB_URL_DATABASE}'
                      - name: KC_DB_USERNAME
                         # value: '${KC_DB_USERNAME}'
                        valueFrom:
                           secretKeyRef:
                              name: db-secret
                              key: username
                      - name: KC_DB_PASSWORD
                         # value: '${KC_DB_PASSWORD}'
                        valueFrom:
                           secretKeyRef:
                              name: db-secret
                              key: password
                      - name: KC_DB_SCHEMA
                        value: '${KC_DB_SCHEMA}'
                      - name: KEYCLOAK_ADMIN
                        value: '${KEYCLOAK_ADMIN}'
                      - name: KEYCLOAK_ADMIN_PASSWORD
                        value: '${KEYCLOAK_ADMIN_PASSWORD}'
                      - name: KCSE_SMS_SERVICE_ADDR
                        value: '${KCSE_SMS_SERVICE_ADDR}'
                      - name: KCSE_SMS_AUTH_SERVICE_ADDR
                        value: '${KCSE_SMS_AUTH_SERVICE_ADDR}'
                      - name: KCSE_SMS_AUTH_CLIENT_ID
                        value: '${KCSE_SMS_AUTH_CLIENT_ID}'
                      - name: KCSE_SMS_AUTH_CLIENT_SECRET
                        value: '${KCSE_SMS_AUTH_CLIENT_SECRET}'
                      - name: KCSE_AUDIT_REST_PROXY_URL
                        value: '${KCSE_AUDIT_REST_PROXY_URL}'
                      - name: KCSE_AUDIT_PROPERTY_NAMES
                        value: '${KCSE_AUDIT_PROPERTY_NAMES}'
                      - name: KCSE_AUDIT_BOOTSTRAP_SERVER
                        value: '${KCSE_AUDIT_BOOTSTRAP_SERVER}'
                      - name: KCSE_AUDIT_BUFFER
                        value: '${KCSE_AUDIT_BUFFER}'
                      - name: KCSE_AUDIT_MOCKMODE
                        value: '${KCSE_AUDIT_MOCKMODE}'
                      - name: KCSE_AUDIT_MODE
                        value: '${KCSE_AUDIT_MODE}'
                      - name: KCSE_AUDIT_NODE
                        value: '${KCSE_AUDIT_NODE}'
                      - name: KCSE_AUDIT_MODULE
                        value: '${KCSE_AUDIT_MODULE}'
                      - name: KCSE_AUDIT_SOURCE_SYSTEM
                        value: '${KCSE_AUDIT_SOURCE_SYSTEM}'
                      - name: KCSE_AUDIT_SECURITY_PROTOCOL
                        value: '${KCSE_AUDIT_SECURITY_PROTOCOL}'
                      - name: KCSE_AUDIT_KEYSTORE_PASSWORD
                        value: '${KCSE_AUDIT_KEYSTORE_PASSWORD}'
                      - name: KCSE_AUDIT_TRUSTSTORE_PASSWORD
                        value: '${KCSE_AUDIT_TRUSTSTORE_PASSWORD}'
                      - name: KC_HOSTNAME
                        value: '${HOSTNAME}'
                      - name: KC_HTTPS_CERTIFICATE_FILE
                        value: '/opt/keycloak/conf/tls/tls.crt'
                      - name: KC_HTTPS_CERTIFICATE_KEY_FILE
                        value: '/opt/keycloak/conf/tls/tls.key'
                      - name: KC_HTTP_RELATIVE_PATH
                        value: '/auth'
                      - name: KC_PROXY
                        value: 'edge'
                      - name: KC_SPI_THEME_DEFAULT
                        value: "platform-v"
                      - name: KC_SPI_LOGIN_PROTOCOL_OPENID_CONNECT_SUPPRESS_LOGOUT_CONFIRMATION_SCREEN
                        value: "true"
                      - name: KC_SPI_LOGIN_PROTOCOL_OPENID_CONNECT_LEGACY_LOGOUT_REDIRECT_URI
                        value: "true"
                      - name: KC_SPI_BRUTE_FORCE_PROTECTOR_EXTENDED_BRUTE_FORCE_DETECTOR_ENABLED
                        value: "true"
                      - name: KC_SPI_BRUTE_FORCE_PROTECTOR_DEFAULT_BRUTE_FORCE_DETECTOR_ENABLED
                        value: "false"
                      - name: KC_SPI_ACCOUNT_PASSWORD_FREEMARKER_ENABLED
                        value: "true"
                      - name: KC_SPI_ACCOUNT_FREEMARKER_ENABLED
                        value: "false"
                      - name: KC_SPI_LOGIN_LOGIN_FREEMARKER_ENABLED
                        value: "true"
                      - name: KC_SPI_LOGIN_FREEMARKER_ENABLED
                        value: "false"
                      - name: KC_SPI_STICKY_SESSION_ENCODER_INFINISPAN_SHOULD_ATTACH_ROUTE
                        value: "false"
                      - name: KC_HEALTH_ENABLED
                        value: "true"
                   image: "${KCSE_IMAGE}"
                   livenessProbe:
                      failureThreshold: 100
                      httpGet:
                         path: /auth/health/live
                         port: 8080
                         scheme: HTTP
                      initialDelaySeconds: 60
                   name: '${APPLICATION_NAME}'
                   ports:
                      - containerPort: 8080
                        protocol: TCP
                      - containerPort: 8443
                        protocol: TCP
                   readinessProbe:
                      failureThreshold: 300
                      httpGet:
                         path: /auth/health/ready
                         port: 8080
                         scheme: HTTP
                      initialDelaySeconds: 30
                   securityContext:
                     capabilities:
                       drop:
                         - ALL
                     privileged: false
                     readOnlyRootFilesystem: true
                     allowPrivilegeEscalation: false
                     runAsNonRoot: true
                   resources:
                      limits:
                        cpu: 1
                        memory: 2Gi
                      requests:
                        cpu: 500m
                        memory: 512Mi
                   volumeMounts:
                      - name: tls-cert
                        readOnly: true
                        mountPath: /opt/keycloak/conf/tls
                      - mountPath: /opt/keycloak/data
                        name: empty
                      - mountPath: /tmp
                        name: tmp
                   args:
                      - '--verbose'
                      - 'start'
                      - '--auto-build'
              volumes:
                 - name: tls-cert
                   secret:
                      secretName: tls-secret
                 - name: empty
                   emptyDir: {}
                 - name: tmp
                   emptyDir: {}
        triggers:
           - type: ConfigChange
parameters:
- name: APPLICATION_NAME
  displayName: Application Name
  description: The name for the application.
  value: kcse-quarkus
  required: true
- name: KCSE_IMAGE
  required: true
- name: KEYCLOAK_ADMIN
  displayName: Keycloak Administrator Username
  description: Keycloak Server administrator username
  generate: expression
  from: '[a-zA-Z0-9]{8}'
  required: true
- name: KEYCLOAK_ADMIN_PASSWORD
  displayName: Keycloak Administrator Password
  description: Keycloak Server administrator password
  generate: expression
  from: '[a-zA-Z0-9]{8}'
  required: true
- name: HOSTNAME
  displayName: Custom Route Hostname
  description: >-
    Custom hostname for the service route. Leave blank for default hostname,
    e.g.: <application-name>-<namespace>.<default-domain-suffix>
- name: NAMESPACE
  displayName: Namespace used for DNS discovery
  description: >-
    This namespace is a part of DNS query sent to Kubernetes API. This query
    allows the DNS_PING protocol to extract cluster members. This parameter
    might be removed once https://issues.jboss.org/browse/JGRP-2292 is
    implemented.
  required: true
- name: KCSE_SMS_SERVICE_ADDR
  displayName: KCSE_SMS_SERVICE_ADDR
  description: KCSE_SMS_SERVICE_ADDR
  value: 'http://develop-mock-service:8181/sendSMS'
  required: true
- name: KCSE_SMS_AUTH_SERVICE_ADDR
  displayName: KCSE_SMS_AUTH_SERVICE_ADDR
  description: KCSE_SMS_AUTH_SERVICE_ADDR
  value: 'http://localhost:8080/realms/master/protocol/openid-connect/token/'
  required: true
- name: KCSE_SMS_AUTH_CLIENT_ID
  displayName: KCSE_SMS_AUTH_CLIENT_ID
  description: KCSE_SMS_AUTH_CLIENT_ID
  value: 'testSmsClient'
  required: true
- name: KCSE_SMS_AUTH_CLIENT_SECRET
  displayName: KCSE_SMS_AUTH_CLIENT_SECRET
  description: KCSE_SMS_AUTH_CLIENT_SECRET
  value: 'AQ0bgoixKqj45GuFAlTL1meCkdEGxWKK'
  required: true
- name: KCSE_AUDIT_REST_PROXY_URL
  displayName: KCSE_AUDIT_REST_PROXY_URL
  description: KCSE_AUDIT_REST_PROXY_URL
  'http://<ip.addres:port>/audit2-platform4-stub-1.0.0-SNAPSHOT/v1/event/'
  required: true
- name: KCSE_AUDIT_REST_METAMODEL_NAME
  value: kcse-events-to-audit-by-rest
- name: KCSE_AUDIT_REST_METAMODEL_VERSION
  value: '1'
- name: KCSE_AUDIT_PROPERTY_NAMES
  displayName: KCSE_AUDIT_PROPERTY_NAMES
  description: KCSE_AUDIT_PROPERTY_NAMES
  value: 'kafka.producer.bootstrap.servers,buffer.maxSize,mockMode'
  required: true
- name: KCSE_AUDIT_BOOTSTRAP_SERVER
  displayName: KCSE_AUDIT_BOOTSTRAP_SERVER
  description: KCSE_AUDIT_BOOTSTRAP_SERVER
  value: 'localhost:9092'
  required: true
- name: KCSE_AUDIT_BUFFER
  displayName: KCSE_AUDIT_BUFFER
  description: KCSE_AUDIT_BUFFER
  value: '10000'
  required: true
- name: KCSE_AUDIT_MOCKMODE
  displayName: KCSE_AUDIT_MODEMODE
  description: KCSE_AUDIT_MODEMODE
  value: 'true'
  required: true
- name: KCSE_AUDIT_MODE
  displayName: KCSE_AUDIT_MODE
  description: KCSE_AUDIT_MODE
  value: 'async'
  required: true
- name: KCSE_AUDIT_NODE
  displayName: KCSE_AUDIT_NODE
  description: KCSE_AUDIT_NODE
  value: 'testnode.platformid'
  required: true
- name: KCSE_AUDIT_MODULE
  displayName: KCSE_AUDIT_MODULE
  description: KCSE_AUDIT_MODULE
  value: 'PLID'
  required: true
- name: KCSE_AUDIT_SOURCE_SYSTEM
  displayName: KCSE_AUDIT_SOURCE_SYSTEM
  description: KCSE_AUDIT_SOURCE_SYSTEM
  value: 'PlatformId'
  required: true
- name: KCSE_AUDIT_SECURITY_PROTOCOL
  displayName: KCSE_AUDIT_SECURITY_PROTOCOL
  description: KCSE_AUDIT_SECURITY_PROTOCOL
  value: 'SSL'
  required: true
- name: KCSE_AUDIT_KEYSTORE_PASSWORD
  displayName: KCSE_AUDIT_KEYSTORE_PASSWORD
  description: KCSE_AUDIT_KEYSTORE_PASSWORD
  value: 'zaq12345678'
  required: true
- name: KCSE_AUDIT_TRUSTSTORE_PASSWORD
  displayName: KCSE_AUDIT_TRUSTSTORE_PASSWORD
  description: KCSE_AUDIT_TRUSTSTORE_PASSWORD
  value: 'zaq12345678'
  required: true
- name: KC_DB
  displayName: KC_DB
  description: KC_DB
  value: 'postgres'
  required: true
- name: KC_DB_URL_HOST
  displayName: KC_DB_URL_HOST
  description: KC_DB_URL_HOST
  required: true
- name: KC_DB_URL_PORT
  displayName: KC_DB_URL_PORT
  description: KC_DB_URL_PORT
  value: '5432'
  required: true
- name: KC_DB_URL_DATABASE
  displayName: KC_DB_URL_DATABASE
  description: KC_DB_URL_DATABASE
  required: true
- name: KC_DB_USERNAME
  displayName: KC_DB_USERNAME
  description: KC_DB_USERNAME
  required: true
- name: KC_DB_PASSWORD
  displayName: KC_DB_PASSWORD
  description: KC_DB_PASSWORD
  required: true
- name: KC_DB_SCHEMA
  displayName: KC_DB_SCHEMA
  description: KC_DB_SCHEMA
  value: 'public'
  required: true
- name: KC_HTTPS_CERTIFICATE_FILE
  displayName: KC_HTTPS_CERTIFICATE_FILE
  description: KC_HTTPS_CERTIFICATE_FILE
  value: 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVmekNDQXVlZ0F3SUJBZ0lSQUlVenBxa1FoaTNKclZBcmxVNVRhVTB3RFFZSktvWklodmNOQVFFTEJRQXcKZ1lreEhqQWNCZ05WQkFvVEZXMXJZMlZ5ZENCa1pYWmxiRzl3YldWdWRDQkRRVEV2TUMwR0ExVUVDd3dtWVhCbApjblZtWm05QVlYQmxjblZtWm04dGJXRmpJQ2hCYm1SeVpXRWdVR1Z5ZFdabWJ5a3hOakEwQmdOVkJBTU1MVzFyClkyVnlkQ0JoY0dWeWRXWm1iMEJoY0dWeWRXWm1ieTF0WVdNZ0tFRnVaSEpsWVNCUVpYSjFabVp2S1RBZUZ3MHkKTWpBek1ETXhNVEExTlRWYUZ3MHlOREEyTURNeE1EQTFOVFZhTUZveEp6QWxCZ05WQkFvVEhtMXJZMlZ5ZENCawpaWFpsYkc5d2JXVnVkQ0JqWlhKMGFXWnBZMkYwWlRFdk1DMEdBMVVFQ3d3bVlYQmxjblZtWm05QVlYQmxjblZtClptOHRiV0ZqSUNoQmJtUnlaV0VnVUdWeWRXWm1ieWt3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXcKZ2dFS0FvSUJBUUN5MjljQ0JrSzZNWERNbWZONy9TVmdiNXR2WXFWc01LVjhjaEwvTE5UcXVkdVA0QVBZeEtzMApQWnZBd0RRa3lGUXRxQlVvTXBhelBCaUpyREZ2eHc2VDZaeGVUOXlobCtvNWxhVmdseUdUMC9TcTBjTkg3UkZaCk5KeXpEZDdhREVjc2E0cmZmVEJPbk9UZjZ3QzhuSkNobTl4Mm9FWlU0UHRIb2tKZzcrVlFXYUdVRHg3Wm5YSlgKUXQ5SXFSb1dQWW1BWnNQc1FUNzdPeWkzUGZSa2NqZ1FTWEJsWVhNWXFZOWxMZTZpR2NldnNkdGhyOEdOZFF4dQpJV3RBOTYwdkgzSFpwRmgyRXRJbnVEOTdlWjU4STB4WXZuU2xSZGlXV1BPSTNwWDFvR0xyWDZjWGl1RlRDNUg3ClB3NnVSZUdVZ2tvR2tXS1pSU3RZdGp1dENuZHEvZ2JuQWdNQkFBR2pnWTh3Z1l3d0RnWURWUjBQQVFIL0JBUUQKQWdXZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUJNQjhHQTFVZEl3UVlNQmFBRkg2Qmh5V21zVEpwMTdqSApVLzlKaDI1MUdhMTFNRVFHQTFVZEVRUTlNRHVDQzJWNFlXMXdiR1V1WTI5dGdnbHRlV0Z3Y0M1a1pYYUNDV3h2ClkyRnNhRzl6ZEljRWZ3QUFBWWNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEFOQmdrcWhraUc5dzBCQVFzRkFBT0MKQVlFQWYrazRMQW11YjlLKzM3RWo5M3RwYXhZdER2cUl4d1VpVkRHUyt6TElrd296akkyaHVTYko2N0lsdVJZaQp0SjVUU3hlM1hMTTNJM1NQU2tKNUxpY0JLRjJDRW1tdDBKRnk2WERxeU80L3NncFVDWVh6V3J1ZWU5VWM4VkhNCnljL3ZLclN3bTVDek82alIyZk0xajdCUWVJdHh6Qk1rTlJYZUUxSUVJWGtYMUFFUGRYaFBHZXFya1NqYzdGbjkKSkIzeGIvN0xvdTNxSFlBV2xyeThicWd2Z0pjZFlVWE9RWlVZSXE0ekd4bkNZRFRTblRuTG8vbW5YQ0h6MHZXRApldlpRQzhsL2t2TWRNb1RNSUxWamxObFgyeTNyekw2ak1QZTIxcGpSdFd3K0R6S1E1dkdZemMxL1hFbXJRaVJVCmxlRWE4cVp4QVkySXptMW9hTWdNa0cwZklKRkEyZk9DSGVWTnJOek93S1ZjaXFGVHpUanpZMW9HZDd5bncrQ28KaUF1Tm03TERxdzczakJYMVBBK1ZYM0pnRTVlODVnQ0FVU0UzK0Y3Z1RGb1hBS1M3T255Mk9mS0xSREw3U0NPWgp1THlub1NVeTUrcnJlUjBJNzRwTXVhRm9hUHo5U2lCNzVCNnZ4eGZWV0xLN0g3T1ZxV1YyR0Qra3dxSW1hOUVJClVmV2IKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo='
  required: true
- name: KC_HTTPS_CERTIFICATE_KEY_FILE
  displayName: KC_HTTPS_CERTIFICATE_KEY_FILE
  description: KC_HTTPS_CERTIFICATE_KEY_FILE
  value: 'LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQ3kyOWNDQmtLNk1YRE0KbWZONy9TVmdiNXR2WXFWc01LVjhjaEwvTE5UcXVkdVA0QVBZeEtzMFBadkF3RFFreUZRdHFCVW9NcGF6UEJpSgpyREZ2eHc2VDZaeGVUOXlobCtvNWxhVmdseUdUMC9TcTBjTkg3UkZaTkp5ekRkN2FERWNzYTRyZmZUQk9uT1RmCjZ3QzhuSkNobTl4Mm9FWlU0UHRIb2tKZzcrVlFXYUdVRHg3Wm5YSlhRdDlJcVJvV1BZbUFac1BzUVQ3N095aTMKUGZSa2NqZ1FTWEJsWVhNWXFZOWxMZTZpR2NldnNkdGhyOEdOZFF4dUlXdEE5NjB2SDNIWnBGaDJFdEludUQ5NwplWjU4STB4WXZuU2xSZGlXV1BPSTNwWDFvR0xyWDZjWGl1RlRDNUg3UHc2dVJlR1Vna29Ha1dLWlJTdFl0anV0CkNuZHEvZ2JuQWdNQkFBRUNnZ0VBWEtWSlV2QWhRa2IzMGROdzd1bXFvYkJPQ0QxRnlLdk9ISThPVGdWUDZLSUwKSEJTQ2laY2R3M3FpSWc2dE05eGMxaVY1aUEva1JjVThSSnZnSTdFdFdPcXFKNlFnZWNleCtOQU9FT0ZYOERYYgpSMXhPVmdSemR3eXNtb2IxeDJhU3UyeWRTN1NTQURaK3k0bjBJTDdNb0JtVzhnK0ZQdFFtOU8wVWl4ZllaV3lhCmVleHFOS0xLVS9neG5iZXIvQy9kVWpPS3dndmpDRHkvZjhGQ1BNcDBEZzFLdU1Uc2J5ZjRyczQvM1JkUDBtK08KdXZhTTJQaEJsNEJJQVg2NXRIc1p6TGRtZWhOdzd1RGR1eGhBenVwVkR6YlhKcGQ5cEZaWE83QzlGWXhVNFpuSgpHbnliWktQcDlrL28yVkw2OWR1d0NSdkYySlVWdEZQZ2pibG80R2o4Y1FLQmdRRFc3NXVhdGtHUmNHR1Y3QWE3CktWcXVwWXFoazlxOERvaG9CZ2xvZzZMb3REMzFxbks2b1hwM2UweS9mZElMaEFERGdCaStEYW05aGFicEV4Q3YKK29TcnVNbFJLM1EyN1ZzbFd6WVQ2K0JyZDRNS3RrNjN6TG1YS25iTWhsOE9TQ1FERmdrUXQrWExGak1FUmNmawpvb2JWem1qajdrWnh5c1hoV2xsdlFTaXkyUUtCZ1FEVkI3ZG9oNDcwZ3I2VjBvbko4VzlDazF6MTBWMEtCQ0ZjCmFkd3Z4UjBKdUhsc2ZmVVJsaU1zQ3VzQlYzWDJpb3liblNxeG14SGQ0Qm5zeWx4bFlLdEpkM2pQbE05bnVoajAKbWZwMzFIcEN6aWRZRUs5Q1RVVFBTZE5tcUlFdHJqTkppano0OHcxNWlTVFA2c2c4ZXhWVUdtTVkrUDVyeDM4SQpXSkxzU3VqdnZ3S0JnUUNrTW5QN0l4VEFHTXhVRGZXdWNZODNNSHZScC9SSUNnb20vY1dlTkVIMTZBd1ZhdHN1CnZFR2ttV3N1TnQ2SnNaUXJ4ZVlnK3FzYmY4amM4WldqK292ejY3elA1NVJtaWJsQnRvWi9mWWo2VUZpcGpGQmkKbFdHS25BUVpodVdETVpWaFRpb3F2WEl0VFk0M3kxOUR5TzJjMUl6STQ3U3BKYkU1MFIzVm9qK0hNUUtCZ0VkZwpESDJEWGN4aXVnUnN4Q25iTU5IM21kL3F3K2VGTnNCRjM3WkpyczhBOWYzNXZkQ2tveWd3aUVpc3l5Tk5qSXJlCi85ejkvZUIvSTNDSTVLZzYyV2tHRkg1SWQ2MWpWdFV0ZWhRSUp1YVhOK3R6dTZUVlNzYkJENG1IejdCRWUzNmEKU0krSXIrMFduRFRsankxa2QrTHo3RndEb1FydmpvcDNVdExFem9MMUFvR0JBTTcvWVRNWSszV1NDeENPL3NIWAo3OGZDeHhBRHFMVWMxVURYdGMzcFhKQnorL3hJeUx1Q3JQYnlsUC82L21yRjN4SENTbGg3bi9mcFovV1dRMzIxCjNyZnR5Y2czWWVzalZxdjBaZmJVb01OdFE5cGYrcFpQMGpWVEZXMlF3YTZWYURrcGdTQnB4QzlvWXlMWTRldGMKajBkWm9NeTVMYXNKcm5jUjhlTVc4NHlnCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K'
  required: true

Отличие установки в DropApp#

В файле kcse.all.conf должны быть установлены следующие параметры:

# fsGroup, для корректного монтирования и использования volumes
# в случае OSE, поле остается пустым, пример для DropApp:
kcse.k8s.deployment.spec.template.spec.securityContext.fsGroup=10001
kcse.k8s.deployment.spec.template.spec.securityContext.runAsUser=10001
kcse.k8s.deployment.spec.template.spec.securityContext.runAsGroup=

# front settings
kcse.k8s.front.hostEnabled=true
kcse.k8s.front.host=kcse-domain.ru

В файле kcse.istio.all.conf должны быть установлены следующие параметры:

# Тип используемой Service Mesh:
# ossm  - Red Hat OpenShift Service Mesh
# ssm   - Synapse Service Mesh
kcse.k8s.istio.type=ssm

# control plain
kcse.k8s.istio.istioControlPlane=syn-cp-02
# control plain service
kcse.k8s.istio.istioControlPlaneIstiodService=istiod-syn-cp-02
# Для SSM используется third-party-jwt, для OSSM используется first-party-jwt, пример:
kcse.k8s.istio.deployment.spec.template.spec.containers.istioProxy.env.jwtPolicy=third-party-jwt

# fsGroup, для корректного монтирования и использования volumes
# в случае OSE, поле остается пустым, пример для DropApp:
kcse.k8s.istio.deployment.spec.template.spec.securityContext.fsGroup=1000
kcse.k8s.istio.deployment.spec.template.spec.securityContext.runAsUser=2000
kcse.k8s.istio.deployment.spec.template.spec.securityContext.runAsGroup=2000

Описание конфигурационных параметров на странице Настройка конфигурационных параметров

  1. После параметризации свойств этих документов необходимо запустить процедуру развертывания (Deployment) в среде контейнеризации.

  2. После запуска Pods необходимо проверить работоспособность приложения согласно url, прописанному в Routes для данного приложения.

  3. Вам откроется консоль администратора

    1. Консоль администратора

Чек-лист валидации установки в среде контейнеризации#

  • После параметризации свойств этих документов запущен DeploymentConfig в среде контейнеризации;

  • По url, прописанному в Routes для данного приложения, открывается консоль администратора.