Help us shape the future of Go! Take the 2026 Go Developer Survey

v1alpha1

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API schema definitions for the config.gateway.envoyproxy.io 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 (
	// DefaultDeploymentReplicas is the default number of deployment replicas.
	DefaultDeploymentReplicas = 1
	// DefaultDeploymentCPUResourceRequests for deployment cpu resource
	DefaultDeploymentCPUResourceRequests = "100m"
	// DefaultDeploymentMemoryResourceRequests for deployment memory resource
	DefaultDeploymentMemoryResourceRequests = "512Mi"
	// DefaultEnvoyProxyImage is the default image used by envoyproxy
	DefaultEnvoyProxyImage = "envoyproxy/envoy:v1.26-latest"
	// DefaultRateLimitImage is the default image used by ratelimit.
	DefaultRateLimitImage = "envoyproxy/ratelimit:542a6047"
)
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

func DefaultKubernetesContainerImage added in v0.4.0

func DefaultKubernetesContainerImage(image string) *string

DefaultKubernetesContainerImage returns the default envoyproxy image.

func DefaultKubernetesDeploymentReplicas added in v0.4.0

func DefaultKubernetesDeploymentReplicas() *int32

DefaultKubernetesDeploymentReplicas returns the default replica settings.

func DefaultResourceRequirements added in v0.4.0

func DefaultResourceRequirements() *corev1.ResourceRequirements

DefaultResourceRequirements returns a new ResourceRequirements with default settings.

Types

type EnvoyGateway

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

	// EnvoyGatewaySpec defines the desired state of EnvoyGateway.
	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) GetEnvoyGatewayProvider added in v0.4.0

func (e *EnvoyGateway) GetEnvoyGatewayProvider() *EnvoyGatewayProvider

GetEnvoyGatewayProvider returns the EnvoyGatewayProvider of EnvoyGateway or a default EnvoyGatewayProvider if unspecified.

func (*EnvoyGateway) SetEnvoyGatewayDefaults added in v0.4.0

func (e *EnvoyGateway) SetEnvoyGatewayDefaults()

SetEnvoyGatewayDefaults sets default EnvoyGateway configuration parameters.

type EnvoyGatewayFileProvider added in v0.4.0

type EnvoyGatewayFileProvider struct {
}

EnvoyGatewayFileProvider defines configuration for the File provider.

func (*EnvoyGatewayFileProvider) DeepCopy added in v0.4.0

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

func (*EnvoyGatewayFileProvider) DeepCopyInto added in v0.4.0

func (in *EnvoyGatewayFileProvider) DeepCopyInto(out *EnvoyGatewayFileProvider)

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

type EnvoyGatewayKubernetesProvider added in v0.4.0

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

EnvoyGatewayKubernetesProvider defines configuration for the Kubernetes provider.

func DefaultEnvoyGatewayKubeProvider added in v0.4.0

func DefaultEnvoyGatewayKubeProvider() *EnvoyGatewayKubernetesProvider

DefaultEnvoyGatewayKubeProvider returns a new EnvoyGatewayKubernetesProvider with default settings.

func (*EnvoyGatewayKubernetesProvider) DeepCopy added in v0.4.0

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

func (*EnvoyGatewayKubernetesProvider) DeepCopyInto added in v0.4.0

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

type EnvoyGatewayProvider added in v0.4.0

type EnvoyGatewayProvider struct {
	// Type is the type of provider to use. Supported types are "Kubernetes".
	//
	// +unionDiscriminator
	Type ProviderType `json:"type"`

	// Kubernetes defines the configuration of the Kubernetes provider. Kubernetes
	// provides runtime configuration via the Kubernetes API.
	//
	// +optional
	Kubernetes *EnvoyGatewayKubernetesProvider `json:"kubernetes,omitempty"`

	// File defines the configuration of the File provider. File provides runtime
	// configuration defined by one or more files. This type is not implemented
	// until https://github.com/envoyproxy/gateway/issues/1001 is fixed.
	//
	// +optional
	File *EnvoyGatewayFileProvider `json:"file,omitempty"`
}

EnvoyGatewayProvider defines the desired configuration of a provider. +union

func DefaultEnvoyGatewayProvider added in v0.4.0

func DefaultEnvoyGatewayProvider() *EnvoyGatewayProvider

DefaultEnvoyGatewayProvider returns a new EnvoyGatewayProvider with default configuration parameters.

func (*EnvoyGatewayProvider) DeepCopy added in v0.4.0

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

func (*EnvoyGatewayProvider) DeepCopyInto added in v0.4.0

func (in *EnvoyGatewayProvider) DeepCopyInto(out *EnvoyGatewayProvider)

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

func (*EnvoyGatewayProvider) GetEnvoyGatewayKubeProvider added in v0.4.0

func (r *EnvoyGatewayProvider) GetEnvoyGatewayKubeProvider() *EnvoyGatewayKubernetesProvider

GetEnvoyGatewayKubeProvider returns the EnvoyGatewayKubernetesProvider of Provider or a default EnvoyGatewayKubernetesProvider if unspecified. If EnvoyGatewayProvider is not of type "Kubernetes", a nil EnvoyGatewayKubernetesProvider is returned.

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 *EnvoyGatewayProvider `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 is unneeded for "Local" rate limiting.
	//
	// +optional
	RateLimit *RateLimit `json:"rateLimit,omitempty"`

	// Extension defines an extension to register for the Envoy Gateway Control Plane.
	//
	// +optional
	Extension *Extension `json:"extension,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"`

	// EnvoyProxySpec defines the desired state of EnvoyProxy.
	Spec EnvoyProxySpec `json:"spec,omitempty"`
	// EnvoyProxyStatus defines the actual state of EnvoyProxy.
	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) GetEnvoyProxyProvider added in v0.4.0

func (e *EnvoyProxy) GetEnvoyProxyProvider() *EnvoyProxyProvider

GetEnvoyProxyProvider returns the EnvoyProxyProvider of EnvoyProxy or a default EnvoyProxyProvider if unspecified.

func (*EnvoyProxy) Validate added in v0.4.0

func (e *EnvoyProxy) Validate() error

Validate validates the provided EnvoyProxy.

type EnvoyProxyKubernetesProvider added in v0.4.0

type EnvoyProxyKubernetesProvider 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"`

	// EnvoyService defines the desired state of the Envoy service resource.
	// If unspecified, default settings for the manged Envoy service resource
	// are applied.
	//
	// +optional
	EnvoyService *KubernetesServiceSpec `json:"envoyService,omitempty"`
}

EnvoyProxyKubernetesProvider defines configuration for the Kubernetes resource provider.

func DefaultEnvoyProxyKubeProvider added in v0.4.0

func DefaultEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider

DefaultEnvoyProxyKubeProvider returns a new EnvoyProxyKubernetesProvider with default settings.

func (*EnvoyProxyKubernetesProvider) DeepCopy added in v0.4.0

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

func (*EnvoyProxyKubernetesProvider) DeepCopyInto added in v0.4.0

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

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 EnvoyProxyProvider added in v0.4.0

type EnvoyProxyProvider 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".
	//
	// +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 *EnvoyProxyKubernetesProvider `json:"kubernetes,omitempty"`
}

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

func DefaultEnvoyProxyProvider added in v0.4.0

func DefaultEnvoyProxyProvider() *EnvoyProxyProvider

DefaultEnvoyProxyProvider returns a new EnvoyProxyProvider with default settings.

func (*EnvoyProxyProvider) DeepCopy added in v0.4.0

func (in *EnvoyProxyProvider) DeepCopy() *EnvoyProxyProvider

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

func (*EnvoyProxyProvider) DeepCopyInto added in v0.4.0

