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) MemoryLimited() bool
- func (cluster *RabbitmqCluster) MutualTLSEnabled() bool
- func (cluster RabbitmqCluster) PVCName(i int) string
- func (cluster *RabbitmqCluster) SingleTLSSecret() bool
- func (cluster *RabbitmqCluster) TLSEnabled() 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 Service
- type StatefulSet
- type StatefulSetSpec
- type TLSSpec
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 Verison 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 Verison 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 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 ¶ added in v1.1.0
func (cluster *RabbitmqCluster) DisableNonTLSListeners() bool
func (*RabbitmqCluster) MemoryLimited ¶
func (cluster *RabbitmqCluster) MemoryLimited() bool
func (*RabbitmqCluster) MutualTLSEnabled ¶
func (cluster *RabbitmqCluster) MutualTLSEnabled() bool
func (RabbitmqCluster) PVCName ¶ added in v1.5.0
func (cluster RabbitmqCluster) PVCName(i int) string
func (*RabbitmqCluster) SingleTLSSecret ¶
func (cluster *RabbitmqCluster) SingleTLSSecret() bool
func (*RabbitmqCluster) TLSEnabled ¶
func (cluster *RabbitmqCluster) TLSEnabled() 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"`
}
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 Verison 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"`
}
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.
// +kubebuilder:default:="rabbitmq:3.8.19-management"
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"`
}
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://k8s-service-bindings.github.io/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 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"`
}
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.