About Changing External Registries for StarlingX Installation¶
You can reassign the external registries used for StarlingX installs, upgrades, and application updates.
When installing and upgrading StarlingX or applying and updating StarlingX
applications, container images are pulled from external registries, for various
services. By default, these container images are pulled from the following
public registries: k8s.gcr.io
, gcr.io
, quay.io
, docker.io
,
icr.io
, ghcr.io
, and registry.k8s.io
. During installation,
specifically during the bootstrap step, these external registries can be
overridden using the ‘docker_registries’ variable in the bootstrap override
file. This task provides a procedure for changing these external registries
after installing StarlingX.
About this task
For convenience, many of the procedures are implemented in bash loops. If during the loops errors occur the procedure will fail. StarlingX recommends to capture the existing settings before running the commands.
Prerequisites
Make sure the following conditions are true:
no alarm is present
both controllers are online and unlocked
all applications required are properly applied
in the case of a subcloud in a distributed cloud deployment, the subcloud is in sync with the system controller
the auth-secret, Url, and type exist for:
system service-parameter-list | grep registry
This is an example of the output:
| 16485f1e-757c-46a9-a366-0820b0f2ab77 | docker | docker-registry | auth-secret | d76d3a01-7d28-4e17-a614-f10b7eb49438 | None | None |
| 4436a7ab-11bc-4adb-aa9a-d15fe7a5a337 | docker | docker-registry | type | docker | None | None |
| e9ac3877-bc1c-4bd0-8d4e-6ead5a09b07c | docker | docker-registry | url | old-registry.domain.com:5001/product-abc/starlingx/docker.io | None | None |
| 3f44da5a-020d-42af-a15c-bf54da1e4c94 | docker | elastic-registry | auth-secret | de5195da-a791-4d05-9bb2-0a106d65dd33 | None | None |
| afbc4d14-5359-4b54-9431-01fe83440cf6 | docker | elastic-registry | type | docker | None | None |
| 05644812-daee-43a0-89e3-45006a6807fd | docker | elastic-registry | url | old-registry.domain.com:5001/product-abc/starlingx/docker.elastic.co| None | None |
| 76c15302-62ec-44d8-8352-ae8e681dfb02 | docker | gcr-registry | auth-secret | 772f88cb-3355-4663-8a95-026409b629cb | None | None |
| 5d4004ed-c212-4cb0-b309-82225cc011a9 | docker | gcr-registry | type | docker | None | None |
| 18d8a51b-99b1-4caf-8e98-740dc3bdfd74 | docker | gcr-registry | url | old-registry.domain.com:5001/product-abc/starlingx/gcr.io | None | None |
| 64e8a11f-3be9-4086-992a-948a92f8441b | docker | k8s-registry | auth-secret | 4ba49153-fb12-4db6-9509-779ac4f1f2fa | None | None |
| eca50140-b082-4229-8ca3-562abd6e3693 | docker | k8s-registry | type | docker | None | None |
| 497a935c-c8fc-422e-88d3-e9cbd6d12a95 | docker | k8s-registry | url | old-registry.domain.com:5001/product-abc/starlingx/k8s.gcr.io | None | None |
| a84328a0-3219-4b54-b4fa-5903f25f70ea | docker | quay-registry | auth-secret | c293a43d-0e4b-4dec-a5f4-baffb65e07f0 | None | None |
| 96b6eb45-b101-4bcb-8168-3f9f79baaa7d | docker | quay-registry | type | docker | None | None |
| 0fe2e1b9-8005-4ff8-98c2-ba0ad66103b9 | docker | quay-registry | url | old-registry.domain.com:5001/product-abc/starlingx/quay.io | None | None |
| d88d2562-2a58-43fb-ab42-d5e63c6bf500 | docker | registryk8s-registry | type | docker | None | None |
| fa8c3e00-b1b0-469b-8d73-5362f8d99725 | docker | registryk8s-registry | url | old-registry.domain.com:5001/product-abc/starlingx/registry.k8s.io | None | None |
| f3449be4-b8d5-43fd-8493-ede6429f411f | docker | registryk8s-registry | auth-secret | a48cfbac-849e-42cb-b012-b0b4f23bf2b9 | None | None |
The new registry uses username and password authentication. Its path is
the same as the existing registry path. For example if docker.io
path is
old-registry.domain.com:5001/product-abc/starlingx/docker.io
on the existing registry, then the new registry must be
new-registry.domain.com:9001/product-abc/starlingx/docker.io.
To change a registry, see Change the Registries’ URLs.