Dynamic Modules Cluster (proto)

extensions.clusters.dynamic_modules.v3.ClusterConfig

[extensions.clusters.dynamic_modules.v3.ClusterConfig proto]

Configuration for the dynamic modules cluster.

This cluster type delegates host discovery and load balancing to a dynamic module. The module manages hosts via callbacks such as envoy_dynamic_module_callback_cluster_add_host and envoy_dynamic_module_callback_cluster_remove_host. The cluster must use lb_policy: CLUSTER_PROVIDED since the module provides its own load balancer.

This extension has the qualified name envoy.clusters.dynamic_modules

Note

This extension is functional but has not had substantial production burn time, use only with this caveat.

This extension is not hardened and should only be used in deployments where both the downstream and upstream are trusted.

Tip

This extension extends and can be used with the following extension category:

This extension must be configured with one of the following type URLs:

{
  "dynamic_module_config": {...},
  "cluster_name": ...,
  "cluster_config": {...}
}
dynamic_module_config

(extensions.dynamic_modules.v3.DynamicModuleConfig, REQUIRED) The dynamic module configuration for the cluster.

cluster_name

(string, REQUIRED) The name to identify the cluster implementation within the module. This is passed to the module’s envoy_dynamic_module_on_cluster_config_new function.

cluster_config

(Any) The configuration for the module’s cluster implementation. This is passed to the module’s envoy_dynamic_module_on_cluster_config_new function. The configuration can be any protobuf message. However, it is recommended to use google.protobuf.Struct, google.protobuf.StringValue, or google.protobuf.BytesValue. These types are passed directly as bytes to the module, so the module does not need to have knowledge of protobuf encoding. Otherwise, the serialized bytes of the type are passed. If not specified, an empty configuration is passed.