Helmfile Installation with Local Registry Support
This guide details how to install AppScan 360° using Helmfile while leveraging a Local (Private) Registry. This approach is ideal for customers who need to mirror artifacts from the official HCL Harbor registry to their own environment for security, compliance, or offline (air-gapped) installations.
Key Features:
-
Artifact Sync: A script to copy Docker images and Helm charts from HCL Harbor to your private registry.
-
Customization: YAML-based configuration to override registry locations.
System Requirements & Components
Before beginning the installation, ensure the following components are available.
1. Artifact Source (HCL Harbor)
The official HCL Harbor registry (hclcr.io) hosts the source files:
-
AppScan 360° Docker images.
-
Helm charts (packaged as .tgz releases).
2. Target Environment (Customer Registry)
You must have a private registry available (e.g., registry.customer.local/as360).
-
Requirement: The registry must be OCI-enabled.
-
Limitation: Pushing artifacts to the root of the registry is currently not supported.
3. Tooling
The following tools are provided in the installation bundle:
-
Helmfile: Orchestrates the deployment of components (ASCP, ASRA, DTCS, SCA).
-
copy-artifacts.sh: A script that reads from an artifactList file to copy images and charts from HCL Harbor to your local registry.
4. Credentials
Ensure you have authenticated access to both registries:
-
HCL Harbor: Read-only credentials.Installation Procedure
-
Customer Registry: Read/Write credentials.
Installation Procedure
Step 1: Acquire the Installation Bundle
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-DTCS.yaml.gotmpl
│ └── helmFileCustomization
│ └── singular-singular.clusterKit-Sample.yaml #
Main config file
├── helmfile.yaml.gotmpl
└── README.mdStep 2: Sync Artifacts to Local Registry
If you are using a private registry (offline/isolated mode), you must first copy the required files from HCL Harbor.
./copy-artifacts.shScript Inputs:
-
Destination Registry: Enter your registry URL and repository (e.g., registry.customer.local/as360).
-
Artifact List: The script automatically reads the imalist file (containing [IMAGES] and [HELM] sections).
Success: This step ensures all Docker images and Helm charts are mirrored to your environment.
Step 3: Configure Registry Overrides
You must update the configuration file to tell Helmfile to look at your local registry instead of HCL Harbor.
-
Open helmFileCustomization/singular-singular.clusterKit-Sample.yaml.
-
Locate the Singular File section.
-
Update the registry and repository fields with your local details.
helm:
package:
registry: 'registry.customer.local'
context: 'as360/charts'
workload:
affiliatedSidecarsProject: appscan360
container:
image:
registry: 'registry.customer.local'
repository: 'as360/images'
pullPolicy: IfNotPresentHow this works:
-
Primary Logic: The system reads registry details from this customization file.
-
Fallback Logic: If these details are missing or the file is not configured, the system defaults to pulling directly from HCL Harbor (useful for existing customers migrating configurations).
Step 4: Run the Installation
Once the artifacts are synced and the configuration is updated, execute the deployment.
Run the following command from the root of the installation directory:
helmfile sync
What happens next?
Helmfile will read your customization file and deploy ASCP, ASRA, DTSC, and SCA using the images and charts from your specified local registry.
Include Software Composition Analysis (SCA)
includeSCA=true helmfile syncincludeSCA=true helmfile destroyexport SCA_AUTOUPDATER_REGISTRY_USERNAME=<HCL_HARBOR_USERNAME>
export SCA_AUTOUPDATER_REGISTRY_PASSWORD=<HCL_HARBOR_PASSWORD>Dast Template Converter Service (DTCS)
By default DTCS is installed along with AppScan360 other components.
In case customer doesn’t want to have Dast technology installed, they can skip this component by following command.
excludeDTCS=true helmfile syncexcludeDTCS=true helmfile destroy