Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the envoy v1alpha1 API group +kubebuilder:object:generate=true +groupName=envoy.marin3r.3scale.net
Index ¶
- Constants
- Variables
- type ConfigRevisionRef
- type EnvoyConfig
- type EnvoyConfigList
- type EnvoyConfigRevision
- type EnvoyConfigRevisionList
- type EnvoyConfigRevisionSpec
- type EnvoyConfigRevisionStatus
- type EnvoyConfigSpec
- type EnvoyConfigStatus
- type EnvoyResource
- type EnvoyResources
- type EnvoySecretResource
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 status.ConditionType = "CacheOutOfSync" // RollbackFailedCondition indicates that the EnvoyConfig object // is not able to publish a config revision because all revisions are // tainted RollbackFailedCondition status.ConditionType = "RollbackFailed" // EnvoyConfigFinalizer is the finalizer for EnvoyConfig objects EnvoyConfigFinalizer string = "finalizer.marin3r.3scale.net" //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 status.ConditionType = "RevisionPublished" // ResourcesOutOfSyncCondition is a condition that other controllers can use to indicate // that the respurces need resync ResourcesOutOfSyncCondition status.ConditionType = "ResourcesOutOfSync" // 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 status.ConditionType = "RevisionTainted" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "envoy.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 ConfigRevisionRef ¶
type ConfigRevisionRef struct { // Version is a hash of the EnvoyResources field // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Version string `json:"version"` // Ref is a reference to the EnvoyConfigRevision object that // holds the configuration matching the Version field. // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true 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=NodeID,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:gen-csv:customresourcedefinitions.displayName="EnvoyConfig" +operator-sdk:gen-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.
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 holds an specific version of the EnvoyConfig resources. 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=NodeID,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:gen-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.
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:gen-csv:customresourcedefinitions.specDescriptors=true NodeID string `json:"nodeID"` // Version is a hash of the EnvoyResources field // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Version string `json:"version"` // 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:gen-csv:customresourcedefinitions.specDescriptors=true Serialization string `json:"serialization,omitempty"` // EnvoyResources holds the different types of resources suported by the envoy discovery service // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true EnvoyResources *EnvoyResources `json:"envoyResources"` }
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:gen-csv:customresourcedefinitions.statusDescriptors=true Published bool `json:"published,omitempty"` // LastPublishedAt indicates the last time this config review transitioned to // published // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true LastPublishedAt metav1.Time `json:"lastPublishedAt,omitempty"` // Tainted indicates whether the EnvoyConfigRevision is eligible for publishing // or not // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Tainted bool `json:"tainted,omitempty"` // Conditions represent the latest available observations of an object's state // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Conditions status.Conditions `json:"conditions"` }
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.
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:gen-csv:customresourcedefinitions.specDescriptors=true 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;b64json;yaml // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Serialization string `json:"serialization,omitempty"` // EnvoyResources holds the different types of resources suported by the envoy discovery service // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true EnvoyResources *EnvoyResources `json:"envoyResources"` }
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:gen-csv:customresourcedefinitions.statusDescriptors=true CacheState string `json:"cacheState,omitempty"` // PublishedVersion is the config version currently // served by the envoy discovery service for the give nodeID // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true PublishedVersion string `json:"publishedVersion,omitempty"` // DesiredVersion represents the resources version described in // the spec of the EnvoyConfig object // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true DesiredVersion string `json:"desiredVersion,omitempty"` // Conditions represent the latest available observations of an object's state // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Conditions status.Conditions `json:"conditions,omitempty"` // ConfigRevisions is an ordered list of references to EnvoyConfigRevision // objects // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true 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 // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true Name string `json:"name"` // Value is the serialized representation of the envoy resource // +operator-sdk:gen-csv:customresourcedefinitions.statusDescriptors=true 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.
type EnvoyResources ¶
type EnvoyResources struct { // Endpoints is a list of the envoy ClusterLoadAssignment resource type. // Reference: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/endpoint.proto // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Endpoints []EnvoyResource `json:"endpoints,omitempty"` // Clusters is a list of the envoy Cluster resource type. // Reference: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/cluster.proto // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Clusters []EnvoyResource `json:"clusters,omitempty"` // Routes is a list of the envoy Route resource type. // Reference: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route.proto // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Routes []EnvoyResource `json:"routes,omitempty"` // Listeners is a list of the envoy Listener resource type. // Referece: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/listener.proto // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Listeners []EnvoyResource `json:"listeners,omitempty"` // Runtimes is a list of the envoy Runtime resource type. // Reference: https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/discovery/v2/rtds.proto // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Runtimes []EnvoyResource `json:"runtime,omitempty"` // Secrets is a list of references to Kubernetes Secret objects. // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Secrets []EnvoySecretResource `json:"secrets,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.
type EnvoySecretResource ¶
type EnvoySecretResource struct { // Name of the envoy resource // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true Name string `json:"name"` // Ref is a reference to a Kubernetes Secret of type "kubernetes.io/tls" from which // an envoy Secret resource will be automatically created. // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true // +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:SecretReference" Ref corev1.SecretReference `json:"ref"` }
EnvoySecretResource holds a reference to a k8s Secret from where to take a secret from
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.