Help us shape the future of Go! Take the 2026 Go Developer Survey

v1beta1

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2022 License: MPL-2.0 Imports: 11 Imported by: 9

Documentation

Overview

Package v1beta1 contains API Schema definitions for the rabbitmq v1beta1 API group +kubebuilder:object:generate=true +groupName=rabbitmq.com

Index

Constants

This section is empty.

Variables

View Source
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

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

func (*EmbeddedLabelsAnnotations) DeepCopyInto

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

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;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 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) SecretTLSEnabled added in v1.9.0

func (cluster *RabbitmqCluster) SecretTLSEnabled() bool

func (*RabbitmqCluster) ServiceSubDomain added in v1.9.0

func (cluster *RabbitmqCluster) ServiceSubDomain() string

func (*RabbitmqCluster) SingleTLSSecret

func (cluster *RabbitmqCluster) SingleTLSSecret() bool

func (*RabbitmqCluster) StreamNeeded added in v1.8.3

func (cluster *RabbitmqCluster) StreamNeeded() bool

the OSR plugin `rabbitmq_multi_dc_replication` enables `rabbitmq_stream` as a dependency

func (*RabbitmqCluster) TLSEnabled

func (cluster *RabbitmqCluster) TLSEnabled() bool

func (*RabbitmqCluster) UsesDefaultUserUpdaterImage added in v1.10.0

func (cluster *RabbitmqCluster) UsesDefaultUserUpdaterImage() bool

func (*RabbitmqCluster) VaultDefaultUserSecretEnabled added in v1.9.0

func (cluster *RabbitmqCluster) VaultDefaultUserSecretEnabled() bool

func (*RabbitmqCluster) VaultEnabled added in v1.9.0

func (cluster *RabbitmqCluster) VaultEnabled() bool

func (*RabbitmqCluster) VaultTLSEnabled added in v1.9.0

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"`
}

RabbitMQ-related configuration.

func (*RabbitmqClusterConfigurationSpec) DeepCopy

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

func (*RabbitmqClusterConfigurationSpec) DeepCopyInto

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

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

func (*RabbitmqClusterDefaultUser) DeepCopyInto

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

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

func (*RabbitmqClusterOverrideSpec) DeepCopyInto

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

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

func (*RabbitmqClusterPersistenceSpec) DeepCopyInto

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

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

func (*RabbitmqClusterSecretReference) DeepCopyInto

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

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

func (*RabbitmqClusterServiceReference) DeepCopyInto

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

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

func (*RabbitmqClusterServiceSpec) DeepCopyInto

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"`
	// 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

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 added in v1.9.0

type SecretBackend struct {
	Vault *VaultSpec `json:"vault,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 added in v1.9.0

func (in *SecretBackend) DeepCopy() *SecretBackend

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

func (*SecretBackend) DeepCopyInto added in v1.9.0

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

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

func (in *TLSSpec) DeepCopy() *TLSSpec

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

func (*TLSSpec) DeepCopyInto

func (in *TLSSpec) DeepCopyInto(out *TLSSpec)

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

type VaultSpec added in v1.9.0

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 added in v1.9.0

func (in *VaultSpec) DeepCopy() *VaultSpec

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

func (*VaultSpec) DeepCopyInto added in v1.9.0

func (in *VaultSpec) DeepCopyInto(out *VaultSpec)

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

func (*VaultSpec) DefaultUserSecretEnabled added in v1.9.0

func (spec *VaultSpec) DefaultUserSecretEnabled() bool

func (*VaultSpec) TLSEnabled added in v1.9.0

func (spec *VaultSpec) TLSEnabled() bool

type VaultTLSSpec added in v1.9.0

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"`
}

func (*VaultTLSSpec) DeepCopy added in v1.9.0

func (in *VaultTLSSpec) DeepCopy() *VaultTLSSpec

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

func (*VaultTLSSpec) DeepCopyInto added in v1.9.0

func (in *VaultTLSSpec) DeepCopyInto(out *VaultTLSSpec)

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