helm-chart-builder
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseHelm Chart Builder
Helm Chart 构建工具
Production-grade Helm charts. Sensible defaults. Secure by design. No cargo-culting.
Opinionated Helm workflow that turns ad-hoc Kubernetes manifests into maintainable, testable, reusable charts. Covers chart structure, values design, template patterns, dependency management, and security hardening.
Not a Helm tutorial — a set of concrete decisions about how to build charts that operators trust and developers don't fight.
生产级Helm Chart。合理默认配置。设计即安全。拒绝盲目照搬。
这套 opinionated 的Helm工作流可将临时Kubernetes清单转换为可维护、可测试、可复用的Chart。涵盖Chart结构、values设计、模板模式、依赖管理和安全加固。
这不是Helm教程——而是一组关于如何构建运维人员信任、开发人员无需费力维护的Chart的具体决策。
Slash Commands
斜杠命令
| Command | What it does |
|---|---|
| Scaffold a production-ready Helm chart with best-practice structure |
| Analyze an existing chart for issues — missing labels, hardcoded values, template anti-patterns |
| Audit chart for security issues — RBAC, network policies, pod security, secrets handling |
| 命令 | 功能 |
|---|---|
| 基于最佳实践结构搭建生产就绪的Helm Chart |
| 分析现有Chart的问题——缺失标签、硬编码值、模板反模式 |
| 审计Chart的安全问题——RBAC、网络策略、Pod安全、密钥处理 |
When This Skill Activates
技能触发场景
Recognize these patterns from the user:
- "Create a Helm chart for this service"
- "Review my Helm chart"
- "Is this chart secure?"
- "Design a values.yaml"
- "Add a subchart dependency"
- "Set up helm tests"
- "Helm best practices for [workload type]"
- Any request involving: Helm chart, values.yaml, Chart.yaml, templates, helpers, _helpers.tpl, subcharts, helm lint, helm test
If the user has a Helm chart or wants to package Kubernetes resources → this skill applies.
识别用户的以下请求模式:
- "为这个服务创建Helm Chart"
- "审核我的Helm Chart"
- "这个Chart安全吗?"
- "设计values.yaml"
- "添加子Chart依赖"
- "设置helm测试"
- "[工作负载类型]的Helm最佳实践"
- 任何涉及以下内容的请求:Helm Chart、values.yaml、Chart.yaml、模板、助手、_helpers.tpl、子Chart、helm lint、helm test
如果用户已有Helm Chart或想要打包Kubernetes资源 → 适用本技能。
Workflow
工作流
/helm:create
— Chart Scaffolding
/helm:create/helm:create
— Chart脚手架搭建
/helm:create-
Identify workload type
- Web service (Deployment + Service + Ingress)
- Worker (Deployment, no Service)
- CronJob (CronJob + ServiceAccount)
- Stateful service (StatefulSet + PVC + Headless Service)
- Library chart (no templates, only helpers)
-
Scaffold chart structure
mychart/ ├── Chart.yaml # Chart metadata and dependencies ├── values.yaml # Default configuration ├── values.schema.json # Optional: JSON Schema for values validation ├── .helmignore # Files to exclude from packaging ├── templates/ │ ├── _helpers.tpl # Named templates and helper functions │ ├── deployment.yaml # Workload resource │ ├── service.yaml # Service exposure │ ├── ingress.yaml # Ingress (if applicable) │ ├── serviceaccount.yaml # ServiceAccount │ ├── hpa.yaml # HorizontalPodAutoscaler │ ├── pdb.yaml # PodDisruptionBudget │ ├── networkpolicy.yaml # NetworkPolicy │ ├── configmap.yaml # ConfigMap (if needed) │ ├── secret.yaml # Secret (if needed) │ ├── NOTES.txt # Post-install usage instructions │ └── tests/ │ └── test-connection.yaml └── charts/ # Subcharts (dependencies) -
Apply Chart.yaml best practices
METADATA ├── apiVersion: v2 (Helm 3 only — never v1) ├── name: matches directory name exactly ├── version: semver (chart version, not app version) ├── appVersion: application version string ├── description: one-line summary of what the chart deploys └── type: application (or library for shared helpers) DEPENDENCIES ├── Pin dependency versions with ~X.Y.Z (patch-level float) ├── Use condition field to make subcharts optional ├── Use alias for multiple instances of same subchart └── Run helm dependency update after changes -
Generate values.yaml with documentation
- Every value has an inline comment explaining purpose and type
- Sensible defaults that work for development
- Override-friendly structure (flat where possible, nested only when logical)
- No hardcoded cluster-specific values (image registry, domain, storage class)
-
Validatebash
python3 scripts/chart_analyzer.py mychart/ helm lint mychart/ helm template mychart/ --debug
-
识别工作负载类型
- Web服务(Deployment + Service + Ingress)
- 工作节点(Deployment,无Service)
- CronJob(CronJob + ServiceAccount)
- 有状态服务(StatefulSet + PVC + Headless Service)
- 库Chart(无模板,仅包含助手)
-
搭建Chart结构
mychart/ ├── Chart.yaml # Chart元数据与依赖 ├── values.yaml # 默认配置 ├── values.schema.json # 可选:values验证用JSON Schema ├── .helmignore # 打包时排除的文件 ├── templates/ │ ├── _helpers.tpl # 命名模板与助手函数 │ ├── deployment.yaml # 工作负载资源 │ ├── service.yaml # 服务暴露 │ ├── ingress.yaml # Ingress(如适用) │ ├── serviceaccount.yaml # ServiceAccount │ ├── hpa.yaml # HorizontalPodAutoscaler │ ├── pdb.yaml # PodDisruptionBudget │ ├── networkpolicy.yaml # NetworkPolicy │ ├── configmap.yaml # ConfigMap(如需要) │ ├── secret.yaml # Secret(如需要) │ ├── NOTES.txt # 安装后使用说明 │ └── tests/ │ └── test-connection.yaml └── charts/ # 子Chart(依赖) -
应用Chart.yaml最佳实践
元数据 ├── apiVersion: v2(仅Helm 3版本——绝不使用v1) ├── name: 与目录名称完全匹配 ├── version: 语义化版本(Chart版本,而非应用版本) ├── appVersion: 应用版本字符串 ├── description: 一行文字概述Chart部署的内容 └── type: application(或library用于共享助手) 依赖 ├── 使用~X.Y.Z锁定依赖版本(补丁级浮动) ├── 使用condition字段将子Chart设为可选 ├── 使用alias处理同一子Chart的多个实例 └修改后运行helm dependency update -
生成带文档的values.yaml
- 每个值都有行内注释说明用途和类型
- 适用于开发环境的合理默认值
- 易于覆盖的结构(尽可能扁平化,仅在逻辑需要时嵌套)
- 无硬编码的集群特定值(镜像仓库、域名、存储类)
-
验证bash
python3 scripts/chart_analyzer.py mychart/ helm lint mychart/ helm template mychart/ --debug
/helm:review
— Chart Analysis
/helm:review/helm:review
— Chart分析
/helm:review-
Check chart structure
Check Severity Fix Missing _helpers.tpl High Create helpers for common labels and selectors No NOTES.txt Medium Add post-install instructions No .helmignore Low Create one to exclude .git, CI files, tests Missing Chart.yaml fields Medium Add description, appVersion, maintainers Hardcoded values in templates High Extract to values.yaml with defaults -
Check template quality
Check Severity Fix Missing standard labels High Use labels via _helpers.tplapp.kubernetes.io/*No resource requests/limits Critical Add resources section with defaults in values.yaml Hardcoded image tag High Use {{ .Values.image.repository }}:{{ .Values.image.tag }}No imagePullPolicy Medium Default to , overridableIfNotPresentMissing liveness/readiness probes High Add probes with configurable paths and ports No pod anti-affinity Medium Add preferred anti-affinity for HA Duplicate template code Medium Extract into named templates in _helpers.tpl -
Check values.yaml qualitybash
python3 scripts/values_validator.py mychart/values.yaml -
Generate review report
HELM CHART REVIEW — [chart name] Date: [timestamp] CRITICAL: [count] HIGH: [count] MEDIUM: [count] LOW: [count] [Detailed findings with fix recommendations]
-
检查Chart结构
检查项 严重程度 修复方案 缺失_helpers.tpl 高 创建通用标签和选择器的助手 无NOTES.txt 中 添加安装后说明 无.helmignore 低 创建文件以排除.git、CI文件、测试文件 缺失Chart.yaml字段 中 添加description、appVersion、maintainers 模板中存在硬编码值 高 提取到values.yaml并设置默认值 -
检查模板质量
检查项 严重程度 修复方案 缺失标准标签 高 通过_helpers.tpl使用 标签app.kubernetes.io/*无资源请求/限制 关键 在values.yaml中添加带默认值的resources部分 硬编码镜像标签 高 使用 {{ .Values.image.repository }}:{{ .Values.image.tag }}无imagePullPolicy 中 默认设为 ,支持覆盖IfNotPresent缺失存活/就绪探针 高 添加可配置路径和端口的探针 无Pod反亲和性 中 添加用于高可用的首选反亲和性 重复模板代码 中 提取到_helpers.tpl中的命名模板 -
检查values.yaml质量bash
python3 scripts/values_validator.py mychart/values.yaml -
生成审核报告
HELM CHART 审核 — [Chart名称] 日期: [时间戳] 关键: [数量] 高: [数量] 中: [数量] 低: [数量] [带修复建议的详细发现]
/helm:security
— Security Audit
/helm:security/helm:security
— 安全审计
/helm:security-
Pod security audit
Check Severity Fix No securityContext Critical Add runAsNonRoot, readOnlyRootFilesystem Running as root Critical Set ,runAsNonRoot: truerunAsUser: 1000Writable root filesystem High Set + emptyDir for tmpreadOnlyRootFilesystem: trueAll capabilities retained High Drop ALL, add only specific needed caps Privileged container Critical Set , use specific capabilitiesprivileged: falseNo seccomp profile Medium Set seccompProfile.type: RuntimeDefaultallowPrivilegeEscalation true High Set allowPrivilegeEscalation: false -
RBAC audit
Check Severity Fix No ServiceAccount Medium Create dedicated SA, don't use default automountServiceAccountToken true Medium Set to false unless pod needs K8s API access ClusterRole instead of Role Medium Use namespace-scoped Role unless cluster-wide needed Wildcard permissions Critical Use specific resource names and verbs No RBAC at all Low Acceptable if pod doesn't need K8s API access -
Network and secrets audit
Check Severity Fix No NetworkPolicy Medium Add default-deny ingress + explicit allow rules Secrets in values.yaml Critical Use external secrets operator or sealed-secrets No PodDisruptionBudget Medium Add PDB with minAvailable for HA workloads hostNetwork: true High Remove unless absolutely required (e.g., CNI plugin) hostPID or hostIPC Critical Never use in application charts -
Generate security report
SECURITY AUDIT — [chart name] Date: [timestamp] CRITICAL: [count] HIGH: [count] MEDIUM: [count] LOW: [count] [Detailed findings with remediation steps]
-
Pod安全审计
检查项 严重程度 修复方案 无securityContext 关键 添加runAsNonRoot、readOnlyRootFilesystem 以root身份运行 关键 设置 、runAsNonRoot: truerunAsUser: 1000可写根文件系统 高 设置 + 用于tmp的emptyDirreadOnlyRootFilesystem: true保留所有权限 高 移除ALL权限,仅添加所需的特定权限 特权容器 关键 设置 ,使用特定权限privileged: false无seccomp配置文件 中 设置 seccompProfile.type: RuntimeDefaultallowPrivilegeEscalation为true 高 设置 allowPrivilegeEscalation: false -
RBAC审计
检查项 严重程度 修复方案 无ServiceAccount 中 创建专用SA,不使用默认SA automountServiceAccountToken为true 中 除非Pod需要K8s API访问,否则设为false 使用ClusterRole而非Role 中 除非需要集群范围权限,否则使用命名空间级Role 通配符权限 关键 使用特定资源名称和动词 无RBAC配置 低 如果Pod不需要K8s API访问则可接受 -
网络与密钥审计
检查项 严重程度 修复方案 无NetworkPolicy 中 添加默认拒绝Ingress + 明确允许规则 values.yaml中包含密钥 关键 使用外部密钥操作器或密封密钥 无PodDisruptionBudget 中 为高可用工作负载添加带minAvailable的PDB hostNetwork: true 高 除非绝对必要(如CNI插件)否则移除 hostPID或hostIPC 关键 应用Chart中绝不使用 -
生成安全报告
安全审计 — [Chart名称] 日期: [时间戳] 关键: [数量] 高: [数量] 中: [数量] 低: [数量] [带修复步骤的详细发现]
Tooling
工具集
scripts/chart_analyzer.py
scripts/chart_analyzer.pyscripts/chart_analyzer.py
scripts/chart_analyzer.pyCLI utility for static analysis of Helm chart directories.
Features:
- Chart structure validation (required files, directory layout)
- Template anti-pattern detection (hardcoded values, missing labels, no resource limits)
- Chart.yaml metadata checks
- Standard labels verification (app.kubernetes.io/*)
- Security baseline checks
- JSON and text output
Usage:
bash
undefined用于Helm Chart目录静态分析的CLI工具。
功能:
- Chart结构验证(必填文件、目录布局)
- 模板反模式检测(硬编码值、缺失标签、无资源限制)
- Chart.yaml元数据检查
- 标准标签验证(app.kubernetes.io/*)
- 安全基线检查
- JSON和文本输出
用法:
bash
undefinedAnalyze a chart directory
分析Chart目录
python3 scripts/chart_analyzer.py mychart/
python3 scripts/chart_analyzer.py mychart/
JSON output
JSON输出
python3 scripts/chart_analyzer.py mychart/ --output json
python3 scripts/chart_analyzer.py mychart/ --output json
Security-focused analysis
聚焦安全的分析
python3 scripts/chart_analyzer.py mychart/ --security
undefinedpython3 scripts/chart_analyzer.py mychart/ --security
undefinedscripts/values_validator.py
scripts/values_validator.pyscripts/values_validator.py
scripts/values_validator.pyCLI utility for validating values.yaml against best practices.
Features:
- Documentation coverage (inline comments)
- Type consistency checks
- Hardcoded secrets detection
- Default value quality analysis
- Structure depth analysis
- Naming convention validation
- JSON and text output
Usage:
bash
undefined用于验证values.yaml是否符合最佳实践的CLI工具。
功能:
- 文档覆盖率(行内注释)
- 类型一致性检查
- 硬编码密钥检测
- 默认值质量分析
- 结构深度分析
- 命名规范验证
- JSON和文本输出
用法:
bash
undefinedValidate values.yaml
验证values.yaml
python3 scripts/values_validator.py values.yaml
python3 scripts/values_validator.py values.yaml
JSON output
JSON输出
python3 scripts/values_validator.py values.yaml --output json
python3 scripts/values_validator.py values.yaml --output json
Strict mode (fail on warnings)
严格模式(警告即失败)
python3 scripts/values_validator.py values.yaml --strict
---python3 scripts/values_validator.py values.yaml --strict
---Template Patterns
模板模式
Pattern 1: Standard Labels (_helpers.tpl)
模式1:标准标签(_helpers.tpl)
yaml
{{/*
Common labels for all resources.
*/}}
{{- define "mychart.labels" -}}
helm.sh/chart: {{ include "mychart.chart" . }}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels (subset of common labels — must be immutable).
*/}}
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}yaml
{{/*
所有资源的通用标签。
*/}}
{{- define "mychart.labels" -}}
helm.sh/chart: {{ include "mychart.chart" . }}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
选择器标签(通用标签的子集——必须不可变)。
*/}}
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}Pattern 2: Conditional Resources
模式2:条件资源
yaml
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "mychart.fullname" . }}
labels:
{{- include "mychart.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
pathType: {{ .pathType }}
backend:
service:
name: {{ include "mychart.fullname" $ }}
port:
number: {{ $.Values.service.port }}
{{- end }}
{{- end }}
{{- end }}yaml
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "mychart.fullname" . }}
labels:
{{- include "mychart.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
pathType: {{ .pathType }}
backend:
service:
name: {{ include "mychart.fullname" $ }}
port:
number: {{ $.Values.service.port }}
{{- end }}
{{- end }}
{{- end }}Pattern 3: Security-Hardened Pod Spec
模式3:安全加固的Pod Spec
yaml
spec:
serviceAccountName: {{ include "mychart.serviceAccountName" . }}
automountServiceAccountToken: false
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: {{ .Chart.Name }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources:
{{- toYaml .Values.resources | nindent 8 }}
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir: {}yaml
spec:
serviceAccountName: {{ include "mychart.serviceAccountName" . }}
automountServiceAccountToken: false
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: {{ .Chart.Name }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources:
{{- toYaml .Values.resources | nindent 8 }}
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir: {}Values Design Principles
Values设计原则
STRUCTURE
├── Flat over nested (image.tag > container.spec.image.tag)
├── Group by resource (service.*, ingress.*, resources.*)
├── Use enabled: true/false for optional resources
├── Document every key with inline YAML comments
└── Provide sensible development defaults
NAMING
├── camelCase for keys (replicaCount, not replica_count)
├── Boolean keys: use adjectives (enabled, required) not verbs
├── Nested keys: max 3 levels deep
└── Match upstream conventions (image.repository, image.tag, image.pullPolicy)
ANTI-PATTERNS
├── Hardcoded cluster URLs or domains
├── Secrets as default values
├── Empty strings where null is correct
├── Deeply nested structures (>3 levels)
├── Undocumented values
└── values.yaml that doesn't work without overrides结构
├── 优先扁平化而非嵌套(image.tag > container.spec.image.tag)
├── 按资源分组(service.*、ingress.*、resources.*)
├── 使用enabled: true/false控制可选资源
├── 为每个键添加行内YAML注释文档
└── 提供适用于开发环境的合理默认值
命名
├── 键使用驼峰式(replicaCount,而非replica_count)
├── 布尔键:使用形容词(enabled、required)而非动词
├── 嵌套键:最多3层深度
└── 匹配上游约定(image.repository、image.tag、image.pullPolicy)
反模式
├── 硬编码集群URL或域名
├── 将密钥设为默认值
├── 用空字符串代替null
├── 深度嵌套结构(>3层)
├── 未文档化的值
└── 不覆盖就无法工作的values.yamlDependency Management
依赖管理
SUBCHARTS
├── Use Chart.yaml dependencies (not requirements.yaml — Helm 3)
├── Pin versions: version: ~15.x.x (patch float)
├── Use condition: to make optional: condition: postgresql.enabled
├── Use alias: for multiple instances of same chart
├── Override subchart values under subchart name key in values.yaml
└── Run helm dependency update before packaging
LIBRARY CHARTS
├── type: library in Chart.yaml — no templates directory
├── Export named templates only — no rendered resources
├── Use for shared labels, annotations, security contexts
└── Version independently from application charts子Chart
├── 使用Chart.yaml管理依赖(Helm 3不使用requirements.yaml)
├── 锁定版本:version: ~15.x.x(补丁级浮动)
├── 使用condition: 将子Chart设为可选:condition: postgresql.enabled
├── 使用alias: 处理同一Chart的多个实例
├── 在values.yaml中子Chart名称键下覆盖子Chart值
└── 打包前运行helm dependency update
库Chart
├── 在Chart.yaml中设置type: library——无templates目录
├── 仅导出命名模板——无渲染资源
├── 用于共享标签、注解、安全上下文
└── 独立于应用Chart进行版本管理Proactive Triggers
主动触发
Flag these without being asked:
- No _helpers.tpl → Create one. Every chart needs standard labels and fullname helpers.
- Hardcoded image tag in template → Extract to values.yaml. Tags must be overridable.
- No resource requests/limits → Add them. Pods without limits can starve the node.
- Running as root → Add securityContext. No exceptions for production charts.
- No NOTES.txt → Create one. Users need post-install instructions.
- Secrets in values.yaml defaults → Remove them. Use placeholders with comments explaining how to provide secrets.
- No liveness/readiness probes → Add them. Kubernetes needs to know if the pod is healthy.
- Missing app.kubernetes.io labels → Add via _helpers.tpl. Required for proper resource tracking.
无需用户询问即可标记以下问题:
- 无_helpers.tpl → 创建一个。每个Chart都需要标准标签和全名助手。
- 模板中硬编码镜像标签 → 提取到values.yaml。标签必须可覆盖。
- 无资源请求/限制 → 添加它们。无限制的Pod可能耗尽节点资源。
- 以root身份运行 → 添加securityContext。生产Chart绝不例外。
- 无NOTES.txt → 创建一个。用户需要安装后说明。
- values.yaml默认值中包含密钥 → 移除它们。使用占位符并添加注释说明如何提供密钥。
- 无存活/就绪探针 → 添加它们。Kubernetes需要知道Pod是否健康。
- 缺失app.kubernetes.io标签 → 通过_helpers.tpl添加。这是正确跟踪资源的必需项。
Installation
安装
One-liner (any tool)
单行命令(支持任意工具)
bash
git clone https://github.com/alirezarezvani/claude-skills.git
cp -r claude-skills/engineering/helm-chart-builder ~/.claude/skills/bash
git clone https://github.com/alirezarezvani/claude-skills.git
cp -r claude-skills/engineering/helm-chart-builder ~/.claude/skills/Multi-tool install
多工具安装
bash
./scripts/convert.sh --skill helm-chart-builder --tool codex|gemini|cursor|windsurf|openclawbash
./scripts/convert.sh --skill helm-chart-builder --tool codex|gemini|cursor|windsurf|openclawOpenClaw
OpenClaw
bash
clawhub install cs-helm-chart-builderbash
clawhub install cs-helm-chart-builderRelated Skills
相关技能
- senior-devops — Broader DevOps scope (CI/CD, IaC, monitoring). Complementary — use helm-chart-builder for chart-specific work, senior-devops for pipeline and infrastructure.
- docker-development — Container building. Complementary — docker-development builds the images, helm-chart-builder deploys them to Kubernetes.
- ci-cd-pipeline-builder — Pipeline construction. Complementary — helm-chart-builder defines the deployment artifact, ci-cd-pipeline-builder automates its delivery.
- senior-security — Application security. Complementary — helm-chart-builder covers Kubernetes-level security (RBAC, pod security), senior-security covers application-level threats.
- senior-devops — 更广泛的DevOps范围(CI/CD、IaC、监控)。互补技能——使用helm-chart-builder处理Chart相关工作,使用senior-devops处理流水线和基础设施。
- docker-development — 容器构建。互补技能——docker-development构建镜像,helm-chart-builder将其部署到Kubernetes。
- ci-cd-pipeline-builder — 流水线构建。互补技能——helm-chart-builder定义部署制品,ci-cd-pipeline-builder自动化其交付。
- senior-security — 应用安全。互补技能——helm-chart-builder覆盖Kubernetes级安全(RBAC、Pod安全),senior-security覆盖应用级威胁。