From 2f3776e130fc83a95342d0d6b62bd513a46ba7b1 Mon Sep 17 00:00:00 2001
From: des20 <des20@inf.ufpr.br>
Date: Fri, 28 Feb 2025 14:01:22 +0000
Subject: [PATCH] add superset

---
 docs/source/pages/Kubernetes/helm.md | 171 +++++++++++++++++++++++++++
 1 file changed, 171 insertions(+)

diff --git a/docs/source/pages/Kubernetes/helm.md b/docs/source/pages/Kubernetes/helm.md
index 1a16fa2..2f0237f 100644
--- a/docs/source/pages/Kubernetes/helm.md
+++ b/docs/source/pages/Kubernetes/helm.md
@@ -119,3 +119,174 @@ helm delete openmetadata --namespace openmetadata
 
 ## Superset
 
+### Documentação Oficial Superset
+
+É necessário adicionar o repositório para poder buscar e instalar o chart do Apache Superset
+usando o Helm, pois o Helm precisa saber de onde obter os pacotes (charts) que você
+deseja usar. Repositórios Helm funcionam como fontes de charts e são armazenados em
+URLs específicas. Site: <https://superset.apache.org/docs/installation/kubernetes/>
+
+Na linha de comando rode:
+
+```bash
+helm repo add superset https://apache.github.io/superset
+```
+A saída para esse comando deve ser : "superset" has been added to your repositories
+
+Vizualize o chart:
+
+```bash
+helm search repo superset
+```
+Saída do comando:
+
+```bash
+NAME CHART VERSION APP VERSION DESCRIPTION
+superset/superset 0.1.1 1.0 Apache Superset is a modern, enterprise-ready b...
+```
+
+### Arquivo base
+
+Quando você instala o Apache Superset via Helm, é comum precisar personalizar algumas
+configurações do chart para atender às necessidades específicas do seu ambiente. Isso é
+feito por meio do arquivo values.yaml.
+
+O arquivo que usaremos como base: <https://github.com/apache/superset/blob/master/helm/superset/values.yaml>
+
+No caso do Apache Superset, o chart tem dependências, ou seja, ele depende de outros
+charts para funcionar corretamente.
+
+  -  bitnami/redis: Superset pode usar o Redis para cache e outras funcionalidades.
+ -  bitnami/postgresql: O Superset geralmente utiliza o PostgreSQL como banco de
+dados para armazenar seus dados.
+
+Quando você personaliza o values.yaml do Superset, é possível também sobrescrever as
+configurações dessas dependências, como credenciais do banco de dados ou parâmetros do
+Redis.
+
+### Criação e configuração do arquivo my-values.yaml
+
+<ol>
+  <li>  Crie um novo arquivo my-values.yaml e copie o conteúdo do arquivo values.yaml do
+github nesse novo arquivo para podermos sobrescrever os valores desejados.
+  <li>Criar namespace na linha de comando 
+
+  ```bash kubectl create namespace superset```
+  <li> Especificar namespace na primeira linha do arquivo my-values.yaml
+Essa linha precisa ser adicionada:
+namespace: superset
+  <li>Configurar o bootstrapScript
+O bootstrapScript no Helm geralmente se refere a um script que é usado para
+inicializar um ambiente antes de instalar um chart do Helm(dependências) ou realizar
+outras operações no Kubernetes.
+
+```bash
+bootstrapScript: |
+  apt-get update && apt-get install -y libpq-dev
+  apt-get update && apt-get install -y postgresql-client
+  python -m ensurepip --upgrade
+  python -m pip install psycopg2-binary
+  python -m pip install Pillow
+  if [ ! -f ~/bootstrap ]; then
+    echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap
+  fi
+```
+Foi necessário: Atualizar, instalar as dependências necessárias para psycopg2(conexão
+e a interação com o Postgres). Instalar postgres-client para testar conexão dentro dos pods. Garantir que pip está instalado e, em seguida, instalar psycopg2,
+pillow(manipulação e processamento de imagens) e sqlalchemy-trino(conexão e a
+interação com o Trino).
+<li>  Configurar o configOverrides
+Gere sua própria chave secreta para criptografia. Use ‘openssl rand -base64 42‘ no
+terminal para gerar uma boa chave.
+
+```bash
+configOverrides:
+  secret: |
+    SECRET_KEY = ’chave-gerada’
+
+```
+
+<li>  Nodo de configuração do superset
+Existem duas maneiras de inicializar o Superset. Uma delas é subir um banco novo
+dentro do mesmo namespace ou usar um postgres já existente em outro namespace.
+Para o primeiro caso não é necessário mudar nada, pois o arquivo base sobe um
+postgres junto com o superset, caso o contrário é necessário alterar os seguintes
+campos:
+
+```bash
+  db_host: ’postgres.hive-cluster.svc.cluster.local’
+  db_port: ’5432’
+  db_user: ’hive_user’
+  db_pass: ’hive_password’
+  db_name: ’superset_db’
+```
+
+Colocamos o host, no caso o Postgres está no namespace hive-cluster, a sua porta
+padrão, o super usuário, a sua senha e por fim, o nome do banco. Veja que é necessário
+que o banco já esteja criado. Pode se usar o comando "CREATE DATABASE
+superset_db"dentro do Postgres. Continuando dentro do arquivo my-values.yaml:
+
+```bash
+postgresql:
+  enabled: false
+```
+Desabilitar a parte do código que sobe um Postgres novo.
+
+<li> Configurar admin
+
+```bash
+  adminUser:
+    username: admin
+    firstname: Superset
+    lastname: Admin
+    email: admin@superset.com
+    password: gerar-senha-forte
+```
+O username não pode ser mudado. É importante gerar uma boa senha.
+
+### Instalação usando o arquivo my-values.yaml
+
+Certifique-se que todas identações estão corretas, caso contrário, haverá erro na instalação.
+Instalar na linha de comando:
+
+```bash
+helm upgrade --install --values my-values.yaml superset superset/superset
+```
+
+Coloque na linha de comando:
+```bash
+kubectl get pods
+```
+A saída será parecida com:
+```bash
+NAME READY STATUS RESTARTS AGE
+superset-f5c9c667-dw9lp 1/1 Running 0 4m7s
+superset-init-db-zlm9z 0/1 Completed 0 111s
+superset-redis-master-0 1/1 Running 0 6d20h
+superset-worker-75b48bbcc-qrq49 1/1 Running 0 4m12s
+```
+
+### Acessando o serviço do Superset
+
+<ol>
+  <li>SSH tunneling
+Utilizando ssh tunneling pode-se conectar a porta de um host remoto a uma porta
+no computador local.
+
+```bash
+ssh -L 8088:localhost:8088 root@<hostname>
+
+```
+  <li>. Port-forward
+Para acessar um serviço que está funcionando em um pod é preciso realizar um
+port-forward da porta do serviço para o host local.
+
+```bash
+kubectl port-forward <podname> 8088:8088 -n minio-project
+```
+
+<li>O serviço web pode ser acessado no navegador em localhost
+
+```bash
+http://localhost:8088/
+```
\ No newline at end of file
-- 
GitLab