Skip to content

Commit

Permalink
Sync Gloo APIs. Destination Branch: gloo-v1.18.0-beta33
Browse files Browse the repository at this point in the history
  • Loading branch information
soloio-bot committed Nov 12, 2024
1 parent b99cf20 commit 98d6f57
Show file tree
Hide file tree
Showing 94 changed files with 1,974 additions and 1,198 deletions.
2 changes: 1 addition & 1 deletion api/gloo/gloo/external/envoy/annotations/deprecation.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import "google/protobuf/descriptor.proto";
// [#protodoc-title: Deprecation]
// Allows tagging proto fields as fatal by default. One Envoy release after
// deprecation, deprecated fields will be disallowed by default, a state which
// is reversible with :ref:`runtime overrides <config_runtime_deprecation>`.
// is reversible with runtime overrides.

// Magic number in this file derived from top 28bit of SHA256 digest of
// "solo.io.envoy.annotation.disallowed_by_default"
Expand Down
19 changes: 8 additions & 11 deletions api/gloo/gloo/external/envoy/api/v2/core/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ message HealthCheck {
// HTTP Method that will be used for health checking, default is "GET".
// GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE, PATCH methods are supported, but making request body is not supported.
// CONNECT method is disallowed because it is not appropriate for health check request.
// If a non-200 response is expected by the method, it needs to be set in :ref:`expected_statuses <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.expected_statuses>`.
// If a non-200 response is expected by the method, it needs to be set in expected_statuses.
solo.io.envoy.config.core.v3.RequestMethod method = 11;
}

Expand All @@ -157,23 +157,20 @@ message HealthCheck {
}

message RedisHealthCheck {
// If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value
// If set, optionally perform `EXISTS <key>` instead of `PING`. A return value
// from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other
// than 0 is considered a failure. This allows the user to mark a Redis instance for maintenance
// by setting the specified key to any value and waiting for traffic to drain.
string key = 1;
}

// `grpc.health.v1.Health
// <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto>`_-based
// healthcheck. See `gRPC doc <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_
// [grpc.health.v1.Health](https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto)-based
// healthcheck. See [gRPC doc](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)
// for details.
message GrpcHealthCheck {
// An optional service name parameter which will be sent to gRPC service in
// `grpc.health.v1.HealthCheckRequest
// <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto#L20>`_.
// message. See `gRPC health-checking overview
// <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_ for more information.
// [grpc.health.v1.HealthCheckRequest](https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto#L20)
// message. See [gRPC health-checking overview](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) for more information.
string service_name = 1;

// The value of the :authority header in the gRPC health check request. If
Expand Down Expand Up @@ -277,9 +274,9 @@ enum HealthStatus {
UNHEALTHY = 2;

// Connection draining in progress. E.g.,
// `<https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/>`_
// https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/
// or
// `<https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining>`_.
// https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining.
// This is interpreted by Envoy as *UNHEALTHY*.
DRAINING = 3;

Expand Down
24 changes: 11 additions & 13 deletions api/gloo/gloo/external/envoy/api/v2/route/route.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,16 @@ message VirtualHost {
// virtual host. Wildcard hosts are supported in the suffix or prefix form.
//
// Domain search order:
// 1. Exact domain names: ``www.foo.com``.
// 2. Suffix domain wildcards: ``*.foo.com`` or ``*-bar.foo.com``.
// 3. Prefix domain wildcards: ``foo.*`` or ``foo-*``.
// 4. Special wildcard ``*`` matching any domain.
// 1. Exact domain names: `www.foo.com`.
// 2. Suffix domain wildcards: `*.foo.com` or `*-bar.foo.com`.
// 3. Prefix domain wildcards: `foo.*` or `foo-*`.
// 4. Special wildcard `*` matching any domain.
//
//
// The wildcard will not match the empty string.
// e.g. ``*-bar.foo.com`` will match ``baz-bar.foo.com`` but not ``-bar.foo.com``.
// e.g. `*-bar.foo.com` will match `baz-bar.foo.com` but not `-bar.foo.com`.
// The longest wildcards match first.
// Only a single virtual host in the entire route configuration can match on ``*``. A domain
// Only a single virtual host in the entire route configuration can match on `*`. A domain
// must be unique across all virtual hosts or the config will fail to load.
repeated string domains = 2 [(validate.rules).repeated.min_items = 1];

Expand Down Expand Up @@ -338,8 +338,7 @@ message RouteMatch {
// If specified, the route is a regular expression rule meaning that the
// regex must match the *:path* header once the query string is removed. The entire path
// (without the query string) must match the regex. The rule will not match if only a
// subsequence of the *:path* header matches the regex. The regex grammar is defined `here
// <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
// subsequence of the *:path* header matches the regex. The regex grammar is defined [here](https://en.cppreference.com/w/cpp/regex/ecmascript).
//
// Examples:
//
Expand Down Expand Up @@ -762,7 +761,7 @@ message RouteAction {
reserved 21;

// If present, and the request is a gRPC request, use the
// `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
// [grpc-timeout header](https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md),
// or its default value (infinity) instead of
// `timeout (envoy_api_field_route.RouteAction.timeout)`, but limit the applied timeout
// to the maximum value specified here. If configured as 0, the maximum allowed timeout for
Expand Down Expand Up @@ -1053,8 +1052,7 @@ message Tracing {
// statistics output are not free.
message VirtualCluster {
// Specifies a regex pattern to use for matching requests. The entire path of the request
// must match the regex. The regex grammar used is defined `here
// <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
// must match the regex. The regex grammar used is defined [here](https://en.cppreference.com/w/cpp/regex/ecmascript).
//
// Examples:
//
Expand Down Expand Up @@ -1094,7 +1092,7 @@ message RateLimit {
// ("source_cluster", "<local service cluster>")
// ```
//
// <local service cluster> is derived from the :option:`--service-cluster` option.
// <local service cluster> is derived from the `--service-cluster` option.
message SourceCluster {
}

Expand Down Expand Up @@ -1245,7 +1243,7 @@ message HeaderMatcher {
// If specified, this regex string is a regular expression rule which implies the entire request
// header value must match the regex. The rule will not match if only a subsequence of the
// request header value matches the regex. The regex grammar used in the value field is defined
// `here <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
// [here](https://en.cppreference.com/w/cpp/regex/ecmascript).
//
// Examples:
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,51 +40,51 @@ option (extproto.clone_all) = true;
// denoted by an x-envoy prefix) or specific headers that may affect
// further filter processing:
//
// * ``host``
// * ``:authority``
// * ``:scheme``
// * ``:method``
// * `host`
// * `:authority`
// * `:scheme`
// * `:method`
//
// Every attempt to add, change, append, or remove a header will be
// tested against the rules here. Disallowed header mutations will be
// ignored unless ``disallow_is_error`` is set to true.
// ignored unless `disallow_is_error` is set to true.
//
// Attempts to remove headers are further constrained -- regardless of the
// settings, system-defined headers (that start with ``:``) and the ``host``
// settings, system-defined headers (that start with `:`) and the `host`
// header may never be removed.
//
// In addition, a counter will be incremented whenever a mutation is
// rejected. In the ext_proc filter, that counter is named
// ``rejected_header_mutations``.
// `rejected_header_mutations`.
// [#next-free-field: 8]
message HeaderMutationRules {
// By default, certain headers that could affect processing of subsequent
// filters or request routing cannot be modified. These headers are
// ``host``, ``:authority``, ``:scheme``, and ``:method``. Setting this parameter
// `host`, `:authority`, `:scheme`, and `:method`. Setting this parameter
// to true allows these headers to be modified as well.
google.protobuf.BoolValue allow_all_routing = 1;

// If true, allow modification of envoy internal headers. By default, these
// start with ``x-envoy`` but this may be overridden in the ``Bootstrap``
// start with `x-envoy` but this may be overridden in the `Bootstrap`
// configuration using the
// :ref:`header_prefix <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.header_prefix>`
// field. Default is false.
google.protobuf.BoolValue allow_envoy = 2;

// If true, prevent modification of any system header, defined as a header
// that starts with a ``:`` character, regardless of any other settings.
// A processing server may still override the ``:status`` of an HTTP response
// using an ``ImmediateResponse`` message. Default is false.
// that starts with a `:` character, regardless of any other settings.
// A processing server may still override the `:status` of an HTTP response
// using an `ImmediateResponse` message. Default is false.
google.protobuf.BoolValue disallow_system = 3;

// If true, prevent modifications of all header values, regardless of any
// other settings. A processing server may still override the ``:status``
// of an HTTP response using an ``ImmediateResponse`` message. Default is false.
// other settings. A processing server may still override the `:status`
// of an HTTP response using an `ImmediateResponse` message. Default is false.
google.protobuf.BoolValue disallow_all = 4;

// If set, specifically allow any header that matches this regular
// expression. This overrides all other settings except for
// ``disallow_expression``.
// `disallow_expression`.
solo.io.envoy.type.matcher.v3.RegexMatcher allow_expression = 5;

// If set, specifically disallow any header that matches this regular
Expand All @@ -95,7 +95,7 @@ message HeaderMutationRules {
// disallowed, then the filter using this configuration will terminate the
// request with a 500 error. In addition, regardless of the setting of this
// parameter, any attempt to set, add, or modify a disallowed header will
// cause the ``rejected_header_mutations`` counter to be incremented.
// cause the `rejected_header_mutations` counter to be incremented.
// Default is false.
google.protobuf.BoolValue disallow_is_error = 7;
}
Expand Down
19 changes: 9 additions & 10 deletions api/gloo/gloo/external/envoy/config/core/v3/address.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ message SocketAddress {

Protocol protocol = 1 [(validate.rules).enum = {defined_only: true}];

// The address for this socket. :ref:`Listeners <config_listeners>` will bind
// to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::``
// The address for this socket. Listeners will bind
// to the address. An empty address is not allowed. Specify `0.0.0.0` or `::`
// to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
// It is possible to distinguish a Listener address via the prefix/suffix matching
// in :ref:`FilterChainMatch <envoy_api_msg_config.listener.v3.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_api_msg_config.core.v3.BindConfig>`, the address
// in FilterChainMatch.] When used
// within an upstream BindConfig, the address
// controls the source address of outbound connections. For :ref:`clusters
// <envoy_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the
// address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
// (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
// via :ref:`resolver_name <envoy_api_field_config.core.v3.SocketAddress.resolver_name>`.
// via resolver_name.
string address = 2 [(validate.rules).string = {min_bytes: 1}];

oneof port_specifier {
Expand All @@ -72,10 +72,9 @@ message SocketAddress {
// *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
string resolver_name = 5;

// When binding to an IPv6 address above, this enables `IPv4 compatibility
// <https://datatracker.ietf.org/doc/html/rfc3493#page-11>`_. Binding to ``::`` will
// When binding to an IPv6 address above, this enables [IPv4 compatibility](https://datatracker.ietf.org/doc/html/rfc3493#page-11). Binding to `::` will
// allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into
// IPv6 space as ``::FFFF:<IPv4-address>``.
// IPv6 space as `::FFFF:<IPv4-address>`.
bool ipv4_compat = 6;
}

Expand Down Expand Up @@ -133,11 +132,11 @@ message Address {
}

// CidrRange specifies an IP Address and a prefix length to construct
// the subnet mask for a `CIDR <https://datatracker.ietf.org/doc/html/rfc4632>`_ range.
// the subnet mask for a [CIDR](https://datatracker.ietf.org/doc/html/rfc4632) range.
message CidrRange {
option (solo.io.udpa.annotations.versioning).previous_message_type = "solo.io.envoy.api.v2.core.CidrRange";

// IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
// IPv4 or IPv6 address, e.g. `192.0.0.0` or `2001:db8::`.
string address_prefix = 1 [(validate.rules).string = {min_bytes: 1}];

// Length of prefix, e.g. 0, 32.
Expand Down
Loading

0 comments on commit 98d6f57

Please sign in to comment.