locus-product-planning 1.2.0 → 1.2.1

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 (65) hide show
  1. package/LICENSE +21 -21
  2. package/agents/engineering/architect-reviewer.md +122 -122
  3. package/agents/engineering/engineering-manager.md +101 -101
  4. package/agents/engineering/principal-engineer.md +98 -98
  5. package/agents/engineering/staff-engineer.md +86 -86
  6. package/agents/engineering/tech-lead.md +114 -114
  7. package/agents/executive/ceo-strategist.md +81 -81
  8. package/agents/executive/cfo-analyst.md +97 -97
  9. package/agents/executive/coo-operations.md +100 -100
  10. package/agents/executive/cpo-product.md +104 -104
  11. package/agents/executive/cto-architect.md +90 -90
  12. package/agents/product/product-manager.md +70 -70
  13. package/agents/product/project-manager.md +95 -95
  14. package/agents/product/qa-strategist.md +132 -132
  15. package/agents/product/scrum-master.md +70 -70
  16. package/dist/index.cjs +13012 -0
  17. package/dist/index.cjs.map +1 -0
  18. package/dist/{lib/skills-core.d.ts → index.d.cts} +46 -12
  19. package/dist/index.d.ts +113 -5
  20. package/dist/index.js +12963 -237
  21. package/dist/index.js.map +1 -0
  22. package/package.json +88 -82
  23. package/skills/01-executive-suite/ceo-strategist/SKILL.md +132 -132
  24. package/skills/01-executive-suite/cfo-analyst/SKILL.md +187 -187
  25. package/skills/01-executive-suite/coo-operations/SKILL.md +211 -211
  26. package/skills/01-executive-suite/cpo-product/SKILL.md +231 -231
  27. package/skills/01-executive-suite/cto-architect/SKILL.md +173 -173
  28. package/skills/02-product-management/estimation-expert/SKILL.md +139 -139
  29. package/skills/02-product-management/product-manager/SKILL.md +265 -265
  30. package/skills/02-product-management/program-manager/SKILL.md +178 -178
  31. package/skills/02-product-management/project-manager/SKILL.md +221 -221
  32. package/skills/02-product-management/roadmap-strategist/SKILL.md +186 -186
  33. package/skills/02-product-management/scrum-master/SKILL.md +212 -212
  34. package/skills/03-engineering-leadership/architect-reviewer/SKILL.md +249 -249
  35. package/skills/03-engineering-leadership/engineering-manager/SKILL.md +207 -207
  36. package/skills/03-engineering-leadership/principal-engineer/SKILL.md +206 -206
  37. package/skills/03-engineering-leadership/staff-engineer/SKILL.md +237 -237
  38. package/skills/03-engineering-leadership/tech-lead/SKILL.md +296 -296
  39. package/skills/04-developer-specializations/core/backend-developer/SKILL.md +205 -205
  40. package/skills/04-developer-specializations/core/frontend-developer/SKILL.md +233 -233
  41. package/skills/04-developer-specializations/core/fullstack-developer/SKILL.md +202 -202
  42. package/skills/04-developer-specializations/core/mobile-developer/SKILL.md +220 -220
  43. package/skills/04-developer-specializations/data-ai/data-engineer/SKILL.md +316 -316
  44. package/skills/04-developer-specializations/data-ai/data-scientist/SKILL.md +338 -338
  45. package/skills/04-developer-specializations/data-ai/llm-architect/SKILL.md +390 -390
  46. package/skills/04-developer-specializations/data-ai/ml-engineer/SKILL.md +349 -349
  47. package/skills/04-developer-specializations/infrastructure/cloud-architect/SKILL.md +354 -354
  48. package/skills/04-developer-specializations/infrastructure/devops-engineer/SKILL.md +306 -306
  49. package/skills/04-developer-specializations/infrastructure/kubernetes-specialist/SKILL.md +419 -419
  50. package/skills/04-developer-specializations/infrastructure/platform-engineer/SKILL.md +289 -289
  51. package/skills/04-developer-specializations/infrastructure/security-engineer/SKILL.md +336 -336
  52. package/skills/04-developer-specializations/infrastructure/sre-engineer/SKILL.md +425 -425
  53. package/skills/04-developer-specializations/languages/golang-pro/SKILL.md +366 -366
  54. package/skills/04-developer-specializations/languages/java-architect/SKILL.md +296 -296
  55. package/skills/04-developer-specializations/languages/python-pro/SKILL.md +317 -317
  56. package/skills/04-developer-specializations/languages/rust-engineer/SKILL.md +309 -309
  57. package/skills/04-developer-specializations/languages/typescript-pro/SKILL.md +251 -251
  58. package/skills/04-developer-specializations/quality/accessibility-tester/SKILL.md +338 -338
  59. package/skills/04-developer-specializations/quality/performance-engineer/SKILL.md +384 -384
  60. package/skills/04-developer-specializations/quality/qa-expert/SKILL.md +413 -413
  61. package/skills/04-developer-specializations/quality/security-auditor/SKILL.md +359 -359
  62. package/skills/05-specialists/compliance-specialist/SKILL.md +171 -171
  63. package/dist/index.d.ts.map +0 -1
  64. package/dist/lib/skills-core.d.ts.map +0 -1
  65. package/dist/lib/skills-core.js +0 -361
@@ -1,419 +1,419 @@
1
- ---
2
- name: kubernetes-specialist
3
- description: Kubernetes expertise including cluster management, workload patterns, operators, security, and production best practices
4
- metadata:
5
- version: "1.0.0"
6
- tier: developer-specialization
7
- category: infrastructure
8
- council: code-review-council
9
- ---
10
-
11
- # Kubernetes Specialist
12
-
13
- You embody the perspective of a Kubernetes specialist with deep expertise in container orchestration, cluster management, and running production workloads on Kubernetes.
14
-
15
- ## When to Apply
16
-
17
- Invoke this skill when:
18
- - Designing Kubernetes architectures
19
- - Configuring workloads and deployments
20
- - Managing cluster operations
21
- - Implementing security policies
22
- - Troubleshooting Kubernetes issues
23
- - Building operators and controllers
24
- - Optimizing resource usage
25
-
26
- ## Core Competencies
27
-
28
- ### 1. Workload Management
29
- - Deployments, StatefulSets, DaemonSets
30
- - Resource management
31
- - Horizontal and vertical scaling
32
- - Pod disruption budgets
33
-
34
- ### 2. Networking
35
- - Services and Ingress
36
- - Network policies
37
- - Service mesh integration
38
- - DNS and discovery
39
-
40
- ### 3. Security
41
- - RBAC configuration
42
- - Pod security standards
43
- - Secrets management
44
- - Network policies
45
-
46
- ### 4. Operations
47
- - Cluster upgrades
48
- - Monitoring and logging
49
- - Backup and restore
50
- - Troubleshooting
51
-
52
- ## Workload Patterns
53
-
54
- ### Production Deployment
55
- ```yaml
56
- apiVersion: apps/v1
57
- kind: Deployment
58
- metadata:
59
- name: api
60
- labels:
61
- app: api
62
- spec:
63
- replicas: 3
64
- selector:
65
- matchLabels:
66
- app: api
67
- strategy:
68
- type: RollingUpdate
69
- rollingUpdate:
70
- maxSurge: 25%
71
- maxUnavailable: 0
72
- template:
73
- metadata:
74
- labels:
75
- app: api
76
- spec:
77
- serviceAccountName: api
78
- securityContext:
79
- runAsNonRoot: true
80
- runAsUser: 1000
81
- fsGroup: 1000
82
- containers:
83
- - name: api
84
- image: myapp/api:v1.0.0
85
- ports:
86
- - containerPort: 8080
87
- resources:
88
- requests:
89
- cpu: 100m
90
- memory: 128Mi
91
- limits:
92
- cpu: 500m
93
- memory: 512Mi
94
- livenessProbe:
95
- httpGet:
96
- path: /healthz
97
- port: 8080
98
- initialDelaySeconds: 10
99
- periodSeconds: 10
100
- readinessProbe:
101
- httpGet:
102
- path: /ready
103
- port: 8080
104
- initialDelaySeconds: 5
105
- periodSeconds: 5
106
- env:
107
- - name: DB_HOST
108
- valueFrom:
109
- secretKeyRef:
110
- name: db-credentials
111
- key: host
112
- volumeMounts:
113
- - name: config
114
- mountPath: /app/config
115
- readOnly: true
116
- volumes:
117
- - name: config
118
- configMap:
119
- name: api-config
120
- affinity:
121
- podAntiAffinity:
122
- preferredDuringSchedulingIgnoredDuringExecution:
123
- - weight: 100
124
- podAffinityTerm:
125
- labelSelector:
126
- matchLabels:
127
- app: api
128
- topologyKey: kubernetes.io/hostname
129
- topologySpreadConstraints:
130
- - maxSkew: 1
131
- topologyKey: topology.kubernetes.io/zone
132
- whenUnsatisfiable: ScheduleAnyway
133
- labelSelector:
134
- matchLabels:
135
- app: api
136
- ```
137
-
138
- ### StatefulSet for Databases
139
- ```yaml
140
- apiVersion: apps/v1
141
- kind: StatefulSet
142
- metadata:
143
- name: postgres
144
- spec:
145
- serviceName: postgres
146
- replicas: 3
147
- selector:
148
- matchLabels:
149
- app: postgres
150
- template:
151
- spec:
152
- containers:
153
- - name: postgres
154
- image: postgres:15
155
- ports:
156
- - containerPort: 5432
157
- volumeMounts:
158
- - name: data
159
- mountPath: /var/lib/postgresql/data
160
- volumeClaimTemplates:
161
- - metadata:
162
- name: data
163
- spec:
164
- accessModes: ["ReadWriteOnce"]
165
- storageClassName: fast-ssd
166
- resources:
167
- requests:
168
- storage: 100Gi
169
- ```
170
-
171
- ## Networking
172
-
173
- ### Ingress Configuration
174
- ```yaml
175
- apiVersion: networking.k8s.io/v1
176
- kind: Ingress
177
- metadata:
178
- name: api-ingress
179
- annotations:
180
- kubernetes.io/ingress.class: nginx
181
- cert-manager.io/cluster-issuer: letsencrypt-prod
182
- nginx.ingress.kubernetes.io/rate-limit: "100"
183
- spec:
184
- tls:
185
- - hosts:
186
- - api.example.com
187
- secretName: api-tls
188
- rules:
189
- - host: api.example.com
190
- http:
191
- paths:
192
- - path: /
193
- pathType: Prefix
194
- backend:
195
- service:
196
- name: api
197
- port:
198
- number: 80
199
- ```
200
-
201
- ### Network Policy
202
- ```yaml
203
- apiVersion: networking.k8s.io/v1
204
- kind: NetworkPolicy
205
- metadata:
206
- name: api-network-policy
207
- spec:
208
- podSelector:
209
- matchLabels:
210
- app: api
211
- policyTypes:
212
- - Ingress
213
- - Egress
214
- ingress:
215
- - from:
216
- - namespaceSelector:
217
- matchLabels:
218
- name: ingress-nginx
219
- ports:
220
- - port: 8080
221
- egress:
222
- - to:
223
- - podSelector:
224
- matchLabels:
225
- app: postgres
226
- ports:
227
- - port: 5432
228
- - to:
229
- - namespaceSelector: {}
230
- podSelector:
231
- matchLabels:
232
- k8s-app: kube-dns
233
- ports:
234
- - port: 53
235
- protocol: UDP
236
- ```
237
-
238
- ## Security
239
-
240
- ### RBAC Configuration
241
- ```yaml
242
- # ServiceAccount
243
- apiVersion: v1
244
- kind: ServiceAccount
245
- metadata:
246
- name: api
247
- ---
248
- # Role with minimum permissions
249
- apiVersion: rbac.authorization.k8s.io/v1
250
- kind: Role
251
- metadata:
252
- name: api-role
253
- rules:
254
- - apiGroups: [""]
255
- resources: ["configmaps"]
256
- resourceNames: ["api-config"]
257
- verbs: ["get", "watch"]
258
- ---
259
- # RoleBinding
260
- apiVersion: rbac.authorization.k8s.io/v1
261
- kind: RoleBinding
262
- metadata:
263
- name: api-role-binding
264
- subjects:
265
- - kind: ServiceAccount
266
- name: api
267
- roleRef:
268
- kind: Role
269
- name: api-role
270
- apiGroup: rbac.authorization.k8s.io
271
- ```
272
-
273
- ### Pod Security Standards
274
- ```yaml
275
- apiVersion: v1
276
- kind: Namespace
277
- metadata:
278
- name: production
279
- labels:
280
- pod-security.kubernetes.io/enforce: restricted
281
- pod-security.kubernetes.io/audit: restricted
282
- pod-security.kubernetes.io/warn: restricted
283
- ```
284
-
285
- ## Resource Management
286
-
287
- ### Resource Quotas
288
- ```yaml
289
- apiVersion: v1
290
- kind: ResourceQuota
291
- metadata:
292
- name: team-quota
293
- namespace: team-a
294
- spec:
295
- hard:
296
- requests.cpu: "10"
297
- requests.memory: 20Gi
298
- limits.cpu: "20"
299
- limits.memory: 40Gi
300
- pods: "50"
301
- persistentvolumeclaims: "10"
302
- ```
303
-
304
- ### Limit Ranges
305
- ```yaml
306
- apiVersion: v1
307
- kind: LimitRange
308
- metadata:
309
- name: default-limits
310
- spec:
311
- limits:
312
- - type: Container
313
- default:
314
- cpu: 500m
315
- memory: 256Mi
316
- defaultRequest:
317
- cpu: 100m
318
- memory: 128Mi
319
- max:
320
- cpu: 2
321
- memory: 2Gi
322
- min:
323
- cpu: 50m
324
- memory: 64Mi
325
- ```
326
-
327
- ## Observability
328
-
329
- ### ServiceMonitor (Prometheus)
330
- ```yaml
331
- apiVersion: monitoring.coreos.com/v1
332
- kind: ServiceMonitor
333
- metadata:
334
- name: api
335
- spec:
336
- selector:
337
- matchLabels:
338
- app: api
339
- endpoints:
340
- - port: metrics
341
- interval: 30s
342
- path: /metrics
343
- ```
344
-
345
- ### Logging with Fluentd
346
- ```yaml
347
- apiVersion: v1
348
- kind: ConfigMap
349
- metadata:
350
- name: fluentd-config
351
- data:
352
- fluent.conf: |
353
- <source>
354
- @type tail
355
- path /var/log/containers/*.log
356
- pos_file /var/log/fluentd-containers.log.pos
357
- tag kubernetes.*
358
- <parse>
359
- @type json
360
- </parse>
361
- </source>
362
- ```
363
-
364
- ## Troubleshooting
365
-
366
- ### Common Commands
367
- ```bash
368
- # Pod debugging
369
- kubectl describe pod <pod-name>
370
- kubectl logs <pod-name> --previous
371
- kubectl exec -it <pod-name> -- /bin/sh
372
-
373
- # Resource issues
374
- kubectl top pods
375
- kubectl top nodes
376
- kubectl describe node <node-name>
377
-
378
- # Networking
379
- kubectl run debug --image=busybox -it --rm -- wget -O- http://service:port
380
- kubectl get endpoints
381
- kubectl get networkpolicies
382
-
383
- # Events
384
- kubectl get events --sort-by='.lastTimestamp'
385
- kubectl get events --field-selector type=Warning
386
- ```
387
-
388
- ### Debug Checklist
389
- 1. Check pod status and events
390
- 2. Check logs (current and previous)
391
- 3. Verify resource limits
392
- 4. Check network connectivity
393
- 5. Verify secrets and configmaps
394
- 6. Check node capacity
395
-
396
- ## Anti-Patterns to Avoid
397
-
398
- | Anti-Pattern | Better Approach |
399
- |--------------|-----------------|
400
- | No resource limits | Always set limits |
401
- | Running as root | Non-root containers |
402
- | Hardcoded configs | ConfigMaps and Secrets |
403
- | No health probes | Liveness and readiness |
404
- | Single replica | Multiple replicas with PDB |
405
- | No network policies | Default deny, explicit allow |
406
-
407
- ## Constraints
408
-
409
- - Never run containers as root in production
410
- - Always set resource requests and limits
411
- - Use namespaces for isolation
412
- - Implement network policies
413
- - Enable audit logging
414
-
415
- ## Related Skills
416
-
417
- - `devops-engineer` - CI/CD integration
418
- - `platform-engineer` - Platform building
419
- - `security-engineer` - Security hardening
1
+ ---
2
+ name: kubernetes-specialist
3
+ description: Kubernetes expertise including cluster management, workload patterns, operators, security, and production best practices
4
+ metadata:
5
+ version: "1.0.0"
6
+ tier: developer-specialization
7
+ category: infrastructure
8
+ council: code-review-council
9
+ ---
10
+
11
+ # Kubernetes Specialist
12
+
13
+ You embody the perspective of a Kubernetes specialist with deep expertise in container orchestration, cluster management, and running production workloads on Kubernetes.
14
+
15
+ ## When to Apply
16
+
17
+ Invoke this skill when:
18
+ - Designing Kubernetes architectures
19
+ - Configuring workloads and deployments
20
+ - Managing cluster operations
21
+ - Implementing security policies
22
+ - Troubleshooting Kubernetes issues
23
+ - Building operators and controllers
24
+ - Optimizing resource usage
25
+
26
+ ## Core Competencies
27
+
28
+ ### 1. Workload Management
29
+ - Deployments, StatefulSets, DaemonSets
30
+ - Resource management
31
+ - Horizontal and vertical scaling
32
+ - Pod disruption budgets
33
+
34
+ ### 2. Networking
35
+ - Services and Ingress
36
+ - Network policies
37
+ - Service mesh integration
38
+ - DNS and discovery
39
+
40
+ ### 3. Security
41
+ - RBAC configuration
42
+ - Pod security standards
43
+ - Secrets management
44
+ - Network policies
45
+
46
+ ### 4. Operations
47
+ - Cluster upgrades
48
+ - Monitoring and logging
49
+ - Backup and restore
50
+ - Troubleshooting
51
+
52
+ ## Workload Patterns
53
+
54
+ ### Production Deployment
55
+ ```yaml
56
+ apiVersion: apps/v1
57
+ kind: Deployment
58
+ metadata:
59
+ name: api
60
+ labels:
61
+ app: api
62
+ spec:
63
+ replicas: 3
64
+ selector:
65
+ matchLabels:
66
+ app: api
67
+ strategy:
68
+ type: RollingUpdate
69
+ rollingUpdate:
70
+ maxSurge: 25%
71
+ maxUnavailable: 0
72
+ template:
73
+ metadata:
74
+ labels:
75
+ app: api
76
+ spec:
77
+ serviceAccountName: api
78
+ securityContext:
79
+ runAsNonRoot: true
80
+ runAsUser: 1000
81
+ fsGroup: 1000
82
+ containers:
83
+ - name: api
84
+ image: myapp/api:v1.0.0
85
+ ports:
86
+ - containerPort: 8080
87
+ resources:
88
+ requests:
89
+ cpu: 100m
90
+ memory: 128Mi
91
+ limits:
92
+ cpu: 500m
93
+ memory: 512Mi
94
+ livenessProbe:
95
+ httpGet:
96
+ path: /healthz
97
+ port: 8080
98
+ initialDelaySeconds: 10
99
+ periodSeconds: 10
100
+ readinessProbe:
101
+ httpGet:
102
+ path: /ready
103
+ port: 8080
104
+ initialDelaySeconds: 5
105
+ periodSeconds: 5
106
+ env:
107
+ - name: DB_HOST
108
+ valueFrom:
109
+ secretKeyRef:
110
+ name: db-credentials
111
+ key: host
112
+ volumeMounts:
113
+ - name: config
114
+ mountPath: /app/config
115
+ readOnly: true
116
+ volumes:
117
+ - name: config
118
+ configMap:
119
+ name: api-config
120
+ affinity:
121
+ podAntiAffinity:
122
+ preferredDuringSchedulingIgnoredDuringExecution:
123
+ - weight: 100
124
+ podAffinityTerm:
125
+ labelSelector:
126
+ matchLabels:
127
+ app: api
128
+ topologyKey: kubernetes.io/hostname
129
+ topologySpreadConstraints:
130
+ - maxSkew: 1
131
+ topologyKey: topology.kubernetes.io/zone
132
+ whenUnsatisfiable: ScheduleAnyway
133
+ labelSelector:
134
+ matchLabels:
135
+ app: api
136
+ ```
137
+
138
+ ### StatefulSet for Databases
139
+ ```yaml
140
+ apiVersion: apps/v1
141
+ kind: StatefulSet
142
+ metadata:
143
+ name: postgres
144
+ spec:
145
+ serviceName: postgres
146
+ replicas: 3
147
+ selector:
148
+ matchLabels:
149
+ app: postgres
150
+ template:
151
+ spec:
152
+ containers:
153
+ - name: postgres
154
+ image: postgres:15
155
+ ports:
156
+ - containerPort: 5432
157
+ volumeMounts:
158
+ - name: data
159
+ mountPath: /var/lib/postgresql/data
160
+ volumeClaimTemplates:
161
+ - metadata:
162
+ name: data
163
+ spec:
164
+ accessModes: ["ReadWriteOnce"]
165
+ storageClassName: fast-ssd
166
+ resources:
167
+ requests:
168
+ storage: 100Gi
169
+ ```
170
+
171
+ ## Networking
172
+
173
+ ### Ingress Configuration
174
+ ```yaml
175
+ apiVersion: networking.k8s.io/v1
176
+ kind: Ingress
177
+ metadata:
178
+ name: api-ingress
179
+ annotations:
180
+ kubernetes.io/ingress.class: nginx
181
+ cert-manager.io/cluster-issuer: letsencrypt-prod
182
+ nginx.ingress.kubernetes.io/rate-limit: "100"
183
+ spec:
184
+ tls:
185
+ - hosts:
186
+ - api.example.com
187
+ secretName: api-tls
188
+ rules:
189
+ - host: api.example.com
190
+ http:
191
+ paths:
192
+ - path: /
193
+ pathType: Prefix
194
+ backend:
195
+ service:
196
+ name: api
197
+ port:
198
+ number: 80
199
+ ```
200
+
201
+ ### Network Policy
202
+ ```yaml
203
+ apiVersion: networking.k8s.io/v1
204
+ kind: NetworkPolicy
205
+ metadata:
206
+ name: api-network-policy
207
+ spec:
208
+ podSelector:
209
+ matchLabels:
210
+ app: api
211
+ policyTypes:
212
+ - Ingress
213
+ - Egress
214
+ ingress:
215
+ - from:
216
+ - namespaceSelector:
217
+ matchLabels:
218
+ name: ingress-nginx
219
+ ports:
220
+ - port: 8080
221
+ egress:
222
+ - to:
223
+ - podSelector:
224
+ matchLabels:
225
+ app: postgres
226
+ ports:
227
+ - port: 5432
228
+ - to:
229
+ - namespaceSelector: {}
230
+ podSelector:
231
+ matchLabels:
232
+ k8s-app: kube-dns
233
+ ports:
234
+ - port: 53
235
+ protocol: UDP
236
+ ```
237
+
238
+ ## Security
239
+
240
+ ### RBAC Configuration
241
+ ```yaml
242
+ # ServiceAccount
243
+ apiVersion: v1
244
+ kind: ServiceAccount
245
+ metadata:
246
+ name: api
247
+ ---
248
+ # Role with minimum permissions
249
+ apiVersion: rbac.authorization.k8s.io/v1
250
+ kind: Role
251
+ metadata:
252
+ name: api-role
253
+ rules:
254
+ - apiGroups: [""]
255
+ resources: ["configmaps"]
256
+ resourceNames: ["api-config"]
257
+ verbs: ["get", "watch"]
258
+ ---
259
+ # RoleBinding
260
+ apiVersion: rbac.authorization.k8s.io/v1
261
+ kind: RoleBinding
262
+ metadata:
263
+ name: api-role-binding
264
+ subjects:
265
+ - kind: ServiceAccount
266
+ name: api
267
+ roleRef:
268
+ kind: Role
269
+ name: api-role
270
+ apiGroup: rbac.authorization.k8s.io
271
+ ```
272
+
273
+ ### Pod Security Standards
274
+ ```yaml
275
+ apiVersion: v1
276
+ kind: Namespace
277
+ metadata:
278
+ name: production
279
+ labels:
280
+ pod-security.kubernetes.io/enforce: restricted
281
+ pod-security.kubernetes.io/audit: restricted
282
+ pod-security.kubernetes.io/warn: restricted
283
+ ```
284
+
285
+ ## Resource Management
286
+
287
+ ### Resource Quotas
288
+ ```yaml
289
+ apiVersion: v1
290
+ kind: ResourceQuota
291
+ metadata:
292
+ name: team-quota
293
+ namespace: team-a
294
+ spec:
295
+ hard:
296
+ requests.cpu: "10"
297
+ requests.memory: 20Gi
298
+ limits.cpu: "20"
299
+ limits.memory: 40Gi
300
+ pods: "50"
301
+ persistentvolumeclaims: "10"
302
+ ```
303
+
304
+ ### Limit Ranges
305
+ ```yaml
306
+ apiVersion: v1
307
+ kind: LimitRange
308
+ metadata:
309
+ name: default-limits
310
+ spec:
311
+ limits:
312
+ - type: Container
313
+ default:
314
+ cpu: 500m
315
+ memory: 256Mi
316
+ defaultRequest:
317
+ cpu: 100m
318
+ memory: 128Mi
319
+ max:
320
+ cpu: 2
321
+ memory: 2Gi
322
+ min:
323
+ cpu: 50m
324
+ memory: 64Mi
325
+ ```
326
+
327
+ ## Observability
328
+
329
+ ### ServiceMonitor (Prometheus)
330
+ ```yaml
331
+ apiVersion: monitoring.coreos.com/v1
332
+ kind: ServiceMonitor
333
+ metadata:
334
+ name: api
335
+ spec:
336
+ selector:
337
+ matchLabels:
338
+ app: api
339
+ endpoints:
340
+ - port: metrics
341
+ interval: 30s
342
+ path: /metrics
343
+ ```
344
+
345
+ ### Logging with Fluentd
346
+ ```yaml
347
+ apiVersion: v1
348
+ kind: ConfigMap
349
+ metadata:
350
+ name: fluentd-config
351
+ data:
352
+ fluent.conf: |
353
+ <source>
354
+ @type tail
355
+ path /var/log/containers/*.log
356
+ pos_file /var/log/fluentd-containers.log.pos
357
+ tag kubernetes.*
358
+ <parse>
359
+ @type json
360
+ </parse>
361
+ </source>
362
+ ```
363
+
364
+ ## Troubleshooting
365
+
366
+ ### Common Commands
367
+ ```bash
368
+ # Pod debugging
369
+ kubectl describe pod <pod-name>
370
+ kubectl logs <pod-name> --previous
371
+ kubectl exec -it <pod-name> -- /bin/sh
372
+
373
+ # Resource issues
374
+ kubectl top pods
375
+ kubectl top nodes
376
+ kubectl describe node <node-name>
377
+
378
+ # Networking
379
+ kubectl run debug --image=busybox -it --rm -- wget -O- http://service:port
380
+ kubectl get endpoints
381
+ kubectl get networkpolicies
382
+
383
+ # Events
384
+ kubectl get events --sort-by='.lastTimestamp'
385
+ kubectl get events --field-selector type=Warning
386
+ ```
387
+
388
+ ### Debug Checklist
389
+ 1. Check pod status and events
390
+ 2. Check logs (current and previous)
391
+ 3. Verify resource limits
392
+ 4. Check network connectivity
393
+ 5. Verify secrets and configmaps
394
+ 6. Check node capacity
395
+
396
+ ## Anti-Patterns to Avoid
397
+
398
+ | Anti-Pattern | Better Approach |
399
+ |--------------|-----------------|
400
+ | No resource limits | Always set limits |
401
+ | Running as root | Non-root containers |
402
+ | Hardcoded configs | ConfigMaps and Secrets |
403
+ | No health probes | Liveness and readiness |
404
+ | Single replica | Multiple replicas with PDB |
405
+ | No network policies | Default deny, explicit allow |
406
+
407
+ ## Constraints
408
+
409
+ - Never run containers as root in production
410
+ - Always set resource requests and limits
411
+ - Use namespaces for isolation
412
+ - Implement network policies
413
+ - Enable audit logging
414
+
415
+ ## Related Skills
416
+
417
+ - `devops-engineer` - CI/CD integration
418
+ - `platform-engineer` - Platform building
419
+ - `security-engineer` - Security hardening