2.4. 与 CI 管道集成
完成这些步骤后,下一步是与 CI 管道集成。
每个 CI 系统可能需要配置稍有不同。
2.4.1. 使用 Jenkins
使用 StackRox Container Image Scanner Jenkins 插件与 Jenkins 集成。您可以在 Jenkins 自由风格的项目和管道中使用此插件。
2.4.2. 使用 CircleCI
您可以将 Red Hat Advanced Cluster Security for Kubernetes 与 CircleCI 集成。
Prerequisetes
-
您有对
Image
资源的read
和write
权限的令牌。 - 您有一个 Docker Hub 帐户的用户名和密码。
流程
- 登录 CircleCI,再打开现有项目或创建新项目。
- 单击 Project Settings。
- 点 环境变量。
点 Add 变量 并创建以下三个环境变量:
- 名称 :STACKROX_CENTRAL_HOST - Central 的 DNS 名称或 IP 地址。
- 名称 :ROX_API_TOKEN - 访问 Red Hat Advanced Cluster Security for Kubernetes 的 API 令牌。
- 名称 :DOCKERHUB_PASSWORD - Docker Hub 帐户的密码。
- 名称 :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 队列,以验证构建策略强制。