gitlab/gitlab-agent-ci-imagegitlab-kas-agent-ci-image 是专为 GitLab KAS (Kubernetes Agent Server) Agent 开发的 CI (持续集成) 专用镜像。其核心用途是在自动化流程中对 GitLab KAS Agent 的代码变更、功能更新进行验证和测试,确保 Agent 与 KAS Server 的兼容性、功能正确性及稳定性。
完整测试工具链集成
预安装 GitLab KAS Agent 测试所需的全套依赖(如 Go 编译器、测试框架、Kubernetes 客户端工具、API 模拟工具等),无需额外配置即可启动测试流程。
多维度测试支持
支持单元测试(验证 Agent 核心逻辑)、集成测试(验证 Agent 与 KAS Server 交互)、兼容性测试(验证不同 KAS 版本适配性)及 E2E 测试(模拟真实环境下的 Agent 全流程运行)。
GitLab CI/CD 原生兼容
镜像结构和环境变量设计符合 GitLab CI/CD 规范,可直接集成到 GitLab 项目的 .gitlab-ci.yml 配置中,实现提交/合并请求触发的自动化测试。
环境隔离与一致性
标准化测试环境,避免因本地环境差异导致的测试结果不一致问题,确保团队内测试流程统一。
在项目根目录的 .gitlab-ci.yml 中引用该镜像,配置测试阶段:
yamlstages: - test variables: # 基础环境变量(根据实际情况调整) GITLAB_TOKEN: "${CI_JOB_TOKEN}" # 使用 CI 内置令牌(默认具备项目访问权限) KAS_URL: "[***]" # 目标 KAS Server 地址 TEST_TIMEOUT: "30m" # 测试超时时间 unit-test: stage: test image: gitlab-kas-agent-ci-image:latest # 引用 CI 镜像 script: - echo "Running unit tests..." - go test ./internal/... -v -timeout ${TEST_TIMEOUT} # 运行单元测试 integration-test: stage: test image: gitlab-kas-agent-ci-image:latest variables: TEST_MODE: "integration" # 指定测试模式为集成测试 script: - echo "Running integration tests with KAS Server: ${KAS_URL}" - go test ./integration/... -v -kas-url ${KAS_URL} -timeout ${TEST_TIMEOUT} e2e-test: stage: test image: gitlab-kas-agent-ci-image:latest variables: TEST_MODE: "e2e" # 指定测试模式为 E2E 测试 K8S_CLUSTER_CONFIG: "${KUBE_CONFIG}" # (可选)E2E 测试需提供 K8s 集群配置 script: - echo "Running E2E tests..." - go test ./e2e/... -v -kas-url ${KAS_URL} -kubeconfig <(echo ${K8S_CLUSTER_CONFIG}) -timeout ${TEST_TIMEOUT}
若需在本地手动触发测试,通过 docker run 命令启动容器:
bashdocker run -it --rm \ -e GITLAB_TOKEN="your_personal_access_token" \ -e KAS_URL="[***]" \ -e TEST_MODE="unit" \ -e TEST_TIMEOUT="10m" \ -v $(pwd):/app \ # 挂载本地代码目录到容器内 gitlab-kas-agent-ci-image:latest \ /bin/bash -c "cd /app && go test ./internal/... -v -timeout \${TEST_TIMEOUT}"
以下环境变量用于控制测试流程,可在 CI/CD 配置或手动运行时指定:
| 变量名 | 描述 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
GITLAB_TOKEN | GitLab API 访问令牌,用于拉取项目代码、调用 KAS 服务(需 api 权限) | string | ${CI_JOB_TOKEN} | 否 |
KAS_URL | 目标 KAS Server 的访问地址(如 [***]) | string | [***] | 是 |
TEST_MODE | 测试类型:unit(单元)、integration(集成)、e2e(E2E)、all(全量) | string | unit | 否 |
TEST_TIMEOUT | 测试总超时时间(格式:30s/5m/1h) | duration | 15m | 否 |
KAS_VERSION | 目标 KAS Server 版本(用于兼容性测试,如 v16.0.0) | string | (自动检测) | 否 |
DEBUG | 是否启用调试模式(输出详细测试日志) | boolean | false | 否 |
K8S_CLUSTER_CONFIG | E2E 测试所需的 Kubernetes 集群配置(Base64 编码或原始 kubeconfig 内容) | string | (可选) | 仅 E2E 测试 |
GITLAB_TOKEN)。GITLAB_TOKEN 建议通过 GitLab CI/CD 「变量」功能加密存储(勾选「保护变量」和「掩码变量」)。gitlab-kas-agent-ci-image:v16.0.0),避免兼容性问题。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务