> [!NOTE] > This came out of the [25.3.0 Release Retro](https://github.com/stackabletech/issues/issues/694) Many demos have (Job or other) pods showing `CrashLoopBackoff` until their dependencies are satisfied. This causes confusion when launching demos, especially during demo testing. Each stack/demo should make use of initContainers to wait for dependencies to be satisfied without giving false failure indications. > [!TIP] > - Ensure a [ServiceAccount] is created and [attached to applicable Pods][attached], and give it [permissions to watch Jobs/Pods][permissions] so it can [wait](). > - Ensure the ServiceAccount doesn't specify a `namespace` so that the demo can be installed into any namespace. > - Use namespace scoped RBAC (Role/RoleBinding instead of ClusterRole/ClusterRoleBinding). [ServiceAccount]: https://github.com/stackabletech/demos/blob/9db03b43492adeade027501e25fe59bd083d9acb/demos/nifi-kafka-druid-water-level-data/serviceaccount.yaml#L2-L5 [permissions]: https://github.com/stackabletech/demos/blob/9db03b43492adeade027501e25fe59bd083d9acb/demos/nifi-kafka-druid-water-level-data/serviceaccount.yaml#L25-L41 [attached]: https://github.com/stackabletech/demos/blob/9db03b43492adeade027501e25fe59bd083d9acb/demos/nifi-kafka-druid-water-level-data/setup-superset.yaml#L9 [wait]: https://github.com/stackabletech/demos/blob/9db03b43492adeade027501e25fe59bd083d9acb/demos/nifi-kafka-druid-water-level-data/setup-superset.yaml#L19-L22 ## List of demos <details><summary>List generation command</summary> ```shell cat demos/demos-v2.yaml | yq -yr '.demos | keys' | sed 's/^-/- [ ]/' ``` </details> - [ ] airflow-scheduled-job - [ ] data-lakehouse-iceberg-trino-spark - [ ] end-to-end-security - [ ] hbase-hdfs-load-cycling-data - [ ] jupyterhub-keycloak - [ ] jupyterhub-pyspark-hdfs-anomaly-detection-taxi-data - [ ] logging - [ ] nifi-kafka-druid-earthquake-data - [ ] nifi-kafka-druid-water-level-data - [ ] signal-processing - [ ] spark-k8s-anomaly-detection-taxi-data - [ ] trino-iceberg - [ ] trino-taxi-data > [!WARNING] > It is possible that some stacks also need the same treatment, but most of the _waiting_ can be done in the actual demo.