Архитектура

Architecture

Содержание

Connector

Connector — это ресурс, представляющий интегрированный экземпляр конкретного инструмента. Настраивая URL доступа к инструменту и данные для аутентификации, мы можем создать экземпляр для интеграции с этим инструментом.

Например, интеграция с https://github.com с использованием GitHub Private Access Token осуществляется через Connector.

В Kubernetes Connector является ресурсом с областью действия namespace. Пользователи могут создавать несколько Connector в одном namespace для интеграции различных инструментов.

Например, в namespace default можно создать как Connector для интеграции с https://github.com, так и Connector для интеграции с https://hub.docker.com/.

Администраторы платформы могут управлять интеграциями инструментов по всему кластеру, управляя ресурсами Connector.

ConnectorClass

ConnectorClass определяет методы доступа и спецификации поведения для конкретных типов инструментов. Он задаёт параметры, необходимые при интеграции с определённым типом инструмента, такие как адрес инструмента и данные для аутентификации.

Например, Git ConnectorClass определяет конфигурационные элементы, которые необходимо предоставить при интеграции с Git-инструментами, включая адрес Git-сервиса и данные аутентификации Basic-Auth.

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

Например, можно определить Harbor ConnectorClass для поддержки интеграции с репозиторием образов Harbor, MySQL ConnectorClass для интеграции с базами данных MySQL или Jira ConnectorClass для интеграции с инструментами управления проектами Jira.

Connectors Proxy

ConnectorsProxy — это ключевой компонент системы Connectors, обеспечивающий безопасный и безсекретный доступ к интегрированным инструментам внутри кластера Kubernetes. Он выступает в роли прокси-сервера, который обрабатывает аутентификацию и маршрутизацию запросов к реальным конечным точкам инструментов.

ConnectorsProxy позволяет клиентам получать доступ к ресурсам инструментов без необходимости напрямую работать с учётными данными для аутентификации. Это значительно повышает безопасность за счёт:

  • Исключения необходимости распространять учётные данные инструментов напрямую клиентам, используя краткоживущие токены, выдаваемые ServiceAccount.
  • Предотвращения утечки учётных данных в логах или переменных окружения.
  • Централизации управления учётными данными.

Он поддерживает различные протоколы и может обрабатывать разные типы интеграций инструментов:

  • HTTP/HTTPS протоколы для REST API
  • Git протокол с HTTP Basic Auth для серверов репозиториев кода (например, GitHub, GitLab)
  • OCI протокол с Bearer Token Authorization для OCI-реестров (например, Harbor, Docker Registry)

Подробнее: Connectors Proxy

Connectors API

Connectors API предоставляет возможности доступа к внутренним ресурсам инструментов на основе экземпляров Connector. Например, для Git Connector Connectors API может получить список веток (References) в Git-репозитории.

Разработчики могут удобно получать доступ к ресурсам внутри инструментов через Connectors API, не заботясь о конкретных адресах инструментов и деталях аутентификации.

Этот API очень полезен в практических приложениях, таких как:

  • Получение списка тегов контейнерных образов при создании приложений
  • Получение списка веток (References) репозитория кода при выполнении операции Git Clone

Реализация Connectors API основана на возможностях, предоставляемых ConnectorClass API.

ConnectorClass API

ConnectorClass API определяет API, предоставляемые конкретными типами инструментов.

Разные типы инструментов могут предлагать различные возможности API, например:

  • Git ConnectorClass API может предоставлять возможность получения списка веток репозитория кода
  • OCI ConnectorClass API может предоставлять возможность получения списка тегов для репозиториев артефактов

Разработчики могут определять уникальные возможности API для каждого ConnectorClass, и эти возможности в конечном итоге будут доступны клиентам через Connectors API.

Connectors CSI Driver

Для упрощения использования возможностей Connectors-Proxy рабочими нагрузками K8S можно использовать Connectors CSI Driver.

Connectors CSI Driver может монтировать отрендеренное содержимое шаблонов конфигурационных файлов, поддерживаемых внутри ConnectorClass, в рабочую нагрузку. Конфигурационный файл может содержать информацию для доступа к Connectors Proxy, что позволяет пользователям использовать возможности Connectors Proxy с минимальными изменениями в их исходных скриптах.

Для получения дополнительной информации смотрите connectors csi driver