You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
5.8 KiB
118 lines
5.8 KiB
5 years ago
|
syntax = "proto3";
|
||
|
|
||
|
package envoy.config.route.v4alpha;
|
||
|
|
||
|
import "envoy/config/core/v4alpha/base.proto";
|
||
|
import "envoy/config/core/v4alpha/config_source.proto";
|
||
|
import "envoy/config/route/v4alpha/route_components.proto";
|
||
|
|
||
|
import "google/protobuf/wrappers.proto";
|
||
|
|
||
|
import "udpa/annotations/status.proto";
|
||
|
import "udpa/annotations/versioning.proto";
|
||
|
import "validate/validate.proto";
|
||
|
|
||
|
option java_package = "io.envoyproxy.envoy.config.route.v4alpha";
|
||
|
option java_outer_classname = "RouteProto";
|
||
|
option java_multiple_files = true;
|
||
|
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE;
|
||
|
|
||
|
// [#protodoc-title: HTTP route configuration]
|
||
|
// * Routing :ref:`architecture overview <arch_overview_http_routing>`
|
||
|
// * HTTP :ref:`router filter <config_http_filters_router>`
|
||
|
|
||
|
// [#next-free-field: 11]
|
||
|
message RouteConfiguration {
|
||
|
option (udpa.annotations.versioning).previous_message_type =
|
||
|
"envoy.config.route.v3.RouteConfiguration";
|
||
|
|
||
|
// The name of the route configuration. For example, it might match
|
||
|
// :ref:`route_config_name
|
||
|
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.Rds.route_config_name>` in
|
||
|
// :ref:`envoy_api_msg_extensions.filters.network.http_connection_manager.v4alpha.Rds`.
|
||
|
string name = 1;
|
||
|
|
||
|
// An array of virtual hosts that make up the route table.
|
||
|
repeated VirtualHost virtual_hosts = 2;
|
||
|
|
||
|
// An array of virtual hosts will be dynamically loaded via the VHDS API.
|
||
|
// Both *virtual_hosts* and *vhds* fields will be used when present. *virtual_hosts* can be used
|
||
|
// for a base routing table or for infrequently changing virtual hosts. *vhds* is used for
|
||
|
// on-demand discovery of virtual hosts. The contents of these two fields will be merged to
|
||
|
// generate a routing table for a given RouteConfiguration, with *vhds* derived configuration
|
||
|
// taking precedence.
|
||
|
Vhds vhds = 9;
|
||
|
|
||
|
// Optionally specifies a list of HTTP headers that the connection manager
|
||
|
// will consider to be internal only. If they are found on external requests they will be cleaned
|
||
|
// prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more
|
||
|
// information.
|
||
|
repeated string internal_only_headers = 3 [
|
||
|
(validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
|
||
|
];
|
||
|
|
||
|
// Specifies a list of HTTP headers that should be added to each response that
|
||
|
// the connection manager encodes. Headers specified at this level are applied
|
||
|
// after headers from any enclosed :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` or
|
||
|
// :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on
|
||
|
// header value syntax, see the documentation on :ref:`custom request headers
|
||
|
// <config_http_conn_man_headers_custom_request_headers>`.
|
||
|
repeated core.v4alpha.HeaderValueOption response_headers_to_add = 4
|
||
|
[(validate.rules).repeated = {max_items: 1000}];
|
||
|
|
||
|
// Specifies a list of HTTP headers that should be removed from each response
|
||
|
// that the connection manager encodes.
|
||
|
repeated string response_headers_to_remove = 5 [
|
||
|
(validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
|
||
|
];
|
||
|
|
||
|
// Specifies a list of HTTP headers that should be added to each request
|
||
|
// routed by the HTTP connection manager. Headers specified at this level are
|
||
|
// applied after headers from any enclosed :ref:`envoy_api_msg_config.route.v4alpha.VirtualHost` or
|
||
|
// :ref:`envoy_api_msg_config.route.v4alpha.RouteAction`. For more information, including details on
|
||
|
// header value syntax, see the documentation on :ref:`custom request headers
|
||
|
// <config_http_conn_man_headers_custom_request_headers>`.
|
||
|
repeated core.v4alpha.HeaderValueOption request_headers_to_add = 6
|
||
|
[(validate.rules).repeated = {max_items: 1000}];
|
||
|
|
||
|
// Specifies a list of HTTP headers that should be removed from each request
|
||
|
// routed by the HTTP connection manager.
|
||
|
repeated string request_headers_to_remove = 8 [
|
||
|
(validate.rules).repeated = {items {string {well_known_regex: HTTP_HEADER_NAME strict: false}}}
|
||
|
];
|
||
|
|
||
|
// By default, headers that should be added/removed are evaluated from most to least specific:
|
||
|
//
|
||
|
// * route level
|
||
|
// * virtual host level
|
||
|
// * connection manager level
|
||
|
//
|
||
|
// To allow setting overrides at the route or virtual host level, this order can be reversed
|
||
|
// by setting this option to true. Defaults to false.
|
||
|
//
|
||
|
// [#next-major-version: In the v3 API, this will default to true.]
|
||
|
bool most_specific_header_mutations_wins = 10;
|
||
|
|
||
|
// An optional boolean that specifies whether the clusters that the route
|
||
|
// table refers to will be validated by the cluster manager. If set to true
|
||
|
// and a route refers to a non-existent cluster, the route table will not
|
||
|
// load. If set to false and a route refers to a non-existent cluster, the
|
||
|
// route table will load and the router filter will return a 404 if the route
|
||
|
// is selected at runtime. This setting defaults to true if the route table
|
||
|
// is statically defined via the :ref:`route_config
|
||
|
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.route_config>`
|
||
|
// option. This setting default to false if the route table is loaded dynamically via the
|
||
|
// :ref:`rds
|
||
|
// <envoy_api_field_extensions.filters.network.http_connection_manager.v4alpha.HttpConnectionManager.rds>`
|
||
|
// option. Users may wish to override the default behavior in certain cases (for example when
|
||
|
// using CDS with a static route table).
|
||
|
google.protobuf.BoolValue validate_clusters = 7;
|
||
|
}
|
||
|
|
||
|
message Vhds {
|
||
|
option (udpa.annotations.versioning).previous_message_type = "envoy.config.route.v3.Vhds";
|
||
|
|
||
|
// Configuration source specifier for VHDS.
|
||
|
core.v4alpha.ConfigSource config_source = 1 [(validate.rules).message = {required: true}];
|
||
|
}
|