Csi-driver-shared-resource#

Csi-driver-shared-resource предназначен для создания встроенных временных томов, содержащих данные из объектов Secret или ConfigMap. Обеспечивает безопасное использование содержимого этих объектов в различных namespaces в кластере DropApp Plus.

Csi-driver-shared-resource предоставляет следующие функциональности:

  1. Позволяет администраторам кластера создавать встроенные временные тома, содержащие данные из объектов Secret или ConfigMap.

  2. Обеспечивает безопасное использование данных из объектов Secretили ConfigMap в различных namespaces в кластере.

  3. Поддерживает два типа общих ресурсов: SharedSecret для Secret объектов и SharedConfigMap для ConfigMap объектов.

Последовательность выполнения#

Рекомендуемые флаги приведены в таблице.

Таблица. Рекомендуемые флаги Csi-driver-shared-resource

Синтаксис флага

Значение

oc apply -f <filename>

Применить конфигурацию из файла

oc get sharedsecrets

Получить список SharedSecret custom resource (CR) instance

oc adm policy who-can use <identifier of specific SharedSecret>

Узнать, какие service account могут использовать определенный SharedSecret CR instance

oc create rolebinding ...

Создать связку роли с аккаунтом

Создание SharedSecret для Secret#

Выполните команду:

$ oc apply -f - <<EOF
apiVersion: sharedresource.openshift.io/v1alpha1
kind: SharedSecret
metadata:
  name: my-share
spec:
  secretRef:
    name: <name of secret>
    namespace: <namespace of secret>
EOF

Использование SharedSecret в pod#

  1. Создайте роли:

    oc apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: shared-resource-my-share
      namespace: my-namespace
    rules:
      - apiGroups:
          - sharedresource.openshift.io
        resources:
          - sharedsecrets
        resourceNames:
          - my-share
        verbs:
          - use
    EOF
    
  2. Выполните привязку к роли:

    oc create rolebinding shared-resource-my-share --role=shared-resource-my-share --serviceaccount=my-namespace:builder
    
  3. Создайте pod с использованием SharedSecret:

    oc apply -f - <<EOF
    kind: Pod
    apiVersion: v1
    metadata:
      name: my-app
      namespace: my-namespace
    spec:
      serviceAccountName: default
    
    # containers omitted …. Follow standard use of ‘volumeMounts’ for referencing your shared resource volume
    
        volumes:
        - name: my-csi-volume
          csi:
            readOnly: true
            driver: csi.sharedresource.openshift.io
            volumeAttributes:
              sharedSecret: my-share
    
    EOF
    

Создание SharedConfigMap для ConfigMap#

  1. Выполните команду:

    oc apply -f - <<EOF
    apiVersion: sharedresource.openshift.io/v1alpha1
    kind: SharedConfigMap
    metadata:
      name: my-share
    spec:
      configMapRef:
        name: <name of configmap>
        namespace: <namespace of configmap>
    EOF
    

Использование SharedConfigMap в pod#

Выполните шаги аналогично пункту Использование SharedSecret в pod.

Результат#

Csi-driver-shared-resource настроен и готов к использованию.