Inspect the Envoy configuration

The Microgateway Engine is built based on the Envoy proxy and enriched with Airlock-specific features. It may be useful to investigate the underlying Envoy configuration for complex problems.
To simplify this task we have created a CustomResource EnvoyConfiguration which contains the Envoy configuration.

The CustomResource EnvoyConfiguration is not intended to be created or changed manually. This resource is composed of the other Airlock Microgateway CustomResources and will be overwritten by the Airlock Microgateway Operator.

The following example shows the output of such a CustomResource:

copy
kubectl describe envoyconfigurations.microgateway.airlock.com webapp-84b785f954-r49wt
Name: webapp-84b785f954-r49wt Namespace: default Labels: <none> Annotations: <none> API Version: microgateway.airlock.com/v1alpha1 Kind: EnvoyConfiguration Metadata: ... ... ... Spec: Envoy Resources Raw: <base64-encoded compressed configuration> ... ... ... Status: Conditions: Last Transition Time: 2022-09-13T14:10:58Z Status: True Type: EnvoyXdsSynchronized Last Transition Time: 2022-09-13T14:10:58Z Status: True Type: EnvoyXdsAccepted Status: Active Xds: Resource Types: type.googleapis.com/envoy.config.cluster.v3.Cluster: Resources: upstream_8080: Version: 934ffd2b1b111d6c402096234e119d8d4b026b315ec5a3d8baa52d4931c31aa7 Status: Accepted Version: 3 type.googleapis.com/envoy.config.listener.v3.Listener: Resources: engine_listener: Version: dba378690d5e204c9d3f1f839821910f40ea5b06e0e1842d8180d78767d032f1 Status: Accepted Version: 3 Events: <none>
  • Description:
  • Spec.Envoy Resources Raw – Contains the base64-encoded Zstandard-compressed Envoy configuration.
  • Status.Conditions​– Shows whether the configuration is synchronized/active on Airlock Engine.
  • Status.Xds – Shows the different Envoy resources and their status.

The base64-encoded content can be decoded to JSON format as follows:

kubectl get envoyconfiguration <name> -ojsonpath='{.spec.envoyResourcesRaw}' | base64 -d | zstd -d | jq

For the above command, the CLI tools zstd and jq must be installed on your system.