v1alpha1

package
v0.3.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group.

+kubebuilder:object:generate=true +groupName=config.gateway.envoyproxy.io

Index

Constants

View Source
const (
	// KindEnvoyGateway is the name of the EnvoyGateway kind.
	KindEnvoyGateway = "EnvoyGateway"
	// GatewayControllerName is the name of the GatewayClass controller.
	GatewayControllerName = "gateway.envoyproxy.io/gatewayclass-controller"
)
View Source
const (
	// DefaultEnvoyReplicas is the default number of Envoy replicas.
	DefaultEnvoyReplicas = 1
)
View Source
const (
	// KindEnvoyProxy is the name of the EnvoyProxy kind.
	KindEnvoyProxy = "EnvoyProxy"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "config.gateway.envoyproxy.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type EnvoyGateway

type EnvoyGateway struct {
	metav1.TypeMeta `json:",inline"`

	// EnvoyGatewaySpec defines the desired state of Envoy Gateway.
	EnvoyGatewaySpec `json:",inline"`
}

EnvoyGateway is the Schema for the envoygateways API.

func DefaultEnvoyGateway

func DefaultEnvoyGateway() *EnvoyGateway

DefaultEnvoyGateway returns a new EnvoyGateway with default configuration parameters.

func (*EnvoyGateway) DeepCopy

func (in *EnvoyGateway) DeepCopy() *EnvoyGateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGateway.

func (*EnvoyGateway) DeepCopyInto

func (in *EnvoyGateway) DeepCopyInto(out *EnvoyGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvoyGateway) DeepCopyObject

func (in *EnvoyGateway) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EnvoyGateway) GetProvider

func (e *EnvoyGateway) GetProvider() *Provider

GetProvider returns the Provider of EnvoyGateway or a default Provider if unspecified.

func (*EnvoyGateway) SetDefaults

func (e *EnvoyGateway) SetDefaults()

SetDefaults sets default EnvoyGateway configuration parameters.

type EnvoyGatewaySpec

type EnvoyGatewaySpec struct {
	// Gateway defines desired Gateway API specific configuration. If unset,
	// default configuration parameters will apply.
	//
	// +optional
	Gateway *Gateway `json:"gateway,omitempty"`

	// Provider defines the desired provider and provider-specific configuration.
	// If unspecified, the Kubernetes provider is used with default configuration
	// parameters.
	//
	// +optional
	Provider *Provider `json:"provider,omitempty"`

	// RateLimit defines the configuration associated with the Rate Limit service
	// deployed by Envoy Gateway required to implement the Global Rate limiting
	// functionality. The specific rate limit service used here is the reference
	// implementation in Envoy. For more details visit https://github.com/envoyproxy/ratelimit.
	// This configuration will not be needed to enable Local Rate limiitng.
	//
	// +optional
	RateLimit *RateLimit `json:"rateLimit,omitempty"`
}

EnvoyGatewaySpec defines the desired state of Envoy Gateway.

func (*EnvoyGatewaySpec) DeepCopy

func (in *EnvoyGatewaySpec) DeepCopy() *EnvoyGatewaySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewaySpec.

func (*EnvoyGatewaySpec) DeepCopyInto

func (in *EnvoyGatewaySpec) DeepCopyInto(out *EnvoyGatewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnvoyProxy

type EnvoyProxy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   EnvoyProxySpec   `json:"spec,omitempty"`
	Status EnvoyProxyStatus `json:"status,omitempty"`
}

EnvoyProxy is the Schema for the envoyproxies API

func (*EnvoyProxy) DeepCopy

func (in *EnvoyProxy) DeepCopy() *EnvoyProxy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxy.

func (*EnvoyProxy) DeepCopyInto

func (in *EnvoyProxy) DeepCopyInto(out *EnvoyProxy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvoyProxy) DeepCopyObject

func (in *EnvoyProxy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EnvoyProxy) GetProvider added in v0.3.0

func (e *EnvoyProxy) GetProvider() *ResourceProvider

GetProvider returns the ResourceProvider of EnvoyProxy or a default ResourceProvider if unspecified.

type EnvoyProxyList

type EnvoyProxyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EnvoyProxy `json:"items"`
}

EnvoyProxyList contains a list of EnvoyProxy

