From c43aa402f052846dca9c2919d983da2886b617e9 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Tue, 10 Mar 2026 18:52:41 +0100 Subject: [PATCH 1/5] wait for crds and nodes, add phoenix tables --- .../getting_started/getting_started.sh | 21 +++++++++++++------ .../getting_started/getting_started.sh.j2 | 21 +++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/docs/modules/hbase/examples/getting_started/getting_started.sh b/docs/modules/hbase/examples/getting_started/getting_started.sh index 4af57aec..6f0ff695 100755 --- a/docs/modules/hbase/examples/getting_started/getting_started.sh +++ b/docs/modules/hbase/examples/getting_started/getting_started.sh @@ -15,6 +15,9 @@ then exit 1 fi +echo "Waiting for node(s) to be ready..." +kubectl wait node --all --for=condition=Ready --timeout=120s + cd "$(dirname "$0")" case "$1" in @@ -48,6 +51,10 @@ exit 1 ;; esac +# As of SDP 26.3 CRDs are managed by the operator not helm, so there should be an initial delay +# to allow the CRDs to be detected +sleep 10 + echo "Creating ZooKeeper cluster" # tag::install-zk[] kubectl apply -f zk.yaml @@ -90,9 +97,9 @@ done echo "Awaiting HDFS rollout finish" # tag::watch-hdfs-rollout[] -kubectl rollout status --watch statefulset/simple-hdfs-datanode-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hdfs-namenode-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hdfs-journalnode-default --timeout=300s +kubectl rollout status --watch statefulset/simple-hdfs-datanode-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hdfs-namenode-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hdfs-journalnode-default --timeout=600s # end::watch-hdfs-rollout[] sleep 5 @@ -114,9 +121,9 @@ done echo "Awaiting HBase rollout finish" # tag::watch-hbase-rollout[] -kubectl rollout status --watch statefulset/simple-hbase-master-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hbase-regionserver-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hbase-restserver-default --timeout=300s +kubectl rollout status --watch statefulset/simple-hbase-master-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hbase-regionserver-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hbase-restserver-default --timeout=600s # end::watch-hbase-rollout[] version() { @@ -191,6 +198,8 @@ tables_count=$(get_all | jq -r '.table' | jq '. | length') # here, and error out if they don't match expected_tables=$(echo " SYSTEM.CATALOG +SYSTEM.CDC_STREAM +SYSTEM.CDC_STREAM_STATUS SYSTEM.CHILD_LINK SYSTEM.FUNCTION SYSTEM.LOG diff --git a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 index c3547a31..62107457 100755 --- a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 +++ b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 @@ -15,6 +15,9 @@ then exit 1 fi +echo "Waiting for node(s) to be ready..." +kubectl wait node --all --for=condition=Ready --timeout=120s + cd "$(dirname "$0")" case "$1" in @@ -48,6 +51,10 @@ exit 1 ;; esac +# As of SDP 26.3 CRDs are managed by the operator not helm, so there should be an initial delay +# to allow the CRDs to be detected +sleep 10 + echo "Creating ZooKeeper cluster" # tag::install-zk[] kubectl apply -f zk.yaml @@ -90,9 +97,9 @@ done echo "Awaiting HDFS rollout finish" # tag::watch-hdfs-rollout[] -kubectl rollout status --watch statefulset/simple-hdfs-datanode-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hdfs-namenode-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hdfs-journalnode-default --timeout=300s +kubectl rollout status --watch statefulset/simple-hdfs-datanode-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hdfs-namenode-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hdfs-journalnode-default --timeout=600s # end::watch-hdfs-rollout[] sleep 5 @@ -114,9 +121,9 @@ done echo "Awaiting HBase rollout finish" # tag::watch-hbase-rollout[] -kubectl rollout status --watch statefulset/simple-hbase-master-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hbase-regionserver-default --timeout=300s -kubectl rollout status --watch statefulset/simple-hbase-restserver-default --timeout=300s +kubectl rollout status --watch statefulset/simple-hbase-master-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hbase-regionserver-default --timeout=600s +kubectl rollout status --watch statefulset/simple-hbase-restserver-default --timeout=600s # end::watch-hbase-rollout[] version() { @@ -191,6 +198,8 @@ tables_count=$(get_all | jq -r '.table' | jq '. | length') # here, and error out if they don't match expected_tables=$(echo " SYSTEM.CATALOG +SYSTEM.CDC_STREAM +SYSTEM.CDC_STREAM_STATUS SYSTEM.CHILD_LINK SYSTEM.FUNCTION SYSTEM.LOG From 90a28a18950efedde2c159e264b8d522f09fcd4f Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 11 Mar 2026 10:39:41 +0100 Subject: [PATCH 2/5] raise memory on rest server to avoid OOM on phoenix test --- docs/modules/hbase/examples/getting_started/hbase.yaml | 4 ++++ docs/modules/hbase/examples/getting_started/hbase.yaml.j2 | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/docs/modules/hbase/examples/getting_started/hbase.yaml b/docs/modules/hbase/examples/getting_started/hbase.yaml index 46a486ed..b109047e 100644 --- a/docs/modules/hbase/examples/getting_started/hbase.yaml +++ b/docs/modules/hbase/examples/getting_started/hbase.yaml @@ -27,4 +27,8 @@ spec: restServers: roleGroups: default: + config: + resources: + memory: + limit: 1Gi replicas: 1 diff --git a/docs/modules/hbase/examples/getting_started/hbase.yaml.j2 b/docs/modules/hbase/examples/getting_started/hbase.yaml.j2 index 46a486ed..b109047e 100644 --- a/docs/modules/hbase/examples/getting_started/hbase.yaml.j2 +++ b/docs/modules/hbase/examples/getting_started/hbase.yaml.j2 @@ -27,4 +27,8 @@ spec: restServers: roleGroups: default: + config: + resources: + memory: + limit: 1Gi replicas: 1 From 392eb93f6c07e2209c51e0b07bbe831f0d5d503e Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> Date: Wed, 11 Mar 2026 12:40:38 +0100 Subject: [PATCH 3/5] Update docs/modules/hbase/examples/getting_started/getting_started.sh.j2 Co-authored-by: Sebastian Bernauer --- .../hbase/examples/getting_started/getting_started.sh.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 index 62107457..7ba3e7a7 100755 --- a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 +++ b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 @@ -53,7 +53,7 @@ esac # As of SDP 26.3 CRDs are managed by the operator not helm, so there should be an initial delay # to allow the CRDs to be detected -sleep 10 +until kubectl get crd hbaseclusters.hbase.stackable.tech >/dev/null 2>&1; do sleep 1; done echo "Creating ZooKeeper cluster" # tag::install-zk[] From d13cb4ad2597c4c806c48fd864d5701569e6a7ed Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> Date: Wed, 11 Mar 2026 12:41:42 +0100 Subject: [PATCH 4/5] Update docs/modules/hbase/examples/getting_started/getting_started.sh.j2 Co-authored-by: Sebastian Bernauer --- .../hbase/examples/getting_started/getting_started.sh.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 index 7ba3e7a7..a9390ef1 100755 --- a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 +++ b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 @@ -51,8 +51,8 @@ exit 1 ;; esac -# As of SDP 26.3 CRDs are managed by the operator not helm, so there should be an initial delay -# to allow the CRDs to be detected +# As of SDP 26.3 CRDs are managed by the operator (previously it was helm), +# so we need to wait untill the CRDs are installed before creating the CRs. until kubectl get crd hbaseclusters.hbase.stackable.tech >/dev/null 2>&1; do sleep 1; done echo "Creating ZooKeeper cluster" From 82dfa25818606bbd31eb73feebc9765bdf5554a4 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 11 Mar 2026 13:21:52 +0100 Subject: [PATCH 5/5] improve wait --- .../hbase/examples/getting_started/getting_started.sh | 5 ++--- .../hbase/examples/getting_started/getting_started.sh.j2 | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/docs/modules/hbase/examples/getting_started/getting_started.sh b/docs/modules/hbase/examples/getting_started/getting_started.sh index 6f0ff695..319e36c8 100755 --- a/docs/modules/hbase/examples/getting_started/getting_started.sh +++ b/docs/modules/hbase/examples/getting_started/getting_started.sh @@ -51,9 +51,8 @@ exit 1 ;; esac -# As of SDP 26.3 CRDs are managed by the operator not helm, so there should be an initial delay -# to allow the CRDs to be detected -sleep 10 +# TODO: Remove once https://github.com/stackabletech/issues/issues/828 has been implemented (see that issue for details). +until kubectl get crd hbaseclusters.hbase.stackable.tech >/dev/null 2>&1; do echo "Waiting for CRDs to be installed" && sleep 1; done echo "Creating ZooKeeper cluster" # tag::install-zk[] diff --git a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 index a9390ef1..fefca39d 100755 --- a/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 +++ b/docs/modules/hbase/examples/getting_started/getting_started.sh.j2 @@ -51,9 +51,8 @@ exit 1 ;; esac -# As of SDP 26.3 CRDs are managed by the operator (previously it was helm), -# so we need to wait untill the CRDs are installed before creating the CRs. -until kubectl get crd hbaseclusters.hbase.stackable.tech >/dev/null 2>&1; do sleep 1; done +# TODO: Remove once https://github.com/stackabletech/issues/issues/828 has been implemented (see that issue for details). +until kubectl get crd hbaseclusters.hbase.stackable.tech >/dev/null 2>&1; do echo "Waiting for CRDs to be installed" && sleep 1; done echo "Creating ZooKeeper cluster" # tag::install-zk[]