Skip to content

Include contrib envoy-api files #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
version=1.29.0
version=1.29.0-2
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
syntax = "proto3";

package envoy.extensions.compression.qatzip.compressor.v3alpha;

import "google/protobuf/wrappers.proto";

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

option java_package = "io.envoyproxy.envoy.extensions.compression.qatzip.compressor.v3alpha";
option java_outer_classname = "QatzipProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/compression/qatzip/compressor/v3alpha";
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Qatzip Compressor]
// Qatzip :ref:`configuration overview <config_qatzip>`.
// [#extension: envoy.compression.qatzip.compressor]

// [#next-free-field: 6]
message Qatzip {
enum HardwareBufferSize {
DEFAULT = 0;
SZ_4K = 1;
SZ_8K = 2;
SZ_32K = 3;
SZ_64K = 4;
SZ_128K = 5;
SZ_512K = 6;
}

// Value from 1 to 9 that controls the main compression speed-density lever.
// The higher quality, the slower compression. The default value is 1.
google.protobuf.UInt32Value compression_level = 1 [(validate.rules).uint32 = {lte: 9 gte: 1}];

// A size of qat hardware buffer. This field will be set to "DEFAULT" if not specified.
HardwareBufferSize hardware_buffer_size = 2 [(validate.rules).enum = {defined_only: true}];

// Threshold of compression service’s input size for software failover.
// If the size of input request less than the threshold, qatzip will route the request to software
// compressor. The default value is 1024. The maximum value is 512*1024.
google.protobuf.UInt32Value input_size_threshold = 3
[(validate.rules).uint32 = {lte: 524288 gte: 128}];

// A size of stream buffer. The default value is 128 * 1024. The maximum value is 2*1024*1024 -
// 5*1024
google.protobuf.UInt32Value stream_buffer_size = 4
[(validate.rules).uint32 = {lte: 2092032 gte: 1024}];

// Value for compressor's next output buffer. If not set, defaults to 4096.
google.protobuf.UInt32Value chunk_size = 5 [(validate.rules).uint32 = {lte: 65536 gte: 4096}];
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
syntax = "proto3";

package envoy.extensions.config.v3alpha;

import "envoy/config/common/key_value/v3/config.proto";

import "udpa/annotations/status.proto";

option java_package = "io.envoyproxy.envoy.extensions.config.v3alpha";
option java_outer_classname = "KvStoreXdsDelegateConfigProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/config/v3alpha";
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#extension: envoy.xds_delegates.kv_store]
//
// Configuration for a KeyValueStore-based XdsResourcesDelegate implementation. This implementation
// updates the underlying KV store with xDS resources received from the configured management
// servers, enabling configuration to be persisted locally and used on startup in case connectivity
// with the xDS management servers could not be established.
//
// The KV Store based delegate's handling of wildcard resources (empty resource list or "*") is
// designed for use with O(100) resources or fewer, so it's not currently advised to use this
// feature for large configurations with heavy use of wildcard resources.
message KeyValueStoreXdsDelegateConfig {
// Configuration for the KeyValueStore that holds the xDS resources.
// [#allow-fully-qualified-name:]
.envoy.config.common.key_value.v3.KeyValueStoreConfig key_value_store_config = 1;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
syntax = "proto3";

package envoy.extensions.filters.http.checksum.v3alpha;

import "envoy/type/matcher/v3/string.proto";

import "xds/annotations/v3/status.proto";

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

option java_package = "io.envoyproxy.envoy.extensions.filters.http.checksum.v3alpha";
option java_outer_classname = "ChecksumProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/filters/http/checksum/v3alpha";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
option (xds.annotations.v3.file_status).work_in_progress = true;

// [#protodoc-title: Checksum HTTP filter]
//
// Filter to reject responses that don't match a specified checksum.
// To avoid holding the entire response in memory, the rejection occurs at the end of the stream.
// [#extension: envoy.filters.http.checksum]

message ChecksumConfig {
message Checksum {
oneof matcher {
// A matcher for a path that is expected to have a specific checksum, as specified
// in the ``sha256`` field.
type.matcher.v3.StringMatcher path_matcher = 1 [(validate.rules).message = {required: true}];
}

// A hex-encoded sha256 string required to match the sha256sum of the response body
// of the path specified in the ``path_matcher`` field.
string sha256 = 2 [(validate.rules).string = {pattern: "^[a-fA-F0-9]{64}"}];
}

// A set of matcher and checksum pairs for which, if a path matching ``path_matcher``
// is requested and the checksum of the response body does not match the ``sha256``, the
// response will be replaced with a 403 Forbidden status.
//
// If multiple matchers match the same path, the first to match takes precedence.
repeated Checksum checksums = 1;

// If a request doesn't match any of the specified checksum paths and reject_unmatched is
// true, the request is rejected immediately with 403 Forbidden.
bool reject_unmatched = 2;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
syntax = "proto3";

package envoy.extensions.filters.http.dynamo.v3;

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

option java_package = "io.envoyproxy.envoy.extensions.filters.http.dynamo.v3";
option java_outer_classname = "DynamoProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/filters/http/dynamo/v3;dynamov3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Dynamo]
// Dynamo :ref:`configuration overview <config_http_filters_dynamo>`.
// [#extension: envoy.filters.http.dynamo]

// Dynamo filter config.
message Dynamo {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.http.dynamo.v2.Dynamo";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
syntax = "proto3";

package envoy.extensions.filters.http.golang.v3alpha;

import "google/protobuf/any.proto";

import "xds/annotations/v3/status.proto";

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

option java_package = "io.envoyproxy.envoy.extensions.filters.http.golang.v3alpha";
option java_outer_classname = "GolangProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/filters/http/golang/v3alpha";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
option (xds.annotations.v3.file_status).work_in_progress = true;

// [#protodoc-title: Golang HTTP filter]
//
// For an overview of the Golang HTTP filter please see the :ref:`configuration reference documentation <config_http_filters_golang>`.
// [#extension: envoy.filters.http.golang]

// [#next-free-field: 6]
message Config {
// The meanings are as follows:
//
// :``MERGE_VIRTUALHOST_ROUTER_FILTER``: Pass all configuration into Go plugin.
// :``MERGE_VIRTUALHOST_ROUTER``: Pass merged Virtual host and Router configuration into Go plugin.
// :``OVERRIDE``: Pass merged Virtual host, Router, and plugin configuration into Go plugin.
//
// [#not-implemented-hide:]
enum MergePolicy {
MERGE_VIRTUALHOST_ROUTER_FILTER = 0;
MERGE_VIRTUALHOST_ROUTER = 1;
OVERRIDE = 3;
}

// Globally unique ID for a dynamic library file.
string library_id = 1 [(validate.rules).string = {min_len: 1}];

// Path to a dynamic library implementing the
// :repo:`StreamFilter API <contrib/golang/common/go/api.StreamFilter>`
// interface.
// [#comment:TODO(wangfakang): Support for downloading libraries from remote repositories.]
string library_path = 2 [(validate.rules).string = {min_len: 1}];

// Globally unique name of the Go plugin.
//
// This name **must** be consistent with the name registered in ``http::RegisterHttpFilterConfigFactory``,
// and can be used to associate :ref:`route and virtualHost plugin configuration
// <envoy_v3_api_field_extensions.filters.http.golang.v3alpha.ConfigsPerRoute.plugins_config>`.
//
string plugin_name = 3 [(validate.rules).string = {min_len: 1}];

// Configuration for the Go plugin.
//
// .. note::
// This configuration is only parsed in the go plugin, and is therefore not validated
// by Envoy.
//
// See the :repo:`StreamFilter API <contrib/golang/common/go/api/filter.go>`
// for more information about how the plugin's configuration data can be accessed.
//
google.protobuf.Any plugin_config = 4;

// Merge policy for plugin configuration.
//
// The Go plugin configuration supports three dimensions:
//
// * Virtual host’s :ref:`typed_per_filter_config <envoy_v3_api_field_config.route.v3.VirtualHost.typed_per_filter_config>`
// * Route’s :ref:`typed_per_filter_config <envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>`
// * The filter's :ref:`plugin_config <envoy_v3_api_field_extensions.filters.http.golang.v3alpha.Config.plugin_config>`
//
// [#not-implemented-hide:]
MergePolicy merge_policy = 5 [(validate.rules).enum = {defined_only: true}];
}

message RouterPlugin {
oneof override {
option (validate.required) = true;

// [#not-implemented-hide:]
// Disable the filter for this particular vhost or route.
// If disabled is specified in multiple per-filter-configs, the most specific one will be used.
bool disabled = 1 [(validate.rules).bool = {const: true}];

// The config field is used for setting per-route and per-virtualhost plugin config.
google.protobuf.Any config = 2;
}
}

message ConfigsPerRoute {
// Configuration of the Go plugin at the per-router or per-virtualhost level,
// keyed on the :ref:`plugin_name <envoy_v3_api_field_extensions.filters.http.golang.v3alpha.Config.plugin_name>`
// of the Go plugin.
//
map<string, RouterPlugin> plugins_config = 1;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
syntax = "proto3";

package envoy.extensions.filters.http.language.v3alpha;

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

option java_package = "io.envoyproxy.envoy.extensions.filters.http.language.v3alpha";
option java_outer_classname = "LanguageProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/filters/http/language/v3alpha";
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Language]
// Language :ref:`configuration overview <config_http_filters_language>`.
// [#extension: envoy.filters.http.language]

// Language detection filter config.
message Language {
// The default language to be used as a fallback.
// The value will be included in the list of the supported languages.
//
// See https://unicode-org.github.io/icu/userguide/locale/
string default_language = 1 [(validate.rules).string = {min_len: 2}];

// The set of supported languages. There is no order priority.
// The order will be determined by the Accept-Language header priority list
// of the client.
//
// See https://unicode-org.github.io/icu/userguide/locale/
repeated string supported_languages = 2 [(validate.rules).repeated = {
min_items: 1
unique: true
items {string {min_len: 2}}
}];

// If the x-language header is altered, clear the route cache for the current request.
// This should be set if the route configuration may depend on the x-language header.
// Otherwise it should be unset to avoid the performance cost of route recalculation.
bool clear_route_cache = 3;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
syntax = "proto3";

package envoy.extensions.filters.http.squash.v3;

import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";

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

option java_package = "io.envoyproxy.envoy.extensions.filters.http.squash.v3";
option java_outer_classname = "SquashProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/contrib/envoy/extensions/filters/http/squash/v3;squashv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;

// [#protodoc-title: Squash]
// Squash :ref:`configuration overview <config_http_filters_squash>`.
// [#extension: envoy.filters.http.squash]

// [#next-free-field: 6]
message Squash {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.http.squash.v2.Squash";

// The name of the cluster that hosts the Squash server.
string cluster = 1 [(validate.rules).string = {min_len: 1}];

// When the filter requests the Squash server to create a DebugAttachment, it will use this
// structure as template for the body of the request. It can contain reference to environment
// variables in the form of '{{ ENV_VAR_NAME }}'. These can be used to provide the Squash server
// with more information to find the process to attach the debugger to. For example, in a
// Istio/k8s environment, this will contain information on the pod:
//
// .. code-block:: json
//
// {
// "spec": {
// "attachment": {
// "pod": "{{ POD_NAME }}",
// "namespace": "{{ POD_NAMESPACE }}"
// },
// "match_request": true
// }
// }
//
// (where POD_NAME, POD_NAMESPACE are configured in the pod via the Downward API)
google.protobuf.Struct attachment_template = 2;

// The timeout for individual requests sent to the Squash cluster. Defaults to 1 second.
google.protobuf.Duration request_timeout = 3;

// The total timeout Squash will delay a request and wait for it to be attached. Defaults to 60
// seconds.
google.protobuf.Duration attachment_timeout = 4;

// Amount of time to poll for the status of the attachment object in the Squash server
// (to check if has been attached). Defaults to 1 second.
google.protobuf.Duration attachment_poll_period = 5;
}
Loading
Loading