Release Download
Overview
Whilst the recommended method to use Cloud Control's helm charts and container images is via a (caching) registry proxy or directly from our registry, we also offer a utility to download the relevant artifacts and optionally transfer them into a different registry. This can be particularly useful in airgapped environments where a cluster's nodes are unable to download from our registry and/or via a proxy.
The downloader utility is distributed in the form of a container image named cc-downloader. The full details of the image is as follows:
- image location:
registry.open-xchange.com/cloudcontrol/cc-downloader - image tag:
x.y.z(same as the Cloud Control release you wish to download artifacts for)
Note: This utility is only available from release 3.1.0 onwards.
Usage
By default, the cc-downloader will do the following:
- Authenticate against the OX registry
- Pull all Helm Charts
- Pull all container images
- Store gzipped tarball containing all of the above in
/outputdirectory
Alternatively, you can configure a target registry to have all the artifacts transferred there instead of downloading them. See the TARGET_REGISTRY_* named configuration options.
Preparing Input
Before you can run the cc-downloader, it needs to be configured with the required environment variables. Below example shows a .env file with the required variables:
# Release config
CC_TAG=x.y.z
# Registry config
REGISTRY_USER=my_username
REGISTRY_PASSWORD=my_password
Note: Make sure to replace x.y.z, my_username & my_password with the corresponding values.
Preparing Output
The cc-downloader will by default write the output to the following location inside the container: /output
If we use an ephemeral container (such as via docker run --rm -it) we need to make sure the contents of the container's /output directory persist once the container terminates. An easy way of doing this is to create a directory locally and mounting it to the container. The example in the below section uses this mechanism.
Note: When automatically transferring the artifacts to a target registry this is not necessary.
Example downloading using Docker CLI
If above described preparation is completed, we can now run the cc-downloader. Below example makes 3 assumptions:
- The Docker CLI is available
- The input environment variables are stored in the current working directory in file
downloader.env - We have a local directory available and writable at the path
/tmp/ccrelease(must be absolute path in this example's syntax)
Example command to run the cc-downloader using Docker:
docker run --rm -it --env-file ./downloader.env -v /tmp/ccrelease:/output registry.open-xchange.com/cloudcontrol/cc-downloader:x.y.z
Note: Make sure to replace x.y.z with the corresponding Cloud Control 3.1.0 (or later) release.
Result of the above command should be an archive in the /tmp/ccrelease directory containing all helm charts and container images used by this Cloud Control release. Further configuration options are described below.
Example transferring to another registry using Docker CLI
If transferring the artifacts directly into another registry, the example can have the volume mount omitted, for example:
docker run --rm -it --env-file ./downloader.env registry.open-xchange.com/cloudcontrol/cc-downloader:x.y.z
Configuration
You can use the following environment variables to configure cc-downloader:
| Parameter | Required | Default | Description |
|---|---|---|---|
CC_PROJECT |
cloudcontrol |
Name of the project inside the registry to download releases from | |
CC_TAG |
yes |
Cloud Control release (format: x.y.z) |
|
REGISTRY_HOST |
registry.open-xchange.com |
Hostname of the registry to download releases from | |
REGISTRY_USER |
yes |
Username to authenticate against the registry | |
REGISTRY_PASSWORD |
yes |
Password for the user specified under REGISTRY_USER |
|
SKIP_USERPLANE |
no |
If set to yes, skip downloading artifacts needed for Userplane deployments |
|
SKIP_CONTROLPLANE |
no |
If set to yes, skip downloading artifacts needed for Controlplane deployments |
|
SKIP_MONITORING |
no |
If set to yes, skip downloading artifacts needed for Monitoring deployments |
|
SKIP_SECURITY |
no |
If set to yes, skip downloading artifacts needed to enable the Security features (ie: If you do not have access to the Security features) |
|
SKIP_IMAGES |
no |
If set to yes, skip downloading any container images (ie: only download helm charts) |
|
TARGET_REGISTRY_HOST |
Hostname of the registry to transfer artifacts to Enables transferring artifacts to a target registry when specified |
||
TARGET_REGISTRY_PASSWORD |
Project on the target registry to transfer artifacts into Required if TARGET_REGISTRY_HOST is specified |
||
TARGET_REGISTRY_PROJECT |
Username to authenticate against the target registry Required if TARGET_REGISTRY_HOST is specified |
||
TARGET_REGISTRY_USER |
Password for the user specified under TARGET_REGISTRY_PROJECTRequired if TARGET_REGISTRY_HOST is specified |
||
OUTPUT_DIR |
/output |
Name of the directory inside the container where output will be stored | |
OUTPUT_TYPE |
archive |
Control how the downloaded helm charts and container images are stored in the output location. Available options: archive artifactsIgnored if TARGET_REGISTRY_HOST is specified |