v1beta1

package
v0.6.1-0...-c0b4449 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the watcher v1beta1 API group +kubebuilder:object:generate=true +groupName=watcher.openstack.org

Index

Constants

View Source
const (
	WatcherAPIContainerImage            = "quay.io/podified-master-centos9/openstack-watcher-api:current-podified"
	WatcherDecisionEngineContainerImage = "quay.io/podified-master-centos9/openstack-watcher-decision-engine:current-podified"
	WatcherApplierContainerImage        = "quay.io/podified-master-centos9/openstack-watcher-applier:current-podified"
	APITimeoutDefault                   = 60
)

Container image fall-back defaults

View Source
const (
	// WatcherRabbitMQTransportURLReadyCondition -
	WatcherRabbitMQTransportURLReadyCondition condition.Type = "WatcherRabbitMQTransportURLReady"
	// WatcherNotificationsBusTransportURLReadyCondition -
	WatcherNotificationTransportURLReadyCondition condition.Type = "WatcherNotificationTransportURLReady"
	// WatcherAPIReadyCondition -
	WatcherAPIReadyCondition condition.Type = "WatcherAPIReady"
	// WatcherApplierReadyCondition -
	WatcherApplierReadyCondition condition.Type = "WatcherApplierReady"
	// WatcherDecisionEngineReadyCondition -
	WatcherDecisionEngineReadyCondition condition.Type = "WatcherDecisionEngineReady"
)
View Source
const (
	// WatcherRabbitMQTransportURLReadyRunningMessage -
	WatcherRabbitMQTransportURLReadyRunningMessage = "WatcherRabbitMQTransportURL creation in progress"
	// WatcherRabbitMQTransportURLReadyMessage -
	WatcherRabbitMQTransportURLReadyMessage = "WatcherRabbitMQTransportURL successfully created"
	// WatcherRabbitMQTransportURLReadyErrorMessage -
	WatcherRabbitMQTransportURLReadyErrorMessage = "WatcherRabbitMQTransportURL error occured %s"
	// WatcherNotificationTransportURLReadyRunningMessage -
	WatcherNotificationTransportURLReadyRunningMessage = "WatcherNotificationTransportURL creation in progress"
	// WatcherNotificationTransportURLReadyMessage -
	WatcherNotificationTransportURLReadyMessage = "WatcherNotificationTransportURL successfully created"
	// WatcherNotificationTransportURLReadyErrorMessage -
	WatcherNotificationTransportURLReadyErrorMessage = "WatcherNotificationTransportURL error occured %s"
	// WatcherAPIReadyInitMessage -
	WatcherAPIReadyInitMessage = "WatcherAPI creation not started"
	// WatcherAPIReadyRunningMessage -
	WatcherAPIReadyRunningMessage = "WatcherAPI creation in progress"
	// WatcherAPIReadyMessage -
	WatcherAPIReadyMessage = "WatcherAPI successfully created"
	// WatcherAPIReadyErrorMessage -
	WatcherAPIReadyErrorMessage = "WatcherAPI error occured %s"
	// WatcherPrometheusSecretErrorMessage -
	WatcherPrometheusSecretErrorMessage = "Error with prometheus config secret"
	// WatcherApplierReadyInitMessage -
	WatcherApplierReadyInitMessage = "WatcherApplier creation not started"
	// WatcherApplierReadyRunningMessage -
	WatcherApplierReadyRunningMessage = "WatcherApplier creation in progress"
	// WatcherApplierReadyMessage -
	WatcherApplierReadyMessage = "WatcherApplier successfully created"
	// WatcherApplierReadyErrorMessage -
	WatcherApplierReadyErrorMessage = "WatcherApplier error occured %s"
	// WatcherDecisionEngineReadyInitMessage -
	WatcherDecisionEngineReadyInitMessage = "WatcherDecisionEngine creation not started"
	// WatcherDecisionEngineReadyRunningMessage -
	WatcherDecisionEngineReadyRunningMessage = "WatcherDecisionEngine creation in progress"
	// WatcherDecisionEngineReadyMessage -
	WatcherDecisionEngineReadyMessage = "WatcherDecisionEngine successfully created"
	// WatcherDecisionEngineReadyErrorMessage -
	WatcherDecisionEngineReadyErrorMessage = "WatcherDecisionEngine error occured %s"
)
View Source
const (
	// DbSyncHash hash
	DbSyncHash = "dbsync"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "watcher.openstack.org", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func SetupDefaults

func SetupDefaults()

func SetupWatcherDefaults

func SetupWatcherDefaults(defaults WatcherDefaults)

Types

type APIOverrideSpec

type APIOverrideSpec struct {
	// Override configuration for the Service created to serve traffic to
	// the cluster.
	// The key must be the endpoint type (public, internal)
	Service map[service.Endpoint]service.RoutedOverrideSpec `json:"service,omitempty"`
}

APIOverrideSpec to override the generated manifest of several child resources.

func (*APIOverrideSpec) DeepCopy

func (in *APIOverrideSpec) DeepCopy() *APIOverrideSpec

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

func (*APIOverrideSpec) DeepCopyInto

func (in *APIOverrideSpec) DeepCopyInto(out *APIOverrideSpec)

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

type PasswordSelector

type PasswordSelector struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="WatcherPassword"
	// Service - Selector to get the watcher service user password from the Secret
	Service *string `json:"service"`
}

