具有本地注册表支持的 Helmfile 安装
本指南将详细介绍如何利用本地(专用)注册表来使用 Helmfile 安装 AppScan 360°。此方法非常适合需要满足安全、合规或离线(物理隔离)安装要求,并将官方 HCL Harbor 注册表中的工件镜像至其所在环境的客户。
主要功能:
-
工件同步:用于将 Docker 映像和 Helm 图表从 HCL Harbor 复制到您的专用注册表的脚本。
-
定制:基于 YAML 的配置以覆盖注册表位置。
系统要求和组件
在开始安装之前,请确保以下组件可用。
1.工件来源 (HCL Harbor)
官方 HCL Harbour 注册表 (hclcr.io) 托管源文件:
-
AppScan 360° Docker 映像。
-
Helm 图表(打包为 .tgz 发行版)。
2.目标环境(客户注册表)
您必须有可用的专用注册表(例如,registry.customer.local/as360)。
-
要求:注册表必须支持 OCI。
-
局限性:当前不支持将工件推送到注册表的根目录。
3.工具
安装捆绑包中提供了以下工具:
-
Helmfile:编排组件(ASCP、ASRA、DTCS、SCA)的部署。
-
copy-artifacts.sh:通过读取 artifactList 文件,将映像和图表从 HCL Harbor 复制到您的本地注册表的脚本。
4.凭证
确保您已获得对这两个注册表的认证访问权限:
-
HCL Harbor:只读凭证。安装过程
-
客户注册表:读/写凭证。
安装过程
步骤 1:获取安装捆绑包
AppScan-360-Helm-Files
├── Copy Artifacts
│ ├── artifactList.txt # List of images/charts
to sync
│ ├── copy-artifacts.sh # The synchronization
script
├── Helm.d
│ ├── helmfile-ASCP.yaml.gotmpl
│ ├── helmfile-ASRA.yaml.gotmpl
│ ├── helmfile-SCA.yaml.gotmpl
│ ├── helmfile-DTSC.yaml.gotmpl
│ └── helmFileCustomization
│ └── singular-singular.clusterKit-Sample.yaml #
Main config file
├── helmfile.yaml.gotmpl
└── README.md步骤 2:将工件同步到本地注册表
如果您使用的是专用注册表(离线/隔离模式),则必须先从 HCL Harbour 复制所需的文件。
./copy-artifacts.sh脚本输入:
-
目标注册表:输入您的注册表 URL 和存储库(例如,registry.customer.local/as360)。
-
工件列表:该脚本会自动读取 imalist 文件(包含 [IMAGES] 和 [HELM] 部分)。
成功:此步骤可确保所有 Docker 映像和 Helm 图表都已镜像到您的环境。
步骤 3:配置注册表覆盖
您必须更新配置文件,让 Helmfile 查看您的本地注册表而不是 HCL Harbour。
-
打开 helmFileCustomization/singular-singular.clusterKit-Sample.yaml。
-
找到 Singular File 部分。
-
使用本地详细信息更新注册表和存储库字段。
helm:
package:
registry: 'registry.customer.local'
context: 'as360/charts'
workload:
affiliatedSidecarsProject: appscan360
container:
image:
registry: 'registry.customer.local'
repository: 'as360/images'
pullPolicy: IfNotPresent工作原理:
-
主逻辑:系统从此定制文件中读取注册表详细信息。
-
回退逻辑:如果缺少这些详细信息或文件未配置,则缺省情况下,系统会直接从 HCL Harbour 进行提取(对于现有的客户迁移配置很有用)。
步骤 4:运行安装
在工件同步完成并且配置更新后,执行部署。
从安装目录的根目录运行以下命令:
helmfile sync
接下来会怎样?
Helmfile 将读取您的定制文件,并使用您指定的本地注册表中的映像和图表部署 ASCP、ASRA、DTSC 及 SCA。
包括软件组成分析 (SCA)
includeSCA=true helmfile syncincludeSCA=true helmfile destroyexport SCA_AUTOUPDATER_REGISTRY_USERNAME=<HCL_HARBOR_USERNAME>
export SCA_AUTOUPDATER_REGISTRY_PASSWORD=<HCL_HARBOR_PASSWORD>