@maestro-ai/cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/content/guides/Gates de Qualidade.md +209 -0
- package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/content/guides/Guia de Chaos Engineering.md +267 -0
- package/content/guides/Guia de Debugging com IA.md +135 -0
- package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/content/guides/Guia de Multi-tenancy.md +368 -0
- package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/content/guides/Rules base.md +90 -0
- package/content/prompts/README.md +203 -0
- package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/content/prompts/apis/design-api-rest.md +303 -0
- package/content/prompts/apis/idempotencia.md +254 -0
- package/content/prompts/apis/versionamento.md +313 -0
- package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/content/prompts/database/otimizacao-queries.md +296 -0
- package/content/prompts/desenvolvimento/code-review.md +301 -0
- package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/content/prompts/devops/docker-compose.md +336 -0
- package/content/prompts/devops/feature-flags.md +374 -0
- package/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/content/prompts/devops/pipeline-cicd.md +358 -0
- package/content/prompts/devops/terraform-iac.md +502 -0
- package/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/content/prompts/escalabilidade/caching.md +255 -0
- package/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/content/prompts/observabilidade/slos.md +215 -0
- package/content/prompts/produto/discovery-inicial.md +203 -0
- package/content/prompts/produto/discovery-inicial.txt +33 -0
- package/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/content/prompts/seguranca/rate-limiting.md +356 -0
- package/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/content/prompts/seguranca/threat-modeling.md +224 -0
- package/content/prompts/testes/contract-testing.md +340 -0
- package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/content/prompts/testes/testes-e2e.md +460 -0
- package/content/prompts/testes/testes-integracao.md +418 -0
- package/content/prompts/testes/testes-performance.md +458 -0
- package/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/content/skills/api-patterns/SKILL.md +81 -0
- package/content/skills/api-patterns/api-style.md +42 -0
- package/content/skills/api-patterns/auth.md +24 -0
- package/content/skills/api-patterns/documentation.md +26 -0
- package/content/skills/api-patterns/graphql.md +41 -0
- package/content/skills/api-patterns/rate-limiting.md +31 -0
- package/content/skills/api-patterns/response.md +37 -0
- package/content/skills/api-patterns/rest.md +40 -0
- package/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/content/skills/api-patterns/security-testing.md +122 -0
- package/content/skills/api-patterns/trpc.md +41 -0
- package/content/skills/api-patterns/versioning.md +22 -0
- package/content/skills/app-builder/SKILL.md +75 -0
- package/content/skills/app-builder/agent-coordination.md +71 -0
- package/content/skills/app-builder/feature-building.md +53 -0
- package/content/skills/app-builder/project-detection.md +34 -0
- package/content/skills/app-builder/scaffolding.md +118 -0
- package/content/skills/app-builder/tech-stack.md +40 -0
- package/content/skills/app-builder/templates/SKILL.md +39 -0
- package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/content/skills/architecture/SKILL.md +55 -0
- package/content/skills/architecture/context-discovery.md +43 -0
- package/content/skills/architecture/examples.md +94 -0
- package/content/skills/architecture/pattern-selection.md +68 -0
- package/content/skills/architecture/patterns-reference.md +50 -0
- package/content/skills/architecture/trade-off-analysis.md +77 -0
- package/content/skills/bash-linux/SKILL.md +199 -0
- package/content/skills/behavioral-modes/SKILL.md +242 -0
- package/content/skills/brainstorming/SKILL.md +163 -0
- package/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/content/skills/clean-code/SKILL.md +201 -0
- package/content/skills/code-review-checklist/SKILL.md +109 -0
- package/content/skills/database-design/SKILL.md +52 -0
- package/content/skills/database-design/database-selection.md +43 -0
- package/content/skills/database-design/indexing.md +39 -0
- package/content/skills/database-design/migrations.md +48 -0
- package/content/skills/database-design/optimization.md +36 -0
- package/content/skills/database-design/orm-selection.md +30 -0
- package/content/skills/database-design/schema-design.md +56 -0
- package/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/content/skills/deployment-procedures/SKILL.md +241 -0
- package/content/skills/doc.md +177 -0
- package/content/skills/documentation-templates/SKILL.md +194 -0
- package/content/skills/frontend-design/SKILL.md +396 -0
- package/content/skills/frontend-design/animation-guide.md +331 -0
- package/content/skills/frontend-design/color-system.md +311 -0
- package/content/skills/frontend-design/decision-trees.md +418 -0
- package/content/skills/frontend-design/motion-graphics.md +306 -0
- package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/content/skills/frontend-design/typography-system.md +345 -0
- package/content/skills/frontend-design/ux-psychology.md +541 -0
- package/content/skills/frontend-design/visual-effects.md +383 -0
- package/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/content/skills/game-development/SKILL.md +167 -0
- package/content/skills/game-development/game-art/SKILL.md +185 -0
- package/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/content/skills/game-development/game-design/SKILL.md +129 -0
- package/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/content/skills/game-development/web-games/SKILL.md +150 -0
- package/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/content/skills/i18n-localization/SKILL.md +154 -0
- package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/content/skills/intelligent-routing/SKILL.md +334 -0
- package/content/skills/lint-and-validate/SKILL.md +45 -0
- package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/content/skills/mcp-builder/SKILL.md +176 -0
- package/content/skills/mobile-design/SKILL.md +394 -0
- package/content/skills/mobile-design/decision-trees.md +516 -0
- package/content/skills/mobile-design/mobile-backend.md +491 -0
- package/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/content/skills/mobile-design/mobile-performance.md +767 -0
- package/content/skills/mobile-design/mobile-testing.md +356 -0
- package/content/skills/mobile-design/mobile-typography.md +433 -0
- package/content/skills/mobile-design/platform-android.md +666 -0
- package/content/skills/mobile-design/platform-ios.md +561 -0
- package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/content/skills/mobile-design/touch-psychology.md +537 -0
- package/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/content/skills/parallel-agents/SKILL.md +175 -0
- package/content/skills/performance-profiling/SKILL.md +143 -0
- package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/content/skills/plan-writing/SKILL.md +152 -0
- package/content/skills/powershell-windows/SKILL.md +167 -0
- package/content/skills/python-patterns/SKILL.md +441 -0
- package/content/skills/react-patterns/SKILL.md +198 -0
- package/content/skills/red-team-tactics/SKILL.md +199 -0
- package/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/content/skills/server-management/SKILL.md +161 -0
- package/content/skills/systematic-debugging/SKILL.md +109 -0
- package/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/content/skills/tdd-workflow/SKILL.md +149 -0
- package/content/skills/testing-patterns/SKILL.md +178 -0
- package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/content/skills/webapp-testing/SKILL.md +187 -0
- package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/content/specialists/Especialista em Contrato de API.md +172 -0
- package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/content/specialists/Especialista em Observabilidade.md +415 -0
- package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/content/specialists/Especialista em UX Design.md +453 -0
- package/content/specialists/INDEX.md +43 -0
- package/content/templates/PRD.md +165 -0
- package/content/templates/README.md +65 -0
- package/content/templates/adr.md +103 -0
- package/content/templates/arquitetura.md +279 -0
- package/content/templates/backlog.md +185 -0
- package/content/templates/checklist-seguranca.md +180 -0
- package/content/templates/contexto.md +120 -0
- package/content/templates/criterios-aceite.md +99 -0
- package/content/templates/design-banco.md +270 -0
- package/content/templates/design-doc.md +240 -0
- package/content/templates/feature.md +88 -0
- package/content/templates/historia-backend.md +84 -0
- package/content/templates/historia-frontend.md +75 -0
- package/content/templates/historia-usuario.md +125 -0
- package/content/templates/mapa-navegacao.md +133 -0
- package/content/templates/matriz-rastreabilidade.md +121 -0
- package/content/templates/modelo-dominio.md +219 -0
- package/content/templates/plano-testes.md +199 -0
- package/content/templates/prototipo-stitch.md +138 -0
- package/content/templates/requisitos.md +162 -0
- package/content/templates/slo-sli.md +197 -0
- package/content/workflows/README-MCP.md +363 -0
- package/content/workflows/brainstorm.md +113 -0
- package/content/workflows/create.md +59 -0
- package/content/workflows/debug.md +103 -0
- package/content/workflows/deploy.md +176 -0
- package/content/workflows/enhance.md +63 -0
- package/content/workflows/mcp-debug.md +506 -0
- package/content/workflows/mcp-feature.md +385 -0
- package/content/workflows/mcp-gate.md +413 -0
- package/content/workflows/mcp-next.md +388 -0
- package/content/workflows/mcp-refactor.md +600 -0
- package/content/workflows/mcp-start.md +304 -0
- package/content/workflows/mcp-status.md +400 -0
- package/content/workflows/orchestrate.md +237 -0
- package/content/workflows/plan.md +89 -0
- package/content/workflows/preview.md +81 -0
- package/content/workflows/status.md +86 -0
- package/content/workflows/test.md +144 -0
- package/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +138 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +50 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- package/package.json +48 -0
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
# Prompt: Deploy Kubernetes
|
|
2
|
+
|
|
3
|
+
> **Quando usar**: Projetos de nível Complexo que precisam de orquestração
|
|
4
|
+
> **Especialista**: [DevOps e Infraestrutura](../../02-especialistas/Especialista%20em%20DevOps%20e%20Infraestrutura.md)
|
|
5
|
+
> **Nível**: Complexo
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Fluxo de Contexto
|
|
10
|
+
|
|
11
|
+
Antes de usar este prompt, tenha em mãos:
|
|
12
|
+
- `docs/CONTEXTO.md` - Entendimento do projeto
|
|
13
|
+
- `docs/05-arquitetura/arquitetura.md` - Arquitetura e componentes
|
|
14
|
+
- `docker-compose.yml` ou Dockerfiles existentes
|
|
15
|
+
|
|
16
|
+
Após gerar, salve o resultado em:
|
|
17
|
+
- `k8s/` - Diretório com manifests
|
|
18
|
+
- `helm/` - Diretório com chart Helm (se aplicável)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Prompt Completo
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
Atue como especialista em Kubernetes e orquestração de containers.
|
|
26
|
+
|
|
27
|
+
## Contexto do Projeto
|
|
28
|
+
|
|
29
|
+
[COLE O CONTEÚDO DE docs/CONTEXTO.md]
|
|
30
|
+
|
|
31
|
+
## Arquitetura de Serviços
|
|
32
|
+
|
|
33
|
+
- Serviços: [Liste todos os serviços/microserviços]
|
|
34
|
+
- Dependências: [Bancos, caches, filas]
|
|
35
|
+
- Tráfego esperado: [requests/segundo aproximado]
|
|
36
|
+
|
|
37
|
+
## Ambiente Kubernetes
|
|
38
|
+
|
|
39
|
+
- Provedor: [EKS/GKE/AKS/On-premise/k3s]
|
|
40
|
+
- Namespaces: [estrutura desejada]
|
|
41
|
+
- Ingress controller: [nginx/traefik/ALB]
|
|
42
|
+
- Cert-manager: [Sim/Não]
|
|
43
|
+
|
|
44
|
+
## Requisitos
|
|
45
|
+
|
|
46
|
+
- Réplicas mínimas: [número]
|
|
47
|
+
- Autoscaling: [Sim/Não, critérios]
|
|
48
|
+
- Recursos por pod: [limites de CPU/memória]
|
|
49
|
+
- Secrets management: [External Secrets/Vault/nativo]
|
|
50
|
+
- Persistência: [volumes necessários]
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Sua Missão
|
|
55
|
+
|
|
56
|
+
Gere manifests Kubernetes completos:
|
|
57
|
+
|
|
58
|
+
### 1. Estrutura de Diretórios
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
k8s/
|
|
62
|
+
├── base/
|
|
63
|
+
│ ├── namespace.yaml
|
|
64
|
+
│ ├── deployment.yaml
|
|
65
|
+
│ ├── service.yaml
|
|
66
|
+
│ ├── configmap.yaml
|
|
67
|
+
│ └── kustomization.yaml
|
|
68
|
+
├── overlays/
|
|
69
|
+
│ ├── staging/
|
|
70
|
+
│ │ ├── kustomization.yaml
|
|
71
|
+
│ │ └── patches/
|
|
72
|
+
│ └── production/
|
|
73
|
+
│ ├── kustomization.yaml
|
|
74
|
+
│ └── patches/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 2. Namespace
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
# k8s/base/namespace.yaml
|
|
81
|
+
apiVersion: v1
|
|
82
|
+
kind: Namespace
|
|
83
|
+
metadata:
|
|
84
|
+
name: [app-name]
|
|
85
|
+
labels:
|
|
86
|
+
app: [app-name]
|
|
87
|
+
environment: [env]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 3. Deployment
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
# k8s/base/deployment.yaml
|
|
94
|
+
apiVersion: apps/v1
|
|
95
|
+
kind: Deployment
|
|
96
|
+
metadata:
|
|
97
|
+
name: [app-name]
|
|
98
|
+
namespace: [namespace]
|
|
99
|
+
labels:
|
|
100
|
+
app: [app-name]
|
|
101
|
+
spec:
|
|
102
|
+
replicas: 2
|
|
103
|
+
selector:
|
|
104
|
+
matchLabels:
|
|
105
|
+
app: [app-name]
|
|
106
|
+
strategy:
|
|
107
|
+
type: RollingUpdate
|
|
108
|
+
rollingUpdate:
|
|
109
|
+
maxSurge: 1
|
|
110
|
+
maxUnavailable: 0
|
|
111
|
+
template:
|
|
112
|
+
metadata:
|
|
113
|
+
labels:
|
|
114
|
+
app: [app-name]
|
|
115
|
+
annotations:
|
|
116
|
+
prometheus.io/scrape: "true"
|
|
117
|
+
prometheus.io/port: "3000"
|
|
118
|
+
spec:
|
|
119
|
+
securityContext:
|
|
120
|
+
runAsNonRoot: true
|
|
121
|
+
runAsUser: 1000
|
|
122
|
+
fsGroup: 1000
|
|
123
|
+
containers:
|
|
124
|
+
- name: [app-name]
|
|
125
|
+
image: [registry]/[image]:[tag]
|
|
126
|
+
imagePullPolicy: Always
|
|
127
|
+
ports:
|
|
128
|
+
- containerPort: 3000
|
|
129
|
+
name: http
|
|
130
|
+
env:
|
|
131
|
+
- name: NODE_ENV
|
|
132
|
+
value: "production"
|
|
133
|
+
- name: DB_HOST
|
|
134
|
+
valueFrom:
|
|
135
|
+
secretKeyRef:
|
|
136
|
+
name: [app-name]-secrets
|
|
137
|
+
key: db-host
|
|
138
|
+
envFrom:
|
|
139
|
+
- configMapRef:
|
|
140
|
+
name: [app-name]-config
|
|
141
|
+
resources:
|
|
142
|
+
requests:
|
|
143
|
+
cpu: "100m"
|
|
144
|
+
memory: "128Mi"
|
|
145
|
+
limits:
|
|
146
|
+
cpu: "500m"
|
|
147
|
+
memory: "512Mi"
|
|
148
|
+
livenessProbe:
|
|
149
|
+
httpGet:
|
|
150
|
+
path: /health
|
|
151
|
+
port: http
|
|
152
|
+
initialDelaySeconds: 30
|
|
153
|
+
periodSeconds: 10
|
|
154
|
+
timeoutSeconds: 5
|
|
155
|
+
failureThreshold: 3
|
|
156
|
+
readinessProbe:
|
|
157
|
+
httpGet:
|
|
158
|
+
path: /ready
|
|
159
|
+
port: http
|
|
160
|
+
initialDelaySeconds: 5
|
|
161
|
+
periodSeconds: 5
|
|
162
|
+
timeoutSeconds: 3
|
|
163
|
+
failureThreshold: 3
|
|
164
|
+
volumeMounts:
|
|
165
|
+
- name: tmp
|
|
166
|
+
mountPath: /tmp
|
|
167
|
+
volumes:
|
|
168
|
+
- name: tmp
|
|
169
|
+
emptyDir: {}
|
|
170
|
+
affinity:
|
|
171
|
+
podAntiAffinity:
|
|
172
|
+
preferredDuringSchedulingIgnoredDuringExecution:
|
|
173
|
+
- weight: 100
|
|
174
|
+
podAffinityTerm:
|
|
175
|
+
labelSelector:
|
|
176
|
+
matchLabels:
|
|
177
|
+
app: [app-name]
|
|
178
|
+
topologyKey: kubernetes.io/hostname
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 4. Service
|
|
182
|
+
|
|
183
|
+
```yaml
|
|
184
|
+
# k8s/base/service.yaml
|
|
185
|
+
apiVersion: v1
|
|
186
|
+
kind: Service
|
|
187
|
+
metadata:
|
|
188
|
+
name: [app-name]
|
|
189
|
+
namespace: [namespace]
|
|
190
|
+
spec:
|
|
191
|
+
type: ClusterIP
|
|
192
|
+
selector:
|
|
193
|
+
app: [app-name]
|
|
194
|
+
ports:
|
|
195
|
+
- port: 80
|
|
196
|
+
targetPort: http
|
|
197
|
+
protocol: TCP
|
|
198
|
+
name: http
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 5. Ingress
|
|
202
|
+
|
|
203
|
+
```yaml
|
|
204
|
+
# k8s/base/ingress.yaml
|
|
205
|
+
apiVersion: networking.k8s.io/v1
|
|
206
|
+
kind: Ingress
|
|
207
|
+
metadata:
|
|
208
|
+
name: [app-name]
|
|
209
|
+
namespace: [namespace]
|
|
210
|
+
annotations:
|
|
211
|
+
kubernetes.io/ingress.class: nginx
|
|
212
|
+
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
213
|
+
nginx.ingress.kubernetes.io/rate-limit: "100"
|
|
214
|
+
nginx.ingress.kubernetes.io/rate-limit-window: "1m"
|
|
215
|
+
spec:
|
|
216
|
+
tls:
|
|
217
|
+
- hosts:
|
|
218
|
+
- [domain]
|
|
219
|
+
secretName: [app-name]-tls
|
|
220
|
+
rules:
|
|
221
|
+
- host: [domain]
|
|
222
|
+
http:
|
|
223
|
+
paths:
|
|
224
|
+
- path: /
|
|
225
|
+
pathType: Prefix
|
|
226
|
+
backend:
|
|
227
|
+
service:
|
|
228
|
+
name: [app-name]
|
|
229
|
+
port:
|
|
230
|
+
number: 80
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 6. ConfigMap
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
# k8s/base/configmap.yaml
|
|
237
|
+
apiVersion: v1
|
|
238
|
+
kind: ConfigMap
|
|
239
|
+
metadata:
|
|
240
|
+
name: [app-name]-config
|
|
241
|
+
namespace: [namespace]
|
|
242
|
+
data:
|
|
243
|
+
LOG_LEVEL: "info"
|
|
244
|
+
API_TIMEOUT: "30000"
|
|
245
|
+
FEATURE_FLAGS: |
|
|
246
|
+
{
|
|
247
|
+
"newFeature": false
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 7. Secrets (template)
|
|
252
|
+
|
|
253
|
+
```yaml
|
|
254
|
+
# k8s/base/secrets.yaml (NÃO commitar valores reais!)
|
|
255
|
+
apiVersion: v1
|
|
256
|
+
kind: Secret
|
|
257
|
+
metadata:
|
|
258
|
+
name: [app-name]-secrets
|
|
259
|
+
namespace: [namespace]
|
|
260
|
+
type: Opaque
|
|
261
|
+
stringData:
|
|
262
|
+
db-host: "PLACEHOLDER"
|
|
263
|
+
db-password: "PLACEHOLDER"
|
|
264
|
+
api-key: "PLACEHOLDER"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 8. HorizontalPodAutoscaler
|
|
268
|
+
|
|
269
|
+
```yaml
|
|
270
|
+
# k8s/base/hpa.yaml
|
|
271
|
+
apiVersion: autoscaling/v2
|
|
272
|
+
kind: HorizontalPodAutoscaler
|
|
273
|
+
metadata:
|
|
274
|
+
name: [app-name]
|
|
275
|
+
namespace: [namespace]
|
|
276
|
+
spec:
|
|
277
|
+
scaleTargetRef:
|
|
278
|
+
apiVersion: apps/v1
|
|
279
|
+
kind: Deployment
|
|
280
|
+
name: [app-name]
|
|
281
|
+
minReplicas: 2
|
|
282
|
+
maxReplicas: 10
|
|
283
|
+
metrics:
|
|
284
|
+
- type: Resource
|
|
285
|
+
resource:
|
|
286
|
+
name: cpu
|
|
287
|
+
target:
|
|
288
|
+
type: Utilization
|
|
289
|
+
averageUtilization: 70
|
|
290
|
+
- type: Resource
|
|
291
|
+
resource:
|
|
292
|
+
name: memory
|
|
293
|
+
target:
|
|
294
|
+
type: Utilization
|
|
295
|
+
averageUtilization: 80
|
|
296
|
+
behavior:
|
|
297
|
+
scaleUp:
|
|
298
|
+
stabilizationWindowSeconds: 60
|
|
299
|
+
policies:
|
|
300
|
+
- type: Pods
|
|
301
|
+
value: 2
|
|
302
|
+
periodSeconds: 60
|
|
303
|
+
scaleDown:
|
|
304
|
+
stabilizationWindowSeconds: 300
|
|
305
|
+
policies:
|
|
306
|
+
- type: Percent
|
|
307
|
+
value: 10
|
|
308
|
+
periodSeconds: 60
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### 9. PodDisruptionBudget
|
|
312
|
+
|
|
313
|
+
```yaml
|
|
314
|
+
# k8s/base/pdb.yaml
|
|
315
|
+
apiVersion: policy/v1
|
|
316
|
+
kind: PodDisruptionBudget
|
|
317
|
+
metadata:
|
|
318
|
+
name: [app-name]
|
|
319
|
+
namespace: [namespace]
|
|
320
|
+
spec:
|
|
321
|
+
minAvailable: 1
|
|
322
|
+
selector:
|
|
323
|
+
matchLabels:
|
|
324
|
+
app: [app-name]
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### 10. NetworkPolicy
|
|
328
|
+
|
|
329
|
+
```yaml
|
|
330
|
+
# k8s/base/networkpolicy.yaml
|
|
331
|
+
apiVersion: networking.k8s.io/v1
|
|
332
|
+
kind: NetworkPolicy
|
|
333
|
+
metadata:
|
|
334
|
+
name: [app-name]
|
|
335
|
+
namespace: [namespace]
|
|
336
|
+
spec:
|
|
337
|
+
podSelector:
|
|
338
|
+
matchLabels:
|
|
339
|
+
app: [app-name]
|
|
340
|
+
policyTypes:
|
|
341
|
+
- Ingress
|
|
342
|
+
- Egress
|
|
343
|
+
ingress:
|
|
344
|
+
- from:
|
|
345
|
+
- namespaceSelector:
|
|
346
|
+
matchLabels:
|
|
347
|
+
name: ingress-nginx
|
|
348
|
+
ports:
|
|
349
|
+
- protocol: TCP
|
|
350
|
+
port: 3000
|
|
351
|
+
egress:
|
|
352
|
+
- to:
|
|
353
|
+
- namespaceSelector: {}
|
|
354
|
+
ports:
|
|
355
|
+
- protocol: TCP
|
|
356
|
+
port: 5432 # PostgreSQL
|
|
357
|
+
- to:
|
|
358
|
+
- namespaceSelector: {}
|
|
359
|
+
podSelector:
|
|
360
|
+
matchLabels:
|
|
361
|
+
app: redis
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### 11. Kustomization
|
|
365
|
+
|
|
366
|
+
```yaml
|
|
367
|
+
# k8s/base/kustomization.yaml
|
|
368
|
+
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
369
|
+
kind: Kustomization
|
|
370
|
+
|
|
371
|
+
namespace: [app-name]
|
|
372
|
+
|
|
373
|
+
resources:
|
|
374
|
+
- namespace.yaml
|
|
375
|
+
- deployment.yaml
|
|
376
|
+
- service.yaml
|
|
377
|
+
- ingress.yaml
|
|
378
|
+
- configmap.yaml
|
|
379
|
+
- hpa.yaml
|
|
380
|
+
- pdb.yaml
|
|
381
|
+
- networkpolicy.yaml
|
|
382
|
+
|
|
383
|
+
commonLabels:
|
|
384
|
+
app.kubernetes.io/name: [app-name]
|
|
385
|
+
app.kubernetes.io/managed-by: kustomize
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### 12. Comandos Úteis
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# Aplicar configuração
|
|
392
|
+
kubectl apply -k k8s/overlays/staging
|
|
393
|
+
|
|
394
|
+
# Ver status
|
|
395
|
+
kubectl -n [namespace] get all
|
|
396
|
+
|
|
397
|
+
# Logs
|
|
398
|
+
kubectl -n [namespace] logs -f deployment/[app-name]
|
|
399
|
+
|
|
400
|
+
# Shell no pod
|
|
401
|
+
kubectl -n [namespace] exec -it deployment/[app-name] -- sh
|
|
402
|
+
|
|
403
|
+
# Port forward para teste
|
|
404
|
+
kubectl -n [namespace] port-forward svc/[app-name] 8080:80
|
|
405
|
+
|
|
406
|
+
# Rollout status
|
|
407
|
+
kubectl -n [namespace] rollout status deployment/[app-name]
|
|
408
|
+
|
|
409
|
+
# Rollback
|
|
410
|
+
kubectl -n [namespace] rollout undo deployment/[app-name]
|
|
411
|
+
```
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## Exemplo de Uso
|
|
417
|
+
|
|
418
|
+
```text
|
|
419
|
+
Atue como especialista em Kubernetes.
|
|
420
|
+
|
|
421
|
+
## Contexto
|
|
422
|
+
|
|
423
|
+
API de pagamentos com alta disponibilidade.
|
|
424
|
+
|
|
425
|
+
## Serviços
|
|
426
|
+
|
|
427
|
+
- api-gateway (Node.js)
|
|
428
|
+
- payment-service (Go)
|
|
429
|
+
- notification-service (Node.js)
|
|
430
|
+
- PostgreSQL (managed)
|
|
431
|
+
- Redis (cache)
|
|
432
|
+
|
|
433
|
+
## Ambiente
|
|
434
|
+
|
|
435
|
+
- Provedor: AWS EKS
|
|
436
|
+
- Ingress: AWS ALB Controller
|
|
437
|
+
- Cert-manager: Sim
|
|
438
|
+
|
|
439
|
+
## Requisitos
|
|
440
|
+
|
|
441
|
+
- Mínimo 3 réplicas
|
|
442
|
+
- Autoscaling até 20 pods
|
|
443
|
+
- Limites: 500m CPU, 512Mi RAM
|
|
444
|
+
- External Secrets com AWS Secrets Manager
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## Checklist Pós-Geração
|
|
450
|
+
|
|
451
|
+
- [ ] Namespace criado
|
|
452
|
+
- [ ] Deployments com probes e limits
|
|
453
|
+
- [ ] Services configurados
|
|
454
|
+
- [ ] Ingress com TLS
|
|
455
|
+
- [ ] ConfigMaps separados de Secrets
|
|
456
|
+
- [ ] HPA configurado
|
|
457
|
+
- [ ] PDB para alta disponibilidade
|
|
458
|
+
- [ ] NetworkPolicy restritiva
|
|
459
|
+
- [ ] Kustomize para múltiplos ambientes
|
|
460
|
+
- [ ] Comandos documentados
|