* Superset ** Required software - Helm: v3.13.2-linux-amd64 - Kubernetes ($ kubectl version): - Client Version: v1.28.4 - Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 - Server Version: v1.28.4 - OS: Red Hat Enterprise Linux Server release 7.9 (Maipo) - Kernel: 3.10.0-1160.102.1.el7.x86_64 - Helm charts: - superset-0.10.15 - redis-17.9.4 - postgresql-12.1.6 - Superset (installed using Helm chart): 2.1.2 - PostgreSQL (installed using Helm chart): 14.6.0 - Redis (installed using Helm chart): redis: 7.0.10 ** Networking - Service port accessible on the node: 3054 ** Prerequisites 1. In Kubernetes, local-storage storage class should be default. If it isn't then PVs may not bind to the PVC. To fix this, run: $ kubectl patch storageclass local-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' ** Template generation using Helm 1. helm repo add superset https://apache.github.io/superset 2. kubectl create namespace superset 3. helm -n superset show values superset/superset > values_orig.yaml 4. If the file values.yaml doesn't exist: - cp -n values_orig.yaml values.yaml 5. Modify values.yaml for required configuration. - To see the configuration differences between the original and the modified version of values.yaml, do: $ diff -u values_orig.yaml values.yaml 6. helm template --name-template=superset -f values.yaml -n superset superset superset/superset > superset_template_orig.yaml 7. In the current setup, superset_template_orig.yaml is templatized into superset_template.yaml.j2 by modifying certain variables. See constants.in for variables that have been templatized. - Variables inside superset_template.yaml.j2 are replaced with values stored inside `constants.in` and `../global-constants.in` files, and then saved into superset_template.yaml by running the ./setup_template.sh script. - To view the differences between the original template (superset_template_orig.yaml) and the generated template (superset_template.yaml) run the script using the `online` argument: $ ./setup_template.sh online 8. Edit superset_volume.yaml.j2 for modifying the Persistent Volume (PV) properties for Superset, and constants.in for modifying the size and host path. ** Install Superset on Kubernetes 1. mkdir -p /var/superset/postgresql 2. Copy all the files from 'superset' directory. 3. Upload the following images to the local private container registry: 1. apache/superset:dockerize 2. apache/superset:2.1.2 3. docker.io/bitnami/postgresql:14.6.0-debian-11-r13 4. docker.io/bitnami/redis:7.0.10-debian-11-r4 4. Make sure global-constants.in contains correct information for the following variables: 1. LOCAL_REGISTRY: Put in the correct URL of local container registry for offline installation (client-side). 2. LOCAL_DOWNLOAD_REPO: Put in the correct URL of the local download file server for offline installation (client-side). 3. For online (ec2) installation do not change these two variables. 4. Run setup_template.sh: - If on client-side, run: `./setup_template.sh offline` - If on EC2 server, run: `./setup_template.sh online` 5. kubectl create namespace superset 6. kubectl -n superset apply -f superset_template.yaml 7. kubectl apply -f superset_volume.yaml