Чек-лист по настройке namespace#

Чек-лист по настройке namespace для DataSpace Core (DSPC)#

Namespace Kubernetes будет считаться готовым к развертыванию сервисов DataSpace после выполнения всех следующих требований:

  • В namespace Kubernetes создан secret типа Dockersecret с логином и паролем ТУЗ.

  • Созданный secret прописан в service accounts: default и dataspace-core.

  • Произведена настройка Ingress Gateway (опционально).

  • Произведена настройка Egress Gateway (опционально).

Чек-лист по настройке namespace для DS Lab (DSLB)#

Namespace Kubernetes (OpenShift) будет считаться готовым к развертыванию компонента DS Lab после выполнения всех следующих требований:

  • Для namespace создан secret типа Dockersecret с логином и паролем ТУЗ для image pull.

  • Созданный secret прописан в service accounts: default.

  • Для namespace, в котором разворачивается ControlPlane и клиентские сервисы, создан ServiceAccount.

  • Для namespace, в котором разворачивается ControlPlane, создан secret с параметрами подключения к БД.

  • Для namespace клиентских сервисов создан secret с settings.xml.

Создание pull image secret#

Pull image secret создается в namespace:

kubectl create secret docker-registry <secret-name> --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

Создание ServiceAccount и выдача прав#

Необходимо выполнить следующие действия:

  1. Создать ServiceAccount в namespace, в котором разворачивается ControlPlane и клиентские dataspace:

      kubectl apply -f - <<EOF
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: sa-dataspace
      EOF
    
  2. Для созданных ServiceAccount сгенерировать токен:

      kubectl apply -f - <<EOF
      apiVersion: v1
      kind: Secret
      metadata:
        name: sa-dataspace-secret
        annotations:
          kubernetes.io/service-account.name: sa-dataspace
      type: kubernetes.io/service-account-token
      EOF
    

    Примечание

    Если используется Kubernetes версии 1.22 и ниже, данный шаг не обязателен, токен будет сгенерирован автоматически.

  3. Создать RoleBinding для ServiceAccount в namespace ControlPlane:

      kubectl create rolebinding sa-dataspace-admin --clusterrole=admin --serviceaccount=<ns_controlPlane>:sa-dataspace --namespace=<ns_controlPlane>
    
  4. Создать RoleBinding для ServiceAccount в namespace клиентских dataspace:

      kubectl create rolebinding sa-dataspace-admin --clusterrole=admin --serviceaccount=<ns_clients>:sa-dataspace --serviceaccount=<ns_controlPlane>:sa-dataspace --namespace=<ns_clients>
    

    Примечание

    Если для ControlPlane и клиентских dataspace используется общий namespace, данный шаг можно пропустить.

  5. Для созданных ServiceAccount привязать pull image secret, созданный ранее (Создание pull image secret):

      kubectl patch serviceaccount sa-dataspace -p '{"imagePullSecrets": [{"name": "<secret-name>"}]}'
    
  6. При установке сервисов dataspace-core-meta и dataspace-meta в values.yaml указать имя используемого ServiceAccount:

      serviceAccount:
        name: sa-dataspace
    

Создание secret для подключения к БД#

Пример команды:

kubectl create secret generic <secret-name> --from-file=<имя файла>

Пример файла:

apiVersion: v1
kind: Secret
metadata:
  name: main-db-secret
stringData:
  secret.properties: |-
    spring.datasource.username=<имя пользователя для DML операций>
    spring.datasource.password=<пароль пользователя>
    spring.datasource.url=<jdbc строка для подключения к <БД>
    dataspace.datasource.primary.dbschema=<имя схемы>
    spring.datasource.driver-class-name=org.postgresql.Driver
    spring.jpa.database-platform=sbp.com.sbt.dataspace.DataspacePostgreSQLDialect
    spring.jpa.properties.hibernate.dialect=sbp.com.sbt.dataspace.DataspacePostgreSQLDialect
    spring.jpa.properties.hibernate.timezone.default_storage=NORMALIZE

Создание secret с settings.xml#

Пример команды:

kubectl apply -f <имя файла>

Пример файла:

apiVersion: v1
kind: Secret
metadata:
  name: maven-settings
stringData:
  settings.xml: |-
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <servers>
            <server>
                <id>release.repo</id>
                <username></username>
                <password></password>
            </server>
            <server>
                <id>internal</id>
                <username></username>
                <password></password>
            </server>
        </servers>
        <profiles>
            <profile>
                <id>settings</id>
                <repositories>
                    <repository>
                        <id>release.repo</id>
                        <url></url>
                    </repository>
                </repositories>
                <pluginRepositories>
                    <pluginRepository>
                        <id>release.repo</id>
                        <url></url>
                    </pluginRepository>
                </pluginRepositories>
            </profile>
        </profiles>

        <localRepository>/tmp/m2/repository</localRepository>

        <activeProfiles>
            <activeProfile>settings</activeProfile>
        </activeProfiles>
    </settings>

Чек-лист по настройке namespace для DSAC#

Namespace Kubernetes будет считаться готовым к развертыванию сервисов DataSpace Admin Console после выполнения всех следующих требований:

  • Произведена настройка Ingress Gateway (опционально).