MATIH Platform is in active MVP development. Documentation reflects current implementation status.
18. CI/CD & Build System
Stage 09: CP Frontend

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

ApplicationPortDescription
control-plane-ui3004Platform administration dashboard

Configuration

SettingSourceDescription
IMAGE_TAGBuild metadata or tag fileContainer image version
ACR_URLTerraform outputsAzure Container Registry URL
INGRESS_DOMAINEnvironment variableCustom domain (optional)
ENABLE_TLSEnvironment variableEnable TLS termination (default: false)

Ingress Configuration

The frontend is exposed via the NGINX ingress controller:

SettingDevProduction
DomainAuto-detected (nip.io) or customTenant-specific domain
TLSDisabled by defaultEnabled 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 5m

Libraries Used

LibraryPurpose
core/config.shTerraform output access for ACR and ingress settings
k8s/namespace.shNamespace management
helm/deploy.shHelm deployment functions
k8s/health.shPod 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