.. _envoy_v3_api_file_envoy/extensions/clusters/dns/v3/dns_cluster.proto: DNS cluster configuration (proto) ================================= .. _extension_envoy.clusters.dns: This extension has the qualified name ``envoy.clusters.dns`` .. note:: This extension is intended to be robust against both untrusted downstream and upstream traffic. .. tip:: This extension extends and can be used with the following extension category: - :ref:`envoy.clusters ` This extension must be configured with one of the following type URLs: - :ref:`type.googleapis.com/envoy.extensions.clusters.dns.v3.DnsCluster ` Configuration for DNS discovery clusters. .. _envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster: extensions.clusters.dns.v3.DnsCluster ------------------------------------- :repo:`[extensions.clusters.dns.v3.DnsCluster proto] ` .. code-block:: json :force: { "dns_refresh_rate": {...}, "dns_failure_refresh_rate": {...}, "respect_dns_ttl": ..., "dns_jitter": {...}, "typed_dns_resolver_config": {...}, "dns_lookup_family": ..., "all_addresses_in_single_endpoint": ... } .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.dns_refresh_rate: dns_refresh_rate (`Duration `_) This value is the cluster’s DNS refresh rate. The value configured must be at least 1ms. If this setting is not specified, the value defaults to 5000ms. .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.dns_failure_refresh_rate: dns_failure_refresh_rate (:ref:`extensions.clusters.dns.v3.DnsCluster.RefreshRate `) This is the cluster’s DNS refresh rate when requests are failing. If this setting is not specified, the failure refresh rate defaults to the DNS refresh rate. .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.respect_dns_ttl: respect_dns_ttl (`bool `_) Optional configuration for setting cluster's DNS refresh rate. If the value is set to true, cluster's DNS refresh rate will be set to resource record's TTL which comes from DNS resolution. .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.dns_jitter: dns_jitter (`Duration `_) DNS jitter causes the cluster to refresh DNS entries later by a random amount of time to avoid a stampede of DNS requests. This value sets the upper bound (exclusive) for the random amount. There will be no jitter if this value is omitted. .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.typed_dns_resolver_config: typed_dns_resolver_config (:ref:`config.core.v3.TypedExtensionConfig `) DNS resolver type configuration extension. This extension can be used to configure c-ares, apple, or any other DNS resolver types and the related parameters. For example, an object of :ref:`CaresDnsResolverConfig` can be packed into this ``typed_dns_resolver_config``. This configuration replaces the :ref:`Cluster.typed_dns_resolver_config` configuration which replaces :ref:`Cluster.dns_resolution_config`. During the transition period when :ref:`DnsCluster.typed_dns_resolver_config`, :ref:`Cluster.typed_dns_resolver_config`, and :ref:`Cluster.dns_resolution_config` exist, Envoy will use :ref:`DnsCluster.typed_dns_resolver_config` and ignore DNS resolver-related fields in :ref:`Cluster` if the cluster is configured via the :ref:`Cluster.cluster_type` extension point with the :ref:`DnsCluster` extension type. Otherwise, see :ref:`Cluster.typed_dns_resolver_config`. .. _extension_category_envoy.network.dns_resolver: .. tip:: This extension category has the following known extensions: - :ref:`envoy.network.dns_resolver.apple ` - :ref:`envoy.network.dns_resolver.cares ` - :ref:`envoy.network.dns_resolver.getaddrinfo ` .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.dns_lookup_family: dns_lookup_family (:ref:`extensions.clusters.common.dns.v3.DnsLookupFamily `) The DNS IP address resolution policy. If this setting is not specified, the value defaults to :ref:`AUTO`. .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.all_addresses_in_single_endpoint: all_addresses_in_single_endpoint (`bool `_) If true, all returned addresses are considered to be associated with a single endpoint, which maps to :ref:`logical DNS discovery ` semantics. Otherwise, each address is considered to be a separate endpoint, which maps to :ref:`strict DNS discovery ` semantics. .. _envoy_v3_api_msg_extensions.clusters.dns.v3.DnsCluster.RefreshRate: extensions.clusters.dns.v3.DnsCluster.RefreshRate ------------------------------------------------- :repo:`[extensions.clusters.dns.v3.DnsCluster.RefreshRate proto] ` .. code-block:: json :force: { "base_interval": {...}, "max_interval": {...} } .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.base_interval: base_interval (`Duration `_, *REQUIRED*) Specifies the base interval between refreshes. This parameter is required and must be greater than zero and less than :ref:`max_interval `. .. _envoy_v3_api_field_extensions.clusters.dns.v3.DnsCluster.RefreshRate.max_interval: max_interval (`Duration `_) Specifies the maximum interval between refreshes. This parameter is optional, but must be greater than or equal to the :ref:`base_interval ` if set. The default is 10 times the :ref:`base_interval `.