PasswordSelector to identify the DB and AdminUser password from the Secret

func (*PasswordSelector) DeepCopy

func (in *PasswordSelector) DeepCopy() *PasswordSelector

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

func (*PasswordSelector) DeepCopyInto

func (in *PasswordSelector) DeepCopyInto(out *PasswordSelector)

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

type Watcher

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

	Spec   WatcherSpec   `json:"spec,omitempty"`
	Status WatcherStatus `json:"status,omitempty"`
}

Watcher is the Schema for the watchers API

func (*Watcher) DeepCopy

func (in *Watcher) DeepCopy() *Watcher

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

func (*Watcher) DeepCopyInto

func (in *Watcher) DeepCopyInto(out *Watcher)

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

func (*Watcher) DeepCopyObject

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

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

func (*Watcher) Default

func (r *Watcher) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Watcher) IsReady

func (r *Watcher) IsReady() bool

IsReady returns true if the ReadyCondition is true

func (Watcher) RbacConditionsSet

func (instance Watcher) RbacConditionsSet(c *condition.Condition)

RbacConditionsSet - set the conditions for the rbac object

func (Watcher) RbacNamespace

func (instance Watcher) RbacNamespace() string

RbacNamespace - return the namespace

func (Watcher) RbacResourceName

func (instance Watcher) RbacResourceName() string

RbacResourceName - return the name to be used for rbac objects (serviceaccount, role, rolebinding)

func (*Watcher) SetupWebhookWithManager

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

func (*Watcher) ValidateCreate

func (r *Watcher) ValidateCreate() (admission.Warnings, error)

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

func (*Watcher) ValidateDelete

func (r *Watcher) ValidateDelete() (admission.Warnings, error)

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

func (*Watcher) ValidateUpdate

func (r *Watcher) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type WatcherAPI

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

	Spec   WatcherAPISpec   `json:"spec,omitempty"`
	Status WatcherAPIStatus `json:"status,omitempty"`
}

WatcherAPI is the Schema for the watcherapis API

func (*WatcherAPI) DeepCopy

func (in *WatcherAPI) DeepCopy() *WatcherAPI

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

func (*WatcherAPI) DeepCopyInto

func (in *WatcherAPI) DeepCopyInto(out *WatcherAPI)

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

func (*WatcherAPI) DeepCopyObject

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

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

func (*WatcherAPI) Default

func (r *WatcherAPI) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*WatcherAPI) GetLastAppliedTopology

func (instance *WatcherAPI) GetLastAppliedTopology() *topologyv1.TopoRef

GetLastAppliedTopology - Returns the LastAppliedTopology Set in the Status

func (*WatcherAPI) GetSpecTopologyRef

func (instance *WatcherAPI) GetSpecTopologyRef() *topologyv1.TopoRef

GetSpecTopologyRef - Returns the TopologyRef defined in the Spec

func (*WatcherAPI) IsReady

func (r *WatcherAPI) IsReady() bool

IsReady returns true if the ReadyCondition is true

func (*WatcherAPI) SetLastAppliedTopology

func (instance *WatcherAPI) SetLastAppliedTopology(topologyRef *topologyv1.TopoRef)

SetLastAppliedTopology - Sets the LastAppliedTopology value in the Status

func (*WatcherAPI) SetupWebhookWithManager

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

func (*WatcherAPI) ValidateCreate

func (r *WatcherAPI) ValidateCreate() (admission.Warnings, error)

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

func (*WatcherAPI) ValidateDelete

func (r *WatcherAPI) ValidateDelete() (admission.Warnings, error)

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

func (*WatcherAPI) ValidateUpdate

func (r *WatcherAPI) ValidateUpdate(runtime.Object) (admission.Warnings, error)

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

type WatcherAPIList

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

WatcherAPIList contains a list of WatcherAPI

func (*WatcherAPIList) DeepCopy

func (in *WatcherAPIList) DeepCopy() *WatcherAPIList

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

func (*WatcherAPIList) DeepCopyInto

func (in *WatcherAPIList) DeepCopyInto(out *WatcherAPIList)

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

func (*WatcherAPIList) DeepCopyObject

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

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

type WatcherAPISpec

type WatcherAPISpec struct {
	WatcherCommon `json:",inline"`

	// +kubebuilder:validation:Required
	// Secret containing all passwords / keys needed
	Secret string `json:"secret"`

	WatcherSubCrsCommon `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Maximum=32
	// +kubebuilder:validation:Minimum=0
	// Replicas of Watcher service to run
	Replicas *int32 `json:"replicas"`

	// +kubebuilder:validation:Optional
	// Override, provides the ability to override the generated manifest of
	// several child resources.
	Override APIOverrideSpec `json:"override,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// TLS - Parameters related to the TLS
	TLS tls.API `json:"tls,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=60
	// +kubebuilder:validation:Minimum=10
	// APITimeout for Route and Apache
	APITimeout int `json:"apiTimeout"`
}

WatcherAPISpec defines the desired state of WatcherAPI

func (*WatcherAPISpec) DeepCopy

func (in *WatcherAPISpec) DeepCopy() *WatcherAPISpec

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

func (*WatcherAPISpec) DeepCopyInto

func (in *WatcherAPISpec) DeepCopyInto(out *WatcherAPISpec)

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

type WatcherAPIStatus

type WatcherAPIStatus struct {
	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	// ObservedGeneration - the most recent generation observed for this
	// service. If the observed generation is less than the spec generation,
	// then the controller has not processed the latest changes injected by
	// the openstack-operator in the top-level CR (e.g. the ContainerImage)
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ReadyCount of watcher API instances
	ReadyCount int32 `json:"readyCount,omitempty"`

	// Map of hashes to track e.g. job status
	Hash map[string]string `json:"hash,omitempty"`

	// LastAppliedTopology - the last applied Topology
	LastAppliedTopology *topologyv1.TopoRef `json:"lastAppliedTopology,omitempty"`
}

WatcherAPIStatus defines the observed state of WatcherAPI

func (*WatcherAPIStatus) DeepCopy

func (in *WatcherAPIStatus) DeepCopy() *WatcherAPIStatus

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

func (*WatcherAPIStatus) DeepCopyInto

func (in *WatcherAPIStatus) DeepCopyInto(out *WatcherAPIStatus)

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

type WatcherAPITemplate

type WatcherAPITemplate struct {
	WatcherSubCrsTemplate `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Maximum=32
	// +kubebuilder:validation:Minimum=0
	// Replicas of WatcherAPI service to run
	Replicas *int32 `json:"replicas"`

	// +kubebuilder:validation:Optional
	// Override, provides the ability to override the generated manifest of
	// several child resources.
	Override APIOverrideSpec `json:"override,omitempty"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// TLS - Parameters related to the TLS
	TLS tls.API `json:"tls,omitempty"`
}

WatcherAPITemplate defines the input parameters specified by the user to create a WatcherAPI via higher level CRDs.

func (*WatcherAPITemplate) DeepCopy

func (in *WatcherAPITemplate) DeepCopy() *WatcherAPITemplate

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

func (*WatcherAPITemplate) DeepCopyInto

func (in *WatcherAPITemplate) DeepCopyInto(out *WatcherAPITemplate)

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

func (*WatcherAPITemplate) ValidateTopology

func (r *WatcherAPITemplate) ValidateTopology(
	basePath *field.Path,
	namespace string,
) field.ErrorList

ValidateTopology validates the referenced TopoRef.Namespace.

type WatcherApplier

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

	Spec   WatcherApplierSpec   `json:"spec,omitempty"`
	Status WatcherApplierStatus `json:"status,omitempty"`
}

WatcherApplier is the Schema for the watcherappliers API

func (*WatcherApplier) DeepCopy

func (in *WatcherApplier) DeepCopy() *WatcherApplier

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

func (*WatcherApplier) DeepCopyInto

func (in *WatcherApplier) DeepCopyInto(out *WatcherApplier)

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

func (*WatcherApplier) DeepCopyObject

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

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

func (*WatcherApplier) Default

func (r *WatcherApplier) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*WatcherApplier) GetLastAppliedTopology

func (instance *WatcherApplier) GetLastAppliedTopology() *topologyv1.TopoRef

GetLastAppliedTopology - Returns the LastAppliedTopology Set in the Status

func (*WatcherApplier) GetSpecTopologyRef

func (instance *WatcherApplier) GetSpecTopologyRef() *topologyv1.TopoRef

GetSpecTopologyRef - Returns the TopologyRef defined in the Spec

func (*WatcherApplier) IsReady

func (r *WatcherApplier) IsReady() bool

IsReady returns true if the ReadyCondition is true

func (*WatcherApplier) SetLastAppliedTopology

func (instance *WatcherApplier) SetLastAppliedTopology(topologyRef *topologyv1.TopoRef)

SetLastAppliedTopology - Sets the LastAppliedTopology value in the Status

func (*WatcherApplier) SetupWebhookWithManager

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

func (*WatcherApplier) ValidateCreate

func (r *WatcherApplier) ValidateCreate() (admission.Warnings, error)

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

func (*WatcherApplier) ValidateDelete

func (r *WatcherApplier) ValidateDelete() (admission.Warnings, error)

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

func (*WatcherApplier) ValidateUpdate

func (r *WatcherApplier) ValidateUpdate(runtime.Object) (admission.Warnings, error)

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

type WatcherApplierList

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

WatcherApplierList contains a list of WatcherApplier

func (*WatcherApplierList) DeepCopy

func (in *WatcherApplierList) DeepCopy() *WatcherApplierList

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

func (*WatcherApplierList) DeepCopyInto

func (in *WatcherApplierList) DeepCopyInto(out *WatcherApplierList)

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

func (*WatcherApplierList) DeepCopyObject

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

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

type WatcherApplierSpec

type WatcherApplierSpec struct {
	WatcherCommon `json:",inline"`

	// +kubebuilder:validation:Required
	// Secret containing all passwords / keys needed
	Secret string `json:"secret"`

	WatcherSubCrsCommon `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Maximum=1
	// +kubebuilder:validation:Minimum=0
	// Replicas of Watcher service to run
	Replicas *int32 `json:"replicas"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// TLS - Parameters related to the TLS
	TLS tls.Ca `json:"tls,omitempty"`
}

WatcherApplierSpec defines the desired state of WatcherApplier

func (*WatcherApplierSpec) DeepCopy

func (in *WatcherApplierSpec) DeepCopy() *WatcherApplierSpec

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

func (*WatcherApplierSpec) DeepCopyInto

func (in *WatcherApplierSpec) DeepCopyInto(out *WatcherApplierSpec)

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

type WatcherApplierStatus

type WatcherApplierStatus struct {

	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	// ObservedGeneration - the most recent generation observed for this
	// service. If the observed generation is less than the spec generation,
	// then the controller has not processed the latest changes injected by
	// the openstack-operator in the top-level CR (e.g. the ContainerImage)
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ReadyCount of watcher Applier instances
	ReadyCount int32 `json:"readyCount,omitempty"`

	// Map of hashes to track e.g. job status
	Hash map[string]string `json:"hash,omitempty"`

	// LastAppliedTopology - the last applied Topology
	LastAppliedTopology *topologyv1.TopoRef `json:"lastAppliedTopology,omitempty"`
}

WatcherApplierStatus defines the observed state of WatcherApplier

func (*WatcherApplierStatus) DeepCopy

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

func (*WatcherApplierStatus) DeepCopyInto

func (in *WatcherApplierStatus) DeepCopyInto(out *WatcherApplierStatus)

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

type WatcherApplierTemplate

type WatcherApplierTemplate struct {
	WatcherSubCrsTemplate `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Maximum=1
	// +kubebuilder:validation:Minimum=0
	// Replicas of WatcherApplier service to run
	Replicas *int32 `json:"replicas"`
}

