- 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 tools 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
- Generated the UI component
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.
helm-chart-api-and-release-design.tsx
TSX · React component
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
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
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 12 days ago
- Passed all security checks, Safe to install