All Downloads are FREE. Search and download functionalities are using the official Maven repository.

envoy.extensions.clusters.dns.v3.dns_cluster.proto Maven / Gradle / Ivy

The newest version!
syntax = "proto3";

package envoy.extensions.clusters.dns.v3;

import "envoy/config/core/v3/extension.proto";
import "envoy/extensions/clusters/common/dns/v3/dns.proto";

import "google/protobuf/duration.proto";

import "udpa/annotations/status.proto";
import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.extensions.clusters.dns.v3";
option java_outer_classname = "DnsClusterProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/clusters/dns/v3;dnsv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: DNS cluster configuration]

// Configuration for DNS discovery clusters.
// [#extension: envoy.clusters.dns]

// [#next-free-field: 10]
message DnsCluster {
  message RefreshRate {
    // Specifies the base interval between refreshes. This parameter is required and must be greater
    // than zero and less than
    // :ref:`max_interval `.
    google.protobuf.Duration base_interval = 1 [(validate.rules).duration = {
      required: true
      gt {nanos: 1000000}
    }];

    // 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 `.
    google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {nanos: 1000000}}];
  }

  // 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.
  google.protobuf.Duration dns_refresh_rate = 3 [(validate.rules).duration = {gt {nanos: 1000000}}];

  // 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.
  RefreshRate dns_failure_refresh_rate = 4;

  // 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.
  bool respect_dns_ttl = 5;

  // 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.
  google.protobuf.Duration dns_jitter = 6 [(validate.rules).duration = {gte {}}];

  // 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]
  config.core.v3.TypedExtensionConfig typed_dns_resolver_config = 7;

  // The DNS IP address resolution policy. If this setting is not specified, the
  // value defaults to
  // :ref:`AUTO`.
  common.dns.v3.DnsLookupFamily dns_lookup_family = 8;

  // 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.
  bool all_addresses_in_single_endpoint = 9;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy