v1alpha1

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the operators v1alpha1 API group +kubebuilder:object:generate=true +groupName=operators.apache.io +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/spaghettifunk/pinot-operator/api +k8s:defaulter-gen=TypeMeta

Index

Constants

View Source
const OperatorVersion = "v0.0.1"

OperatorVersion current operator version

View Source
const (
	RevisionedAutoInjectionLabelKey = "pinot.io/rev"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "operators.apache.io", Version: "v1alpha1"}

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

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

Functions

func NamespacedNameFromRevision

func NamespacedNameFromRevision(revision string) types.NamespacedName

func NamespacedRevision

func NamespacedRevision(revision, namespace string) string

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

func SetPinotDefaults

func SetPinotDefaults(config *Pinot)

SetPinotDefaults sets some of the specs of the various components

func SetTenantDefaults

func SetTenantDefaults(config *Tenant)

SetTenantDefaults sets some of the specs when not defined by the user

Types

type BrokerConfiguration

type BrokerConfiguration struct {
	// +optional
	CommonResourceConfiguration `json:",inline"`
	// Extra JVM parameters to be passed to the controller service
	// +kubebuilder:default:="-Xms256M -Xmx1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
	JvmOptions string `json:"jvmOptions,omitempty"`
	// +optional
	Service ServiceResourceConfiguration `json:"service,omitempty"`
	// +optional
	ExternalService ExternalServiceResourceConfiguration `json:"externalService,omitempty"`
}

BrokerConfiguration defines the k8s spec configuration for the Pinot broker

func (*BrokerConfiguration) DeepCopy

func (in *BrokerConfiguration) DeepCopy() *BrokerConfiguration

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

func (*BrokerConfiguration) DeepCopyInto

func (in *BrokerConfiguration) DeepCopyInto(out *BrokerConfiguration)

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

type CommonResourceConfiguration

type CommonResourceConfiguration struct {
	// +kubebuilder:default:={limits: {cpu: "512m", memory: "2Gi"}, requests: {cpu: "256m", memory: "1Gi"}}
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"`
	// Node selector to be used by Pinot statefulsets
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty" protobuf:"bytes,2,opt,name=nodeSelector"`
	// Affinity scheduling rules to be applied on created Pods.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty" protobuf:"bytes,3,opt,name=affinity"`
	// Tolerations is the list of Toleration resources attached to each Pod in the Pinot cluster.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty" protobuf:"bytes,4,opt,name=tolerations"`
	// PoAnnotations 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
	PodAnnotations map[string]string `json:"podAnnotations,omitempty" protobuf:"bytes,5,opt,name=podAnnotations"`
	// 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"`
	// Custom labels to be populated in Pinot pods
	// +optional
	PodLabels map[string]string `json:"podLabels,omitempty" protobuf:"bytes,7,opt,name=podLabels"`
	// Defines privilege and access control settings for a Pod or Container
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty" protobuf:"bytes,8,opt,name=securityContext"`
	// Replicas is the number of nodes in the service. 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
	ReplicaCount *int32 `json:"replicaCount,omitempty" protobuf:"varint,9,opt,name=replicaCount"`
	// Extra environment variables to pass to the service
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,10,opt,name=env"`
	// If set to true then operator checks the rollout status of previous version StateSets before updating next.
	// Used only for updates.
	// +optional
	RollingDeploy bool `json:"rollingDeploy,omitempty" protobuf:"varint,11,opt,name=rollingDeploy"`
	// 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,12,opt,name=updateStrategy"`
	// Describes a health check to be performed against a container to determine whether it is alive or not
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty" protobuf:"bytes,13,opt,name=livenessProbe"`
	// Describes a health check to be performed against a container to determine whether it is ready to receive traffic or not
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty" protobuf:"bytes,14,opt,name=readinessProbe"`
	// 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 []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,15,opt,name=volumeClaimTemplates"`
	// Describes a mounting of a Volume within a container
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty" protobuf:"bytes,16,opt,name=volumeMounts"`
	// Represents a named volume in a pod that may be accessed by any container in the pod
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty" protobuf:"bytes,17,opt,name=volumes"`
}

CommonResourceConfiguration defines basic K8s resource spec configurations

func (*CommonResourceConfiguration) DeepCopy

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

func (*CommonResourceConfiguration) DeepCopyInto

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

