v1beta1

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the banzaicloud v1beta1 API group +kubebuilder:object:generate=true +groupName=kafka.banzaicloud.io

Index

Constants

View Source
const (
	// Configured states the broker is running
	Configured RackAwarenessState = "Configured"
	// WaitingForRackAwareness states the broker is waiting for the rack awareness config
	WaitingForRackAwareness RackAwarenessState = "WaitingForRackAwareness"

	// Upscale cruise control states
	// GracefulUpscaleRequired states that a broker upscale is required
	GracefulUpscaleRequired CruiseControlState = "GracefulUpscaleRequired"
	// GracefulUpscaleRunning states that the broker upscale task is still running in CC
	GracefulUpscaleRunning CruiseControlState = "GracefulUpscaleRunning"
	// GracefulUpscaleSucceeded states the broker is updated gracefully OR
	// states that the broker is part of the initial cluster creation where CC topic is still in creating stage
	GracefulUpscaleSucceeded CruiseControlState = "GracefulUpscaleSucceeded"

	// Downscale cruise control states
	// GracefulDownscaleRequired states that a broker downscale is required
	GracefulDownscaleRequired CruiseControlState = "GracefulDownscaleRequired"
	// GracefulDownscaleRunning states that the broker downscale is still running in CC
	GracefulDownscaleRunning CruiseControlState = "GracefulDownscaleRunning"
	// GracefulDownscaleSucceeded states that the broker downscaled gracefully
	GracefulDownscaleSucceeded CruiseControlState = "GracefulDownscaleSucceeded"

	// Disk rebalance cruise control states
	// GracefulDiskRebalanceRequired states that the broker volume needs a CC disk rebalance
	GracefulDiskRebalanceRequired CruiseControlVolumeState = "GracefulDiskRebalanceRequired"
	// GracefulDiskRebalanceRunning states that for the broker volume a CC disk rebalance is in progress
	GracefulDiskRebalanceRunning CruiseControlVolumeState = "GracefulDiskRebalanceRunning"
	// GracefulDiskRebalanceSucceeded states that the for the broker volume rebalance has succeeded
	GracefulDiskRebalanceSucceeded CruiseControlVolumeState = "GracefulDiskRebalanceSucceeded"

	// CruiseControlTopicNotReady states the CC required topic is not yet created
	CruiseControlTopicNotReady CruiseControlTopicStatus = "CruiseControlTopicNotReady"
	// CruiseControlTopicReady states the CC required topic is created
	CruiseControlTopicReady CruiseControlTopicStatus = "CruiseControlTopicReady"
	// CruiseControlTaskActive states the CC task is scheduled but not yet running
	CruiseControlTaskActive CruiseControlUserTaskState = "Active"
	// CruiseControlTaskNotFound states the CC task is not found (can happen when CC is restarted during operation)
	CruiseControlTaskNotFound CruiseControlUserTaskState = "NotFound"
	// CruiseControlTaskInExecution states the CC task is executing
	CruiseControlTaskInExecution CruiseControlUserTaskState = "InExecution"
	// CruiseControlTaskCompleted states the CC task completed successfully
	CruiseControlTaskCompleted CruiseControlUserTaskState = "Completed"
	// CruiseControlTaskCompletedWithError states the CC task completed with error
	CruiseControlTaskCompletedWithError CruiseControlUserTaskState = "CompletedWithError"
	// KafkaClusterReconciling states that the cluster is still in reconciling stage
	KafkaClusterReconciling ClusterState = "ClusterReconciling"
	// KafkaClusterRollingUpgrading states that the cluster is rolling upgrading
	KafkaClusterRollingUpgrading ClusterState = "ClusterRollingUpgrading"
	// KafkaClusterRunning states that the cluster is in running state
	KafkaClusterRunning ClusterState = "ClusterRunning"

	// ConfigInSync states that the generated brokerConfig is in sync with the Broker
	ConfigInSync ConfigurationState = "ConfigInSync"
	// ConfigOutOfSync states that the generated brokerConfig is out of sync with the Broker
	ConfigOutOfSync ConfigurationState = "ConfigOutOfSync"
	// PerBrokerConfigInSync states that the generated per-broker brokerConfig is in sync with the Broker
	PerBrokerConfigInSync PerBrokerConfigurationState = "PerBrokerConfigInSync"
	// PerBrokerConfigOutOfSync states that the generated per-broker brokerConfig is out of sync with the Broker
	PerBrokerConfigOutOfSync PerBrokerConfigurationState = "PerBrokerConfigOutOfSync"
	// PerBrokerConfigError states that the generated per-broker brokerConfig can not be set in the Broker
	PerBrokerConfigError PerBrokerConfigurationState = "PerBrokerConfigError"

	// SecurityProtocolSSL
	SecurityProtocolSSL SecurityProtocol = "ssl"
	// SecurityProtocolPlaintext
	SecurityProtocolPlaintext SecurityProtocol = "plaintext"
	// SecurityProtocolSaslSSL
	SecurityProtocolSaslSSL SecurityProtocol = "sasl_ssl"
	// SecurityProtocolSaslPlaintext
	SecurityProtocolSaslPlaintext SecurityProtocol = "sasl_plaintext"
)
View Source
const (
	// DefaultServiceAccountName name used for the various ServiceAccounts
	DefaultServiceAccountName = "default"
	// DefaultAnyCastPort kafka anycast port that can be used by clients for metadata queries
	DefaultAnyCastPort = 29092
	// DefaultEnvoyAdminPort envoy admin port
	DefaultEnvoyAdminPort = 9901
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "kafka.banzaicloud.io", 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 AlertManagerConfig

type AlertManagerConfig struct {
	// DownScaleLimit the limit for auto-downscaling the Kafka cluster.
	// Once the size of the cluster (number of brokers) reaches or falls below this limit the auto-downscaling triggered by alerts is disabled until the cluster size exceeds this limit.
	// This limit is not enforced if this field is omitted or is <= 0.
	DownScaleLimit int `json:"downScaleLimit,omitempty"`
	// UpScaleLimit the limit for auto-upscaling the Kafka cluster.
	// Once the size of the cluster (number of brokers) reaches or exceeds this limit the auto-upscaling triggered by alerts is disabled until the cluster size falls below this limit.
	// This limit is not enforced if this field is omitted or is <= 0.
	UpScaleLimit int `json:"upScaleLimit,omitempty"`
}

AlertManagerConfig defines configuration for alert manager

func (*AlertManagerConfig) DeepCopy

func (in *AlertManagerConfig) DeepCopy() *AlertManagerConfig

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

func (*AlertManagerConfig) DeepCopyInto

func (in *AlertManagerConfig) DeepCopyInto(out *AlertManagerConfig)

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

type Broker

type Broker struct {
	Id                int32         `json:"id"`
	BrokerConfigGroup string        `json:"brokerConfigGroup,omitempty"`
	ReadOnlyConfig    string        `json:"readOnlyConfig,omitempty"`
	BrokerConfig      *BrokerConfig `json:"brokerConfig,omitempty"`
}

Broker defines the broker basic configuration

func (*Broker) DeepCopy

func (in *Broker) DeepCopy() *Broker

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

func (*Broker) DeepCopyInto

func (in *Broker) DeepCopyInto(out *Broker)

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

func (*Broker) GetBrokerConfig

func (b *Broker) GetBrokerConfig(kafkaClusterSpec KafkaClusterSpec) (*BrokerConfig, error)

GetBrokerConfig composes the brokerConfig for a given broker using the broker's config group

type BrokerConfig

type BrokerConfig struct {
	Image              string                        `json:"image,omitempty"`
	Config             string                        `json:"config,omitempty"`
	StorageConfigs     []StorageConfig               `json:"storageConfigs,omitempty"`
	ServiceAccountName string                        `json:"serviceAccountName,omitempty"`
	Resources          *corev1.ResourceRequirements  `json:"resourceRequirements,omitempty"`
	ImagePullSecrets   []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	NodeSelector       map[string]string             `json:"nodeSelector,omitempty"`
	Tolerations        []corev1.Toleration           `json:"tolerations,omitempty"`
	KafkaHeapOpts      string                        `json:"kafkaHeapOpts,omitempty"`
	KafkaJVMPerfOpts   string                        `json:"kafkaJvmPerfOpts,omitempty"`
	// Override for the default log4j configuration
	Log4jConfig string `json:"log4jConfig,omitempty"`
	// Custom annotations for the broker pods - e.g.: Prometheus scraping annotations:
	// prometheus.io/scrape: "true"
	// prometheus.io/port: "9020"
	BrokerAnnotations map[string]string `json:"brokerAnnotations,omitempty"`
	// Network throughput information in kB/s used by Cruise Control to determine broker network capacity.
	// By default it is set to `125000` which means 1Gbit/s in network throughput.
	NetworkConfig *NetworkConfig `json:"networkConfig,omitempty"`
	// External listeners that use NodePort type service to expose the broker outside the Kubernetes clusterT and their
	// external IP to advertise Kafka broker external listener. The external IP value is ignored in case of external listeners that use LoadBalancer
	// type service to expose the broker outside the Kubernetes cluster. Also, when "hostnameOverride" field of the external listener is set
	// it will override the broker's external listener advertise address according to the description of the "hostnameOverride" field.
	NodePortExternalIP map[string]string `json:"nodePortExternalIP,omitempty"`
	// Any definition received through this field will override the default behaviour of OneBrokerPerNode flag
	// and the operator supposes that the user is aware of how scheduling is done by kubernetes
	// Affinity could be set through brokerConfigGroups definitions and can be set for individual brokers as well
	// where letter setting will override the group setting
	Affinity           *corev1.Affinity           `json:"affinity,omitempty"`
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// SecurityContext allows to set security context for the kafka container
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
	// BrokerIngressMapping allows to set specific ingress to a specific broker mappings.
	// If left empty, all broker will inherit the default one specified under external listeners config
	// Only used when ExternalListeners.Config is populated
	BrokerIngressMapping []string `json:"brokerIngressMapping,omitempty"`
	// InitContainers add extra initContainers to the Kafka broker pod
	InitContainers []corev1.Container `json:"initContainers,omitempty"`
	// Containers add extra Containers to the Kafka broker pod
	Containers []corev1.Container `json:"containers,omitempty"`
	// Volumes define some extra Kubernetes Volumes for the Kafka broker Pods.
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// VolumeMounts define some extra Kubernetes VolumeMounts for the Kafka broker Pods.
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// Envs defines environment variables for Kafka broker Pods.
	// Adding the "+" prefix to the name prepends the value to that environment variable instead of overwriting it.
	// Add the "+" suffix to append.
	Envs []corev1.EnvVar `json:"envs,omitempty"`
}

BrokerConfig defines the broker configuration

func (*BrokerConfig) DeepCopy

func (in *BrokerConfig) DeepCopy() *BrokerConfig

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

func (*BrokerConfig) DeepCopyInto

func (in *BrokerConfig) DeepCopyInto(out *BrokerConfig)

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

func (*BrokerConfig) GetBrokerAnnotations

func (bConfig *BrokerConfig) GetBrokerAnnotations() map[string]string

GetBrokerAnnotations return the annotations which applied to broker pods

func (*BrokerConfig) GetImagePullSecrets

func (bConfig *BrokerConfig) GetImagePullSecrets() []corev1.LocalObjectReference

GetImagePullSecrets returns the list of Secrets needed to pull Containers images from private repositories

func (*BrokerConfig) GetKafkaHeapOpts

func (bConfig *BrokerConfig) GetKafkaHeapOpts() string

GetKafkaHeapOpts returns the broker specific Heap settings

func (*BrokerConfig) GetKafkaPerfJmvOpts

func (bConfig *BrokerConfig) GetKafkaPerfJmvOpts() string

GetKafkaPerfJmvOpts returns the broker specific Perf JVM settings

func (*BrokerConfig) GetNodeSelector

func (bConfig *BrokerConfig) GetNodeSelector() map[string]string

GetNodeSelector returns the node selector for the given broker

func (*BrokerConfig) GetResources

func (bConfig *BrokerConfig) GetResources() *corev1.ResourceRequirements

GetResources returns the broker specific Kubernetes resource

func (*BrokerConfig) GetServiceAccount

func (bConfig *BrokerConfig) GetServiceAccount() string

GetServiceAccount returns the Kubernetes Service Account to use for Kafka Cluster

func (*BrokerConfig) GetTolerations

func (bConfig *BrokerConfig) GetTolerations() []corev1.Toleration

GetTolerations returns the tolerations for the given broker

type BrokerState

type BrokerState struct {
	// RackAwarenessState holds info about rack awareness status
	RackAwarenessState RackAwarenessState `json:"rackAwarenessState"`
	// GracefulActionState holds info about cc action status
	GracefulActionState GracefulActionState `json:"gracefulActionState"`
	// ConfigurationState holds info about the config
	ConfigurationState ConfigurationState `json:"configurationState"`
	// PerBrokerConfigurationState holds info about the per-broker (dynamically updatable) config
	PerBrokerConfigurationState PerBrokerConfigurationState `json:"perBrokerConfigurationState"`
	// ExternalListenerConfigNames holds info about what listener config is in use with the broker
	ExternalListenerConfigNames ExternalListenerConfigNames `json:"externalListenerConfigNames,omitempty"`
	// Version holds the current version of the broker in semver format
	Version string `json:"version,omitempty"`
	// Image specifies the current docker image of the broker
	Image string `json:"image,omitempty"`
}

BrokerState holds information about broker state

func (*BrokerState) DeepCopy

func (in *BrokerState) DeepCopy() *BrokerState

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

func (*BrokerState) DeepCopyInto

func (in *BrokerState) DeepCopyInto(out *BrokerState)

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

type ClusterState

type ClusterState string

ClusterState holds info about the cluster state

type CommonListenerSpec

type CommonListenerSpec struct {
	// +kubebuilder:validation:Enum=ssl;plaintext;sasl_ssl;sasl_plaintext
	Type SecurityProtocol `json:"type"`
	// +kubebuilder:validation:Pattern=^[a-z0-9\-]+
	Name          string `json:"name"`
	ContainerPort int32  `json:"containerPort"`
}

CommonListenerSpec defines the common building block for Listener type

func (*CommonListenerSpec) DeepCopy

func (in *CommonListenerSpec) DeepCopy() *CommonListenerSpec

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

func (*CommonListenerSpec) DeepCopyInto

func (in *CommonListenerSpec) DeepCopyInto(out *CommonListenerSpec)

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

func (*CommonListenerSpec) GetListenerServiceName

func (lP *CommonListenerSpec) GetListenerServiceName() string

GetListenerName returns the prepared listener name

type Config

type Config struct {
	DefaultIngressConfig string                   `json:"defaultIngressConfig"`
	IngressConfig        map[string]IngressConfig `json:"ingressConfig,omitempty"`
}

Config defines the external access ingress controller configuration

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

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

type ConfigurationState

type ConfigurationState string

ConfigurationState holds info about the configuration state

type CruiseControlConfig

type CruiseControlConfig struct {
	CruiseControlTaskSpec CruiseControlTaskSpec         `json:"cruiseControlTaskSpec,omitempty"`
	CruiseControlEndpoint string                        `json:"cruiseControlEndpoint,omitempty"`
	Resources             *corev1.ResourceRequirements  `json:"resourceRequirements,omitempty"`
	ServiceAccountName    string                        `json:"serviceAccountName,omitempty"`
	ImagePullSecrets      []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	NodeSelector          map[string]string             `json:"nodeSelector,omitempty"`
	Tolerations           []corev1.Toleration           `json:"tolerations,omitempty"`
	Config                string                        `json:"config,omitempty"`
	CapacityConfig        string                        `json:"capacityConfig,omitempty"`
	ClusterConfig         string                        `json:"clusterConfig,omitempty"`
	Log4jConfig           string                        `json:"log4jConfig,omitempty"`
	Image                 string                        `json:"image,omitempty"`
	TopicConfig           *TopicConfig                  `json:"topicConfig,omitempty"`
	//  Annotations to be applied to CruiseControl pod
	// +optional
	CruiseControlAnnotations map[string]string `json:"cruiseControlAnnotations,omitempty"`
	// InitContainers add extra initContainers to CruiseControl pod
	InitContainers []corev1.Container `json:"initContainers,omitempty"`
	// Volumes define some extra Kubernetes Volumes for the CruiseControl Pods.
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// VolumeMounts define some extra Kubernetes Volume mounts for the CruiseControl Pods.
	VolumeMounts       []corev1.VolumeMount       `json:"volumeMounts,omitempty"`
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// SecurityContext allows to set security context for the CruiseControl container
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

CruiseControlConfig defines the config for Cruise Control

func (*CruiseControlConfig) DeepCopy

func (in *CruiseControlConfig) DeepCopy() *CruiseControlConfig

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

func (*CruiseControlConfig) DeepCopyInto

func (in *CruiseControlConfig) DeepCopyInto(out *CruiseControlConfig)

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

func (*CruiseControlConfig) GetCCImage

func (cConfig *CruiseControlConfig) GetCCImage() string

GetCCImage returns the used Cruise Control image

func (*CruiseControlConfig) GetCCLog4jConfig

func (cConfig *CruiseControlConfig) GetCCLog4jConfig() string

GetCCLog4jConfig returns the used Cruise Control log4j configuration

func (*CruiseControlConfig) GetCruiseControlAnnotations

func (cConfig *CruiseControlConfig) GetCruiseControlAnnotations() map[string]string

GetCruiseControlAnnotations return the annotations which applied to CruiseControl pod

func (*CruiseControlConfig) GetImagePullSecrets

func (cConfig *CruiseControlConfig) GetImagePullSecrets() []corev1.LocalObjectReference

GetImagePullSecrets returns the list of Secrets needed to pull Containers images from private repositories

func (*CruiseControlConfig) GetNodeSelector

func (cConfig *CruiseControlConfig) GetNodeSelector() map[string]string

GetNodeSelector returns the node selector for cruise control

func (*CruiseControlConfig) GetResources

func (cConfig *CruiseControlConfig) GetResources() *corev1.ResourceRequirements

GetResources returns the CC specific Kubernetes resource

func (*CruiseControlConfig) GetServiceAccount

func (cConfig *CruiseControlConfig) GetServiceAccount() string

GetServiceAccount returns the Kubernetes Service Account to use for CruiseControl

func (*CruiseControlConfig) GetTolerations

func (cConfig *CruiseControlConfig) GetTolerations() []corev1.Toleration

GetTolerations returns the tolerations for cruise control

type CruiseControlState

type CruiseControlState string

CruiseControlState holds info about the state of Cruise Control

func (CruiseControlState) Complete

func (CruiseControlState) IsDownscale

func (r CruiseControlState) IsDownscale() bool

func (CruiseControlState) IsRequiredState

func (r CruiseControlState) IsRequiredState() bool

func (CruiseControlState) IsRunningState

func (r CruiseControlState) IsRunningState() bool

func (CruiseControlState) IsUpscale

func (r CruiseControlState) IsUpscale() bool

type CruiseControlTaskSpec

type CruiseControlTaskSpec struct {
	// RetryDurationMinutes describes the amount of time the Operator waits for the task
	RetryDurationMinutes int `json:"RetryDurationMinutes"`
}

CruiseControlTaskSpec specifies the configuration of the CC Tasks

func (*CruiseControlTaskSpec) DeepCopy

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

func (*CruiseControlTaskSpec) DeepCopyInto

func (in *CruiseControlTaskSpec) DeepCopyInto(out *CruiseControlTaskSpec)

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

func (*CruiseControlTaskSpec) GetDurationMinutes

func (cTaskSpec *CruiseControlTaskSpec) GetDurationMinutes() float64

type CruiseControlTopicStatus

type CruiseControlTopicStatus string

CruiseControlTopicStatus holds info about the CC topic status

type CruiseControlUserTaskState

type CruiseControlUserTaskState string

CruiseControlUserTaskState holds info about the CC user task state

type CruiseControlVolumeState

type CruiseControlVolumeState string

CruiseControlVolumeState holds information about the state of volume rebalance

type DisruptionBudget

type DisruptionBudget struct {
	// If set to true, will create a podDisruptionBudget
	// +optional
	Create bool `json:"create,omitempty"`
	// The budget to set for the PDB, can either be static number or a percentage
	// +kubebuilder:validation:Pattern:="^[0-9]+$|^[0-9]{1,2}%$|^100%$"
	Budget string `json:"budget,omitempty"`
}

DisruptionBudget defines the configuration for PodDisruptionBudget where the workload is managed by the kafka-operator

func (*DisruptionBudget) DeepCopy

func (in *DisruptionBudget) DeepCopy() *DisruptionBudget

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

func (*DisruptionBudget) DeepCopyInto

func (in *DisruptionBudget) DeepCopyInto(out *DisruptionBudget)

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

type DisruptionBudgetWithStrategy

type DisruptionBudgetWithStrategy struct {
	// PodDisruptionBudget default settings
	DisruptionBudget DisruptionBudget `json:",inline"`
	// The strategy to be used, either minAvailable or maxUnavailable
	// +kubebuilder:validation:Enum=minAvailable;maxUnavailable
	Stategy string `json:"strategy,omitempty"`
}

DisruptionBudgetWithStrategy defines the configuration for PodDisruptionBudget where the workload is managed by an external controller (eg. Deployments)

func (*DisruptionBudgetWithStrategy) DeepCopy

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

func (*DisruptionBudgetWithStrategy) DeepCopyInto

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

type EnvoyConfig

type EnvoyConfig struct {
	Image     string                       `json:"image,omitempty"`
	Resources *corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
	// +kubebuilder:validation:Minimum=1
	Replicas           int32                         `json:"replicas,omitempty"`
	ServiceAccountName string                        `json:"serviceAccountName,omitempty"`
	ImagePullSecrets   []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	Affinity           *corev1.Affinity              `json:"affinity,omitempty"`
	NodeSelector       map[string]string             `json:"nodeSelector,omitempty"`
	Tolerations        []corev1.Toleration           `json:"tolerations,omitempty"`
	// Annotations defines the annotations placed on the envoy ingress controller deployment
	Annotations              map[string]string `json:"annotations,omitempty"`
	LoadBalancerSourceRanges []string          `json:"loadBalancerSourceRanges,omitempty"`
	// LoadBalancerIP can be used to specify an exact IP for the LoadBalancer service
	LoadBalancerIP string `json:"loadBalancerIP,omitempty"`
	// Envoy admin port
	AdminPort *int32 `json:"adminPort,omitempty"`
	// DisruptionBudget is the pod disruption budget attached to Envoy Deployment(s)
	DisruptionBudget DisruptionBudgetWithStrategy `json:"disruptionBudget,omitempty"`
}

EnvoyConfig defines the config for Envoy

func (*EnvoyConfig) DeepCopy

func (in *EnvoyConfig) DeepCopy() *EnvoyConfig

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

func (*EnvoyConfig) DeepCopyInto

func (in *EnvoyConfig) DeepCopyInto(out *EnvoyConfig)

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

func (*EnvoyConfig) GetAffinity

func (eConfig *EnvoyConfig) GetAffinity() *corev1.Affinity

GetAffinity returns the Affinity config for envoy

func (*EnvoyConfig) GetAnnotations

func (eConfig *EnvoyConfig) GetAnnotations() map[string]string

GetAnnotations returns Annotations to use for Envoy generated Deployment and Pods

func (*EnvoyConfig) GetEnvoyAdminPort

func (eConfig *EnvoyConfig) GetEnvoyAdminPort() int32

GetEnvoyAdminPort returns the envoy admin port

func (*EnvoyConfig) GetEnvoyImage

func (eConfig *EnvoyConfig) GetEnvoyImage() string

GetEnvoyImage returns the used envoy image

func (*EnvoyConfig) GetImagePullSecrets

func (eConfig *EnvoyConfig) GetImagePullSecrets() []corev1.LocalObjectReference

GetImagePullSecrets returns the list of Secrets needed to pull Containers images from private repositories

func (*EnvoyConfig) GetLoadBalancerSourceRanges

func (eConfig *EnvoyConfig) GetLoadBalancerSourceRanges() []string

GetLoadBalancerSourceRanges returns LoadBalancerSourceRanges to use for Envoy generated LoadBalancer

func (*EnvoyConfig) GetNodeSelector

func (eConfig *EnvoyConfig) GetNodeSelector() map[string]string

GetNodeSelector returns the node selector for envoy

func (*EnvoyConfig) GetReplicas

func (eConfig *EnvoyConfig) GetReplicas() int32

GetReplicas returns replicas used by the Envoy deployment

func (*EnvoyConfig) GetResources

func (eConfig *EnvoyConfig) GetResources() *corev1.ResourceRequirements

GetResources returns the envoy specific Kubernetes resource

func (*EnvoyConfig) GetServiceAccount

func (eConfig *EnvoyConfig) GetServiceAccount() string

GetServiceAccount returns the Kubernetes Service Account to use for EnvoyConfig

func (*EnvoyConfig) GetTolerations

func (eConfig *EnvoyConfig) GetTolerations() []corev1.Toleration

GetTolerations returns the tolerations for envoy

type ExternalListenerConfig

type ExternalListenerConfig struct {
	CommonListenerSpec     `json:",inline"`
	IngressServiceSettings `json:",inline"`
	ExternalStartingPort   int32 `json:"externalStartingPort"`
	// configuring AnyCastPort allows kafka cluster access without specifying the exact broker
	AnyCastPort *int32 `json:"anyCastPort,omitempty"`
	// +kubebuilder:validation:Enum=LoadBalancer;NodePort
	// accessMethod defines the method which the external listener is exposed through.
	// Two types are supported LoadBalancer and NodePort.
	// The recommended and default is the LoadBalancer.
	// NodePort should be used in Kubernetes environments with no support for provisioning Load Balancers.
	// +optional
	AccessMethod corev1.ServiceType `json:"accessMethod,omitempty"`
	// Config allows to specify ingress controller configuration per external listener
	// if set overrides the the default `KafkaClusterSpec.IstioIngressConfig` or `KafkaClusterSpec.EnvoyConfig` for this external listener.
	// +optional
	Config *Config `json:"config,omitempty"`
}

ExternalListenerConfig defines the external listener config for Kafka

func (*ExternalListenerConfig) DeepCopy

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

func (*ExternalListenerConfig) DeepCopyInto

func (in *ExternalListenerConfig) DeepCopyInto(out *ExternalListenerConfig)

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

func (ExternalListenerConfig) GetAccessMethod

func (c ExternalListenerConfig) GetAccessMethod() corev1.ServiceType

func (ExternalListenerConfig) GetAnyCastPort

func (c ExternalListenerConfig) GetAnyCastPort() int32

type ExternalListenerConfigNames

type ExternalListenerConfigNames []string

ExternalListenerConfigNames type describes a collection of external listener names

func (ExternalListenerConfigNames) DeepCopy

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

func (ExternalListenerConfigNames) DeepCopyInto

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

type GracefulActionState

type GracefulActionState struct {
	// ErrorMessage holds the information what happened with CC
	ErrorMessage string `json:"errorMessage"`
	// CruiseControlTaskId holds info about the task id ran by CC
	CruiseControlTaskId string `json:"cruiseControlTaskId,omitempty"`
	// TaskStarted hold the time when the execution started
	TaskStarted string `json:"TaskStarted,omitempty"`
	// CruiseControlState holds the information about CC state
	CruiseControlState CruiseControlState `json:"cruiseControlState"`
	// VolumeStates holds the information about the CC disk rebalance states and tasks
	VolumeStates map[string]VolumeState `json:"volumeStates,omitempty"`
}

GracefulActionState holds information about GracefulAction State

func (*GracefulActionState) DeepCopy

func (in *GracefulActionState) DeepCopy() *GracefulActionState

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

func (*GracefulActionState) DeepCopyInto

func (in *GracefulActionState) DeepCopyInto(out *GracefulActionState)

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

type IngressConfig

type IngressConfig struct {
	IngressServiceSettings `json:",inline"`
	IstioIngressConfig     *IstioIngressConfig `json:"istioIngressConfig,omitempty"`
	EnvoyConfig            *EnvoyConfig        `json:"envoyConfig,omitempty"`
}

func (*IngressConfig) DeepCopy

func (in *IngressConfig) DeepCopy() *IngressConfig

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

func (*IngressConfig) DeepCopyInto

func (in *IngressConfig) DeepCopyInto(out *IngressConfig)

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

type IngressServiceSettings

type IngressServiceSettings struct {
	// In case of external listeners using LoadBalancer access method the value of this field is used to advertise the
	// Kafka broker external listener instead of the public IP of the provisioned LoadBalancer service (e.g. can be used to
	// advertise the listener using a URL recorded in DNS instead of public IP).
	// In case of external listeners using NodePort access method the broker instead of node public IP (see "brokerConfig.nodePortExternalIP")
	// is advertised on the address having the following format: <kafka-cluster-name>-<broker-id>.<namespace><value-specified-in-hostnameOverride-field>
	HostnameOverride string `json:"hostnameOverride,omitempty"`
	// ServiceAnnotations defines annotations which will
	// be placed to the service or services created for the external listener
	ServiceAnnotations map[string]string `json:"serviceAnnotations,omitempty"`
	// externalTrafficPolicy denotes if this Service desires to route external
	// traffic to node-local or cluster-wide endpoints. "Local" preserves the
	// client source IP and avoids a second hop for LoadBalancer and Nodeport
	// type services, but risks potentially imbalanced traffic spreading.
	// "Cluster" obscures the client source IP and may cause a second hop to
	// another node, but should have good overall load-spreading.
	// +optional
	ExternalTrafficPolicy corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"`
	// Service Type string describes ingress methods for a service
	// Only "NodePort" and "LoadBalancer" is supported.
	// Default value is LoadBalancer
	ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
}

func (*IngressServiceSettings) DeepCopy

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

func (*IngressServiceSettings) DeepCopyInto

func (in *IngressServiceSettings) DeepCopyInto(out *IngressServiceSettings)

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

func (IngressServiceSettings) GetServiceAnnotations

func (c IngressServiceSettings) GetServiceAnnotations() map[string]string

GetServiceAnnotations returns a copy of the ServiceAnnotations field.

func (IngressServiceSettings) GetServiceType

func (c IngressServiceSettings) GetServiceType() corev1.ServiceType

GetServiceType returns the field value of ServiceType defaults to LoadBalancer.

type InternalListenerConfig

type InternalListenerConfig struct {
	CommonListenerSpec              `json:",inline"`
	UsedForInnerBrokerCommunication bool `json:"usedForInnerBrokerCommunication"`
	UsedForControllerCommunication  bool `json:"usedForControllerCommunication,omitempty"`
}

InternalListenerConfig defines the internal listener config for Kafka

func (*InternalListenerConfig) DeepCopy

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

func (*InternalListenerConfig) DeepCopyInto

func (in *InternalListenerConfig) DeepCopyInto(out *InternalListenerConfig)

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

type IstioIngressConfig

type IstioIngressConfig struct {
	Resources *corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
	// +kubebuilder:validation:Minimum=1
	Replicas     int32               `json:"replicas,omitempty"`
	NodeSelector map[string]string   `json:"nodeSelector,omitempty"`
	Tolerations  []corev1.Toleration `json:"tolerations,omitempty"`
	// Annotations defines the annotations placed on the istio ingress controller deployment
	Annotations               map[string]string    `json:"annotations,omitempty"`
	TLSOptions                *v1alpha3.TLSOptions `json:"gatewayConfig,omitempty"`
	VirtualServiceAnnotations map[string]string    `json:"virtualServiceAnnotations,omitempty"`
	// Envs allows to add additional env vars to the istio meshgateway resource
	Envs []corev1.EnvVar `json:"envs,omitempty"`
}

IstioIngressConfig defines the config for the Istio Ingress Controller

func (*IstioIngressConfig) DeepCopy

func (in *IstioIngressConfig) DeepCopy() *IstioIngressConfig

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

func (*IstioIngressConfig) DeepCopyInto

func (in *IstioIngressConfig) DeepCopyInto(out *IstioIngressConfig)

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

func (*IstioIngressConfig) GetAnnotations

func (iIConfig *IstioIngressConfig) GetAnnotations() map[string]string

func (*IstioIngressConfig) GetReplicas

func (iIConfig *IstioIngressConfig) GetReplicas() int32

GetReplicas returns replicas used by the Istio Ingress deployment

func (*IstioIngressConfig) GetResources

func (iIConfig *IstioIngressConfig) GetResources() *corev1.ResourceRequirements

GetResources returns the IstioIngress specific Kubernetes resources

func (*IstioIngressConfig) GetVirtualServiceAnnotations

func (iIConfig *IstioIngressConfig) GetVirtualServiceAnnotations() map[string]string

GetVirtualServiceAnnotations returns a copy of the VirtualServiceAnnotations field

type KafkaCluster

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

	Spec   KafkaClusterSpec   `json:"spec,omitempty"`
	Status KafkaClusterStatus `json:"status,omitempty"`
}

KafkaCluster is the Schema for the kafkaclusters API

func (*KafkaCluster) DeepCopy

func (in *KafkaCluster) DeepCopy() *KafkaCluster

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

func (*KafkaCluster) DeepCopyInto

func (in *KafkaCluster) DeepCopyInto(out *KafkaCluster)

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

func (*KafkaCluster) DeepCopyObject

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

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

type KafkaClusterList

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

KafkaClusterList contains a list of KafkaCluster

func (*KafkaClusterList) DeepCopy

func (in *KafkaClusterList) DeepCopy() *KafkaClusterList

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

func (*KafkaClusterList) DeepCopyInto

func (in *KafkaClusterList) DeepCopyInto(out *KafkaClusterList)

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

func (*KafkaClusterList) DeepCopyObject

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

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

type KafkaClusterSpec

type KafkaClusterSpec struct {
	HeadlessServiceEnabled bool            `json:"headlessServiceEnabled"`
	ListenersConfig        ListenersConfig `json:"listenersConfig"`
	// ZKAddresses specifies the ZooKeeper connection string
	// in the form hostname:port where host and port are the host and port of a ZooKeeper server.
	ZKAddresses []string `json:"zkAddresses"`
	// ZKPath specifies the ZooKeeper chroot path as part
	// of its ZooKeeper connection string which puts its data under some path in the global ZooKeeper namespace.
	ZKPath               string                  `json:"zkPath,omitempty"`
	RackAwareness        *RackAwareness          `json:"rackAwareness,omitempty"`
	ClusterImage         string                  `json:"clusterImage,omitempty"`
	ReadOnlyConfig       string                  `json:"readOnlyConfig,omitempty"`
	ClusterWideConfig    string                  `json:"clusterWideConfig,omitempty"`
	BrokerConfigGroups   map[string]BrokerConfig `json:"brokerConfigGroups,omitempty"`
	Brokers              []Broker                `json:"brokers"`
	DisruptionBudget     DisruptionBudget        `json:"disruptionBudget,omitempty"`
	RollingUpgradeConfig RollingUpgradeConfig    `json:"rollingUpgradeConfig"`
	// +kubebuilder:validation:Enum=envoy;istioingress
	IngressController string `json:"ingressController,omitempty"`
	// If true OneBrokerPerNode ensures that each kafka broker will be placed on a different node unless a custom
	// Affinity definition overrides this behavior
	OneBrokerPerNode    bool                `json:"oneBrokerPerNode"`
	PropagateLabels     bool                `json:"propagateLabels,omitempty"`
	CruiseControlConfig CruiseControlConfig `json:"cruiseControlConfig"`
	EnvoyConfig         EnvoyConfig         `json:"envoyConfig,omitempty"`
	MonitoringConfig    MonitoringConfig    `json:"monitoringConfig,omitempty"`
	VaultConfig         VaultConfig         `json:"vaultConfig,omitempty"`
	AlertManagerConfig  *AlertManagerConfig `json:"alertManagerConfig,omitempty"`
	IstioIngressConfig  IstioIngressConfig  `json:"istioIngressConfig,omitempty"`
	// Envs defines environment variables for Kafka broker Pods.
	// Adding the "+" prefix to the name prepends the value to that environment variable instead of overwriting it.
	// Add the "+" suffix to append.
	Envs                    []corev1.EnvVar `json:"envs,omitempty"`
	KubernetesClusterDomain string          `json:"kubernetesClusterDomain,omitempty"`
}

KafkaClusterSpec defines the desired state of KafkaCluster

func (*KafkaClusterSpec) DeepCopy

func (in *KafkaClusterSpec) DeepCopy() *KafkaClusterSpec

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

func (*KafkaClusterSpec) DeepCopyInto

func (in *KafkaClusterSpec) DeepCopyInto(out *KafkaClusterSpec)

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

func (*KafkaClusterSpec) GetClusterImage

func (kSpec *KafkaClusterSpec) GetClusterImage() string

GetClusterImage returns the default container image for Kafka Cluster

func (*KafkaClusterSpec) GetIngressController

func (kSpec *KafkaClusterSpec) GetIngressController() string

GetIngressController returns the default Envoy ingress controller if not specified otherwise

func (*KafkaClusterSpec) GetKubernetesClusterDomain

func (kSpec *KafkaClusterSpec) GetKubernetesClusterDomain() string

GetDomain returns the default domain if not specified otherwise

func (*KafkaClusterSpec) GetZkPath

func (kSpec *KafkaClusterSpec) GetZkPath() string

GetZkPath returns the default "/" ZkPath if not specified otherwise

type KafkaClusterStatus

type KafkaClusterStatus struct {
	BrokersState             map[string]BrokerState   `json:"brokersState,omitempty"`
	CruiseControlTopicStatus CruiseControlTopicStatus `json:"cruiseControlTopicStatus,omitempty"`
	State                    ClusterState             `json:"state"`
	RollingUpgrade           RollingUpgradeStatus     `json:"rollingUpgradeStatus,omitempty"`
	AlertCount               int                      `json:"alertCount"`
	ListenerStatuses         ListenerStatuses         `json:"listenerStatuses,omitempty"`
}

KafkaClusterStatus defines the observed state of KafkaCluster

func (*KafkaClusterStatus) DeepCopy

func (in *KafkaClusterStatus) DeepCopy() *KafkaClusterStatus

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

func (*KafkaClusterStatus) DeepCopyInto

func (in *KafkaClusterStatus) DeepCopyInto(out *KafkaClusterStatus)

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

type KafkaVersion

type KafkaVersion struct {
	// Version holds the current version of the broker in semver format
	Version string `json:"version,omitempty"`
	// Image specifies the current docker image of the broker
	Image string `json:"image,omitempty"`
}

KafkaVersion type describes the kafka version and docker version

func (*KafkaVersion) DeepCopy

func (in *KafkaVersion) DeepCopy() *KafkaVersion

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

func (*KafkaVersion) DeepCopyInto

func (in *KafkaVersion) DeepCopyInto(out *KafkaVersion)

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

type ListenerStatus

type ListenerStatus struct {
	Name    string `json:"name"`
	Address string `json:"address"`
}

ListenerStatus holds information about the address of the listener

func (*ListenerStatus) DeepCopy

func (in *ListenerStatus) DeepCopy() *ListenerStatus

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

func (*ListenerStatus) DeepCopyInto

func (in *ListenerStatus) DeepCopyInto(out *ListenerStatus)

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

type ListenerStatusList

type ListenerStatusList []ListenerStatus

ListenerStatusList can hold various amount of statuses based on the listener configuration.

func (ListenerStatusList) DeepCopy

func (in ListenerStatusList) DeepCopy() ListenerStatusList

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

func (ListenerStatusList) DeepCopyInto

func (in ListenerStatusList) DeepCopyInto(out *ListenerStatusList)

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

func (ListenerStatusList) Len

func (l ListenerStatusList) Len() int

func (ListenerStatusList) Less

func (l ListenerStatusList) Less(i, j int) bool

func (ListenerStatusList) Swap

func (l ListenerStatusList) Swap(i, j int)

type ListenerStatuses

type ListenerStatuses struct {
	InternalListeners map[string]ListenerStatusList `json:"internalListeners,omitempty"`
	ExternalListeners map[string]ListenerStatusList `json:"externalListeners,omitempty"`
}

ListenerStatuses holds information about the statuses of the configured listeners. The internal and external listeners are stored in separate maps, and each listener can be looked up by name.

func (*ListenerStatuses) DeepCopy

func (in *ListenerStatuses) DeepCopy() *ListenerStatuses

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

func (*ListenerStatuses) DeepCopyInto

func (in *ListenerStatuses) DeepCopyInto(out *ListenerStatuses)

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

type ListenersConfig

type ListenersConfig struct {
	ExternalListeners  []ExternalListenerConfig `json:"externalListeners,omitempty"`
	InternalListeners  []InternalListenerConfig `json:"internalListeners"`
	SSLSecrets         *SSLSecrets              `json:"sslSecrets,omitempty"`
	ServiceAnnotations map[string]string        `json:"serviceAnnotations,omitempty"`
}

ListenersConfig defines the Kafka listener types

func (*ListenersConfig) DeepCopy

func (in *ListenersConfig) DeepCopy() *ListenersConfig

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

func (*ListenersConfig) DeepCopyInto

func (in *ListenersConfig) DeepCopyInto(out *ListenersConfig)

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

func (ListenersConfig) GetServiceAnnotations

func (c ListenersConfig) GetServiceAnnotations() map[string]string

GetServiceAnnotations returns a copy of the ServiceAnnotations field.

type MonitoringConfig

type MonitoringConfig struct {
	JmxImage               string `json:"jmxImage,omitempty"`
	PathToJar              string `json:"pathToJar,omitempty"`
	KafkaJMXExporterConfig string `json:"kafkaJMXExporterConfig,omitempty"`
	CCJMXExporterConfig    string `json:"cCJMXExporterConfig,omitempty"`
}

MonitoringConfig defines the config for monitoring Kafka and Cruise Control

func (*MonitoringConfig) DeepCopy

func (in *MonitoringConfig) DeepCopy() *MonitoringConfig

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

func (*MonitoringConfig) DeepCopyInto

func (in *MonitoringConfig) DeepCopyInto(out *MonitoringConfig)

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

func (*MonitoringConfig) GetCCJMXExporterConfig

func (mConfig *MonitoringConfig) GetCCJMXExporterConfig() string

GetCCJMXExporterConfig returns the config for CC Prometheus JMX exporter

func (*MonitoringConfig) GetImage

func (mConfig *MonitoringConfig) GetImage() string

GetImage returns the used image for Prometheus JMX exporter

func (*MonitoringConfig) GetKafkaJMXExporterConfig

func (mConfig *MonitoringConfig) GetKafkaJMXExporterConfig() string

GetKafkaJMXExporterConfig returns the config for Kafka Prometheus JMX exporter

func (*MonitoringConfig) GetPathToJar

func (mConfig *MonitoringConfig) GetPathToJar() string

GetPathToJar returns the path in the used Image for Prometheus JMX exporter

type NetworkConfig

type NetworkConfig struct {
	IncomingNetworkThroughPut string `json:"incomingNetworkThroughPut,omitempty"`
	OutgoingNetworkThroughPut string `json:"outgoingNetworkThroughPut,omitempty"`
}

func (*NetworkConfig) DeepCopy

func (in *NetworkConfig) DeepCopy() *NetworkConfig

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

func (*NetworkConfig) DeepCopyInto

func (in *NetworkConfig) DeepCopyInto(out *NetworkConfig)

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

type PKIBackend

type PKIBackend string

PKIBackend represents an interface implementing the PKIManager

const (
	// PKIBackendCertManager invokes cert-manager for user certificate management
	PKIBackendCertManager PKIBackend = "cert-manager"
	// PKIBackendVault invokes vault PKI for user certificate management
	PKIBackendVault PKIBackend = "vault"
	// PKIBackendProvided used to point the operator to use the PKI set in the cluster CR
	// for admin and users required for the cluster to run
	PKIBackendProvided PKIBackend = "pki-backend-provided"
	// PKIBackendK8sCSR invokes kubernetes csr API for user certificate management
	PKIBackendK8sCSR PKIBackend = "k8s-csr"
)

type PerBrokerConfigurationState

type PerBrokerConfigurationState string

PerBrokerConfigurationState holds info about the per-broker configuration state

type RackAwareness

type RackAwareness struct {
	Labels []string `json:"labels"`
}

RackAwareness defines the required fields to enable kafka's rack aware feature

func (*RackAwareness) DeepCopy

func (in *RackAwareness) DeepCopy() *RackAwareness

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

func (*RackAwareness) DeepCopyInto

func (in *RackAwareness) DeepCopyInto(out *RackAwareness)

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

type RackAwarenessState

type RackAwarenessState string

RackAwarenessState stores info about rack awareness status

type RollingUpgradeConfig

type RollingUpgradeConfig struct {
	FailureThreshold int `json:"failureThreshold"`
}

RollingUpgradeConfig defines the desired config of the RollingUpgrade

func (*RollingUpgradeConfig) DeepCopy

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

func (*RollingUpgradeConfig) DeepCopyInto

func (in *RollingUpgradeConfig) DeepCopyInto(out *RollingUpgradeConfig)

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

type RollingUpgradeStatus

type RollingUpgradeStatus struct {
	LastSuccess string `json:"lastSuccess"`
	ErrorCount  int    `json:"errorCount"`
}

RollingUpgradeStatus defines status of rolling upgrade

func (*RollingUpgradeStatus) DeepCopy

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

func (*RollingUpgradeStatus) DeepCopyInto

func (in *RollingUpgradeStatus) DeepCopyInto(out *RollingUpgradeStatus)

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

type SSLSecrets

type SSLSecrets struct {
	TLSSecretName   string                  `json:"tlsSecretName"`
	JKSPasswordName string                  `json:"jksPasswordName"`
	Create          bool                    `json:"create,omitempty"`
	IssuerRef       *cmmeta.ObjectReference `json:"issuerRef,omitempty"`
	// +kubebuilder:validation:Enum={"cert-manager","vault"}
	PKIBackend PKIBackend `json:"pkiBackend,omitempty"`
}

SSLSecrets defines the Kafka SSL secrets

func (*SSLSecrets) DeepCopy

func (in *SSLSecrets) DeepCopy() *SSLSecrets

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

func (*SSLSecrets) DeepCopyInto

func (in *SSLSecrets) DeepCopyInto(out *SSLSecrets)

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

type SecurityProtocol

type SecurityProtocol string

SecurityProtocol is the protocol used to communicate with brokers. Valid values are: plaintext, ssl, sasl_plaintext, sasl_ssl.

func (SecurityProtocol) Equal

Equal checks the equality between two SecurityProtocols

func (SecurityProtocol) IsPlaintext

func (r SecurityProtocol) IsPlaintext() bool

IsPlaintext determines if the receiver is using plaintext

func (SecurityProtocol) IsSSL

func (r SecurityProtocol) IsSSL() bool

IsSSL determines if the receiver is using SSL

func (SecurityProtocol) IsSasl

func (r SecurityProtocol) IsSasl() bool

IsSasl determines if the receiver is using Sasl

func (SecurityProtocol) ToUpperString

func (r SecurityProtocol) ToUpperString() string

ToUpperString converts SecurityProtocol to an upper string

type StorageConfig

type StorageConfig struct {
	MountPath string                            `json:"mountPath"`
	PvcSpec   *corev1.PersistentVolumeClaimSpec `json:"pvcSpec"`
}

StorageConfig defines the broker storage configuration

func (*StorageConfig) DeepCopy

func (in *StorageConfig) DeepCopy() *StorageConfig

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

func (*StorageConfig) DeepCopyInto

func (in *StorageConfig) DeepCopyInto(out *StorageConfig)

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

type TopicConfig

type TopicConfig struct {
	Partitions int32 `json:"partitions"`
	// +kubebuilder:validation:Minimum=2
	ReplicationFactor int32 `json:"replicationFactor"`
}

TopicConfig holds info for topic configuration regarding partitions and replicationFactor

func (*TopicConfig) DeepCopy

func (in *TopicConfig) DeepCopy() *TopicConfig

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

func (*TopicConfig) DeepCopyInto

func (in *TopicConfig) DeepCopyInto(out *TopicConfig)

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

type VaultConfig

type VaultConfig struct {
	AuthRole  string `json:"authRole"`
	PKIPath   string `json:"pkiPath"`
	IssuePath string `json:"issuePath"`
	UserStore string `json:"userStore"`
}

VaultConfig defines the configuration for a vault PKI backend

func (*VaultConfig) DeepCopy

func (in *VaultConfig) DeepCopy() *VaultConfig

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

func (*VaultConfig) DeepCopyInto

func (in *VaultConfig) DeepCopyInto(out *VaultConfig)

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

type VolumeState

type VolumeState struct {
	// ErrorMessage holds the information what happened with CC disk rebalance
	ErrorMessage string `json:"errorMessage"`
	// CruiseControlTaskId holds info about the task id ran by CC
	CruiseControlTaskId string `json:"cruiseControlTaskId,omitempty"`
	// TaskStarted hold the time when the execution started
	TaskStarted string `json:"TaskStarted,omitempty"`
	// CruiseControlVolumeState holds the information about the CC disk rebalance state
	CruiseControlVolumeState CruiseControlVolumeState `json:"cruiseControlVolumeState"`
}

func (*VolumeState) DeepCopy

func (in *VolumeState) DeepCopy() *VolumeState

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

func (*VolumeState) DeepCopyInto

func (in *VolumeState) DeepCopyInto(out *VolumeState)

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