Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
6bd8d54
Proxy-WASM configuration protos.
jplevyak Dec 6, 2019
65083ee
Address comments.
jplevyak Dec 12, 2019
0d63b3c
Address comments.
jplevyak Dec 12, 2019
e849767
Address comments.
jplevyak Dec 12, 2019
0391532
Fix annotation.
jplevyak Dec 13, 2019
bdfcdde
Address comments.
jplevyak Dec 18, 2019
51fcb4d
Fix format and add any.proto.
jplevyak Dec 23, 2019
9154661
Fix formatting.
jplevyak Dec 24, 2019
cbe7e25
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Dec 28, 2019
89b3b21
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Dec 30, 2019
de0f365
Apply formatting fixes.
jplevyak Dec 30, 2019
ac19fc4
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Dec 30, 2019
d7a45d5
Add doc.
jplevyak Dec 30, 2019
707b8e8
Add to toctree
jplevyak Dec 30, 2019
be8df3a
Merge remote-tracking branch 'envoyproxy/master' into wasm-upstream-p…
jplevyak Jan 13, 2020
99536f0
Update as per architecture document.
jplevyak Jan 14, 2020
0cfc5e7
Fix format.
jplevyak Jan 14, 2020
c156a02
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Jan 14, 2020
ba960dd
Fix format.
jplevyak Jan 14, 2020
7984aaf
Fix format.
jplevyak Jan 15, 2020
f687b18
Fix wrt architecture doc.
jplevyak Jan 15, 2020
96e1a6e
Update WRT Architecture document.
jplevyak Jan 16, 2020
ee152ea
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Jan 16, 2020
a776563
Fix format.
jplevyak Jan 16, 2020
680dcbe
Address comments.
jplevyak Jan 16, 2020
eda760c
Address comments.
jplevyak Jan 16, 2020
f8c1fb1
Address comments.
jplevyak Jan 16, 2020
3abf419
Address comments.
jplevyak Jan 16, 2020
494fa9c
Address comments.
jplevyak Jan 17, 2020
0573d68
Address comments.
jplevyak Jan 21, 2020
04302b2
Update comments.
jplevyak Jan 21, 2020
28d6e53
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Jan 21, 2020
6ad0fa1
Address comments.
jplevyak Jan 21, 2020
2936b69
Merge branch 'master' of https://github.com/envoyproxy/envoy into was…
jplevyak Jan 27, 2020
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: 2 additions & 0 deletions api/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ proto_library(
"//envoy/config/transport_socket/alts/v2alpha:pkg",
"//envoy/config/transport_socket/raw_buffer/v2:pkg",
"//envoy/config/transport_socket/tap/v2alpha:pkg",
"//envoy/config/wasm/v2alpha:pkg",
"//envoy/data/accesslog/v2:pkg",
"//envoy/data/cluster/v2alpha:pkg",
"//envoy/data/core/v2alpha:pkg",
Expand Down Expand Up @@ -209,6 +210,7 @@ proto_library(
"//envoy/extensions/transport_sockets/raw_buffer/v3:pkg",
"//envoy/extensions/transport_sockets/tap/v3:pkg",
"//envoy/extensions/transport_sockets/tls/v3:pkg",
"//envoy/extensions/wasm/v3:pkg",
"//envoy/service/accesslog/v3:pkg",
"//envoy/service/auth/v3:pkg",
"//envoy/service/cluster/v3:pkg",
Expand Down
1 change: 1 addition & 0 deletions api/docs/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ proto_library(
"//envoy/config/transport_socket/alts/v2alpha:pkg",
"//envoy/config/transport_socket/raw_buffer/v2:pkg",
"//envoy/config/transport_socket/tap/v2alpha:pkg",
"//envoy/config/wasm/v2alpha:pkg",
"//envoy/data/accesslog/v2:pkg",
"//envoy/data/cluster/v2alpha:pkg",
"//envoy/data/core/v2alpha:pkg",
Expand Down
12 changes: 12 additions & 0 deletions api/envoy/config/wasm/v2alpha/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# 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 = [
"//envoy/api/v2/core:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
],
)
81 changes: 81 additions & 0 deletions api/envoy/config/wasm/v2alpha/wasm.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
syntax = "proto3";
Comment thread
htuch marked this conversation as resolved.

package envoy.config.wasm.v2alpha;

import "envoy/api/v2/core/base.proto";

import "google/protobuf/any.proto";

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

option java_package = "io.envoyproxy.envoy.config.wasm.v2alpha";
option java_outer_classname = "WasmProto";
option java_multiple_files = true;
option (udpa.annotations.file_migrate).move_to_package = "envoy.extensions.wasm.v3";

// [#protodoc-title: Wasm service]

// Configuration for a Wasm VM.
// [#next-free-field: 6]
Comment thread
jplevyak marked this conversation as resolved.
// [#not-implemented-hide:] pending implementation.
message VmConfig {
// An ID which will be used along with a hash of the wasm code (or the name of the registered Null
// VM plugin) to determine which VM will be used for the plugin. All plugins which use the same
// *vm_id* and code will use the same VM. May be left blank. Sharing a VM between plugins can
// reduce memory utilization and make sharing of data easier which may have security implications.
// See ref: "TODO: add ref" for details.
string vm_id = 1;

// The Wasm runtime type (either "v8" or "null" for code compiled into Envoy).
string runtime = 2 [(validate.rules).string = {min_bytes: 1}];

// The Wasm code that Envoy will execute.
api.v2.core.AsyncDataSource code = 3;

// The Wasm configuration used in initialization of a new VM (proxy_on_start).
google.protobuf.Any configuration = 4;

// Allow the wasm file to include pre-compiled code on VMs which support it.
// Warning: this should only be enable for trusted sources as the precompiled code is not
// verified.
bool allow_precompiled = 5;
Comment thread
jplevyak marked this conversation as resolved.
}

// Base Configuration for Wasm Plugins e.g. filters and services.
// [#next-free-field: 6]
// [#not-implemented-hide:] pending implementation.
message PluginConfig {
// A unique name for a filters/services in a VM for use in identifying the filter/service if
// multiple filters/services are handled by the same *vm_id* and *group_name* and for
// logging/debugging.
string name = 1;

// A unique ID for a set of filters/services in a VM which will share a RootContext and Contexts
// if applicable (e.g. an Wasm HttpFilter and an Wasm AccessLog). If left blank, all
// filters/services with a blank group_name with the same *vm_id* will share Context(s).
string group_name = 2;

// Configuration for finding or starting VM.
oneof vm_config {
VmConfig inline_vm_config = 3;
// In the future add referential VM configurations.
}

// Filter/service configuration used to configure or reconfigure a plugin
// (proxy_on_configuration).
google.protobuf.Any configuration = 5;
}

// WasmService is configured as a built-in *envoy.wasm_service* :ref:`ServiceConfig
// <envoy_api_msg_config.wasm.v2alpha.WasmService>`. This opaque configuration will be used to
// create a Wasm Service.
// [#not-implemented-hide:] pending implementation.
message WasmService {
// General plugin configuration.
PluginConfig config = 1;

// If true, create a single VM rather than creating one VM per worker. Such a singleton can
// not be used with filters.
bool singleton = 2;
}
13 changes: 13 additions & 0 deletions api/envoy/extensions/wasm/v3/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 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 = [
"//envoy/config/core/v3:pkg",
"//envoy/config/wasm/v2alpha:pkg",
"@com_github_cncf_udpa//udpa/annotations:pkg",
],
)
89 changes: 89 additions & 0 deletions api/envoy/extensions/wasm/v3/wasm.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
syntax = "proto3";

package envoy.extensions.wasm.v3;

import "envoy/config/core/v3/base.proto";

import "google/protobuf/any.proto";

import "udpa/annotations/versioning.proto";

import "validate/validate.proto";

option java_package = "io.envoyproxy.envoy.extensions.wasm.v3";
option java_outer_classname = "WasmProto";
option java_multiple_files = true;

// [#protodoc-title: Wasm service]

// Configuration for a Wasm VM.
// [#next-free-field: 6]
// [#not-implemented-hide:] pending implementation.
message VmConfig {
option (udpa.annotations.versioning).previous_message_type = "envoy.config.wasm.v2alpha.VmConfig";

// An ID which will be used along with a hash of the wasm code (or the name of the registered Null
// VM plugin) to determine which VM will be used for the plugin. All plugins which use the same
// *vm_id* and code will use the same VM. May be left blank. Sharing a VM between plugins can
// reduce memory utilization and make sharing of data easier which may have security implications.
// See ref: "TODO: add ref" for details.
string vm_id = 1;

// The Wasm runtime type (either "v8" or "null" for code compiled into Envoy).
string runtime = 2 [(validate.rules).string = {min_bytes: 1}];

// The Wasm code that Envoy will execute.
config.core.v3.AsyncDataSource code = 3;

// The Wasm configuration used in initialization of a new VM (proxy_on_start).
google.protobuf.Any configuration = 4;

// Allow the wasm file to include pre-compiled code on VMs which support it.
// Warning: this should only be enable for trusted sources as the precompiled code is not
// verified.
bool allow_precompiled = 5;
}

