⚠️ DO NOT DEPLOY until a 12xxx-topology image is published. These manifests use the12xxxmanagement ports and dedicated probe/metrics listeners. As of 2026-06-08 no published image carries that topology; the pinned tags (0.1.1/0.1.3/v0.1.1) do not contain it. When the image is published, pinkubernetes/*/deployment.yaml,docker-compose/docker-compose.yml, andkubernetes/versions.envto that one tag (resolving the current tag drift) before rollout.
Deployment configuration repository for Edgion Gateway across multiple environments.
edgion-deploy is the standalone deployment configuration repository for Edgion, providing multiple deployment methods:
- Kubernetes: Native YAML manifests
- Docker Compose: For local development
edgion-deploy/
├── kubernetes/ # Kubernetes deployment
│ ├── namespace.yaml
│ ├── controller/ # Controller Deployment, Service, RBAC
│ ├── gateway/ # Gateway Deployment, Service
│ ├── base-config/ # GatewayClass, EdgionGatewayConfig, Gateways
│ ├── profiles/ # Resource spec patches
│ ├── test/ # Test server + client
│ └── scripts/ # deploy.sh, cleanup.sh, install_crds.sh
│
└── docker-compose/ # Docker Compose
├── docker-compose.yml
└── config/
Depending on your deployment method:
- Kubernetes:
kubectl1.25+ - Docker Compose:
docker-compose1.27+
cd kubernetes
# Install CRDs (downloaded remotely, no local source needed)
./scripts/install_crds.sh
# Deploy controller + gateway + base config
./scripts/deploy.sh
# Verify
kubectl get pods -n edgion-systemSee kubernetes/README.md for detailed documentation.
cd docker-compose
# Configure environment
cp .env.example .env
# Start services
docker-compose up -d
# View logs
docker-compose logs -fSee docker-compose/README.md for detailed documentation.
All deployment configurations use images from Docker Hub:
pandaala/edgion-gateway:v0.1.1pandaala/edgion-controller:v0.1.1
To build images, refer to the Edgion project README.
- RBAC: ClusterRole for managing Gateway API resources
- Service Account: edgion-controller
- Ports:
- 12151: gRPC (communication with Gateway)
- 12101: HTTP Admin API
- 12100: probe (health/ready)
- 12190: metrics
- Replicas: Default 1 (scale as needed for production)
- Resource Limits:
- Requests: 256Mi memory, 250m CPU
- Limits: 1Gi memory, 1000m CPU
- Ports:
- 80/8080: HTTP
- 443/8443: HTTPS
- 18443/28443: TLS (SNI Proxy / TLSRoute)
- 12001: Admin API
- 12000: probe (health/ready)
- 12090: Metrics
| Variable | Description | Default |
|---|---|---|
RUST_LOG |
Log level | info |
EDGION_CONTROLLER_ADDR |
Controller address | edgion-controller-leader:12151 |
| Variable | Description | Default |
|---|---|---|
RUST_LOG |
Log level | info |
KUBERNETES_SERVICE_HOST |
K8s API address | Auto-detected |
POD_NAME |
Pod name (Downward API) | Auto-injected |
POD_NAMESPACE |
Pod namespace (Downward API) | Auto-injected |
# Update image version
kubectl set image deployment/edgion-gateway \
edgion-gateway=pandaala/edgion-gateway:v0.1.1 \
-n edgion-system
kubectl set image deployment/edgion-controller \
edgion-controller=pandaala/edgion-controller:v0.1.1 \
-n edgion-system# Update the version in .env
# VERSION=v0.2.0
# Pull new images and restart
docker-compose pull
docker-compose up -d- Kubernetes:
kubectl logs -f <pod-name> -n edgion-system - Docker Compose:
docker-compose logs -f
# Controller health check (probe listener)
curl http://<controller-ip>:12100/health
# Gateway health check (probe listener)
curl http://<gateway-ip>:12000/health-
Check RBAC permissions:
kubectl auth can-i list gateways --as=system:serviceaccount:edgion-system:edgion-controller
-
Check logs:
kubectl logs -f deployment/edgion-controller -n edgion-system
-
Check Service:
kubectl get svc -n edgion-system
-
Check connectivity:
kubectl exec -it <gateway-pod> -n edgion-system -- nc -zv edgion-controller-leader 12151