type ConfigState

type ConfigState string

ConfigState describes the state of the operator

const (
	// Created status after the initialization
	Created ConfigState = "Created"
	// ReconcileFailed status when an error happened
	ReconcileFailed ConfigState = "ReconcileFailed"
	// Reconciling status when the reconciliation loop is started
	Reconciling ConfigState = "Reconciling"
	// Available status when the resources are created successfully
	Available ConfigState = "Available"
	// Unmanaged status when the system is not sure what to do
	Unmanaged ConfigState = "Unmanaged"
)

type ControllerConfiguration

type ControllerConfiguration struct {
	// +optional
	CommonResourceConfiguration `json:",inline"`
	// Size of the persisten disk for the controller service
	// +kubebuilder:default:="1Gi"
	DiskSize string `json:"diskSize,omitempty"`
	// Extra JVM parameters to be passed to the controller service
	// +kubebuilder:default:="-Xms256M -Xmx1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
	JvmOptions string `json:"jvmOptions,omitempty"`
	//
	// +optional
	VIPHost string `json:"vip.host,omitempty"`
	//
	// +optional
	VIPPort int `json:"vip.port,omitempty"`
	// +optional
	Service ServiceResourceConfiguration `json:"service,omitempty"`
	// +optional
	ExternalService ExternalServiceResourceConfiguration `json:"externalService,omitempty"`
}

ControllerConfiguration defines the k8s spec configuration for the Pinot controller

func (*ControllerConfiguration) DeepCopy

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

func (*ControllerConfiguration) DeepCopyInto

func (in *ControllerConfiguration) DeepCopyInto(out *ControllerConfiguration)

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

type ExternalServiceResourceConfiguration

type ExternalServiceResourceConfiguration struct {
	// Whether enabling the external service or not
	// +kubebuilder:default:=false
	Enabled bool `json:"enabled,omitempty"`
	// 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"`
	// 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:="LoadBalancer"
	Type corev1.ServiceType `json:"type,omitempty"`
	// +optional
	Port int `json:"port,omitempty"`
}

ExternalServiceResourceConfiguration defines some definition for a service resource

func (*ExternalServiceResourceConfiguration) DeepCopy

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

func (*ExternalServiceResourceConfiguration) DeepCopyInto

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

type NamespacedName

type NamespacedName struct {
	Namespace string `json:"namespace,omitempty"`
	Name      string `json:"name,omitempty"`
}

NamespacedName contains reference to a resource

func (*NamespacedName) DeepCopy

func (in *NamespacedName) DeepCopy() *NamespacedName

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

func (*NamespacedName) DeepCopyInto

func (in *NamespacedName) DeepCopyInto(out *NamespacedName)

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

type Pinot

type Pinot 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 Pinot Custom Resource.
	Spec PinotSpec `json:"spec,omitempty"`
	// Status presents the observed state of Pinot
	Status PinotStatus `json:"status,omitempty"`
}

Pinot is the Schema for the pinots API +genclient +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.clusterStatus" +kubebuilder:resource:shortName={"apc"} +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +k8s:openapi-gen=true

func (*Pinot) DeepCopy

func (in *Pinot) DeepCopy() *Pinot

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

func (*Pinot) DeepCopyInto

func (in *Pinot) DeepCopyInto(out *Pinot)

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

func (*Pinot) DeepCopyObject

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

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

func (*Pinot) NamespacedRevision

func (p *Pinot) NamespacedRevision() string

func (*Pinot) Revision

func (p *Pinot) Revision() string

func (*Pinot) RevisionLabels

func (p *Pinot) RevisionLabels() map[string]string

func (*Pinot) WithRevision

func (p *Pinot) WithRevision(s string) string

type PinotList

type PinotList 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 Pinot resources.
	Items []Pinot `json:"items"`
}

PinotList contains a list of Pinot +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*PinotList) DeepCopy

func (in *PinotList) DeepCopy() *PinotList

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

func (*PinotList) DeepCopyInto

func (in *PinotList) DeepCopyInto(out *PinotList)

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

func (*PinotList) DeepCopyObject

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

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

type PinotSpec

type PinotSpec struct {
	// Required: cluster name for the pinot deployment
	ClusterName string `json:"clusterName"`
	// +kubebuilder:default:="0.6.0"
	Version PinotVersion `json:"version"`
	// Image is the name of the Apache Pinot docker image to use for Brokers/Coordinator/Server nodes in the Pinot cluster.
	// Must be provided together with ImagePullSecrets in order to use an image in a private registry.
	// +kubebuilder:default:="apachepinot/pinot:latest"
	Image *string `json:"image,omitempty"`
	// List of Secret resource containing access credentials to the registry for the Apache Pinot image. Required if the docker registry is private.
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// Image pull policy for the docker image
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Log4j config file directory
	// +optional
	Log4jConfigPath string `json:"log4j.path,omitempty"`
	// The desired state of the Controller service to create for the cluster.
	// +optional
	Controller ControllerConfiguration `json:"controller"`
	// The desired state of the Broker service to create for the cluster.
	// +optional
	Broker BrokerConfiguration `json:"broker,omitempty"`
	// The desired state of the Server service to create for the cluster.
	// +optional
	Server ServerConfiguration `json:"server,omitempty"`
	// The desired state of the Zookeeper service to create for the cluster.
	// +optional
	Zookeeper ZookeeperConfiguration `json:"zookeeper,omitempty"`
}

PinotSpec defines the desired state of Pinot

func (*PinotSpec) DeepCopy

func (in *PinotSpec) DeepCopy() *PinotSpec

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

func (*PinotSpec) DeepCopyInto

func (in *PinotSpec) DeepCopyInto(out *PinotSpec)

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

type PinotStatus

type PinotStatus struct {
	Status       ConfigState `json:"Status,omitempty"`
	ErrorMessage string      `json:"ErrorMessage,omitempty"`
}

PinotStatus defines the observed state of Pinot

func (*PinotStatus) DeepCopy

func (in *PinotStatus) DeepCopy() *PinotStatus

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

func (*PinotStatus) DeepCopyInto

func (in *PinotStatus) DeepCopyInto(out *PinotStatus)

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

type PinotVersion

type PinotVersion string

PinotVersion stores the intended Pinot version

type ServerConfiguration

type ServerConfiguration struct {
	// +optional
	CommonResourceConfiguration `json:",inline"`
	// Size of the persisten disk for the server service
	// +kubebuilder:default:="4Gi"
	DiskSize string `json:"diskSize,omitempty"`
	// Extra JVM parameters to be passed to the controller service
	// +kubebuilder:default:="-Xms256M -Xmx1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
	JvmOptions string `json:"jvmOptions,omitempty"`
	// +optional
	Service ServiceResourceConfiguration `json:"service,omitempty"`
	// Service port for the service controller
	// +optional
	AdminPort int `json:"adminPort,omitport"`
}

ServerConfiguration defines the k8s spec configuration for the Pinot server

func (*ServerConfiguration) DeepCopy

func (in *ServerConfiguration) DeepCopy() *ServerConfiguration

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

func (*ServerConfiguration) DeepCopyInto

func (in *ServerConfiguration) DeepCopyInto(out *ServerConfiguration)

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

type ServiceResourceConfiguration

type ServiceResourceConfiguration struct {
	// 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"`
	// 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"`
	// +optional
	Port int `json:"port,omitempty"`
	// +optional
	NodePort int `json:"nodePort,omitempty"`
}

ServiceResourceConfiguration defines some definition for a service resource

func (*ServiceResourceConfiguration) DeepCopy

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

func (*ServiceResourceConfiguration) DeepCopyInto

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

type SortablePinotItems

type SortablePinotItems []Pinot

func (SortablePinotItems) DeepCopy

func (in SortablePinotItems) DeepCopy() SortablePinotItems

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

func (SortablePinotItems) DeepCopyInto

func (in SortablePinotItems) DeepCopyInto(out *SortablePinotItems)

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

func (SortablePinotItems) Len

func (list SortablePinotItems) Len() int

func (SortablePinotItems) Less

func (list SortablePinotItems) Less(i, j int) bool

func (SortablePinotItems) Swap

func (list SortablePinotItems) Swap(i, j int)

type Tenant

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

	Spec   TenantSpec   `json:"spec,omitempty"`
	Status TenantStatus `json:"status,omitempty"`
}

Tenant is the Schema for the Tenants API +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Role",type=string,JSONPath=`.spec.role` +kubebuilder:printcolumn:name="Tenant Name",type=string,JSONPath=`.spec.name` +kubebuilder:printcolumn:name="Error",type="string",JSONPath=".status.ErrorMessage",description="Error message" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Pinot Cluster",type="string",JSONPath=".spec.pinotServer" +kubebuilder:subresource:status +kubebuilder:resource:path=tenants,shortName=tn

func (*Tenant) DeepCopy

func (in *Tenant) DeepCopy() *Tenant

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

func (*Tenant) DeepCopyInto

func (in *Tenant) DeepCopyInto(out *Tenant)

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

func (*Tenant) DeepCopyObject

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

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

type TenantList

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

TenantList contains a list of Tenant

func (*TenantList) DeepCopy

func (in *TenantList) DeepCopy() *TenantList

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

func (*TenantList) DeepCopyInto

func (in *TenantList) DeepCopyInto(out *TenantList)

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

func (*TenantList) DeepCopyObject

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

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

type TenantSpec

type TenantSpec struct {
	// The tenant role to be used
	// +kubebuilder:validation:Enum=broker;server
	Role string `json:"role" protobuf:"byte,1,opt,name=role"`
	// Name of the tenant
	Name string `json:"name" protobuf:"byte,2,opt,name=name"`
	// Number of instances to be associated with the tenant. It is used only
	// when creating a tenant with Role Broker
	// +optional
	// +kubebuilder:validation:Minimum:=0
	// +kubebuilder:default:=0
	NumberOfInstances *int32 `json:"numberOfInstances,omitempty" protobuf:"varint,3,opt,name=numberOfInstances"`
	// Number of Offline instances to be associted with the tenant. It is used only
	// when creating a tenant with Role Server
	// +optional
	// +kubebuilder:validation:Minimum:=0
	// +kubebuilder:default:=0
	OfflineInstances *int32 `json:"offlineInstances,omitempty" protobuf:"varint,4,opt,name=offlineInstances"`
	// Number of Realtime instances to be associted with the tenant. It is used only
	// when creating a tenant with Role Server
	// +optional
	// +kubebuilder:validation:Minimum:=0
	// +kubebuilder:default:=0
	RealtimeInstances *int32 `json:"realtimeInstances,omitempty" protobuf:"varint,5,opt,name=realtimeInstances"`
	// +optional
	PinotServer *NamespacedName `json:"pinotServer,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

TenantSpec defines the desired state of Tenant

func (*TenantSpec) DeepCopy

func (in *TenantSpec) DeepCopy() *TenantSpec

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

func (*TenantSpec) DeepCopyInto

func (in *TenantSpec) DeepCopyInto(out *TenantSpec)

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

type TenantStatus

type TenantStatus struct {
	Status       ConfigState `json:"Status,omitempty"`
	ErrorMessage string      `json:"ErrorMessage,omitempty"`
}

TenantStatus defines the observed state of Tenant

func (*TenantStatus) DeepCopy

func (in *TenantStatus) DeepCopy() *TenantStatus

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

func (*TenantStatus) DeepCopyInto

func (in *TenantStatus) DeepCopyInto(out *TenantStatus)

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

type ZookeeperConfiguration

type ZookeeperConfiguration struct {
	// Image is the name of the Apache Zookeeper docker image
	// +kubebuilder:default:="zookeeper:3.5.5"
	// +optional
	Image *string `json:"image"`
	// ReplicaCount is the number of nodes in the zookeeper service. 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.
	// +kubebuilder:validation:Minimum:=0
	// +kubebuilder:default:=1
	// +optional
	ReplicaCount *int32 `json:"replicaCount,omitempty"`
	// The desired compute resource requirements of Pods in the cluster.
	// +kubebuilder:default:={limits: {cpu: "512m", memory: "2Gi"}, requests: {cpu: "256m", memory: "1Gi"}}
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// Defines the inner parameters for setting up the storage
	// +optional
	Storage zookeeperStorage `json:"storage,omitempty"`
	// Extra JVM parameters to be passed to the zookeeper service
	// +kubebuilder:default:="-Xmx2G -Xms2G"
	// +optional
	JvmOptions string `json:"jvmOptions,omitempty"`
}

ZookeeperConfiguration defines the desired state of Zookeeper

func (*ZookeeperConfiguration) DeepCopy

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

func (*ZookeeperConfiguration) DeepCopyInto

func (in *ZookeeperConfiguration) DeepCopyInto(out *ZookeeperConfiguration)

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