Container Registry
Edka supports multiple container registries to store and manage your Docker images. This guide covers setup and configuration for supported registries.
Supported Registries
- GitHub Container Registry (ghcr.io)
- Docker Hub
- AWS Elastic Container Registry (ECR)
- Google Artifact Registry
- Azure Container Registry (coming soon)
- Harbor (coming soon)
- JFrog Artifactory (coming soon)
GitHub Container Registry
Overview
GitHub Container Registry (ghcr.io) provides seamless integration with GitHub repositories and Actions.
Benefits:
- Free for public images
- 500MB storage for private repos (free tier)
- Integrated with GitHub Actions
- Fine-grained permissions
Setup
1. Enable GitHub Packages
- Go to your GitHub account settings
- Navigate to Developer settings > Personal access tokens
- Generate a new token (classic) with scopes:
write:packages
- Upload imagesread:packages
- Pull imagesdelete:packages
- Delete images (optional)
2. Configure in Edka
- In Edka dashboard, go to Settings > Integrations > Registry
- Select GitHub Container Registry
- Enter:
- Registry URL:
ghcr.io
- Username: Your GitHub username
- Token: Personal access token
- Registry URL:
- Click Save
3. Create Kubernetes Secret
kubectl create secret docker-registry ghcr-secret \ --docker-server=ghcr.io \ --docker-username=YOUR_GITHUB_USERNAME \ --docker-password=YOUR_GITHUB_TOKEN \ --docker-email=YOUR_EMAIL \ -n default
Docker Hub
Overview
Docker Hub is the default registry for Docker images with both public and private repositories.
Benefits:
- Unlimited public repositories
- 1 private repository (free tier)
- Official images
- Automated builds
Setup
1. Create Docker Hub Account
- Sign up at hub.docker.com
- Create an access token:
- Go to Account Settings > Security
- Click New Access Token
- Set permissions and generate
2. Configure in Edka
- Navigate to Settings > Integrations > Registry
- Select Docker Hub
- Enter:
- Username: Docker Hub username
- Password: Access token
- Click Save
Rate Limits
Anonymous users: 100 pulls per 6 hours Authenticated users: 200 pulls per 6 hours Paid users: Unlimited
AWS Elastic Container Registry
Overview
AWS ECR provides secure, scalable container image storage integrated with AWS services.
Benefits:
- Integrated with AWS IAM
- Vulnerability scanning
- Image replication
- Lifecycle policies
Setup
1. Create ECR Repository
# Create repositoryaws ecr create-repository --repository-name my-app --region us-east-1
# Get login tokenaws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789.dkr.ecr.us-east-1.amazonaws.com
2. Configure IAM
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ]}
3. Configure in Edka
- Go to Settings > Integrations > Registry
- Select AWS ECR
- Enter:
- Registry URL:
123456789.dkr.ecr.us-east-1.amazonaws.com
- Access Key ID: AWS access key
- Secret Access Key: AWS secret key
- Region:
us-east-1
- Registry URL:
- Click Save
Google Artifact Registry
Overview
Google Artifact Registry is Google Cloud’s next-generation container registry.
Benefits:
- Regional and multi-regional storage
- Vulnerability scanning
- Binary authorization
Setup
1. Enable API and Create Repository
# Enable APIgcloud services enable artifactregistry.googleapis.com
# Create repositorygcloud artifacts repositories create my-repo \ --repository-format=docker \ --location=us-central1 \ --description="My container images"
2. Configure Authentication
# Configure Dockergcloud auth configure-docker us-central1-docker.pkg.dev
# Create service accountgcloud iam service-accounts create edka-registry
# Grant permissionsgcloud artifacts repositories add-iam-policy-binding my-repo \ --location=us-central1 \ --member="serviceAccount:edka-registry@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/artifactregistry.reader"
# Create keygcloud iam service-accounts keys create key.json \ --iam-account=edka-registry@PROJECT_ID.iam.gserviceaccount.com
3. Configure in Edka
- Navigate to Settings > Integrations > Registry
- Select Google Artifact Registry
- Enter:
- Registry URL:
us-central1-docker.pkg.dev
- Project ID: Your GCP project
- Service Account Key: Contents of key.json
- Registry URL:
- Click Save