// Base Configuration for Wasm Plugins e.g. filters and services.
// [#next-free-field: 6]
// [#not-implemented-hide:] pending implementation.
message PluginConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.wasm.v2alpha.PluginConfig";

// A unique name for a filters/services in a VM for use in identifying the filter/service if
// multiple filters/services are handled by the same *vm_id* and *group_name* and for
// logging/debugging.
string name = 1;

// A unique ID for a set of filters/services in a VM which will share a RootContext and Contexts
// if applicable (e.g. an Wasm HttpFilter and an Wasm AccessLog). If left blank, all
// filters/services with a blank group_name with the same *vm_id* will share Context(s).
string group_name = 2;

// Configuration for finding or starting VM.
oneof vm_config {
VmConfig inline_vm_config = 3;
// In the future add referential VM configurations.
}

// Filter/service configuration used to configure or reconfigure a plugin
// (proxy_on_configuration).
google.protobuf.Any configuration = 5;
}

// WasmService is configured as a built-in *envoy.wasm_service* :ref:`ServiceConfig
// <envoy_api_msg_extensions.wasm.v3.WasmService>`. This opaque configuration will be used to
// create a Wasm Service.
// [#not-implemented-hide:] pending implementation.
message WasmService {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.wasm.v2alpha.WasmService";

// General plugin configuration.
PluginConfig config = 1;

// If true, create a single VM rather than creating one VM per worker. Such a singleton can
// not be used with filters.
bool singleton = 2;
}
1 change: 1 addition & 0 deletions docs/root/api-v2/config/config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ Extensions
listener/listener
grpc_credential/grpc_credential
retry/retry
wasm/wasm
8 changes: 8 additions & 0 deletions docs/root/api-v2/config/wasm/wasm.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
WASM
====

.. toctree::
:glob:
:maxdepth: 2

v2alpha/*
2 changes: 2 additions & 0 deletions generated_api_shadow/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ proto_library(
"//envoy/config/transport_socket/alts/v2alpha:pkg",
"//envoy/config/transport_socket/raw_buffer/v2:pkg",
"//envoy/config/transport_socket/tap/v2alpha:pkg",
"//envoy/config/wasm/v2alpha:pkg",
"//envoy/data/accesslog/v2:pkg",
"//envoy/data/accesslog/v3:pkg",
"//envoy/data/cluster/v2alpha:pkg",
Expand Down Expand Up @@ -181,6 +182,7 @@ proto_library(
"//envoy/extensions/transport_sockets/raw_buffer/v3:pkg",
"//envoy/extensions/transport_sockets/tap/v3:pkg",
"//envoy/extensions/transport_sockets/tls/v3:pkg",
"//envoy/extensions/wasm/v3:pkg",
"//envoy/service/accesslog/v2:pkg",
"//envoy/service/accesslog/v3:pkg",
"//envoy/service/auth/v2:pkg",
Expand Down
12 changes: 12 additions & 0 deletions generated_api_shadow/envoy/config/wasm/v2alpha/BUILD

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

81 changes: 81 additions & 0 deletions generated_api_shadow/envoy/config/wasm/v2alpha/wasm.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions generated_api_shadow/envoy/extensions/wasm/v3/BUILD

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading