Configure Envoy Gateway Controller

The configuration of the Envoy Gateway Controller is a two-part process that comprises enablement of the product and verification of its successful installation.

Enable Envoy Gateway Controller

You can enable the Envoy Gateway Controller through the MKE configuration file or by way of the MKE web UI.

To enable Envoy Gateway Controller using the MKE configuration file:

  1. Download the MKE configuration file:

    curl --silent --insecure -H "Authorization: Bearer $AUTHTOKEN" \
    https://$MKE_HOST/api/ucp/config-toml > mke-config.toml
    
  2. Set the enabled parameter to true in the cluster_config.gateway_controller section of the MKE configuration file:

    [cluster_config.gateway_controller]
      enabled = true
    
  3. Optional. Set the number of control plane repicas in the cluster_config.gateway_controller.gateway_num_replicas parameter of the MKE configuration file, which by default is set to 1.

  4. Optional. Schedule the Envoy Gateway Controller on nodes with matching taints, such as manager nodes, in the cluster_config.gateway_controller.gateway_node_toleration parameter of the MKE configuration file.

  5. Apply the edited MKE configuration file:

    curl --silent --insecure -X PUT -H "accept: application/toml" \
      -H "Authorization: Bearer $AUTHTOKEN" \
      --upload-file 'mke-config.toml' \
      https://$MKE_HOST/api/ucp/config-toml
    

To enable Envoy Gateway Controller through the MKE web UI

  1. Navigate to Admin Settings > Gateway.

  2. Enable Gateway Controller.

  3. Click Save.

Verify the installation

Run the following CLI command sequence to verify the installation:

kubectl get pods -n envoy-gateway-system
kubectl get svc -n envoy-gateway-system
kubectl get gatewayclass mke-gateway-ingress -o wide

If the installation completed successfully:

  • envoy-gateway-controller pods will be in Running state.

  • envoy-gateway Service (ClusterIP) will expose the xDS port (default 18000 internal)

  • mke-gateway-ingress GatewayClass will present with Accepted: True and will not be stuck on Waiting for controller.