WatcherApplierTemplatce defines the input parameters specified by the user to create a WatcherApplier via higher level CRDs.

func (*WatcherApplierTemplate) DeepCopy

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

func (*WatcherApplierTemplate) DeepCopyInto

func (in *WatcherApplierTemplate) DeepCopyInto(out *WatcherApplierTemplate)

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

func (*WatcherApplierTemplate) ValidateTopology

func (r *WatcherApplierTemplate) ValidateTopology(
	basePath *field.Path,
	namespace string,
) field.ErrorList

ValidateTopology validates the referenced TopoRef.Namespace.

type WatcherCommon

type WatcherCommon struct {

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=watcher
	// ServiceUser - optional username used for this service to register in keystone
	ServiceUser *string `json:"serviceUser"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={service: WatcherPassword,}
	// PasswordSelectors - Selectors to identify the ServiceUser password from the Secret
	PasswordSelectors PasswordSelector `json:"passwordSelectors"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=memcached
	// MemcachedInstance is the name of the Memcached CR that all watcher service will use.
	MemcachedInstance *string `json:"memcachedInstance"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// PreserveJobs - do not delete jobs after they finished e.g. to check logs
	PreserveJobs bool `json:"preserveJobs"`

	// +kubebuilder:validation:Optional
	// NodeSelector to target subset of worker nodes running this component. Setting here overrides
	// any global NodeSelector settings within the Watcher CR.
	NodeSelector *map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// CustomServiceConfig - customize the service config using this parameter to change service defaults,
	// or overwrite rendered information using raw OpenStack config format. The content gets added to
	// to /etc/<service>/<service>.conf.d directory as a custom config file.
	CustomServiceConfig string `json:"customServiceConfig,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=metric-storage-prometheus-endpoint
	// Secret containing prometheus connection parameters
	PrometheusSecret *string `json:"prometheusSecret"`

	// +kubebuilder:validation:Optional
	// TopologyRef to apply the Topology defined by the associated CR referenced
	// by name
	TopologyRef *topologyv1.TopoRef `json:"topologyRef,omitempty"`
}

WatcherCommon defines a spec based reusable for all the CRDs

func (*WatcherCommon) DeepCopy

func (in *WatcherCommon) DeepCopy() *WatcherCommon

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

func (*WatcherCommon) DeepCopyInto

func (in *WatcherCommon) DeepCopyInto(out *WatcherCommon)

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

type WatcherDBPurge

type WatcherDBPurge struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="0 1 * * *"
	// Schedule defines when to run the Watcher DB Purge job in a cron format.
	// By default it runs everyday at 01:00.
	Schedule *string `json:"schedule"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=90
	// +kubebuilder:validation:Minimum=1
	// PurgeAge defines the minimum age of soft-deleted records in days that can be
	// deleted from the shadow tables
	PurgeAge *int `json:"purgeAge"`
}

func (*WatcherDBPurge) DeepCopy

func (in *WatcherDBPurge) DeepCopy() *WatcherDBPurge

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

func (*WatcherDBPurge) DeepCopyInto

func (in *WatcherDBPurge) DeepCopyInto(out *WatcherDBPurge)

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

type WatcherDecisionEngine

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

	Spec   WatcherDecisionEngineSpec   `json:"spec,omitempty"`
	Status WatcherDecisionEngineStatus `json:"status,omitempty"`
}

WatcherDecisionEngine is the Schema for the watcherdecisionengines API

func (*WatcherDecisionEngine) DeepCopy

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

func (*WatcherDecisionEngine) DeepCopyInto

func (in *WatcherDecisionEngine) DeepCopyInto(out *WatcherDecisionEngine)

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

func (*WatcherDecisionEngine) DeepCopyObject

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

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

func (*WatcherDecisionEngine) Default

func (r *WatcherDecisionEngine) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*WatcherDecisionEngine) GetLastAppliedTopology

func (instance *WatcherDecisionEngine) GetLastAppliedTopology() *topologyv1.TopoRef

GetLastAppliedTopology - Returns the LastAppliedTopology Set in the Status

func (*WatcherDecisionEngine) GetSpecTopologyRef

func (instance *WatcherDecisionEngine) GetSpecTopologyRef() *topologyv1.TopoRef

GetSpecTopologyRef - Returns the TopologyRef defined in the Spec

func (*WatcherDecisionEngine) IsReady

func (r *WatcherDecisionEngine) IsReady() bool

IsReady returns true if the ReadyCondition is true

func (*WatcherDecisionEngine) SetLastAppliedTopology

func (instance *WatcherDecisionEngine) SetLastAppliedTopology(topologyRef *topologyv1.TopoRef)

SetLastAppliedTopology - Sets the LastAppliedTopology value in the Status

func (*WatcherDecisionEngine) SetupWebhookWithManager

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

func (*WatcherDecisionEngine) ValidateCreate

func (r *WatcherDecisionEngine) ValidateCreate() (admission.Warnings, error)

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

func (*WatcherDecisionEngine) ValidateDelete

func (r *WatcherDecisionEngine) ValidateDelete() (admission.Warnings, error)

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

func (*WatcherDecisionEngine) ValidateUpdate

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

type WatcherDecisionEngineList

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

WatcherDecisionEngineList contains a list of WatcherDecisionEngine

func (*WatcherDecisionEngineList) DeepCopy

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

func (*WatcherDecisionEngineList) DeepCopyInto

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

func (*WatcherDecisionEngineList) DeepCopyObject

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

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

type WatcherDecisionEngineSpec

type WatcherDecisionEngineSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	WatcherCommon `json:",inline"`

	// +kubebuilder:validation:Required
	// Secret containing all passwords / keys needed
	Secret string `json:"secret"`

	WatcherSubCrsCommon `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Maximum=1
	// +kubebuilder:validation:Minimum=0
	// Replicas of Watcher service to run
	Replicas *int32 `json:"replicas"`

	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// TLS - Parameters related to the TLS
	TLS tls.Ca `json:"tls,omitempty"`
}

WatcherDecisionEngineSpec defines the desired state of WatcherDecisionEngine

func (*WatcherDecisionEngineSpec) DeepCopy

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

func (*WatcherDecisionEngineSpec) DeepCopyInto

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

type WatcherDecisionEngineStatus

type WatcherDecisionEngineStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	// ObservedGeneration - the most recent generation observed for this
	// service. If the observed generation is less than the spec generation,
	// then the controller has not processed the latest changes injected by
	// the openstack-operator in the top-level CR (e.g. the ContainerImage)
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ReadyCount of WatcherDecisionEngine instances
	ReadyCount int32 `json:"readyCount,omitempty"`

	// Map of hashes to track e.g. job status
	Hash map[string]string `json:"hash,omitempty"`

	// LastAppliedTopology - the last applied Topology
	LastAppliedTopology *topologyv1.TopoRef `json:"lastAppliedTopology,omitempty"`
}

WatcherDecisionEngineStatus defines the observed state of WatcherDecisionEngine

func (*WatcherDecisionEngineStatus) DeepCopy

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

func (*WatcherDecisionEngineStatus) DeepCopyInto

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

type WatcherDecisionEngineTemplate

type WatcherDecisionEngineTemplate struct {
	WatcherSubCrsTemplate `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// +kubebuilder:validation:Maximum=1
	// +kubebuilder:validation:Minimum=0
	// Replicas of WatcherDecisionEngine service to run
	Replicas *int32 `json:"replicas"`
}

WatcherDecisionEngineTemplate defines the input parameters specified by the user to create a WatcherDecisionengine via higher level CRDs.

func (*WatcherDecisionEngineTemplate) DeepCopy

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

func (*WatcherDecisionEngineTemplate) DeepCopyInto

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

func (*WatcherDecisionEngineTemplate) ValidateTopology

func (r *WatcherDecisionEngineTemplate) ValidateTopology(
	basePath *field.Path,
	namespace string,
) field.ErrorList

ValidateTopology validates the referenced TopoRef.Namespace.

type WatcherDefaults

type WatcherDefaults struct {
	APIContainerImageURL            string
	DecisionEngineContainerImageURL string
	ApplierContainerImageURL        string
}

WatcherDefaults -

func (*WatcherDefaults) DeepCopy

func (in *WatcherDefaults) DeepCopy() *WatcherDefaults

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

func (*WatcherDefaults) DeepCopyInto

func (in *WatcherDefaults) DeepCopyInto(out *WatcherDefaults)

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

type WatcherImages

type WatcherImages struct {
	// +kubebuilder:validation:Required
	// APIContainerImageURL
	APIContainerImageURL string `json:"apiContainerImageURL"`

	// +kubebuilder:validation:Required
	// DecisionEngineContainerImageURL
	DecisionEngineContainerImageURL string `json:"decisionengineContainerImageURL"`

	// +kubebuilder:validation:Required
	// ApplierContainerImageURL
	ApplierContainerImageURL string `json:"applierContainerImageURL"`
}

func (*WatcherImages) DeepCopy

func (in *WatcherImages) DeepCopy() *WatcherImages

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

func (*WatcherImages) DeepCopyInto

func (in *WatcherImages) DeepCopyInto(out *WatcherImages)

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

func (*WatcherImages) Default

func (r *WatcherImages) Default(defaults WatcherDefaults)

type WatcherList

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

WatcherList contains a list of Watcher

func (*WatcherList) DeepCopy

func (in *WatcherList) DeepCopy() *WatcherList

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

func (*WatcherList) DeepCopyInto

func (in *WatcherList) DeepCopyInto(out *WatcherList)

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

func (*WatcherList) DeepCopyObject

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

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

type WatcherSpec

type WatcherSpec struct {
	WatcherSpecCore `json:",inline"`

	WatcherImages `json:",inline"`
}

WatcherSpec defines the desired state of Watcher

func (*WatcherSpec) DeepCopy

func (in *WatcherSpec) DeepCopy() *WatcherSpec

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

func (*WatcherSpec) DeepCopyInto

func (in *WatcherSpec) DeepCopyInto(out *WatcherSpec)

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

func (*WatcherSpec) Default

func (spec *WatcherSpec) Default()

Default - set defaults for this WatcherCore spec.

func (*WatcherSpec) ValidateCreate

func (r *WatcherSpec) ValidateCreate(basePath *field.Path, namespace string) field.ErrorList

ValidateCreate validates the WatcherSpec during the webhook invocation.

func (*WatcherSpec) ValidateUpdate

func (r *WatcherSpec) ValidateUpdate(old WatcherSpec, basePath *field.Path, namespace string) field.ErrorList

ValidateCreate validates the WatcherSpec during the webhook invocation.

type WatcherSpecCore

type WatcherSpecCore struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	WatcherCommon `json:",inline"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default=rabbitmq
	// RabbitMQ instance name
	// Needed to request a transportURL that is created and used in Watcher
	RabbitMqClusterName *string `json:"rabbitMqClusterName"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=osp-secret
	// Secret containing all passwords / keys needed
	Secret *string `json:"secret"`

	// +kubebuilder:validation:Required
	// MariaDB instance name
	// Required to use the mariadb-operator instance to create the DB and user
	DatabaseInstance *string `json:"databaseInstance"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=watcher
	// DatabaseAccount - MariaDBAccount CR name used for watcher DB, defaults to watcher
	DatabaseAccount *string `json:"databaseAccount"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default={replicas:1}
	// APIServiceTemplate - define the watcher-api service
	APIServiceTemplate WatcherAPITemplate `json:"apiServiceTemplate"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default={replicas:1}
	// WatcherApplierTemplate - define the watcher-applier service
	ApplierServiceTemplate WatcherApplierTemplate `json:"applierServiceTemplate"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default={replicas:1}
	// DecisionEngineServiceTemplate - define the watcher-decision-engine service
	DecisionEngineServiceTemplate WatcherDecisionEngineTemplate `json:"decisionengineServiceTemplate"`

	// +kubebuilder:validation:Optional
	// DBPurge defines the parameters for the Watcher DB purging cron job
	DBPurge WatcherDBPurge `json:"dbPurge"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=60
	// +kubebuilder:validation:Minimum=10
	// APITimeout for Route and Apache
	APITimeout *int `json:"apiTimeout"`

	// +kubebuilder:validation:Optional
	// NotificationsBusInstance is the name of the RabbitMqCluster CR to select
	// the Message Bus Service instance used by the Watcher service to publish and consume notifications
	// from other services.
	// If undefined, the value will be inherited from OpenStackControlPlane.
	// An empty value "" leaves the notification drivers unconfigured and emitting no notifications at all.
	// Avoid colocating it with RabbitMqClusterName or other message bus instances used for RPC.
	NotificationsBusInstance *string `json:"notificationsBusInstance,omitempty"`
}

