Connector
Содержание
OverviewАдрес коннектораБазовый формат URLURL с префиксом путиПараметры коннектораИнформация для аутентификацииНастройка информации для аутентификацииНеобязательная аутентификацияПроверка аутентификацииАдрес проксиИнформация о состоянииПримерыGit-коннектор с базовой аутентификациейGit-коннектор без аутентификацииOverview
Connector — это ресурс на уровне namespace, используемый для определения конфигурации подключения между инструментами и платформами. Он включает:
- Адрес доступа к инструменту
- Информацию для аутентификации инструмента
- Информацию о состоянии инструмента
Например, следующее определение иллюстрирует коннектор типа Git:
Адрес коннектора
Поле address указывает URL-адрес целевого инструмента, с которым будет интегрироваться Connector. Принимаются как корневые URL, так и URL с префиксами путей.
Базовый формат URL
Для инструментов, доступных по корневому домену:
URL с префиксом пути
Для инструментов, развернутых за обратными прокси или доступных по определённым путям:
Примечание
Проверка аутентификации по протоколу http и проверка живости (liveness probe) не выполняются по префиксу пути. Если необходимо выполнить проверку по префиксу пути, можно использовать выражения проверки аутентификации и выражения проверки живости.
Подробнее смотрите в разделах liveness probe и authentication probe.
Параметры коннектора
Параметры коннектора позволяют передавать дополнительную конфигурационную информацию в экземпляр Connector. Эти параметры сначала определяются в спецификации ConnectorClass, а затем могут быть настроены при создании отдельных ресурсов Connector.
Вы можете указать значения параметров в Connector через поле spec.params.
spec.params[].name: имя параметра, которое должно совпадать с именем параметра, определённого в соответствующемConnectorClass.spec.params[].value: значение параметра. Тип значения должен соответствовать типу параметра, определённому вConnectorClass. В настоящее время поддерживается только типstring.
Если в ConnectorClass для параметра задано значение по умолчанию, при создании Connector этот параметр можно опустить, и будет использовано значение по умолчанию.
Для получения дополнительной информации о определении параметров в ConnectorClass смотрите ConnectorClass Parameters.
Пример
Следующий пример демонстрирует коннектор, настроенный с параметром sslVerify:
Информация для аутентификации
Информация для аутентификации определяет учётные данные для доступа к инструменту. В зависимости от типа инструмента могут быть настроены различные методы аутентификации. Этот метод аутентификации определяется в ConnectorClass. Подробнее смотрите в описании информации для аутентификации в ConnectorClass.
Настройка информации для аутентификации
Информация для аутентификации настраивается следующим образом:
- Укажите имя типа аутентификации, используемого согласно определению ConnectorClass.
- Создайте Secret, содержащий учётные данные.
- Сошлитесь на Secret в Connector через
spec.auth.secretRef. - Укажите параметры, необходимые при проверке аутентификации.
Например, для настройки базовой аутентификации:
Необязательная аутентификация
Некоторые инструменты поддерживают доступ без аутентификации. В этом случае spec.auth.secretRef можно опустить.
Например, доступ к публичному Git-репозиторию:
Проверка аутентификации
Connector поддерживает проверку валидности информации для аутентификации. Конфигурация проверки задаётся через spec.auth.params, который включает параметры, необходимые для проверки аутентификации.
Например, для проверки прав доступа к Git-репозиторию:
Обратите внимание, что если ConnectorClass указывает параметры для проверки аутентификации, параметры в Connector должны быть предоставлены, даже если Connector создан без указания информации о секрете, spec.auth.params должен быть передан.
Адрес прокси
Если Connector ссылается на ConnectorClass, который настроил возможность прокси, система выделит прокси-адрес для каждого Connector.
Клиенты могут использовать этот прокси-адрес для доступа к инструменту без использования секретов.
Формат прокси-адреса по умолчанию — http://c-{connector-name}.{namespace}.svc.cluster.local, который можно получить из status.proxy.
Например, следующий пример описывает коннектор с прокси-адресом:
Если в ConnectorClass настроен тип разрешателя прокси path, формат прокси-адреса будет http://c-{connector-name}.{namespace}.svc.cluster.local/namespaces/{namespace}/connectors/{connector-name}, где {path} — путь Connector.
Например, следующий пример описывает коннектор с прокси-адресом:
Информация о состоянии
Информация о состоянии Connector записывается в поле status, которое содержит прокси-адрес, API-адрес и условия:
status.conditions: условия Connector.status.proxy: прокси-адрес Connector.status.api: API-адрес Connector.
Прокси-адрес
Поле proxy содержит прокси-адрес Connector.
status.proxy.httpAddress.url: HTTP-адрес прокси для текущего Connector.
Вы можете использовать этот адрес с существующими клиентами инструмента для доступа к инструменту без секретов внутри кластера. Подробнее см. в разделе Connector Proxy.
Если ConnectorClass не имеет возможности прокси, поле status.proxy будет пустым.
API-адрес
Поле api содержит API-адрес Connector.
status.api.path: относительный путь API для текущего Connector (относительно точки входа ingress кластера).
Вы можете использовать этот путь вне кластера для доступа к оригинальному API инструмента через текущий Connector. Подробнее см. в Connector API.
Условия
Типы условий включают:
ConnectorClassReady: указывает, корректен ли тип коннектора.SecretReady: указывает, правильно ли настроена информация для аутентификации.LivenessReady: указывает, доступен ли инструмент.AuthReady: указывает, валидна ли информация для аутентификации.ProxyServiceReady: указывает, успешно ли выделен прокси-адрес для текущего Connector.Ready: указывает общее состояние.
Условие SecretReady
Отражает статус информации о секрете для Connector.
Условие AuthReady
Отражает статус информации об аутентификации для Connector.
Условие LivenessReady
Отражает статус проверки живости для Connector.
Условие ProxyServiceReady
Отражает статус прокси-сервиса для Connector.
Например: