KafkaNodePool

API group/version: crabka.io/v1alpha1

Spec

FieldTypeRequiredDefaultDescription
imagestringnoContainer image. Falls back to operator --default-broker-image.
nodeIdStartintegeryesFirst node id. Pod ordinal i -> node_id = nodeIdStart + i.
replicasintegerno1Number of pods. Validation: 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 each node in this pool fulfills. Only the union {Controller, Broker} is supported.
storageobjectnoStorage configuration. None (field absent) → emptyDir (the default). See [Storage].
storage.classstringno
storage.deleteClaimbooleanno
storage.sizestringno
storage.typestringyes
storage.volumesarrayno
templateobjectnoOptional pod-level customization applied to every pod in this pool.
template.affinityobjectnoForwarded 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 / annotations on the pod template.
template.metadata.annotationsobjectno
template.metadata.labelsobjectno
template.nodeSelectorobjectnoForwarded to PodSpec.nodeSelector.
template.tolerationsarraynoForwarded to PodSpec.tolerations.

Status

FieldTypeRequiredDefaultDescription
conditionsarrayno[]Standard Kubernetes-style condition list.
readyReplicasintegernoMirrors StatefulSet.status.readyReplicas.
replicasintegernoMirrors StatefulSet.status.replicas.