WatcherSpecCore defines the fields used from the OpenStackControlPlane CR (does not include images)

func (*WatcherSpecCore) DeepCopy

func (in *WatcherSpecCore) DeepCopy() *WatcherSpecCore

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

func (*WatcherSpecCore) DeepCopyInto

func (in *WatcherSpecCore) DeepCopyInto(out *WatcherSpecCore)

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

func (*WatcherSpecCore) Default

func (spec *WatcherSpecCore) Default()

Default - set defaults for this WatcherSpecCore spec.

func (*WatcherSpecCore) SetDefaultRouteAnnotations

func (spec *WatcherSpecCore) SetDefaultRouteAnnotations(annotations map[string]string)

SetDefaultRouteAnnotations sets HAProxy timeout values for Watcher API routes This function is called by the OpenStackControlPlane webhook to set the default HAProxy timeout for the Watcher API routes.

func (*WatcherSpecCore) ValidateCreate

func (r *WatcherSpecCore) ValidateCreate(basePath *field.Path, namespace string) field.ErrorList

ValidateCreate validates the WatcherSpecCore during the webhook invocation. It is expected to be called by the validation webhook in the higher level meta operator

func (*WatcherSpecCore) ValidateUpdate

func (r *WatcherSpecCore) ValidateUpdate(old WatcherSpecCore, basePath *field.Path, namespace string) field.ErrorList

