This document provides instructions for deploying the Envoy XDS Controller in a Kubernetes environment.
Before deploying the Envoy XDS Controller, ensure you have the following:
There are two main ways to deploy the Envoy XDS Controller:
# If using a custom repository
helm repo add envoy-xds-controller <repository-url>
helm repo update
helm install envoy-xds-controller \
--namespace envoy-xds-controller \
--create-namespace \
helm/charts/envoy-xds-controller
Create a values.yaml file with your custom configuration:
replicaCount: 2
xds:
port: 9000
auth:
enabled: true
oidc:
clientId: "envoy-xds-controller"
issuerUrl: "https://your-identity-provider"
scope: "openid profile groups"
redirectUri: "https://your-ui-url/callback"
ui:
enabled: true
ingress:
enabled: true
hosts:
- host: envoy-xds-controller-ui.example.com
paths:
- path: /
pathType: Prefix
Then install with your custom values:
helm install envoy-xds-controller \
--namespace envoy-xds-controller \
--create-namespace \
-f values.yaml \
helm/charts/envoy-xds-controller
Build the installer YAML bundle:
make build-installer IMG=<registry>/envoy-xds-controller:<tag>
This generates an install.yaml file in the dist directory.
kubectl apply -f dist/install.yaml
Alternatively, you can use the published installer:
kubectl apply -f https://raw.githubusercontent.com/<org>/envoy-xds-controller/<tag>/dist/install.yaml
Check that the controller is running:
kubectl get pods -n envoy-xds-controller
Verify the CRDs are installed:
kubectl get crds | grep envoy.kaasops.io
helm upgrade envoy-xds-controller \
--namespace envoy-xds-controller \
-f values.yaml \
helm/charts/envoy-xds-controller
make build-installer IMG=<registry>/envoy-xds-controller:<new-tag>
kubectl apply -f dist/install.yaml
helm uninstall envoy-xds-controller -n envoy-xds-controller
kubectl delete -f dist/install.yaml
To completely remove all resources, including CRDs and their instances:
# Delete instances of custom resources
kubectl delete -k config/samples/
# Delete the CRDs
make uninstall
# Undeploy the controller
make undeploy