HbaseCluster
Kind
hbase.stackable.tech
Group
v1alpha1
Version

apiVersion: hbase.stackable.tech/v1alpha1
kind: HbaseCluster
spec object

An HBase cluster stacklet. This resource is managed by the Stackable operator for Apache HBase. Find more information on how to use it and the resources that the operator generates in the operator documentation.

The CRD contains three roles: masters, regionServers and restServers.


clusterConfig object required

Configuration that applies to all roles and role groups. This includes settings for logging, ZooKeeper and HDFS connection, among other things.


authentication object

Settings related to user authentication.


kerberos object required

Kerberos configuration.


secretClass string required

Name of the SecretClass providing the keytab for the HBase services.

tlsSecretClass string

Name of the SecretClass providing the tls certificates for the WebUIs.

authorization object

No Description Provided.


opa object required

Configure the OPA stacklet discovery ConfigMap and the name of the Rego package containing your authorization rules. Consult the OPA authorization documentation to learn how to deploy Rego authorization rules with OPA.


configMapName string required

The discovery ConfigMap for the OPA stacklet that should be used for authorization requests.

package string

The name of the Rego package containing the Rego rules for the product.

hdfsConfigMapName string required

Name of the discovery ConfigMap for an HDFS cluster.

listenerClass string: enum
Enum variants: cluster-internalexternal-unstable

This field controls which type of Service the Operator creates for this HbaseCluster:

  • cluster-internal: Use a ClusterIP service

  • external-unstable: Use a NodePort service

This is a temporary solution with the goal to keep yaml manifests forward compatible. In the future, this setting will control which ListenerClass will be used to expose the service, and ListenerClass names will stay the same, allowing for a non-breaking change.

vectorAggregatorConfigMapName string

Name of the Vector aggregator discovery ConfigMap. It must contain the key ADDRESS with the address of the Vector aggregator. Follow the logging tutorial to learn how to configure log aggregation with Vector.

zookeeperConfigMapName string required

Name of the discovery ConfigMap for a ZooKeeper cluster.

clusterOperation object

Cluster operations properties, allow stopping the product instance as well as pausing reconciliation.


reconciliationPaused boolean

Flag to stop cluster reconciliation by the operator. This means that all changes in the custom resource spec are ignored until this flag is set to false or removed. The operator will however still watch the deployed resources at the time and update the custom resource status field. If applied at the same time with stopped, reconciliationPaused will take precedence over stopped and stop the reconciliation immediately.

stopped boolean

Flag to stop the cluster. This means all deployed resources (e.g. Services, StatefulSets, ConfigMaps) are kept but all deployed Pods (e.g. replicas from a StatefulSet) are scaled to 0 and therefore stopped and removed. If applied at the same time with reconciliationPaused, the latter will pause reconciliation and stopped will take no effect until reconciliationPaused is set to false or removed.

image object required

Specify which image to use, the easiest way is to only configure the productVersion. You can also configure a custom image registry to pull from, as well as completely custom images.

Consult the Product image selection documentation for details.


custom string

Overwrite the docker image. Specify the full docker image name, e.g. docker.stackable.tech/stackable/superset:1.4.1-stackable2.1.0

productVersion string

Version of the product, e.g. 1.4.1.

pullPolicy string: enum
Enum variants: IfNotPresentAlwaysNever

Pull policy used when pulling the image.

pullSecrets []object

Image pull secrets to pull images from a private registry.


name string required

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

repo string

Name of the docker repo, e.g. docker.stackable.tech/stackable

stackableVersion string

Stackable version of the product, e.g. 23.4, 23.4.1 or 0.0.0-dev. If not specified, the operator will use its own version, e.g. 23.4.1. When using a nightly operator or a pr version, it will use the nightly 0.0.0-dev image.

masters object

The HBase master process is responsible for assigning regions to region servers and manages the cluster.


cliOverrides object

No Description Provided.

config object

No Description Provided.


affinity object

These configuration settings control Pod placement.


nodeAffinity object

Same as the spec.affinity.nodeAffinity field on the Pod, see the Kubernetes docs

nodeSelector object

Simple key-value pairs forming a nodeSelector, see the Kubernetes docs

podAffinity object

Same as the spec.affinity.podAffinity field on the Pod, see the Kubernetes docs

podAntiAffinity object

Same as the spec.affinity.podAntiAffinity field on the Pod, see the Kubernetes docs

