Docker Registries
Docker registries allow you to configure image sources for PeSIT Wizard servers deployed on Kubernetes.

Add a Registry
Via the Interface
- Go to Registries
- Click Add Registry
- Fill in the connection information
- Click Create

Supported Registries
| Registry | URL | Notes |
|---|---|---|
| Docker Hub | docker.io | Default public registry |
| GitHub Container Registry | ghcr.io | Use a PAT as password |
| Google Container Registry | gcr.io | Authentication via service account |
| Amazon ECR | *.dkr.ecr.*.amazonaws.com | Temporary tokens |
| Azure Container Registry | *.azurecr.io | Service principal |
| Harbor | Custom URL | Open-source private registry |
Authentication
Docker Hub
yaml
name: Docker Hub
url: docker.io
username: myuser
password: dckr_pat_xxxxxGitHub Container Registry (ghcr.io)
- Create a Personal Access Token (PAT) with
read:packagespermissions - Use your GitHub username and the PAT as password
yaml
name: GitHub Registry
url: ghcr.io
username: my-github-user
password: ghp_xxxxxxxxxxxxPrivate Registry
yaml
name: Private Registry
url: registry.mycompany.com
username: admin
password: secretpasswordImage Pull Secrets
When you create a registry with authentication, an imagePullSecret is automatically created in Kubernetes:
yaml
apiVersion: v1
kind: Secret
metadata:
name: registry-secret-{id}
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: <base64-encoded-config>This secret is automatically referenced in PeSIT Wizard deployments.
Usage in a Cluster
When creating a PeSIT Wizard cluster:
- Select the registry in Container Registry
- Specify the image:
ghcr.io/pesitwizard/pesitwizard-enterprise/pesitwizard-server:latest - The authentication secret is automatically associated
Best Practices
- Use dedicated tokens: Create one token per environment
- Minimal permissions:
read:packagesis sufficient for pulling - Regular rotation: Renew tokens every 90 days
- Private registry for production: Avoid public registries in production
- Vulnerability scanning: Enable image scanning on your registry
Troubleshooting
"ImagePullBackOff" Error
- Verify that the registry is accessible from the cluster
- Verify the credentials
- Verify that the image exists
bash
# Manual test
kubectl get secret registry-secret-xxx -o jsonpath='{.data.\.dockerconfigjson}' | base64 -dExpired Token
Update the password in the console and redeploy the cluster.