diff --git a/docs/source/pages/Kubernetes/helm.md b/docs/source/pages/Kubernetes/helm.md index 1a16fa2d5427591693d30a5f3162be7db33ee2f3..2f0237fe4ce91a7e9c11a12e9f463000ffd87feb 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