• Русский
  • Флаги функциональности

    Connectors использует feature flags для управления необязательными или постепенно внедряемыми возможностями. Флаги хранятся в ConfigMap connectors-config, создаваемом компонентом ConnectorsCore.

    На этой странице описаны feature flags, которые в настоящее время определены для компонента ConnectorsCore.

    Где хранятся feature flags

    Компонент ConnectorsCore создаёт ConfigMap connectors-config в namespace, где установлен компонент. Namespace по умолчанию — connectors-system.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: connectors-config
      namespace: connectors-system # example namespace
    data:
      enable-connector-apis-permissions: "false"
      enable-connector-proxy-permissions: "false"
      enable-connectors-approval: "false"
      enable-multi-connector: "false"
      enable-custom-ca-certs: "false"

    Все значения — строковые boolean ("true" или "false"). Поскольку флаги хранятся в одном общем ConfigMap, они применяются к текущей установке Connectors, а не к одному отдельному Connector.

    Просмотр текущих feature flags

    Вы можете напрямую проверить ConfigMap:

    kubectl -n <connectors-namespace> get configmap connectors-config -o yaml

    Также можно выполнить запрос к API Connectors Operator:

    curl -H "Authorization: Bearer ${K8S_TOKEN}" \
      "https://platform.example.com/clusters-rewrite/${CLUSTER_NAME}/connectors-operator/featureflags"

    Для этого API требуется разрешение на доступ к ConnectorClass. Подробнее о параметрах endpoint см. в Connector API.

    Обновление feature flag

    Feature flags настраиваются через поле spec.featureFlags ресурса ConnectorsCore CR. Во время reconciliation оператор объединяет эти значения с ConfigMap connectors-config, при этом значения из CR переопределяют значения по умолчанию из манифеста.

    Через ConnectorsCore CR (рекомендуется)

    Отредактируйте CR ConnectorsCore, чтобы задать feature flags декларативно:

    kubectl edit connectorscore connectorscore
    apiVersion: operator.connectors.alauda.io/v1alpha1
    kind: ConnectorsCore
    metadata:
      name: connectorscore
    spec:
      featureFlags:
        enable-multi-connector: "true"
        enable-custom-ca-certs: "true"

    Или используйте kubectl patch:

    kubectl patch connectorscore connectorscore --type merge \
      -p '{"spec":{"featureFlags":{"enable-multi-connector":"true"}}}'

    Feature flags, объявленные в spec.featureFlags, переопределяют значения по умолчанию из манифеста в connectors-config. Ключи, не указанные в CR, сохраняют значения по умолчанию из манифеста. Когда новая версия добавляет дополнительные feature flags, они автоматически появляются со значениями по умолчанию.

    Примечание: Прямые изменения ConfigMap connectors-config (например, через kubectl edit configmap) будут перезаписаны при следующем reconciliation. Всегда используйте CR ConnectorsCore для настройки feature flags.

    Встроенные feature flags

    FlagDefaultDescription
    enable-connector-apis-permissions"false"Включает проверки разрешений для доступа к tool API, предоставляемым через Connectors API.
    enable-connector-proxy-permissions"false"Включает управление разрешениями для трафика, обрабатываемого через Connectors Proxy.
    enable-connectors-approval"false"Включает workflow согласования Connectors для ограниченного доступа к Connectors Proxy. Этот флаг следует включать вместе с enable-connector-proxy-permissions.
    enable-multi-connector"false"Включает монтирование и рендеринг конфигурации для нескольких Connectors в одном CSI volume.
    enable-custom-ca-certs"false"Включает доверие к пользовательским CA certificate (глобальным Secret с меткой и per-Connector spec.caCertSecretRef) при проверке TLS-соединений с tools.

    Подробности о feature flags

    enable-connector-apis-permissions

    Когда этот флаг включён, система применяет проверки разрешений на основе RBAC для доступа, выполняемого через Connectors API. Это разделяет разрешение на чтение ресурса Connector и разрешение на использование этого Connector для доступа к целевому tool API.

    Эта возможность полезна, когда нужно, чтобы пользователи или workloads могли обнаруживать Connectors, но при этом сохранялся контроль над тем, могут ли они выполнять операции чтения или записи во встроенном tool.

    Дополнительные материалы:

    enable-connector-proxy-permissions

    Когда этот флаг включён, к запросам, обрабатываемым через Connectors Proxy, применяется контроль разрешений. Это актуально, когда workloads или tools обращаются к внешним системам через proxy-based secretless connectivity.

    Используйте этот флаг, если сам доступ через proxy должен регулироваться разрешениями платформы. Этот флаг также требуется при включении enable-connectors-approval, поскольку функция согласования защищает использование Connectors Proxy.

    Дополнительные материалы:

    enable-connectors-approval

    Когда этот флаг включён, Connectors может участвовать в workflow доступа с обязательным согласованием для Connectors Proxy. Эта функция предназначена для защиты использования connector через proxy, особенно когда workloads обращаются к внешним tools через proxy endpoints.

    Включайте enable-connector-proxy-permissions вместе с этим флагом. Без управления разрешениями для proxy функция согласования не сможет защитить целевой путь использования proxy.

    Эта функция предназначена для сценариев, таких как продвижение production artifact, развёртывание в защищённые clusters или любые среды, где использование connector через proxy должно быть согласовано до предоставления доступа.

    Дополнительные материалы:

    enable-multi-connector

    Когда этот флаг включён, Connectors CSI Driver может монтировать конфигурацию, сформированную из нескольких Connectors, в одном volume. Это позволяет одному workload использовать несколько интеграций с tools одновременно, а драйвер объединяет рендеренную конфигурацию в соответствии с настроенным configuration.names.

    Это полезно для сценариев, таких как Tekton task, которой нужен один Connector для чтения dependencies и другой Connector для публикации artifact.

    Дополнительные материалы:

    enable-custom-ca-certs

    Когда этот флаг включён, платформа доверяет дополнительным CA certificates при проверке TLS-соединений с tools, не отключая проверку certificate. Набор доверия формируется по принципу добавления:

    1. System default CA pool — trust store на уровне OS, встроенный в container image.
    2. Global custom CA certificates — Secret в namespace connectors-system, помеченные connectors.cpaas.io/ca-cert: "true".
    3. Per-Connector CA certificate — необязательный Secret, указанный в spec.caCertSecretRef.name ресурса Connector, который должен находиться в том же namespace, что и Connector.

    Сформированный CA pool используется проверками liveness и authentication у controller, трафиком Connectors Proxy, проверками доступности ConnectorClass и extension proxies (OCI, Harbor, Git HTTPS и т. д.), где это применимо.

    Когда флаг включён, на каждом Connector публикуется информационное условие CACertReady, отражающее статус загрузки CA для конкретного Connector. Это условие имеет severity: Info и не влияет на верхнеуровневое условие Ready.

    Дополнительные материалы:

    Дальнейшие шаги