ValidateUpdate validates the WatcherSpecCore during the webhook invocation. It is expected to be called by the validation webhook in the higher level meta operator

func (*WatcherSpecCore) ValidateWatcherTopology

func (spec *WatcherSpecCore) ValidateWatcherTopology(basePath *field.Path, namespace string) field.ErrorList

ValidateWatcherTopology - Returns an ErrorList if the Topology is referenced on a different namespace

type WatcherStatus

type WatcherStatus struct {
	// Conditions
	Conditions condition.Conditions `json:"conditions,omitempty" optional:"true"`

	// ServiceID - The ID of the watcher service registered in keystone
	ServiceID string `json:"serviceID,omitempty"`

	// Map of hashes to track e.g. job status
	Hash map[string]string `json:"hash,omitempty"`

	// ObservedGeneration - the most recent generation observed for this
	// service. If the observed generation is less than the spec generation,
	// then the controller has not processed the latest changes injected by
	// the opentack-operator in the top-level CR (e.g. the ContainerImage)
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// APIServiceReadyCount defines the number or replicas ready from watcher-api
	APIServiceReadyCount int32 `json:"apiServiceReadyCount,omitempty"`

	// ApplierServiceReadyCount defines the number or replicas ready from watcher-applier
	ApplierServiceReadyCount int32 `json:"applierServiceReadyCount,omitempty"`

	// DecisionEngineServiceReadyCount defines the number or replicas ready from watcher-decision-engine
	DecisionEngineServiceReadyCount int32 `json:"decisionengineServiceReadyCount,omitempty"`
}

WatcherStatus defines the observed state of Watcher

func (*WatcherStatus) DeepCopy

func (in *WatcherStatus) DeepCopy() *WatcherStatus

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

func (*WatcherStatus) DeepCopyInto

func (in *WatcherStatus) DeepCopyInto(out *WatcherStatus)

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

type WatcherSubCrsCommon

type WatcherSubCrsCommon struct {
	// +kubebuilder:validation:Optional
	// The service specific Container Image URL (will be set to environmental default if empty)
	ContainerImage string `json:"containerImage"`

	// +kubebuilder:validation:Optional
	// Resources - Compute Resources required by this service (Limits/Requests).
	// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Required
	// ServiceAccount - service account name used internally to provide
	// Watcher services the default SA name
	ServiceAccount string `json:"serviceAccount"`
}

WatcherSubCrsCommon

func (*WatcherSubCrsCommon) DeepCopy

func (in *WatcherSubCrsCommon) DeepCopy() *WatcherSubCrsCommon

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

func (*WatcherSubCrsCommon) DeepCopyInto

func (in *WatcherSubCrsCommon) DeepCopyInto(out *WatcherSubCrsCommon)

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

type WatcherSubCrsTemplate

type WatcherSubCrsTemplate struct {
	// +kubebuilder:validation:Optional
	// Resources - Compute Resources required by this service (Limits/Requests).
	// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	// NodeSelector to target subset of worker nodes running this component. Setting here overrides
	// any global NodeSelector settings within the Watcher CR.
	NodeSelector *map[string]string `json:"nodeSelector,omitempty"`

	// +kubebuilder:validation:Optional
	// CustomServiceConfig - customize the service config using this parameter to change service defaults,
	// or overwrite rendered information using raw OpenStack config format. The content gets added to
	// to /etc/<service>/<service>.conf.d directory as a custom config file.
	CustomServiceConfig string `json:"customServiceConfig,omitempty"`

	// +kubebuilder:validation:Optional
	// TopologyRef to apply the Topology defined by the associated CR referenced
	// by name
	TopologyRef *topologyv1.TopoRef `json:"topologyRef,omitempty"`
}

WatcherSubCrsTemplate define de common part of the input parameters specified by the user to create a 2nd CR via higher level CRDs.

func (*WatcherSubCrsTemplate) DeepCopy

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

func (*WatcherSubCrsTemplate) DeepCopyInto

func (in *WatcherSubCrsTemplate) DeepCopyInto(out *WatcherSubCrsTemplate)

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