Stage 09: Control Plane Frontend
Stage 09 deploys the control plane UI application to the matih-control-plane namespace. The frontend is a React/Vite application served via NGINX and configured with ingress routing.
Source file: scripts/stages/09-control-plane-frontend.sh
Applications Deployed
| Application | Port | Description |
|---|---|---|
| control-plane-ui | 3004 | Platform administration dashboard |
Configuration
| Setting | Source | Description |
|---|---|---|
IMAGE_TAG | Build metadata or tag file | Container image version |
ACR_URL | Terraform outputs | Azure Container Registry URL |
INGRESS_DOMAIN | Environment variable | Custom domain (optional) |
ENABLE_TLS | Environment variable | Enable TLS termination (default: false) |
Ingress Configuration
The frontend is exposed via the NGINX ingress controller:
| Setting | Dev | Production |
|---|---|---|
| Domain | Auto-detected (nip.io) or custom | Tenant-specific domain |
| TLS | Disabled by default | Enabled with cert-manager |
| Path | / | / |
Deployment
helm upgrade --install control-plane-ui \
infrastructure/helm/control-plane-ui \
--namespace matih-control-plane \
--set image.repository=${ACR_URL}/matih/control-plane-ui \
--set image.tag=${IMAGE_TAG} \
--set ingress.domain=${INGRESS_DOMAIN} \
--wait --timeout 5mLibraries Used
| Library | Purpose |
|---|---|
core/config.sh | Terraform output access for ACR and ingress settings |
k8s/namespace.sh | Namespace management |
helm/deploy.sh | Helm deployment functions |
k8s/health.sh | Pod health verification |
Dependencies
- Requires:
08-control-plane-services - Required by: None (terminal stage for control plane)
Dependency Verification
kubectl get pods -n matih-control-plane -l app=control-plane-ui
kubectl get ingress -n matih-control-plane