KafkaNodePool

API group/version: crabka.io/v1alpha1

Spec

FieldTypeRequiredDefaultDescription
clientDispatchQueueCapacityintegernoKafka client request-dispatch queue capacity.
clientFrameMaxstringnoMaximum accepted Kafka client frame size.
imagestringnoContainer image. The operator uses --default-broker-image when this field is absent.
nodeIdStartintegeryesFirst node id. Pod ordinal i -> node_id = nodeIdStart + i.
replicasintegerno1Number of pods. Validation: it must equal 1.
resourcesobjectnoBroker container resources.
resources.claimsarraynoClaims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
resources.limitsobjectnoLimits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
resources.requestsobjectnoRequests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
rolesarrayyesRoles that each node in this pool has. Only the union {Controller, Broker} is supported.
storageobjectnoStorage configuration. None, which means that the field is absent, gives an emptyDir. That is the default. See [Storage].
storage.classstringno
storage.deleteClaimbooleanno
storage.sizestringno
storage.typestringyes
storage.volumesarrayno
templateobjectnoOptional pod-level customization for every pod in this pool.
template.affinityobjectnoThe operator copies this to PodSpec.affinity.
template.affinity.nodeAffinityobjectnoDescribes node affinity scheduling rules for the pod.
template.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecutionarraynoThe scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
template.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecutionobjectnoIf the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
template.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTermsarrayyesRequired. A list of node selector terms. The terms are ORed.
template.affinity.podAffinityobjectnoDescribes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
template.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecutionarraynoThe scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
template.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecutionarraynoIf the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
template.affinity.podAntiAffinityobjectnoDescribes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
template.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecutionarraynoThe scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
template.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecutionarraynoIf the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
template.metadataobjectnoExtra labels and annotations on the pod template.
template.metadata.annotationsobjectno
template.metadata.labelsobjectno
template.nodeSelectorobjectnoThe operator copies this to PodSpec.nodeSelector.
template.tolerationsarraynoThe operator copies this to PodSpec.tolerations.

Status

FieldTypeRequiredDefaultDescription
conditionsarrayno[]Standard Kubernetes-style condition list.
readyReplicasintegernoThe same value as StatefulSet.status.readyReplicas.
replicasintegernoThe same value as StatefulSet.status.replicas.