Connectors CSI Driver
Содержание
OverviewQuick Start1. Создайте ConnectorClass2. Создайте Connector3. Создайте Pod с использованием CSI DriverВстроенные конфигурацииПараметры тома CSIНесколько ConnectorСлияние конфигурацийРендеринг конфигурационных файловДоступные переменныеВстроенные функцииО прокси-сервисеПримеры конфигурацийOverview
Драйвер Connectors CSI — это драйвер хранения, реализованный на основе спецификации Container Storage Interface (CSI). Он позволяет монтировать конфигурации из Connector в виде томов в Kubernetes workloads. Основные возможности включают:
- Монтирование конфигурационных файлов из Connector в Pods
- Поддержка динамического рендеринга переменных в конфигурационных файлах для автоматической подстановки информации во время выполнения
- Поддержка одновременного монтирования нескольких конфигурационных файлов
Все данные конфигурации берутся из ConnectorClass configuration, связанной с Connector.
Quick Start
1. Создайте ConnectorClass
Сначала создайте ConnectorClass, который включает конфигурацию Git:
2. Создайте Connector
Затем создайте Connector, который подключается к GitHub:
3. Создайте Pod с использованием CSI Driver
Создайте Pod, который монтирует конфигурацию:
Проверьте смонтированные файлы:
Встроенные конфигурации
Драйвер CSI автоматически предоставляет встроенные конфигурационные файлы, которые всегда монтируются в Pods.
Использование форвард-прокси:
Использование реверс-прокси:
Параметры тома CSI
Параметры тома
Атрибуты тома
Примеры
Монтирование одной конфигурации:
Монтирование нескольких конфигураций:
Монтирование нескольких Connector для аутентификации через прокси:
Примечания:
- Если
configuration.namesопущен, монтируются только встроенные конфигурации - Если в нескольких конфигурациях есть файлы с одинаковыми именами, более поздние конфигурации перезаписывают более ранние
- Параметр
connectorsиспользуется для указания нескольких Connector для монтирования конфигураций.
Несколько Connector
Драйвер Connectors CSI поддерживает использование нескольких Connector для конфигураций. Вы можете указать несколько Connector с помощью атрибута тома connectors в формате namespace/name или name; если пространство имён опущено, используется пространство имён Pod. Connector разделяются запятыми.
При указании нескольких Connector драйвер CSI объединяет конфигурационные файлы на основе атрибута configuration.names. Поведение слияния описано в разделе Configuration Merging.
Нет строгого ограничения на количество Connector, которые вы можете указать; однако избегайте слишком большого количества Connector, чтобы не возникали проблемы с избыточным размером заголовков запросов и другие проблемы, связанные с прокси.
Слияние конфигураций
При указании нескольких Connector драйвер CSI объединяет конфигурационные файлы всех указанных Connector на основе атрибута configuration.names.
Существует несколько возможных сценариев обработки конфигурационных файлов; ниже описано поведение в каждом случае.
Одинаковое имя конфигурации
Для Connector с одинаковым именем конфигурации, при указании нескольких Connector, их данные конфигурации будут объединены в один конфигурационный файл.
Шаблоны конфигураций должны поддерживать рендеринг данных для нескольких Connector, чтобы один файл мог включать несколько наборов данных, специфичных для каждого Connector.
Например:
В приведённом примере конфигурационный файл .multi-connector-config будет содержать секции для каждого Connector, указанного в атрибуте тома connectors.
Если объединённые Connector принадлежат разным ConnectorClass и имеют конфигурационные файлы с одинаковыми именами, конфигурация из более позднего ConnectorClass перезапишет конфигурацию из более раннего ConnectorClass. Поэтому рекомендуется использовать разные имена конфигурационных файлов в таком сценарии, чтобы избежать конфликтов.
Разные имена конфигураций
Если указанные Connector имеют разные имена конфигураций, драйвер CSI смонтирует все конфигурации отдельно.
При монтировании с указанием и connectors, и configuration.names:
В смонтированном томе будут присутствовать как config.xml, так и settings.json, каждый из которых заполнен данными соответствующих Connector.
Рендеринг конфигурационных файлов
Драйвер CSI выполняет рендеринг переменных при монтировании конфигурационных файлов, используя синтаксис Go template.
Доступные переменные
Встроенные функции
См. sprig для поддерживаемых функций
Например: b64enc: Base64-кодирование строки
О прокси-сервисе
Connectors предоставляют прокси-сервис для каждого Connector, позволяя клиентам получать доступ к целевым ресурсам без необходимости хранить оригинальные учетные данные. Подробнее см. в connectors-proxy.
Примеры конфигураций
Постоянное содержимое
Использование connector.spec.params
Следующий ConnectorClass определяет параметр sslVerify для управления проверкой SSL при выполнении git clone.
Использование прокси-сервиса и токена
Следующий ConnectorClass предоставляет файл с именем .gitconfig, который автоматически вставляет заголовки и заменяет URL git при выполнении git clone, используя прокси-сервис и токен.