Files
athletic-map-deploy/tenants/teste5/16-rolebinding-provisionamento.yaml
T
ATM Platform 55159dd750 feat(tenants): vinculo do funcionario ao Keycloak (RF-09) ligado de verdade
- runtime-core dos quatro antigos ganha ATM_KC_ADMIN_URL e ATM_KC_REALM do
  Keycloak compartilhado (o padrao apontava para o Keycloak proprio, parado)
- molde e os quatro nascidos dele: client cadastro-keycloak criado no realm,
  segredo selado em 05-sealed-kc-admin-secret.yaml, variaveis no runtime-core
  (secretKeyRef optional) e o Secret na Role de leitura do provisionamento
- plataforma: o captacao pode anotar o ApplicationSet para varrer na hora

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 22:49:07 +00:00

60 lines
2.1 KiB
YAML

# =============================================================================
# P5.6/P5.9 — a plataforma pode esperar rollout e suspender ESTE tenant.
#
# O ClusterRole (`atm-provisionamento-tenants`, em
# `tenants/plataforma/16-rbac-provisionamento.yaml`) e so a lista de verbos;
# quem concede e este RoleBinding, e ele vale SO neste namespace. Um tenant sem
# este arquivo simplesmente nao e alcancado pelo provisionamento — a etapa falha
# com 403 dizendo o caminho que tentou, que e melhor do que um acesso amplo.
# =============================================================================
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: atm-provisionamento
namespace: teste5-prod
subjects:
- kind: ServiceAccount
name: atm-provisionamento
namespace: plataforma-prod
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: atm-provisionamento-tenants
---
# Os DOIS Secrets que o provisionamento le neste namespace, pelo nome.
#
# Role por tenant, e nao regra no ClusterRole, porque os nomes dependem do
# tenant e `resourceNames` nao aceita curinga. A alternativa seria dar `get` em
# QUALQUER Secret do namespace — e ai o provisionamento passaria a poder ler a
# chave Asaas DO CLIENTE, que e dele e nao nossa.
#
# db-credentials a senha do papel no Postgres, que a etapa BANCO_CRIADO
# precisa para dar a senha ao papel e ao pool
# teste5-tls so a EXISTENCIA, que e como a etapa DNS_PUBLICADO sabe que
# o cert-manager terminou de emitir
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: atm-provisionamento-segredos
namespace: teste5-prod
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
resourceNames: ["db-credentials", "kc-admin-secret", "teste5-tls"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: atm-provisionamento-segredos
namespace: teste5-prod
subjects:
- kind: ServiceAccount
name: atm-provisionamento
namespace: plataforma-prod
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: atm-provisionamento-segredos