v1alpha1

package
v0.0.0-...-6a781db Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Code generated by protoc-gen-deepcopy. DO NOT EDIT.

Code generated by protoc-gen-jsonshim. DO NOT EDIT.

Index

Constants

This section is empty.

Variables

View Source
var (
	PluginPhase_name = map[int32]string{
		0: "UNSPECIFIED_PHASE",
		1: "AUTHN",
		2: "AUTHZ",
		3: "STATS",
	}
	PluginPhase_value = map[string]int32{
		"UNSPECIFIED_PHASE": 0,
		"AUTHN":             1,
		"AUTHZ":             2,
		"STATS":             3,
	}
)

Enum value maps for PluginPhase.

View Source
var (
	PullPolicy_name = map[int32]string{
		0: "UNSPECIFIED_POLICY",
		1: "IfNotPresent",
		2: "Always",
	}
	PullPolicy_value = map[string]int32{
		"UNSPECIFIED_POLICY": 0,
		"IfNotPresent":       1,
		"Always":             2,
	}
)

Enum value maps for PullPolicy.

View Source
var (
	EnvValueSource_name = map[int32]string{
		0: "INLINE",
		1: "HOST",
	}
	EnvValueSource_value = map[string]int32{
		"INLINE": 0,
		"HOST":   1,
	}
)

Enum value maps for EnvValueSource.

View Source
var (
	WasmMarshaler   = &jsonpb.Marshaler{}
	WasmUnmarshaler = &jsonpb.Unmarshaler{AllowUnknownFields: true}
)
View Source
var File_extensions_v1alpha1_wasm_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type EnvValueSource

type EnvValueSource int32
const (
	// Explicitly given key-value pairs to be injected to this VM
	EnvValueSource_INLINE EnvValueSource = 0
	// *Istio-proxy's* environment variables exposed to this VM.
	EnvValueSource_HOST EnvValueSource = 1
)

func (EnvValueSource) Descriptor

func (EnvValueSource) Enum

func (x EnvValueSource) Enum() *EnvValueSource

func (EnvValueSource) EnumDescriptor deprecated

func (EnvValueSource) EnumDescriptor() ([]byte, []int)

Deprecated: Use EnvValueSource.Descriptor instead.

func (EnvValueSource) Number

func (EnvValueSource) String

func (x EnvValueSource) String() string

func (EnvValueSource) Type

type EnvVar

type EnvVar struct {

	// Required
	// Name of the environment variable. Must be a C_IDENTIFIER.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required
	// Source for the environment variable's value.
	ValueFrom EnvValueSource `` /* 135-byte string literal not displayed */
	// Value for the environment variable.
	// Note that if `value_from` is `HOST`, it will be ignored.
	// Defaults to "".
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*EnvVar) DeepCopy

func (in *EnvVar) DeepCopy() *EnvVar

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar. Required by controller-gen.

func (*EnvVar) DeepCopyInterface

func (in *EnvVar) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar. Required by controller-gen.

func (*EnvVar) DeepCopyInto

func (in *EnvVar) DeepCopyInto(out *EnvVar)

DeepCopyInto supports using EnvVar within kubernetes types, where deepcopy-gen is used.

func (*EnvVar) Descriptor deprecated

func (*EnvVar) Descriptor() ([]byte, []int)

Deprecated: Use EnvVar.ProtoReflect.Descriptor instead.

func (*EnvVar) GetName

func (x *EnvVar) GetName() string

func (*EnvVar) GetValue

func (x *EnvVar) GetValue() string

func (*EnvVar) GetValueFrom

func (x *EnvVar) GetValueFrom() EnvValueSource

func (*EnvVar) MarshalJSON

func (this *EnvVar) MarshalJSON() ([]byte, error)

MarshalJSON is a custom marshaler for EnvVar

func (*EnvVar) ProtoMessage

func (*EnvVar) ProtoMessage()

func (*EnvVar) ProtoReflect

func (x *EnvVar) ProtoReflect() protoreflect.Message

func (*EnvVar) Reset

func (x *EnvVar) Reset()

func (*EnvVar) String

func (x *EnvVar) String() string

func (*EnvVar) UnmarshalJSON

func (this *EnvVar) UnmarshalJSON(b []byte) error

UnmarshalJSON is a custom unmarshaler for EnvVar

type PluginPhase

type PluginPhase int32

The phase in the filter chain where the plugin will be injected.

const (
	// Control plane decides where to insert the plugin. This will generally
	// be at the end of the filter chain, right before the Router.
	// Do not specify `PluginPhase` if the plugin is independent of others.
	PluginPhase_UNSPECIFIED_PHASE PluginPhase = 0
	// Insert plugin before Istio authentication filters.
	PluginPhase_AUTHN PluginPhase = 1
	// Insert plugin before Istio authorization filters and after Istio authentication filters.
	PluginPhase_AUTHZ PluginPhase = 2
	// Insert plugin before Istio stats filters and after Istio authorization filters.
	PluginPhase_STATS PluginPhase = 3
)

func (PluginPhase) Descriptor

func (PluginPhase) Enum

func (x PluginPhase) Enum() *PluginPhase

func (PluginPhase) EnumDescriptor deprecated

func (PluginPhase) EnumDescriptor() ([]byte, []int)

Deprecated: Use PluginPhase.Descriptor instead.

func (PluginPhase) Number

func (x PluginPhase) Number() protoreflect.EnumNumber

func (PluginPhase) String

func (x PluginPhase) String() string

func (PluginPhase) Type

type PullPolicy

type PullPolicy int32

The pull behaviour to be applied when fetching a Wam module, mirroring K8s behaviour.

<!-- buf:lint:ignore ENUM_VALUE_UPPER_SNAKE_CASE -->

const (
	// Defaults to IfNotPresent, except for OCI images with tag `latest`, for which
	// the default will be Always.
	PullPolicy_UNSPECIFIED_POLICY PullPolicy = 0
	// If an existing version of the image has been pulled before, that
	// will be used. If no version of the image is present locally, we
	// will pull the latest version.
	PullPolicy_IfNotPresent PullPolicy = 1
	// We will always pull the latest version of an image when changing
	// this plugin. Note that the change includes `metadata` field as well.
	PullPolicy_Always PullPolicy = 2
)

func (PullPolicy) Descriptor

func (PullPolicy) Descriptor() protoreflect.EnumDescriptor

func (PullPolicy) Enum

func (x PullPolicy) Enum() *PullPolicy

func (PullPolicy) EnumDescriptor deprecated

func (PullPolicy) EnumDescriptor() ([]byte, []int)

Deprecated: Use PullPolicy.Descriptor instead.

func (PullPolicy) Number

func (x PullPolicy) Number() protoreflect.EnumNumber

func (PullPolicy) String

func (x PullPolicy) String() string

func (PullPolicy) Type

type VmConfig

type VmConfig struct {

	// Specifies environment variables to be injected to this VM.
	// Note that if a key does not exist, it will be ignored.
	Env []*EnvVar `protobuf:"bytes,1,rep,name=env,proto3" json:"env,omitempty"`
	// contains filtered or unexported fields
}

Configuration for a Wasm VM. more details can be found [here](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/wasm/v3/wasm.proto#extensions-wasm-v3-vmconfig).

func (*VmConfig) DeepCopy

func (in *VmConfig) DeepCopy() *VmConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VmConfig. Required by controller-gen.

func (*VmConfig) DeepCopyInterface

func (in *VmConfig) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new VmConfig. Required by controller-gen.

func (*VmConfig) DeepCopyInto

func (in *VmConfig) DeepCopyInto(out *VmConfig)

DeepCopyInto supports using VmConfig within kubernetes types, where deepcopy-gen is used.

func (*VmConfig) Descriptor deprecated

func (*VmConfig) Descriptor() ([]byte, []int)

Deprecated: Use VmConfig.ProtoReflect.Descriptor instead.

func (*VmConfig) GetEnv

func (x *VmConfig) GetEnv() []*EnvVar

func (*VmConfig) MarshalJSON

func (this *VmConfig) MarshalJSON() ([]byte, error)

MarshalJSON is a custom marshaler for VmConfig

func (*VmConfig) ProtoMessage

func (*VmConfig) ProtoMessage()

func (*VmConfig) ProtoReflect

func (x *VmConfig) ProtoReflect() protoreflect.Message

func (*VmConfig) Reset

func (x *VmConfig) Reset()

func (*VmConfig) String

func (x *VmConfig) String() string

func (*VmConfig) UnmarshalJSON

func (this *VmConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON is a custom unmarshaler for VmConfig

type WasmPlugin

type WasmPlugin struct {

	// Criteria used to select the specific set of pods/VMs on which
	// this plugin configuration should be applied. If omitted, this
	// configuration will be applied to all workload instances in the same
	// namespace. If the `WasmPlugin` is present in the config root
	// namespace, it will be applied to all applicable workloads in any
	// namespace.
	Selector *v1beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
	// URL of a Wasm module or OCI container. If no scheme is present,
	// defaults to `oci://`, referencing an OCI image. Other valid schemes
	// are `file://` for referencing .wasm module files present locally
	// within the proxy container, and `http[s]://` for .wasm module files
	// hosted remotely.
	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	// SHA256 checksum that will be used to verify Wasm module or OCI container.
	// If the `url` field already references a SHA256 (using the `@sha256:`
	// notation), it must match the value of this field. If an OCI image is
	// referenced by tag and this field is set, its checksum will be verified
	// against the contents of this field after pulling.
	Sha256 string `protobuf:"bytes,3,opt,name=sha256,proto3" json:"sha256,omitempty"`
	// The pull behaviour to be applied when fetching Wasm module by either
	// OCI image or http/https. Only relevant when referencing Wasm module without
	// any digest, including the digest in OCI image URL or sha256 field in `vm_config`.
	// Defaults to IfNotPresent, except when an OCI image is referenced in the `url`
	// and the `latest` tag is used, in which case `Always` is the default,
	// mirroring K8s behaviour.
	ImagePullPolicy PullPolicy `` /* 151-byte string literal not displayed */
	// Credentials to use for OCI image pulling.
	// Name of a K8s Secret in the same namespace as the `WasmPlugin` that
	// contains a docker pull secret which is to be used to authenticate
	// against the registry when pulling the image.
	ImagePullSecret string `protobuf:"bytes,5,opt,name=image_pull_secret,json=imagePullSecret,proto3" json:"image_pull_secret,omitempty"`
	// $hide_from_docs
	// Public key that will be used to verify signatures of signed OCI images
	// or Wasm modules.
	//
	// At this moment, various ways for signing/verifying are emerging and being proposed.
	// We can observe two major streams for signing OCI images: Cosign from Sigstore and Notary,
	// which is used in Docker Content Trust.
	// In case of Wasm module, multiple approaches are still in discussion.
	//   - https://github.com/WebAssembly/design/issues/1413
	//   - https://github.com/wasm-signatures/design (various signing tools are enumerated)
	//
	// In addition, for each method for signing&verifying, we may need to consider to provide
	// additional data or configuration (e.g., key rolling, KMS, root certs, ...) as well.
	//
	// To deal with this situation, we need to elaborate more generic way to describe
	// how to sign and verify the image or wasm binary, and how to specify relevant data,
	// including this `verification_key`.
	//
	// Therefore, this field will not be implemented until the detailed design is established.
	// For the future use, just keep this field in proto and hide from documentation.
	VerificationKey string `protobuf:"bytes,6,opt,name=verification_key,json=verificationKey,proto3" json:"verification_key,omitempty"`
	// The configuration that will be passed on to the plugin.
	PluginConfig *_struct.Struct `protobuf:"bytes,7,opt,name=plugin_config,json=pluginConfig,proto3" json:"plugin_config,omitempty"`
	// The plugin name to be used in the Envoy configuration (used to be called
	// `rootID`). Some .wasm modules might require this value to select the Wasm
	// plugin to execute.
	PluginName string `protobuf:"bytes,8,opt,name=plugin_name,json=pluginName,proto3" json:"plugin_name,omitempty"`
	// Determines where in the filter chain this `WasmPlugin` is to be injected.
	Phase PluginPhase `protobuf:"varint,9,opt,name=phase,proto3,enum=istio.extensions.v1alpha1.PluginPhase" json:"phase,omitempty"`
	// Determines ordering of `WasmPlugins` in the same `phase`.
	// When multiple `WasmPlugins` are applied to the same workload in the
	// same `phase`, they will be applied by priority, in descending order.
	// If `priority` is not set, or two `WasmPlugins` exist with the same
	// value, the ordering will be deterministically derived from name and
	// namespace of the `WasmPlugins`. Defaults to `0`.
	Priority *wrappers.Int64Value `protobuf:"bytes,10,opt,name=priority,proto3" json:"priority,omitempty"`
	// Configuration for a Wasm VM.
	// more details can be found [here](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/wasm/v3/wasm.proto#extensions-wasm-v3-vmconfig).
	VmConfig *VmConfig `protobuf:"bytes,11,opt,name=vm_config,json=vmConfig,proto3" json:"vm_config,omitempty"`
	// $hide_from_docs
	// Hide this from doc until implementing this.
	//
	// Specifies the criteria to determine which traffic is passed to WasmPlugin.
	// If a traffic satisfies any of TrafficSelectors,
	// the traffic passes the WasmPlugin.
	Match []*WasmPlugin_TrafficSelector `protobuf:"bytes,12,rep,name=match,proto3" json:"match,omitempty"`
	// contains filtered or unexported fields
}

WasmPlugins provides a mechanism to extend the functionality provided by the Istio proxy through WebAssembly filters.

<!-- crd generation tags +cue-gen:WasmPlugin:groupName:extensions.istio.io +cue-gen:WasmPlugin:version:v1alpha1 +cue-gen:WasmPlugin:storageVersion +cue-gen:WasmPlugin:annotations:helm.sh/resource-policy=keep +cue-gen:WasmPlugin:labels:app=istio-pilot,chart=istio,heritage=Tiller,release=istio +cue-gen:WasmPlugin:subresource:status +cue-gen:WasmPlugin:scope:Namespaced +cue-gen:WasmPlugin:resource:categories=istio-io,extensions-istio-io +cue-gen:WasmPlugin:preserveUnknownFields:pluginConfig +cue-gen:WasmPlugin:printerColumn:name=Age,type=date,JSONPath=.metadata.creationTimestamp,description="CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" -->

<!-- go code generation tags +kubetype-gen +kubetype-gen:groupVersion=extensions.istio.io/v1alpha1 +genclient +k8s:deepcopy-gen=true -->

func (*WasmPlugin) DeepCopy

func (in *WasmPlugin) DeepCopy() *WasmPlugin

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WasmPlugin. Required by controller-gen.

func (*WasmPlugin) DeepCopyInterface

func (in *WasmPlugin) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new WasmPlugin. Required by controller-gen.

func (*WasmPlugin) DeepCopyInto

func (in *WasmPlugin) DeepCopyInto(out *WasmPlugin)

DeepCopyInto supports using WasmPlugin within kubernetes types, where deepcopy-gen is used.

func (*WasmPlugin) Descriptor deprecated

func (*WasmPlugin) Descriptor() ([]byte, []int)

Deprecated: Use WasmPlugin.ProtoReflect.Descriptor instead.

func (*WasmPlugin) GetImagePullPolicy

func (x *WasmPlugin) GetImagePullPolicy() PullPolicy

func (*WasmPlugin) GetImagePullSecret

func (x *WasmPlugin) GetImagePullSecret() string

func (*WasmPlugin) GetMatch

func (x *WasmPlugin) GetMatch() []*WasmPlugin_TrafficSelector

func (*WasmPlugin) GetPhase

func (x *WasmPlugin) GetPhase() PluginPhase

func (*WasmPlugin) GetPluginConfig

func (x *WasmPlugin) GetPluginConfig() *_struct.Struct

func (*WasmPlugin) GetPluginName

func (x *WasmPlugin) GetPluginName() string

func (*WasmPlugin) GetPriority

func (x *WasmPlugin) GetPriority() *wrappers.Int64Value

func (*WasmPlugin) GetSelector

func (x *WasmPlugin) GetSelector() *v1beta1.WorkloadSelector

func (*WasmPlugin) GetSha256

func (x *WasmPlugin) GetSha256() string

func (*WasmPlugin) GetUrl

func (x *WasmPlugin) GetUrl() string

func (*WasmPlugin) GetVerificationKey

func (x *WasmPlugin) GetVerificationKey() string

func (*WasmPlugin) GetVmConfig

func (x *WasmPlugin) GetVmConfig() *VmConfig

func (*WasmPlugin) MarshalJSON

func (this *WasmPlugin) MarshalJSON() ([]byte, error)

MarshalJSON is a custom marshaler for WasmPlugin

func (*WasmPlugin) ProtoMessage

func (*WasmPlugin) ProtoMessage()

func (*WasmPlugin) ProtoReflect

func (x *WasmPlugin) ProtoReflect() protoreflect.Message

func (*WasmPlugin) Reset

func (x *WasmPlugin) Reset()

func (*WasmPlugin) String

func (x *WasmPlugin) String() string

func (*WasmPlugin) UnmarshalJSON

func (this *WasmPlugin) UnmarshalJSON(b []byte) error

UnmarshalJSON is a custom unmarshaler for WasmPlugin

type WasmPlugin_TrafficSelector

type WasmPlugin_TrafficSelector struct {

	// $hide_from_docs
	// Hide this from the doc until implementing this.
	//
	// Criteria for selecting traffic by their direction.
	// Note that CLIENT and SERVER are analogous to INBOUND and OUTBOUND,
	// respectively.
	// For the gateway, the field should be CLIENT or CLIENT_AND_SERVER.
	// If not specified, the default value is CLIENT_AND_SERVER.
	Mode v1beta1.WorkloadMode `protobuf:"varint,1,opt,name=mode,proto3,enum=istio.type.v1beta1.WorkloadMode" json:"mode,omitempty"`
	// $hide_from_docs
	// Hide this from the doc until implementing this.
	//
	// Criteria for selecting traffic by their destination port.
	// More specifically, for the outbound traffic, the destination port would be
	// the port of the target service. On the other hand, for the inbound traffic,
	// the destiation port is the port bound by the server process in the same Pod.
	//
	// If one of the given `ports` is matched, this condition is evaluated to true.
	// If not specified, this condition is evaluated to true for any port.
	Ports []*v1beta1.PortSelector `protobuf:"bytes,2,rep,name=ports,proto3" json:"ports,omitempty"`
	// contains filtered or unexported fields
}

$hide_from_docs Hide this from doc until implementing this.

TrafficSelector provides a mechanism to select a specific traffic flow for which this Wasm Plugin will be enabled. When all the sub conditions in the TrafficSelector are satisfied, the traffic will be selected.

func (*WasmPlugin_TrafficSelector) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WasmPlugin_TrafficSelector. Required by controller-gen.

func (*WasmPlugin_TrafficSelector) DeepCopyInterface

func (in *WasmPlugin_TrafficSelector) DeepCopyInterface() interface{}

DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new WasmPlugin_TrafficSelector. Required by controller-gen.

func (*WasmPlugin_TrafficSelector) DeepCopyInto

DeepCopyInto supports using WasmPlugin_TrafficSelector within kubernetes types, where deepcopy-gen is used.

func (*WasmPlugin_TrafficSelector) Descriptor deprecated

func (*WasmPlugin_TrafficSelector) Descriptor() ([]byte, []int)

Deprecated: Use WasmPlugin_TrafficSelector.ProtoReflect.Descriptor instead.

func (*WasmPlugin_TrafficSelector) GetMode

func (*WasmPlugin_TrafficSelector) GetPorts

func (*WasmPlugin_TrafficSelector) MarshalJSON

func (this *WasmPlugin_TrafficSelector) MarshalJSON() ([]byte, error)

MarshalJSON is a custom marshaler for WasmPlugin_TrafficSelector

func (*WasmPlugin_TrafficSelector) ProtoMessage

func (*WasmPlugin_TrafficSelector) ProtoMessage()

func (*WasmPlugin_TrafficSelector) ProtoReflect

func (*WasmPlugin_TrafficSelector) Reset

func (x *WasmPlugin_TrafficSelector) Reset()

func (*WasmPlugin_TrafficSelector) String

func (x *WasmPlugin_TrafficSelector) String() string

func (*WasmPlugin_TrafficSelector) UnmarshalJSON

func (this *WasmPlugin_TrafficSelector) UnmarshalJSON(b []byte) error

UnmarshalJSON is a custom unmarshaler for WasmPlugin_TrafficSelector

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL