@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,553 @@
1
+ ---
2
+ name: helm-chart-scaffolding
3
+ description: Design, organize, and manage Helm charts for templating and packaging Kubernetes applications with reusable configurations. Use when creating Helm charts, packaging Kubernetes applications, or implementing templated deployments.
4
+ ---
5
+
6
+ # Helm Chart Scaffolding
7
+
8
+ Comprehensive guidance for creating, organizing, and managing Helm charts for packaging and deploying Kubernetes applications.
9
+
10
+ ## Purpose
11
+
12
+ This skill provides step-by-step instructions for building production-ready Helm charts, including chart structure, templating patterns, values management, and validation strategies.
13
+
14
+ ## When to Use This Skill
15
+
16
+ Use this skill when you need to:
17
+
18
+ - Create new Helm charts from scratch
19
+ - Package Kubernetes applications for distribution
20
+ - Manage multi-environment deployments with Helm
21
+ - Implement templating for reusable Kubernetes manifests
22
+ - Set up Helm chart repositories
23
+ - Follow Helm best practices and conventions
24
+
25
+ ## Helm Overview
26
+
27
+ **Helm** is the package manager for Kubernetes that:
28
+
29
+ - Templates Kubernetes manifests for reusability
30
+ - Manages application releases and rollbacks
31
+ - Handles dependencies between charts
32
+ - Provides version control for deployments
33
+ - Simplifies configuration management across environments
34
+
35
+ ## Step-by-Step Workflow
36
+
37
+ ### 1. Initialize Chart Structure
38
+
39
+ **Create new chart:**
40
+
41
+ ```bash
42
+ helm create my-app
43
+ ```
44
+
45
+ **Standard chart structure:**
46
+
47
+ ```
48
+ my-app/
49
+ ├── Chart.yaml # Chart metadata
50
+ ├── values.yaml # Default configuration values
51
+ ├── charts/ # Chart dependencies
52
+ ├── templates/ # Kubernetes manifest templates
53
+ │ ├── NOTES.txt # Post-install notes
54
+ │ ├── _helpers.tpl # Template helpers
55
+ │ ├── deployment.yaml
56
+ │ ├── service.yaml
57
+ │ ├── ingress.yaml
58
+ │ ├── serviceaccount.yaml
59
+ │ ├── hpa.yaml
60
+ │ └── tests/
61
+ │ └── test-connection.yaml
62
+ └── .helmignore # Files to ignore
63
+ ```
64
+
65
+ ### 2. Configure Chart.yaml
66
+
67
+ **Chart metadata defines the package:**
68
+
69
+ ```yaml
70
+ apiVersion: v2
71
+ name: my-app
72
+ description: A Helm chart for My Application
73
+ type: application
74
+ version: 1.0.0 # Chart version
75
+ appVersion: "2.1.0" # Application version
76
+
77
+ # Keywords for chart discovery
78
+ keywords:
79
+ - web
80
+ - api
81
+ - backend
82
+
83
+ # Maintainer information
84
+ maintainers:
85
+ - name: DevOps Team
86
+ email: devops@example.com
87
+ url: https://github.com/example/my-app
88
+
89
+ # Source code repository
90
+ sources:
91
+ - https://github.com/example/my-app
92
+
93
+ # Homepage
94
+ home: https://example.com
95
+
96
+ # Chart icon
97
+ icon: https://example.com/icon.png
98
+
99
+ # Dependencies
100
+ dependencies:
101
+ - name: postgresql
102
+ version: "12.0.0"
103
+ repository: "https://charts.bitnami.com/bitnami"
104
+ condition: postgresql.enabled
105
+ - name: redis
106
+ version: "17.0.0"
107
+ repository: "https://charts.bitnami.com/bitnami"
108
+ condition: redis.enabled
109
+ ```
110
+
111
+ ### 3. Design values.yaml Structure
112
+
113
+ **Organize values hierarchically:**
114
+
115
+ ```yaml
116
+ # Image configuration
117
+ image:
118
+ repository: myapp
119
+ tag: "1.0.0"
120
+ pullPolicy: IfNotPresent
121
+
122
+ # Number of replicas
123
+ replicaCount: 3
124
+
125
+ # Service configuration
126
+ service:
127
+ type: ClusterIP
128
+ port: 80
129
+ targetPort: 8080
130
+
131
+ # Ingress configuration
132
+ ingress:
133
+ enabled: false
134
+ className: nginx
135
+ hosts:
136
+ - host: app.example.com
137
+ paths:
138
+ - path: /
139
+ pathType: Prefix
140
+
141
+ # Resources
142
+ resources:
143
+ requests:
144
+ memory: "256Mi"
145
+ cpu: "250m"
146
+ limits:
147
+ memory: "512Mi"
148
+ cpu: "500m"
149
+
150
+ # Autoscaling
151
+ autoscaling:
152
+ enabled: false
153
+ minReplicas: 2
154
+ maxReplicas: 10
155
+ targetCPUUtilizationPercentage: 80
156
+
157
+ # Environment variables
158
+ env:
159
+ - name: LOG_LEVEL
160
+ value: "info"
161
+
162
+ # ConfigMap data
163
+ configMap:
164
+ data:
165
+ APP_MODE: production
166
+
167
+ # Dependencies
168
+ postgresql:
169
+ enabled: true
170
+ auth:
171
+ database: myapp
172
+ username: myapp
173
+
174
+ redis:
175
+ enabled: false
176
+ ```
177
+
178
+ ### 4. Create Template Files
179
+
180
+ **Use Go templating with Helm functions:**
181
+
182
+ **templates/deployment.yaml:**
183
+
184
+ ```yaml
185
+ apiVersion: apps/v1
186
+ kind: Deployment
187
+ metadata:
188
+ name: {{ include "my-app.fullname" . }}
189
+ labels:
190
+ {{- include "my-app.labels" . | nindent 4 }}
191
+ spec:
192
+ {{- if not .Values.autoscaling.enabled }}
193
+ replicas: {{ .Values.replicaCount }}
194
+ {{- end }}
195
+ selector:
196
+ matchLabels:
197
+ {{- include "my-app.selectorLabels" . | nindent 6 }}
198
+ template:
199
+ metadata:
200
+ labels:
201
+ {{- include "my-app.selectorLabels" . | nindent 8 }}
202
+ spec:
203
+ containers:
204
+ - name: {{ .Chart.Name }}
205
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
206
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
207
+ ports:
208
+ - name: http
209
+ containerPort: {{ .Values.service.targetPort }}
210
+ resources:
211
+ {{- toYaml .Values.resources | nindent 12 }}
212
+ env:
213
+ {{- toYaml .Values.env | nindent 12 }}
214
+ ```
215
+
216
+ ### 5. Create Template Helpers
217
+
218
+ **templates/_helpers.tpl:**
219
+
220
+ ```yaml
221
+ {{/*
222
+ Expand the name of the chart.
223
+ */}}
224
+ {{- define "my-app.name" -}}
225
+ {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
226
+ {{- end }}
227
+
228
+ {{/*
229
+ Create a default fully qualified app name.
230
+ */}}
231
+ {{- define "my-app.fullname" -}}
232
+ {{- if .Values.fullnameOverride }}
233
+ {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
234
+ {{- else }}
235
+ {{- $name := default .Chart.Name .Values.nameOverride }}
236
+ {{- if contains $name .Release.Name }}
237
+ {{- .Release.Name | trunc 63 | trimSuffix "-" }}
238
+ {{- else }}
239
+ {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
240
+ {{- end }}
241
+ {{- end }}
242
+ {{- end }}
243
+
244
+ {{/*
245
+ Common labels
246
+ */}}
247
+ {{- define "my-app.labels" -}}
248
+ helm.sh/chart: {{ include "my-app.chart" . }}
249
+ {{ include "my-app.selectorLabels" . }}
250
+ {{- if .Chart.AppVersion }}
251
+ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
252
+ {{- end }}
253
+ app.kubernetes.io/managed-by: {{ .Release.Service }}
254
+ {{- end }}
255
+
256
+ {{/*
257
+ Selector labels
258
+ */}}
259
+ {{- define "my-app.selectorLabels" -}}
260
+ app.kubernetes.io/name: {{ include "my-app.name" . }}
261
+ app.kubernetes.io/instance: {{ .Release.Name }}
262
+ {{- end }}
263
+ ```
264
+
265
+ ### 6. Manage Dependencies
266
+
267
+ **Add dependencies in Chart.yaml:**
268
+
269
+ ```yaml
270
+ dependencies:
271
+ - name: postgresql
272
+ version: "12.0.0"
273
+ repository: "https://charts.bitnami.com/bitnami"
274
+ condition: postgresql.enabled
275
+ ```
276
+
277
+ **Update dependencies:**
278
+
279
+ ```bash
280
+ helm dependency update
281
+ helm dependency build
282
+ ```
283
+
284
+ **Override dependency values:**
285
+
286
+ ```yaml
287
+ # values.yaml
288
+ postgresql:
289
+ enabled: true
290
+ auth:
291
+ database: myapp
292
+ username: myapp
293
+ password: changeme
294
+ primary:
295
+ persistence:
296
+ enabled: true
297
+ size: 10Gi
298
+ ```
299
+
300
+ ### 7. Test and Validate
301
+
302
+ **Validation commands:**
303
+
304
+ ```bash
305
+ # Lint the chart
306
+ helm lint my-app/
307
+
308
+ # Dry-run installation
309
+ helm install my-app ./my-app --dry-run --debug
310
+
311
+ # Template rendering
312
+ helm template my-app ./my-app
313
+
314
+ # Template with values
315
+ helm template my-app ./my-app -f values-prod.yaml
316
+
317
+ # Show computed values
318
+ helm show values ./my-app
319
+ ```
320
+
321
+ **Validation script:**
322
+
323
+ ```bash
324
+ #!/bin/bash
325
+ set -e
326
+
327
+ echo "Linting chart..."
328
+ helm lint .
329
+
330
+ echo "Testing template rendering..."
331
+ helm template test-release . --dry-run
332
+
333
+ echo "Checking for required values..."
334
+ helm template test-release . --validate
335
+
336
+ echo "All validations passed!"
337
+ ```
338
+
339
+ ### 8. Package and Distribute
340
+
341
+ **Package the chart:**
342
+
343
+ ```bash
344
+ helm package my-app/
345
+ # Creates: my-app-1.0.0.tgz
346
+ ```
347
+
348
+ **Create chart repository:**
349
+
350
+ ```bash
351
+ # Create index
352
+ helm repo index .
353
+
354
+ # Upload to repository
355
+ # AWS S3 example
356
+ aws s3 sync . s3://my-helm-charts/ --exclude "*" --include "*.tgz" --include "index.yaml"
357
+ ```
358
+
359
+ **Use the chart:**
360
+
361
+ ```bash
362
+ helm repo add my-repo https://charts.example.com
363
+ helm repo update
364
+ helm install my-app my-repo/my-app
365
+ ```
366
+
367
+ ### 9. Multi-Environment Configuration
368
+
369
+ **Environment-specific values files:**
370
+
371
+ ```
372
+ my-app/
373
+ ├── values.yaml # Defaults
374
+ ├── values-dev.yaml # Development
375
+ ├── values-staging.yaml # Staging
376
+ └── values-prod.yaml # Production
377
+ ```
378
+
379
+ **values-prod.yaml:**
380
+
381
+ ```yaml
382
+ replicaCount: 5
383
+
384
+ image:
385
+ tag: "2.1.0"
386
+
387
+ resources:
388
+ requests:
389
+ memory: "512Mi"
390
+ cpu: "500m"
391
+ limits:
392
+ memory: "1Gi"
393
+ cpu: "1000m"
394
+
395
+ autoscaling:
396
+ enabled: true
397
+ minReplicas: 3
398
+ maxReplicas: 20
399
+
400
+ ingress:
401
+ enabled: true
402
+ hosts:
403
+ - host: app.example.com
404
+ paths:
405
+ - path: /
406
+ pathType: Prefix
407
+
408
+ postgresql:
409
+ enabled: true
410
+ primary:
411
+ persistence:
412
+ size: 100Gi
413
+ ```
414
+
415
+ **Install with environment:**
416
+
417
+ ```bash
418
+ helm install my-app ./my-app -f values-prod.yaml --namespace production
419
+ ```
420
+
421
+ ### 10. Implement Hooks and Tests
422
+
423
+ **Pre-install hook:**
424
+
425
+ ```yaml
426
+ # templates/pre-install-job.yaml
427
+ apiVersion: batch/v1
428
+ kind: Job
429
+ metadata:
430
+ name: {{ include "my-app.fullname" . }}-db-setup
431
+ annotations:
432
+ "helm.sh/hook": pre-install
433
+ "helm.sh/hook-weight": "-5"
434
+ "helm.sh/hook-delete-policy": hook-succeeded
435
+ spec:
436
+ template:
437
+ spec:
438
+ containers:
439
+ - name: db-setup
440
+ image: postgres:15
441
+ command: ["psql", "-c", "CREATE DATABASE myapp"]
442
+ restartPolicy: Never
443
+ ```
444
+
445
+ **Test connection:**
446
+
447
+ ```yaml
448
+ # templates/tests/test-connection.yaml
449
+ apiVersion: v1
450
+ kind: Pod
451
+ metadata:
452
+ name: "{{ include "my-app.fullname" . }}-test-connection"
453
+ annotations:
454
+ "helm.sh/hook": test
455
+ spec:
456
+ containers:
457
+ - name: wget
458
+ image: busybox
459
+ command: ['wget']
460
+ args: ['{{ include "my-app.fullname" . }}:{{ .Values.service.port }}']
461
+ restartPolicy: Never
462
+ ```
463
+
464
+ **Run tests:**
465
+
466
+ ```bash
467
+ helm test my-app
468
+ ```
469
+
470
+ ## Common Patterns
471
+
472
+ ### Pattern 1: Conditional Resources
473
+
474
+ ```yaml
475
+ {{- if .Values.ingress.enabled }}
476
+ apiVersion: networking.k8s.io/v1
477
+ kind: Ingress
478
+ metadata:
479
+ name: {{ include "my-app.fullname" . }}
480
+ spec:
481
+ # ...
482
+ {{- end }}
483
+ ```
484
+
485
+ ### Pattern 2: Iterating Over Lists
486
+
487
+ ```yaml
488
+ env:
489
+ {{- range .Values.env }}
490
+ - name: {{ .name }}
491
+ value: {{ .value | quote }}
492
+ {{- end }}
493
+ ```
494
+
495
+ ### Pattern 3: Including Files
496
+
497
+ ```yaml
498
+ data:
499
+ config.yaml: |
500
+ {{- .Files.Get "config/application.yaml" | nindent 4 }}
501
+ ```
502
+
503
+ ### Pattern 4: Global Values
504
+
505
+ ```yaml
506
+ global:
507
+ imageRegistry: docker.io
508
+ imagePullSecrets:
509
+ - name: regcred
510
+
511
+ # Use in templates:
512
+ image: {{ .Values.global.imageRegistry }}/{{ .Values.image.repository }}
513
+ ```
514
+
515
+ ## Best Practices
516
+
517
+ 1. **Use semantic versioning** for chart and app versions
518
+ 2. **Document all values** in values.yaml with comments
519
+ 3. **Use template helpers** for repeated logic
520
+ 4. **Validate charts** before packaging
521
+ 5. **Pin dependency versions** explicitly
522
+ 6. **Use conditions** for optional resources
523
+ 7. **Follow naming conventions** (lowercase, hyphens)
524
+ 8. **Include NOTES.txt** with usage instructions
525
+ 9. **Add labels** consistently using helpers
526
+ 10. **Test installations** in all environments
527
+
528
+ ## Troubleshooting
529
+
530
+ **Template rendering errors:**
531
+
532
+ ```bash
533
+ helm template my-app ./my-app --debug
534
+ ```
535
+
536
+ **Dependency issues:**
537
+
538
+ ```bash
539
+ helm dependency update
540
+ helm dependency list
541
+ ```
542
+
543
+ **Installation failures:**
544
+
545
+ ```bash
546
+ helm install my-app ./my-app --dry-run --debug
547
+ kubectl get events --sort-by='.lastTimestamp'
548
+ ```
549
+
550
+ ## Related Skills
551
+
552
+ - `k8s-manifest-generator` - For creating base Kubernetes manifests
553
+ - `gitops-workflow` - For automated Helm chart deployments