Documentation
¶
Index ¶
- Variables
- type CapabilityRestrictionConfig
- func (*CapabilityRestrictionConfig) Descriptor() ([]byte, []int)deprecated
- func (x *CapabilityRestrictionConfig) GetAllowedCapabilities() map[string]*SanitizationConfig
- func (*CapabilityRestrictionConfig) ProtoMessage()
- func (x *CapabilityRestrictionConfig) ProtoReflect() protoreflect.Message
- func (x *CapabilityRestrictionConfig) Reset()
- func (x *CapabilityRestrictionConfig) String() string
- type EnvironmentVariables
- func (*EnvironmentVariables) Descriptor() ([]byte, []int)deprecated
- func (x *EnvironmentVariables) GetHostEnvKeys() []string
- func (x *EnvironmentVariables) GetKeyValues() map[string]string
- func (*EnvironmentVariables) ProtoMessage()
- func (x *EnvironmentVariables) ProtoReflect() protoreflect.Message
- func (x *EnvironmentVariables) Reset()
- func (x *EnvironmentVariables) String() string
- type PluginConfig
- func (*PluginConfig) Descriptor() ([]byte, []int)deprecated
- func (x *PluginConfig) GetCapabilityRestrictionConfig() *CapabilityRestrictionConfig
- func (x *PluginConfig) GetConfiguration() *anypb.Any
- func (x *PluginConfig) GetFailOpen() bool
- func (x *PluginConfig) GetName() string
- func (x *PluginConfig) GetRootId() string
- func (m *PluginConfig) GetVm() isPluginConfig_Vm
- func (x *PluginConfig) GetVmConfig() *VmConfig
- func (*PluginConfig) ProtoMessage()
- func (x *PluginConfig) ProtoReflect() protoreflect.Message
- func (x *PluginConfig) Reset()
- func (x *PluginConfig) String() string
- type PluginConfig_VmConfig
- type SanitizationConfig
- type VmConfig
- func (*VmConfig) Descriptor() ([]byte, []int)deprecated
- func (x *VmConfig) GetAllowPrecompiled() bool
- func (x *VmConfig) GetCode() *v3.AsyncDataSource
- func (x *VmConfig) GetConfiguration() *anypb.Any
- func (x *VmConfig) GetEnvironmentVariables() *EnvironmentVariables
- func (x *VmConfig) GetNackOnCodeCacheMiss() bool
- func (x *VmConfig) GetRuntime() string
- func (x *VmConfig) GetVmId() string
- func (*VmConfig) ProtoMessage()
- func (x *VmConfig) ProtoReflect() protoreflect.Message
- func (x *VmConfig) Reset()
- func (x *VmConfig) String() string
- type WasmService
- func (*WasmService) Descriptor() ([]byte, []int)deprecated
- func (x *WasmService) GetConfig() *PluginConfig
- func (x *WasmService) GetSingleton() bool
- func (*WasmService) ProtoMessage()
- func (x *WasmService) ProtoReflect() protoreflect.Message
- func (x *WasmService) Reset()
- func (x *WasmService) String() string
Constants ¶
This section is empty.
Variables ¶
var File_envoy_extensions_wasm_v3_wasm_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type CapabilityRestrictionConfig ¶
type CapabilityRestrictionConfig struct {
// The Proxy-Wasm capabilities which will be allowed. Capabilities are mapped by
// name. The “SanitizationConfig“ which each capability maps to is currently unimplemented and ignored,
// and so should be left empty.
//
// The capability names are given in the
// `Proxy-Wasm ABI <https://github.com/proxy-wasm/spec/tree/master/abi-versions/vNEXT>`_.
// Additionally, the following WASI capabilities from
// `this list <https://github.com/WebAssembly/WASI/blob/master/phases/snapshot/docs.md#modules>`_
// are implemented and can be allowed:
// “fd_write“, “fd_read“, “fd_seek“, “fd_close“, “fd_fdstat_get“, “environ_get“, “environ_sizes_get“,
// “args_get“, “args_sizes_get“, “proc_exit“, “clock_time_get“, “random_get“.
AllowedCapabilities map[string]*SanitizationConfig `` /* 206-byte string literal not displayed */
// contains filtered or unexported fields
}
Configuration for restricting Proxy-Wasm capabilities available to modules.
func (*CapabilityRestrictionConfig) Descriptor
deprecated
func (*CapabilityRestrictionConfig) Descriptor() ([]byte, []int)
Deprecated: Use CapabilityRestrictionConfig.ProtoReflect.Descriptor instead.
func (*CapabilityRestrictionConfig) GetAllowedCapabilities ¶
func (x *CapabilityRestrictionConfig) GetAllowedCapabilities() map[string]*SanitizationConfig
func (*CapabilityRestrictionConfig) ProtoMessage ¶
func (*CapabilityRestrictionConfig) ProtoMessage()
func (*CapabilityRestrictionConfig) ProtoReflect ¶
func (x *CapabilityRestrictionConfig) ProtoReflect() protoreflect.Message
func (*CapabilityRestrictionConfig) Reset ¶
func (x *CapabilityRestrictionConfig) Reset()
func (*CapabilityRestrictionConfig) String ¶
func (x *CapabilityRestrictionConfig) String() string
type EnvironmentVariables ¶
type EnvironmentVariables struct {
// The keys of *Envoy's* environment variables exposed to this VM. In other words, if a key exists in Envoy's environment
// variables, then that key-value pair will be injected. Note that if a key does not exist, it will be ignored.
HostEnvKeys []string `protobuf:"bytes,1,rep,name=host_env_keys,json=hostEnvKeys,proto3" json:"host_env_keys,omitempty"`
// Explicitly given key-value pairs to be injected to this VM in the form of "KEY=VALUE".
KeyValues map[string]string `` /* 176-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*EnvironmentVariables) Descriptor
deprecated
func (*EnvironmentVariables) Descriptor() ([]byte, []int)
Deprecated: Use EnvironmentVariables.ProtoReflect.Descriptor instead.
func (*EnvironmentVariables) GetHostEnvKeys ¶
func (x *EnvironmentVariables) GetHostEnvKeys() []string
func (*EnvironmentVariables) GetKeyValues ¶
func (x *EnvironmentVariables) GetKeyValues() map[string]string
func (*EnvironmentVariables) ProtoMessage ¶
func (*EnvironmentVariables) ProtoMessage()
func (*EnvironmentVariables) ProtoReflect ¶
func (x *EnvironmentVariables) ProtoReflect() protoreflect.Message
func (*EnvironmentVariables) Reset ¶
func (x *EnvironmentVariables) Reset()
func (*EnvironmentVariables) String ¶
func (x *EnvironmentVariables) String() string
type PluginConfig ¶
type PluginConfig struct {
// 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 “root_id“ and for
// logging/debugging.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// 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 root_id with the same “vm_id“ will share Context(s).
RootId string `protobuf:"bytes,2,opt,name=root_id,json=rootId,proto3" json:"root_id,omitempty"`
// Configuration for finding or starting VM.
//
// Types that are assignable to Vm:
//
// *PluginConfig_VmConfig
Vm isPluginConfig_Vm `protobuf_oneof:"vm"`
// Filter/service configuration used to configure or reconfigure a plugin
// (“proxy_on_configure“).
// “google.protobuf.Struct“ is serialized as JSON before
// passing it to the plugin. “google.protobuf.BytesValue“ and
// “google.protobuf.StringValue“ are passed directly without the wrapper.
Configuration *anypb.Any `protobuf:"bytes,4,opt,name=configuration,proto3" json:"configuration,omitempty"`
// If there is a fatal error on the VM (e.g. exception, abort(), on_start or on_configure return false),
// then all plugins associated with the VM will either fail closed (by default), e.g. by returning an HTTP 503 error,
// or fail open (if 'fail_open' is set to true) by bypassing the filter. Note: when on_start or on_configure return false
// during xDS updates the xDS configuration will be rejected and when on_start or on_configuration return false on initial
// startup the proxy will not start.
FailOpen bool `protobuf:"varint,5,opt,name=fail_open,json=failOpen,proto3" json:"fail_open,omitempty"`
// Configuration for restricting Proxy-Wasm capabilities available to modules.
CapabilityRestrictionConfig *CapabilityRestrictionConfig `` /* 144-byte string literal not displayed */
// contains filtered or unexported fields
}
Base Configuration for Wasm Plugins e.g. filters and services. [#next-free-field: 7]
func (*PluginConfig) Descriptor
deprecated
func (*PluginConfig) Descriptor() ([]byte, []int)
Deprecated: Use PluginConfig.ProtoReflect.Descriptor instead.
func (*PluginConfig) GetCapabilityRestrictionConfig ¶
func (x *PluginConfig) GetCapabilityRestrictionConfig() *CapabilityRestrictionConfig
func (*PluginConfig) GetConfiguration ¶
func (x *PluginConfig) GetConfiguration() *anypb.Any
func (*PluginConfig) GetFailOpen ¶
func (x *PluginConfig) GetFailOpen() bool
func (*PluginConfig) GetName ¶
func (x *PluginConfig) GetName() string
func (*PluginConfig) GetRootId ¶
func (x *PluginConfig) GetRootId() string
func (*PluginConfig) GetVm ¶
func (m *PluginConfig) GetVm() isPluginConfig_Vm
func (*PluginConfig) GetVmConfig ¶
func (x *PluginConfig) GetVmConfig() *VmConfig
func (*PluginConfig) ProtoMessage ¶
func (*PluginConfig) ProtoMessage()
func (*PluginConfig) ProtoReflect ¶
func (x *PluginConfig) ProtoReflect() protoreflect.Message
func (*PluginConfig) Reset ¶
func (x *PluginConfig) Reset()
func (*PluginConfig) String ¶
func (x *PluginConfig) String() string
type PluginConfig_VmConfig ¶
type PluginConfig_VmConfig struct {
VmConfig *VmConfig `protobuf:"bytes,3,opt,name=vm_config,json=vmConfig,proto3,oneof"` // TODO: add referential VM configurations.
}
type SanitizationConfig ¶
type SanitizationConfig struct {
// contains filtered or unexported fields
}
Configuration for sanitization of inputs to an allowed capability.
NOTE: This is currently unimplemented.
func (*SanitizationConfig) Descriptor
deprecated
func (*SanitizationConfig) Descriptor() ([]byte, []int)
Deprecated: Use SanitizationConfig.ProtoReflect.Descriptor instead.
func (*SanitizationConfig) ProtoMessage ¶
func (*SanitizationConfig) ProtoMessage()
func (*SanitizationConfig) ProtoReflect ¶
func (x *SanitizationConfig) ProtoReflect() protoreflect.Message
func (*SanitizationConfig) Reset ¶
func (x *SanitizationConfig) Reset()
func (*SanitizationConfig) String ¶
func (x *SanitizationConfig) String() string
type VmConfig ¶
type VmConfig struct {
// 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.
// [#comment: TODO: add ref for details.]
VmId string `protobuf:"bytes,1,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
// The Wasm runtime type, defaults to the first available Wasm engine used at Envoy build-time.
// The priority to search for the available engine is: v8 -> wasmtime -> wamr.
// Available Wasm runtime types are registered as extensions. The following runtimes are included
// in Envoy code base:
//
// .. _extension_envoy.wasm.runtime.null:
//
// **envoy.wasm.runtime.null**: Null sandbox, the Wasm module must be compiled and linked into the
// Envoy binary. The registered name is given in the “code“ field as “inline_string“.
//
// .. _extension_envoy.wasm.runtime.v8:
//
// **envoy.wasm.runtime.v8**: `V8 <https://v8.dev/>`_-based WebAssembly runtime.
//
// .. _extension_envoy.wasm.runtime.wamr:
//
// **envoy.wasm.runtime.wamr**: `WAMR <https://github.com/bytecodealliance/wasm-micro-runtime/>`_-based WebAssembly runtime.
// This runtime is not enabled in the official build.
//
// .. _extension_envoy.wasm.runtime.wasmtime:
//
// **envoy.wasm.runtime.wasmtime**: `Wasmtime <https://wasmtime.dev/>`_-based WebAssembly runtime.
// This runtime is not enabled in the official build.
//
// [#extension-category: envoy.wasm.runtime]
Runtime string `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty"`
// The Wasm code that Envoy will execute.
Code *v3.AsyncDataSource `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`
// The Wasm configuration used in initialization of a new VM
// (proxy_on_start). “google.protobuf.Struct“ is serialized as JSON before
// passing it to the plugin. “google.protobuf.BytesValue“ and
// “google.protobuf.StringValue“ are passed directly without the wrapper.
Configuration *anypb.Any `protobuf:"bytes,4,opt,name=configuration,proto3" json:"configuration,omitempty"`
// 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.
AllowPrecompiled bool `protobuf:"varint,5,opt,name=allow_precompiled,json=allowPrecompiled,proto3" json:"allow_precompiled,omitempty"`
// If true and the code needs to be remotely fetched and it is not in the cache then NACK the configuration
// update and do a background fetch to fill the cache, otherwise fetch the code asynchronously and enter
// warming state.
NackOnCodeCacheMiss bool `protobuf:"varint,6,opt,name=nack_on_code_cache_miss,json=nackOnCodeCacheMiss,proto3" json:"nack_on_code_cache_miss,omitempty"`
// Specifies environment variables to be injected to this VM which will be available through
// WASI's “environ_get“ and “environ_get_sizes“ system calls. Note that these functions
// are generally called implicitly by your language's standard library. Therefore, you do not
// need to call them directly. You can access environment variables in the same way you would
// on native platforms.
// Warning: Envoy rejects the configuration if there's conflict of key space.
EnvironmentVariables *EnvironmentVariables `protobuf:"bytes,7,opt,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
// contains filtered or unexported fields
}
Configuration for a Wasm VM. [#next-free-field: 8]
func (*VmConfig) Descriptor
deprecated
func (*VmConfig) GetAllowPrecompiled ¶
func (*VmConfig) GetCode ¶
func (x *VmConfig) GetCode() *v3.AsyncDataSource
func (*VmConfig) GetConfiguration ¶
func (*VmConfig) GetEnvironmentVariables ¶
func (x *VmConfig) GetEnvironmentVariables() *EnvironmentVariables
func (*VmConfig) GetNackOnCodeCacheMiss ¶
func (*VmConfig) GetRuntime ¶
func (*VmConfig) ProtoMessage ¶
func (*VmConfig) ProtoMessage()
func (*VmConfig) ProtoReflect ¶
func (x *VmConfig) ProtoReflect() protoreflect.Message
type WasmService ¶
type WasmService struct {
// General plugin configuration.
Config *PluginConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
// If true, create a single VM rather than creating one VM per worker. Such a singleton can
// not be used with filters.
Singleton bool `protobuf:"varint,2,opt,name=singleton,proto3" json:"singleton,omitempty"`
// contains filtered or unexported fields
}
WasmService is configured as a built-in “envoy.wasm_service“ :ref:`WasmService <config_wasm_service>` This opaque configuration will be used to create a Wasm Service.
func (*WasmService) Descriptor
deprecated
func (*WasmService) Descriptor() ([]byte, []int)
Deprecated: Use WasmService.ProtoReflect.Descriptor instead.
func (*WasmService) GetConfig ¶
func (x *WasmService) GetConfig() *PluginConfig
func (*WasmService) GetSingleton ¶
func (x *WasmService) GetSingleton() bool
func (*WasmService) ProtoMessage ¶
func (*WasmService) ProtoMessage()
func (*WasmService) ProtoReflect ¶
func (x *WasmService) ProtoReflect() protoreflect.Message
func (*WasmService) Reset ¶
func (x *WasmService) Reset()
func (*WasmService) String ¶
func (x *WasmService) String() string