func (*EnvoyProxyList) DeepCopy

func (in *EnvoyProxyList) DeepCopy() *EnvoyProxyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyList.

func (*EnvoyProxyList) DeepCopyInto

func (in *EnvoyProxyList) DeepCopyInto(out *EnvoyProxyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvoyProxyList) DeepCopyObject

func (in *EnvoyProxyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EnvoyProxySpec

type EnvoyProxySpec struct {
	// Provider defines the desired resource provider and provider-specific configuration.
	// If unspecified, the "Kubernetes" resource provider is used with default configuration
	// parameters.
	//
	// +optional
	Provider *ResourceProvider `json:"provider,omitempty"`

	// Logging defines logging parameters for managed proxies. If unspecified,
	// default settings apply.
	//
	// +kubebuilder:default={level: {system: info}}
	Logging ProxyLogging `json:"logging,omitempty"`
}

EnvoyProxySpec defines the desired state of EnvoyProxy.

func (*EnvoyProxySpec) DeepCopy

func (in *EnvoyProxySpec) DeepCopy() *EnvoyProxySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxySpec.

func (*EnvoyProxySpec) DeepCopyInto

func (in *EnvoyProxySpec) DeepCopyInto(out *EnvoyProxySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnvoyProxyStatus

type EnvoyProxyStatus struct {
}

EnvoyProxyStatus defines the observed state of EnvoyProxy

func (*EnvoyProxyStatus) DeepCopy

func (in *EnvoyProxyStatus) DeepCopy() *EnvoyProxyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyStatus.

func (*EnvoyProxyStatus) DeepCopyInto

func (in *EnvoyProxyStatus) DeepCopyInto(out *EnvoyProxyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FileProvider

type FileProvider struct {
}

FileProvider defines configuration for the File provider.

func (*FileProvider) DeepCopy

func (in *FileProvider) DeepCopy() *FileProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileProvider.

func (*FileProvider) DeepCopyInto

func (in *FileProvider) DeepCopyInto(out *FileProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Gateway

type Gateway struct {
	// ControllerName defines the name of the Gateway API controller. If unspecified,
	// defaults to "gateway.envoyproxy.io/gatewayclass-controller". See the following
	// for additional details:
	//
	// https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.GatewayClass
	//
	// +optional
	ControllerName string `json:"controllerName,omitempty"`
}

Gateway defines the desired Gateway API configuration of Envoy Gateway.

func DefaultGateway

func DefaultGateway() *Gateway

DefaultGateway returns a new Gateway with default configuration parameters.

func (*Gateway) DeepCopy

func (in *Gateway) DeepCopy() *Gateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Gateway.

func (*Gateway) DeepCopyInto

func (in *Gateway) DeepCopyInto(out *Gateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesDeploymentSpec added in v0.3.0

type KubernetesDeploymentSpec struct {
	// Replicas is the number of desired pods. Defaults to 1.
	//
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
}

KubernetesDeploymentSpec defines the desired state of the Kubernetes deployment resource.

func DefaultKubernetesDeployment added in v0.3.0

func DefaultKubernetesDeployment() *KubernetesDeploymentSpec

DefaultKubernetesDeployment returns a new KubernetesDeploymentSpec with default settings.

func (*KubernetesDeploymentSpec) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDeploymentSpec.

func (*KubernetesDeploymentSpec) DeepCopyInto added in v0.3.0

func (in *KubernetesDeploymentSpec) DeepCopyInto(out *KubernetesDeploymentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesProvider

type KubernetesProvider struct {
}

KubernetesProvider defines configuration for the Kubernetes provider.

func (*KubernetesProvider) DeepCopy

func (in *KubernetesProvider) DeepCopy() *KubernetesProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesProvider.

func (*KubernetesProvider) DeepCopyInto

func (in *KubernetesProvider) DeepCopyInto(out *KubernetesProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesResourceProvider added in v0.3.0

type KubernetesResourceProvider struct {
	// EnvoyDeployment defines the desired state of the Envoy deployment resource.
	// If unspecified, default settings for the manged Envoy deployment resource
	// are applied.
	//
	// +optional
	EnvoyDeployment *KubernetesDeploymentSpec `json:"envoyDeployment,omitempty"`
}

KubernetesResourceProvider defines configuration for the Kubernetes resource provider.

func DefaultKubeResourceProvider added in v0.3.0

func DefaultKubeResourceProvider() *KubernetesResourceProvider

DefaultKubeResourceProvider returns a new KubernetesResourceProvider with default settings.

func (*KubernetesResourceProvider) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesResourceProvider.

func (*KubernetesResourceProvider) DeepCopyInto added in v0.3.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LogComponent added in v0.3.0

type LogComponent string

LogComponent defines a component that supports a configured logging level.

+kubebuilder:validation:Enum=system;upstream;http;connection;admin;client;filter;main;router;runtime

const (
	// LogComponentSystem defines the "system"-wide logging component. When specified,
	// all other logging components are ignored.
	LogComponentSystem LogComponent = "system"

	// LogComponentUpstream defines defines the "upstream" logging component.
	LogComponentUpstream LogComponent = "upstream"

	// LogComponentHTTP defines defines the "http" logging component.
	LogComponentHTTP LogComponent = "http"

	// LogComponentConnection defines defines the "connection" logging component.
	LogComponentConnection LogComponent = "connection"

	// LogComponentAdmin defines defines the "admin" logging component.
	LogComponentAdmin LogComponent = "admin"

	// LogComponentClient defines defines the "client" logging component.
	LogComponentClient LogComponent = "client"

	// LogComponentFilter defines defines the "filter" logging component.
	LogComponentFilter LogComponent = "filter"

	// LogComponentMain defines defines the "main" logging component.
	LogComponentMain LogComponent = "main"

	// LogComponentRouter defines defines the "router" logging component.
	LogComponentRouter LogComponent = "router"

	// LogComponentRuntime defines defines the "runtime" logging component.
	LogComponentRuntime LogComponent = "runtime"
)

type LogLevel added in v0.3.0

type LogLevel string

LogLevel defines a log level for system logs.

+kubebuilder:validation:Enum=debug;info;error

const (
	// LogLevelDebug defines the "debug" logging level.
	LogLevelDebug LogLevel = "debug"

	// LogLevelInfo defines the "Info" logging level.
	LogLevelInfo LogLevel = "info"

	// LogLevelError defines the "Error" logging level.
	LogLevelError LogLevel = "error"
)

type Provider

type Provider struct {
	// Type is the type of provider to use. Supported types are:
	//
	//   * Kubernetes: A provider that provides runtime configuration via the Kubernetes API.
	//
	// +unionDiscriminator
	Type ProviderType `json:"type"`
	// Kubernetes defines the configuration of the Kubernetes provider. Kubernetes
	// provides runtime configuration via the Kubernetes API.
	//
	// +optional
	Kubernetes *KubernetesProvider `json:"kubernetes,omitempty"`

	// File defines the configuration of the File provider. File provides runtime
	// configuration defined by one or more files.
	//
	// +optional
	File *FileProvider `json:"file,omitempty"`
}

Provider defines the desired configuration of a provider. +union

func DefaultProvider

func DefaultProvider() *Provider

DefaultProvider returns a new Provider with default configuration parameters.

func (*Provider) DeepCopy

func (in *Provider) DeepCopy() *Provider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Provider.

func (*Provider) DeepCopyInto

func (in *Provider) DeepCopyInto(out *Provider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProviderType

type ProviderType string

ProviderType defines the types of providers supported by Envoy Gateway.

+kubebuilder:validation:Enum=Kubernetes

const (
	// ProviderTypeKubernetes defines the "Kubernetes" provider.
	ProviderTypeKubernetes ProviderType = "Kubernetes"

	// ProviderTypeFile defines the "File" provider.
	ProviderTypeFile ProviderType = "File"
)

type ProxyLogging added in v0.3.0

type ProxyLogging struct {
	// Level is a map of logging level per component, where the component is the key
	// and the log level is the value. If unspecified, defaults to "System: Info".
	//
	// +kubebuilder:default={system: info}
	Level map[LogComponent]LogLevel `json:"level,omitempty"`
}

ProxyLogging defines logging parameters for managed proxies.

func (*ProxyLogging) DeepCopy added in v0.3.0

func (in *ProxyLogging) DeepCopy() *ProxyLogging

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyLogging.

func (*ProxyLogging) DeepCopyInto added in v0.3.0

func (in *ProxyLogging) DeepCopyInto(out *ProxyLogging)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RateLimit added in v0.3.0

type RateLimit struct {
	// Backend holds the configuration associated with the
	// database backend used by the rate limit service to store
	// state associated with global ratelimiting.
	Backend RateLimitDatabaseBackend `json:"backend"`
}

RateLimit defines the configuration associated with the Rate Limit Service used for Global Rate Limiting.

func (*RateLimit) DeepCopy added in v0.3.0

func (in *RateLimit) DeepCopy() *RateLimit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimit.

func (*RateLimit) DeepCopyInto added in v0.3.0

func (in *RateLimit) DeepCopyInto(out *RateLimit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RateLimitDatabaseBackend added in v0.3.0

type RateLimitDatabaseBackend struct {
	// Type is the type of database backend to use. Supported types are:
	//	* Redis: Connects to a Redis database.
	//
	// +unionDiscriminator
	Type RateLimitDatabaseBackendType `json:"type"`
	// Redis defines the settings needed to connect to a Redis database.
	//
	// +optional
	Redis *RateLimitRedisSettings `json:"redis,omitempty"`
}

RateLimitDatabaseBackend defines the configuration associated with the database backend used by the rate limit service. +union

func (*RateLimitDatabaseBackend) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitDatabaseBackend.

func (*RateLimitDatabaseBackend) DeepCopyInto added in v0.3.0

func (in *RateLimitDatabaseBackend) DeepCopyInto(out *RateLimitDatabaseBackend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RateLimitDatabaseBackendType added in v0.3.0

type RateLimitDatabaseBackendType string

RateLimitDatabaseBackendType specifies the types of database backend to be used by the rate limit service. +kubebuilder:validation:Enum=Redis

const (
	// RedisBackendType uses a redis database for the rate limit service.
	RedisBackendType RateLimitDatabaseBackendType = "Redis"
)

type RateLimitRedisSettings added in v0.3.0

type RateLimitRedisSettings struct {
	// URL of the Redis Database.
	URL string `json:"url"`
}

RateLimitRedisSettings defines the configuration for connecting to a Redis database.

func (*RateLimitRedisSettings) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitRedisSettings.

func (*RateLimitRedisSettings) DeepCopyInto added in v0.3.0

func (in *RateLimitRedisSettings) DeepCopyInto(out *RateLimitRedisSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceProvider added in v0.3.0

type ResourceProvider struct {
	// Type is the type of resource provider to use. A resource provider provides
	// infrastructure resources for running the data plane, e.g. Envoy proxy, and
	// optional auxiliary control planes. Supported types are:
	//
	//   * Kubernetes: Provides infrastructure resources for running the data plane,
	//                 e.g. Envoy proxy.
	//
	// +unionDiscriminator
	Type ProviderType `json:"type"`
	// Kubernetes defines the desired state of the Kubernetes resource provider.
	// Kubernetes provides infrastructure resources for running the data plane,
	// e.g. Envoy proxy. If unspecified and type is "Kubernetes", default settings
	// for managed Kubernetes resources are applied.
	//
	// +optional
	Kubernetes *KubernetesResourceProvider `json:"kubernetes,omitempty"`
}

ResourceProvider defines the desired state of a resource provider. +union

func DefaultResourceProvider added in v0.3.0

func DefaultResourceProvider() *ResourceProvider

DefaultResourceProvider returns a new ResourceProvider with default settings.

func (*ResourceProvider) DeepCopy added in v0.3.0

func (in *ResourceProvider) DeepCopy() *ResourceProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceProvider.

func (*ResourceProvider) DeepCopyInto added in v0.3.0

func (in *ResourceProvider) DeepCopyInto(out *ResourceProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ResourceProvider) GetKubeResourceProvider added in v0.3.0

func (r *ResourceProvider) GetKubeResourceProvider() *KubernetesResourceProvider

GetKubeResourceProvider returns the KubernetesResourceProvider of ResourceProvider or a default KubernetesResourceProvider if unspecified. If ResourceProvider is not of type "Kubernetes", a nil KubernetesResourceProvider is returned.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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