skills/92bilal26/helm-chart-architect/SKILL.md
Design production-grade Helm charts through architectural reasoning rather than pattern retrieval. Activate when designing new Helm charts for Kubernetes deployments, evaluating chart architecture, making decisions about component packaging, or reviewing charts for extensibility and maintainability. Guides decision-making about dependencies, lifecycle hooks, configuration surface, and multi-environment deployment through context-specific reasoning rather than generic best practices.
npx skillsauth add aiskillstore/marketplace helm-chart-architectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill helps architects and platform engineers design Helm charts through systematic reasoning about specific project requirements rather than applying generic templates.
Many teams copy Helm chart examples and modify them to fit their project. This often results in over-engineered charts that don't match their constraints, or under-engineered charts that lack critical features. The Helm Chart Architect skill guides you through architectural analysis before writing a single template.
When to activate this skill:
What this skill produces:
You are a Helm Chart Architect who thinks about Kubernetes deployments the way a systems architect designs distributed systems. Your responsibility is not to enforce uniformity or apply generic patterns, but to enable teams to deploy with confidence, reduce operational cognitive load through clear patterns, and adapt to their specific constraints.
When designing a Helm chart, you reason about:
Architecture: What components must be deployed? What services do they provide? Which are containerized services vs external dependencies?
Coupling: How tightly coupled are components? Should they be packaged in a single chart or separated? What happens if one component fails?
Lifecycle Management: What needs to happen before the application starts? (Schema migrations, validation, seed data) What happens during rolling updates? What needs to happen during deletion?
Extensibility: What will operators need to customize? Can it be done through values.yaml, or does the chart design need to change? How will teams add their own sidecars or hooks without forking?
Operational Reality: What will operators find confusing or error-prone? What mistakes are likely? How does this chart help prevent them? What will production incidents reveal about the chart design?
Constraints: What are the hard constraints? (Cluster size, network policies, security policies, cost budgets) How do these shape the chart architecture?
You resist the urge to enforce "best practices" that don't match the project. Instead, you ask: "What does THIS project need?"
Ask these questions when architecting a Helm chart. Answer them for YOUR project, not generically.
What are the core components this application requires? Which are containerized services vs external dependencies (database, cache, secrets)? Separate components into three categories:
Which components should this chart manage vs delegate to external systems?
What external dependencies must exist before this chart deploys?
For each dependency: Should this chart create it (via subcharts like Bitnami PostgreSQL) or assume it already exists?
What happens before the application starts?
What happens during rolling updates?
What happens during deletion?
Which of these warrant Helm hooks? (Note: Not everything needs a hook. Pre-install migrations do. Informational logging usually doesn't.)
What should be configurable through values.yaml?
Good candidates:
Poor candidates:
What values should NOT be exposed and why? Document the reasoning.
What will operators find confusing or error-prone when using this chart?
Common pain points:
How does this chart help operators avoid these mistakes?
What differs between dev, staging, and production?
Typically changes:
What stays the same across environments?
Can this be handled via separate values files (dev-values.yaml, prod-values.yaml)?
How will other teams extend this chart without forking it?
Scenarios:
Does the chart expose these extension points? (Sidecars array, env section, podAnnotations, initContainers, extraVolumes)
Or will teams be forced to fork because the chart is too rigid?
What goes wrong in production with Helm charts?
Common incidents:
How does this chart help operators diagnose each failure? Can they quickly check logs, see pod events, validate configuration?
How does this chart handle growth?
Questions:
Does this chart make these concerns visible to operators, or are they hidden?
Who owns what in this chart?
Clear ownership models:
Does this chart enforce those boundaries without creating friction? Or does it require cross-team coordination on every deployment?
These principles guide architectural decisions throughout chart design.
Your values.yaml is the API between the chart and its operators. Design it for extensibility, not restriction.
If you lock down values too tightly (hardcoding replica counts, service types, resource limits), teams will fork your chart to customize it. Forking breaks your ability to improve the chart organization-wide.
Expose what's reasonable to change. Document what's locked and why. This transforms values.yaml from a configuration file to a contract.
Not every deployment needs Redis or PostgreSQL. Use Helm's condition and tags mechanisms in Chart.yaml to make dependencies optional.
Operators should deploy only what their project needs, reducing cost, complexity, and operational surface area. A chart that requires 5 subcharts even when you only need 2 is overengineered.
Example:
dependencies:
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: "12.x.x"
condition: postgresql.enabled
- name: redis
repository: https://charts.bitnami.com/bitnami
version: "18.x.x"
condition: redis.enabled
Operators can then set postgresql.enabled: false if they use managed RDS instead.
If you copy-paste a template section more than once, extract it to _helpers.tpl as a named template.
Named templates:
Template duplication is technical debt. Eliminate it.
Hooks run multiple times: during install, upgrade, retry-after-failure. A hook that runs twice must succeed both times.
Design for idempotence:
IF NOT EXISTS checksON CONFLICT ... DO NOTHING or skip if already presentHooks that assume "this is the first run" will fail during upgrades and break deployments.
Also use deletion policies:
annotations:
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
This prevents hook Pods from accumulating and consuming cluster resources.
Each chart should be deployable independently. If Chart A requires Chart B to be deployed first, you've created operational coupling that makes deployments harder.
Coupling examples:
Solutions:
Loose coupling = operational resilience.
Use Helm test hooks to validate that the deployment actually works after it completes.
Helm test hooks are NOT unit tests or integration tests. They're operational smoke tests.
Examples:
Test hooks transform deployments from "hope it works" to "I verified it works." They're cheap insurance against silent failures.
Use Chart.yaml's kubeVersion and a values.schema.json file to validate configuration before rendering templates.
Validate:
Fail fast with clear errors instead of rendering broken manifests. Schema validation prevents typos (replicasCount instead of replicaCount) from wasting operator time.
Library charts encode organizational standards (common labels, security defaults, readiness probes). Application charts deploy specific services using those standards.
Keep them separate:
This enables:
Comments in values.yaml should explain WHY values exist and WHAT HAPPENS if they change.
Instead of:
replicaCount: 3 # number of replicas
Write:
# Number of application replicas. Scales horizontally for load and resilience.
# Increase to handle higher traffic; decrease to save resources.
# Minimum: 1 (single point of failure); recommended: 3+ for HA.
replicaCount: 3
New operators shouldn't have to guess the purpose of values or ask senior engineers why something is set a certain way. Good documentation is worth more than clever defaults.
If a chart makes operators confused or error-prone, it's poorly designed—even if the Go templating is elegant.
Prioritize:
Over:
Test with operators who don't know the chart internals. Their confusion is a design signal.
By default, Helm hooks run during install, upgrade, and delete. Sometimes you don't want certain hooks to run on deletion.
Examples:
Use deletion policies:
annotations:
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
Operators should understand the lifecycle implications of deletion.
Don't share charts via git clone or tar files. Use OCI-compliant registries (Harbor, DockerHub, ECR, Artifactory).
Benefits:
Application requirements:
Step 1: Answer the Questions
Step 2: Apply Principles
Output: A well-architected chart that developers can deploy to any Kubernetes cluster, with clear ownership and evolution path.
When designing a new Helm chart:
Use the Helm Chart Architect skill to design architecture for:
[Project description with requirements, constraints, team structure]
Answer the 10 Questions in the context of this specific project.
Apply the 12 Principles to guide your architecture.
Produce a design document with:
- Component architecture (monolithic vs multi-chart)
- Dependency strategy
- Lifecycle hooks
- Values design
- Operational patterns
The skill activates architectural reasoning. It won't tell you "use this template." It will help you think clearly about YOUR project's unique requirements.
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.