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

Использование среды контейнеризации для оркестрации 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
                        value: '${KC_DB_URL}'
                      - name: KC_DB_URL_PORT
                        value: '${KC_DB_URL_PORT}'
                      - name: KC_DB_URL_PROPERTIES
                        value: '${KC_DB_URL_PROPERTIES}'
                      - 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: KC_DB_POOL_MAX_SIZE
                        value: '${KC_DB_POOL_MAX_SIZE}'                        
                      - 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_REST_METAMODEL_NAME
                        value: '${KCSE_AUDIT_REST_METAMODEL_NAME}'
                      - name: KCSE_AUDIT_REST_METAMODEL_VERSION
                        value: '${KCSE_AUDIT_REST_METAMODEL_NAME}'
                       - name: KCSE_AUDIT_REST_ASYNC_LIMIT
                        value: '${KCSE_AUDIT_REST_ASYNC_LIMIT}'
                      - 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: KCSE_ENABLE_EVENTS_CONFIG
                        value: '${KCSE_ENABLE_EVENTS_CONFIG}'
                      - name: KC_HTTPS_KEY_STORE_FILE
                        value: /tmp/kcse/opt/keycloak/conf/keystores/https-keystore.jks
                      - name: KC_HTTPS_KEY_STORE_TYPE
                        value: JKS
                      - name: KC_HTTPS_TRUST_STORE_FILE
                        value: /tmp/kcse/opt/keycloak/conf/keystores/https-keystore.jks
                      - name: KC_SPI_TRUSTSTORE_FILE_FILE
                        value: /tmp/kcse/opt/keycloak/conf/keystores/https-keystore.jks
                      - name: KC_HTTPS_TRUST_STORE_TYPE
                        value: JKS
                      - name: KC_HOSTNAME_VERIFICATION_POLICY
                        value: ANY
                      - name: KCSE_TRUSTED_CERTS
                        value: /secrets/trusted_certs
                      - 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_CACHE
                        value: "ispn"
                      - name: KC_HEALTH_ENABLED
                        value: "true"
                      - name: KC_METRICS_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
                     runAsGroup: 20003   #обязательный параметр, начиная с релиза Platform V IAM SE 1.8.1 для OSE и k8s.
                     runAsNonRoot: true
                     readOnlyRootFilesystem: true
                     allowPrivilegeEscalation: false
                   resources:
                      limits:
                        cpu: 1
                        memory: 2Gi
                      requests:
                        cpu: 500m
                        memory: 512Mi
                   volumeMounts:
                      - name: tls-cert
                        readOnly: true
                        mountPath: /opt/keycloak/conf/tls
                      - name: empty
                        mountPath: /tmp/keycloak/data #начиная с версии Platform V IAM SE 2.0.0
                      - name: tmp
                        mountPath: /tmp
                      - name: logs
                        mountPath: /kcse-logs
                   args:
                      - '--verbose'
                      - 'start'
              volumes:
                 - name: tls-cert
                   secret:
                      secretName: tls-secret
                 - name: empty
                   emptyDir: {}
                 - name: tmp
                   emptyDir: {}
                 - name: logs
                  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
  value: '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_DB_URL_PROPERTIES
  displayName: KC_DB_URL_PROPERTIES
  description: KC_DB_URL_PROPERTIES
  value: '?ssl=false&sslmode=disable'
  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 должны быть установлены следующие параметры:

# Корректное заполнение SecurityContext, для корректного монтирования и использования volumes и старта контейнера
# Пример для K8S:
kcse.k8s.deployment.spec.template.spec.securityContext.fsGroup=20003
kcse.k8s.deployment.spec.template.spec.securityContext.runAsUser=10003
kcse.k8s.deployment.spec.template.spec.securityContext.runAsGroup=20003
# Пример для OSE:
kcse.k8s.deployment.spec.template.spec.securityContext.fsGroup=
kcse.k8s.deployment.spec.template.spec.securityContext.runAsUser=
kcse.k8s.deployment.spec.template.spec.securityContext.runAsGroup=20003

# 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=20003
kcse.k8s.istio.deployment.spec.template.spec.securityContext.runAsUser=10003
kcse.k8s.istio.deployment.spec.template.spec.securityContext.runAsGroup=20003

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

# пример для DAP:
gossiprouter.k8s.deployment.spec.template.spec.securityContext.fsGroup=20003
gossiprouter.k8s.deployment.spec.template.spec.securityContext.runAsUser=10003
gossiprouter.k8s.deployment.spec.template.spec.securityContext.runAsGroup=20003

# в случае OSE:
gossiprouter.k8s.deployment.spec.template.spec.securityContext.fsGroup=
gossiprouter.k8s.deployment.spec.template.spec.securityContext.runAsUser=
gossiprouter.k8s.deployment.spec.template.spec.securityContext.runAsGroup=20003

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

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

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

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

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

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

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

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