From 5570d1eab39ca5df060f9f313e1f6f98712e1512 Mon Sep 17 00:00:00 2001 From: "data-plane-api(CircleCI)" Date: Fri, 17 Jul 2020 18:30:44 +0000 Subject: [PATCH] network: add socket interface factory and config option (#11630) Add bootstrap config option that allows startup injection of a custom SocketInterface. Risk Level: Low Testing: n/a Docs Changes: n/a Release Notes: n/a Signed-off-by: Florin Coras Mirrored from https://github.com/envoyproxy/envoy @ 13da8f415c372e7fde3b0105f58f57348e84acb5 --- BUILD | 1 + envoy/config/bootstrap/v3/bootstrap.proto | 6 +++++- envoy/config/bootstrap/v4alpha/bootstrap.proto | 6 +++++- .../network/socket_interface/v3/BUILD | 9 +++++++++ .../v3/default_socket_interface.proto | 17 +++++++++++++++++ versioning/BUILD | 1 + 6 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 envoy/extensions/network/socket_interface/v3/BUILD create mode 100644 envoy/extensions/network/socket_interface/v3/default_socket_interface.proto diff --git a/BUILD b/BUILD index 3bbdd21a..9d4f802d 100644 --- a/BUILD +++ b/BUILD @@ -227,6 +227,7 @@ proto_library( "//envoy/extensions/internal_redirect/allow_listed_routes/v3:pkg", "//envoy/extensions/internal_redirect/previous_routes/v3:pkg", "//envoy/extensions/internal_redirect/safe_cross_scheme/v3:pkg", + "//envoy/extensions/network/socket_interface/v3:pkg", "//envoy/extensions/retry/host/omit_host_metadata/v3:pkg", "//envoy/extensions/retry/priority/previous_priorities/v3:pkg", "//envoy/extensions/transport_sockets/alts/v3:pkg", diff --git a/envoy/config/bootstrap/v3/bootstrap.proto b/envoy/config/bootstrap/v3/bootstrap.proto index 57a45544..27c59bfc 100644 --- a/envoy/config/bootstrap/v3/bootstrap.proto +++ b/envoy/config/bootstrap/v3/bootstrap.proto @@ -39,7 +39,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE; // ` for more detail. // Bootstrap :ref:`configuration overview `. -// [#next-free-field: 24] +// [#next-free-field: 25] message Bootstrap { option (udpa.annotations.versioning).previous_message_type = "envoy.config.bootstrap.v2.Bootstrap"; @@ -222,6 +222,10 @@ message Bootstrap { // other resolution fails. // [#not-implemented-hide:] core.v3.ConfigSource default_config_source = 23; + + // Optional overriding of default socket interface. The value must be the name of one of the + // socket interface factories initialized through a bootstrap extension + string default_socket_interface = 24; } // Administration interface :ref:`operations documentation diff --git a/envoy/config/bootstrap/v4alpha/bootstrap.proto b/envoy/config/bootstrap/v4alpha/bootstrap.proto index b5a4bef5..41de2a87 100644 --- a/envoy/config/bootstrap/v4alpha/bootstrap.proto +++ b/envoy/config/bootstrap/v4alpha/bootstrap.proto @@ -37,7 +37,7 @@ option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSIO // ` for more detail. // Bootstrap :ref:`configuration overview `. -// [#next-free-field: 24] +// [#next-free-field: 25] message Bootstrap { option (udpa.annotations.versioning).previous_message_type = "envoy.config.bootstrap.v3.Bootstrap"; @@ -213,6 +213,10 @@ message Bootstrap { // other resolution fails. // [#not-implemented-hide:] core.v4alpha.ConfigSource default_config_source = 23; + + // Optional overriding of default socket interface. The value must be the name of one of the + // socket interface factories initialized through a bootstrap extension + string default_socket_interface = 24; } // Administration interface :ref:`operations documentation diff --git a/envoy/extensions/network/socket_interface/v3/BUILD b/envoy/extensions/network/socket_interface/v3/BUILD new file mode 100644 index 00000000..ef3541eb --- /dev/null +++ b/envoy/extensions/network/socket_interface/v3/BUILD @@ -0,0 +1,9 @@ +# DO NOT EDIT. This file is generated by tools/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"], +) diff --git a/envoy/extensions/network/socket_interface/v3/default_socket_interface.proto b/envoy/extensions/network/socket_interface/v3/default_socket_interface.proto new file mode 100644 index 00000000..d2c747ec --- /dev/null +++ b/envoy/extensions/network/socket_interface/v3/default_socket_interface.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package envoy.extensions.network.socket_interface.v3; + +import "udpa/annotations/status.proto"; + +option java_package = "io.envoyproxy.envoy.extensions.network.socket_interface.v3"; +option java_outer_classname = "DefaultSocketInterfaceProto"; +option java_multiple_files = true; +option (udpa.annotations.file_status).package_version_status = ACTIVE; + +// [#protodoc-title: Default Socket Interface configuration] + +// Configuration for default socket interface that relies on OS dependent syscall to create +// sockets. +message DefaultSocketInterface { +} diff --git a/versioning/BUILD b/versioning/BUILD index 1d91b172..e00a0fbb 100644 --- a/versioning/BUILD +++ b/versioning/BUILD @@ -110,6 +110,7 @@ proto_library( "//envoy/extensions/internal_redirect/allow_listed_routes/v3:pkg", "//envoy/extensions/internal_redirect/previous_routes/v3:pkg", "//envoy/extensions/internal_redirect/safe_cross_scheme/v3:pkg", + "//envoy/extensions/network/socket_interface/v3:pkg", "//envoy/extensions/retry/host/omit_host_metadata/v3:pkg", "//envoy/extensions/retry/priority/previous_priorities/v3:pkg", "//envoy/extensions/transport_sockets/alts/v3:pkg",