Este diretório contém todos os exemplos de código e configurações extraídos do PRD.
| Componente | Versão | Notas |
|---|---|---|
| Terraform | 1.6+ | Testing framework |
| EKS | 1.29+ | Pod Identity support |
| Argo CD | 2.10+ | ApplicationSets GA |
| Helm | 3.14+ | OCI support |
| Mimir | 2.11+ | Ingest storage |
| Loki | 3.0+ | TSDB backend |
| Tempo | 2.4+ | vParquet3 |
| Istio | 1.20+ | Ambient mesh ready |
| KEDA | 2.13+ | AWS scalers |
| Keycloak | 24+ | Quarkus-based |
| Backstage | 1.24+ | New frontend system |
samples/
├── terraform/ # Código Terraform/HCL
│ ├── modules/ # Módulos reutilizáveis (VPC, EKS, RDS, etc.)
│ └── environments/ # Exemplo de estrutura por ambiente
├── argocd/ # Configuração Argo CD (GitOps)
├── observability/ # Stack de observabilidade (Mimir, Loki, Tempo)
│ └── dashboards/ # Dashboards Grafana (platform, service-health, Istio, etc.)
├── helm/ # Helm values e templates
│ ├── chart-base/ # Chart Helm base para microserviços
│ ├── values/ # Arquivos values.yaml
│ └── templates/ # Templates Helm
├── keycloak/ # Configuração Keycloak SSO
│ ├── realms/ # Realms (platform, services)
│ └── clients/ # Clients OIDC (ArgoCD, Grafana, Backstage)
├── kubernetes/ # Manifests Kubernetes
├── github-actions/ # Workflows GitHub Actions
├── backstage/ # Templates e plugins Backstage
│ ├── templates/ # Software templates
│ ├── skeleton/ # Skeletons para novo serviço
│ └── plugins/ # Plugins customizados (Secrets Manager)
├── scripts/ # Scripts de automação
├── multi-region/ # Configurações multi-região
│ ├── route53/ # Failover DNS
│ └── replication/ # Replicação cross-region
└── config/ # Configurações diversas
| Módulo | Descrição |
|---|---|
| modules/vpc/ | VPC com 3 AZs, subnets públicas/privadas, NAT Gateway, Flow Logs |
| modules/eks/ | Cluster EKS com IRSA, Node Groups, Addons (VPC-CNI, CoreDNS, EBS-CSI) |
| modules/rds/ | RDS PostgreSQL com Multi-AZ, encryption, Secrets Manager |
| modules/kms/ | KMS keys para EKS, RDS, S3 e Secrets Manager |
| modules/sqs/ | SQS Queue + DLQ com CloudWatch Alarms |
| modules/s3/ | S3 Bucket com versionamento, lifecycle rules, encryption |
| modules/dynamodb/ | DynamoDB Table com GSI, autoscaling, streams |
| modules/elasticache/ | ElastiCache Redis com replicação e HA |
| Arquivo | Descrição |
|---|---|
| environments/hml/us-east-1/ | Exemplo completo de ambiente HML |
| Arquivo | Descrição |
|---|---|
| irsa-example.tf | Exemplo de IRSA (IAM Roles for Service Accounts) |
| node-groups.tf | Configuração de Node Groups EKS |
| Arquivo | Descrição |
|---|---|
| app-of-apps.yaml | Root Application pattern (App of Apps) |
| applicationset-services.yaml | ApplicationSet para descoberta automática de serviços |
| applicationset-platform.yaml | ApplicationSet para componentes de plataforma |
| project-platform.yaml | AppProject para componentes de plataforma |
| project-services.yaml | AppProject para serviços de aplicação |
| Arquivo | Descrição |
|---|---|
| mimir-values.yaml | Mimir Distributed - armazenamento de métricas |
| loki-values.yaml | Loki - agregação de logs |
| tempo-values.yaml | Tempo Distributed - tracing distribuído |
| alertmanager-rules.yaml | Regras de alertas (Prometheus/Alertmanager) |
| dashboards/platform-overview.json | Dashboard Grafana - visão geral da plataforma |
| dashboards/service-health.json | Dashboard de saúde de serviços |
| dashboards/istio-mesh.json | Dashboard do Istio Service Mesh |
| dashboards/keycloak.json | Dashboard de métricas do Keycloak |
| dashboards/multi-region.json | Dashboard de status multi-região |
| dashboards/slo-dashboard.json | Dashboard de SLOs |
| Arquivo | Descrição |
|---|---|
| argocd-ha-values.yaml | Configuração HA para Argo CD |
| auth-values.yaml | Configuração de autenticação OIDC/JWT |
| grafana-datasources.yaml | Datasources federados Grafana |
| istio-meshconfig.yaml | Configuração do Service Mesh Istio |
| keda-values.yaml | Configuração KEDA para autoscaling |
| keycloak-values.yaml | Deployment do Keycloak |
| otel-collector-config.yaml | OpenTelemetry Collector |
| secrets-values.yaml | External Secrets por serviço |
| service-hml-values.yaml | Template de values para HML |
| service-mesh-values.yaml | Configuração Service Mesh |
| service-prod-values.yaml | Exemplo de values para Prod |
| Arquivo | Descrição |
|---|---|
| authorization-policy.yaml | AuthorizationPolicy Istio |
| deployment-secrets-snippet.yaml | Snippet de uso de secrets no deployment |
| destinationrule.yaml | DestinationRule Istio |
| external-secret.yaml | ExternalSecret para AWS Secrets Manager |
| request-authentication.yaml | RequestAuthentication Istio JWT |
| scaled-object.yaml | KEDA ScaledObject |
| virtualservice.yaml | VirtualService Istio |
Chart Helm base completo para microserviços com todas as features da plataforma.
| Arquivo | Descrição |
|---|---|
| Chart.yaml | Definição do chart base |
| values.yaml | Valores padrão com todas as features |
| templates/deployment.yaml | Deployment completo com security contexts |
| templates/service.yaml | Kubernetes Service |
| templates/hpa.yaml | HPA com suporte a KEDA |
| templates/pdb.yaml | PodDisruptionBudget |
| templates/configmap.yaml | ConfigMap template |
| templates/serviceaccount.yaml | ServiceAccount com IRSA |
| templates/networkpolicy.yaml | NetworkPolicy |
| templates/_helpers.tpl | Helper templates |
| README.md | Documentação do chart |
Configuração de realms e clients para SSO integrado.
| Arquivo | Descrição |
|---|---|
| realms/helpdev-platform/realm.json | Realm para ferramentas (SSO plataforma) |
| realms/helpdev-services/realm.json | Realm para comunicação serviço-a-serviço |
| clients/argocd.json | Client OIDC para Argo CD |
| clients/grafana.json | Client OIDC para Grafana |
| clients/backstage.json | Client OIDC para Backstage |
| README.md | Documentação do Keycloak |
| Arquivo | Descrição |
|---|---|
| cluster-secret-store.yaml | ClusterSecretStore + ServiceAccount IRSA |
| labels-annotations-example.yaml | Labels e annotations padrão |
| namespace-istio-example.yaml | Namespace com Istio injection |
| network-policy-default-deny.yaml | NetworkPolicy default deny |
| pdb-example.yaml | PodDisruptionBudget |
| peer-authentication.yaml | PeerAuthentication mTLS |
| pod-security-namespace.yaml | Namespace com Pod Security Standards |
| topology-spread.yaml | TopologySpreadConstraints |
| service-monitor.yaml | ServiceMonitor para scraping Prometheus |
| pod-monitor.yaml | PodMonitor para pods específicos |
| ingress-gateway.yaml | Istio IngressGateway |
| gateway.yaml | Istio Gateway resource |
| sidecar.yaml | Istio Sidecar e ServiceEntry |
| Arquivo | Descrição |
|---|---|
| ci-cd-pipeline.yaml | Pipeline CI/CD completo |
| java-service-workflow.yaml | Workflow reutilizável para Java |
| service-ci-cd.yaml | CI/CD de exemplo para serviço |
| Arquivo | Descrição |
|---|---|
| new-microservice-template.yaml | Software Template para novo microserviço |
| new-aws-resource-template.yaml | Software Template para criar recursos AWS (SQS, RDS, S3, etc.) |
| catalog-info-example.yaml | Exemplo de catalog-info.yaml |
| catalog-info-template.yaml | Template de catalog-info.yaml |
| Diretório | Descrição |
|---|---|
| skeleton/code/ | Skeleton para código de serviço (Dockerfile, application.yaml) |
| skeleton/infra/ | Skeleton para repositório de infra (Helm chart, values por ambiente) |
| Arquivo | Descrição |
|---|---|
| permissions.ts | Definições de permissões RBAC |
| router.ts | Backend router do Secrets Manager |
| SecretsTable.tsx | Componente UI de listagem de secrets |
| SecretDetails.tsx | Visualização detalhada de secret |
| CreateSecretDialog.tsx | Dialog para criação de secrets |
| RotateSecretDialog.tsx | Dialog para rotação de secrets |
| SecretsManagerApi.ts | Cliente de API para Secrets Manager |
| awsClient.ts | Cliente AWS Secrets Manager (backend) |
Scripts de automação e operações.
| Arquivo | Descrição |
|---|---|
| bootstrap-cluster.sh | Setup inicial do cluster EKS |
| promote-to-prod.sh | Helper para promoção para produção |
| rollback.sh | Script de rollback emergencial |
Configurações e exemplos para deployments multi-região.
| Arquivo | Descrição |
|---|---|
| phased-rollout-config.yaml | Configuração de rollout faseado com Argo Rollouts |
| route53-failover.tf | Setup de failover Route53 |
| cross-region-replication.tf | Replicação cross-region (ECR, S3, Secrets) |
| README.md | Documentação de multi-região |
| Arquivo | Descrição |
|---|---|
| argocd-oidc-config.yaml | Configuração OIDC do Argo CD |
| grafana-oauth-config.yaml | Configuração OAuth do Grafana |
| iam-policy-external-secrets.json | IAM Policy para External Secrets |
Estes exemplos são referências para implementação. Adapte conforme necessário:
- Terraform: Copie e ajuste para seu módulo
- Helm: Use como base para seus charts ou values
- Kubernetes: Aplique diretamente com
kubectl apply -f - GitHub Actions: Copie para
.github/workflows/ - Backstage: Integre nos plugins e templates do seu portal
- Substitua valores como
123456789(AWS account ID), domínios, e nomes de serviços - Revise as configurações de segurança antes de usar em produção
- Consulte o PRD para contexto completo de cada configuração
Os samples seguem as convenções definidas no PRD:
| Recurso | Padrão | Exemplo |
|---|---|---|
| VPC | helpdev-{env}-{region}-vpc |
helpdev-prod-us-east-1-vpc |
| Cluster EKS | eks-{env}-{region_short} |
eks-hml-use1, eks-prod-sae1 |
| S3 Bucket | helpdev-{purpose}-{env}-{region}-{suffix} |
helpdev-mimir-prod-us-east-1-blocks |
| RDS | helpdev-{env}-{region}-{service}-db |
helpdev-prod-us-east-1-keycloak-db |
| Secrets | helpdev/{env}/{region}/{domain}/{service}/{type} |
helpdev/prod/us-east-1/payments/checkout/database |
| Região AWS | Código Curto | Status |
|---|---|---|
us-east-1 |
use1 |
✅ Implementado |
sa-east-1 |
sae1 |
📋 Preparado |
eu-west-1 |
euw1 |
📋 Futuro |
Os samples usam variáveis de ambiente para configuração dinâmica:
| Variável | Descrição | Valores |
|---|---|---|
${ENVIRONMENT} |
Ambiente de deploy | hml, prod |
${REGION} |
Região AWS | us-east-1, sa-east-1 |
${MIMIR_RETENTION} |
Retenção Mimir | PROD: 90d, HML: 7d |
${LOKI_RETENTION} |
Retenção Loki | PROD: 720h, HML: 72h |
${TEMPO_RETENTION} |
Retenção Tempo | PROD: 168h, HML: 24h |
Todos os samples planejados no roadmap foram implementados! O repositório agora contém:
| Categoria | Arquivos | Status |
|---|---|---|
| Terraform Modules | 8 módulos | ✅ Completo |
| Argo CD | 5 arquivos | ✅ Completo |
| Observability + Dashboards | 11 arquivos | ✅ Completo |
| Helm Values | 11 arquivos | ✅ Completo |
| Helm Templates | 7 arquivos | ✅ Completo |
| Helm Chart Base | 11 arquivos | ✅ Novo |
| Keycloak Config | 6 arquivos | ✅ Novo |
| Kubernetes Manifests | 13 arquivos | ✅ Completo |
| GitHub Actions | 6 arquivos | ✅ Completo |
| Backstage | 13 arquivos | ✅ Completo |
| Scripts | 3 arquivos | ✅ Novo |
| Multi-Region | 4 arquivos | ✅ Novo |
| Config | 3 arquivos | ✅ Completo |
| Total | ~100 arquivos | ✅ |
Esta seção documenta possíveis extensões futuras para o repositório.
- Dashboard de custos (Cost Explorer integration)
- Dashboard de compliance/security
- Dashboard de GitOps (Argo CD sync status)
- módulo API Gateway
- módulo EventBridge
- módulo Step Functions
- módulo ECS (para workloads específicos)
- OPA/Gatekeeper policies
- Kyverno policies
- AWS Config rules
- Workflow para bibliotecas (npm/maven publish)
- Workflow para Terraform modules
- Workflow para Helm chart releases
| Prioridade | Categoria | Status |
|---|---|---|
| 🟡 Média | Dashboards Adicionais | Planejado |
| 🟡 Média | Terraform Modules | Planejado |
| 🟢 Baixa | Políticas | Planejado |
| 🟢 Baixa | CI/CD Avançado | Planejado |
💡 Contribuições são bem-vindas! Se você implementar algum destes samples, abra um PR.