Connector
目录
概述
Connector
是一个命名空间级别的资源,用于定义工具与平台之间的连接配置。它包括:
例如,下面的定义展示了一个 Git 类型的连接器:
apiVersion: connectors.alauda.io/v1alpha1
kind: Connector
metadata:
name: git-github
namespace: default
spec:
connectorClassName: git ## 指定连接器类型为 git,该 ConnectorClass 必须存在
address: "https://github.com" ## 工具的访问地址
auth:
name: basicAuth
secretRef: ## 认证信息引用
name: github-secret
连接器地址
address
字段指定了 Connector 将要集成的目标工具的 URL 端点。它既支持根 URL,也支持带路径前缀的 URL。
基本 URL 格式
对于可通过根域名访问的工具:
apiVersion: connectors.alauda.io/v1alpha1
kind: Connector
metadata:
name: git-github
spec:
connectorClassName: git
address: "https://github.com"
# ...
带路径前缀的 URL
对于部署在反向代理后或通过特定路径访问的工具:
apiVersion: connectors.alauda.io/v1alpha1
kind: Connector
metadata:
name: git-gitlab
spec:
connectorClassName: git
address: "https://internal-tool.com/gitlab/"
# ...
注意:当指定了路径前缀时,该路径将作为所有操作的默认基础路径,包括此 Connector 执行的认证和存活检查。
认证信息
认证信息定义了访问工具所需的凭证。根据工具类型,可以配置不同的认证方式。该认证方式在 ConnectorClass
中定义。详情请参见ConnectorClass 中的认证信息说明。
配置认证信息
认证信息的配置方式如下:
- 根据 ConnectorClass 定义指定使用的认证类型名称。
- 创建包含凭证的 Secret。
- 在 Connector 中通过
spec.auth.secretRef
引用该 Secret。
- 指定认证检查时所需的参数信息。
例如,配置基本认证:
## 创建包含用户名和密码的 Secret
apiVersion: v1
kind: Secret
metadata:
name: github-secret
namespace: default
type: kubernetes.io/basic-auth
data:
username: dXNlcm5hbWU= ## Base64 编码的用户名
password: cGFzc3dvcmQ= ## Base64 编码的密码
---
## 在 Connector 中引用该 Secret
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"
注意,一旦 ConnectorClass 指定了认证检测参数,Connector 中必须提供这些参数,即使创建 Connector 时未指定 secret 信息,也必须传递 spec.auth.params
。
代理地址
如果 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
当 ConnectorClass 配置的代理解析器类型为 path
时,代理地址格式为 http://c-{connector-name}.{namespace}.svc.cluster.local/namespaces/{namespace}/connectors/{connector-name}
,其中 {path}
是 Connector 的路径。
例如,下面示例描述了一个带代理地址的连接器:
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/namespaces/default/connectors/harbor
状态信息
Connector 的状态信息记录在 status
字段,包含以下内容:
ConnectorClassReady
:指示连接器类型是否正确。
SecretReady
:指示认证信息是否正确配置。
LivenessReady
:指示工具是否可访问。
AuthReady
:指示认证信息是否有效。
ProxyServiceReady
:指示当前 Connector 的代理地址是否成功分配。
Ready
:指示整体状态。
SecretReady 条件
指示 Connector 的 Secret 状态信息。
状态 | 原因 | 描述 |
---|
True | SecretOptional | ConnectorClass 标记认证信息为可选,且当前 Connector 未配置认证信息 |
True | | Secret 已配置且存在 |
False | | Secret 已配置,但检查 Secret 是否存在时发生错误 |
Unknown | | 正在检查配置的 Secret 是否正常 |
AuthReady 条件
指示 Connector 的认证状态信息。
状态 | 原因 | 描述 |
---|
True | NonAuthProbe | ConnectorClass 未指定认证探测信息 |
True | | 凭证检查有效 |
False | | 凭证检查失败 |
Unknown | | 凭证检查进行中 |
LivenessReady 条件
指示 Connector 的存活状态信息。
状态 | 原因 | 描述 |
---|
True | NonLivenessProbe | ConnectorClass 未指定存活探测信息 |
True | | 工具访问正常 |
False | | 工具访问异常 |
Unknown | | 工具访问检查进行中 |
ProxyServiceReady 条件
指示 Connector 的代理服务状态信息。
状态 | 原因 | 描述 |
---|
True | NonProxy | ConnectorClass 未指定代理服务信息,当前 Connector 不具备代理能力 |
True | | Connector 代理服务创建成功 |
False | | 代理服务处于异常状态 |
Unknown | | 代理服务检查进行中 |
例如:
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 连接器
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"