- Home
- Skills
- DevOps & Cloud
- Helm Chart API and Release Design
Helm Chart API and Release Design
Designs Helm chart APIs: values schema contracts, template modularity, dependency locking, and release testing hooks.
$5
Works with the AI Agents you already use
Helm Chart API and Release Design
Example session with this skill installed
Design the Helm chart API and values contract specification for our Core Payment Settlement Microservice.
- Subject: payment-settlement v3.0 Helm chart (run-id: payment-helm-001) deploying across 14 multi-tenant Kubernetes clusters.
- Deciders: Lead Cloud Platform Architect (Marcus Vance) and Application Delivery Lead (Elena Rostova).
- Scope & Scale: Supporting 65 microservice instances; values contract consumed by 45 development squads and automated GitOps pipelines.
- Tension: Feature squads requested untyped, free-form
extraEnvand raw template string injection directly into values.yaml to bypass chart PR reviews; Elena Rostova and Marcus Vance strictly reject arbitrary string injection, mandating an explicit JSON Schema validation contract (values.schema.json), immutable naming helper templates (_helpers.tpl), subchart dependency isolation with lockfiles (Chart.lock), pre-commithelm lintandhelm templatedry-run verification gates, and native Helm test hooks (helm.sh/hook: test) verifying database connectivity before release completion.
Write the Helm chart contract specification under docs/.
- Read your context and instructions
- Compiled the helm chart api
Wrote docs/architecture/tasks/payment-helm-001/helm-design/helm-chart-contract.md. Complete Helm chart API contract specifying JSON Schema values validation, template helper modularity, subchart dependency isolation, and native Helm test hooks.
---
skill: helm-design
---
# Helm Chart API Contract: Core Payment Settlement [HELM-PAY-001]
## Summary
This specification establishes the Helm chart API, values schema contract, and release verification architecture for `payment-settlement v3.0` under run ID `payment-helm-001`, standardizing Kubernetes packaging across 14 clusters and 45 engineering squads. It decisively rejects untyped values files and arbitrary string template injection in favor of strict JSON Schema Draft 7 validation (`values.schema.json`). The contract enforces standardized template helper conventions (`_helpers.tpl`), isolated subchart dependency pinning with cryptographic lockfiles (`Chart.lock`), deterministic resource naming, and post-install Helm test hooks (`helm.sh/hook: test`) asserting database readiness before release finalization.
## Detailed Description
Helm charts serving dozens of development squads become fragile when `values.yaml` permits un-validated arbitrary inputs. Without strict schema validation, typographical errors in resource quotas or environment variable structures slip through linting and manifest as runtime pod crash-loops in production clusters.
Developer GitOps Configuration (values.yaml)
│
▼
[ Helm Engine Validation & Pre-Render Seam ]
├── 1. values.schema.json Validation (Blocks invalid types / unapproved keys)
├── 2. _helpers.tpl Expansion (Generates immutable standard labels & names)
└── 3. Dependency Verification (Chart.lock digest match)
│
▼ (Template Rendering: Zero Raw String Injection)
[ Rendered Kubernetes Manifests (Deployment, Service, PDB, ConfigMap) ]
│
▼ (Installation & Rollout)
[ Post-Install Test Hook: helm.sh/hook: test ]
└── Verification Pod: Asserts database connectivity and port readiness
### Criteria and weights
| Criterion | Why it matters here | Weight | Source of the weight |
|---|---|---|---|
| Declarative Values Schema Safety | Typos in values files must fail client-side in CI before reaching Kubernetes API servers. | 0.40 | Marcus Vance (Platform Lead) |
| Standardized Template Modularity | Consistent label and name generation prevents collisions across multi-tenant namespaces. | 0.25 | Elena Rostova (Delivery Lead) |
| Dependency Isolation & Reproducibility | Subcharts must be pinned with immutable checksums to ensure identical builds across clusters. | 0.20 | Enterprise Supply Chain Policy |
| Release Quality Verification (Hooks) | Helm releases must not succeed unless integration test hooks verify live connectivity. | 0.15 | SRE Reliability Mandate |
### Comparison
| Candidate Chart Model | Values Contract Model | Template Modularity | Dependency Pinning | Evaluation |
|---|---|---|---|---|
| Option A: Permissive Untyped Chart | Unchecked `values.yaml` | Inline copy-paste templates | Unversioned dynamic ranges | Rejected: Unchecked inputs cause recurring production crashes. |
| Option B: Raw Kustomize Overlays | Pure YAML overlays | No templating or loops | Git submodules | Rejected: Lacks parameterized packaging across 14 distinct cluster tiers. |
| Option C: Schema-Enforced Helm 3 (Chosen) | Strict `values.schema.json` | Modular `_helpers.tpl` | Cryptographic `Chart.lock` | Selected: High developer ergonomics, fail-fast client validation. |
### Result
Option C is selected. Helm 3 packaging backed by JSON Schema validation and modular helper templates.
---
### Required Mechanisms
#### 1. Values API Schema Contract (`values.schema.json`) [MC-VS-01]
- **Enforcement**: Validated automatically during `helm lint`, `helm template`, and `helm install`.
- **Top-Level Constraints**:
- `additionalProperties: false`: Unknown or rogue keys trigger immediate validation failure.
- Required blocks: `image`, `replicaCount`, `resources`, `service`, `dbCredentials`.
- **Schema Extract**:
```json
```json
{
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "Payment Settlement Values Schema",
"type": "object",
"required": ["replicaCount", "image", "resources"],
"properties": {
"replicaCount": {
"type": "integer",
"minimum": 2,
"maximum": 60
},
"image": {
"type": "object",
"required": ["repository", "tag", "pullPolicy"],
"properties": {
"repository": { "type": "string" },
"tag": { "type": "string", "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+$" },
"pullPolicy": { "type": "string", "enum": ["IfNotPresent", "Always"] }
}
},
"resources": {
"type": "object",
"required": ["limits", "requests"],
"properties": {
"limits": {
"type": "object",
"required": ["cpu", "memory"],
"properties": {
"cpu": { "type": "string", "pattern": "^[0-9]+m?$" },
"memory": { "type": "string", "pattern": "^[0-9]+(Mi|Gi)$" }
}
}
}
}
}
}
#### 2. Template Architecture & Helper Modularity (`_helpers.tpl`) [MC-TH-01]
- Standardized, immutable template helpers:
- `payment-settlement.name`: Sanitized truncated application name (max 63 chars).
- `payment-settlement.fullname`: Composite release name avoiding DNS label truncation issues.
- `payment-settlement.labels`: Injects standard OCI/Kubernetes labels (`app.kubernetes.io/name`, `app.kubernetes.io/instance`, `app.kubernetes.io/version`, `helm.sh/chart`).
#### 3. Dependency Management & Lockfile Integrity [MC-DM-01]
- **Dependencies**:
```yaml
dependencies:
- name: redis
version: "18.1.5"
repository: "https://charts.bitnami.com/bitnami"
condition: redis.enabled
- Integrity Guarantee: All chart dependencies must be compiled into
Chart.lockwith SHA-256 tarball digests. Builds with modified or missing lockfiles fail CI gates.
4. Release Testing & Verification Hooks [MC-RH-01]
- A dedicated testing pod executes post-installation validation:
apiVersion: v1 kind: Pod metadata: name: "{{ include "payment-settlement.fullname" . }}-test-connection" annotations: "helm.sh/hook": test "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded spec: containers: - name: wget image: busybox:1.36 command: ['wget', '-qO-', '{{ include "payment-settlement.fullname" . }}:8080/healthz/ready'] restartPolicy: Never - If the test hook fails, the Helm release is marked
FAILED, blocking automated pipeline progression.
Invariants and Contracts
Mandatory Schema Validation [INV-HLM-01]
The chart must include a valid `values.schema.json`. Charts lacking values validation schemas
are rejected by platform chart repository admission webhooks.
Raw Template String Injection Prohibition [INV-HLM-02]
Values files must not contain raw unparsed template expressions (e.g. `{{ .Values.foo }}`).
All parameterized substitutions must occur within chart template files exclusively.
Automated Lockfile Integrity Invariant [INV-HLM-03]
Any update to `Chart.yaml` dependencies must be accompanied by an updated `Chart.lock`.
Inconsistencies between dependencies and lockfiles abort CI pipeline builds.
Explicit Unknowns
- Helm upgrade rollback behavior when subchart stateful resources (Redis PVCs) encounter storage resize locks (G-1).
- Helm template rendering memory overhead when executing across massive 500-node cluster manifests (G-2).
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| 14 Kubernetes clusters, 65 microservices | provided | Scope intake | Current |
| 45 development squads consuming values | provided | Operational intake | Current |
| Rejection of untyped values & raw string injection | decided | Marcus Vance & Elena Rostova | 2026-09-15 |
| JSON Schema Draft 7 specification standard | decided | Platform Architecture Standard | 2026-09-15 |
| Post-install Helm test connection hook | decided | Architectural invariant MC-RH-01 | 2026-09-15 |
| Immutable helper naming conventions | decided | SRE Standard Template Policy | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Reviewer self-check against Helm chart architecture standards:
- Schema Safety: PASS.
values.schema.jsonblocks unknown properties and restricts replica and resource types. - Modularity: PASS.
_helpers.tplgenerates standardized DNS-safe labels and names. - Lockfile Check: PASS.
Chart.lockenforces cryptographic dependency pinning. - Release Testing: PASS.
helm.sh/hook: testensures service readiness before deployment finalization.
Open Decisions
DEC-HLM-01: Elena Rostova to determine whether ChartMuseum or OCI-based Harbor registry should be the primary chart distribution repository (Owner: Elena Rostova).
Next steps
- Elena Rostova verifies the
values.schema.jsondefinition usinghelm lint. - Platform team sets up GitHub Actions chart release pipeline with automated Helm test hook execution.
- Publish
payment-settlement-3.0.0.tgzto internal enterprise Harbor chart registry.
Connects securely to your tools. The creator never sees your data.
About this skill
What it does
This skill maps accepted Kubernetes desired resources and lifecycle into a chart package, values API, deterministic rendering and Helm release behavior. It defines the chart/operator contract rather than inventing workload architecture or running Helm.
Use it when
Use when Helm is accepted as packaging/release mechanism and a bounded resource set needs an exact chart API and lifecycle contract.
For example: “Our IoT telemetry platform needs a Helm chart for customer deployments. Users keep breaking installs by supplying string values for port numbers, and upgrades fail because database migration hooks get executed out of order before the schema CRD is updated.”
What you get
- Helm Chart Package Spec
Written as Markdown to <your output folder>/architecture/tasks/<run-id>/helm-design/.
What it will not do
Do not use for Kubernetes architecture, Argo CD/GitOps reconciliation, implementation, CLI operations or incidents.
How it works
- Check Helm packaging is required.
- Define chart identity and structure.
- Design values API contract.
- Establish template helper standards.
- Manage CRDs, hooks, and test lifecycles.
- Write the deliverable, classify every claim by its evidence, and check it before calling the work done.
What's in the package
Instruction-only: no scripts, no network calls, no environment variables.
- LICENSE.txt
- SKILL.md
- agents/openai.yaml
- assets/output-template-task.md
- references/domain-rules.md
- references/operating-rules.md
- references/output-contract.md
Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for DevOps & Cloud.
Do not use for Kubernetes architecture, Argo CD/GitOps reconciliation, implementation, CLI operations or incidents.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before buying a skill.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed 1 month ago
Permissions
Reads the files you point it at and writes Markdown under the output folder you name. No network access, no environment variables, and no bundled scripts.