Skip to content

Pandaala/edgion-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edgion Deploy

⚠️ DO NOT DEPLOY until a 12xxx-topology image is published. These manifests use the 12xxx management 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, pin kubernetes/*/deployment.yaml, docker-compose/docker-compose.yml, and kubernetes/versions.env to that one tag (resolving the current tag drift) before rollout.

Deployment configuration repository for Edgion Gateway across multiple environments.

Overview

edgion-deploy is the standalone deployment configuration repository for Edgion, providing multiple deployment methods:

  • Kubernetes: Native YAML manifests
  • Docker Compose: For local development

Directory Structure

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/

Quick Start

Prerequisites

Depending on your deployment method:

  • Kubernetes: kubectl 1.25+
  • Docker Compose: docker-compose 1.27+

Kubernetes Deployment

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-system

See kubernetes/README.md for detailed documentation.

Docker Compose Deployment

cd docker-compose

# Configure environment
cp .env.example .env

# Start services
docker-compose up -d

# View logs
docker-compose logs -f

See docker-compose/README.md for detailed documentation.

Docker Images

All deployment configurations use images from Docker Hub:

  • pandaala/edgion-gateway:v0.1.1
  • pandaala/edgion-controller:v0.1.1

To build images, refer to the Edgion project README.

Configuration

Controller

  • 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

Gateway

  • 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

Environment Variables

Gateway

Variable Description Default
RUST_LOG Log level info
EDGION_CONTROLLER_ADDR Controller address edgion-controller-leader:12151

Controller

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

Upgrade Guide

Kubernetes

# 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

Docker Compose

# Update the version in .env
# VERSION=v0.2.0

# Pull new images and restart
docker-compose pull
docker-compose up -d

Monitoring and Logs

Log Access

  • Kubernetes: kubectl logs -f <pod-name> -n edgion-system
  • Docker Compose: docker-compose logs -f

Health Check

# Controller health check (probe listener)
curl http://<controller-ip>:12100/health

# Gateway health check (probe listener)
curl http://<gateway-ip>:12000/health

Troubleshooting

Controller Fails to Start

  1. Check RBAC permissions:

    kubectl auth can-i list gateways --as=system:serviceaccount:edgion-system:edgion-controller
  2. Check logs:

    kubectl logs -f deployment/edgion-controller -n edgion-system

Gateway Cannot Connect to Controller

  1. Check Service:

    kubectl get svc -n edgion-system
  2. Check connectivity:

    kubectl exec -it <gateway-pod> -n edgion-system -- nc -zv edgion-controller-leader 12151

Related Links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages