v1alpha1

package
v0.12.3 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2023 License: Apache-2.0 Imports: 18 Imported by: 9

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the envoy v1alpha1 API group +kubebuilder:object:generate=true +groupName=marin3r.3scale.net

Index

Constants

View Source
const (

	// CacheOutOfSyncCondition is a condition that indicates that the
	// envoyconfig cannot reach the desired status specified in the spec,
	// usually because the config in the spec is incorrect or has caused failures
	// in the envoy clients
	CacheOutOfSyncCondition string = "CacheOutOfSync"

	// RollbackFailedCondition indicates that the EnvoyConfig object
	// is not able to publish a config revision because all revisions are
	// tainted
	RollbackFailedCondition string = "RollbackFailed"

	//InSyncState indicates that a EnvoyConfig object has its resources spec
	// in sync with the xds server cache
	InSyncState string = "InSync"

	// RollbackState indicates that a EnvoyConfig object has performed a
	// rollback to a previous version of the resources spec
	RollbackState string = "Rollback"

	// RollbackFailedState indicates that there is no untainted revision that
	// can be pusblished in the xds server cache
	RollbackFailedState string = "RollbackFailed"
)
View Source
const (

	// RevisionPublishedCondition is a condition that marks the EnvoyConfigRevision object
	// as the one that should be published in the xds server cache
	RevisionPublishedCondition string = "RevisionPublished"

	// ResourcesInSyncCondition is a condition that other controllers can use to indicate
	// that the respurces need resync
	ResourcesInSyncCondition string = "ResourcesInSync"

	// RevisionTaintedCondition is a condition type that's used to report that this
	// problems have been observed with this revision and should not be published
	RevisionTaintedCondition string = "RevisionTainted"

	// EnvoyConfigRevisionFinalizer is the finalizer for EnvoyConfig objects
	EnvoyConfigRevisionFinalizer string = "finalizer.marin3r.3scale.net"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "marin3r.3scale.net", 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 Blueprint added in v0.12.0

type Blueprint string

Blueprint is an enum of the supported blueprints for generated resources

const (
	// TlsCertificate
	TlsCertificate Blueprint = "tlsCertificate"
	// TlsValidationContext
	TlsValidationContext Blueprint = "validationContext"
)

type ConfigRevisionRef

type ConfigRevisionRef struct {
	// Version is a hash of the EnvoyResources field
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Version string `json:"version"`
	// Ref is a reference to the EnvoyConfigRevision object that
	// holds the configuration matching the Version field.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	Ref corev1.ObjectReference `json:"ref"`
}

ConfigRevisionRef holds a reference to EnvoyConfigRevision object

func (*ConfigRevisionRef) DeepCopy

func (in *ConfigRevisionRef) DeepCopy() *ConfigRevisionRef

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

func (*ConfigRevisionRef) DeepCopyInto

func (in *ConfigRevisionRef) DeepCopyInto(out *ConfigRevisionRef)

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

type EnvoyConfig

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

	Spec   EnvoyConfigSpec   `json:"spec,omitempty"`
	Status EnvoyConfigStatus `json:"status,omitempty"`
}

EnvoyConfig holds the configuration for a given envoy nodeID. The spec of an EnvoyConfig object holds the Envoy resources that conform the desired configuration for the given nodeID and that the discovery service will send to any envoy client that identifies itself with that nodeID. +kubebuilder:subresource:status +kubebuilder:resource:path=envoyconfigs,scope=Namespaced,shortName=ec +kubebuilder:printcolumn:JSONPath=".spec.nodeID",name=Node ID,type=string +kubebuilder:printcolumn:JSONPath=".spec.envoyAPI",name=Envoy API,type=string +kubebuilder:printcolumn:JSONPath=".status.desiredVersion",name=Desired Version,type=string +kubebuilder:printcolumn:JSONPath=".status.publishedVersion",name=Published Version,type=string +kubebuilder:printcolumn:JSONPath=".status.cacheState",name=Cache State,type=string +operator-sdk:csv:customresourcedefinitions:displayName="EnvoyConfig" +operator-sdk:csv:customresourcedefinitions:resources={{EnvoyConfigRevision,v1alpha1}}

func (*EnvoyConfig) DeepCopy

func (in *EnvoyConfig) DeepCopy() *EnvoyConfig

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

func (*EnvoyConfig) DeepCopyInto

func (in *EnvoyConfig) DeepCopyInto(out *EnvoyConfig)

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

