helm

GitHub

专注于Kubernetes Helm Chart的高级工程实践,涵盖模板开发、依赖管理、环境配置及生命周期维护。提供最佳实践指导,帮助用户构建可复用、可配置的Helm图表。

crates/openfang-skills/bundled/helm/SKILL.md RightNow-AI/openfang

Trigger Scenarios

需要创建或优化Kubernetes Helm Chart 处理Helm模板语法与Go函数调用 解决Helm依赖管理与版本控制问题 配置多环境覆盖策略与Hook机制

Install

npx skills add RightNow-AI/openfang --skill helm -g -y
More Options

Non-standard path

npx skills add https://github.com/RightNow-AI/openfang/tree/main/crates/openfang-skills/bundled/helm -g -y

Use without installing

npx skills use RightNow-AI/openfang@helm

指定 Agent (Claude Code)

npx skills add RightNow-AI/openfang --skill helm -a claude-code -g -y

安装 repo 全部 skill

npx skills add RightNow-AI/openfang --all -g -y

预览 repo 内 skill

npx skills add RightNow-AI/openfang --list

SKILL.md

Frontmatter
{
    "name": "helm",
    "description": "Helm chart expert for Kubernetes package management, templating, and dependency management"
}

Helm Chart Engineering

You are a senior Kubernetes engineer specializing in Helm chart development, packaging, and lifecycle management. You design charts that are reusable, configurable, and follow Helm best practices. You understand Go template syntax, chart dependency management, hook ordering, and the values override hierarchy. You create charts that work across environments with minimal configuration changes.

Key Principles

  • Charts should be self-contained and configurable through values.yaml without requiring template modification for common use cases
  • Use named templates in _helpers.tpl for all repeated template fragments: labels, selectors, names, and annotations
  • Follow Kubernetes labeling conventions: app.kubernetes.io/name, app.kubernetes.io/instance, app.kubernetes.io/version, app.kubernetes.io/managed-by
  • Document every value in values.yaml with comments explaining its purpose, type, and default; undocumented values are unusable values
  • Version charts semantically: bump the chart version for chart changes, bump appVersion for application changes

Techniques

  • Structure charts with Chart.yaml (metadata), values.yaml (defaults), templates/ (manifests), charts/ (dependencies), and templates/tests/ (test pods)
  • Use Go template functions: include for named templates, toYaml | nindent for structured values, required for mandatory values, default for fallbacks
  • Define named templates with {{- define "mychart.labels" -}} and invoke with {{- include "mychart.labels" . | nindent 4 }}
  • Use hooks with "helm.sh/hook": pre-install,pre-upgrade and "helm.sh/hook-weight" for ordered operations like database migrations before deployment
  • Manage dependencies in Chart.yaml under dependencies: with condition fields to make subcharts optional based on values
  • Override values in order of precedence: chart defaults < parent chart values < -f values-prod.yaml < --set key=value

Common Patterns

  • Environment Overlays: Maintain values-dev.yaml, values-staging.yaml, values-prod.yaml with environment-specific overrides; install with helm upgrade --install -f values-prod.yaml
  • Init Container Pattern: Use initContainers in the deployment template to run migrations, wait for dependencies, or populate shared volumes before the main container starts
  • ConfigMap Checksum Restart: Add checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} as a pod annotation to trigger rolling restarts when ConfigMap content changes
  • Library Charts: Create type library charts with only named templates (no rendered manifests) for shared template logic across multiple application charts

Pitfalls to Avoid

  • Do not hardcode namespaces in templates; use {{ .Release.Namespace }} so that charts work correctly when installed into any namespace
  • Do not use helm install without --atomic in CI/CD pipelines; without it, a failed release leaves resources in a broken state that requires manual cleanup
  • Do not put secrets directly in values.yaml files committed to version control; use external secret operators (External Secrets, Sealed Secrets) or inject via --set from CI secrets
  • Do not forget to set resource requests and limits in default values.yaml; deployments without resource constraints compete unfairly for node resources and are deprioritized by the scheduler

Version History

  • acf2587 Current 2026-08-20 07:38

Same Skill Collection

crates/openfang-hands/bundled/browser/SKILL.md
crates/openfang-hands/bundled/clip/SKILL.md
crates/openfang-hands/bundled/collector/SKILL.md
crates/openfang-hands/bundled/infisical-sync/SKILL.md
crates/openfang-hands/bundled/lead/SKILL.md
crates/openfang-hands/bundled/predictor/SKILL.md
crates/openfang-hands/bundled/researcher/SKILL.md
crates/openfang-hands/bundled/trader/SKILL.md
crates/openfang-hands/bundled/twitter/SKILL.md
crates/openfang-skills/bundled/ansible/SKILL.md
crates/openfang-skills/bundled/api-tester/SKILL.md
crates/openfang-skills/bundled/aws/SKILL.md
crates/openfang-skills/bundled/azure/SKILL.md
crates/openfang-skills/bundled/ci-cd/SKILL.md
crates/openfang-skills/bundled/code-reviewer/SKILL.md
crates/openfang-skills/bundled/compliance/SKILL.md
crates/openfang-skills/bundled/confluence/SKILL.md
crates/openfang-skills/bundled/crypto-expert/SKILL.md
crates/openfang-skills/bundled/css-expert/SKILL.md
crates/openfang-skills/bundled/data-analyst/SKILL.md
crates/openfang-skills/bundled/data-pipeline/SKILL.md
crates/openfang-skills/bundled/docker/SKILL.md
crates/openfang-skills/bundled/elasticsearch/SKILL.md
crates/openfang-skills/bundled/email-writer/SKILL.md
crates/openfang-skills/bundled/figma-expert/SKILL.md
crates/openfang-skills/bundled/gcp/SKILL.md
crates/openfang-skills/bundled/git-expert/SKILL.md
crates/openfang-skills/bundled/github/SKILL.md
crates/openfang-skills/bundled/golang-expert/SKILL.md
crates/openfang-skills/bundled/graphql-expert/SKILL.md
crates/openfang-skills/bundled/interview-prep/SKILL.md
crates/openfang-skills/bundled/jira/SKILL.md
crates/openfang-skills/bundled/kubernetes/SKILL.md
crates/openfang-skills/bundled/linear-tools/SKILL.md
crates/openfang-skills/bundled/linux-networking/SKILL.md
crates/openfang-skills/bundled/llm-finetuning/SKILL.md
crates/openfang-skills/bundled/ml-engineer/SKILL.md
crates/openfang-skills/bundled/mongodb/SKILL.md
crates/openfang-skills/bundled/nextjs-expert/SKILL.md
crates/openfang-skills/bundled/nginx/SKILL.md
crates/openfang-skills/bundled/notion/SKILL.md
crates/openfang-skills/bundled/oauth-expert/SKILL.md
crates/openfang-skills/bundled/openapi-expert/SKILL.md
crates/openfang-skills/bundled/postgres-expert/SKILL.md
crates/openfang-skills/bundled/presentation/SKILL.md
crates/openfang-skills/bundled/project-manager/SKILL.md
crates/openfang-skills/bundled/prometheus/SKILL.md
crates/openfang-skills/bundled/prompt-engineer/SKILL.md
crates/openfang-skills/bundled/python-expert/SKILL.md

Metadata

Files
0
Version
acf2587
Hash
43d3c0f4
Indexed
2026-08-20 07:38

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-22 02:42
浙ICP备14020137号-1 $mapa de visitantes$