Discovery

The Stackable Operator for Apache HBase publishes a discovery ConfigMap, which exposes a client configuration bundle that allows access to the Apache HBase cluster.

Example

Given the following HBase cluster:

apiVersion: hbase.stackable.tech/v1alpha1
kind: HbaseCluster
metadata:
  name: {cluster-name} (1)
  namespace: {namespace} (2)
spec:
  clusterConfig:
    hdfsConfigMapName: {hdfs-cluster-name} (3)
    zookeeperConfigMapName: {zookeeper-znode-name} (4)
1 The name of the HBase cluster, which is also the name of the created discovery ConfigMap.
2 The namespace of the discovery ConfigMap.
3 The ConfigMap name to discover the HDFS cluster.
4 The ConfigMap name to discover the ZooKeeper ZNode.

The resulting discovery ConfigMap is located at {namespace}/{cluster-name}.

Contents

The ConfigMap data values are formatted as Hadoop XML files which allows simple mounting of that ConfigMap into pods that require access to HBase.

hbase-site.xml

Contains the needed information to connect to Zookeeper and use that to establish a connection to HBase.

Kerberos

In case Kerberos is enabled according to the security documentation, the discovery ConfigMap also includes the information that clients must authenticate themselves using Kerberos.

If you want to use the discovery ConfigMap outside Stackable services, you need to substitute ${env.KERBEROS_REALM} with your actual realm (e.g. by using sed -i -e 's/${{env.KERBEROS_REALM}}/'"$KERBEROS_REALM/g" hbase-site.xml).

One example would be the property hbase.master.kerberos.principal being set to hbase/hbase.default.svc.cluster.local@${env.KERBEROS_REALM}.