func (in *EnvoyProxyProvider) DeepCopyInto(out *EnvoyProxyProvider)

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

func (*EnvoyProxyProvider) GetEnvoyProxyKubeProvider added in v0.4.0

func (r *EnvoyProxyProvider) GetEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider

GetEnvoyProxyKubeProvider returns the EnvoyProxyKubernetesProvider of EnvoyProxyProvider or a default EnvoyProxyKubernetesProvider if unspecified. If EnvoyProxyProvider is not of type "Kubernetes", a nil EnvoyProxyKubernetesProvider is returned.

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 *EnvoyProxyProvider `json:"provider,omitempty"`

	// Logging defines logging parameters for managed proxies. If unspecified,
	// default settings apply. This type is not implemented until
	// https://github.com/envoyproxy/gateway/issues/280 is fixed.
	//
	// +kubebuilder:default={level: {system: info}}
	Logging ProxyLogging `json:"logging,omitempty"`

	// Bootstrap defines the Envoy Bootstrap as a YAML string.
	// Visit https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/bootstrap/v3/bootstrap.proto#envoy-v3-api-msg-config-bootstrap-v3-bootstrap
	// to learn more about the syntax.
	// If set, this is the Bootstrap configuration used for the managed Envoy Proxy fleet instead of the default Bootstrap configuration
	// set by Envoy Gateway.
	// Some fields within the Bootstrap that are required to communicate with the xDS Server (Envoy Gateway) and receive xDS resources
	// from it are not configurable and will result in the `EnvoyProxy` resource being rejected.
	// Backward compatibility across minor versions is not guaranteed.
	// We strongly recommend using `egctl x translate` to generate a `EnvoyProxy` resource with the `Bootstrap` field set to the default
	// Bootstrap configuration used. You can edit this configuration, and rerun `egctl x translate` to ensure there are no validation errors.
	//
	// +optional
	Bootstrap *string `json:"bootstrap,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. This type is not implemented until https://github.com/envoyproxy/gateway/issues/1007 is fixed.

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 Extension added in v0.4.0

type Extension struct {
	// Resources defines the set of K8s resources the extension will handle.
	//
	// +optional
	Resources []GroupVersionKind `json:"resources,omitempty"`

	// Hooks defines the set of hooks the extension supports
	//
	// +kubebuilder:validation:Required
	Hooks *ExtensionHooks `json:"hooks,omitempty"`

	// Service defines the configuration of the extension service that the Envoy
	// Gateway Control Plane will call through extension hooks.
	//
	// +kubebuilder:validation:Required
	Service *ExtensionService `json:"service,omitempty"`
}

Extension defines the configuration for registering an extension to the Envoy Gateway control plane.

func (*Extension) DeepCopy added in v0.4.0

func (in *Extension) DeepCopy() *Extension

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

func (*Extension) DeepCopyInto added in v0.4.0

func (in *Extension) DeepCopyInto(out *Extension)

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

type ExtensionHooks added in v0.4.0

type ExtensionHooks struct {
	// XDSTranslator defines all the supported extension hooks for the xds-translator runner
	XDSTranslator *XDSTranslatorHooks `json:"xdsTranslator,omitempty"`
}

ExtensionHooks defines extension hooks across all supported runners

func (*ExtensionHooks) DeepCopy added in v0.4.0

func (in *ExtensionHooks) DeepCopy() *ExtensionHooks

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

func (*ExtensionHooks) DeepCopyInto added in v0.4.0

func (in *ExtensionHooks) DeepCopyInto(out *ExtensionHooks)

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

type ExtensionService added in v0.4.0

type ExtensionService struct {
	// Host define the extension service hostname.
	Host string `json:"host"`

	// Port defines the port the extension service is exposed on.
	//
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=80
	Port int32 `json:"port,omitempty"`

	// TLS defines TLS configuration for communication between Envoy Gateway and
	// the extension service.
	//
	// +optional
	TLS *ExtensionTLS `json:"tls,omitempty"`
}

ExtensionService defines the configuration for connecting to a registered extension service.

func (*ExtensionService) DeepCopy added in v0.4.0

func (in *ExtensionService) DeepCopy() *ExtensionService

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

func (*ExtensionService) DeepCopyInto added in v0.4.0

func (in *ExtensionService) DeepCopyInto(out *ExtensionService)

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

type ExtensionTLS added in v0.4.0

type ExtensionTLS struct {
	// CertificateRef contains a references to objects (Kubernetes objects or otherwise) that
	// contains a TLS certificate and private keys. These certificates are used to
	// establish a TLS handshake to the extension server.
	//
	// CertificateRef can only reference a Kubernetes Secret at this time.
	//
	// +kubebuilder:validation:Required
	CertificateRef gwapiv1b1.SecretObjectReference `json:"certificateRef"`
}

ExtensionTLS defines the TLS configuration when connecting to an extension service

func (*ExtensionTLS) DeepCopy added in v0.4.0

func (in *ExtensionTLS) DeepCopy() *ExtensionTLS

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

func (*ExtensionTLS) DeepCopyInto added in v0.4.0

func (in *ExtensionTLS) DeepCopyInto(out *ExtensionTLS)

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 GroupVersionKind added in v0.4.0

type GroupVersionKind struct {
	Group   string `json:"group"`
	Version string `json:"version"`
	Kind    string `json:"kind"`
}

GroupVersionKind unambiguously identifies a Kind. It can be converted to k8s.io/apimachinery/pkg/runtime/schema.GroupVersionKind

func (*GroupVersionKind) DeepCopy added in v0.4.0

func (in *GroupVersionKind) DeepCopy() *GroupVersionKind

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

func (*GroupVersionKind) DeepCopyInto added in v0.4.0

func (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind)

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

type KubernetesContainerSpec added in v0.4.0

type KubernetesContainerSpec struct {
	// Resources required by this container.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	//
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// SecurityContext defines the security options the container should be run with.
	// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	//
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`

	// Image specifies the EnvoyProxy container image to be used, instead of the default image.
	//
	// +optional
	Image *string `json:"image,omitempty"`
}

KubernetesContainerSpec defines the desired state of the Kubernetes container resource.

func DefaultKubernetesContainer added in v0.4.0

func DefaultKubernetesContainer(image string) *KubernetesContainerSpec

DefaultKubernetesContainer returns a new KubernetesContainerSpec with default settings.

func (*KubernetesContainerSpec) DeepCopy added in v0.4.0

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

func (*KubernetesContainerSpec) DeepCopyInto added in v0.4.0

func (in *KubernetesContainerSpec) DeepCopyInto(out *KubernetesContainerSpec)

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"`

	// Pod defines the desired annotations and securityContext of container.
	//
	// +optional
	Pod *KubernetesPodSpec `json:"pod,omitempty"`

	// Container defines the resources and securityContext of container.
	//
	// +optional
	Container *KubernetesContainerSpec `json:"container,omitempty"`
}

KubernetesDeploymentSpec defines the desired state of the Kubernetes deployment resource.

func DefaultKubernetesDeployment added in v0.3.0

func DefaultKubernetesDeployment(image string) *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 KubernetesPodSpec added in v0.4.0

type KubernetesPodSpec struct {
	// Annotations are the annotations that should be appended to the pods.
	// By default, no pod annotations are appended.
	//
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// SecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	//
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
}

KubernetesPodSpec defines the desired state of the Kubernetes pod resource.

func DefaultKubernetesPod added in v0.4.0

func DefaultKubernetesPod() *KubernetesPodSpec

DefaultKubernetesPod returns a new KubernetesPodSpec with default settings.

func (*KubernetesPodSpec) DeepCopy added in v0.4.0

func (in *KubernetesPodSpec) DeepCopy() *KubernetesPodSpec

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

func (*KubernetesPodSpec) DeepCopyInto added in v0.4.0

func (in *KubernetesPodSpec) DeepCopyInto(out *KubernetesPodSpec)

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

type KubernetesServiceSpec added in v0.4.0

type KubernetesServiceSpec struct {
	// Annotations that should be appended to the service.
	// By default, no annotations are appended.
	//
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Type determines how the Service is exposed. Defaults to LoadBalancer.
	// Valid options are ClusterIP and LoadBalancer.
	// "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it).
	// "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP.
	// +kubebuilder:default:="LoadBalancer"
	// +optional
	Type *ServiceType `json:"type,omitempty"`
}

KubernetesServiceSpec defines the desired state of the Kubernetes service resource.

func DefaultKubernetesService added in v0.4.0

func DefaultKubernetesService() *KubernetesServiceSpec

DefaultKubernetesService returns a new KubernetesServiceSpec with default settings.

func (*KubernetesServiceSpec) DeepCopy added in v0.4.0

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

func (*KubernetesServiceSpec) DeepCopyInto added in v0.4.0

func (in *KubernetesServiceSpec) DeepCopyInto(out *KubernetesServiceSpec)

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. This type is not implemented until https://github.com/envoyproxy/gateway/issues/280 is fixed. +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. This type is not implemented until https://github.com/envoyproxy/gateway/issues/280 is fixed. +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 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. This type is not implemented
	// until https://github.com/envoyproxy/gateway/issues/1001 is fixed.
	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. This type is not implemented until https://github.com/envoyproxy/gateway/issues/280 is fixed.

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 ServiceType added in v0.4.0

type ServiceType string

ServiceType string describes ingress methods for a service +enum +kubebuilder:validation:Enum=LoadBalancer;ClusterIP

const (
	// ServiceTypeLoadBalancer means a service will be exposed via an
	// external load balancer (if the cloud provider supports it).
	ServiceTypeLoadBalancer ServiceType = "LoadBalancer"

	// ServiceTypeClusterIP means a service will only be accessible inside the
	// cluster, via the cluster IP.
	ServiceTypeClusterIP ServiceType = "ClusterIP"
)

func DefaultKubernetesServiceType added in v0.4.0

func DefaultKubernetesServiceType() *ServiceType

DefaultKubernetesServiceType returns a new KubernetesServiceType with default settings.

func GetKubernetesServiceType added in v0.4.0

func GetKubernetesServiceType(serviceType ServiceType) *ServiceType

GetKubernetesServiceType returns the KubernetesServiceType pointer.

type XDSTranslatorHook added in v0.4.0

type XDSTranslatorHook string

XDSTranslatorHook defines the types of hooks that an Envoy Gateway extension may support for the xds-translator

+kubebuilder:validation:Enum=VirtualHost;Route;HTTPListener;Translation

const (
	XDSVirtualHost  XDSTranslatorHook = "VirtualHost"
	XDSRoute        XDSTranslatorHook = "Route"
	XDSHTTPListener XDSTranslatorHook = "HTTPListener"
	XDSTranslation  XDSTranslatorHook = "Translation"
)

type XDSTranslatorHooks added in v0.4.0

type XDSTranslatorHooks struct {
	Pre  []XDSTranslatorHook `json:"pre,omitempty"`
	Post []XDSTranslatorHook `json:"post,omitempty"`
}

XDSTranslatorHooks contains all the pre and post hooks for the xds-translator runner.

func (*XDSTranslatorHooks) DeepCopy added in v0.4.0

func (in *XDSTranslatorHooks) DeepCopy() *XDSTranslatorHooks

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

func (*XDSTranslatorHooks) DeepCopyInto added in v0.4.0

func (in *XDSTranslatorHooks) DeepCopyInto(out *XDSTranslatorHooks)

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

Jump to

Keyboard shortcuts

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