Class ClusterConfig

  • All Implemented Interfaces:
    com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ClusterConfigOrBuilder, Serializable

    public final class ClusterConfig
    extends com.google.protobuf.GeneratedMessageV3
    implements ClusterConfigOrBuilder
     Configuration for the dynamic forward proxy cluster. See the :ref:`architecture overview
     <arch_overview_http_dynamic_forward_proxy>` for more information.
     [#extension: envoy.clusters.dynamic_forward_proxy]
     
    Protobuf type envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig
    See Also:
    Serialized Form
    • Field Detail

      • DNS_CACHE_CONFIG_FIELD_NUMBER

        public static final int DNS_CACHE_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • SUB_CLUSTERS_CONFIG_FIELD_NUMBER

        public static final int SUB_CLUSTERS_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • ALLOW_INSECURE_CLUSTER_OPTIONS_FIELD_NUMBER

        public static final int ALLOW_INSECURE_CLUSTER_OPTIONS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • ALLOW_COALESCED_CONNECTIONS_FIELD_NUMBER

        public static final int ALLOW_COALESCED_CONNECTIONS_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        Specified by:
        getUnknownFields in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getUnknownFields in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • hasDnsCacheConfig

        public boolean hasDnsCacheConfig()
         The DNS cache configuration that the cluster will attach to. Note this configuration must
         match that of associated :ref:`dynamic forward proxy HTTP filter configuration
         <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
         
        .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
        Specified by:
        hasDnsCacheConfig in interface ClusterConfigOrBuilder
        Returns:
        Whether the dnsCacheConfig field is set.
      • getDnsCacheConfig

        public DnsCacheConfig getDnsCacheConfig()
         The DNS cache configuration that the cluster will attach to. Note this configuration must
         match that of associated :ref:`dynamic forward proxy HTTP filter configuration
         <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
         
        .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
        Specified by:
        getDnsCacheConfig in interface ClusterConfigOrBuilder
        Returns:
        The dnsCacheConfig.
      • getDnsCacheConfigOrBuilder

        public DnsCacheConfigOrBuilder getDnsCacheConfigOrBuilder()
         The DNS cache configuration that the cluster will attach to. Note this configuration must
         match that of associated :ref:`dynamic forward proxy HTTP filter configuration
         <envoy_v3_api_field_extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig.dns_cache_config>`.
         
        .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 1;
        Specified by:
        getDnsCacheConfigOrBuilder in interface ClusterConfigOrBuilder
      • hasSubClustersConfig

        public boolean hasSubClustersConfig()
         Configuration for sub clusters, when this configuration is enabled,
         Envoy will create an independent sub cluster dynamically for each host:port.
         Most of the configuration of a sub cluster is inherited from the current cluster,
         i.e. health_checks, dns_resolvers and etc.
         And the load_assignment will be set to the only one endpoint, host:port.
         Compared to the dns_cache_config, it has the following advantages:
         1. sub clusters will be created with the STRICT_DNS DiscoveryType,
            so that Envoy will use all of the IPs resolved from the host.
         2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
         
        .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
        Specified by:
        hasSubClustersConfig in interface ClusterConfigOrBuilder
        Returns:
        Whether the subClustersConfig field is set.
      • getSubClustersConfig

        public SubClustersConfig getSubClustersConfig()
         Configuration for sub clusters, when this configuration is enabled,
         Envoy will create an independent sub cluster dynamically for each host:port.
         Most of the configuration of a sub cluster is inherited from the current cluster,
         i.e. health_checks, dns_resolvers and etc.
         And the load_assignment will be set to the only one endpoint, host:port.
         Compared to the dns_cache_config, it has the following advantages:
         1. sub clusters will be created with the STRICT_DNS DiscoveryType,
            so that Envoy will use all of the IPs resolved from the host.
         2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
         
        .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
        Specified by:
        getSubClustersConfig in interface ClusterConfigOrBuilder
        Returns:
        The subClustersConfig.
      • getSubClustersConfigOrBuilder

        public SubClustersConfigOrBuilder getSubClustersConfigOrBuilder()
         Configuration for sub clusters, when this configuration is enabled,
         Envoy will create an independent sub cluster dynamically for each host:port.
         Most of the configuration of a sub cluster is inherited from the current cluster,
         i.e. health_checks, dns_resolvers and etc.
         And the load_assignment will be set to the only one endpoint, host:port.
         Compared to the dns_cache_config, it has the following advantages:
         1. sub clusters will be created with the STRICT_DNS DiscoveryType,
            so that Envoy will use all of the IPs resolved from the host.
         2. each sub cluster is full featured cluster, with lb_policy and health check and etc enabled.
         
        .envoy.extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig sub_clusters_config = 4;
        Specified by:
        getSubClustersConfigOrBuilder in interface ClusterConfigOrBuilder
      • getAllowInsecureClusterOptions

        public boolean getAllowInsecureClusterOptions()
         If true allow the cluster configuration to disable the auto_sni and auto_san_validation options
         in the :ref:`cluster's upstream_http_protocol_options
         <envoy_v3_api_field_config.cluster.v3.Cluster.upstream_http_protocol_options>`
         
        bool allow_insecure_cluster_options = 2;
        Specified by:
        getAllowInsecureClusterOptions in interface ClusterConfigOrBuilder
        Returns:
        The allowInsecureClusterOptions.
      • getAllowCoalescedConnections

        public boolean getAllowCoalescedConnections()
         If true allow HTTP/2 and HTTP/3 connections to be reused for requests to different
         origins than the connection was initially created for. This will only happen when the
         resolved address for the new connection matches the peer address of the connection and
         the TLS certificate is also valid for the new hostname. For example, if a connection
         has previously been established to foo.example.com at IP 1.2.3.4 with a certificate
         that is valid for ``*.example.com``, then this connection could be used for requests to
         bar.example.com if that also resolved to 1.2.3.4.
         .. note::
           By design, this feature will maximize reuse of connections. This means that instead
           opening a new connection when an existing connection reaches the maximum number of
           concurrent streams, requests will instead be sent to the existing connection.
         .. note::
           The coalesced connections might be to upstreams that would not be otherwise
           selected by Envoy. See the section `Connection Reuse in RFC 7540
           <https://datatracker.ietf.org/doc/html/rfc7540#section-9.1.1>`_
         
        bool allow_coalesced_connections = 3;
        Specified by:
        getAllowCoalescedConnections in interface ClusterConfigOrBuilder
        Returns:
        The allowCoalescedConnections.
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static ClusterConfig parseFrom​(ByteBuffer data)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ClusterConfig parseFrom​(ByteBuffer data,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ClusterConfig parseFrom​(com.google.protobuf.ByteString data)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ClusterConfig parseFrom​(com.google.protobuf.ByteString data,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ClusterConfig parseFrom​(byte[] data)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ClusterConfig parseFrom​(byte[] data,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static ClusterConfig parseFrom​(com.google.protobuf.CodedInputStream input,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                       throws IOException
        Throws:
        IOException
      • newBuilderForType

        public ClusterConfig.Builder newBuilderForType()
        Specified by:
        newBuilderForType in interface com.google.protobuf.Message
        Specified by:
        newBuilderForType in interface com.google.protobuf.MessageLite
      • toBuilder

        public ClusterConfig.Builder toBuilder()
        Specified by:
        toBuilder in interface com.google.protobuf.Message
        Specified by:
        toBuilder in interface com.google.protobuf.MessageLite
      • newBuilderForType

        protected ClusterConfig.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstance

        public static ClusterConfig getDefaultInstance()
      • parser

        public static com.google.protobuf.Parser<ClusterConfig> parser()
      • getParserForType

        public com.google.protobuf.Parser<ClusterConfig> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

        public ClusterConfig getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder