Use Helm to customize the settings of your Gloo Network for Cilium installation.
You can follow this guide to customize settings for an advanced Gloo Network installation. To learn more about the benefits and architecture, see About.
Use Gloo Network for Cilium to provide connectivity, security, and observability for containerized workloads with a Cilium-based container network interface (CNI) plug-in that leverages the Linux kernel technology eBPF.
The Solo distribution of Cilium is a hardened Cilium enterprise image, which maintains support for security patches to address Common Vulnerabilities and Exposures (CVEs) and other security fixes.
Keep in mind that Gloo Network offers security patching support only with Solo distributions of Cilium versions, not community Cilium versions. Solo distributions of Cilium versions support the same patch versions as community Cilium. You can review community Cilium patch versions in the Cilium release documentation. To get the backported Cilium support, you must run the latest Gloo Network patch version.
To download the Solo distribution of a Cilium image, you must be a registered user and be able to log in to the Solo Support Center. Open the Cilium images built by Solo.io support article. When prompted, log in to the Support Center with your Solo account credentials.
The following versions of Gloo Network are supported with the compatible Solo versions of Cilium. Later versions of the open source project that are released after Gloo Network might also work, but are not tested as part of the Gloo Network release.
Gloo Network
Release date
Supported Solo distributions of Cilium versions tested by Solo
Create environment variables for the following details.
GLOO_NETWORK_LICENSE_KEY: Set your Gloo Network for Cilium license key as an environment variable. If you do not have one, contact an account representative.
GLOO_VERSION: Set the Gloo Network version. This example uses the latest version. Append -fips for a FIPS-compliant image. Do not include v before the version number.
SOLO_CILIUM_REPO: A repo key for the Solo distribution of Cilium that you can get by logging in to the Support Center and reviewing the Cilium images built by Solo.io support article.
CILIUM_VERSION: The Cilium version that you want to install. This example uses the latest version.
Install the Solo distribution of the Cilium CNI link
Create or use Kubernetes clusters that meet the Cilium requirements. For example, to try out the Cilium CNI in Google Kubernetes Engine (GKE) clusters, your clusters must be created with specific node taints.
Open the Cilium documentation and find the cloud provider that you want to use to create your clusters.
Follow the steps of your cloud provider to create one or more clusters that meet the Cilium requirements.
The instructions in the Cilium documentation might create a cluster with insufficient CPU and memory resources for Gloo Network. Make sure that you use a machine type with at least 2vCPU and 8GB of memory.
The cluster name must be alphanumeric with no special characters except a hyphen (-), lowercase, and begin with a letter (not a number).
Multicluster setups only: For a multicluster setup, you need at least two clusters. One cluster is set up as the Gloo management plane where the management components are installed. The other cluster is registered as your data plane and runs your Kubernetes workloads and Istio service mesh. You can optionally add more workload clusters to your setup. The instructions in this guide assume one management cluster and two workload clusters.
Install the CNI by using a Solo distribution of Cilium in your cluster. Be sure to include the following settings for compatability with Gloo Network, and the necessary settings for your infrastructure provider.
warning
The steps to install the CNI vary depending on the way you create your cluster. For example, installing the CNI in a kind cluster is different from installing the CNI in a GKE cluster. Depending on the cloud provider you use, you must update this command to add additional Helm values as suggested in the Cilium documentation.
Generic example (add cloud provider-specific values in --set flags below):
NAME: cilium
LAST DEPLOYED: Fri Sep 16 10:31:52 2022
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
You have successfully installed Cilium with Hubble.
Your release version is 1.14.2.
For any further help, visit https://docs.cilium.io/en/v1.12/gettinghelp
Verify that the Cilium CNI is successfully installed. Because the Cilium agent is deployed as a daemon set, the number of Cilium and Cilium node init pods equals the number of nodes in your cluster.
Prepare a Helm values file to provide your customizations. To get started, you can use the minimum settings in the following profile as a basis. These settings enable all components that are required for a single-cluster Gloo Network installation.
curl https://storage.googleapis.com/gloo-platform/helm-profiles/$GLOO_VERSION/gloo-core-single-cluster.yaml > gloo-network-single.yaml
open gloo-network-single.yaml
Decide how you want to secure the relay connection between the Gloo management server and agent. In test and POC environments, you can use Gloo self-signed certificates to secure the connection. If you plan to use Gloo Network in production, it is recommended to bring your own certificates instead. For more information, see Setup options.
Use your preferred PKI provider to generate your root CA and intermediate CA credentials. You then store the intermediate CA credentials in your cluster so that you can leverage Gloo Network’s built-in capability to automatically issue and sign the client TLS certificate for the Gloo agent. For more information, see the Bring your own CAs with automatic client TLS certificate rotation.
Create your root CA, intermediate CA credentials, server TLS certificate, and relay identity token, and store them as the following Kubernetes secrets in the gloo-mesh namespace:
relay-root-tls-secret that holds the root CA key, TLS certificate, and certificate chain
relay-tls-signing-secret that holds the intermediate CA key, TLS certificate, and certificate chain
relay-server-tls-secret that holds the server key, TLS certificate, and certificate chain for the Gloo management server
telemetry-root-secret that holds the certificate chain information for the telemetry collector agent
relay-identity-token-secret that holds the relay identity token value
You can use your preferred PKI provider to create the TLS certificates or follow the steps in BYO server certificate with managed client certificate to create the relay identity token and the TLS certificate by using OpenSSL.
In your Helm values file, add the following values.
Disable the generation of self-signed certificates to secure the relay connection between the Gloo management server and agent.
glooMgmtServer.relay.signingTlsSecret
Add the name and namespace of the Kubernetes secret that holds the intermediate CA credentials that you created earlier.
glooMgmtServer.relay.tlsSecret
Add the name and namespace of the Kubernetes secret that holds the server TLS certificate for the Gloo management server that you created earlier.
glooMgmtServer.relay.tokenSecret
Add the name, namespace, and key of the Kubernetes secret that holds the relay identity token that you created earlier.
glooAgent.relay.rootTlsSecret
Add the name and namespace of the Kubernetes secret that holds the root CA credentials that you created earlier.
glooAgent.relay.tokenSecret
Add the name, namespace, and key of the Kubernetes secret that holds the relay identity token that you created earlier.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
Use your preferred PKI provider to create the root CA, server TLS, and client TLS certificates. Then, store these certificates in the cluster so that the Gloo agent uses a client TLS certificate when establishing the first connection with the Gloo management server. No relay identity tokens are used. With this approach, you cannot use Gloo Network’s built-in client TLS certificate rotation capabilities. Instead, you must set up your own processes to monitor the expiration of your certificates and to rotate them before they expire. For more information, see Bring your own CAs and client TLS certificates.
Create your root CA, server, and client TLS certificates, and store them as the following Kubernetes secrets in the gloo-mesh namespace:
relay-server-tls-secret that holds the server TLS certificate for the Gloo management server
relay-client-tls-cert that holds the client TLS certificate for the Gloo agent
telemetry-root-secret that holds the certificate chain information for the telemetry collector agent
You can use your preferred PKI provider to create the TLS certificates or follow the steps in Create TLS certificates with OpenSSL to create them by using OpenSSL.
In your Helm values file for the management server, add the following values.
Disable the generation of self-signed root and intermediate CA certificates and the use of identity tokens to establish initial trust between the Gloo management server and agent.
glooMgmtServer.relay.disableCaCertGeneration
Disable the generation of self-signed certificates to secure the relay connection between the Gloo management server and agent.
glooMgmtServer.relay.disableTokenGeneration
Disable the generation of relay identity tokens.
glooMgmtServer.relay.tlsSecret
Add the name and namespace of the Kubernetes secret that holds the server TLS certificate for the Gloo management server that you created earlier.
glooMgmtServer.relay.tokenSecret
Set all values to null to instruct the Gloo management server to not use identity tokens to establish initial trust with Gloo agents.
glooAgent.relay.clientTlsSecret
Add the name and namespace of the Kubernetes secret that holds the client TLS certificate for the Gloo agent that you created earlier.
glooAgent.tokenSecret
Set all values to null to instruct the Gloo agent to not use identity tokens to establish initial trust with the Gloo management server.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
report
Do not use self-signed certs for production. This setup is recommended for testing purposes only.
You can use Gloo to generate self-signed certificates and keys for the root and intermediate CA. These credentials are used to derive the server TLS certificate for the Gloo management server and client TLS certificate for the Gloo agent. For more information, see Self-signed CAs with automatic client certificate rotation.
In your Helm values file, add the following values. Note that mTLS is the default mode in Gloo Network and does not require any additional configuration.
Use your preferred PKI provider to create the server TLS certificate for the Gloo management server. For more information, see Bring your own server TLS certificate.
Create your root CA credentials and derive the server TLS certificate and certificate chain information. To create the TLS certificate, you can use your preferred PKI provider or follow the steps in BYO server certificates to create a custom server TLS certificate by using OpenSSL. Store this information in the following secrets in the gloo-mesh namespace.
relay-server-tls-secret-custom: The key and TLS certificate for the Gloo management server, and root CA certificate information for the certificate chain. Note that you can use a different name, but you cannot use relay-server-tls-secret as this name is reserved by the Gloo management server when creating self-signed root CAs and server TLS certificates.
telemetry-root-secret: The root CA certificate for the certificate chain.
In your Helm values file, add the following values.
The name and namespace of the Kubernetes secret where you stored your custom server TLS certificate.
glooMgmtServer.extraEnvs.RELAY_TOKEN
Specify the relay token that the Gloo management server and agent use to establish initial trust. When you install Gloo Network and set RELAY_DISABLE_CLIENT_CERTIFICATE_AUTHENTICATION to true, the connection between the Gloo management server and agent is automatically secured by using simple, server-side TLS. In a simple TLS setup, only the management server presents a certificate to authenticate its identity. The identity of the agent is not verified. To ensure that only trusted agents connect to the management server, the relay identity token is used. The relay identity token can be any string value and is stored in the relay-identity-token-secret Kubernetes secret on the management cluster. You must set the same value in glooAgent.extraEnvs.RELAY_TOKEN.value to allow the Gloo agent to connect to the Gloo management server.
Set this value to true to not require a client TLS certificate from the Gloo agent to prove the agent’s identity and establish the connection with the management server.
Set to true to skip validating the server TLS certificate that the Gloo management server presents. This setting is required to configure the relay connection for TLS.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
report
Do not use self-signed certs for production. This setup is recommended for testing purposes only.
Use Gloo Network to create a self-signed server TLS certificate that the Gloo management server presents when the Gloo agent connects. For more information, see Self-signed server TLS certificate.
In your Helm values file, add the following values.
Specify the relay token that the Gloo management server and agent use to establish initial trust. When you install Gloo Network and set RELAY_DISABLE_CLIENT_CERTIFICATE_AUTHENTICATION to true, the connection between the Gloo management server and agent is automatically secured by using simple, server-side TLS. In a simple TLS setup, only the management server presents a certificate to authenticate its identity. The identity of the agent is not verified. To ensure that only trusted agents connect to the management server, the relay identity token is used. The relay identity token can be any string value and is stored in the relay-identity-token-secret Kubernetes secret. You must set the same value in glooAgent.extraEnvs.RELAY_TOKEN.value to allow the Gloo agent to connect to the Gloo management server.
Set this value to true to not require a client TLS certificate from the Gloo agent to prove the agent’s identity and establish the connection with the management server. This setting is required when you want to use simple TLS to secure the connection between the Gloo management server and agent.
glooAgent.extraEnvs.RELAY_TOKEN
Use the same value that you set in glooMgmtServer.extraEnvs.RELAY_TOKEN.
Set to true to skip validating the server TLS certificate that the Gloo management server presents. This setting is required to configure the relay connection for TLS.
Edit the file to provide your own details for settings that are recommended for production deployments, such as the following settings.
check_circle
For more information about the settings you can configure:
See all possible fields for the Helm chart by running helm show values gloo-platform/gloo-platform --version v2.5.12 > all-values.yaml. You can also see these fields in the Helm values documentation.
Field
Decription
glooAgent.resources.limits
Add resource limits for the gloo-mesh-agent pod, such as cpu: 500m and memory: 512Mi.
glooMgmtServer.resources.limits
Add resource limits for the gloo-mesh-mgmt-server pod, such as cpu: 1000m and memory: 1Gi.
Add annotations for the management server load balancer as needed, such as AWS-specific load balancer annotations. For more information, see Deployment and service overrides.
glooUi.auth
Set up OIDC authorization for the Gloo UI. For more information, see UI authentication.
prometheus.enabled
Disable the default Prometheus instance as needed to provide your own. Otherwise, you can keep the default Prometheus server enabled, and deploy a production-level server to scrape metrics from the server. For more information on each option, see Best practices for collecting metrics in production.
redis
Disable the default Redis deployment and provide your own backing database as needed. For more information, see Backing databases.
Cilium observability
Cilium metrics: Set glooNetwork.agent.enabled to true to install the Gloo Network-specific agent, which collects additional metrics when Cilium is installed.
Cilium logs: To collect Cilium pod logs and view them in the Gloo UI, set telemetryCollectorCustomization.pipelines.logs/cilium_flows.enabled to true. For more information, see Add Cilium flow logs.
Cilium insights: To generate insights that analyze your Cilium setup’s health, set telemetryCollectorCustomization.pipelines.metrics/cilium.enabled to true. This pipeline uses the default filter/cilium processor that collects all Cilium and Hubble metrics. Note that if you customize the Cilium metrics collection to reduce the number of metrics that are collected, not all Cilium insights can be generated.
Use the customizations in your Helm values file and the following recommended Cilium settings to install the Gloo Network components in your cluster.
Verify that your Gloo Network setup is correctly installed. If not, try debugging the relay connection. Note that this check might take a few seconds to verify that:
Your Gloo product license is valid and current.
The Gloo CRDs are installed at the correct version.
The management plane pods in the management cluster are running and healthy.
The Gloo agent is running and connected to the management server.
meshctl check
Example output:
🟢 License status
INFO gloo-network enterprise license expiration is 25 Aug 24 10:38 CDT
🟢 CRD version check
🟢 Gloo deployment status
Namespace | Name | Ready | Status
gloo-mesh | gloo-mesh-mgmt-server | 1/1 | Healthy
gloo-mesh | gloo-mesh-redis | 1/1 | Healthy
gloo-mesh | gloo-mesh-ui | 1/1 | Healthy
gloo-mesh | gloo-telemetry-collector-agent | 3/3 | Healthy
gloo-mesh | prometheus-server | 1/1 | Healthy
🟢 Mgmt server connectivity to workload agents
Cluster | Registered | Connected Pod
test | true | gloo-mesh/gloo-mesh-mgmt-server-558cddbbd7-rf2hv
Connected Pod | Clusters
gloo-mesh/gloo-mesh-mgmt-server-558cddbbd7-rf2hv | 1
In a multicluster setup, you deploy the Gloo management plane into a dedicated management cluster, and the Gloo data plane into one or more workload clusters.
Prepare a Helm values file to provide your customizations. To get started, you can use the minimum settings in the following profile as a basis. These settings enable all components that are required for a Gloo management plane installation.
curl https://storage.googleapis.com/gloo-platform/helm-profiles/$GLOO_VERSION/gloo-core-mgmt.yaml > mgmt-plane.yaml
open mgmt-plane.yaml
Decide how you want to secure the relay connection between the Gloo management server and agents. In test and POC environments, you can use self-signed certificates to secure the connection. If you plan to use Gloo Network in production, it is recommended to bring your own certificates instead. For more information, see Setup options.
Use your preferred PKI provider to generate your root CA and intermediate CA credentials. You then store the intermediate CA credentials in your cluster so that you can leverage Gloo Network’s built-in capability to automatically issue and sign client TLS certificates for Gloo agents. For more information, see the Bring your own CAs with automatic client TLS certificate rotation.
Create your root CA, intermediate CA, server, and telemetry gateway credentials, as well as relay identity token, and store them as the following Kubernetes secrets in the gloo-mesh namespace on the management cluster:
relay-root-tls-secret that holds the root CA certificate
relay-tls-signing-secret that holds the intermediate CA credentials
relay-server-tls-secret that holds the server key, TLS certificate and certificate chain information for the Gloo management server
relay-identity-token-secret that holds the relay identity token value
telemetry-root-secret that holds the root CA certificate for the certificate chain
gloo-telemetry-gateway-tls-secret that holds the key, TLS certificate and certificate chain for the Gloo telemetry gateway
Disable the generation of self-signed certificates to secure the relay connection between the Gloo management server and agent.
glooMgmtServer.relay.signingTlsSecret
Add the name and namespace of the Kubernetes secret that holds the intermediate CA credentials that you created earlier.
glooMgmtServer.relay.tlsSecret
Add the name and namespace of the Kubernetes secret that holds the server TLS certificate for the Gloo management server that you created earlier.
glooMgmtServer.relay.tokenSecret
Add the name, namespace, and key of the Kubernetes secret that holds the relay identity token that you created earlier.
telemetryGateway.extraVolumes
Add the gloo-telemetry-gateway-tls-secret-custom Kubernetes secret that you created earlier to the tls-keys volume. Make sure that you also add the other volumes to your telemetry gateway configuration.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
Use your preferred PKI provider to create the root CA, server TLS, client TLS, and telemetry gateway certificates. Then, store these certificates in the cluster so that the Gloo agent uses a client TLS certificate when establishing the first connection with the Gloo management server. No relay identity tokens are used. With this approach, you cannot use Gloo Network’s built-in client TLS certificate rotation capabilities. Instead, you must set up your own processes to monitor the expiration of your certificates and to rotate them before they expire. For more information, see Bring your own CAs and client TLS certificates.
Create your root CA, server, client, and telemetry gateway TLS certificates. You can use your preferred PKI provider to do that or follow the steps in Create certificates with OpenSSL to create custom TLS certificates by using OpenSSL. Then, you store the following information in a Kubernetes secret in the gloo-mesh namespace on the management cluster.
relay-server-tls-secret that holds the server key, TLS certificate and certificate chain information for the Gloo management server
gloo-telemetry-gateway-tls-secret that holds the key, TLS certificate and certificate chain for the Gloo telemetry gateway
telemetry-root-secret that holds the root CA certificate for the certificate chain
In your Helm values file for the management server, add the following values.
Disable the generation of self-signed root and intermediate CA certificates and the use of identity tokens to establish initial trust between the Gloo management server and agent.
relay.disableCaCertGeneration
Disable the generation of self-signed certificates to secure the relay connection between the Gloo management server and agent.
relay.disableTokenGeneration
Disable the generation of relay identity tokens.
relay.tlsSecret
Add the name and namespace of the Kubernetes secret that holds the server TLS certificate for the Gloo management server that you created earlier.
relay.tokenSecret
Set all values to null to instruct the Gloo management server to not use identity tokens to establish initial trust with Gloo agents.
telemetryGateway.extraVolumes
Add the gloo-telemetry-gateway-tls-secret Kubernetes secret that you created earlier to the tls-keys volume. Make sure that you also add the other volumes to your telemetry gateway configuration.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
report
Do not use self-signed certs for production. This setup is recommended for testing purposes only.
You can use Gloo to generate self-signed certificates and keys for the root and intermediate CA. These credentials are used to derive the server TLS certificate for the Gloo management server and client TLS certificate for the Gloo agent. Note that this setup is not recommended for production, but can be used for testing purposes. For more information, see Self-signed CAs with automatic client certificate rotation.
In your Helm values file for the management server, add the following values. Note that mTLS is the default mode in Gloo Network and does not require any additional configuration on the management server.
glooMgmtServer:
enabled: true
Use your preferred PKI provider to create the server TLS certificate for the Gloo management server. For more information, see Bring your own server TLS certificate.
Create your root CA credentials and derive a server TLS certificate. To create the TLS certificate, you can use your preferred PKI provider or follow the steps in BYO server certificate to create a custom server TLS certificate by using OpenSSL. Make sure that you have the following Kubernetes secrets in the management cluster:
relay-server-tls-secret-custom: The key and TLS certificate for the Gloo management server, and root CA certificate information for the certificate chain. Note that you can use a different name, but you cannot use relay-server-tls-secret as this name is reserved by the Gloo management server when creating self-signed root CAs and server TLS certificates.
gloo-telemetry-gateway-tls-secret-custom: The key and TLS certificate for the Gloo telemetry gateway, and root CA certificate information for the certificate chain. It is recommended to use the same credentials that you use for the Gloo management server. Note that you can use a different name, but you cannot use gloo-telemetry-gateway-tls-secret as this name is reserved by the Gloo management server when creating self-signed certificates.
telemetry-root-secret: The root CA certificate for the certificate chain.
In your Helm values file for the management server, add the following values.
Add the name of the Kubernetes secret with the custom server TLS secret that you created earlier.
RELAY_TOKEN
Specify the relay token that the Gloo management server and agent use to establish initial trust. When you install Gloo Network and set RELAY_DISABLE_CLIENT_CERTIFICATE_AUTHENTICATION to true, the connection between the Gloo management server and agent is automatically secured by using simple, server-side TLS. In a simple TLS setup, only the management server presents a certificate to authenticate its identity. The identity of the agent is not verified. To ensure that only trusted agents connect to the management server, the relay identity token is used. The relay identity token can be any string value and is stored in the relay-identity-token-secret Kubernetes secret on the management cluster. You must set the same value in glooAgent.extraEnvs.RELAY_TOKEN.value when you install the Gloo agent to allow the Gloo agent to connect to the Gloo management server.
RELAY_DISABLE_CLIENT_CERTIFICATE_AUTHENTICATION
Set this value to true to not require a client TLS certificate from the Gloo agent to prove the agent’s identity and establish the connection with the management server. This setting is required when you want to use simple TLS to secure the connection between the Gloo management server and agent.
telemetryGateway.extraVolumes
Add the gloo-telemetry-gateway-tls-secret-custom Kubernetes secret that you created earlier to the tls-keys volume. Make sure that you also add the other volumes to your telemetry gateway configuration.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
report
Do not use self-signed certs for production. This setup is recommended for testing purposes only.
Use Gloo Network to create a self-signed server TLS certificate that the Gloo management server presents when workload cluster agents connect. This setup is not recommended for production, but can be used for testing purposes. For more information, see Self-signed server TLS certificate.In your Helm values file for the management server, add the following values.
Specify the relay token that the Gloo management server and agent use to establish initial trust. When you install Gloo Network and set RELAY_DISABLE_CLIENT_CERTIFICATE_AUTHENTICATION to true, the connection between the Gloo management server and agent is automatically secured by using simple, server-side TLS. In a simple TLS setup, only the management server presents a certificate to authenticate its identity. The identity of the agent is not verified. To ensure that only trusted agents connect to the management server, the relay identity token is used. The relay identity token can be any string value and is stored in the relay-identity-token-secret Kubernetes secret on the management cluster. You must set the same value in glooAgent.extraEnvs.RELAY_TOKEN.value when installing Gloo Network in a workload cluster to allow Gloo agents to connect to the Gloo management server.
RELAY_DISABLE_CLIENT_CERTIFICATE_AUTHENTICATION
Set this value to true to not require a client TLS certificate from the Gloo agent to prove the agent’s identity and establish the connection with the management server. This setting is required when you want to use simple TLS to secure the connection between the Gloo management server and agent.
Edit the file to provide your own details for settings that are recommended for production deployments, such as the following settings.
check_circle
For more information about the settings you can configure:
See all possible fields for the Helm chart by running helm show values gloo-platform/gloo-platform --version v2.5.12 > all-values.yaml. You can also see these fields in the Helm values documentation.
Field
Decription
glooMgmtServer.resources.limits
Add resource limits for the gloo-mesh-mgmt-server pod, such as cpu: 1000m and memory: 1Gi.
Add annotations for the management server load balancer as needed, such as AWS-specific load balancer annotations. For more information, see Deployment and service overrides.
glooUi.auth
Set up OIDC authorization for the Gloo UI. For more information, see UI authentication.
prometheus.enabled
Disable the default Prometheus instance as needed to provide your own. Otherwise, you can keep the default Prometheus server enabled, and deploy a production-level server to scrape metrics from the server. For more information on each option, see Best practices for collecting metrics in production.
redis
Disable the default Redis deployment and provide your own backing database as needed. For more information, see Backing databases.
glooNetwork.agent.enabled
Set to true to install the Gloo Network-specific agent, which collects additional metrics when Cilium is installed.
telemetryCollectorCustomization
Cilium logs: To collect Cilium pod logs and view them in the Gloo UI, set telemetryCollectorCustomization.pipelines.logs/cilium_flows.enabled to true. For more information, see Add Cilium flow logs.
Cilium insights: To generate insights that analyze your Cilium setup’s health, set telemetryCollectorCustomization.pipelines.metrics/cilium.enabled to true. This pipeline uses the default filter/cilium processor that collects all Cilium and Hubble metrics. You can optionally customize the Cilium metrics collection to reduce the number of metrics that are collected.
Use the customizations in your Helm values file to install the Gloo management plane components in your management cluster.
Save the external address and port that your cloud provider assigned to the gloo-mesh-mgmt-server service. The gloo-mesh-agent agent in each workload cluster accesses this address via a secure connection.
Save the external address and port that your cloud provider assigned to the Gloo OpenTelemetry (OTel) gateway service. The OTel collector agents in each workload cluster send metrics to this address.
Register each workload cluster with the Gloo management plane by deploying Gloo data plane components. A deployment named gloo-mesh-agent runs the Gloo agent in each workload cluster.
For the workload cluster that you want to register with Gloo, set the following environment variables. You update these variables each time you follow these steps to register another workload cluster.
In the management cluster, create a KubernetesCluster resource to represent the workload cluster and store relevant data, such as the workload cluster’s local domain.
Prepare a Helm values file to provide your customizations. To get started, you can use the minimum settings in the following profile as a basis. These settings enable all components that are required for a Gloo data plane installation.
curl https://storage.googleapis.com/gloo-platform/helm-profiles/$GLOO_VERSION/gloo-core-agent.yaml > data-plane.yaml
open data-plane.yaml
Depending on the method you chose to secure the relay connection, prepare the Helm values for the data plane installation. For more information, see the Setup options.
Make sure that the following Kubernetes secrets exist in the gloo-mesh namespace on each workload cluster.
relay-root-tls-secret that holds the root CA certificate
relay-identity-token-secret that holds the relay identity token value
telemetry-root-secret that holds the root CA certificate for the certificate chain
Add the name and namespace of the Kubernetes secret that holds the root CA credentials that you copied from the management cluster to the workload cluster.
glooAgent.relay.tokenSecret
Add the name, namespace, and key of the Kubernetes secret that holds the relay identity token that you copied from the management cluster to the workload cluster.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
Make sure that the following Kubernetes secrets exist in the gloo-mesh namespace on each workload cluster.
$REMOTE_CLUSTER1-tls-cert that holds the key, TLS certificate, and certificate chain information for the Gloo agent
telemetry-root-secret that holds the root CA certificate for the certificate chain
You can use the steps in Create certificates with OpenSSL as a guidance for how to create these secrets in the workload cluster.
In your Helm values file for the agent, add the following values. Replace <client-tls-secret-name> with the name of the Kubernetes secret that holds the client TLS certificate, and add the name of the Kubernetes secret that holds the telemetry gateway certificate to the root-ca telemetry collector volume.
Add the name and namespace of the Kubernetes secret that holds the client TLS certificate for the Gloo agent that you created earlier.
glooAgent.relay.tokenSecret
Set all values to null to instruct the Gloo agent to not use identity tokens to establish initial trust with Gloo agents.
telemetryCollector.extraVolumes
Add the name of the Kubernetes secret that holds the Gloo telemetry gateway certificate that you created earlier to the root-ca volume. Make sure that you also add the configMap and hostPath volumes to your configuration.
report
Do not use self-signed certs for production. This setup is recommended for testing purposes only.
Get the value of the root CA certificate from the management cluster and create a secret in the workload cluster.
The relay token to establish initial trust between the Gloo management server and the agent. The relay token is saved in memory on the Gloo agent. You must set the same value that you set in glooMgmtServer.extraEnvs.RELAY_TOKEN.value when you installed the Gloo Network management plane to allow Gloo agents to connect to the Gloo management server.
RELAY_DISABLE_SERVER_CERTIFICATE_VALIDATION
Set to true to skip validating the server TLS certificate that the Gloo management server presents. This setting is required to configure the relay connection for TLS.
telemetryCollector.extraVolumes
Add the telemetry-root-secret Kubernetes secret that you created earlier to the root-ca volume. Make sure that you also add the other volumes to your telemetry collector configuration.
telemetryCollectorCustomization.skipVerify
Set to true to skip validation of the server certificate that the Gloo telemetry gateway presents. By default, the Gloo telemetry gateway uses the same TLS certificates that the Gloo management server uses for the relay connection. If you configure the relay connection for TLS, you must set skipVerify to true on the telemetry collector agent.
report
Do not use self-signed certs for production. This setup is recommended for testing purposes only.
In your Helm values file for the workload cluster, add the following values.
The relay token to establish initial trust between the Gloo management server and the agent. The relay token is saved in memory on the Gloo agent. You must set the same value that you set in glooMgmtServer.extraEnvs.RELAY_TOKEN.value when you installed the Gloo Network management plane to allow Gloo agents to connect to the Gloo management server.
RELAY_DISABLE_SERVER_CERTIFICATE_VALIDATION
Set to true to skip validating the server TLS certificate that the Gloo management server presents. This setting is required to configure the relay connection for TLS.
telemetryCollectorCustomization.skipVerify
Set to true to skip validation of the server certificate that the Gloo telemetry gateway presents. By default, the Gloo telemetry gateway uses the same TLS certificates that the Gloo management server uses for the relay connection. If you configure the relay connection for TLS, you must set skipVerify to true on the telemetry collector agent.
Edit the file to provide your own details for settings that are recommended for production deployments, such as the following settings.
check_circle
For more information about the settings you can configure:
See all possible fields for the Helm chart by running helm show values gloo-platform/gloo-platform --version v2.5.12 > all-values.yaml. You can also see these fields in the Helm values documentation.
Field
Decription
glooAgent.resources.limits
Add resource limits for the gloo-mesh-mgmt-server pod, such as cpu: 500m and memory: 512Mi.
Cilium observability
Cilium metrics: Set glooNetwork.agent.enabled to true to install the Gloo Network-specific agent, which collects additional metrics when Cilium is installed.
Cilium logs: To collect Cilium pod logs and view them in the Gloo UI, set telemetryCollectorCustomization.pipelines.logs/cilium_flows.enabled to true. For more information, see Add Cilium flow logs.
Cilium insights: To generate insights that analyze your Cilium setup’s health, set telemetryCollectorCustomization.pipelines.metrics/cilium.enabled to true. This pipeline uses the default filter/cilium processor that collects all Cilium and Hubble metrics. Note that if you customize the Cilium metrics collection to reduce the number of metrics that are collected, not all Cilium insights can be generated.
Use the customizations in your Helm values file to install the Gloo data plane components in your workload cluster.
Verify that the Gloo data plane component pods are running. If not, try debugging the agent.
meshctl check --kubecontext $REMOTE_CONTEXT
Example output:
🟢 Gloo deployment status
Namespace | Name | Ready | Status
gloo-mesh | gloo-mesh-agent | 1/1 | Healthy
gloo-mesh | gloo-telemetry-collector-agent | 3/3 | Healthy
Repeat steps 1 - 8 to register each workload cluster with Gloo.
Verify that your Gloo Network setup is correctly installed. If not, try debugging the relay connection. Note that this check might take a few seconds to verify that:
Your Gloo product licenses are valid and current.
The Gloo CRDs are installed at the correct version.
The management plane pods in the management cluster are running and healthy.
The agents in the workload clusters are successfully identified by the management server.
meshctl check --kubecontext $MGMT_CONTEXT
Example output:
🟢 License status
INFO gloo-network enterprise license expiration is 25 Aug 24 10:38 CDT
🟢 CRD version check
🟢 Gloo deployment status
Namespace | Name | Ready | Status
gloo-mesh | gloo-mesh-mgmt-server | 1/1 | Healthy
gloo-mesh | gloo-mesh-redis | 1/1 | Healthy
gloo-mesh | gloo-mesh-ui | 1/1 | Healthy
gloo-mesh | gloo-telemetry-collector-agent | 3/3 | Healthy
gloo-mesh | gloo-telemetry-gateway | 1/1 | Healthy
gloo-mesh | prometheus-server | 1/1 | Healthy
🟢 Mgmt server connectivity to workload agents
Cluster | Registered | Connected Pod
cluster1 | true | gloo-mesh/gloo-mesh-mgmt-server-65bd557b95-v8qq6
cluster2 | true | gloo-mesh/gloo-mesh-mgmt-server-65bd557b95-v8qq6
Connected Pod | Clusters
gloo-mesh/gloo-mesh-mgmt-server-65bd557b95-v8qq6 | 2
Now that you have Gloo Network for Cilium up and running, check out some of the following resources to learn more about Gloo Network and expand your Cilium capabilities.
Apply more Cilium network policies by following the Cilium docs.
Gloo Network:
Explore insights to review and improve your setup’s health and security posture.
When it’s time to upgrade Gloo Network, see the upgrade guide.
Istio: To also deploy Istio in your environment, check out Gloo Mesh Core or Gloo Mesh Enterprise to quickly install and manage your service mesh for you with service mesh lifecycle management.