Saltar para o conteúdo principal
Versão 3.0.0

Segurança — Hive Metastore

O acesso ao Hive Metastore é controlado pelas credenciais do banco de dados PostgreSQL. O chart tdp-hive-metastore suporta banco interno (embedded) ou externo, e em ambos os casos a proteção da senha do banco é feita via Secret Kubernetes.

Banco interno (embedded PostgreSQL)

Quando postgres.enabled: true, o chart sobe um PostgreSQL interno. A senha do usuário hive é definida diretamente no values.yaml:

tdp-hive-metastore:
postgres:
enabled: true
database: hive
username: hive
password: "<POSTGRES_PASSWORD>"
Senha em values.yaml

Não armazene a senha em arquivos values.yaml versionados. Use um arquivo de valores privado (fora do controle de versão) ou mecanismo de gestão de Secrets do seu ambiente.

Após o deploy, o chart cria automaticamente um Secret com o nome <release>-hive-database contendo a chave password. Para recuperar a senha gerada:

kubectl get secret -n <namespace> <release>-hive-database \
-o jsonpath="{.data.password}" | base64 --decode

Banco externo (PostgreSQL compartilhado)

Quando postgres.enabled: false, o Hive Metastore conecta-se a um PostgreSQL externo. A autenticação é gerenciada via TDPConfigurations.externalDatabase:

tdp-hive-metastore:
postgres:
enabled: false
external:
host: "<POSTGRESQL_HOST>"
port: 5432

TDPConfigurations:
externalDatabase:
enabled: true
externalSecret:
releaseName: "tdp-postgresql-project"

O campo externalSecret.releaseName aponta para o release do PostgreSQL cujo Secret contém a chave postgres-password (senha do administrador). Os hooks de pré-instalação usam essa credencial para criar o banco e o usuário hive.

CampoDescrição
externalDatabase.enabledAtiva os hooks que validam e provisionam o banco externo
externalDatabase.recreateQuando true, recria o banco antes do provisionamento — usar apenas em reinstalações
externalSecret.releaseNameNome do release do PostgreSQL de onde o Secret com postgres-password é lido

Capacidade mínima do PostgreSQL

O Hive Metastore exige alta disponibilidade de conexões ao banco:

RequisitoMínimoRecomendado
max_connections300400+

O chart TDP PostgreSQL é configurado com 400 conexões por padrão. Se usar PostgreSQL externo, verifique esse parâmetro antes do deploy.

Resolução de Problemas

ProblemaCausa provávelSolução
Metastore não sobe (banco externo)Secret com postgres-password ausente ou nome do release incorretoVerificar externalSecret.releaseName
Falha nos hooks de pré-instalaçãoPostgreSQL não acessível ou max_connections insuficienteVerificar conectividade e SHOW max_connections
Autenticação negadaCredenciais incorretas no valuesRever postgres.username e postgres.password

Para a lista completa de parâmetros, use helm show values na versão do chart que instalou.