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.
Настройка информации для аутентификации
Информация для аутентификации настраивается следующим образом:
- Укажите имя используемого типа аутентификации согласно определению ConnectorClass.
- Создайте Secret, содержащий учетные данные.
- Сошлитесь на Secret в Connector через
spec.auth.secretRef.
- Укажите параметры, необходимые при проверке аутентификации.
Например, для настройки базовой аутентификации:
## Создайте 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"