Alauda Container Platform Registry
The Image Registry Operator installs and manages the cluster-wide Alauda Container Platform Registry
instance. It reconciles Registry runtime resources from Config/cluster and scheduled pruning
resources from ImagePruner/cluster.
TOC
Main ComponentsInstall Alauda Container Platform RegistryInstall from OperatorHubInstall by Using YAMLPrerequisitesUpgrade Alauda Container Platform RegistryChange the Registry Management StateImage Pruner ReconciliationCheck Operator and Registry StatusCheck Registry Logs and Metrics AccessCommon Operator IssuesMain Components
Install Alauda Container Platform Registry
Install the Image Registry Operator to deploy Alauda Container Platform Registry from the web console when the Operator package is available in OperatorHub. Use the YAML path only for controlled automation or support-guided installation when the web console is not available.
Both install paths require the cluster-image-registry-operator package to be present in the
target CatalogSource. See Install by Using YAML for how to verify the
package and upload it if it is missing.
Install from OperatorHub
- Log in to and navigate to the Administrator page.
- In the left navigation bar, click Marketplace > OperatorHub.
- Search for Alauda Container Platform Registry or
cluster-image-registry-operator. - Click Install.
- On the installation page, use the following settings unless your release guidance states otherwise:
- Click Install.
- If an approval prompt appears, review and approve the generated install plan.
- Wait until the Operator status is Installed.
Verify the installation:
Expected results:
- The installed CSV is
Succeeded. - The
cluster-image-registry-operatorDeployment is available.
Install by Using YAML
Prerequisites
The cluster-image-registry-operator package must already be present in the target CatalogSource.
A fresh platform installation does not include it, and the check-subscription.cpaas.io admission
webhook rejects the Subscription when the package is missing:
Verify the package before continuing:
If it is missing, upload the Operator package first, following the platform's Operator package upload procedure. For example:
The push must use a registry account with push permission on the target repositories. An account
with pull-only access fails with requested access to the resource is denied. The push does not
configure image pull credentials for the Operator's own workloads; see the pull-secret note in the
install steps below.
Create the installation namespace if it does not exist:
Create a file named image-registry-operator-subscription.yaml:
Apply the Subscription:
Approve the generated InstallPlan:
Wait for the Operator:
The Operator then creates the image-registry, image-api-server, and node-ca workloads. These
pull their images from the platform registry, so the ServiceAccounts the Operator uses must carry a
working registry pull Secret. If a workload stays in ImagePullBackOff with
insufficient_scope: authorization failed, confirm that the platform registry pull Secret is
attached to those ServiceAccounts:
Attach the Secret if it is missing, then restart the workloads:
Upgrade Alauda Container Platform Registry
Upgrade Alauda Container Platform Registry by upgrading the Image Registry Operator through
OperatorHub. The Operator upgrade updates the cluster-image-registry-operator Deployment and then
reconciles the existing Config/cluster, ImagePruner/cluster, Registry, Image API, and supporting
resources.
Before upgrading, confirm that the current Registry is healthy.
Important: For Alauda Container Platform Registry versions earlier than
v4.4, including ACP 4.3 and earlier, contact technical support for upgrade and migration plans.
Set the Subscription approval strategy to Manual before making a new Operator package available:
Make the target Operator package available in Administrator > Marketplace > OperatorHub. If the package is not present, follow the platform's Operator package upload procedure before continuing.
In OperatorHub, open Alauda Container Platform Registry, select the target channel and version,
and review the pending upgrade. Approve the generated InstallPlan only after verifying that the
Subscription uses Manual approval:
Wait for the new CSV and Operator Deployment, then verify that the Registry data plane reconciles:
Expected results:
- The new CSV is
Succeededand the Subscription reports the new installed CSV. cluster-image-registry-operator,image-registry, andimage-api-serverare available.- Existing storage, routes, Image API metadata, and ImagePruner configuration remain reconciled.
Config/clusterreportsAvailable=True,Progressing=False, andDegraded=False.
Note: A CSV upgrade reapplies the Operator's ServiceAccount. If a registry pull Secret was attached to that ServiceAccount during installation, the upgrade can clear it, and the new
cluster-image-registry-operatorPod then stays inImagePullBackOffwithinsufficient_scope: authorization failed. Re-attach the Secret and restart the Deployment:
Do not delete the Subscription, Config/cluster, storage objects, or Image API metadata as part of
an Operator upgrade. If the upgrade does not complete, inspect the Subscription, InstallPlan, CSV
events, Operator logs, and Config/cluster.status.conditions before taking further action.
Change the Registry Management State
Configure one supported storage backend before enabling the Registry. If
Config/cluster.spec.storage is empty, setting managementState to Managed leaves the Operator in
StorageNotConfigured, and the Registry data plane cannot be reconciled.
Enable the Registry by setting Config/cluster.spec.managementState to Managed:
Verify that the Registry data plane is available:
Expected result:
Config/clusterreportsAvailable=True,Progressing=False, andDegraded=False.
Warning: Setting the management state to
Removedstops the Registry runtime components. Push and pull traffic and the Image API server are unavailable while the Registry is removed. The Operator can also leave theimage-prunerCronJob present, but disables registry garbage collection for the removed Registry. Do not rely on scheduled cleanup while the Registry is removed. Use this state only during a maintenance window or for support-guided recovery.
Before switching to Removed, back up required image data and inspect the storage management mode:
Only assume image data is retained when spec.storage.managementState is Unmanaged, or when the
storage administrator has confirmed that the backend storage reclaim policy preserves the data after
the Registry instance is removed. Back up required image data before changing the management state.
To stop the Registry, set the management state to Removed:
Verify that the data-plane deployments are removed:
Expected result:
- The
image-registryandimage-api-serverDeployments are not present while the Registry is removed.
Image Pruner Reconciliation
The Operator reconciles the singleton ImagePruner/cluster into an image-pruner CronJob in image-registry-system. Configure the retention policy in the ImagePruner resource. See Setting up and configuring the registry.
The CronJob uses the Registry internal service URL by default.
Check Operator and Registry Status
This section assumes the Registry has been enabled by setting Config/cluster.spec.managementState
to Managed, as described in
Change the Registry Management State.
spec.managementState has no default value. While it is unset the Operator reports
Available=True with reason Removed, and the image-registry and image-api-server Deployments
do not exist.
Expected results:
- The Operator CSV is
Succeeded. cluster-image-registry-operator,image-registry, andimage-api-serverare available.node-cais ready on target nodes.APIService/v1.image.alauda.ioisAvailable=True.Config/clusterreportsAvailable=True,Progressing=False, andDegraded=False.
Check Registry Logs and Metrics Access
Check Registry Pods:
View Registry logs:
Check metrics access from a monitoring service account.
registry/metrics is an RBAC-only resource. It is not exposed by the image.alauda.io/v1 API
discovery document, and kubectl auth can-i resolves resource names through discovery. As a result
kubectl auth can-i get registry/metrics.image.alauda.io always reports no, even when the
permission is granted. Use a SubjectAccessReview instead:
Expected result:
- Each review reports
true.
The Operator binds system:image-registry-metrics-reader to prometheus-sa and vm-sa through the
registry-monitoring ClusterRoleBinding. Those ServiceAccounts are created by the monitoring
plugin, so the reviews report false until monitoring is installed.