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
- Variables
- type EnvoyGateway
- type EnvoyGatewaySpec
- type EnvoyProxy
- type EnvoyProxyList
- type EnvoyProxySpec
- type EnvoyProxyStatus
- type FileProvider
- type Gateway
- type KubernetesDeploymentSpec
- type KubernetesProvider
- type KubernetesResourceProvider
- type LogComponent
- type LogLevel
- type Provider
- type ProviderType
- type ProxyLogging
- type RateLimit
- type RateLimitDatabaseBackend
- type RateLimitDatabaseBackendType
- type RateLimitRedisSettings
- type ResourceProvider
Constants ¶
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" )
const (
// DefaultEnvoyReplicas is the default number of Envoy replicas.
DefaultEnvoyReplicas = 1
)
const (
// KindEnvoyProxy is the name of the EnvoyProxy kind.
KindEnvoyProxy = "EnvoyProxy"
)
Variables ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Gateway.
func (*Gateway) DeepCopyInto ¶
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
func (in *KubernetesDeploymentSpec) DeepCopy() *KubernetesDeploymentSpec
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
func (in *KubernetesResourceProvider) DeepCopy() *KubernetesResourceProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesResourceProvider.
func (*KubernetesResourceProvider) DeepCopyInto ¶ added in v0.3.0
func (in *KubernetesResourceProvider) DeepCopyInto(out *KubernetesResourceProvider)
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
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Provider.
func (*Provider) DeepCopyInto ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimit.
func (*RateLimit) DeepCopyInto ¶ added in v0.3.0
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
func (in *RateLimitDatabaseBackend) DeepCopy() *RateLimitDatabaseBackend
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
func (in *RateLimitRedisSettings) DeepCopy() *RateLimitRedisSettings
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.