gracefulShutdownTimeout string

Time period Pods have to gracefully shut down, e.g. 30m, 1h or 2d. Consult the operator documentation for details.

hbaseOpts string

No Description Provided.

hbaseRootdir string

No Description Provided.

logging object

Logging configuration, learn more in the logging concept documentation.


containers object

Log configuration per container.

enableVectorAgent boolean

Wether or not to deploy a container with the Vector log agent.

resources object

Resource usage is configured here, this includes CPU usage, memory usage and disk storage usage, if this role needs any.


cpu object

No Description Provided.


max string

The maximum amount of CPU cores that can be requested by Pods. Equivalent to the limit for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:1.5 will be 1.5 cores, also written as 1500m.

min string

The minimal amount of CPU cores that Pods need to run. Equivalent to the request for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:1.5 will be 1.5 cores, also written as 1500m.

memory object

No Description Provided.


limit string

The maximum amount of memory that should be available to the Pod. Specified as a byte Quantity, which means these suffixes are supported: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following represent roughly the same value: 128974848, 129e6, 129M, 128974848000m, 123Mi

runtimeLimits object

Additional options that can be specified.

storage object

No Description Provided.

configOverrides object

The configOverrides can be used to configure properties in product config files that are not exposed in the CRD. Read the config overrides documentation and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product.

envOverrides object

envOverrides configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the environment variable overrides documentation for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.

podOverrides object

In the podOverrides property you can define a PodTemplateSpec to override any property that can be set on a Kubernetes Pod. Read the Pod overrides documentation for more information.

roleConfig object

This is a product-agnostic RoleConfig, which is sufficient for most of the products.


podDisruptionBudget object

This struct is used to configure:

  1. If PodDisruptionBudgets are created by the operator 2. The allowed number of Pods to be unavailable (maxUnavailable)

Learn more in the allowed Pod disruptions documentation.


enabled boolean

Whether a PodDisruptionBudget should be written out for this role. Disabling this enables you to specify your own - custom - one. Defaults to true.

maxUnavailable integer

The number of Pods that are allowed to be down because of voluntary disruptions. If you don't explicitly set this, the operator will use a sane default based upon knowledge about the individual product.

roleGroups object required

No Description Provided.

regionServers object

Region servers hold the data and handle requests from clients for their region.


cliOverrides object

No Description Provided.

config object

No Description Provided.


affinity object

These configuration settings control Pod placement.


nodeAffinity object

Same as the spec.affinity.nodeAffinity field on the Pod, see the Kubernetes docs

nodeSelector object

Simple key-value pairs forming a nodeSelector, see the Kubernetes docs

podAffinity object

Same as the spec.affinity.podAffinity field on the Pod, see the Kubernetes docs

podAntiAffinity object

Same as the spec.affinity.podAntiAffinity field on the Pod, see the Kubernetes docs

gracefulShutdownTimeout string

Time period Pods have to gracefully shut down, e.g. 30m, 1h or 2d. Consult the operator documentation for details.

hbaseOpts string

No Description Provided.

hbaseRootdir string

No Description Provided.

logging object

Logging configuration, learn more in the logging concept documentation.


containers object

Log configuration per container.

enableVectorAgent boolean

Wether or not to deploy a container with the Vector log agent.

resources object

Resource usage is configured here, this includes CPU usage, memory usage and disk storage usage, if this role needs any.


cpu object

No Description Provided.


max string

The maximum amount of CPU cores that can be requested by Pods. Equivalent to the limit for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:1.5 will be 1.5 cores, also written as 1500m.

min string

The minimal amount of CPU cores that Pods need to run. Equivalent to the request for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:1.5 will be 1.5 cores, also written as 1500m.

memory object

No Description Provided.


limit string

The maximum amount of memory that should be available to the Pod. Specified as a byte Quantity, which means these suffixes are supported: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following represent roughly the same value: 128974848, 129e6, 129M, 128974848000m, 123Mi

runtimeLimits object

Additional options that can be specified.

storage object

No Description Provided.

configOverrides object

The configOverrides can be used to configure properties in product config files that are not exposed in the CRD. Read the config overrides documentation and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product.

envOverrides object

envOverrides configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the environment variable overrides documentation for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.

podOverrides object

In the podOverrides property you can define a PodTemplateSpec to override any property that can be set on a Kubernetes Pod. Read the Pod overrides documentation for more information.

