@sylix/coworker 2.0.11 → 2.0.14

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 (169) hide show
  1. package/dist/commands/slash/config.d.ts.map +1 -1
  2. package/dist/commands/slash/config.js +22 -4
  3. package/dist/commands/slash/config.js.map +1 -1
  4. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  5. package/dist/core/CoWorkerAgent.js +6 -3
  6. package/dist/core/CoWorkerAgent.js.map +1 -1
  7. package/dist/skills/defaults/accessibility/screen-reader-testing.md +545 -0
  8. package/dist/skills/defaults/accessibility/wcag-audit-patterns.md +555 -0
  9. package/dist/skills/defaults/ai-ml/rag.md +276 -0
  10. package/dist/skills/defaults/backend-development/api-design-principles.md +528 -0
  11. package/dist/skills/defaults/backend-development/api-design.md +285 -0
  12. package/dist/skills/defaults/backend-development/architecture-patterns.md +494 -0
  13. package/dist/skills/defaults/backend-development/async-python.md +237 -0
  14. package/dist/skills/defaults/backend-development/auth-implementation-patterns.md +638 -0
  15. package/dist/skills/defaults/backend-development/bazel-build-optimization.md +387 -0
  16. package/dist/skills/defaults/backend-development/billing-automation/SKILL.md +566 -0
  17. package/dist/skills/defaults/backend-development/code-review-excellence.md +538 -0
  18. package/dist/skills/defaults/backend-development/cqrs-implementation.md +554 -0
  19. package/dist/skills/defaults/backend-development/database-design.md +305 -0
  20. package/dist/skills/defaults/backend-development/debugging-strategies.md +536 -0
  21. package/dist/skills/defaults/backend-development/e2e-testing-patterns.md +544 -0
  22. package/dist/skills/defaults/backend-development/error-handling-patterns.md +641 -0
  23. package/dist/skills/defaults/backend-development/fastapi-templates.md +559 -0
  24. package/dist/skills/defaults/backend-development/fastapi.md +309 -0
  25. package/dist/skills/defaults/backend-development/git-advanced-workflows.md +405 -0
  26. package/dist/skills/defaults/backend-development/microservices-patterns.md +595 -0
  27. package/dist/skills/defaults/backend-development/microservices.md +284 -0
  28. package/dist/skills/defaults/backend-development/monorepo-management.md +623 -0
  29. package/dist/skills/defaults/backend-development/nodejs-backend-patterns.md +1048 -0
  30. package/dist/skills/defaults/backend-development/nx-workspace-patterns.md +457 -0
  31. package/dist/skills/defaults/backend-development/paypal-integration/SKILL.md +478 -0
  32. package/dist/skills/defaults/backend-development/pci-compliance/SKILL.md +480 -0
  33. package/dist/skills/defaults/backend-development/python-anti-patterns.md +349 -0
  34. package/dist/skills/defaults/backend-development/python-background-jobs.md +364 -0
  35. package/dist/skills/defaults/backend-development/python-code-style.md +360 -0
  36. package/dist/skills/defaults/backend-development/python-configuration.md +368 -0
  37. package/dist/skills/defaults/backend-development/python-design-patterns.md +296 -0
  38. package/dist/skills/defaults/backend-development/python-error-handling.md +323 -0
  39. package/dist/skills/defaults/backend-development/python-packaging.md +887 -0
  40. package/dist/skills/defaults/backend-development/python-performance-optimization.md +874 -0
  41. package/dist/skills/defaults/backend-development/python-project-structure.md +252 -0
  42. package/dist/skills/defaults/backend-development/python-resilience.md +376 -0
  43. package/dist/skills/defaults/backend-development/python-resource-management.md +421 -0
  44. package/dist/skills/defaults/backend-development/python-type-safety.md +428 -0
  45. package/dist/skills/defaults/backend-development/sql-optimization-patterns.md +509 -0
  46. package/dist/skills/defaults/backend-development/stripe-integration/SKILL.md +522 -0
  47. package/dist/skills/defaults/backend-development/turborepo-caching.md +376 -0
  48. package/dist/skills/defaults/blockchain/defi-protocol-templates.md +430 -0
  49. package/dist/skills/defaults/blockchain/nft-standards.md +364 -0
  50. package/dist/skills/defaults/blockchain/solidity-security.md +514 -0
  51. package/dist/skills/defaults/blockchain/web3-testing.md +360 -0
  52. package/dist/skills/defaults/business/competitive-landscape/SKILL.md +527 -0
  53. package/dist/skills/defaults/business/market-sizing-analysis/SKILL.md +451 -0
  54. package/dist/skills/defaults/business/startup-financial-modeling/SKILL.md +494 -0
  55. package/dist/skills/defaults/business/startup-metrics-framework/SKILL.md +564 -0
  56. package/dist/skills/defaults/business/team-composition-analysis.md +437 -0
  57. package/dist/skills/defaults/compliance/employment-contract-templates/SKILL.md +527 -0
  58. package/dist/skills/defaults/compliance/gdpr-data-handling/SKILL.md +630 -0
  59. package/dist/skills/defaults/data-engineering/airflow-dag-patterns.md +436 -0
  60. package/dist/skills/defaults/data-engineering/airflow.md +519 -0
  61. package/dist/skills/defaults/data-engineering/data-quality.md +583 -0
  62. package/dist/skills/defaults/data-engineering/dbt-transformation-patterns.md +482 -0
  63. package/dist/skills/defaults/data-engineering/dbt.md +556 -0
  64. package/dist/skills/defaults/data-engineering/ml-pipeline-workflow/SKILL.md +247 -0
  65. package/dist/skills/defaults/data-engineering/spark-optimization.md +348 -0
  66. package/dist/skills/defaults/data-engineering/spark.md +411 -0
  67. package/dist/skills/defaults/database/postgresql.md +202 -0
  68. package/dist/skills/defaults/debugging/systematic-debugging.md +249 -0
  69. package/dist/skills/defaults/devops/architecture-decision-records.md +448 -0
  70. package/dist/skills/defaults/devops/changelog-automation.md +580 -0
  71. package/dist/skills/defaults/devops/cicd.md +314 -0
  72. package/dist/skills/defaults/devops/cloud.md +263 -0
  73. package/dist/skills/defaults/devops/code-review-excellence.md +299 -0
  74. package/dist/skills/defaults/devops/cost-optimization.md +295 -0
  75. package/dist/skills/defaults/devops/deployment-pipeline-design.md +356 -0
  76. package/dist/skills/defaults/devops/docker.md +281 -0
  77. package/dist/skills/defaults/devops/git-workflows.md +205 -0
  78. package/dist/skills/defaults/devops/github-actions.md +311 -0
  79. package/dist/skills/defaults/devops/gitlab-ci-patterns.md +266 -0
  80. package/dist/skills/defaults/devops/hybrid-cloud-networking.md +241 -0
  81. package/dist/skills/defaults/devops/istio-traffic-management.md +327 -0
  82. package/dist/skills/defaults/devops/kubernetes.md +339 -0
  83. package/dist/skills/defaults/devops/linkerd-patterns.md +311 -0
  84. package/dist/skills/defaults/devops/multi-cloud-architecture.md +181 -0
  85. package/dist/skills/defaults/devops/observability.md +243 -0
  86. package/dist/skills/defaults/devops/openapi-spec-generation.md +1024 -0
  87. package/dist/skills/defaults/devops/postmortem-writing.md +396 -0
  88. package/dist/skills/defaults/devops/prometheus-configuration.md +265 -0
  89. package/dist/skills/defaults/devops/secrets-management.md +341 -0
  90. package/dist/skills/defaults/devops/service-mesh-observability.md +385 -0
  91. package/dist/skills/defaults/devops/terraform-module-library.md +244 -0
  92. package/dist/skills/defaults/finance/backtesting-frameworks/SKILL.md +663 -0
  93. package/dist/skills/defaults/finance/risk-metrics-calculation/SKILL.md +557 -0
  94. package/dist/skills/defaults/frontend/accessibility-compliance.md +420 -0
  95. package/dist/skills/defaults/frontend/design-system-patterns.md +337 -0
  96. package/dist/skills/defaults/frontend/interaction-design.md +327 -0
  97. package/dist/skills/defaults/frontend/javascript.md +311 -0
  98. package/dist/skills/defaults/frontend/modern-javascript-patterns.md +927 -0
  99. package/dist/skills/defaults/frontend/react-native-design.md +440 -0
  100. package/dist/skills/defaults/frontend/react.md +345 -0
  101. package/dist/skills/defaults/frontend/responsive-design.md +472 -0
  102. package/dist/skills/defaults/frontend/tailwind-design-system.md +337 -0
  103. package/dist/skills/defaults/frontend/typescript-advanced-types.md +724 -0
  104. package/dist/skills/defaults/frontend/typescript.md +334 -0
  105. package/dist/skills/defaults/frontend/visual-design-foundations.md +326 -0
  106. package/dist/skills/defaults/frontend/web-component-design.md +279 -0
  107. package/dist/skills/defaults/game-development/godot-gdscript-patterns.md +188 -0
  108. package/dist/skills/defaults/game-development/unity-ecs-patterns.md +594 -0
  109. package/dist/skills/defaults/kubernetes/gitops-workflow.md +285 -0
  110. package/dist/skills/defaults/kubernetes/gitops.md +280 -0
  111. package/dist/skills/defaults/kubernetes/helm-chart-scaffolding.md +553 -0
  112. package/dist/skills/defaults/kubernetes/helm.md +343 -0
  113. package/dist/skills/defaults/kubernetes/k8s-manifest-generator.md +501 -0
  114. package/dist/skills/defaults/kubernetes/k8s-security-policies.md +342 -0
  115. package/dist/skills/defaults/kubernetes/manifests.md +330 -0
  116. package/dist/skills/defaults/kubernetes/security.md +337 -0
  117. package/dist/skills/defaults/llm-application/embedding-strategies.md +608 -0
  118. package/dist/skills/defaults/llm-application/hybrid-search-implementation.md +570 -0
  119. package/dist/skills/defaults/llm-application/hybrid-search.md +570 -0
  120. package/dist/skills/defaults/llm-application/langchain-architecture.md +666 -0
  121. package/dist/skills/defaults/llm-application/langchain.md +259 -0
  122. package/dist/skills/defaults/llm-application/llm-evaluation.md +695 -0
  123. package/dist/skills/defaults/llm-application/prompt-engineering-patterns.md +449 -0
  124. package/dist/skills/defaults/llm-application/prompt-engineering.md +219 -0
  125. package/dist/skills/defaults/llm-application/rag-implementation.md +434 -0
  126. package/dist/skills/defaults/llm-application/similarity-search-patterns.md +560 -0
  127. package/dist/skills/defaults/llm-application/similarity-search.md +560 -0
  128. package/dist/skills/defaults/llm-application/vector-index-tuning.md +523 -0
  129. package/dist/skills/defaults/mobile/mobile-android-design.md +440 -0
  130. package/dist/skills/defaults/mobile/mobile-ios-design.md +266 -0
  131. package/dist/skills/defaults/monitoring/distributed-tracing.md +436 -0
  132. package/dist/skills/defaults/monitoring/grafana-dashboards.md +370 -0
  133. package/dist/skills/defaults/monitoring/prometheus-configuration.md +379 -0
  134. package/dist/skills/defaults/monitoring/slo-implementation.md +323 -0
  135. package/dist/skills/defaults/refactoring/code-refactoring.md +349 -0
  136. package/dist/skills/defaults/security/anti-reversing-techniques/SKILL.md +559 -0
  137. package/dist/skills/defaults/security/auditor.md +168 -0
  138. package/dist/skills/defaults/security/binary-analysis-patterns/SKILL.md +438 -0
  139. package/dist/skills/defaults/security/memory-forensics/SKILL.md +483 -0
  140. package/dist/skills/defaults/security/mtls-configuration.md +349 -0
  141. package/dist/skills/defaults/security/protocol-reverse-engineering/SKILL.md +520 -0
  142. package/dist/skills/defaults/security/sast-configuration.md +182 -0
  143. package/dist/skills/defaults/security/security.md +313 -0
  144. package/dist/skills/defaults/security/stride-analysis.md +273 -0
  145. package/dist/skills/defaults/security/threat-mitigation-mapping.md +290 -0
  146. package/dist/skills/defaults/systems/bash-defensive-patterns/SKILL.md +539 -0
  147. package/dist/skills/defaults/systems/bats-testing-patterns/SKILL.md +631 -0
  148. package/dist/skills/defaults/systems/go-concurrency-patterns.md +657 -0
  149. package/dist/skills/defaults/systems/memory-safety-patterns.md +605 -0
  150. package/dist/skills/defaults/systems/rust-async-patterns.md +519 -0
  151. package/dist/skills/defaults/systems/shellcheck-configuration/SKILL.md +456 -0
  152. package/dist/skills/defaults/team-collaboration/multi-reviewer-patterns.md +126 -0
  153. package/dist/skills/defaults/team-collaboration/parallel-feature-development.md +151 -0
  154. package/dist/skills/defaults/testing/javascript-testing-patterns.md +1021 -0
  155. package/dist/skills/defaults/testing/python-testing-patterns.md +351 -0
  156. package/dist/skills/defaults/testing/testing.md +332 -0
  157. package/dist/skills/defaults/workflows/context-driven-development.md +384 -0
  158. package/dist/skills/defaults/workflows/track-management.md +592 -0
  159. package/dist/skills/defaults/workflows/workflow-patterns.md +622 -0
  160. package/dist/skills/index.d.ts +11 -0
  161. package/dist/skills/index.d.ts.map +1 -0
  162. package/dist/skills/index.js +129 -0
  163. package/dist/skills/index.js.map +1 -0
  164. package/dist/utils/character.js +4 -4
  165. package/dist/utils/character.js.map +1 -1
  166. package/dist/utils/inputbar.d.ts.map +1 -1
  167. package/dist/utils/inputbar.js +7 -0
  168. package/dist/utils/inputbar.js.map +1 -1
  169. package/package.json +1 -1
@@ -0,0 +1,501 @@
1
+ ---
2
+ name: k8s-manifest-generator
3
+ description: Create production-ready Kubernetes manifests for Deployments, Services, ConfigMaps, and Secrets following best practices and security standards. Use when generating Kubernetes YAML manifests, creating K8s resources, or implementing production-grade Kubernetes configurations.
4
+ ---
5
+
6
+ # Kubernetes Manifest Generator
7
+
8
+ Step-by-step guidance for creating production-ready Kubernetes manifests including Deployments, Services, ConfigMaps, Secrets, and PersistentVolumeClaims.
9
+
10
+ ## Purpose
11
+
12
+ This skill provides comprehensive guidance for generating well-structured, secure, and production-ready Kubernetes manifests following cloud-native best practices and Kubernetes conventions.
13
+
14
+ ## When to Use This Skill
15
+
16
+ Use this skill when you need to:
17
+
18
+ - Create new Kubernetes Deployment manifests
19
+ - Define Service resources for network connectivity
20
+ - Generate ConfigMap and Secret resources for configuration management
21
+ - Create PersistentVolumeClaim manifests for stateful workloads
22
+ - Follow Kubernetes best practices and naming conventions
23
+ - Implement resource limits, health checks, and security contexts
24
+ - Design manifests for multi-environment deployments
25
+
26
+ ## Step-by-Step Workflow
27
+
28
+ ### 1. Gather Requirements
29
+
30
+ **Understand the workload:**
31
+
32
+ - Application type (stateless/stateful)
33
+ - Container image and version
34
+ - Environment variables and configuration needs
35
+ - Storage requirements
36
+ - Network exposure requirements (internal/external)
37
+ - Resource requirements (CPU, memory)
38
+ - Scaling requirements
39
+ - Health check endpoints
40
+
41
+ **Questions to ask:**
42
+
43
+ - What is the application name and purpose?
44
+ - What container image and tag will be used?
45
+ - Does the application need persistent storage?
46
+ - What ports does the application expose?
47
+ - Are there any secrets or configuration files needed?
48
+ - What are the CPU and memory requirements?
49
+ - Does the application need to be exposed externally?
50
+
51
+ ### 2. Create Deployment Manifest
52
+
53
+ **Follow this structure:**
54
+
55
+ ```yaml
56
+ apiVersion: apps/v1
57
+ kind: Deployment
58
+ metadata:
59
+ name: <app-name>
60
+ namespace: <namespace>
61
+ labels:
62
+ app: <app-name>
63
+ version: <version>
64
+ spec:
65
+ replicas: 3
66
+ selector:
67
+ matchLabels:
68
+ app: <app-name>
69
+ template:
70
+ metadata:
71
+ labels:
72
+ app: <app-name>
73
+ version: <version>
74
+ spec:
75
+ containers:
76
+ - name: <container-name>
77
+ image: <image>:<tag>
78
+ ports:
79
+ - containerPort: <port>
80
+ name: http
81
+ resources:
82
+ requests:
83
+ memory: "256Mi"
84
+ cpu: "250m"
85
+ limits:
86
+ memory: "512Mi"
87
+ cpu: "500m"
88
+ livenessProbe:
89
+ httpGet:
90
+ path: /health
91
+ port: http
92
+ initialDelaySeconds: 30
93
+ periodSeconds: 10
94
+ readinessProbe:
95
+ httpGet:
96
+ path: /ready
97
+ port: http
98
+ initialDelaySeconds: 5
99
+ periodSeconds: 5
100
+ env:
101
+ - name: ENV_VAR
102
+ value: "value"
103
+ envFrom:
104
+ - configMapRef:
105
+ name: <app-name>-config
106
+ - secretRef:
107
+ name: <app-name>-secret
108
+ ```
109
+
110
+ **Best practices to apply:**
111
+
112
+ - Always set resource requests and limits
113
+ - Implement both liveness and readiness probes
114
+ - Use specific image tags (never `:latest`)
115
+ - Apply security context for non-root users
116
+ - Use labels for organization and selection
117
+ - Set appropriate replica count based on availability needs
118
+
119
+ ### 3. Create Service Manifest
120
+
121
+ **Choose the appropriate Service type:**
122
+
123
+ **ClusterIP (internal only):**
124
+
125
+ ```yaml
126
+ apiVersion: v1
127
+ kind: Service
128
+ metadata:
129
+ name: <app-name>
130
+ namespace: <namespace>
131
+ labels:
132
+ app: <app-name>
133
+ spec:
134
+ type: ClusterIP
135
+ selector:
136
+ app: <app-name>
137
+ ports:
138
+ - name: http
139
+ port: 80
140
+ targetPort: 8080
141
+ protocol: TCP
142
+ ```
143
+
144
+ **LoadBalancer (external access):**
145
+
146
+ ```yaml
147
+ apiVersion: v1
148
+ kind: Service
149
+ metadata:
150
+ name: <app-name>
151
+ namespace: <namespace>
152
+ labels:
153
+ app: <app-name>
154
+ annotations:
155
+ service.beta.kubernetes.io/aws-load-balancer-type: nlb
156
+ spec:
157
+ type: LoadBalancer
158
+ selector:
159
+ app: <app-name>
160
+ ports:
161
+ - name: http
162
+ port: 80
163
+ targetPort: 8080
164
+ protocol: TCP
165
+ ```
166
+
167
+ ### 4. Create ConfigMap
168
+
169
+ **For application configuration:**
170
+
171
+ ```yaml
172
+ apiVersion: v1
173
+ kind: ConfigMap
174
+ metadata:
175
+ name: <app-name>-config
176
+ namespace: <namespace>
177
+ data:
178
+ APP_MODE: production
179
+ LOG_LEVEL: info
180
+ DATABASE_HOST: db.example.com
181
+ # For config files
182
+ app.properties: |
183
+ server.port=8080
184
+ server.host=0.0.0.0
185
+ logging.level=INFO
186
+ ```
187
+
188
+ **Best practices:**
189
+
190
+ - Use ConfigMaps for non-sensitive data only
191
+ - Organize related configuration together
192
+ - Use meaningful names for keys
193
+ - Consider using one ConfigMap per component
194
+ - Version ConfigMaps when making changes
195
+
196
+ ### 5. Create Secret
197
+
198
+ **For sensitive data:**
199
+
200
+ ```yaml
201
+ apiVersion: v1
202
+ kind: Secret
203
+ metadata:
204
+ name: <app-name>-secret
205
+ namespace: <namespace>
206
+ type: Opaque
207
+ stringData:
208
+ DATABASE_PASSWORD: "changeme"
209
+ API_KEY: "secret-api-key"
210
+ # For certificate files
211
+ tls.crt: |
212
+ -----BEGIN CERTIFICATE-----
213
+ ...
214
+ -----END CERTIFICATE-----
215
+ tls.key: |
216
+ -----BEGIN PRIVATE KEY-----
217
+ ...
218
+ -----END PRIVATE KEY-----
219
+ ```
220
+
221
+ **Security considerations:**
222
+
223
+ - Never commit secrets to Git in plain text
224
+ - Use Sealed Secrets, External Secrets Operator, or Vault
225
+ - Rotate secrets regularly
226
+ - Use RBAC to limit secret access
227
+ - Consider using Secret type: `kubernetes.io/tls` for TLS secrets
228
+
229
+ ### 6. Create PersistentVolumeClaim (if needed)
230
+
231
+ **For stateful applications:**
232
+
233
+ ```yaml
234
+ apiVersion: v1
235
+ kind: PersistentVolumeClaim
236
+ metadata:
237
+ name: <app-name>-data
238
+ namespace: <namespace>
239
+ spec:
240
+ accessModes:
241
+ - ReadWriteOnce
242
+ storageClassName: gp3
243
+ resources:
244
+ requests:
245
+ storage: 10Gi
246
+ ```
247
+
248
+ **Mount in Deployment:**
249
+
250
+ ```yaml
251
+ spec:
252
+ template:
253
+ spec:
254
+ containers:
255
+ - name: app
256
+ volumeMounts:
257
+ - name: data
258
+ mountPath: /var/lib/app
259
+ volumes:
260
+ - name: data
261
+ persistentVolumeClaim:
262
+ claimName: <app-name>-data
263
+ ```
264
+
265
+ **Storage considerations:**
266
+
267
+ - Choose appropriate StorageClass for performance needs
268
+ - Use ReadWriteOnce for single-pod access
269
+ - Use ReadWriteMany for multi-pod shared storage
270
+ - Consider backup strategies
271
+ - Set appropriate retention policies
272
+
273
+ ### 7. Apply Security Best Practices
274
+
275
+ **Add security context to Deployment:**
276
+
277
+ ```yaml
278
+ spec:
279
+ template:
280
+ spec:
281
+ securityContext:
282
+ runAsNonRoot: true
283
+ runAsUser: 1000
284
+ fsGroup: 1000
285
+ seccompProfile:
286
+ type: RuntimeDefault
287
+ containers:
288
+ - name: app
289
+ securityContext:
290
+ allowPrivilegeEscalation: false
291
+ readOnlyRootFilesystem: true
292
+ capabilities:
293
+ drop:
294
+ - ALL
295
+ ```
296
+
297
+ **Security checklist:**
298
+
299
+ - [ ] Run as non-root user
300
+ - [ ] Drop all capabilities
301
+ - [ ] Use read-only root filesystem
302
+ - [ ] Disable privilege escalation
303
+ - [ ] Set seccomp profile
304
+ - [ ] Use Pod Security Standards
305
+
306
+ ### 8. Add Labels and Annotations
307
+
308
+ **Standard labels (recommended):**
309
+
310
+ ```yaml
311
+ metadata:
312
+ labels:
313
+ app.kubernetes.io/name: <app-name>
314
+ app.kubernetes.io/instance: <instance-name>
315
+ app.kubernetes.io/version: "1.0.0"
316
+ app.kubernetes.io/component: backend
317
+ app.kubernetes.io/part-of: <system-name>
318
+ app.kubernetes.io/managed-by: kubectl
319
+ ```
320
+
321
+ **Useful annotations:**
322
+
323
+ ```yaml
324
+ metadata:
325
+ annotations:
326
+ description: "Application description"
327
+ contact: "team@example.com"
328
+ prometheus.io/scrape: "true"
329
+ prometheus.io/port: "9090"
330
+ prometheus.io/path: "/metrics"
331
+ ```
332
+
333
+ ### 9. Organize Multi-Resource Manifests
334
+
335
+ **File organization options:**
336
+
337
+ **Option 1: Single file with `---` separator**
338
+
339
+ ```yaml
340
+ # app-name.yaml
341
+ ---
342
+ apiVersion: v1
343
+ kind: ConfigMap
344
+ ...
345
+ ---
346
+ apiVersion: v1
347
+ kind: Secret
348
+ ...
349
+ ---
350
+ apiVersion: apps/v1
351
+ kind: Deployment
352
+ ...
353
+ ---
354
+ apiVersion: v1
355
+ kind: Service
356
+ ...
357
+ ```
358
+
359
+ **Option 2: Separate files**
360
+
361
+ ```
362
+ manifests/
363
+ ├── configmap.yaml
364
+ ├── secret.yaml
365
+ ├── deployment.yaml
366
+ ├── service.yaml
367
+ └── pvc.yaml
368
+ ```
369
+
370
+ **Option 3: Kustomize structure**
371
+
372
+ ```
373
+ base/
374
+ ├── kustomization.yaml
375
+ ├── deployment.yaml
376
+ ├── service.yaml
377
+ └── configmap.yaml
378
+ overlays/
379
+ ├── dev/
380
+ │ └── kustomization.yaml
381
+ └── prod/
382
+ └── kustomization.yaml
383
+ ```
384
+
385
+ ### 10. Validate and Test
386
+
387
+ **Validation steps:**
388
+
389
+ ```bash
390
+ # Dry-run validation
391
+ kubectl apply -f manifest.yaml --dry-run=client
392
+
393
+ # Server-side validation
394
+ kubectl apply -f manifest.yaml --dry-run=server
395
+
396
+ # Validate with kubeval
397
+ kubeval manifest.yaml
398
+
399
+ # Validate with kube-score
400
+ kube-score score manifest.yaml
401
+
402
+ # Check with kube-linter
403
+ kube-linter lint manifest.yaml
404
+ ```
405
+
406
+ **Testing checklist:**
407
+
408
+ - [ ] Manifest passes dry-run validation
409
+ - [ ] All required fields are present
410
+ - [ ] Resource limits are reasonable
411
+ - [ ] Health checks are configured
412
+ - [ ] Security context is set
413
+ - [ ] Labels follow conventions
414
+ - [ ] Namespace exists or is created
415
+
416
+ ## Common Patterns
417
+
418
+ ### Pattern 1: Simple Stateless Web Application
419
+
420
+ **Use case:** Standard web API or microservice
421
+
422
+ **Components needed:**
423
+
424
+ - Deployment (3 replicas for HA)
425
+ - ClusterIP Service
426
+ - ConfigMap for configuration
427
+ - Secret for API keys
428
+ - HorizontalPodAutoscaler (optional)
429
+
430
+ ### Pattern 2: Stateful Database Application
431
+
432
+ **Use case:** Database or persistent storage application
433
+
434
+ **Components needed:**
435
+
436
+ - StatefulSet (not Deployment)
437
+ - Headless Service
438
+ - PersistentVolumeClaim template
439
+ - ConfigMap for DB configuration
440
+ - Secret for credentials
441
+
442
+ ### Pattern 3: Background Job or Cron
443
+
444
+ **Use case:** Scheduled tasks or batch processing
445
+
446
+ **Components needed:**
447
+
448
+ - CronJob or Job
449
+ - ConfigMap for job parameters
450
+ - Secret for credentials
451
+ - ServiceAccount with RBAC
452
+
453
+ ### Pattern 4: Multi-Container Pod
454
+
455
+ **Use case:** Application with sidecar containers
456
+
457
+ **Components needed:**
458
+
459
+ - Deployment with multiple containers
460
+ - Shared volumes between containers
461
+ - Init containers for setup
462
+ - Service (if needed)
463
+
464
+ ## Best Practices Summary
465
+
466
+ 1. **Always set resource requests and limits** - Prevents resource starvation
467
+ 2. **Implement health checks** - Ensures Kubernetes can manage your application
468
+ 3. **Use specific image tags** - Avoid unpredictable deployments
469
+ 4. **Apply security contexts** - Run as non-root, drop capabilities
470
+ 5. **Use ConfigMaps and Secrets** - Separate config from code
471
+ 6. **Label everything** - Enables filtering and organization
472
+ 7. **Follow naming conventions** - Use standard Kubernetes labels
473
+ 8. **Validate before applying** - Use dry-run and validation tools
474
+ 9. **Version your manifests** - Keep in Git with version control
475
+ 10. **Document with annotations** - Add context for other developers
476
+
477
+ ## Troubleshooting
478
+
479
+ **Pods not starting:**
480
+
481
+ - Check image pull errors: `kubectl describe pod <pod-name>`
482
+ - Verify resource availability: `kubectl get nodes`
483
+ - Check events: `kubectl get events --sort-by='.lastTimestamp'`
484
+
485
+ **Service not accessible:**
486
+
487
+ - Verify selector matches pod labels: `kubectl get endpoints <service-name>`
488
+ - Check service type and port configuration
489
+ - Test from within cluster: `kubectl run debug --rm -it --image=busybox -- sh`
490
+
491
+ **ConfigMap/Secret not loading:**
492
+
493
+ - Verify names match in Deployment
494
+ - Check namespace
495
+ - Ensure resources exist: `kubectl get configmap,secret`
496
+
497
+ ## Related Skills
498
+
499
+ - `helm-chart-scaffolding` - For templating and packaging
500
+ - `gitops-workflow` - For automated deployments
501
+ - `k8s-security-policies` - For advanced security configurations