Skip to content

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

  1. Go to your GitHub account settings
  2. Navigate to Developer settings > Personal access tokens
  3. Generate a new token (classic) with scopes:
    • write:packages - Upload images
    • read:packages - Pull images
    • delete:packages - Delete images (optional)

2. Configure in Edka

  1. In Edka dashboard, go to Settings > Integrations > Registry
  2. Select GitHub Container Registry
  3. Enter:
    • Registry URL: ghcr.io
    • Username: Your GitHub username
    • Token: Personal access token
  4. Click Save

3. Create Kubernetes Secret

Terminal window
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

  1. Sign up at hub.docker.com
  2. Create an access token:
    • Go to Account Settings > Security
    • Click New Access Token
    • Set permissions and generate

2. Configure in Edka

  1. Navigate to Settings > Integrations > Registry
  2. Select Docker Hub
  3. Enter:
    • Username: Docker Hub username
    • Password: Access token
  4. 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

Terminal window
# Create repository
aws ecr create-repository --repository-name my-app --region us-east-1
# Get login token
aws 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

  1. Go to Settings > Integrations > Registry
  2. Select AWS ECR
  3. 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
  4. 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

Terminal window
# Enable API
gcloud services enable artifactregistry.googleapis.com
# Create repository
gcloud artifacts repositories create my-repo \
--repository-format=docker \
--location=us-central1 \
--description="My container images"

2. Configure Authentication

Terminal window
# Configure Docker
gcloud auth configure-docker us-central1-docker.pkg.dev
# Create service account
gcloud iam service-accounts create edka-registry
# Grant permissions
gcloud 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 key
gcloud iam service-accounts keys create key.json \
--iam-account=edka-registry@PROJECT_ID.iam.gserviceaccount.com

3. Configure in Edka

  1. Navigate to Settings > Integrations > Registry
  2. Select Google Artifact Registry
  3. Enter:
    • Registry URL: us-central1-docker.pkg.dev
    • Project ID: Your GCP project
    • Service Account Key: Contents of key.json
  4. Click Save