roleConfig object

This is a product-agnostic RoleConfig, which is sufficient for most of the products.


podDisruptionBudget object

This struct is used to configure:

  1. If PodDisruptionBudgets are created by the operator 2. The allowed number of Pods to be unavailable (maxUnavailable)

Learn more in the allowed Pod disruptions documentation.


enabled boolean

Whether a PodDisruptionBudget should be written out for this role. Disabling this enables you to specify your own - custom - one. Defaults to true.

maxUnavailable integer

The number of Pods that are allowed to be down because of voluntary disruptions. If you don't explicitly set this, the operator will use a sane default based upon knowledge about the individual product.

roleGroups object required

No Description Provided.

restServers object

Rest servers provide a REST API to interact with.


cliOverrides object

No Description Provided.

config object

No Description Provided.


affinity object

These configuration settings control Pod placement.


nodeAffinity object

Same as the spec.affinity.nodeAffinity field on the Pod, see the Kubernetes docs

nodeSelector object

Simple key-value pairs forming a nodeSelector, see the Kubernetes docs

podAffinity object

Same as the spec.affinity.podAffinity field on the Pod, see the Kubernetes docs

podAntiAffinity object

Same as the spec.affinity.podAntiAffinity field on the Pod, see the Kubernetes docs

gracefulShutdownTimeout string

Time period Pods have to gracefully shut down, e.g. 30m, 1h or 2d. Consult the operator documentation for details.

hbaseOpts string

No Description Provided.

hbaseRootdir string

No Description Provided.

logging object

Logging configuration, learn more in the logging concept documentation.


containers object

Log configuration per container.

enableVectorAgent boolean

Wether or not to deploy a container with the Vector log agent.

resources object

Resource usage is configured here, this includes CPU usage, memory usage and disk storage usage, if this role needs any.


cpu object

No Description Provided.


max string

The maximum amount of CPU cores that can be requested by Pods. Equivalent to the limit for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:1.5 will be 1.5 cores, also written as 1500m.

min string

The minimal amount of CPU cores that Pods need to run. Equivalent to the request for Pod resource configuration. Cores are specified either as a decimal point number or as milli units. For example:1.5 will be 1.5 cores, also written as 1500m.

memory object

No Description Provided.


limit string

The maximum amount of memory that should be available to the Pod. Specified as a byte Quantity, which means these suffixes are supported: E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki. For example, the following represent roughly the same value: 128974848, 129e6, 129M, 128974848000m, 123Mi

runtimeLimits object

Additional options that can be specified.

storage object

No Description Provided.

configOverrides object

The configOverrides can be used to configure properties in product config files that are not exposed in the CRD. Read the config overrides documentation and consult the operator specific usage guide documentation for details on the available config files and settings for the specific product.

envOverrides object

envOverrides configure environment variables to be set in the Pods. It is a map from strings to strings - environment variables and the value to set. Read the environment variable overrides documentation for more information and consult the operator specific usage guide to find out about the product specific environment variables that are available.

podOverrides object

In the podOverrides property you can define a PodTemplateSpec to override any property that can be set on a Kubernetes Pod. Read the Pod overrides documentation for more information.

roleConfig object

This is a product-agnostic RoleConfig, which is sufficient for most of the products.


podDisruptionBudget object

This struct is used to configure:

  1. If PodDisruptionBudgets are created by the operator 2. The allowed number of Pods to be unavailable (maxUnavailable)

Learn more in the allowed Pod disruptions documentation.


enabled boolean

Whether a PodDisruptionBudget should be written out for this role. Disabling this enables you to specify your own - custom - one. Defaults to true.

maxUnavailable integer

The number of Pods that are allowed to be down because of voluntary disruptions. If you don't explicitly set this, the operator will use a sane default based upon knowledge about the individual product.

roleGroups object required

No Description Provided.

status object

No Description Provided.


conditions []object

No Description Provided.


lastTransitionTime string

Last time the condition transitioned from one status to another.

lastUpdateTime string

The last time this condition was updated.

message string

A human readable message indicating details about the transition.

reason string

The reason for the condition's last transition.

status string: enum required
Enum variants: TrueFalseUnknown

Status of the condition, one of True, False, Unknown.

type string: enum required
Enum variants: AvailableDegradedProgressingReconciliationPausedStopped

Type of deployment condition.