• Русский
  • Архитектура

    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