2.4. 与 CI 管道集成
完成这些步骤后,下一步是与 CI 管道集成。
每个 CI 系统可能需要稍有不同的配置。
2.4.1. 使用 Jenkins
使用 StackRox Container Image Scanner Jenkins 插件与 Jenkins 集成。您可以在 Jenkins 自由风格项目和管道中使用此插件。
2.4.2. 使用 CircleCI
您可以使用 CircleCI 将 Red Hat Advanced Cluster Security for Kubernetes 集成。
先决条件
-
您有对
Image
资源的read
和write
权限的令牌。 - 您有 Docker Hub 帐户的用户名和密码。
流程
- 登录 CircleCI 并打开现有项目或创建新项目。
- 单击 Project Settings。
- 点 环境变量。
点 Add 变量,并创建以下三个环境变量:
- 名称:STACKROX_CENTRAL_HOST - Central 的 DNS 名称或 IP 地址。
- Name:ROX_API_TOKEN - 用于访问 Red Hat Advanced Cluster Security for Kubernetes 的 API 令牌。
- Name:DOCKERHUB_PASSWORD - Docker Hub 帐户的密码。
- Name:DOCKERHUB_USER - Docker Hub 帐户的用户名。
-
如果您还没有 CircleCI 配置文件,请在所选项目本地代码存储库的根目录中创建名为
.circleci
的目录。 使用
.circleci
目录中的以下行创建一个config.yml
配置文件:version: 2 jobs: check-policy-compliance: docker: - image: 'circleci/node:latest' auth: username: $DOCKERHUB_USER password: $DOCKERHUB_PASSWORD steps: - checkout - run: name: Install roxctl command: | curl -H "Authorization: Bearer $ROX_API_TOKEN" https://$STACKROX_CENTRAL_HOST:443/api/cli/download/roxctl-linux -o roxctl && chmod +x ./roxctl - run: name: Scan images for policy deviations and vulnerabilities command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_registry/repo/image_name>" 1 - run: name: Scan deployment files for policy deviations command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_deployment_file>" 2 # Important note: This step assumes the YAML file you'd like to test is located in the project. workflows: version: 2 build_and_test: jobs: - check-policy-compliance
注意如果您在存储库中已有 CircleCI 的
config.yml
文件,请在现有配置文件中添加带有指定详情的新 jobs 部分。- 将配置文件提交到存储库后,转到 CircleCI 仪表板中的 Jobs 队列,以验证构建策略强制。