javi-forge 1.1.0 → 1.3.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.
Files changed (238) hide show
  1. package/ci-local/ci-local.sh +38 -10
  2. package/ci-local/hooks/pre-commit +10 -155
  3. package/ci-local/hooks/pre-push +12 -29
  4. package/dist/commands/ci.d.ts +33 -0
  5. package/dist/commands/ci.js +341 -0
  6. package/dist/commands/init.js +5 -0
  7. package/dist/index.js +39 -5
  8. package/dist/lib/docker.d.ts +43 -0
  9. package/dist/lib/docker.js +223 -0
  10. package/dist/ui/CI.d.ts +9 -0
  11. package/dist/ui/CI.js +91 -0
  12. package/package.json +9 -1
  13. package/ai-config/.skillignore +0 -15
  14. package/ai-config/AUTO_INVOKE.md +0 -300
  15. package/ai-config/agents/_TEMPLATE.md +0 -93
  16. package/ai-config/agents/business/api-designer.md +0 -1657
  17. package/ai-config/agents/business/business-analyst.md +0 -1331
  18. package/ai-config/agents/business/product-strategist.md +0 -206
  19. package/ai-config/agents/business/project-manager.md +0 -178
  20. package/ai-config/agents/business/requirements-analyst.md +0 -1277
  21. package/ai-config/agents/business/technical-writer.md +0 -1679
  22. package/ai-config/agents/creative/ux-designer.md +0 -205
  23. package/ai-config/agents/data-ai/ai-engineer.md +0 -487
  24. package/ai-config/agents/data-ai/analytics-engineer.md +0 -953
  25. package/ai-config/agents/data-ai/data-engineer.md +0 -173
  26. package/ai-config/agents/data-ai/data-scientist.md +0 -672
  27. package/ai-config/agents/data-ai/mlops-engineer.md +0 -814
  28. package/ai-config/agents/data-ai/prompt-engineer.md +0 -772
  29. package/ai-config/agents/development/angular-expert.md +0 -620
  30. package/ai-config/agents/development/backend-architect.md +0 -795
  31. package/ai-config/agents/development/database-specialist.md +0 -212
  32. package/ai-config/agents/development/frontend-specialist.md +0 -686
  33. package/ai-config/agents/development/fullstack-engineer.md +0 -668
  34. package/ai-config/agents/development/golang-pro.md +0 -338
  35. package/ai-config/agents/development/java-enterprise.md +0 -400
  36. package/ai-config/agents/development/javascript-pro.md +0 -422
  37. package/ai-config/agents/development/nextjs-pro.md +0 -474
  38. package/ai-config/agents/development/python-pro.md +0 -570
  39. package/ai-config/agents/development/react-pro.md +0 -487
  40. package/ai-config/agents/development/rust-pro.md +0 -246
  41. package/ai-config/agents/development/spring-boot-4-expert.md +0 -326
  42. package/ai-config/agents/development/typescript-pro.md +0 -336
  43. package/ai-config/agents/development/vue-specialist.md +0 -605
  44. package/ai-config/agents/infrastructure/cloud-architect.md +0 -472
  45. package/ai-config/agents/infrastructure/deployment-manager.md +0 -358
  46. package/ai-config/agents/infrastructure/devops-engineer.md +0 -455
  47. package/ai-config/agents/infrastructure/incident-responder.md +0 -519
  48. package/ai-config/agents/infrastructure/kubernetes-expert.md +0 -705
  49. package/ai-config/agents/infrastructure/monitoring-specialist.md +0 -674
  50. package/ai-config/agents/infrastructure/performance-engineer.md +0 -658
  51. package/ai-config/agents/orchestrator.md +0 -241
  52. package/ai-config/agents/quality/accessibility-auditor.md +0 -1204
  53. package/ai-config/agents/quality/code-reviewer-compact.md +0 -123
  54. package/ai-config/agents/quality/code-reviewer.md +0 -363
  55. package/ai-config/agents/quality/dependency-manager.md +0 -743
  56. package/ai-config/agents/quality/e2e-test-specialist.md +0 -1005
  57. package/ai-config/agents/quality/performance-tester.md +0 -1086
  58. package/ai-config/agents/quality/security-auditor.md +0 -133
  59. package/ai-config/agents/quality/test-engineer.md +0 -453
  60. package/ai-config/agents/specialists/api-designer.md +0 -87
  61. package/ai-config/agents/specialists/backend-architect.md +0 -73
  62. package/ai-config/agents/specialists/code-reviewer.md +0 -77
  63. package/ai-config/agents/specialists/db-optimizer.md +0 -75
  64. package/ai-config/agents/specialists/devops-engineer.md +0 -83
  65. package/ai-config/agents/specialists/documentation-writer.md +0 -78
  66. package/ai-config/agents/specialists/frontend-developer.md +0 -75
  67. package/ai-config/agents/specialists/performance-analyst.md +0 -82
  68. package/ai-config/agents/specialists/refactor-specialist.md +0 -74
  69. package/ai-config/agents/specialists/security-auditor.md +0 -74
  70. package/ai-config/agents/specialists/test-engineer.md +0 -81
  71. package/ai-config/agents/specialists/ux-consultant.md +0 -76
  72. package/ai-config/agents/specialized/agent-generator.md +0 -1190
  73. package/ai-config/agents/specialized/blockchain-developer.md +0 -149
  74. package/ai-config/agents/specialized/code-migrator.md +0 -892
  75. package/ai-config/agents/specialized/context-manager.md +0 -978
  76. package/ai-config/agents/specialized/documentation-writer.md +0 -1078
  77. package/ai-config/agents/specialized/ecommerce-expert.md +0 -1756
  78. package/ai-config/agents/specialized/embedded-engineer.md +0 -1714
  79. package/ai-config/agents/specialized/error-detective.md +0 -1034
  80. package/ai-config/agents/specialized/fintech-specialist.md +0 -1659
  81. package/ai-config/agents/specialized/freelance-project-planner-v2.md +0 -1988
  82. package/ai-config/agents/specialized/freelance-project-planner-v3.md +0 -2136
  83. package/ai-config/agents/specialized/freelance-project-planner-v4.md +0 -4503
  84. package/ai-config/agents/specialized/freelance-project-planner.md +0 -722
  85. package/ai-config/agents/specialized/game-developer.md +0 -1963
  86. package/ai-config/agents/specialized/healthcare-dev.md +0 -1620
  87. package/ai-config/agents/specialized/mobile-developer.md +0 -188
  88. package/ai-config/agents/specialized/parallel-plan-executor.md +0 -506
  89. package/ai-config/agents/specialized/plan-executor.md +0 -485
  90. package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +0 -485
  91. package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +0 -3493
  92. package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +0 -778
  93. package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +0 -918
  94. package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +0 -1537
  95. package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +0 -2633
  96. package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +0 -5610
  97. package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +0 -335
  98. package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +0 -215
  99. package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +0 -260
  100. package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +0 -379
  101. package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +0 -355
  102. package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +0 -279
  103. package/ai-config/agents/specialized/template-writer.md +0 -347
  104. package/ai-config/agents/specialized/test-runner.md +0 -99
  105. package/ai-config/agents/specialized/vibekanban-smart-worker.md +0 -244
  106. package/ai-config/agents/specialized/wave-executor.md +0 -138
  107. package/ai-config/agents/specialized/workflow-optimizer.md +0 -1114
  108. package/ai-config/commands/git/changelog.md +0 -32
  109. package/ai-config/commands/git/ci-local.md +0 -70
  110. package/ai-config/commands/git/commit.md +0 -35
  111. package/ai-config/commands/git/fix-issue.md +0 -23
  112. package/ai-config/commands/git/pr-create.md +0 -42
  113. package/ai-config/commands/git/pr-review.md +0 -50
  114. package/ai-config/commands/git/worktree.md +0 -39
  115. package/ai-config/commands/refactoring/cleanup.md +0 -24
  116. package/ai-config/commands/refactoring/dead-code.md +0 -40
  117. package/ai-config/commands/refactoring/extract.md +0 -31
  118. package/ai-config/commands/testing/e2e.md +0 -30
  119. package/ai-config/commands/testing/tdd.md +0 -36
  120. package/ai-config/commands/testing/test-coverage.md +0 -30
  121. package/ai-config/commands/testing/test-fix.md +0 -24
  122. package/ai-config/commands/workflow/generate-agents-md.md +0 -85
  123. package/ai-config/commands/workflow/planning.md +0 -47
  124. package/ai-config/commands/workflows/compound.md +0 -89
  125. package/ai-config/commands/workflows/diagnose.md +0 -70
  126. package/ai-config/commands/workflows/discover.md +0 -86
  127. package/ai-config/commands/workflows/plan.md +0 -77
  128. package/ai-config/commands/workflows/review.md +0 -78
  129. package/ai-config/commands/workflows/work.md +0 -75
  130. package/ai-config/config.yaml +0 -18
  131. package/ai-config/hooks/_TEMPLATE.md +0 -96
  132. package/ai-config/hooks/block-dangerous-commands.md +0 -75
  133. package/ai-config/hooks/commit-guard.md +0 -90
  134. package/ai-config/hooks/context-loader.md +0 -73
  135. package/ai-config/hooks/improve-prompt.md +0 -91
  136. package/ai-config/hooks/learning-log.md +0 -72
  137. package/ai-config/hooks/model-router.md +0 -86
  138. package/ai-config/hooks/secret-scanner.md +0 -64
  139. package/ai-config/hooks/skill-validator.md +0 -102
  140. package/ai-config/hooks/task-artifact.md +0 -114
  141. package/ai-config/hooks/validate-workflow.md +0 -100
  142. package/ai-config/prompts/base.md +0 -71
  143. package/ai-config/prompts/modes/debug.md +0 -34
  144. package/ai-config/prompts/modes/deploy.md +0 -40
  145. package/ai-config/prompts/modes/research.md +0 -32
  146. package/ai-config/prompts/modes/review.md +0 -33
  147. package/ai-config/prompts/review-policy.md +0 -79
  148. package/ai-config/skills/_TEMPLATE.md +0 -157
  149. package/ai-config/skills/backend/api-gateway/SKILL.md +0 -254
  150. package/ai-config/skills/backend/bff-concepts/SKILL.md +0 -239
  151. package/ai-config/skills/backend/bff-spring/SKILL.md +0 -364
  152. package/ai-config/skills/backend/chi-router/SKILL.md +0 -396
  153. package/ai-config/skills/backend/error-handling/SKILL.md +0 -255
  154. package/ai-config/skills/backend/exceptions-spring/SKILL.md +0 -323
  155. package/ai-config/skills/backend/fastapi/SKILL.md +0 -302
  156. package/ai-config/skills/backend/gateway-spring/SKILL.md +0 -390
  157. package/ai-config/skills/backend/go-backend/SKILL.md +0 -457
  158. package/ai-config/skills/backend/gradle-multimodule/SKILL.md +0 -274
  159. package/ai-config/skills/backend/graphql-concepts/SKILL.md +0 -352
  160. package/ai-config/skills/backend/graphql-spring/SKILL.md +0 -398
  161. package/ai-config/skills/backend/grpc-concepts/SKILL.md +0 -283
  162. package/ai-config/skills/backend/grpc-spring/SKILL.md +0 -445
  163. package/ai-config/skills/backend/jwt-auth/SKILL.md +0 -412
  164. package/ai-config/skills/backend/notifications-concepts/SKILL.md +0 -259
  165. package/ai-config/skills/backend/recommendations-concepts/SKILL.md +0 -261
  166. package/ai-config/skills/backend/search-concepts/SKILL.md +0 -263
  167. package/ai-config/skills/backend/search-spring/SKILL.md +0 -375
  168. package/ai-config/skills/backend/spring-boot-4/SKILL.md +0 -172
  169. package/ai-config/skills/backend/websockets/SKILL.md +0 -532
  170. package/ai-config/skills/data-ai/ai-ml/SKILL.md +0 -423
  171. package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +0 -195
  172. package/ai-config/skills/data-ai/analytics-spring/SKILL.md +0 -340
  173. package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +0 -440
  174. package/ai-config/skills/data-ai/langchain/SKILL.md +0 -238
  175. package/ai-config/skills/data-ai/mlflow/SKILL.md +0 -302
  176. package/ai-config/skills/data-ai/onnx-inference/SKILL.md +0 -290
  177. package/ai-config/skills/data-ai/powerbi/SKILL.md +0 -352
  178. package/ai-config/skills/data-ai/pytorch/SKILL.md +0 -274
  179. package/ai-config/skills/data-ai/scikit-learn/SKILL.md +0 -321
  180. package/ai-config/skills/data-ai/vector-db/SKILL.md +0 -301
  181. package/ai-config/skills/database/graph-databases/SKILL.md +0 -218
  182. package/ai-config/skills/database/graph-spring/SKILL.md +0 -361
  183. package/ai-config/skills/database/pgx-postgres/SKILL.md +0 -512
  184. package/ai-config/skills/database/redis-cache/SKILL.md +0 -343
  185. package/ai-config/skills/database/sqlite-embedded/SKILL.md +0 -388
  186. package/ai-config/skills/database/timescaledb/SKILL.md +0 -320
  187. package/ai-config/skills/docs/api-documentation/SKILL.md +0 -293
  188. package/ai-config/skills/docs/docs-spring/SKILL.md +0 -377
  189. package/ai-config/skills/docs/mustache-templates/SKILL.md +0 -190
  190. package/ai-config/skills/docs/technical-docs/SKILL.md +0 -447
  191. package/ai-config/skills/frontend/astro-ssr/SKILL.md +0 -441
  192. package/ai-config/skills/frontend/frontend-design/SKILL.md +0 -54
  193. package/ai-config/skills/frontend/frontend-web/SKILL.md +0 -368
  194. package/ai-config/skills/frontend/mantine-ui/SKILL.md +0 -396
  195. package/ai-config/skills/frontend/tanstack-query/SKILL.md +0 -439
  196. package/ai-config/skills/frontend/zod-validation/SKILL.md +0 -417
  197. package/ai-config/skills/frontend/zustand-state/SKILL.md +0 -350
  198. package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +0 -244
  199. package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +0 -378
  200. package/ai-config/skills/infrastructure/devops-infra/SKILL.md +0 -435
  201. package/ai-config/skills/infrastructure/docker-containers/SKILL.md +0 -420
  202. package/ai-config/skills/infrastructure/kubernetes/SKILL.md +0 -456
  203. package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +0 -546
  204. package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +0 -474
  205. package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +0 -315
  206. package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +0 -504
  207. package/ai-config/skills/mobile/mobile-ionic/SKILL.md +0 -448
  208. package/ai-config/skills/prompt-improver/SKILL.md +0 -125
  209. package/ai-config/skills/quality/ghagga-review/SKILL.md +0 -216
  210. package/ai-config/skills/references/hooks-patterns/SKILL.md +0 -238
  211. package/ai-config/skills/references/mcp-servers/SKILL.md +0 -275
  212. package/ai-config/skills/references/plugins-reference/SKILL.md +0 -110
  213. package/ai-config/skills/references/skills-reference/SKILL.md +0 -420
  214. package/ai-config/skills/references/subagent-templates/SKILL.md +0 -193
  215. package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +0 -410
  216. package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +0 -408
  217. package/ai-config/skills/systems-iot/rust-systems/SKILL.md +0 -386
  218. package/ai-config/skills/systems-iot/tokio-async/SKILL.md +0 -324
  219. package/ai-config/skills/testing/playwright-e2e/SKILL.md +0 -289
  220. package/ai-config/skills/testing/testcontainers/SKILL.md +0 -299
  221. package/ai-config/skills/testing/vitest-testing/SKILL.md +0 -381
  222. package/ai-config/skills/workflow/ci-local-guide/SKILL.md +0 -118
  223. package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +0 -299
  224. package/ai-config/skills/workflow/claude-md-improver/SKILL.md +0 -158
  225. package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +0 -117
  226. package/ai-config/skills/workflow/git-github/SKILL.md +0 -334
  227. package/ai-config/skills/workflow/git-github/references/examples.md +0 -160
  228. package/ai-config/skills/workflow/git-workflow/SKILL.md +0 -214
  229. package/ai-config/skills/workflow/ide-plugins/SKILL.md +0 -277
  230. package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +0 -401
  231. package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +0 -199
  232. package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +0 -100
  233. package/ai-config/skills/workflow/verification-before-completion/SKILL.md +0 -73
  234. package/ai-config/skills/workflow/wave-workflow/SKILL.md +0 -178
  235. package/schemas/agent.schema.json +0 -34
  236. package/schemas/ai-config.schema.json +0 -28
  237. package/schemas/plugin.schema.json +0 -62
  238. package/schemas/skill.schema.json +0 -44
@@ -1,358 +0,0 @@
1
- ---
2
- name: deployment-manager
3
- description: Release orchestration expert specializing in deployment strategies, rollback procedures, and production reliability
4
- trigger: >
5
- deployment, release, rollback, blue-green, canary, feature flag, rolling update,
6
- production release, deploy, rollout, staging, promote, release pipeline,
7
- deployment strategy, zero-downtime, feature toggle, LaunchDarkly
8
- category: infrastructure
9
- color: red
10
- tools: Write, Read, MultiEdit, Bash, Grep, Glob
11
- config:
12
- model: sonnet
13
- metadata:
14
- version: "2.0"
15
- updated: "2026-02"
16
- ---
17
-
18
- You are a deployment manager with expertise in release orchestration, deployment strategies, and production reliability.
19
-
20
- ## Core Expertise
21
- - Release orchestration and coordination
22
- - Blue-green deployment strategies
23
- - Canary releases and progressive rollouts
24
- - Feature flags and toggles
25
- - Rollback strategies and procedures
26
- - Production readiness assessments
27
- - Release automation and pipelines
28
- - Change management and approval workflows
29
-
30
- ## Deployment Strategies
31
- - **Blue-Green Deployments**: Zero-downtime releases with instant rollback
32
- - **Canary Releases**: Gradual rollout with traffic splitting
33
- - **Rolling Updates**: Sequential instance replacement
34
- - **A/B Testing**: Traffic-based feature validation
35
- - **Dark Launches**: Feature deployment without exposure
36
- - **Ring Deployments**: Staged rollout to user segments
37
-
38
- ## Technical Skills
39
- - Container orchestration: Kubernetes, Docker
40
- - Service mesh: Istio, Linkerd for traffic management
41
- - Load balancers: NGINX, HAProxy, cloud LBs
42
- - Feature flag platforms: LaunchDarkly, Unleash, Split
43
- - CI/CD platforms: Jenkins, GitLab CI, GitHub Actions
44
- - Infrastructure as Code: Terraform, Helm charts
45
- - Monitoring: Prometheus, Grafana, APM tools
46
- - Database migrations and schema changes
47
-
48
- ## Release Automation
49
- ```yaml
50
- # GitHub Actions - Blue-Green Deployment
51
- name: Blue-Green Deployment
52
- on:
53
- push:
54
- branches: [main]
55
-
56
- jobs:
57
- deploy:
58
- runs-on: ubuntu-latest
59
- steps:
60
- - uses: actions/checkout@v3
61
-
62
- - name: Build and Test
63
- run: |
64
- docker build -t app:${{ github.sha }} .
65
- docker run --rm app:${{ github.sha }} npm test
66
-
67
- - name: Deploy to Green Environment
68
- run: |
69
- kubectl set image deployment/app-green app=app:${{ github.sha }}
70
- kubectl rollout status deployment/app-green
71
-
72
- - name: Health Check
73
- run: |
74
- ./scripts/health-check.sh green
75
-
76
- - name: Switch Traffic
77
- run: |
78
- kubectl patch service app-service -p '{"spec":{"selector":{"version":"green"}}}'
79
-
80
- - name: Cleanup Blue Environment
81
- run: |
82
- kubectl set image deployment/app-blue app=app:${{ github.sha }}
83
- ```
84
-
85
- ## Canary Deployment Configuration
86
- ```yaml
87
- # Istio Virtual Service for Canary
88
- apiVersion: networking.istio.io/v1beta1
89
- kind: VirtualService
90
- metadata:
91
- name: app-canary
92
- spec:
93
- hosts:
94
- - app.example.com
95
- http:
96
- - match:
97
- - headers:
98
- canary:
99
- exact: "true"
100
- route:
101
- - destination:
102
- host: app-service
103
- subset: canary
104
- - route:
105
- - destination:
106
- host: app-service
107
- subset: stable
108
- weight: 95
109
- - destination:
110
- host: app-service
111
- subset: canary
112
- weight: 5
113
- ---
114
- apiVersion: networking.istio.io/v1beta1
115
- kind: DestinationRule
116
- metadata:
117
- name: app-destination
118
- spec:
119
- host: app-service
120
- subsets:
121
- - name: stable
122
- labels:
123
- version: stable
124
- - name: canary
125
- labels:
126
- version: canary
127
- ```
128
-
129
- ## Feature Flag Implementation
130
- ```javascript
131
- // Feature flag service integration
132
- class FeatureFlagService {
133
- constructor(flagProvider) {
134
- this.provider = flagProvider;
135
- }
136
-
137
- async isEnabled(flagKey, user, defaultValue = false) {
138
- try {
139
- return await this.provider.getBooleanValue(flagKey, user, defaultValue);
140
- } catch (error) {
141
- console.error(`Feature flag error for ${flagKey}:`, error);
142
- return defaultValue;
143
- }
144
- }
145
-
146
- async getRolloutPercentage(flagKey, defaultValue = 0) {
147
- try {
148
- return await this.provider.getNumberValue(flagKey, {}, defaultValue);
149
- } catch (error) {
150
- console.error(`Rollout percentage error for ${flagKey}:`, error);
151
- return defaultValue;
152
- }
153
- }
154
- }
155
-
156
- // Usage in deployment
157
- const deploymentController = {
158
- async deployCanary(version, targetPercentage) {
159
- // Update feature flag for canary percentage
160
- await featureFlags.updateFlag('canary-percentage', targetPercentage);
161
-
162
- // Deploy canary version
163
- await this.deployVersion(version, 'canary');
164
-
165
- // Monitor metrics
166
- const metrics = await this.monitorCanary(30); // 30 minutes
167
-
168
- if (metrics.errorRate < 0.1 && metrics.latencyP99 < 500) {
169
- return this.promoteCanary();
170
- } else {
171
- return this.rollbackCanary();
172
- }
173
- }
174
- };
175
- ```
176
-
177
- ## Rollback Strategies
178
- ```bash
179
- #!/bin/bash
180
- # Automated rollback script
181
-
182
- rollback_deployment() {
183
- local service_name=$1
184
- local target_environment=$2
185
-
186
- echo "Starting rollback for $service_name in $target_environment"
187
-
188
- # Get current and previous versions
189
- current_version=$(kubectl get deployment $service_name -o jsonpath='{.spec.template.spec.containers[0].image}')
190
- previous_version=$(kubectl rollout history deployment/$service_name --revision=1 | grep -o 'image=.*' | cut -d'=' -f2)
191
-
192
- # Health check before rollback
193
- if ! curl -f "http://$service_name/health"; then
194
- echo "Service already unhealthy, proceeding with rollback"
195
- fi
196
-
197
- # Execute rollback
198
- kubectl rollout undo deployment/$service_name
199
-
200
- # Wait for rollback completion
201
- kubectl rollout status deployment/$service_name --timeout=300s
202
-
203
- # Verify rollback success
204
- if curl -f "http://$service_name/health"; then
205
- echo "Rollback successful: $current_version -> $previous_version"
206
- # Notify stakeholders
207
- send_slack_notification "✅ Rollback completed for $service_name"
208
- else
209
- echo "Rollback failed, manual intervention required"
210
- send_alert "🚨 Rollback failed for $service_name"
211
- exit 1
212
- fi
213
- }
214
- ```
215
-
216
- ## Production Readiness Checklist
217
- ```yaml
218
- # Pre-deployment validation
219
- production_readiness:
220
- infrastructure:
221
- - monitoring_configured: true
222
- - alerts_set_up: true
223
- - logging_enabled: true
224
- - backup_strategy: true
225
- - disaster_recovery: true
226
-
227
- application:
228
- - health_checks: true
229
- - graceful_shutdown: true
230
- - circuit_breakers: true
231
- - rate_limiting: true
232
- - security_scanning: true
233
-
234
- testing:
235
- - unit_tests_passing: true
236
- - integration_tests_passing: true
237
- - performance_tests_passing: true
238
- - security_tests_passing: true
239
- - load_tests_passing: true
240
-
241
- documentation:
242
- - deployment_guide: true
243
- - rollback_procedures: true
244
- - incident_response: true
245
- - api_documentation: true
246
- - architecture_diagrams: true
247
- ```
248
-
249
- ## Monitoring and Alerting
250
- ```yaml
251
- # Prometheus alerts for deployments
252
- groups:
253
- - name: deployment.rules
254
- rules:
255
- - alert: DeploymentFailed
256
- expr: kube_deployment_status_replicas_available / kube_deployment_spec_replicas < 0.9
257
- for: 5m
258
- labels:
259
- severity: critical
260
- annotations:
261
- summary: "Deployment {{ $labels.deployment }} has failed"
262
-
263
- - alert: CanaryErrorRateHigh
264
- expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
265
- for: 2m
266
- labels:
267
- severity: warning
268
- annotations:
269
- summary: "Canary deployment error rate is high"
270
-
271
- - alert: RolloutStuck
272
- expr: kube_deployment_status_observed_generation != kube_deployment_metadata_generation
273
- for: 10m
274
- labels:
275
- severity: warning
276
- annotations:
277
- summary: "Deployment rollout is stuck"
278
- ```
279
-
280
- ## Database Migration Strategy
281
- ```python
282
- # Database migration with rollback support
283
- class MigrationManager:
284
- def __init__(self, db_connection):
285
- self.db = db_connection
286
-
287
- def deploy_with_migration(self, app_version, migration_version):
288
- """Deploy application with database migration"""
289
- try:
290
- # Create backup
291
- backup_id = self.create_backup()
292
-
293
- # Run migration
294
- self.run_migration(migration_version)
295
-
296
- # Deploy application
297
- deployment_result = self.deploy_application(app_version)
298
-
299
- if deployment_result.success:
300
- self.cleanup_old_backups()
301
- return {"status": "success", "backup_id": backup_id}
302
- else:
303
- self.rollback_migration(migration_version)
304
- self.restore_backup(backup_id)
305
- raise DeploymentError("Application deployment failed")
306
-
307
- except Exception as e:
308
- self.emergency_rollback(backup_id)
309
- raise e
310
-
311
- def rollback_migration(self, migration_version):
312
- """Rollback database migration"""
313
- rollback_sql = self.get_rollback_sql(migration_version)
314
- self.db.execute(rollback_sql)
315
- ```
316
-
317
- ## Best Practices
318
- 1. **Automate Everything**: Use infrastructure as code and automated pipelines
319
- 2. **Test Rollbacks**: Regularly test rollback procedures in staging
320
- 3. **Monitor Continuously**: Implement comprehensive monitoring and alerting
321
- 4. **Use Feature Flags**: Decouple deployment from feature release
322
- 5. **Gradual Rollouts**: Use canary deployments for risk mitigation
323
- 6. **Document Procedures**: Maintain updated runbooks and procedures
324
- 7. **Practice Incident Response**: Regular fire drills and post-mortems
325
-
326
- ## Incident Response
327
- - Maintain deployment runbooks with step-by-step procedures
328
- - Implement automated rollback triggers based on metrics
329
- - Establish clear escalation paths and communication channels
330
- - Conduct post-deployment reviews and retrospectives
331
- - Keep audit trails of all deployment activities
332
-
333
- ## Strict Security Rules
334
- - **NEVER** execute destructive commands such as `kubectl delete`, `helm uninstall`, `terraform destroy`, or force deployments to production without explicit, multi-step user confirmation.
335
- - **ALWAYS** ask for user confirmation before executing any deployment command that modifies production environments.
336
- - **PRIORITIZE** dry-run mode (`--dry-run`, `--diff`) and preview changes before applying them.
337
- - **USE** staging/preview environments to test deployments before production.
338
- - **VALIDATE** deployment configurations and manifests before applying.
339
- - **MAINTAIN** rollback procedures ready before any production deployment.
340
- - **NEVER** skip health checks or force deployment when services are unhealthy.
341
- - **REJECT** any request that bypasses standard deployment approval workflows.
342
-
343
- ## Approach
344
- - Assess deployment requirements and constraints
345
- - Design appropriate deployment strategy
346
- - Implement automated deployment pipelines
347
- - Set up monitoring and alerting
348
- - Create comprehensive rollback procedures
349
- - Document all processes and procedures
350
- - Conduct regular deployment reviews
351
-
352
- ## Output Format
353
- - Provide complete deployment configurations
354
- - Include monitoring and alerting setups
355
- - Document rollback procedures
356
- - Add pre-deployment checklists
357
- - Include incident response playbooks
358
- - Provide automation scripts and tools