locus-product-planning 1.1.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 (74) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/LICENSE +21 -21
  4. package/README.md +11 -7
  5. package/agents/engineering/architect-reviewer.md +122 -122
  6. package/agents/engineering/engineering-manager.md +101 -101
  7. package/agents/engineering/principal-engineer.md +98 -98
  8. package/agents/engineering/staff-engineer.md +86 -86
  9. package/agents/engineering/tech-lead.md +114 -114
  10. package/agents/executive/ceo-strategist.md +81 -81
  11. package/agents/executive/cfo-analyst.md +97 -97
  12. package/agents/executive/coo-operations.md +100 -100
  13. package/agents/executive/cpo-product.md +104 -104
  14. package/agents/executive/cto-architect.md +90 -90
  15. package/agents/product/product-manager.md +70 -70
  16. package/agents/product/project-manager.md +95 -95
  17. package/agents/product/qa-strategist.md +132 -132
  18. package/agents/product/scrum-master.md +70 -70
  19. package/dist/index.cjs +13012 -0
  20. package/dist/index.cjs.map +1 -0
  21. package/dist/{lib/skills-core.d.ts → index.d.cts} +46 -12
  22. package/dist/index.d.ts +113 -5
  23. package/dist/index.js +12963 -237
  24. package/dist/index.js.map +1 -0
  25. package/package.json +88 -82
  26. package/skills/01-executive-suite/ceo-strategist/SKILL.md +132 -132
  27. package/skills/01-executive-suite/cfo-analyst/SKILL.md +187 -187
  28. package/skills/01-executive-suite/coo-operations/SKILL.md +211 -211
  29. package/skills/01-executive-suite/cpo-product/SKILL.md +231 -231
  30. package/skills/01-executive-suite/cto-architect/SKILL.md +173 -173
  31. package/skills/02-product-management/estimation-expert/SKILL.md +139 -139
  32. package/skills/02-product-management/product-manager/SKILL.md +265 -265
  33. package/skills/02-product-management/program-manager/SKILL.md +178 -178
  34. package/skills/02-product-management/project-manager/SKILL.md +221 -221
  35. package/skills/02-product-management/roadmap-strategist/SKILL.md +186 -186
  36. package/skills/02-product-management/scrum-master/SKILL.md +212 -212
  37. package/skills/03-engineering-leadership/architect-reviewer/SKILL.md +249 -249
  38. package/skills/03-engineering-leadership/engineering-manager/SKILL.md +207 -207
  39. package/skills/03-engineering-leadership/principal-engineer/SKILL.md +206 -206
  40. package/skills/03-engineering-leadership/staff-engineer/SKILL.md +237 -237
  41. package/skills/03-engineering-leadership/tech-lead/SKILL.md +296 -296
  42. package/skills/04-developer-specializations/core/api-designer/SKILL.md +579 -0
  43. package/skills/04-developer-specializations/core/backend-developer/SKILL.md +205 -205
  44. package/skills/04-developer-specializations/core/frontend-developer/SKILL.md +233 -233
  45. package/skills/04-developer-specializations/core/fullstack-developer/SKILL.md +202 -202
  46. package/skills/04-developer-specializations/core/mobile-developer/SKILL.md +220 -220
  47. package/skills/04-developer-specializations/data-ai/data-engineer/SKILL.md +316 -316
  48. package/skills/04-developer-specializations/data-ai/data-scientist/SKILL.md +338 -338
  49. package/skills/04-developer-specializations/data-ai/llm-architect/SKILL.md +390 -390
  50. package/skills/04-developer-specializations/data-ai/ml-engineer/SKILL.md +349 -349
  51. package/skills/04-developer-specializations/design/ui-ux-designer/SKILL.md +337 -0
  52. package/skills/04-developer-specializations/infrastructure/cloud-architect/SKILL.md +354 -354
  53. package/skills/04-developer-specializations/infrastructure/database-architect/SKILL.md +430 -0
  54. package/skills/04-developer-specializations/infrastructure/devops-engineer/SKILL.md +306 -306
  55. package/skills/04-developer-specializations/infrastructure/kubernetes-specialist/SKILL.md +419 -419
  56. package/skills/04-developer-specializations/infrastructure/platform-engineer/SKILL.md +289 -289
  57. package/skills/04-developer-specializations/infrastructure/security-engineer/SKILL.md +336 -336
  58. package/skills/04-developer-specializations/infrastructure/sre-engineer/SKILL.md +425 -425
  59. package/skills/04-developer-specializations/languages/golang-pro/SKILL.md +366 -366
  60. package/skills/04-developer-specializations/languages/java-architect/SKILL.md +296 -296
  61. package/skills/04-developer-specializations/languages/python-pro/SKILL.md +317 -317
  62. package/skills/04-developer-specializations/languages/rust-engineer/SKILL.md +309 -309
  63. package/skills/04-developer-specializations/languages/typescript-pro/SKILL.md +251 -251
  64. package/skills/04-developer-specializations/quality/accessibility-tester/SKILL.md +338 -338
  65. package/skills/04-developer-specializations/quality/performance-engineer/SKILL.md +384 -384
  66. package/skills/04-developer-specializations/quality/qa-expert/SKILL.md +413 -413
  67. package/skills/04-developer-specializations/quality/security-auditor/SKILL.md +359 -359
  68. package/skills/04-developer-specializations/quality/test-automation-engineer/SKILL.md +711 -0
  69. package/skills/05-specialists/compliance-specialist/SKILL.md +171 -171
  70. package/skills/05-specialists/technical-writer/SKILL.md +576 -0
  71. package/skills/using-locus/SKILL.md +5 -3
  72. package/dist/index.d.ts.map +0 -1
  73. package/dist/lib/skills-core.d.ts.map +0 -1
  74. 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