func (*EnvoyConfig) DeepCopyObject

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

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

func (*EnvoyConfig) GetEnvoyAPIVersion

func (ec *EnvoyConfig) GetEnvoyAPIVersion() envoy.APIVersion

GetEnvoyAPIVersion returns envoy's API version for the EnvoyConfigRevision

func (*EnvoyConfig) GetEnvoyResourcesVersion

func (ec *EnvoyConfig) GetEnvoyResourcesVersion() string

GetEnvoyResourcesVersion returns the hash of the resources in the spec which univoquely identifies the version of the resources.

func (*EnvoyConfig) GetSerialization

func (ec *EnvoyConfig) GetSerialization() envoy_serializer.Serialization

GetSerialization returns the encoding of the envoy resources.

func (*EnvoyConfig) SetupWebhookWithManager

func (r *EnvoyConfig) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*EnvoyConfig) Validate added in v0.12.0

func (r *EnvoyConfig) Validate() error

Validates the EnvoyConfig resource

func (*EnvoyConfig) ValidateCreate

func (r *EnvoyConfig) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*EnvoyConfig) ValidateDelete

func (r *EnvoyConfig) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*EnvoyConfig) ValidateEnvoyResources added in v0.12.0

func (r *EnvoyConfig) ValidateEnvoyResources() error

Validate EnvoyResources against schema

func (*EnvoyConfig) ValidateResources

func (r *EnvoyConfig) ValidateResources() error

Validate Envoy Resources against schema

func (*EnvoyConfig) ValidateUpdate

func (r *EnvoyConfig) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type EnvoyConfigList

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

EnvoyConfigList contains a list of EnvoyConfig

func (*EnvoyConfigList) DeepCopy

func (in *EnvoyConfigList) DeepCopy() *EnvoyConfigList

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

func (*EnvoyConfigList) DeepCopyInto

func (in *EnvoyConfigList) DeepCopyInto(out *EnvoyConfigList)

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

func (*EnvoyConfigList) DeepCopyObject

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

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

type EnvoyConfigRevision

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

	Spec   EnvoyConfigRevisionSpec   `json:"spec,omitempty"`
	Status EnvoyConfigRevisionStatus `json:"status,omitempty"`
}

EnvoyConfigRevision is an internal resource that stores a specific version of an EnvoyConfig resource. EnvoyConfigRevisions are automatically created and deleted by the EnvoyConfig controller and are not intended to be directly used. Use EnvoyConfig objects instead. +kubebuilder:subresource:status +kubebuilder:resource:path=envoyconfigrevisions,scope=Namespaced,shortName=ecr +kubebuilder:printcolumn:JSONPath=".spec.nodeID",name=Node ID,type=string +kubebuilder:printcolumn:JSONPath=".spec.envoyAPI",name=Envoy API,type=string +kubebuilder:printcolumn:JSONPath=".spec.version",name=Version,type=string +kubebuilder:printcolumn:JSONPath=".status.published",name=Published,type=boolean +kubebuilder:printcolumn:JSONPath=".metadata.creationTimestamp",name="Created At",type=string,format=date-time +kubebuilder:printcolumn:JSONPath=".status.lastPublishedAt",name="Last Published At",type=string,format=date-time +kubebuilder:printcolumn:JSONPath=".status.tainted",name=Tainted,type=boolean +operator-sdk:csv:customresourcedefinitions:displayName="EnvoyConfigRevision"

func (*EnvoyConfigRevision) DeepCopy

func (in *EnvoyConfigRevision) DeepCopy() *EnvoyConfigRevision

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

func (*EnvoyConfigRevision) DeepCopyInto

func (in *EnvoyConfigRevision) DeepCopyInto(out *EnvoyConfigRevision)

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

func (*EnvoyConfigRevision) DeepCopyObject

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

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

func (*EnvoyConfigRevision) GetEnvoyAPIVersion

func (ecr *EnvoyConfigRevision) GetEnvoyAPIVersion() envoy.APIVersion

GetEnvoyAPIVersion returns envoy's API version for the EnvoyConfigRevision

func (*EnvoyConfigRevision) GetSerialization

func (ecr *EnvoyConfigRevision) GetSerialization() envoy_serializer.Serialization

GetSerialization returns the encoding of the envoy resources.

type EnvoyConfigRevisionList

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

EnvoyConfigRevisionList contains a list of EnvoyConfigRevision

func (*EnvoyConfigRevisionList) DeepCopy

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

func (*EnvoyConfigRevisionList) DeepCopyInto

func (in *EnvoyConfigRevisionList) DeepCopyInto(out *EnvoyConfigRevisionList)

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

func (*EnvoyConfigRevisionList) DeepCopyObject

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

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

type EnvoyConfigRevisionSpec

type EnvoyConfigRevisionSpec struct {
	// NodeID holds the envoy identifier for the discovery service to know which set
	// of resources to send to each of the envoy clients that connect to it.
	// +kubebuilder:validation:Pattern:[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	NodeID string `json:"nodeID"`
	// Version is a hash of the EnvoyResources field
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Version string `json:"version"`
	// EnvoyAPI is the version of envoy's API to use. Defaults to v3.
	// +kubebuilder:validation:Enum=v3
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	EnvoyAPI *envoy.APIVersion `json:"envoyAPI,omitempty"`
	// Serialization specicifies the serialization format used to describe the resources. "json" and "yaml"
	// are supported. "json" is used if unset.
	// +kubebuilder:validation:Enum=json;b64json;yaml
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Serialization *envoy_serializer.Serialization `json:"serialization,omitempty"`
	// EnvoyResources holds the different types of resources suported by the envoy discovery service
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	EnvoyResources *EnvoyResources `json:"envoyResources,omitempty"`
	// Resources holds the different types of resources suported by the envoy discovery service
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Resources []Resource `json:"resources,omitempty"`
}

EnvoyConfigRevisionSpec defines the desired state of EnvoyConfigRevision

func (*EnvoyConfigRevisionSpec) DeepCopy

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

func (*EnvoyConfigRevisionSpec) DeepCopyInto

func (in *EnvoyConfigRevisionSpec) DeepCopyInto(out *EnvoyConfigRevisionSpec)

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

type EnvoyConfigRevisionStatus

type EnvoyConfigRevisionStatus struct {
	// Published signals if the EnvoyConfigRevision is the one currently published
	// in the xds server cache
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	Published *bool `json:"published,omitempty"`
	// ProvidesVersions keeps track of the version that this revision
	// publishes in the xDS server for each resource type
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	ProvidesVersions *VersionTracker `json:"providesVersions,omitempty"`
	// LastPublishedAt indicates the last time this config review transitioned to
	// published
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	LastPublishedAt *metav1.Time `json:"lastPublishedAt,omitempty"`
	// Tainted indicates whether the EnvoyConfigRevision is eligible for publishing
	// or not
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	Tainted *bool `json:"tainted,omitempty"`
	// Conditions represent the latest available observations of an object's state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

EnvoyConfigRevisionStatus defines the observed state of EnvoyConfigRevision

func (*EnvoyConfigRevisionStatus) DeepCopy

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

func (*EnvoyConfigRevisionStatus) DeepCopyInto

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

func (*EnvoyConfigRevisionStatus) IsPublished

func (status *EnvoyConfigRevisionStatus) IsPublished() bool

IsPublished returns true if this revision is published, false otherwise

func (*EnvoyConfigRevisionStatus) IsTainted

func (status *EnvoyConfigRevisionStatus) IsTainted() bool

IsTainted returns true if this revision is tainted, false otherwise

type EnvoyConfigSpec

type EnvoyConfigSpec struct {
	// NodeID holds the envoy identifier for the discovery service to know which set
	// of resources to send to each of the envoy clients that connect to it.
	// +kubebuilder:validation:Pattern:[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	NodeID string `json:"nodeID"`
	// Serialization specicifies the serialization format used to describe the resources. "json" and "yaml"
	// are supported. "json" is used if unset.
	// +kubebuilder:validation:Enum=json;yaml
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Serialization *envoy_serializer.Serialization `json:"serialization,omitempty"`
	// EnvoyAPI is the version of envoy's API to use. Defaults to v3.
	// +kubebuilder:validation:Enum=v3
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	EnvoyAPI *envoy.APIVersion `json:"envoyAPI,omitempty"`
	// EnvoyResources holds the different types of resources suported by the envoy discovery service
	// DEPRECATED. Use the `resources` field instead.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	EnvoyResources *EnvoyResources `json:"envoyResources,omitempty"`
	// Resources holds the different types of resources suported by the envoy discovery service
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Resources []Resource `json:"resources,omitempty"`
}

EnvoyConfigSpec defines the desired state of EnvoyConfig

func (*EnvoyConfigSpec) DeepCopy

func (in *EnvoyConfigSpec) DeepCopy() *EnvoyConfigSpec

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

func (*EnvoyConfigSpec) DeepCopyInto

func (in *EnvoyConfigSpec) DeepCopyInto(out *EnvoyConfigSpec)

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

type EnvoyConfigStatus

type EnvoyConfigStatus struct {
	// CacheState summarizes all the observations about the EnvoyConfig
	// to give the user a concrete idea on the general status of the discovery servie cache.
	// It is intended only for human consumption. Other controllers should relly on conditions
	// to determine the status of the discovery server cache.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	CacheState *string `json:"cacheState,omitempty"`
	// PublishedVersion is the config version currently
	// served by the envoy discovery service for the give nodeID
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	PublishedVersion *string `json:"publishedVersion,omitempty"`
	// DesiredVersion represents the resources version described in
	// the spec of the EnvoyConfig object
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	DesiredVersion *string `json:"desiredVersion,omitempty"`
	// Conditions represent the latest available observations of an object's state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// ConfigRevisions is an ordered list of references to EnvoyConfigRevision
	// objects
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	ConfigRevisions []ConfigRevisionRef `json:"revisions,omitempty"`
}

EnvoyConfigStatus defines the observed state of EnvoyConfig

func (*EnvoyConfigStatus) DeepCopy

func (in *EnvoyConfigStatus) DeepCopy() *EnvoyConfigStatus

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

func (*EnvoyConfigStatus) DeepCopyInto

func (in *EnvoyConfigStatus) DeepCopyInto(out *EnvoyConfigStatus)

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

type EnvoyResource

type EnvoyResource struct {
	// Name of the envoy resource.
	// DEPRECATED: this field has no effect and will be removed in an
	// upcoming release. The name of the resources for discovery purposes
	// is included in the resource itself. Refer to the envoy API reference
	// to check how the name is specified for each resource type.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Name *string `json:"name"`
	// Value is the serialized representation of the envoy resource
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Value string `json:"value"`
}

EnvoyResource holds serialized representation of an envoy resource

func (*EnvoyResource) DeepCopy

func (in *EnvoyResource) DeepCopy() *EnvoyResource

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

func (*EnvoyResource) DeepCopyInto

func (in *EnvoyResource) DeepCopyInto(out *EnvoyResource)

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

func (*EnvoyResource) Resource added in v0.12.0

func (res *EnvoyResource) Resource(rType envoy.Type, serialization envoy_serializer.Serialization) (Resource, error)

Transforms from the deprecated EnvoyResource struct to Resource

type EnvoyResources

type EnvoyResources struct {
	// Endpoints is a list of the envoy ClusterLoadAssignment resource type.
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Endpoints []EnvoyResource `json:"endpoints,omitempty"`
	// Clusters is a list of the envoy Cluster resource type.
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Clusters []EnvoyResource `json:"clusters,omitempty"`
	// Routes is a list of the envoy Route resource type.
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Routes []EnvoyResource `json:"routes,omitempty"`
	// ScopedRoutes is a list of the envoy ScopeRoute resource type.
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/scoped_route.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ScopedRoutes []EnvoyResource `json:"scopedRoutes,omitempty"`
	// Listeners is a list of the envoy Listener resource type.
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Listeners []EnvoyResource `json:"listeners,omitempty"`
	// Runtimes is a list of the envoy Runtime resource type.
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/runtime/v3/rtds.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Runtimes []EnvoyResource `json:"runtimes,omitempty"`
	// Secrets is a list of references to Kubernetes Secret objects.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Secrets []EnvoySecretResource `json:"secrets,omitempty"`
	// ExtensionConfigs is a list of the envoy ExtensionConfig resource type
	// API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/extension.proto
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ExtensionConfigs []EnvoyResource `json:"extensionConfigs,omitempty"`
}

EnvoyResources holds each envoy api resource type

func (*EnvoyResources) DeepCopy

func (in *EnvoyResources) DeepCopy() *EnvoyResources

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

func (*EnvoyResources) DeepCopyInto

func (in *EnvoyResources) DeepCopyInto(out *EnvoyResources)

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

func (*EnvoyResources) Resources added in v0.12.0

func (in *EnvoyResources) Resources(serialization envoy_serializer.Serialization) ([]Resource, error)

type EnvoySecretResource

type EnvoySecretResource struct {
	// Name of the envoy tslCerticate secret resource. The certificate will be fetched
	// from a Kubernetes Secrets of type 'kubernetes.io/tls' with this same name.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name"`
	// DEPRECATED: this field is deprecated and it's value will be ignored. The 'name' of the
	// Kubernetes Secret must match the 'name' field.
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:SecretReference"
	// +optional
	Ref *corev1.SecretReference `json:"ref,omitempty"`
}

EnvoySecretResource holds a reference to a k8s Secret from where to take a secret from. Only Secrets within the same namespace can be referred.

func (*EnvoySecretResource) DeepCopy

func (in *EnvoySecretResource) DeepCopy() *EnvoySecretResource

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

func (*EnvoySecretResource) DeepCopyInto

func (in *EnvoySecretResource) DeepCopyInto(out *EnvoySecretResource)

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

func (*EnvoySecretResource) GetSecretKey

func (esr *EnvoySecretResource) GetSecretKey(namespace string) types.NamespacedName

func (*EnvoySecretResource) Validate

func (esr *EnvoySecretResource) Validate(namespace string) error

type ErrorList

type ErrorList []error

+kubebuilder:object:generate:=false

func (ErrorList) MarshalJSON

func (el ErrorList) MarshalJSON() ([]byte, error)

type GenerateFromEndpointSlices added in v0.12.0

type GenerateFromEndpointSlices struct {
	Selector    *metav1.LabelSelector `json:"selector"`
	ClusterName string                `json:"clusterName"`
	TargetPort  string                `json:"targetPort"`
}

func (*GenerateFromEndpointSlices) DeepCopy added in v0.12.0

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

func (*GenerateFromEndpointSlices) DeepCopyInto added in v0.12.0

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

type MultiError added in v0.12.0

type MultiError struct {
	Errors ErrorList `json:"errors"`
}

+kubebuilder:object:generate:=false

func NewMultiError added in v0.12.0

func NewMultiError(e []error) MultiError

func (MultiError) Error added in v0.12.0

func (ve MultiError) Error() string

type Resource added in v0.12.0

type Resource struct {
	// Type is the type url for the protobuf message
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +kubebuilder:validation:Enum=listener;route;scopedRoute;cluster;endpoint;secret;runtime;extensionConfig;
	Type envoy.Type `json:"type"`
	// Value is the protobufer message that configures the resource. The proto
	// must match the envoy configuration API v3 specification for the given resource
	// type (https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#resource-types)
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Value *runtime.RawExtension `json:"value,omitempty"`
	// The name of a Kubernetes Secret of type "kubernetes.io/tls"
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	GenerateFromTlsSecret *string `json:"generateFromTlsSecret,omitempty"`
	// Specifies a label selector to watch for EndpointSlices that will
	// be used to generate the endpoint resource
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	GenerateFromEndpointSlices *GenerateFromEndpointSlices `json:"generateFromEndpointSlices,omitempty"`
	// Blueprint specifies a template to generate a configuration proto. It is currently
	// only supported to generate secret configuration resources from k8s Secrets
	// +kubebuilder:validation:Enum=tlsCertificate;validationContext;
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Blueprint *Blueprint `json:"blueprint,omitempty"`
}

Resource holds serialized representation of an envoy resource

func (*Resource) DeepCopy added in v0.12.0

func (in *Resource) DeepCopy() *Resource

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

func (*Resource) DeepCopyInto added in v0.12.0

func (in *Resource) DeepCopyInto(out *Resource)

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

func (*Resource) GetBlueprint added in v0.12.0

func (r *Resource) GetBlueprint() Blueprint

type VersionTracker

type VersionTracker struct {
	Endpoints        string `json:"endpoints,omitempty"`
	Clusters         string `json:"clusters,omitempty"`
	Routes           string `json:"routes,omitempty"`
	ScopedRoutes     string `json:"scopedRoutes,omitempty"`
	Listeners        string `json:"listeners,omitempty"`
	Secrets          string `json:"secrets,omitempty"`
	Runtimes         string `json:"runtimes,omitempty"`
	ExtensionConfigs string `json:"extensionConfigs,omitempty"`
}

VersionTracker tracks the versions of the resources that this revision publishes in the xDS server cache

func (*VersionTracker) DeepCopy

func (in *VersionTracker) DeepCopy() *VersionTracker

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

func (*VersionTracker) DeepCopyInto

func (in *VersionTracker) DeepCopyInto(out *VersionTracker)

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