MCPcopy
hub / github.com/helmfile/helmfile

github.com/helmfile/helmfile @v1.6.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.6.0 ↗
2,664 symbols 9,477 edges 237 files 852 documented · 32%
README

Helmfile

Tests Container Image Repository on GHCR Go Report Card Slack Community #helmfile Documentation Gurubase zread

声明式Helm Chart管理工具

English | [简体中文]

关于

Helmfile 是一个声明式Helm Chart管理工具

Helmfile 项目已经从原仓库 roboll/helmfile 转移到了 helmfile/helmfile。有关更多信息,请参见 roboll/helmfile#1824

特性

  • 通过一个YAML集中管理集群中多个Helm Chart, 类似于Docker Compose统一管理Docker
  • 对Helm Chart根据部署环境区分管理
  • Helm Chart版本控制,比如指定版本范围、锁定某一版本
  • 快速识别 Kubernetes 集群内已经部署应用与新更改之间的差异
  • Helmfile支持Go Templates语法定义Helm Chart
  • 在部署阶段支持配置hook,可以执行脚本等,实现变量远程获取,报错清理,成功提醒等

安装

方式1: 二进制安装

下载 releases

方式2: 包管理工具

  • Archlinux: pacman -S helmfile
  • openSUSE: zypper in helmfile
  • Windows: (scoop): scoop install helmfile
  • macOS (homebrew): brew install helmfile

方式3: 容器

详细见:run as a container

安装后请运行一次 helmfile init。 检查helm-diff 等插件安装正确。

方式4: 源码安装

依赖: Go

go install github.com/helmfile/helmfile@latest

使用

让我们从最简单的 helmfile 开始,逐渐改进它以适应您的用例!

使用脚手架命令生成具有最佳实践目录结构的项目:

helmfile create my-project && cd my-project

或者手动创建 helmfile.yaml。假设表示您 helm releases 的期望状态的 helmfile.yaml 看起来像这样:

repositories:
- name: prometheus-community
  url: https://prometheus-community.github.io/helm-charts

releases:
- name: prom-norbac-ubuntu
  namespace: prometheus
  chart: prometheus-community/prometheus
  set:
  - name: rbac.create
    value: false

通过运行来同步您的Kubernetes集群状态到期望状态:

helmfile apply

恭喜!您现在已经在集群内部运行了第一个Prometheus部署。

文档

Documentation

参与贡献

欢迎贡献! 让我们一起使helmfile变得更好:贡献指南

使用者

Helmfile 已经被许多用户在生产环境中使用:

更多用户请参见: Users

License

MIT

Star History

Star History Chart

Extension points exported contracts — how you extend this code

UnittestOpt (Interface)
UnittestOpt is a functional option for UnittestOpts [7 implementers]
pkg/state/state.go
Runner (Interface)
Runner interface for shell commands [7 implementers]
pkg/helmexec/runner.go
DAGConfig (Interface)
(no doc) [9 implementers]
pkg/app/config.go
Getter (Interface)
(no doc) [5 implementers]
pkg/remote/remote.go
Client (Interface)
Client is the abstraction used by `helmfile doctor` to talk to whatever OpenAI-compatible backend the user configured. T [3 …
pkg/agent/llm/client.go
ExitCoder (Interface)
ExitCoder is the interface checked by `App` and `Command` for a custom exit code [1 implementers]
pkg/errors/errors.go
TextRenderer (Interface)
(no doc) [1 implementers]
pkg/tmpl/text_renderer.go
Encoder (Interface)
(no doc)
pkg/yaml/yaml.go

Core symbols most depended-on inside this repo

String
called by 200
pkg/exectest/helm.go
Error
called by 118
pkg/app/app.go
NewLogger
called by 90
pkg/helmexec/exec.go
Diff
called by 66
pkg/app/app.go
CacheDir
called by 56
pkg/remote/remote.go
Name
called by 56
pkg/app/config.go
Error
called by 50
pkg/helmexec/exit_error.go
ReadFile
called by 49
pkg/testhelper/testfs.go

Shape

Method 1,249
Function 1,065
Struct 288
Interface 46
TypeAlias 12
FuncType 4

Languages

Go100%

Modules by API surface

pkg/app/config.go233 symbols
pkg/state/state.go216 symbols
pkg/app/app_test.go203 symbols
pkg/app/app.go74 symbols
pkg/state/state_test.go61 symbols
pkg/helmexec/exec.go60 symbols
pkg/helmexec/exec_test.go51 symbols
pkg/config/apply.go50 symbols
pkg/config/sync.go49 symbols
pkg/kubedog/printer_test.go41 symbols
pkg/exectest/helm.go40 symbols
pkg/app/diff_test.go40 symbols

Dependencies from manifests, versioned

al.essio.dev/pkg/shellescapev1.6.0 · 1×
cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.20.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/kmsv1.31.0 · 1×
cloud.google.com/go/longrunningv0.11.0 · 1×
cloud.google.com/go/monitoringv1.27.0 · 1×
cloud.google.com/go/secretmanagerv1.20.0 · 1×
cloud.google.com/go/storagev1.62.3 · 1×

For agents

$ claude mcp add helmfile \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact