@hivehub/rulebook 4.2.2 → 4.3.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.
- package/.claude/commands/continue.md +33 -33
- package/.claude/commands/ralph-config.md +112 -112
- package/.claude/commands/ralph-history.md +110 -110
- package/.claude/commands/ralph-init.md +72 -72
- package/.claude/commands/ralph-pause-resume.md +105 -105
- package/.claude/commands/ralph-run.md +101 -101
- package/.claude/commands/ralph-status.md +76 -76
- package/.claude/commands/rulebook-memory-save.md +48 -48
- package/.claude/commands/rulebook-memory-search.md +47 -47
- package/.claude/commands/rulebook-task-apply.md +67 -67
- package/.claude/commands/rulebook-task-archive.md +70 -70
- package/.claude/commands/rulebook-task-create.md +93 -93
- package/.claude/commands/rulebook-task-list.md +42 -42
- package/.claude/commands/rulebook-task-show.md +52 -52
- package/.claude/commands/rulebook-task-validate.md +53 -53
- package/.claude-plugin/marketplace.json +28 -28
- package/.claude-plugin/plugin.json +8 -8
- package/README.md +15 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +43 -18
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/claude-mcp.d.ts +10 -2
- package/dist/core/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude-mcp.js +48 -9
- package/dist/core/claude-mcp.js.map +1 -1
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +1 -2
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/generator.d.ts +13 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +283 -28
- package/dist/core/generator.js.map +1 -1
- package/dist/core/indexer/background-indexer.d.ts.map +1 -1
- package/dist/core/indexer/background-indexer.js +10 -3
- package/dist/core/indexer/background-indexer.js.map +1 -1
- package/dist/core/workspace/workspace-manager.d.ts.map +1 -1
- package/dist/core/workspace/workspace-manager.js +2 -6
- package/dist/core/workspace/workspace-manager.js.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +23 -10
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/package.json +21 -22
- package/templates/agents/accessibility-reviewer.md +43 -0
- package/templates/agents/api-designer.md +42 -0
- package/templates/agents/architect.md +51 -0
- package/templates/agents/build-engineer.md +36 -0
- package/templates/agents/code-reviewer.md +47 -0
- package/templates/agents/database-architect.md +41 -0
- package/templates/agents/devops-engineer.md +42 -0
- package/templates/agents/docs-writer.md +38 -0
- package/templates/agents/i18n-engineer.md +42 -0
- package/templates/agents/implementer.md +38 -35
- package/templates/agents/migration-engineer.md +42 -0
- package/templates/agents/performance-engineer.md +49 -0
- package/templates/agents/refactoring-agent.md +41 -0
- package/templates/agents/researcher.md +38 -34
- package/templates/agents/security-reviewer.md +40 -0
- package/templates/agents/team-lead.md +37 -34
- package/templates/agents/tester.md +45 -42
- package/templates/agents/ux-reviewer.md +43 -0
- package/templates/ci/rulebook-review.yml +26 -26
- package/templates/cli/AIDER.md +49 -49
- package/templates/cli/AMAZON_Q.md +25 -25
- package/templates/cli/AUGGIE.md +32 -32
- package/templates/cli/CLAUDE.md +117 -117
- package/templates/cli/CLINE.md +99 -99
- package/templates/cli/CODEBUDDY.md +20 -20
- package/templates/cli/CODEIUM.md +20 -20
- package/templates/cli/CODEX.md +21 -21
- package/templates/cli/CONTINUE.md +34 -34
- package/templates/cli/CURSOR_CLI.md +62 -62
- package/templates/cli/FACTORY.md +18 -18
- package/templates/cli/GEMINI.md +35 -35
- package/templates/cli/KILOCODE.md +18 -18
- package/templates/cli/OPENCODE.md +18 -18
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
- package/templates/commands/rulebook-memory-save.md +48 -48
- package/templates/commands/rulebook-memory-search.md +47 -47
- package/templates/commands/rulebook-task-apply.md +67 -67
- package/templates/commands/rulebook-task-archive.md +94 -94
- package/templates/commands/rulebook-task-create.md +93 -93
- package/templates/commands/rulebook-task-list.md +42 -42
- package/templates/commands/rulebook-task-show.md +52 -52
- package/templates/commands/rulebook-task-validate.md +53 -53
- package/templates/core/AGENTS_LEAN.md +25 -25
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +288 -288
- package/templates/core/DAG.md +304 -304
- package/templates/core/DOCUMENTATION_RULES.md +36 -36
- package/templates/core/MULTI_AGENT.md +74 -74
- package/templates/core/PLANS.md +28 -28
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
- package/templates/core/RALPH.md +471 -471
- package/templates/core/RULEBOOK.md +1935 -1935
- package/templates/frameworks/ANGULAR.md +36 -36
- package/templates/frameworks/DJANGO.md +83 -83
- package/templates/frameworks/ELECTRON.md +147 -147
- package/templates/frameworks/FLASK.md +38 -38
- package/templates/frameworks/FLUTTER.md +55 -55
- package/templates/frameworks/JQUERY.md +32 -32
- package/templates/frameworks/LARAVEL.md +38 -38
- package/templates/frameworks/NESTJS.md +43 -43
- package/templates/frameworks/NEXTJS.md +127 -127
- package/templates/frameworks/NUXT.md +40 -40
- package/templates/frameworks/RAILS.md +66 -66
- package/templates/frameworks/REACT.md +38 -38
- package/templates/frameworks/REACT_NATIVE.md +47 -47
- package/templates/frameworks/SPRING.md +39 -39
- package/templates/frameworks/SYMFONY.md +36 -36
- package/templates/frameworks/VUE.md +36 -36
- package/templates/frameworks/ZEND.md +35 -35
- package/templates/git/CI_CD_PATTERNS.md +661 -661
- package/templates/git/GITHUB_ACTIONS.md +728 -728
- package/templates/git/GITLAB_CI.md +730 -730
- package/templates/git/GIT_WORKFLOW.md +1157 -1157
- package/templates/git/SECRETS_MANAGEMENT.md +585 -585
- package/templates/hooks/COMMIT_MSG.md +530 -530
- package/templates/hooks/POST_CHECKOUT.md +546 -546
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
- package/templates/hooks/PRE_COMMIT.md +414 -414
- package/templates/hooks/PRE_PUSH.md +601 -601
- package/templates/ides/CONTINUE_RULES.md +16 -16
- package/templates/ides/COPILOT.md +37 -37
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
- package/templates/ides/CURSOR.md +43 -43
- package/templates/ides/GEMINI_RULES.md +17 -17
- package/templates/ides/JETBRAINS_AI.md +35 -35
- package/templates/ides/REPLIT.md +36 -36
- package/templates/ides/TABNINE.md +29 -29
- package/templates/ides/VSCODE.md +40 -40
- package/templates/ides/WINDSURF.md +36 -36
- package/templates/ides/WINDSURF_RULES.md +14 -14
- package/templates/ides/ZED.md +32 -32
- package/templates/ides/cursor-mdc/go.mdc +24 -24
- package/templates/ides/cursor-mdc/python.mdc +24 -24
- package/templates/ides/cursor-mdc/quality.mdc +25 -25
- package/templates/ides/cursor-mdc/ralph.mdc +39 -39
- package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
- package/templates/ides/cursor-mdc/rust.mdc +24 -24
- package/templates/ides/cursor-mdc/typescript.mdc +25 -25
- package/templates/languages/C.md +333 -333
- package/templates/languages/CPP.md +743 -743
- package/templates/languages/CSHARP.md +417 -417
- package/templates/languages/ELIXIR.md +454 -454
- package/templates/languages/ERLANG.md +361 -361
- package/templates/languages/GO.md +645 -645
- package/templates/languages/HASKELL.md +177 -177
- package/templates/languages/JAVA.md +607 -607
- package/templates/languages/JAVASCRIPT.md +631 -631
- package/templates/languages/JULIA.md +97 -97
- package/templates/languages/KOTLIN.md +511 -511
- package/templates/languages/LISP.md +100 -100
- package/templates/languages/LUA.md +74 -74
- package/templates/languages/OBJECTIVEC.md +90 -90
- package/templates/languages/PHP.md +416 -416
- package/templates/languages/PYTHON.md +682 -682
- package/templates/languages/RUBY.md +421 -421
- package/templates/languages/RUST.md +477 -477
- package/templates/languages/SAS.md +73 -73
- package/templates/languages/SCALA.md +348 -348
- package/templates/languages/SOLIDITY.md +580 -580
- package/templates/languages/SQL.md +137 -137
- package/templates/languages/SWIFT.md +466 -466
- package/templates/languages/TYPESCRIPT.md +591 -591
- package/templates/languages/ZIG.md +265 -265
- package/templates/modules/ATLASSIAN.md +255 -255
- package/templates/modules/CONTEXT7.md +54 -54
- package/templates/modules/FIGMA.md +267 -267
- package/templates/modules/GITHUB_MCP.md +64 -64
- package/templates/modules/GRAFANA.md +328 -328
- package/templates/modules/MEMORY.md +126 -126
- package/templates/modules/NOTION.md +247 -247
- package/templates/modules/PLAYWRIGHT.md +90 -90
- package/templates/modules/RULEBOOK_MCP.md +156 -156
- package/templates/modules/SERENA.md +337 -337
- package/templates/modules/SUPABASE.md +223 -223
- package/templates/modules/SYNAP.md +69 -69
- package/templates/modules/VECTORIZER.md +63 -63
- package/templates/modules/sequential-thinking.md +42 -42
- package/templates/ralph/ralph-history.bat +4 -4
- package/templates/ralph/ralph-history.sh +5 -5
- package/templates/ralph/ralph-init.bat +5 -5
- package/templates/ralph/ralph-init.sh +5 -5
- package/templates/ralph/ralph-pause.bat +5 -5
- package/templates/ralph/ralph-pause.sh +5 -5
- package/templates/ralph/ralph-run.bat +5 -5
- package/templates/ralph/ralph-run.sh +5 -5
- package/templates/ralph/ralph-status.bat +4 -4
- package/templates/ralph/ralph-status.sh +5 -5
- package/templates/services/AZURE_BLOB.md +184 -184
- package/templates/services/CASSANDRA.md +239 -239
- package/templates/services/DATADOG.md +26 -26
- package/templates/services/DOCKER.md +124 -124
- package/templates/services/DOCKER_COMPOSE.md +168 -168
- package/templates/services/DYNAMODB.md +308 -308
- package/templates/services/ELASTICSEARCH.md +347 -347
- package/templates/services/GCS.md +178 -178
- package/templates/services/HELM.md +194 -194
- package/templates/services/INFLUXDB.md +265 -265
- package/templates/services/KAFKA.md +341 -341
- package/templates/services/KUBERNETES.md +208 -208
- package/templates/services/MARIADB.md +183 -183
- package/templates/services/MEMCACHED.md +242 -242
- package/templates/services/MINIO.md +201 -201
- package/templates/services/MONGODB.md +268 -268
- package/templates/services/MYSQL.md +358 -358
- package/templates/services/NEO4J.md +247 -247
- package/templates/services/OPENTELEMETRY.md +25 -25
- package/templates/services/ORACLE.md +290 -290
- package/templates/services/PINO.md +24 -24
- package/templates/services/POSTGRESQL.md +326 -326
- package/templates/services/PROMETHEUS.md +33 -33
- package/templates/services/RABBITMQ.md +286 -286
- package/templates/services/REDIS.md +292 -292
- package/templates/services/S3.md +298 -298
- package/templates/services/SENTRY.md +23 -23
- package/templates/services/SQLITE.md +294 -294
- package/templates/services/SQLSERVER.md +294 -294
- package/templates/services/WINSTON.md +30 -30
- package/templates/skills/cli/aider/SKILL.md +59 -59
- package/templates/skills/cli/amazon-q/SKILL.md +35 -35
- package/templates/skills/cli/auggie/SKILL.md +42 -42
- package/templates/skills/cli/claude/SKILL.md +42 -42
- package/templates/skills/cli/cline/SKILL.md +42 -42
- package/templates/skills/cli/codebuddy/SKILL.md +30 -30
- package/templates/skills/cli/codeium/SKILL.md +30 -30
- package/templates/skills/cli/codex/SKILL.md +31 -31
- package/templates/skills/cli/continue/SKILL.md +44 -44
- package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
- package/templates/skills/cli/factory/SKILL.md +28 -28
- package/templates/skills/cli/gemini/SKILL.md +45 -45
- package/templates/skills/cli/kilocode/SKILL.md +28 -28
- package/templates/skills/cli/opencode/SKILL.md +28 -28
- package/templates/skills/core/agent-automation/SKILL.md +194 -194
- package/templates/skills/core/dag/SKILL.md +314 -314
- package/templates/skills/core/documentation-rules/SKILL.md +46 -46
- package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
- package/templates/skills/core/rulebook/SKILL.md +176 -176
- package/templates/skills/dev/accessibility/SKILL.md +17 -0
- package/templates/skills/dev/api-design/SKILL.md +15 -0
- package/templates/skills/dev/architect/SKILL.md +17 -0
- package/templates/skills/dev/build-fix/SKILL.md +17 -0
- package/templates/skills/dev/db-design/SKILL.md +15 -0
- package/templates/skills/dev/debug/SKILL.md +16 -0
- package/templates/skills/dev/deploy/SKILL.md +17 -0
- package/templates/skills/dev/docs/SKILL.md +17 -0
- package/templates/skills/dev/migrate/SKILL.md +15 -0
- package/templates/skills/dev/perf/SKILL.md +17 -0
- package/templates/skills/dev/refactor/SKILL.md +17 -0
- package/templates/skills/dev/research/SKILL.md +14 -0
- package/templates/skills/dev/review/SKILL.md +18 -0
- package/templates/skills/dev/security-audit/SKILL.md +17 -0
- package/templates/skills/frameworks/angular/SKILL.md +46 -46
- package/templates/skills/frameworks/django/SKILL.md +93 -93
- package/templates/skills/frameworks/electron/SKILL.md +157 -157
- package/templates/skills/frameworks/flask/SKILL.md +48 -48
- package/templates/skills/frameworks/flutter/SKILL.md +65 -65
- package/templates/skills/frameworks/jquery/SKILL.md +42 -42
- package/templates/skills/frameworks/laravel/SKILL.md +48 -48
- package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
- package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
- package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
- package/templates/skills/frameworks/rails/SKILL.md +76 -76
- package/templates/skills/frameworks/react/SKILL.md +48 -48
- package/templates/skills/frameworks/react-native/SKILL.md +57 -57
- package/templates/skills/frameworks/spring/SKILL.md +49 -49
- package/templates/skills/frameworks/symfony/SKILL.md +46 -46
- package/templates/skills/frameworks/vue/SKILL.md +46 -46
- package/templates/skills/frameworks/zend/SKILL.md +45 -45
- package/templates/skills/ides/copilot/SKILL.md +47 -47
- package/templates/skills/ides/cursor/SKILL.md +53 -53
- package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
- package/templates/skills/ides/replit/SKILL.md +46 -46
- package/templates/skills/ides/tabnine/SKILL.md +39 -39
- package/templates/skills/ides/vscode/SKILL.md +50 -50
- package/templates/skills/ides/windsurf/SKILL.md +46 -46
- package/templates/skills/ides/zed/SKILL.md +42 -42
- package/templates/skills/languages/c/SKILL.md +343 -343
- package/templates/skills/languages/cpp/SKILL.md +753 -753
- package/templates/skills/languages/csharp/SKILL.md +427 -427
- package/templates/skills/languages/elixir/SKILL.md +464 -464
- package/templates/skills/languages/erlang/SKILL.md +371 -371
- package/templates/skills/languages/go/SKILL.md +655 -655
- package/templates/skills/languages/haskell/SKILL.md +187 -187
- package/templates/skills/languages/java/SKILL.md +617 -617
- package/templates/skills/languages/javascript/SKILL.md +641 -641
- package/templates/skills/languages/julia/SKILL.md +107 -107
- package/templates/skills/languages/kotlin/SKILL.md +521 -521
- package/templates/skills/languages/lisp/SKILL.md +110 -110
- package/templates/skills/languages/lua/SKILL.md +84 -84
- package/templates/skills/languages/objectivec/SKILL.md +100 -100
- package/templates/skills/languages/php/SKILL.md +426 -426
- package/templates/skills/languages/python/SKILL.md +692 -692
- package/templates/skills/languages/ruby/SKILL.md +431 -431
- package/templates/skills/languages/rust/SKILL.md +487 -487
- package/templates/skills/languages/sas/SKILL.md +83 -83
- package/templates/skills/languages/scala/SKILL.md +358 -358
- package/templates/skills/languages/solidity/SKILL.md +590 -590
- package/templates/skills/languages/sql/SKILL.md +147 -147
- package/templates/skills/languages/swift/SKILL.md +476 -476
- package/templates/skills/languages/typescript/SKILL.md +302 -302
- package/templates/skills/languages/zig/SKILL.md +275 -275
- package/templates/skills/modules/atlassian/SKILL.md +265 -265
- package/templates/skills/modules/context7/SKILL.md +64 -64
- package/templates/skills/modules/figma/SKILL.md +277 -277
- package/templates/skills/modules/github-mcp/SKILL.md +74 -74
- package/templates/skills/modules/grafana/SKILL.md +338 -338
- package/templates/skills/modules/memory/SKILL.md +73 -73
- package/templates/skills/modules/notion/SKILL.md +257 -257
- package/templates/skills/modules/playwright/SKILL.md +100 -100
- package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
- package/templates/skills/modules/serena/SKILL.md +347 -347
- package/templates/skills/modules/supabase/SKILL.md +233 -233
- package/templates/skills/modules/synap/SKILL.md +79 -79
- package/templates/skills/modules/vectorizer/SKILL.md +73 -73
- package/templates/skills/services/azure-blob/SKILL.md +194 -194
- package/templates/skills/services/cassandra/SKILL.md +249 -249
- package/templates/skills/services/dynamodb/SKILL.md +318 -318
- package/templates/skills/services/elasticsearch/SKILL.md +357 -357
- package/templates/skills/services/gcs/SKILL.md +188 -188
- package/templates/skills/services/influxdb/SKILL.md +275 -275
- package/templates/skills/services/kafka/SKILL.md +351 -351
- package/templates/skills/services/mariadb/SKILL.md +193 -193
- package/templates/skills/services/memcached/SKILL.md +252 -252
- package/templates/skills/services/minio/SKILL.md +211 -211
- package/templates/skills/services/mongodb/SKILL.md +278 -278
- package/templates/skills/services/mysql/SKILL.md +368 -368
- package/templates/skills/services/neo4j/SKILL.md +257 -257
- package/templates/skills/services/oracle/SKILL.md +300 -300
- package/templates/skills/services/postgresql/SKILL.md +336 -336
- package/templates/skills/services/rabbitmq/SKILL.md +296 -296
- package/templates/skills/services/redis/SKILL.md +302 -302
- package/templates/skills/services/s3/SKILL.md +308 -308
- package/templates/skills/services/sqlite/SKILL.md +304 -304
- package/templates/skills/services/sqlserver/SKILL.md +304 -304
- package/templates/skills/workflows/ralph/SKILL.md +309 -309
- package/templates/skills/workflows/ralph/install.sh +87 -87
- package/templates/skills/workflows/ralph/manifest.json +158 -158
|
@@ -1,194 +1,194 @@
|
|
|
1
|
-
<!-- HELM:START -->
|
|
2
|
-
# Helm Instructions
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Follow these Helm best practices for Kubernetes package management.
|
|
5
|
-
|
|
6
|
-
## Chart Structure
|
|
7
|
-
|
|
8
|
-
```
|
|
9
|
-
charts/<name>/
|
|
10
|
-
├── Chart.yaml # Chart metadata (required)
|
|
11
|
-
├── values.yaml # Default values (required)
|
|
12
|
-
├── templates/ # Kubernetes manifests
|
|
13
|
-
│ ├── deployment.yaml
|
|
14
|
-
│ ├── service.yaml
|
|
15
|
-
│ ├── ingress.yaml
|
|
16
|
-
│ ├── configmap.yaml
|
|
17
|
-
│ ├── secret.yaml
|
|
18
|
-
│ ├── hpa.yaml
|
|
19
|
-
│ ├── _helpers.tpl # Template helpers
|
|
20
|
-
│ ├── NOTES.txt # Post-install notes
|
|
21
|
-
│ └── tests/
|
|
22
|
-
│ └── test-connection.yaml
|
|
23
|
-
├── charts/ # Chart dependencies
|
|
24
|
-
└── .helmignore # Files to exclude from packaging
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Chart.yaml Requirements
|
|
28
|
-
|
|
29
|
-
```yaml
|
|
30
|
-
apiVersion: v2
|
|
31
|
-
name: my-app
|
|
32
|
-
description: A Helm chart for my application
|
|
33
|
-
type: application
|
|
34
|
-
version: 1.0.0 # Chart version (bump on every change)
|
|
35
|
-
appVersion: "1.0.0" # Application version (keep in sync)
|
|
36
|
-
maintainers:
|
|
37
|
-
- name: team-name
|
|
38
|
-
email: team@example.com
|
|
39
|
-
dependencies:
|
|
40
|
-
- name: postgresql
|
|
41
|
-
version: "12.x.x"
|
|
42
|
-
repository: "https://charts.bitnami.com/bitnami"
|
|
43
|
-
condition: postgresql.enabled
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## values.yaml Requirements
|
|
47
|
-
|
|
48
|
-
- Document every value with a comment
|
|
49
|
-
- Set sensible production defaults
|
|
50
|
-
- Never hardcode image tags
|
|
51
|
-
|
|
52
|
-
```yaml
|
|
53
|
-
# -- Number of replicas
|
|
54
|
-
replicaCount: 3
|
|
55
|
-
|
|
56
|
-
image:
|
|
57
|
-
# -- Container image repository
|
|
58
|
-
repository: my-registry/my-app
|
|
59
|
-
# -- Image pull policy
|
|
60
|
-
pullPolicy: IfNotPresent
|
|
61
|
-
# -- Image tag (defaults to chart appVersion)
|
|
62
|
-
tag: ""
|
|
63
|
-
|
|
64
|
-
# -- Resource requests and limits
|
|
65
|
-
resources:
|
|
66
|
-
requests:
|
|
67
|
-
memory: "128Mi"
|
|
68
|
-
cpu: "100m"
|
|
69
|
-
limits:
|
|
70
|
-
memory: "512Mi"
|
|
71
|
-
cpu: "500m"
|
|
72
|
-
|
|
73
|
-
# -- Enable/disable autoscaling
|
|
74
|
-
autoscaling:
|
|
75
|
-
enabled: true
|
|
76
|
-
minReplicas: 2
|
|
77
|
-
maxReplicas: 10
|
|
78
|
-
targetCPUUtilizationPercentage: 80
|
|
79
|
-
|
|
80
|
-
# -- Service configuration
|
|
81
|
-
service:
|
|
82
|
-
type: ClusterIP
|
|
83
|
-
port: 80
|
|
84
|
-
|
|
85
|
-
# -- Ingress configuration
|
|
86
|
-
ingress:
|
|
87
|
-
enabled: false
|
|
88
|
-
className: ""
|
|
89
|
-
annotations: {}
|
|
90
|
-
hosts:
|
|
91
|
-
- host: my-app.example.com
|
|
92
|
-
paths:
|
|
93
|
-
- path: /
|
|
94
|
-
pathType: ImplementationSpecific
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Template Best Practices
|
|
98
|
-
|
|
99
|
-
### _helpers.tpl
|
|
100
|
-
Define reusable template fragments:
|
|
101
|
-
```yaml
|
|
102
|
-
{{- define "chart.fullname" -}}
|
|
103
|
-
{{- if .Values.fullnameOverride }}
|
|
104
|
-
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
105
|
-
{{- else }}
|
|
106
|
-
{{- $name := default .Chart.Name .Values.nameOverride }}
|
|
107
|
-
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
108
|
-
{{- end }}
|
|
109
|
-
{{- end }}
|
|
110
|
-
|
|
111
|
-
{{- define "chart.labels" -}}
|
|
112
|
-
helm.sh/chart: {{ include "chart.chart" . }}
|
|
113
|
-
app.kubernetes.io/name: {{ include "chart.name" . }}
|
|
114
|
-
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
115
|
-
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
116
|
-
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
117
|
-
{{- end }}
|
|
118
|
-
|
|
119
|
-
{{- define "chart.selectorLabels" -}}
|
|
120
|
-
app.kubernetes.io/name: {{ include "chart.name" . }}
|
|
121
|
-
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
122
|
-
{{- end }}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Template Patterns
|
|
126
|
-
- Use `{{ include "chart.fullname" . }}` for consistent naming
|
|
127
|
-
- Always add labels: `{{ include "chart.labels" . | nindent 4 }}`
|
|
128
|
-
- Use `{{ .Values.x | default "fallback" }}` for optional values
|
|
129
|
-
- Use `{{- with .Values.x }}` blocks for conditional sections
|
|
130
|
-
- Quote all string values: `{{ .Values.image.tag | quote }}`
|
|
131
|
-
|
|
132
|
-
## Versioning
|
|
133
|
-
|
|
134
|
-
- Bump `Chart.yaml` version on every change (semver: MAJOR.MINOR.PATCH)
|
|
135
|
-
- Keep `appVersion` in sync with the application version
|
|
136
|
-
- Use `helm dependency update` after changing dependencies
|
|
137
|
-
- Tag releases in version control matching chart version
|
|
138
|
-
|
|
139
|
-
## Linting and Validation
|
|
140
|
-
|
|
141
|
-
Run these checks before every commit:
|
|
142
|
-
```bash
|
|
143
|
-
# Lint the chart
|
|
144
|
-
helm lint charts/my-app/
|
|
145
|
-
|
|
146
|
-
# Render templates locally
|
|
147
|
-
helm template my-release charts/my-app/ --values values-dev.yaml
|
|
148
|
-
|
|
149
|
-
# Validate rendered templates
|
|
150
|
-
helm template my-release charts/my-app/ | kubeval --strict
|
|
151
|
-
|
|
152
|
-
# Dry-run against cluster
|
|
153
|
-
helm install my-release charts/my-app/ --dry-run --debug
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## Common Patterns
|
|
157
|
-
|
|
158
|
-
### Environment-Specific Values
|
|
159
|
-
```bash
|
|
160
|
-
# Development
|
|
161
|
-
helm install my-app charts/my-app/ -f values-dev.yaml
|
|
162
|
-
|
|
163
|
-
# Staging
|
|
164
|
-
helm install my-app charts/my-app/ -f values-staging.yaml
|
|
165
|
-
|
|
166
|
-
# Production
|
|
167
|
-
helm install my-app charts/my-app/ -f values-prod.yaml
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Secrets Management
|
|
171
|
-
```yaml
|
|
172
|
-
# Use external-secrets or sealed-secrets
|
|
173
|
-
# Never store plaintext secrets in values.yaml
|
|
174
|
-
externalSecrets:
|
|
175
|
-
enabled: true
|
|
176
|
-
secretStore: aws-secrets-manager
|
|
177
|
-
data:
|
|
178
|
-
- secretKey: DATABASE_URL
|
|
179
|
-
remoteRef:
|
|
180
|
-
key: /myapp/database-url
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Best Practices
|
|
184
|
-
|
|
185
|
-
- Use `helm create` to scaffold new charts with best-practice defaults
|
|
186
|
-
- Include chart tests in `templates/tests/`
|
|
187
|
-
- Document all values in `values.yaml` with comments
|
|
188
|
-
- Use `.helmignore` to exclude development files from chart packages
|
|
189
|
-
- Pin dependency versions (avoid `*` or floating ranges)
|
|
190
|
-
- Use `helm diff` plugin to preview changes before upgrading
|
|
191
|
-
- Store charts in a Helm repository (ChartMuseum, Harbor, OCI registry)
|
|
192
|
-
- Run `helm lint` in CI/CD pipeline
|
|
193
|
-
|
|
194
|
-
<!-- HELM:END -->
|
|
1
|
+
<!-- HELM:START -->
|
|
2
|
+
# Helm Instructions
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Follow these Helm best practices for Kubernetes package management.
|
|
5
|
+
|
|
6
|
+
## Chart Structure
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
charts/<name>/
|
|
10
|
+
├── Chart.yaml # Chart metadata (required)
|
|
11
|
+
├── values.yaml # Default values (required)
|
|
12
|
+
├── templates/ # Kubernetes manifests
|
|
13
|
+
│ ├── deployment.yaml
|
|
14
|
+
│ ├── service.yaml
|
|
15
|
+
│ ├── ingress.yaml
|
|
16
|
+
│ ├── configmap.yaml
|
|
17
|
+
│ ├── secret.yaml
|
|
18
|
+
│ ├── hpa.yaml
|
|
19
|
+
│ ├── _helpers.tpl # Template helpers
|
|
20
|
+
│ ├── NOTES.txt # Post-install notes
|
|
21
|
+
│ └── tests/
|
|
22
|
+
│ └── test-connection.yaml
|
|
23
|
+
├── charts/ # Chart dependencies
|
|
24
|
+
└── .helmignore # Files to exclude from packaging
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Chart.yaml Requirements
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
apiVersion: v2
|
|
31
|
+
name: my-app
|
|
32
|
+
description: A Helm chart for my application
|
|
33
|
+
type: application
|
|
34
|
+
version: 1.0.0 # Chart version (bump on every change)
|
|
35
|
+
appVersion: "1.0.0" # Application version (keep in sync)
|
|
36
|
+
maintainers:
|
|
37
|
+
- name: team-name
|
|
38
|
+
email: team@example.com
|
|
39
|
+
dependencies:
|
|
40
|
+
- name: postgresql
|
|
41
|
+
version: "12.x.x"
|
|
42
|
+
repository: "https://charts.bitnami.com/bitnami"
|
|
43
|
+
condition: postgresql.enabled
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## values.yaml Requirements
|
|
47
|
+
|
|
48
|
+
- Document every value with a comment
|
|
49
|
+
- Set sensible production defaults
|
|
50
|
+
- Never hardcode image tags
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
# -- Number of replicas
|
|
54
|
+
replicaCount: 3
|
|
55
|
+
|
|
56
|
+
image:
|
|
57
|
+
# -- Container image repository
|
|
58
|
+
repository: my-registry/my-app
|
|
59
|
+
# -- Image pull policy
|
|
60
|
+
pullPolicy: IfNotPresent
|
|
61
|
+
# -- Image tag (defaults to chart appVersion)
|
|
62
|
+
tag: ""
|
|
63
|
+
|
|
64
|
+
# -- Resource requests and limits
|
|
65
|
+
resources:
|
|
66
|
+
requests:
|
|
67
|
+
memory: "128Mi"
|
|
68
|
+
cpu: "100m"
|
|
69
|
+
limits:
|
|
70
|
+
memory: "512Mi"
|
|
71
|
+
cpu: "500m"
|
|
72
|
+
|
|
73
|
+
# -- Enable/disable autoscaling
|
|
74
|
+
autoscaling:
|
|
75
|
+
enabled: true
|
|
76
|
+
minReplicas: 2
|
|
77
|
+
maxReplicas: 10
|
|
78
|
+
targetCPUUtilizationPercentage: 80
|
|
79
|
+
|
|
80
|
+
# -- Service configuration
|
|
81
|
+
service:
|
|
82
|
+
type: ClusterIP
|
|
83
|
+
port: 80
|
|
84
|
+
|
|
85
|
+
# -- Ingress configuration
|
|
86
|
+
ingress:
|
|
87
|
+
enabled: false
|
|
88
|
+
className: ""
|
|
89
|
+
annotations: {}
|
|
90
|
+
hosts:
|
|
91
|
+
- host: my-app.example.com
|
|
92
|
+
paths:
|
|
93
|
+
- path: /
|
|
94
|
+
pathType: ImplementationSpecific
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Template Best Practices
|
|
98
|
+
|
|
99
|
+
### _helpers.tpl
|
|
100
|
+
Define reusable template fragments:
|
|
101
|
+
```yaml
|
|
102
|
+
{{- define "chart.fullname" -}}
|
|
103
|
+
{{- if .Values.fullnameOverride }}
|
|
104
|
+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
105
|
+
{{- else }}
|
|
106
|
+
{{- $name := default .Chart.Name .Values.nameOverride }}
|
|
107
|
+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
108
|
+
{{- end }}
|
|
109
|
+
{{- end }}
|
|
110
|
+
|
|
111
|
+
{{- define "chart.labels" -}}
|
|
112
|
+
helm.sh/chart: {{ include "chart.chart" . }}
|
|
113
|
+
app.kubernetes.io/name: {{ include "chart.name" . }}
|
|
114
|
+
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
115
|
+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
116
|
+
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
117
|
+
{{- end }}
|
|
118
|
+
|
|
119
|
+
{{- define "chart.selectorLabels" -}}
|
|
120
|
+
app.kubernetes.io/name: {{ include "chart.name" . }}
|
|
121
|
+
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
122
|
+
{{- end }}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Template Patterns
|
|
126
|
+
- Use `{{ include "chart.fullname" . }}` for consistent naming
|
|
127
|
+
- Always add labels: `{{ include "chart.labels" . | nindent 4 }}`
|
|
128
|
+
- Use `{{ .Values.x | default "fallback" }}` for optional values
|
|
129
|
+
- Use `{{- with .Values.x }}` blocks for conditional sections
|
|
130
|
+
- Quote all string values: `{{ .Values.image.tag | quote }}`
|
|
131
|
+
|
|
132
|
+
## Versioning
|
|
133
|
+
|
|
134
|
+
- Bump `Chart.yaml` version on every change (semver: MAJOR.MINOR.PATCH)
|
|
135
|
+
- Keep `appVersion` in sync with the application version
|
|
136
|
+
- Use `helm dependency update` after changing dependencies
|
|
137
|
+
- Tag releases in version control matching chart version
|
|
138
|
+
|
|
139
|
+
## Linting and Validation
|
|
140
|
+
|
|
141
|
+
Run these checks before every commit:
|
|
142
|
+
```bash
|
|
143
|
+
# Lint the chart
|
|
144
|
+
helm lint charts/my-app/
|
|
145
|
+
|
|
146
|
+
# Render templates locally
|
|
147
|
+
helm template my-release charts/my-app/ --values values-dev.yaml
|
|
148
|
+
|
|
149
|
+
# Validate rendered templates
|
|
150
|
+
helm template my-release charts/my-app/ | kubeval --strict
|
|
151
|
+
|
|
152
|
+
# Dry-run against cluster
|
|
153
|
+
helm install my-release charts/my-app/ --dry-run --debug
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Common Patterns
|
|
157
|
+
|
|
158
|
+
### Environment-Specific Values
|
|
159
|
+
```bash
|
|
160
|
+
# Development
|
|
161
|
+
helm install my-app charts/my-app/ -f values-dev.yaml
|
|
162
|
+
|
|
163
|
+
# Staging
|
|
164
|
+
helm install my-app charts/my-app/ -f values-staging.yaml
|
|
165
|
+
|
|
166
|
+
# Production
|
|
167
|
+
helm install my-app charts/my-app/ -f values-prod.yaml
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Secrets Management
|
|
171
|
+
```yaml
|
|
172
|
+
# Use external-secrets or sealed-secrets
|
|
173
|
+
# Never store plaintext secrets in values.yaml
|
|
174
|
+
externalSecrets:
|
|
175
|
+
enabled: true
|
|
176
|
+
secretStore: aws-secrets-manager
|
|
177
|
+
data:
|
|
178
|
+
- secretKey: DATABASE_URL
|
|
179
|
+
remoteRef:
|
|
180
|
+
key: /myapp/database-url
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Best Practices
|
|
184
|
+
|
|
185
|
+
- Use `helm create` to scaffold new charts with best-practice defaults
|
|
186
|
+
- Include chart tests in `templates/tests/`
|
|
187
|
+
- Document all values in `values.yaml` with comments
|
|
188
|
+
- Use `.helmignore` to exclude development files from chart packages
|
|
189
|
+
- Pin dependency versions (avoid `*` or floating ranges)
|
|
190
|
+
- Use `helm diff` plugin to preview changes before upgrading
|
|
191
|
+
- Store charts in a Helm repository (ChartMuseum, Harbor, OCI registry)
|
|
192
|
+
- Run `helm lint` in CI/CD pipeline
|
|
193
|
+
|
|
194
|
+
<!-- HELM:END -->
|