Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the rabbitmq v1beta1 API group +kubebuilder:object:generate=true +groupName=rabbitmq.com
Index ¶
- Variables
- type EmbeddedLabelsAnnotations
- type EmbeddedObjectMeta
- type PersistentVolumeClaim
- type Plugin
- type PodTemplateSpec
- type RabbitmqCluster
- func (cluster *RabbitmqCluster) AdditionalPluginEnabled(plugin Plugin) bool
- func (cluster RabbitmqCluster) ChildResourceName(name string) string
- func (in *RabbitmqCluster) DeepCopy() *RabbitmqCluster
- func (in *RabbitmqCluster) DeepCopyInto(out *RabbitmqCluster)
- func (in *RabbitmqCluster) DeepCopyObject() runtime.Object
- func (cluster *RabbitmqCluster) DisableNonTLSListeners() bool
- func (cluster *RabbitmqCluster) ExternalSecretEnabled() bool
- func (cluster *RabbitmqCluster) MemoryLimited() bool
- func (cluster *RabbitmqCluster) MutualTLSEnabled() bool
- func (cluster RabbitmqCluster) PVCName(i int) string
- func (cluster *RabbitmqCluster) SecretTLSEnabled() bool
- func (cluster *RabbitmqCluster) ServiceSubDomain() string
- func (cluster *RabbitmqCluster) SingleTLSSecret() bool
- func (cluster *RabbitmqCluster) StreamNeeded() bool
- func (cluster *RabbitmqCluster) TLSEnabled() bool
- func (cluster *RabbitmqCluster) UsesDefaultUserUpdaterImage(controlRabbitmqImage bool) bool
- func (cluster *RabbitmqCluster) VaultDefaultUserSecretEnabled() bool
- func (cluster *RabbitmqCluster) VaultEnabled() bool
- func (cluster *RabbitmqCluster) VaultTLSEnabled() bool
- type RabbitmqClusterConfigurationSpec
- type RabbitmqClusterDefaultUser
- type RabbitmqClusterList
- type RabbitmqClusterOverrideSpec
- type RabbitmqClusterPersistenceSpec
- type RabbitmqClusterSecretReference
- type RabbitmqClusterServiceReference
- type RabbitmqClusterServiceSpec
- type RabbitmqClusterSpec
- type RabbitmqClusterStatus
- func (in *RabbitmqClusterStatus) DeepCopy() *RabbitmqClusterStatus
- func (in *RabbitmqClusterStatus) DeepCopyInto(out *RabbitmqClusterStatus)
- func (clusterStatus *RabbitmqClusterStatus) SetCondition(condType status.RabbitmqClusterConditionType, ...)
- func (clusterStatus *RabbitmqClusterStatus) SetConditions(resources []runtime.Object)
- type SecretBackend
- type Service
- type StatefulSet
- type StatefulSetSpec
- type TLSSpec
- type VaultSpec
- type VaultTLSSpec
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "rabbitmq.com", 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 ¶
This section is empty.
Types ¶
type EmbeddedLabelsAnnotations ¶
type EmbeddedLabelsAnnotations struct { // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +optional Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` }
EmbeddedLabelsAnnotations is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only labels and annotations are included.
func (*EmbeddedLabelsAnnotations) DeepCopy ¶
func (in *EmbeddedLabelsAnnotations) DeepCopy() *EmbeddedLabelsAnnotations
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedLabelsAnnotations.
func (*EmbeddedLabelsAnnotations) DeepCopyInto ¶
func (in *EmbeddedLabelsAnnotations) DeepCopyInto(out *EmbeddedLabelsAnnotations)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedObjectMeta ¶
type EmbeddedObjectMeta struct { // Name must be unique within a namespace. Is required when creating resources, although // some resources may allow a client to request the generation of an appropriate name // automatically. Name is primarily intended for creation idempotence and configuration // definition. // Cannot be updated. // More info: http://kubernetes.io/docs/user-guide/identifiers#names // +optional Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` // Namespace defines the space within each name must be unique. An empty namespace is // equivalent to the "default" namespace, but "default" is the canonical representation. // Not all objects are required to be scoped to a namespace - the value of this field for // those objects will be empty. // // Must be a DNS_LABEL. // Cannot be updated. // More info: http://kubernetes.io/docs/user-guide/namespaces // +optional Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +optional Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` }
EmbeddedObjectMeta is an embedded subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta. Only fields which are relevant to embedded resources are included.
func (*EmbeddedObjectMeta) DeepCopy ¶
func (in *EmbeddedObjectMeta) DeepCopy() *EmbeddedObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedObjectMeta.
func (*EmbeddedObjectMeta) DeepCopyInto ¶
func (in *EmbeddedObjectMeta) DeepCopyInto(out *EmbeddedObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PersistentVolumeClaim ¶
type PersistentVolumeClaim struct { // Embedded metadata identifying a Kind and API Version of an object. // For more info, see: https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#TypeMeta metav1.TypeMeta `json:",inline"` // +optional EmbeddedObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the desired characteristics of a volume requested by a pod author. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims // +optional Spec corev1.PersistentVolumeClaimSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` }
PersistentVolumeClaim is an embedded version of k8s.io/api/core/v1.PersistentVolumeClaim. It contains TypeMeta and a reduced ObjectMeta. Field status is omitted.
func (*PersistentVolumeClaim) DeepCopy ¶
func (in *PersistentVolumeClaim) DeepCopy() *PersistentVolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaim.
func (*PersistentVolumeClaim) DeepCopyInto ¶
func (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Plugin ¶
type Plugin string
A Plugin to enable on the RabbitmqCluster. +kubebuilder:validation:Pattern:="^\\w+$" +kubebuilder:validation:MaxLength=100
type PodTemplateSpec ¶
type PodTemplateSpec struct { // +optional *EmbeddedObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the desired behavior of the pod. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status // +optional Spec *corev1.PodSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` }
PodTemplateSpec is an embedded version of k8s.io/api/core/v1.PodTemplateSpec. It contains a reduced ObjectMeta.
func (*PodTemplateSpec) DeepCopy ¶
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (*PodTemplateSpec) DeepCopyInto ¶
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqCluster ¶
type RabbitmqCluster struct { // Embedded metadata identifying a Kind and API Version of an object. // For more info, see: https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#TypeMeta metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Spec is the desired state of the RabbitmqCluster Custom Resource. Spec RabbitmqClusterSpec `json:"spec,omitempty"` // Status presents the observed state of RabbitmqCluster Status RabbitmqClusterStatus `json:"status,omitempty"` }
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="AllReplicasReady",type="string",JSONPath=".status.conditions[?(@.type == 'AllReplicasReady')].status" +kubebuilder:printcolumn:name="ReconcileSuccess",type="string",JSONPath=".status.conditions[?(@.type == 'ReconcileSuccess')].status" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:shortName={"rmq"},categories=all;rabbitmq RabbitmqCluster is the Schema for the RabbitmqCluster API. Each instance of this object corresponds to a single RabbitMQ cluster.
func (*RabbitmqCluster) AdditionalPluginEnabled ¶
func (cluster *RabbitmqCluster) AdditionalPluginEnabled(plugin Plugin) bool
func (RabbitmqCluster) ChildResourceName ¶
func (cluster RabbitmqCluster) ChildResourceName(name string) string
func (*RabbitmqCluster) DeepCopy ¶
func (in *RabbitmqCluster) DeepCopy() *RabbitmqCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqCluster.
func (*RabbitmqCluster) DeepCopyInto ¶
func (in *RabbitmqCluster) DeepCopyInto(out *RabbitmqCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RabbitmqCluster) DeepCopyObject ¶
func (in *RabbitmqCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RabbitmqCluster) DisableNonTLSListeners ¶
func (cluster *RabbitmqCluster) DisableNonTLSListeners() bool
func (*RabbitmqCluster) ExternalSecretEnabled ¶
func (cluster *RabbitmqCluster) ExternalSecretEnabled() bool
func (*RabbitmqCluster) MemoryLimited ¶
func (cluster *RabbitmqCluster) MemoryLimited() bool
func (*RabbitmqCluster) MutualTLSEnabled ¶
func (cluster *RabbitmqCluster) MutualTLSEnabled() bool
func (RabbitmqCluster) PVCName ¶
func (cluster RabbitmqCluster) PVCName(i int) string
func (*RabbitmqCluster) SecretTLSEnabled ¶
func (cluster *RabbitmqCluster) SecretTLSEnabled() bool
func (*RabbitmqCluster) ServiceSubDomain ¶
func (cluster *RabbitmqCluster) ServiceSubDomain() string
func (*RabbitmqCluster) SingleTLSSecret ¶
func (cluster *RabbitmqCluster) SingleTLSSecret() bool
func (*RabbitmqCluster) StreamNeeded ¶
func (cluster *RabbitmqCluster) StreamNeeded() bool
StreamNeeded returns true when stream or plugins that auto enable stream are turned on
func (*RabbitmqCluster) TLSEnabled ¶
func (cluster *RabbitmqCluster) TLSEnabled() bool
func (*RabbitmqCluster) UsesDefaultUserUpdaterImage ¶
func (cluster *RabbitmqCluster) UsesDefaultUserUpdaterImage(controlRabbitmqImage bool) bool
func (*RabbitmqCluster) VaultDefaultUserSecretEnabled ¶
func (cluster *RabbitmqCluster) VaultDefaultUserSecretEnabled() bool
func (*RabbitmqCluster) VaultEnabled ¶
func (cluster *RabbitmqCluster) VaultEnabled() bool
func (*RabbitmqCluster) VaultTLSEnabled ¶
func (cluster *RabbitmqCluster) VaultTLSEnabled() bool
type RabbitmqClusterConfigurationSpec ¶
type RabbitmqClusterConfigurationSpec struct { // List of plugins to enable in addition to essential plugins: rabbitmq_management, rabbitmq_prometheus, and rabbitmq_peer_discovery_k8s. // +kubebuilder:validation:MaxItems:=100 AdditionalPlugins []Plugin `json:"additionalPlugins,omitempty"` // Modify to add to the rabbitmq.conf file in addition to default configurations set by the operator. // Modifying this property on an existing RabbitmqCluster will trigger a StatefulSet rolling restart and will cause rabbitmq downtime. // For more information on this config, see https://www.rabbitmq.com/configure.html#config-file // +kubebuilder:validation:MaxLength:=2000 AdditionalConfig string `json:"additionalConfig,omitempty"` // Specify any rabbitmq advanced.config configurations to apply to the cluster. // For more information on advanced config, see https://www.rabbitmq.com/configure.html#advanced-config-file // +kubebuilder:validation:MaxLength:=100000 AdvancedConfig string `json:"advancedConfig,omitempty"` // Modify to add to the rabbitmq-env.conf file. Modifying this property on an existing RabbitmqCluster will trigger a StatefulSet rolling restart and will cause rabbitmq downtime. // For more information on env config, see https://www.rabbitmq.com/man/rabbitmq-env.conf.5.html // +kubebuilder:validation:MaxLength:=100000 EnvConfig string `json:"envConfig,omitempty"` // Erlang Inet configuration to apply to the Erlang VM running rabbit. // See also: https://www.erlang.org/doc/apps/erts/inet_cfg.html // +kubebuilder:validation:MaxLength:=2000 ErlangInetConfig string `json:"erlangInetConfig,omitempty"` }
RabbitMQ-related configuration.
func (*RabbitmqClusterConfigurationSpec) DeepCopy ¶
func (in *RabbitmqClusterConfigurationSpec) DeepCopy() *RabbitmqClusterConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterConfigurationSpec.
func (*RabbitmqClusterConfigurationSpec) DeepCopyInto ¶
func (in *RabbitmqClusterConfigurationSpec) DeepCopyInto(out *RabbitmqClusterConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterDefaultUser ¶
type RabbitmqClusterDefaultUser struct { // Reference to the Kubernetes Secret containing the credentials of the default // user. SecretReference *RabbitmqClusterSecretReference `json:"secretReference,omitempty"` // Reference to the Kubernetes Service serving the cluster. ServiceReference *RabbitmqClusterServiceReference `json:"serviceReference,omitempty"` }
Contains references to resources created with the RabbitmqCluster resource.
func (*RabbitmqClusterDefaultUser) DeepCopy ¶
func (in *RabbitmqClusterDefaultUser) DeepCopy() *RabbitmqClusterDefaultUser
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterDefaultUser.
func (*RabbitmqClusterDefaultUser) DeepCopyInto ¶
func (in *RabbitmqClusterDefaultUser) DeepCopyInto(out *RabbitmqClusterDefaultUser)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterList ¶
type RabbitmqClusterList struct { // Embedded metadata identifying a Kind and API Version of an object. // For more info, see: https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#TypeMeta metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` // Array of RabbitmqCluster resources. Items []RabbitmqCluster `json:"items"` }
RabbitmqClusterList contains a list of RabbitmqClusters.
func (*RabbitmqClusterList) DeepCopy ¶
func (in *RabbitmqClusterList) DeepCopy() *RabbitmqClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterList.
func (*RabbitmqClusterList) DeepCopyInto ¶
func (in *RabbitmqClusterList) DeepCopyInto(out *RabbitmqClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RabbitmqClusterList) DeepCopyObject ¶
func (in *RabbitmqClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RabbitmqClusterOverrideSpec ¶
type RabbitmqClusterOverrideSpec struct { // Override configuration for the RabbitMQ StatefulSet. StatefulSet *StatefulSet `json:"statefulSet,omitempty"` // Override configuration for the Service created to serve traffic to the cluster. Service *Service `json:"service,omitempty"` }
Provides the ability to override the generated manifest of several child resources.
func (*RabbitmqClusterOverrideSpec) DeepCopy ¶
func (in *RabbitmqClusterOverrideSpec) DeepCopy() *RabbitmqClusterOverrideSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterOverrideSpec.
func (*RabbitmqClusterOverrideSpec) DeepCopyInto ¶
func (in *RabbitmqClusterOverrideSpec) DeepCopyInto(out *RabbitmqClusterOverrideSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterPersistenceSpec ¶
type RabbitmqClusterPersistenceSpec struct { // The name of the StorageClass to claim a PersistentVolume from. StorageClassName *string `json:"storageClassName,omitempty"` // The requested size of the persistent volume attached to each Pod in the RabbitmqCluster. // The format of this field matches that defined by kubernetes/apimachinery. // See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info on the format of this field. // +kubebuilder:default:="10Gi" Storage *k8sresource.Quantity `json:"storage,omitempty"` }
The settings for the persistent storage desired for each Pod in the RabbitmqCluster.
func (*RabbitmqClusterPersistenceSpec) DeepCopy ¶
func (in *RabbitmqClusterPersistenceSpec) DeepCopy() *RabbitmqClusterPersistenceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterPersistenceSpec.
func (*RabbitmqClusterPersistenceSpec) DeepCopyInto ¶
func (in *RabbitmqClusterPersistenceSpec) DeepCopyInto(out *RabbitmqClusterPersistenceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterSecretReference ¶
type RabbitmqClusterSecretReference struct { // Name of the Secret containing the default user credentials Name string `json:"name"` // Namespace of the Secret containing the default user credentials Namespace string `json:"namespace"` // Key-value pairs in the Secret corresponding to `username`, `password`, `host`, and `port` Keys map[string]string `json:"keys"` }
Reference to the Kubernetes Secret containing the credentials of the default user.
func (*RabbitmqClusterSecretReference) DeepCopy ¶
func (in *RabbitmqClusterSecretReference) DeepCopy() *RabbitmqClusterSecretReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterSecretReference.
func (*RabbitmqClusterSecretReference) DeepCopyInto ¶
func (in *RabbitmqClusterSecretReference) DeepCopyInto(out *RabbitmqClusterSecretReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterServiceReference ¶
type RabbitmqClusterServiceReference struct { // Name of the Service serving the cluster Name string `json:"name"` // Namespace of the Service serving the cluster Namespace string `json:"namespace"` }
Reference to the Kubernetes Service serving the cluster.
func (*RabbitmqClusterServiceReference) DeepCopy ¶
func (in *RabbitmqClusterServiceReference) DeepCopy() *RabbitmqClusterServiceReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterServiceReference.
func (*RabbitmqClusterServiceReference) DeepCopyInto ¶
func (in *RabbitmqClusterServiceReference) DeepCopyInto(out *RabbitmqClusterServiceReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterServiceSpec ¶
type RabbitmqClusterServiceSpec struct { // Type of Service to create for the cluster. Must be one of: ClusterIP, LoadBalancer, NodePort. // For more info see https://pkg.go.dev/k8s.io/api/core/v1#ServiceType // +kubebuilder:validation:Enum=ClusterIP;LoadBalancer;NodePort // +kubebuilder:default:="ClusterIP" Type corev1.ServiceType `json:"type,omitempty"` // Annotations to add to the Service. Annotations map[string]string `json:"annotations,omitempty"` // IPFamilyPolicy represents the dual-stack-ness requested or required by a Service // See also: https://pkg.go.dev/k8s.io/api/core/v1#IPFamilyPolicy // +kubebuilder:validation:Enum=SingleStack;PreferDualStack;RequireDualStack IPFamilyPolicy *corev1.IPFamilyPolicy `json:"ipFamilyPolicy,omitempty"` }
Settable attributes for the Service resource.
func (*RabbitmqClusterServiceSpec) DeepCopy ¶
func (in *RabbitmqClusterServiceSpec) DeepCopy() *RabbitmqClusterServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterServiceSpec.
func (*RabbitmqClusterServiceSpec) DeepCopyInto ¶
func (in *RabbitmqClusterServiceSpec) DeepCopyInto(out *RabbitmqClusterServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterSpec ¶
type RabbitmqClusterSpec struct { // Replicas is the number of nodes in the RabbitMQ cluster. Each node is deployed as a Replica in a StatefulSet. Only 1, 3, 5 replicas clusters are tested. // This value should be an odd number to ensure the resultant cluster can establish exactly one quorum of nodes // in the event of a fragmenting network partition. // +optional // +kubebuilder:validation:Minimum:=0 // +kubebuilder:default:=1 Replicas *int32 `json:"replicas,omitempty"` // Image is the name of the RabbitMQ docker image to use for RabbitMQ nodes in the RabbitmqCluster. // Must be provided together with ImagePullSecrets in order to use an image in a private registry. Image string `json:"image,omitempty"` // List of Secret resource containing access credentials to the registry for the RabbitMQ image. Required if the docker registry is private. ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // The desired state of the Kubernetes Service to create for the cluster. // +kubebuilder:default:={type: "ClusterIP"} Service RabbitmqClusterServiceSpec `json:"service,omitempty"` // The desired persistent storage configuration for each Pod in the cluster. // +kubebuilder:default:={storage: "10Gi"} Persistence RabbitmqClusterPersistenceSpec `json:"persistence,omitempty"` // The desired compute resource requirements of Pods in the cluster. // +kubebuilder:default:={limits: {cpu: "2000m", memory: "2Gi"}, requests: {cpu: "1000m", memory: "2Gi"}} Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // Affinity scheduling rules to be applied on created Pods. Affinity *corev1.Affinity `json:"affinity,omitempty"` // Tolerations is the list of Toleration resources attached to each Pod in the RabbitmqCluster. Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Configuration options for RabbitMQ Pods created in the cluster. Rabbitmq RabbitmqClusterConfigurationSpec `json:"rabbitmq,omitempty"` // TLS-related configuration for the RabbitMQ cluster. TLS TLSSpec `json:"tls,omitempty"` // Provides the ability to override the generated manifest of several child resources. Override RabbitmqClusterOverrideSpec `json:"override,omitempty"` // If unset, or set to false, the cluster will run `rabbitmq-queues rebalance all` whenever the cluster is updated. // Set to true to prevent the operator rebalancing queue leaders after a cluster update. // Has no effect if the cluster only consists of one node. // For more information, see https://www.rabbitmq.com/rabbitmq-queues.8.html#rebalance SkipPostDeploySteps bool `json:"skipPostDeploySteps,omitempty"` // TerminationGracePeriodSeconds is the timeout that each rabbitmqcluster pod will have to terminate gracefully. // It defaults to 604800 seconds ( a week long) to ensure that the container preStop lifecycle hook can finish running. // For more information, see: https://github.com/rabbitmq/cluster-operator/blob/main/docs/design/20200520-graceful-pod-termination.md // +kubebuilder:validation:Minimum:=0 // +kubebuilder:default:=604800 TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` // DelayStartSeconds is the time the init container (`setup-container`) will sleep before terminating. // This effectively delays the time between starting the Pod and starting the `rabbitmq` container. // RabbitMQ relies on up-to-date DNS entries early during peer discovery. // The purpose of this artificial delay is to ensure that DNS entries are up-to-date when booting RabbitMQ. // For more information, see https://github.com/kubernetes/kubernetes/issues/92559 // If your Kubernetes DNS backend is configured with a low DNS cache value or publishes not ready addresses // promptly, you can decrase this value or set it to 0. // +kubebuilder:validation:Minimum:=0 // +kubebuilder:default:=30 DelayStartSeconds *int32 `json:"delayStartSeconds,omitempty"` // Secret backend configuration for the RabbitmqCluster. // Enables to fetch default user credentials and certificates from K8s external secret stores. SecretBackend SecretBackend `json:"secretBackend,omitempty"` }
Spec is the desired state of the RabbitmqCluster Custom Resource.
func (*RabbitmqClusterSpec) DeepCopy ¶
func (in *RabbitmqClusterSpec) DeepCopy() *RabbitmqClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterSpec.
func (*RabbitmqClusterSpec) DeepCopyInto ¶
func (in *RabbitmqClusterSpec) DeepCopyInto(out *RabbitmqClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RabbitmqClusterStatus ¶
type RabbitmqClusterStatus struct { // Set of Conditions describing the current state of the RabbitmqCluster Conditions []status.RabbitmqClusterCondition `json:"conditions"` // Identifying information on internal resources DefaultUser *RabbitmqClusterDefaultUser `json:"defaultUser,omitempty"` // Binding exposes a secret containing the binding information for this // RabbitmqCluster. It implements the service binding Provisioned Service // duck type. See: https://github.com/servicebinding/spec#provisioned-service Binding *corev1.LocalObjectReference `json:"binding,omitempty"` // observedGeneration is the most recent successful generation observed for this RabbitmqCluster. It corresponds to the // RabbitmqCluster's generation, which is updated on mutation by the API Server. ObservedGeneration int64 `json:"observedGeneration,omitempty"` }
Status presents the observed state of RabbitmqCluster
func (*RabbitmqClusterStatus) DeepCopy ¶
func (in *RabbitmqClusterStatus) DeepCopy() *RabbitmqClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RabbitmqClusterStatus.
func (*RabbitmqClusterStatus) DeepCopyInto ¶
func (in *RabbitmqClusterStatus) DeepCopyInto(out *RabbitmqClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RabbitmqClusterStatus) SetCondition ¶
func (clusterStatus *RabbitmqClusterStatus) SetCondition(condType status.RabbitmqClusterConditionType, condStatus corev1.ConditionStatus, reason string, messages ...string)
func (*RabbitmqClusterStatus) SetConditions ¶
func (clusterStatus *RabbitmqClusterStatus) SetConditions(resources []runtime.Object)
type SecretBackend ¶
type SecretBackend struct { Vault *VaultSpec `json:"vault,omitempty"` ExternalSecret v1.LocalObjectReference `json:"externalSecret,omitempty"` }
SecretBackend configures a single secret backend. Today, only Vault exists as supported secret backend. Future secret backends could be Secrets Store CSI Driver. If not configured, K8s Secrets will be used.
func (*SecretBackend) DeepCopy ¶
func (in *SecretBackend) DeepCopy() *SecretBackend
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretBackend.
func (*SecretBackend) DeepCopyInto ¶
func (in *SecretBackend) DeepCopyInto(out *SecretBackend)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Service ¶
type Service struct { // +optional *EmbeddedLabelsAnnotations `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the behavior of a Service. // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status // +optional Spec *corev1.ServiceSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` }
Override configuration for the Service created to serve traffic to the cluster. Allows for the manifest of the created Service to be overwritten with custom configuration.
func (*Service) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSet ¶
type StatefulSet struct { // +optional *EmbeddedLabelsAnnotations `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the desired identities of pods in this set. // +optional Spec *StatefulSetSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` }
Override configuration for the RabbitMQ StatefulSet. Allows for the manifest of the created StatefulSet to be overwritten with custom configuration.
func (*StatefulSet) DeepCopy ¶
func (in *StatefulSet) DeepCopy() *StatefulSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.
func (*StatefulSet) DeepCopyInto ¶
func (in *StatefulSet) DeepCopyInto(out *StatefulSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSetSpec ¶
type StatefulSetSpec struct { // replicas corresponds to the desired number of Pods in the StatefulSet. // For more info, see https://pkg.go.dev/k8s.io/api/apps/v1#StatefulSetSpec // +optional Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` // selector is a label query over pods that should match the replica count. // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors // +optional Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"` // template is the object that describes the pod that will be created if // insufficient replicas are detected. Each pod stamped out by the StatefulSet // will fulfill this Template, but have a unique identity from the rest // of the StatefulSet. // +optional Template *PodTemplateSpec `json:"template,omitempty" protobuf:"bytes,3,opt,name=template"` // volumeClaimTemplates is a list of claims that pods are allowed to reference. // The StatefulSet controller is responsible for mapping network identities to // claims in a way that maintains the identity of a pod. Every claim in // this list must have at least one matching (by name) volumeMount in one // container in the template. A claim in this list takes precedence over // any volumes in the template, with the same name. // +optional VolumeClaimTemplates []PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,4,rep,name=volumeClaimTemplates"` // serviceName is the name of the service that governs this StatefulSet. // This service must exist before the StatefulSet, and is responsible for // the network identity of the set. Pods get DNS/hostnames that follow the // pattern: pod-specific-string.serviceName.default.svc.cluster.local // where "pod-specific-string" is managed by the StatefulSet controller. // +optional ServiceName string `json:"serviceName,omitempty" protobuf:"bytes,5,opt,name=serviceName"` // podManagementPolicy controls how pods are created during initial scale up, // when replacing pods on nodes, or when scaling down. The default policy is // `OrderedReady`, where pods are created in increasing order (pod-0, then // pod-1, etc) and the controller will wait until each pod is ready before // continuing. When scaling down, the pods are removed in the opposite order. // The alternative policy is `Parallel` which will create pods in parallel // to match the desired scale without waiting, and on scale down will delete // all pods at once. // +optional PodManagementPolicy appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty" protobuf:"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType"` // updateStrategy indicates the StatefulSetUpdateStrategy that will be // employed to update Pods in the StatefulSet when a revision is made to // Template. // +optional UpdateStrategy *appsv1.StatefulSetUpdateStrategy `json:"updateStrategy,omitempty" protobuf:"bytes,7,opt,name=updateStrategy"` // The minimum number of seconds for which a newly created StatefulSet pod should // be ready without any of its container crashing, for it to be considered // available. Defaults to 0 (pod will be considered available as soon as it // is ready). // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,4,opt,name=minReadySeconds"` // StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs // created from the StatefulSet VolumeClaimTemplates. // +optional PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"` }
StatefulSetSpec contains a subset of the fields included in k8s.io/api/apps/v1.StatefulSetSpec. Field RevisionHistoryLimit is omitted. Every field is made optional.
func (*StatefulSetSpec) DeepCopy ¶
func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.
func (*StatefulSetSpec) DeepCopyInto ¶
func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSSpec ¶
type TLSSpec struct { // Name of a Secret in the same Namespace as the RabbitmqCluster, containing the server's private key & public certificate for TLS. // The Secret must store these as tls.key and tls.crt, respectively. // This Secret can be created by running `kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key` SecretName string `json:"secretName,omitempty"` // Name of a Secret in the same Namespace as the RabbitmqCluster, containing the Certificate Authority's public certificate for TLS. // The Secret must store this as ca.crt. // This Secret can be created by running `kubectl create secret generic ca-secret --from-file=ca.crt=path/to/ca.cert` // Used for mTLS, and TLS for rabbitmq_web_stomp and rabbitmq_web_mqtt. CaSecretName string `json:"caSecretName,omitempty"` // When set to true, the RabbitmqCluster disables non-TLS listeners for RabbitMQ, management plugin and for any enabled plugins in the following list: stomp, mqtt, web_stomp, web_mqtt. // Only TLS-enabled clients will be able to connect. DisableNonTLSListeners bool `json:"disableNonTLSListeners,omitempty"` }
Allows for the configuration of TLS certificates to be used by RabbitMQ. Also allows for non-TLS traffic to be disabled.
func (*TLSSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSpec.
func (*TLSSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultSpec ¶
type VaultSpec struct { // Role in Vault. // If vault.defaultUserPath is set, this role must have capability to read the pre-created default user credential in Vault. // If vault.tls is set, this role must have capability to create and update certificates in the Vault PKI engine for the domains // "<namespace>" and "<namespace>.svc". Role string `json:"role,omitempty"` // Vault annotations that override the Vault annotations set by the cluster-operator. // For a list of valid Vault annotations, see https://www.vaultproject.io/docs/platform/k8s/injector/annotations // +optional Annotations map[string]string `json:"annotations,omitempty"` // Path in Vault to access a KV (Key-Value) secret with the fields username and password for the default user. // For example "secret/data/rabbitmq/config". DefaultUserPath string `json:"defaultUserPath,omitempty"` // Sidecar container that updates the default user's password in RabbitMQ when it changes in Vault. // Additionally, it updates /var/lib/rabbitmq/.rabbitmqadmin.conf (used by rabbitmqadmin CLI). // Set to empty string to disable the sidecar container. DefaultUserUpdaterImage *string `json:"defaultUserUpdaterImage,omitempty"` TLS VaultTLSSpec `json:"tls,omitempty"` }
VaultSpec will add Vault annotations (see https://www.vaultproject.io/docs/platform/k8s/injector/annotations) to RabbitMQ Pods. It requires a Vault Agent Sidecar Injector (https://www.vaultproject.io/docs/platform/k8s/injector) to be installed in the K8s cluster. The injector is a K8s Mutation Webhook Controller that alters RabbitMQ Pod specifications (based on the added Vault annotations) to include Vault Agent containers that render Vault secrets to the volume.
func (*VaultSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultSpec.
func (*VaultSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VaultSpec) DefaultUserSecretEnabled ¶
func (*VaultSpec) RootCAEnabled ¶ added in v2.8.0
func (*VaultSpec) TLSEnabled ¶
type VaultTLSSpec ¶
type VaultTLSSpec struct { // Path in Vault PKI engine. // For example "pki/issue/hashicorp-com". // required PKIIssuerPath string `json:"pkiIssuerPath,omitempty"` // Specifies the requested certificate Common Name (CN). // Defaults to <serviceName>.<namespace>.svc if not provided. // +optional CommonName string `json:"commonName,omitempty"` // Specifies the requested Subject Alternative Names (SANs), in a comma-delimited list. // These will be appended to the SANs added by the cluster-operator. // The cluster-operator will add SANs: // "<RabbitmqCluster name>-server-<index>.<RabbitmqCluster name>-nodes.<namespace>" for each pod, // e.g. "myrabbit-server-0.myrabbit-nodes.default". // +optional AltNames string `json:"altNames,omitempty"` // Specifies the requested IP Subject Alternative Names, in a comma-delimited list. // +optional IpSans string `json:"ipSans,omitempty"` // Specifies an optional path to retrieve the root CA from vault. Useful if certificates are issued by an intermediate CA // +optional PKIRootPath string `json:"pkiRootPath,omitempty"` }
func (*VaultTLSSpec) DeepCopy ¶
func (in *VaultTLSSpec) DeepCopy() *VaultTLSSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultTLSSpec.
func (*VaultTLSSpec) DeepCopyInto ¶
func (in *VaultTLSSpec) DeepCopyInto(out *VaultTLSSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.