@sylix/coworker 2.0.10 → 2.0.12

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 (178) hide show
  1. package/dist/commands/slash/config.d.ts.map +1 -1
  2. package/dist/commands/slash/config.js +23 -5
  3. package/dist/commands/slash/config.js.map +1 -1
  4. package/dist/commands/slash/todo.js +1 -1
  5. package/dist/commands/slash/todo.js.map +1 -1
  6. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  7. package/dist/core/CoWorkerAgent.js +6 -3
  8. package/dist/core/CoWorkerAgent.js.map +1 -1
  9. package/dist/permissions/PermissionInterceptor.js +1 -1
  10. package/dist/permissions/PermissionInterceptor.js.map +1 -1
  11. package/dist/skills/defaults/accessibility/screen-reader-testing.md +545 -0
  12. package/dist/skills/defaults/accessibility/wcag-audit-patterns.md +555 -0
  13. package/dist/skills/defaults/ai-ml/rag.md +276 -0
  14. package/dist/skills/defaults/backend-development/api-design-principles.md +528 -0
  15. package/dist/skills/defaults/backend-development/api-design.md +285 -0
  16. package/dist/skills/defaults/backend-development/architecture-patterns.md +494 -0
  17. package/dist/skills/defaults/backend-development/async-python.md +237 -0
  18. package/dist/skills/defaults/backend-development/auth-implementation-patterns.md +638 -0
  19. package/dist/skills/defaults/backend-development/bazel-build-optimization.md +387 -0
  20. package/dist/skills/defaults/backend-development/billing-automation/SKILL.md +566 -0
  21. package/dist/skills/defaults/backend-development/code-review-excellence.md +538 -0
  22. package/dist/skills/defaults/backend-development/cqrs-implementation.md +554 -0
  23. package/dist/skills/defaults/backend-development/database-design.md +305 -0
  24. package/dist/skills/defaults/backend-development/debugging-strategies.md +536 -0
  25. package/dist/skills/defaults/backend-development/e2e-testing-patterns.md +544 -0
  26. package/dist/skills/defaults/backend-development/error-handling-patterns.md +641 -0
  27. package/dist/skills/defaults/backend-development/fastapi-templates.md +559 -0
  28. package/dist/skills/defaults/backend-development/fastapi.md +309 -0
  29. package/dist/skills/defaults/backend-development/git-advanced-workflows.md +405 -0
  30. package/dist/skills/defaults/backend-development/microservices-patterns.md +595 -0
  31. package/dist/skills/defaults/backend-development/microservices.md +284 -0
  32. package/dist/skills/defaults/backend-development/monorepo-management.md +623 -0
  33. package/dist/skills/defaults/backend-development/nodejs-backend-patterns.md +1048 -0
  34. package/dist/skills/defaults/backend-development/nx-workspace-patterns.md +457 -0
  35. package/dist/skills/defaults/backend-development/paypal-integration/SKILL.md +478 -0
  36. package/dist/skills/defaults/backend-development/pci-compliance/SKILL.md +480 -0
  37. package/dist/skills/defaults/backend-development/python-anti-patterns.md +349 -0
  38. package/dist/skills/defaults/backend-development/python-background-jobs.md +364 -0
  39. package/dist/skills/defaults/backend-development/python-code-style.md +360 -0
  40. package/dist/skills/defaults/backend-development/python-configuration.md +368 -0
  41. package/dist/skills/defaults/backend-development/python-design-patterns.md +296 -0
  42. package/dist/skills/defaults/backend-development/python-error-handling.md +323 -0
  43. package/dist/skills/defaults/backend-development/python-packaging.md +887 -0
  44. package/dist/skills/defaults/backend-development/python-performance-optimization.md +874 -0
  45. package/dist/skills/defaults/backend-development/python-project-structure.md +252 -0
  46. package/dist/skills/defaults/backend-development/python-resilience.md +376 -0
  47. package/dist/skills/defaults/backend-development/python-resource-management.md +421 -0
  48. package/dist/skills/defaults/backend-development/python-type-safety.md +428 -0
  49. package/dist/skills/defaults/backend-development/sql-optimization-patterns.md +509 -0
  50. package/dist/skills/defaults/backend-development/stripe-integration/SKILL.md +522 -0
  51. package/dist/skills/defaults/backend-development/turborepo-caching.md +376 -0
  52. package/dist/skills/defaults/blockchain/defi-protocol-templates.md +430 -0
  53. package/dist/skills/defaults/blockchain/nft-standards.md +364 -0
  54. package/dist/skills/defaults/blockchain/solidity-security.md +514 -0
  55. package/dist/skills/defaults/blockchain/web3-testing.md +360 -0
  56. package/dist/skills/defaults/business/competitive-landscape/SKILL.md +527 -0
  57. package/dist/skills/defaults/business/market-sizing-analysis/SKILL.md +451 -0
  58. package/dist/skills/defaults/business/startup-financial-modeling/SKILL.md +494 -0
  59. package/dist/skills/defaults/business/startup-metrics-framework/SKILL.md +564 -0
  60. package/dist/skills/defaults/business/team-composition-analysis.md +437 -0
  61. package/dist/skills/defaults/compliance/employment-contract-templates/SKILL.md +527 -0
  62. package/dist/skills/defaults/compliance/gdpr-data-handling/SKILL.md +630 -0
  63. package/dist/skills/defaults/data-engineering/airflow-dag-patterns.md +436 -0
  64. package/dist/skills/defaults/data-engineering/airflow.md +519 -0
  65. package/dist/skills/defaults/data-engineering/data-quality.md +583 -0
  66. package/dist/skills/defaults/data-engineering/dbt-transformation-patterns.md +482 -0
  67. package/dist/skills/defaults/data-engineering/dbt.md +556 -0
  68. package/dist/skills/defaults/data-engineering/ml-pipeline-workflow/SKILL.md +247 -0
  69. package/dist/skills/defaults/data-engineering/spark-optimization.md +348 -0
  70. package/dist/skills/defaults/data-engineering/spark.md +411 -0
  71. package/dist/skills/defaults/database/postgresql.md +202 -0
  72. package/dist/skills/defaults/debugging/systematic-debugging.md +249 -0
  73. package/dist/skills/defaults/devops/architecture-decision-records.md +448 -0
  74. package/dist/skills/defaults/devops/changelog-automation.md +580 -0
  75. package/dist/skills/defaults/devops/cicd.md +314 -0
  76. package/dist/skills/defaults/devops/cloud.md +263 -0
  77. package/dist/skills/defaults/devops/code-review-excellence.md +299 -0
  78. package/dist/skills/defaults/devops/cost-optimization.md +295 -0
  79. package/dist/skills/defaults/devops/deployment-pipeline-design.md +356 -0
  80. package/dist/skills/defaults/devops/docker.md +281 -0
  81. package/dist/skills/defaults/devops/git-workflows.md +205 -0
  82. package/dist/skills/defaults/devops/github-actions.md +311 -0
  83. package/dist/skills/defaults/devops/gitlab-ci-patterns.md +266 -0
  84. package/dist/skills/defaults/devops/hybrid-cloud-networking.md +241 -0
  85. package/dist/skills/defaults/devops/istio-traffic-management.md +327 -0
  86. package/dist/skills/defaults/devops/kubernetes.md +339 -0
  87. package/dist/skills/defaults/devops/linkerd-patterns.md +311 -0
  88. package/dist/skills/defaults/devops/multi-cloud-architecture.md +181 -0
  89. package/dist/skills/defaults/devops/observability.md +243 -0
  90. package/dist/skills/defaults/devops/openapi-spec-generation.md +1024 -0
  91. package/dist/skills/defaults/devops/postmortem-writing.md +396 -0
  92. package/dist/skills/defaults/devops/prometheus-configuration.md +265 -0
  93. package/dist/skills/defaults/devops/secrets-management.md +341 -0
  94. package/dist/skills/defaults/devops/service-mesh-observability.md +385 -0
  95. package/dist/skills/defaults/devops/terraform-module-library.md +244 -0
  96. package/dist/skills/defaults/finance/backtesting-frameworks/SKILL.md +663 -0
  97. package/dist/skills/defaults/finance/risk-metrics-calculation/SKILL.md +557 -0
  98. package/dist/skills/defaults/frontend/accessibility-compliance.md +420 -0
  99. package/dist/skills/defaults/frontend/design-system-patterns.md +337 -0
  100. package/dist/skills/defaults/frontend/interaction-design.md +327 -0
  101. package/dist/skills/defaults/frontend/javascript.md +311 -0
  102. package/dist/skills/defaults/frontend/modern-javascript-patterns.md +927 -0
  103. package/dist/skills/defaults/frontend/react-native-design.md +440 -0
  104. package/dist/skills/defaults/frontend/react.md +345 -0
  105. package/dist/skills/defaults/frontend/responsive-design.md +472 -0
  106. package/dist/skills/defaults/frontend/tailwind-design-system.md +337 -0
  107. package/dist/skills/defaults/frontend/typescript-advanced-types.md +724 -0
  108. package/dist/skills/defaults/frontend/typescript.md +334 -0
  109. package/dist/skills/defaults/frontend/visual-design-foundations.md +326 -0
  110. package/dist/skills/defaults/frontend/web-component-design.md +279 -0
  111. package/dist/skills/defaults/game-development/godot-gdscript-patterns.md +188 -0
  112. package/dist/skills/defaults/game-development/unity-ecs-patterns.md +594 -0
  113. package/dist/skills/defaults/kubernetes/gitops-workflow.md +285 -0
  114. package/dist/skills/defaults/kubernetes/gitops.md +280 -0
  115. package/dist/skills/defaults/kubernetes/helm-chart-scaffolding.md +553 -0
  116. package/dist/skills/defaults/kubernetes/helm.md +343 -0
  117. package/dist/skills/defaults/kubernetes/k8s-manifest-generator.md +501 -0
  118. package/dist/skills/defaults/kubernetes/k8s-security-policies.md +342 -0
  119. package/dist/skills/defaults/kubernetes/manifests.md +330 -0
  120. package/dist/skills/defaults/kubernetes/security.md +337 -0
  121. package/dist/skills/defaults/llm-application/embedding-strategies.md +608 -0
  122. package/dist/skills/defaults/llm-application/hybrid-search-implementation.md +570 -0
  123. package/dist/skills/defaults/llm-application/hybrid-search.md +570 -0
  124. package/dist/skills/defaults/llm-application/langchain-architecture.md +666 -0
  125. package/dist/skills/defaults/llm-application/langchain.md +259 -0
  126. package/dist/skills/defaults/llm-application/llm-evaluation.md +695 -0
  127. package/dist/skills/defaults/llm-application/prompt-engineering-patterns.md +449 -0
  128. package/dist/skills/defaults/llm-application/prompt-engineering.md +219 -0
  129. package/dist/skills/defaults/llm-application/rag-implementation.md +434 -0
  130. package/dist/skills/defaults/llm-application/similarity-search-patterns.md +560 -0
  131. package/dist/skills/defaults/llm-application/similarity-search.md +560 -0
  132. package/dist/skills/defaults/llm-application/vector-index-tuning.md +523 -0
  133. package/dist/skills/defaults/mobile/mobile-android-design.md +440 -0
  134. package/dist/skills/defaults/mobile/mobile-ios-design.md +266 -0
  135. package/dist/skills/defaults/monitoring/distributed-tracing.md +436 -0
  136. package/dist/skills/defaults/monitoring/grafana-dashboards.md +370 -0
  137. package/dist/skills/defaults/monitoring/prometheus-configuration.md +379 -0
  138. package/dist/skills/defaults/monitoring/slo-implementation.md +323 -0
  139. package/dist/skills/defaults/refactoring/code-refactoring.md +349 -0
  140. package/dist/skills/defaults/security/anti-reversing-techniques/SKILL.md +559 -0
  141. package/dist/skills/defaults/security/auditor.md +168 -0
  142. package/dist/skills/defaults/security/binary-analysis-patterns/SKILL.md +438 -0
  143. package/dist/skills/defaults/security/memory-forensics/SKILL.md +483 -0
  144. package/dist/skills/defaults/security/mtls-configuration.md +349 -0
  145. package/dist/skills/defaults/security/protocol-reverse-engineering/SKILL.md +520 -0
  146. package/dist/skills/defaults/security/sast-configuration.md +182 -0
  147. package/dist/skills/defaults/security/security.md +313 -0
  148. package/dist/skills/defaults/security/stride-analysis.md +273 -0
  149. package/dist/skills/defaults/security/threat-mitigation-mapping.md +290 -0
  150. package/dist/skills/defaults/systems/bash-defensive-patterns/SKILL.md +539 -0
  151. package/dist/skills/defaults/systems/bats-testing-patterns/SKILL.md +631 -0
  152. package/dist/skills/defaults/systems/go-concurrency-patterns.md +657 -0
  153. package/dist/skills/defaults/systems/memory-safety-patterns.md +605 -0
  154. package/dist/skills/defaults/systems/rust-async-patterns.md +519 -0
  155. package/dist/skills/defaults/systems/shellcheck-configuration/SKILL.md +456 -0
  156. package/dist/skills/defaults/team-collaboration/multi-reviewer-patterns.md +126 -0
  157. package/dist/skills/defaults/team-collaboration/parallel-feature-development.md +151 -0
  158. package/dist/skills/defaults/testing/javascript-testing-patterns.md +1021 -0
  159. package/dist/skills/defaults/testing/python-testing-patterns.md +351 -0
  160. package/dist/skills/defaults/testing/testing.md +332 -0
  161. package/dist/skills/defaults/workflows/context-driven-development.md +384 -0
  162. package/dist/skills/defaults/workflows/track-management.md +592 -0
  163. package/dist/skills/defaults/workflows/workflow-patterns.md +622 -0
  164. package/dist/skills/index.d.ts +11 -0
  165. package/dist/skills/index.d.ts.map +1 -0
  166. package/dist/skills/index.js +129 -0
  167. package/dist/skills/index.js.map +1 -0
  168. package/dist/utils/character.js +6 -9
  169. package/dist/utils/character.js.map +1 -1
  170. package/dist/utils/contextManager.js +3 -7
  171. package/dist/utils/contextManager.js.map +1 -1
  172. package/dist/utils/inputbar.d.ts.map +1 -1
  173. package/dist/utils/inputbar.js +8 -1
  174. package/dist/utils/inputbar.js.map +1 -1
  175. package/dist/utils/output.d.ts.map +1 -1
  176. package/dist/utils/output.js +3 -35
  177. package/dist/utils/output.js.map +1 -1
  178. package/package.json +1 -1
@@ -0,0 +1,342 @@
1
+ ---
2
+ name: k8s-security-policies
3
+ description: Implement Kubernetes security policies including NetworkPolicy, PodSecurityPolicy, and RBAC for production-grade security. Use when securing Kubernetes clusters, implementing network isolation, or enforcing pod security standards.
4
+ ---
5
+
6
+ # Kubernetes Security Policies
7
+
8
+ Comprehensive guide for implementing NetworkPolicy, PodSecurityPolicy, RBAC, and Pod Security Standards in Kubernetes.
9
+
10
+ ## Purpose
11
+
12
+ Implement defense-in-depth security for Kubernetes clusters using network policies, pod security standards, and RBAC.
13
+
14
+ ## When to Use This Skill
15
+
16
+ - Implement network segmentation
17
+ - Configure pod security standards
18
+ - Set up RBAC for least-privilege access
19
+ - Create security policies for compliance
20
+ - Implement admission control
21
+ - Secure multi-tenant clusters
22
+
23
+ ## Pod Security Standards
24
+
25
+ ### 1. Privileged (Unrestricted)
26
+
27
+ ```yaml
28
+ apiVersion: v1
29
+ kind: Namespace
30
+ metadata:
31
+ name: privileged-ns
32
+ labels:
33
+ pod-security.kubernetes.io/enforce: privileged
34
+ pod-security.kubernetes.io/audit: privileged
35
+ pod-security.kubernetes.io/warn: privileged
36
+ ```
37
+
38
+ ### 2. Baseline (Minimally restrictive)
39
+
40
+ ```yaml
41
+ apiVersion: v1
42
+ kind: Namespace
43
+ metadata:
44
+ name: baseline-ns
45
+ labels:
46
+ pod-security.kubernetes.io/enforce: baseline
47
+ pod-security.kubernetes.io/audit: baseline
48
+ pod-security.kubernetes.io/warn: baseline
49
+ ```
50
+
51
+ ### 3. Restricted (Most restrictive)
52
+
53
+ ```yaml
54
+ apiVersion: v1
55
+ kind: Namespace
56
+ metadata:
57
+ name: restricted-ns
58
+ labels:
59
+ pod-security.kubernetes.io/enforce: restricted
60
+ pod-security.kubernetes.io/audit: restricted
61
+ pod-security.kubernetes.io/warn: restricted
62
+ ```
63
+
64
+ ## Network Policies
65
+
66
+ ### Default Deny All
67
+
68
+ ```yaml
69
+ apiVersion: networking.k8s.io/v1
70
+ kind: NetworkPolicy
71
+ metadata:
72
+ name: default-deny-all
73
+ namespace: production
74
+ spec:
75
+ podSelector: {}
76
+ policyTypes:
77
+ - Ingress
78
+ - Egress
79
+ ```
80
+
81
+ ### Allow Frontend to Backend
82
+
83
+ ```yaml
84
+ apiVersion: networking.k8s.io/v1
85
+ kind: NetworkPolicy
86
+ metadata:
87
+ name: allow-frontend-to-backend
88
+ namespace: production
89
+ spec:
90
+ podSelector:
91
+ matchLabels:
92
+ app: backend
93
+ policyTypes:
94
+ - Ingress
95
+ ingress:
96
+ - from:
97
+ - podSelector:
98
+ matchLabels:
99
+ app: frontend
100
+ ports:
101
+ - protocol: TCP
102
+ port: 8080
103
+ ```
104
+
105
+ ### Allow DNS
106
+
107
+ ```yaml
108
+ apiVersion: networking.k8s.io/v1
109
+ kind: NetworkPolicy
110
+ metadata:
111
+ name: allow-dns
112
+ namespace: production
113
+ spec:
114
+ podSelector: {}
115
+ policyTypes:
116
+ - Egress
117
+ egress:
118
+ - to:
119
+ - namespaceSelector:
120
+ matchLabels:
121
+ name: kube-system
122
+ ports:
123
+ - protocol: UDP
124
+ port: 53
125
+ ```
126
+
127
+ ## RBAC Configuration
128
+
129
+ ### Role (Namespace-scoped)
130
+
131
+ ```yaml
132
+ apiVersion: rbac.authorization.k8s.io/v1
133
+ kind: Role
134
+ metadata:
135
+ name: pod-reader
136
+ namespace: production
137
+ rules:
138
+ - apiGroups: [""]
139
+ resources: ["pods"]
140
+ verbs: ["get", "watch", "list"]
141
+ ```
142
+
143
+ ### ClusterRole (Cluster-wide)
144
+
145
+ ```yaml
146
+ apiVersion: rbac.authorization.k8s.io/v1
147
+ kind: ClusterRole
148
+ metadata:
149
+ name: secret-reader
150
+ rules:
151
+ - apiGroups: [""]
152
+ resources: ["secrets"]
153
+ verbs: ["get", "watch", "list"]
154
+ ```
155
+
156
+ ### RoleBinding
157
+
158
+ ```yaml
159
+ apiVersion: rbac.authorization.k8s.io/v1
160
+ kind: RoleBinding
161
+ metadata:
162
+ name: read-pods
163
+ namespace: production
164
+ subjects:
165
+ - kind: User
166
+ name: jane
167
+ apiGroup: rbac.authorization.k8s.io
168
+ - kind: ServiceAccount
169
+ name: default
170
+ namespace: production
171
+ roleRef:
172
+ kind: Role
173
+ name: pod-reader
174
+ apiGroup: rbac.authorization.k8s.io
175
+ ```
176
+
177
+ ## Pod Security Context
178
+
179
+ ### Restricted Pod
180
+
181
+ ```yaml
182
+ apiVersion: v1
183
+ kind: Pod
184
+ metadata:
185
+ name: secure-pod
186
+ spec:
187
+ securityContext:
188
+ runAsNonRoot: true
189
+ runAsUser: 1000
190
+ fsGroup: 1000
191
+ seccompProfile:
192
+ type: RuntimeDefault
193
+ containers:
194
+ - name: app
195
+ image: myapp:1.0
196
+ securityContext:
197
+ allowPrivilegeEscalation: false
198
+ readOnlyRootFilesystem: true
199
+ capabilities:
200
+ drop:
201
+ - ALL
202
+ ```
203
+
204
+ ## Policy Enforcement with OPA Gatekeeper
205
+
206
+ ### ConstraintTemplate
207
+
208
+ ```yaml
209
+ apiVersion: templates.gatekeeper.sh/v1
210
+ kind: ConstraintTemplate
211
+ metadata:
212
+ name: k8srequiredlabels
213
+ spec:
214
+ crd:
215
+ spec:
216
+ names:
217
+ kind: K8sRequiredLabels
218
+ validation:
219
+ openAPIV3Schema:
220
+ type: object
221
+ properties:
222
+ labels:
223
+ type: array
224
+ items:
225
+ type: string
226
+ targets:
227
+ - target: admission.k8s.gatekeeper.sh
228
+ rego: |
229
+ package k8srequiredlabels
230
+ violation[{"msg": msg, "details": {"missing_labels": missing}}] {
231
+ provided := {label | input.review.object.metadata.labels[label]}
232
+ required := {label | label := input.parameters.labels[_]}
233
+ missing := required - provided
234
+ count(missing) > 0
235
+ msg := sprintf("missing required labels: %v", [missing])
236
+ }
237
+ ```
238
+
239
+ ### Constraint
240
+
241
+ ```yaml
242
+ apiVersion: constraints.gatekeeper.sh/v1beta1
243
+ kind: K8sRequiredLabels
244
+ metadata:
245
+ name: require-app-label
246
+ spec:
247
+ match:
248
+ kinds:
249
+ - apiGroups: ["apps"]
250
+ kinds: ["Deployment"]
251
+ parameters:
252
+ labels: ["app", "environment"]
253
+ ```
254
+
255
+ ## Service Mesh Security (Istio)
256
+
257
+ ### PeerAuthentication (mTLS)
258
+
259
+ ```yaml
260
+ apiVersion: security.istio.io/v1beta1
261
+ kind: PeerAuthentication
262
+ metadata:
263
+ name: default
264
+ namespace: production
265
+ spec:
266
+ mtls:
267
+ mode: STRICT
268
+ ```
269
+
270
+ ### AuthorizationPolicy
271
+
272
+ ```yaml
273
+ apiVersion: security.istio.io/v1beta1
274
+ kind: AuthorizationPolicy
275
+ metadata:
276
+ name: allow-frontend
277
+ namespace: production
278
+ spec:
279
+ selector:
280
+ matchLabels:
281
+ app: backend
282
+ action: ALLOW
283
+ rules:
284
+ - from:
285
+ - source:
286
+ principals: ["cluster.local/ns/production/sa/frontend"]
287
+ ```
288
+
289
+ ## Best Practices
290
+
291
+ 1. **Implement Pod Security Standards** at namespace level
292
+ 2. **Use Network Policies** for network segmentation
293
+ 3. **Apply least-privilege RBAC** for all service accounts
294
+ 4. **Enable admission control** (OPA Gatekeeper/Kyverno)
295
+ 5. **Run containers as non-root**
296
+ 6. **Use read-only root filesystem**
297
+ 7. **Drop all capabilities** unless needed
298
+ 8. **Implement resource quotas** and limit ranges
299
+ 9. **Enable audit logging** for security events
300
+ 10. **Regular security scanning** of images
301
+
302
+ ## Compliance Frameworks
303
+
304
+ ### CIS Kubernetes Benchmark
305
+
306
+ - Use RBAC authorization
307
+ - Enable audit logging
308
+ - Use Pod Security Standards
309
+ - Configure network policies
310
+ - Implement secrets encryption at rest
311
+ - Enable node authentication
312
+
313
+ ### NIST Cybersecurity Framework
314
+
315
+ - Implement defense in depth
316
+ - Use network segmentation
317
+ - Configure security monitoring
318
+ - Implement access controls
319
+ - Enable logging and monitoring
320
+
321
+ ## Troubleshooting
322
+
323
+ **NetworkPolicy not working:**
324
+
325
+ ```bash
326
+ # Check if CNI supports NetworkPolicy
327
+ kubectl get nodes -o wide
328
+ kubectl describe networkpolicy <name>
329
+ ```
330
+
331
+ **RBAC permission denied:**
332
+
333
+ ```bash
334
+ # Check effective permissions
335
+ kubectl auth can-i list pods --as system:serviceaccount:default:my-sa
336
+ kubectl auth can-i '*' '*' --as system:serviceaccount:default:my-sa
337
+ ```
338
+
339
+ ## Related Skills
340
+
341
+ - `k8s-manifest-generator` - For creating secure manifests
342
+ - `gitops-workflow` - For automated policy deployment
@@ -0,0 +1,330 @@
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
+ ## When to Use This Skill
11
+
12
+ - Create new Kubernetes Deployment manifests
13
+ - Define Service resources for network connectivity
14
+ - Generate ConfigMap and Secret resources for configuration management
15
+ - Create PersistentVolumeClaim manifests for stateful workloads
16
+ - Follow Kubernetes best practices and naming conventions
17
+ - Implement resource limits, health checks, and security contexts
18
+ - Design manifests for multi-environment deployments
19
+
20
+ ## Step-by-Step Workflow
21
+
22
+ ### 1. Gather Requirements
23
+
24
+ - Application type (stateless/stateful)
25
+ - Container image and version
26
+ - Environment variables and configuration needs
27
+ - Storage requirements
28
+ - Network exposure requirements (internal/external)
29
+ - Resource requirements (CPU, memory)
30
+ - Scaling requirements
31
+ - Health check endpoints
32
+
33
+ ### 2. Create Deployment Manifest
34
+
35
+ ```yaml
36
+ apiVersion: apps/v1
37
+ kind: Deployment
38
+ metadata:
39
+ name: my-app
40
+ namespace: production
41
+ labels:
42
+ app: my-app
43
+ version: v1
44
+ spec:
45
+ replicas: 3
46
+ selector:
47
+ matchLabels:
48
+ app: my-app
49
+ template:
50
+ metadata:
51
+ labels:
52
+ app: my-app
53
+ version: v1
54
+ spec:
55
+ containers:
56
+ - name: app
57
+ image: myapp:1.0.0
58
+ ports:
59
+ - containerPort: 8080
60
+ name: http
61
+ resources:
62
+ requests:
63
+ memory: "256Mi"
64
+ cpu: "250m"
65
+ limits:
66
+ memory: "512Mi"
67
+ cpu: "500m"
68
+ livenessProbe:
69
+ httpGet:
70
+ path: /health
71
+ port: http
72
+ initialDelaySeconds: 30
73
+ periodSeconds: 10
74
+ readinessProbe:
75
+ httpGet:
76
+ path: /ready
77
+ port: http
78
+ initialDelaySeconds: 5
79
+ periodSeconds: 5
80
+ env:
81
+ - name: ENV_VAR
82
+ value: "value"
83
+ envFrom:
84
+ - configMapRef:
85
+ name: my-app-config
86
+ - secretRef:
87
+ name: my-app-secret
88
+ ```
89
+
90
+ **Best practices:**
91
+ - Always set resource requests and limits
92
+ - Implement both liveness and readiness probes
93
+ - Use specific image tags (never `:latest`)
94
+ - Apply security context for non-root users
95
+ - Use labels for organization and selection
96
+
97
+ ### 3. Create Service Manifest
98
+
99
+ **ClusterIP (internal only):**
100
+
101
+ ```yaml
102
+ apiVersion: v1
103
+ kind: Service
104
+ metadata:
105
+ name: my-app
106
+ namespace: production
107
+ labels:
108
+ app: my-app
109
+ spec:
110
+ type: ClusterIP
111
+ selector:
112
+ app: my-app
113
+ ports:
114
+ - name: http
115
+ port: 80
116
+ targetPort: 8080
117
+ protocol: TCP
118
+ ```
119
+
120
+ **LoadBalancer (external access):**
121
+
122
+ ```yaml
123
+ apiVersion: v1
124
+ kind: Service
125
+ metadata:
126
+ name: my-app
127
+ namespace: production
128
+ labels:
129
+ app: my-app
130
+ annotations:
131
+ service.beta.kubernetes.io/aws-load-balancer-type: nlb
132
+ spec:
133
+ type: LoadBalancer
134
+ selector:
135
+ app: my-app
136
+ ports:
137
+ - name: http
138
+ port: 80
139
+ targetPort: 8080
140
+ protocol: TCP
141
+ ```
142
+
143
+ ### 4. Create ConfigMap
144
+
145
+ ```yaml
146
+ apiVersion: v1
147
+ kind: ConfigMap
148
+ metadata:
149
+ name: my-app-config
150
+ namespace: production
151
+ data:
152
+ APP_MODE: production
153
+ LOG_LEVEL: info
154
+ DATABASE_HOST: db.example.com
155
+ app.properties: |
156
+ server.port=8080
157
+ server.host=0.0.0.0
158
+ logging.level=INFO
159
+ ```
160
+
161
+ ### 5. Create Secret
162
+
163
+ ```yaml
164
+ apiVersion: v1
165
+ kind: Secret
166
+ metadata:
167
+ name: my-app-secret
168
+ namespace: production
169
+ type: Opaque
170
+ stringData:
171
+ DATABASE_PASSWORD: "changeme"
172
+ API_KEY: "secret-api-key"
173
+ ```
174
+
175
+ **Security considerations:**
176
+ - Never commit secrets to Git in plain text
177
+ - Use Sealed Secrets, External Secrets Operator, or Vault
178
+ - Rotate secrets regularly
179
+ - Use RBAC to limit secret access
180
+
181
+ ### 6. Create PersistentVolumeClaim
182
+
183
+ ```yaml
184
+ apiVersion: v1
185
+ kind: PersistentVolumeClaim
186
+ metadata:
187
+ name: my-app-data
188
+ namespace: production
189
+ spec:
190
+ accessModes:
191
+ - ReadWriteOnce
192
+ storageClassName: gp3
193
+ resources:
194
+ requests:
195
+ storage: 10Gi
196
+ ```
197
+
198
+ ### 7. Apply Security Best Practices
199
+
200
+ ```yaml
201
+ spec:
202
+ template:
203
+ spec:
204
+ securityContext:
205
+ runAsNonRoot: true
206
+ runAsUser: 1000
207
+ fsGroup: 1000
208
+ seccompProfile:
209
+ type: RuntimeDefault
210
+ containers:
211
+ - name: app
212
+ securityContext:
213
+ allowPrivilegeEscalation: false
214
+ readOnlyRootFilesystem: true
215
+ capabilities:
216
+ drop:
217
+ - ALL
218
+ ```
219
+
220
+ **Security checklist:**
221
+ - [ ] Run as non-root user
222
+ - [ ] Drop all capabilities
223
+ - [ ] Use read-only root filesystem
224
+ - [ ] Disable privilege escalation
225
+ - [ ] Set seccomp profile
226
+
227
+ ### 8. Add Labels and Annotations
228
+
229
+ ```yaml
230
+ metadata:
231
+ labels:
232
+ app.kubernetes.io/name: my-app
233
+ app.kubernetes.io/instance: production
234
+ app.kubernetes.io/version: "1.0.0"
235
+ app.kubernetes.io/component: backend
236
+ app.kubernetes.io/part-of: my-system
237
+ app.kubernetes.io/managed-by: kubectl
238
+ annotations:
239
+ description: "Application description"
240
+ contact: "team@example.com"
241
+ prometheus.io/scrape: "true"
242
+ prometheus.io/port: "9090"
243
+ ```
244
+
245
+ ### 9. Organize Multi-Resource Manifests
246
+
247
+ **Single file with `---` separator:**
248
+
249
+ ```yaml
250
+ # app.yaml
251
+ ---
252
+ apiVersion: v1
253
+ kind: ConfigMap
254
+ metadata:
255
+ name: my-app-config
256
+ data:
257
+ APP_MODE: production
258
+ ---
259
+ apiVersion: v1
260
+ kind: Secret
261
+ metadata:
262
+ name: my-app-secret
263
+ type: Opaque
264
+ stringData:
265
+ API_KEY: "secret"
266
+ ---
267
+ apiVersion: apps/v1
268
+ kind: Deployment
269
+ # ...
270
+ ---
271
+ apiVersion: v1
272
+ kind: Service
273
+ # ...
274
+ ```
275
+
276
+ ### 10. Validate and Test
277
+
278
+ ```bash
279
+ # Dry-run validation
280
+ kubectl apply -f manifest.yaml --dry-run=client
281
+
282
+ # Server-side validation
283
+ kubectl apply -f manifest.yaml --dry-run=server
284
+
285
+ # Validate with kube-linter
286
+ kube-linter lint manifest.yaml
287
+ ```
288
+
289
+ ## Common Patterns
290
+
291
+ ### Pattern 1: Simple Stateless Web Application
292
+
293
+ - Deployment (3 replicas for HA)
294
+ - ClusterIP Service
295
+ - ConfigMap for configuration
296
+ - Secret for API keys
297
+
298
+ ### Pattern 2: Stateful Database Application
299
+
300
+ - StatefulSet (not Deployment)
301
+ - Headless Service
302
+ - PersistentVolumeClaim template
303
+ - ConfigMap for DB configuration
304
+ - Secret for credentials
305
+
306
+ ### Pattern 3: Background Job or CronJob
307
+
308
+ - CronJob or Job
309
+ - ConfigMap for job parameters
310
+ - Secret for credentials
311
+ - ServiceAccount with RBAC
312
+
313
+ ### Pattern 4: Multi-Container Pod
314
+
315
+ - Deployment with multiple containers
316
+ - Shared volumes between containers
317
+ - Init containers for setup
318
+
319
+ ## Best Practices Summary
320
+
321
+ 1. **Always set resource requests and limits** - Prevents resource starvation
322
+ 2. **Implement health checks** - Ensures Kubernetes can manage your application
323
+ 3. **Use specific image tags** - Avoid unpredictable deployments
324
+ 4. **Apply security contexts** - Run as non-root, drop capabilities
325
+ 5. **Use ConfigMaps and Secrets** - Separate config from code
326
+ 6. **Label everything** - Enables filtering and organization
327
+ 7. **Follow naming conventions** - Use standard Kubernetes labels
328
+ 8. **Validate before applying** - Use dry-run and validation tools
329
+ 9. **Version your manifests** - Keep in Git with version control
330
+ 10. **Document with annotations** - Add context for other developers