Install Via YAML
TOC
When to Use This Method?PrerequisitesInstalling Alauda Container Platform Registry via YAMLProcedureConfiguration ReferenceImportant FieldsVerificationUpdating/Uninstalling Alauda Container Platform RegistryUpdateUninstallWhen to Use This Method?
Recommended for:
- Advanced users with Kubernetes expertise who prefer a manual approach.
- Production-grade deployments requiring enterprise storage (NAS, AWS S3, Ceph, etc.).
- Environments needing fine-grained control over TLS, ingress.
- Full YAML customization for advanced configurations.
Prerequisites
- Install the Alauda Container Platform Registry cluster plugin to a target cluster.
- Access to the target Kubernetes cluster with kubectl configured.
- Cluster admin permissions to create cluster-scoped resources.
- Obtain a registered domain (e.g., registry.yourcompany.com) Create a Domain
- Choose one storage backend for Registry data:
- For filesystem-backed storage, provide valid NAS storage or another RWX StorageClass (e.g., NFS, GlusterFS, etc.).
- For object storage, provide valid S3 storage (e.g., AWS S3, Ceph, etc.). If no existing S3 storage is available, deploy a MinIO (Built-in S3) instance in the cluster Deploy MinIO.
Installing Alauda Container Platform Registry via YAML
Procedure
-
Create a YAML configuration file named registry-plugin.yaml with the following template:
-
Customize the following fields according to your environment:
Choose one storage configuration:
- For filesystem-backed storage, keep
persistenceand sets3storage.enabledtofalse. - For S3 storage, remove the entire
persistenceblock and sets3storage.enabledtotrue.
Filesystem-backed storage example:
S3 storage example:
- For filesystem-backed storage, keep
-
Plan the Ingress controller and configure session affinity.
Choose an Ingress controller that matches your network environment, operational requirements, and existing traffic management model. When the Registry uses multiple replicas with shared file storage such as NFS or another RWX StorageClass, configure session affinity by using the native mechanism of the selected Ingress controller.
A single image push sends multiple
POST,PATCH,PUT,HEAD, and manifest requests; those requests should reach the same Registry Pod. The Kubernetes ServicesessionAffinity: ClientIPsetting does not guarantee stickiness when the Ingress controller load-balances directly to Pod endpoints.For ingress-nginx, use upstream hashing by client address:
If your environment exposes the Registry through ACP ALB, use source IP hash affinity:
For other Ingress controllers or cloud load balancers, use the controller's equivalent source IP or hash-based session affinity policy. If the controller only supports cookie-based stickiness, verify push behavior with the OCI client used in production before running the Registry with multiple replicas; otherwise, use one Registry replica for that access path.
-
How to create a secret for S3 credentials:
Replace
<S3-CREDENTIALS-SECRET>with the name of your S3 credentials secret. -
Apply the configuration to your cluster:
Configuration Reference
Important Fields
When spec.config.s3storage.enabled is set to true, do not configure spec.config.persistence. The persistence block is used only for filesystem-backed storage.
Verification
- Check plugin:
- Verify registry pods:
Updating/Uninstalling Alauda Container Platform Registry
Update
Execute the following command on the global cluster and update the values in the resource according to the parameter descriptions provided above to complete the update:
Uninstall
Execute the following command on the global cluster: