Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the envoy v1alpha1 API group +kubebuilder:object:generate=true +groupName=marin3r.3scale.net
Index ¶
- Constants
- Variables
- type Blueprint
- type ConfigRevisionRef
- type EnvoyConfig
- func (in *EnvoyConfig) DeepCopy() *EnvoyConfig
- func (in *EnvoyConfig) DeepCopyInto(out *EnvoyConfig)
- func (in *EnvoyConfig) DeepCopyObject() runtime.Object
- func (ec *EnvoyConfig) Default()
- func (ec *EnvoyConfig) GetEnvoyAPIVersion() envoy.APIVersion
- func (ec *EnvoyConfig) GetEnvoyResourcesVersion() string
- func (ec *EnvoyConfig) GetSerialization() envoy_serializer.Serialization
- func (r *EnvoyConfig) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *EnvoyConfig) Validate() error
- func (r *EnvoyConfig) ValidateCreate() (admission.Warnings, error)
- func (r *EnvoyConfig) ValidateDelete() (admission.Warnings, error)
- func (r *EnvoyConfig) ValidateEnvoyResources() error
- func (r *EnvoyConfig) ValidateResources() error
- func (r *EnvoyConfig) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type EnvoyConfigList
- type EnvoyConfigRevision
- func (in *EnvoyConfigRevision) DeepCopy() *EnvoyConfigRevision
- func (in *EnvoyConfigRevision) DeepCopyInto(out *EnvoyConfigRevision)
- func (in *EnvoyConfigRevision) DeepCopyObject() runtime.Object
- func (ecr *EnvoyConfigRevision) Default()
- func (ecr *EnvoyConfigRevision) GetEnvoyAPIVersion() envoy.APIVersion
- func (ecr *EnvoyConfigRevision) GetSerialization() envoy_serializer.Serialization
- type EnvoyConfigRevisionList
- type EnvoyConfigRevisionSpec
- type EnvoyConfigRevisionStatus
- type EnvoyConfigSpec
- type EnvoyConfigStatus
- type EnvoyResource
- type EnvoyResources
- type EnvoySecretResource
- type ErrorList
- type GenerateFromEndpointSlices
- type MultiError
- type Resource
- type SecretKeySelector
- type VersionTracker
Constants ¶
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" )
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 ¶
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
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) Default ¶ added in v0.13.0
func (ec *EnvoyConfig) Default()
Default implements defaulting for the EnvoyConfig resource
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() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*EnvoyConfig) ValidateDelete ¶
func (r *EnvoyConfig) ValidateDelete() (admission.Warnings, 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 ¶
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) Default ¶ added in v0.13.0
func (ecr *EnvoyConfigRevision) Default()
Default implements defaulting for the EnvoyConfigRevision resource
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 ¶
func (in *EnvoyConfigRevisionList) DeepCopy() *EnvoyConfigRevisionList
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 ¶
func (in *EnvoyConfigRevisionSpec) DeepCopy() *EnvoyConfigRevisionSpec
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 ¶
func (in *EnvoyConfigRevisionStatus) DeepCopy() *EnvoyConfigRevisionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyConfigRevisionStatus.
func (*EnvoyConfigRevisionStatus) DeepCopyInto ¶
func (in *EnvoyConfigRevisionStatus) DeepCopyInto(out *EnvoyConfigRevisionStatus)
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 ¶
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
func (in *GenerateFromEndpointSlices) DeepCopy() *GenerateFromEndpointSlices
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenerateFromEndpointSlices.
func (*GenerateFromEndpointSlices) DeepCopyInto ¶ added in v0.12.0
func (in *GenerateFromEndpointSlices) DeepCopyInto(out *GenerateFromEndpointSlices)
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"` // The name of a Kubernetes Secret of type "Opaque". It will generate an // envoy "generic secret" proto. // +operator-sdk:csv:customresourcedefinitions:type=spec // +optional GenerateFromOpaqueSecret *SecretKeySelector `json:"generateFromOpaqueSecret,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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (*Resource) DeepCopyInto ¶ added in v0.12.0
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
type SecretKeySelector ¶ added in v0.13.0
type SecretKeySelector struct { // The name of the secret in the pod's namespace to select from. Name string `json:"name"` // The key of the secret to select from. Must be a valid secret key. Key string `json:"key"` // A unique name to refer to the name:key combination Alias string `json:"alias"` }
func (*SecretKeySelector) DeepCopy ¶ added in v0.13.0
func (in *SecretKeySelector) DeepCopy() *SecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
func (*SecretKeySelector) DeepCopyInto ¶ added in v0.13.0
func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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.