Repository navigation
Enterprise Overrides
O sistema de overrides permite adaptar a stack do Yby para qualquer ambiente corporativo sem modificar templates ou forkar o projeto.
O Yby gera infraestrutura a partir de uma stack opinativa com defaults para PMEs. O arquivo de overrides substitui valores hardcoded por configuracoes da sua organizacao.
Sem overrides (PME): Traefik + Let's Encrypt + local-path + Docker Hub
Com overrides (Enterprise): Nginx + CA interna + gp3 + ECR privado
-
--config <path>(flag explicita) -
.yby/overrides.yaml(diretorio do projeto) -
~/.yby/overrides.yaml(global do usuario) - Defaults vazios (comportamento padrao)
# Uso explicito
yby init --config .yby/overrides.yaml --topology standard
# Auto-detect (se .yby/overrides.yaml existir)
yby init --topology standard# .yby/overrides.yaml
# ============================================================
# REGISTRY DE IMAGENS
# Redireciona todas as imagens para um registry privado.
# ============================================================
registry:
url: "012345678.dkr.ecr.sa-east-1.amazonaws.com" # Prefixo aplicado a todas as imagens
pullSecret: "regcred" # Nome do imagePullSecret no cluster
# ============================================================
# CLOUD PROVIDER
# Ajusta storage class e provider para o ambiente cloud.
# ============================================================
cloud:
provider: "aws" # aws, gcp, azure, "" (on-prem)
storageClass: "gp3" # Storage class do cluster (default: local-path)
# ============================================================
# INGRESS
# Define o ingress controller do cluster.
# ============================================================
ingress:
className: "nginx" # nginx, traefik, alb (default: traefik)
# ============================================================
# TLS E CERTIFICADOS
# Configura emissao de certificados TLS.
# ============================================================
tls:
issuer: "custom" # custom | letsencrypt-staging | letsencrypt-prod
caSecretName: "corp-ca-tls" # Secret com CA corporativa (quando issuer=custom)
acmeSolver: "dns01" # http01 | dns01 (quando issuer=letsencrypt-*)
# ============================================================
# NAMESPACES
# Adiciona prefixo e labels a todos os namespaces gerados.
# ============================================================
namespaces:
prefix: "fintech" # Resultado: fintech-argocd, fintech-monitoring, etc.
labels: # Labels injetadas em todos os namespaces
cost-center: "platform"
team: "devops"
compliance: "pci-dss"
# ============================================================
# HELM CHARTS
# Configura mirror de repositorios e versoes de charts.
# ============================================================
helm:
repoBaseURL: "https://charts.internal.corp" # Mirror interno (substitui repos publicos)
versions: # Versoes especificas de charts
argocd: "6.7.0"
keda: "2.16.0"
kepler: "0.5.14"
# ============================================================
# IMAGENS (OVERRIDES EXPLICITOS)
# Substitui imagens especificas por versoes customizadas.
# Tem precedencia sobre registry.url.
# ============================================================
images:
overrides:
"ubuntu:22.04": "registry.corp/hardened/ubuntu:22.04-cis"
"bitnami/kubectl:1.31": "registry.corp/bitnami/kubectl:1.31"
# ============================================================
# GIT PROVIDER
# Define o provider Git para discovery de repositorios.
# ============================================================
git:
provider: "gitlab" # github | gitlab | bitbucket (default: github)
# ============================================================
# OBSERVABILIDADE
# Define o backend de monitoramento.
# ============================================================
observability:
mode: "thanos" # prometheus | thanos | loki (default: prometheus)
# ============================================================
# RESOURCE PROFILES
# Define o perfil de recursos para componentes do cluster.
# ============================================================
profiles:
resources: "large" # small | medium | large (default: medium)
# small: 128Mi/100m (dev local)
# medium: 256Mi/250m (staging)
# large: 512Mi/500m (producao)O Yby usa nomes de produtos como defaults (MinIO, Kepler, KEDA), mas eles representam capabilities da plataforma:
| Flag do CLI | Capability | Default | Como Trocar |
|---|---|---|---|
--enable-minio |
Object Storage | MinIO | Desabilite e adicione seu provider via charts/ |
--enable-kepler |
Energy Metrics | Kepler | Desabilite e adicione exporters customizados |
--enable-keda |
Event Autoscaling | KEDA | Desabilite e use HPA nativo |
--enable-metrics-server |
Observability | Prometheus | Use observability.mode no overrides |
A estrutura gerada pelo yby init e sempre a mesma — GitOps com App of Apps. Trocar um componente significa:
- Desabilitar a flag do default (
--enable-minio=false) - Adicionar seu chart customizado em
charts/ - Criar uma Application no
manifests/argocd/
registry:
url: "012345678.dkr.ecr.sa-east-1.amazonaws.com"
pullSecret: "ecr-regcred"
cloud:
provider: "aws"
storageClass: "gp3"
ingress:
className: "alb"
tls:
issuer: "custom"
caSecretName: "bank-internal-ca"
namespaces:
prefix: "bank"
labels:
compliance: "pci-dss"
cost-center: "infrastructure"cloud:
provider: "gcp"
storageClass: "standard-rwo"
ingress:
className: "nginx"
tls:
issuer: "letsencrypt-prod"
acmeSolver: "dns01"registry:
url: "harbor.internal:5000"
pullSecret: "harbor-cred"
helm:
repoBaseURL: "https://chartmuseum.internal"
tls:
issuer: "custom"
caSecretName: "corp-root-ca"
namespaces:
prefix: "prod"O arquivo .yby/environments.yaml suporta configuração de clusters cloud gerenciados via cloud:
| Campo | AWS | Azure | GCP | Descrição |
|---|---|---|---|---|
provider |
x | x | x | Provider cloud (aws, azure, gcp) |
region |
x | Região AWS (ex: sa-east-1) |
||
cluster |
x | x | x | Nome do cluster K8s gerenciado |
profile |
x | AWS profile (~/.aws/credentials) | ||
role_arn |
x | ARN do IAM Role para AssumeRole | ||
resource_group |
x | Resource Group do AKS | ||
subscription |
x | ID da Subscription Azure | ||
tenant_id |
x | ID do Tenant Azure AD | ||
login_mode |
x | Modo de login (cli, sp, msi) |
||
project_id |
x | ID do projeto GCP | ||
zone |
x | Zona GCP (ex: us-east1-b) |
# .yby/environments.yaml
environments:
prod-aws:
type: remote
cloud:
provider: aws
region: sa-east-1
cluster: prod-eks
profile: production
role_arn: "arn:aws:iam::123456789:role/eks-admin"Combinado com overrides para ECR:
# .yby/overrides.yaml
registry:
url: "012345678.dkr.ecr.sa-east-1.amazonaws.com"
pullSecret: "ecr-regcred"
cloud:
provider: "aws"
storageClass: "gp3"# .yby/environments.yaml
environments:
prod-azure:
type: remote
cloud:
provider: azure
cluster: prod-aks
resource_group: rg-platform
subscription: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
tenant_id: "ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj"
login_mode: cliCombinado com overrides para ACR:
# .yby/overrides.yaml
registry:
url: "meurepo.azurecr.io"
pullSecret: "acr-regcred"
cloud:
provider: "azure"
storageClass: "managed-premium"# .yby/environments.yaml
environments:
prod-gcp:
type: remote
cloud:
provider: gcp
cluster: prod-gke
project_id: meu-projeto-id
zone: us-east1-bCombinado com overrides para GCR:
# .yby/overrides.yaml
registry:
url: "gcr.io/meu-projeto-id"
pullSecret: "gcr-regcred"
cloud:
provider: "gcp"
storageClass: "standard-rwo"O yby bootstrap cluster não lê o arquivo de overrides nem aceita --config (a flag só existe no yby init). Os overrides chegam ao cluster pelo que o yby init --config gerou: os values.yaml dos charts bootstrap e cluster-config saem com eles aplicados.
- Namespaces: Nomes com o prefixo configurado
- Registry: Imagens apontando para o registry privado
-
Chart versions: Versões de
kedaekepleremhelm.versions - Ingress e TLS: Ingress class e issuer configurados
# Os overrides entram na geração; o bootstrap instala o que foi gerado
yby init --config .yby/overrides.yaml
yby bootstrap clusterYby CLI — Infraestrutura Soberana & Autônoma
Repositório • Reportar Bug • Licença MIT
Idealizado e mantido por Casheiro
🛡️ Governado pelo Matrix Protocol