• Русский
  • Connector

    Содержание

    Обзор

    Connector — это ресурс на уровне namespace, используемый для определения конфигурации подключения между инструментами и платформами. Он включает в себя:

    • Адрес доступа к инструменту
    • Информацию для аутентификации инструмента
    • Информацию о состоянии инструмента

    Например, следующее определение иллюстрирует коннектор типа Git:

    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-github
      namespace: default
    spec:
      connectorClassName: git  ##  Указывает тип коннектора как git, этот ConnectorClass должен существовать
      address: "https://github.com"  ##  Адрес доступа к инструменту
      auth:
        secretRef:  ##  Ссылка на информацию для аутентификации
          name: github-secret

    Информация для аутентификации

    Информация для аутентификации определяет учетные данные для доступа к инструменту. В зависимости от типа инструмента могут быть настроены различные методы аутентификации. Этот метод аутентификации определяется в ConnectorClass. Для подробностей обратитесь к описанию информации для аутентификации в ConnectorClass.

    Настройка информации для аутентификации

    Информация для аутентификации настраивается следующим образом:

    1. Укажите имя используемого типа аутентификации согласно определению ConnectorClass.
    2. Создайте Secret, содержащий учетные данные.
    3. Сошлитесь на Secret в Connector через spec.auth.secretRef.
    4. Укажите параметры, необходимые при проверке аутентификации.

    Например, для настройки базовой аутентификации:

    ##  Создайте Secret, содержащий имя пользователя и пароль
    apiVersion: v1
    kind: Secret
    metadata:
      name: github-secret
      namespace: default
    type: kubernetes.io/basic-auth
    data:
      username: dXNlcm5hbWU=  ##  Имя пользователя в Base64
      password: cGFzc3dvcmQ=  ##  Пароль в Base64
    ---
    ##  Сошлитесь на Secret в Connector
    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-github
    spec:
      connectorClassName: git
      address: "https://github.com"
      auth:
        name: basic-auth
        secretRef:
          name: github-secret
          namespace: default

    Необязательная аутентификация

    Некоторые инструменты поддерживают доступ без аутентификации. В этом случае spec.auth.secretRef можно опустить.

    Например, доступ к публичному Git-репозиторию:

    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-public
    spec:
      connectorClassName: git
      address: "https://github.com"
      auth:
        name: basic-auth ##  Аутентификация для git connectorclass basic-auth является необязательной

    Проверка аутентификации

    Connector поддерживает проверку корректности информации для аутентификации. Конфигурация проверки задается через spec.auth.params, который включает параметры, необходимые для проверки аутентификации.

    Например, для проверки прав доступа к Git-репозиторию:

    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-github
    spec:
      connectorClassName: git
      address: "https://github.com"
      auth:
        name: basic-auth
        secretRef:
          name: github-secret
          namespace: default
        params:
        - name: repository  ##  Укажите репозиторий для проверки
          value: "org/repo.git"

    Прокси-адрес

    Если Connector указывает на ConnectorClass, который настроил возможность прокси, система выделит прокси-адрес для каждого Connector.

    Клиенты могут использовать этот прокси-адрес для доступа к инструменту без необходимости передачи секретов.

    Формат прокси-адреса по умолчанию — http://c-{connector-name}.{namespace}.svc.cluster.local, который можно получить из status.proxy.

    Например, следующий пример описывает коннектор с прокси-адресом:

    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: harbor
      namespace: default
    spec:
      address: https://example.com
    status:
     proxy:
        httpAddress:
          url: http://c-harbor.default.svc.cluster.local

    Информация о состоянии

    Информация о состоянии Connector записывается в поле status, которое содержит следующие данные:

    • ConnectorClassReady: указывает, корректен ли тип коннектора.
    • SecretReady: указывает, правильно ли настроена информация для аутентификации.
    • LivenessReady: указывает, доступен ли инструмент.
    • AuthReady: указывает, валидна ли информация для аутентификации.
    • ProxyServiceReady: указывает, успешно ли выделен прокси-адрес для текущего Connector.
    • Ready: указывает на общий статус.

    Например:

    status:
      conditions:
      - type: ConnectorClassReady
        status: "True"
        message: ""
      - type: SecretReady
        status: "True"
        message: ""
      - type: LivenessReady
        status: "True"
        lastProbeTime: "2024-10-16T02:27:44Z"
        message: ""
      - type: AuthReady
        status: "True"
        lastProbeTime: "2024-10-16T02:27:44Z"
        message: ""
      - type: ProxyServiceReady
        status: "True"
        lastProbeTime: "2024-10-16T02:27:44Z"
        message: ""
      - type: Ready
        status: "True"
        message: ""

    Для получения дополнительной информации о состояниях см. Connector Conditions.

    Примеры

    Git-коннектор с базовой аутентификацией

    ##  Создайте информацию для аутентификации
    apiVersion: v1
    kind: Secret
    metadata:
      name: git-auth
      namespace: default
    type: kubernetes.io/basic-auth
    data:
      username: dXNlcm5hbWU=
      password: cGFzc3dvcmQ=
    ---
    ##  Создайте Connector
    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-github
      namespace: default
    spec:
      connectorClassName: git
      address: "https://github.com"
      auth:
        name: basic-auth
        secretRef:
          name: git-auth
          namespace: default
        params:
        - name: repository
          value: "org/repo.git"

    Git-коннектор с SSH-аутентификацией

    ##  Создайте SSH-ключ
    apiVersion: v1
    kind: Secret
    metadata:
      name: git-ssh
      namespace: default
    type: kubernetes.io/ssh-auth
    data:
      ssh-privatekey: LS0tLS1CRUdJTi...  ##  Приватный ключ в Base64
    ---
    ##  Создайте Connector
    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-github-ssh
      namespace: default
    spec:
      connectorClassName: git
      address: "git@github.com"
      auth:
        name: ssh-auth
        secretRef:
          name: git-ssh
          namespace: default
        params:
        - name: repository
          value: "org/repo.git"

    Git-коннектор без аутентификации

    apiVersion: connectors.alauda.io/v1alpha1
    kind: Connector
    metadata:
      name: git-public
      namespace: default
    spec:
      connectorClassName: git
      address: "https://github.com"
      auth:
        name: basic-auth
      params:
        - name: repository
          value: "org/repo.git"