mirror of
https://github.com/helmfile/helmfile.git
synced 2026-09-30 19:24:03 +02:00
* feat: add --write-output flag to helmfile fetch for air-gapped environments Add --write-output flag to helmfile fetch that outputs a modified helmfile.yaml with chart references updated to point to downloaded local chart paths. Combined with --output-dir, this enables preparing all charts for deployment in air-gapped environments. Usage: helmfile fetch --output-dir ./charts --write-output > helmfile-airgapped.yaml Fixes #2571 Signed-off-by: yxxhero <yxxhero@users.noreply.github.com> Signed-off-by: yxxhero <aiopsclub@163.com> * docs: restructure documentation and improve newcomer experience Split the monolithic index.md (1990 lines) into focused topic pages, update mkdocs.yml navigation, and add missing documentation for undocumented code features. Structure changes: - Extract configuration.md (helmfile.yaml reference) - Extract cli.md (CLI commands and flags) - Extract templating.md (template syntax and env vars) - Extract environments.md (environment configuration) - Extract releases.md (DAG, needs, selectors) - Extract hooks.md (lifecycle hooks) - Extract integrations.md (ArgoCD, Azure ACR, OCI) - Slim index.md to ~270 line landing page with step-by-step tutorial Newcomer improvements: - Add 5-step Getting Started tutorial with explanations - Reorganize nav: Getting Started now shows core learning path (Writing Helmfile → Values → Environments → Releases) - Add Quick Reference table to configuration.md - Simplify writing-helmfile.md title Code-vs-docs gap fixes: - Document 23 undocumented release fields (valuesTemplate, setTemplate, forceNamespace, adopt, trackMode, etc.) - Document 6 undocumented helmDefaults fields (enableDNS, forceConflicts, skipRefresh, takeOwnership, etc.) - Document print-env command and missing CLI flags - Document kubectlApply hook field - Document environment defaults field and merge order - Document kubedogQPS/kubedogBurst advanced settings - Document template partials (_*.tpl) auto-loading Cleanup: - Fix Docker image version from v0.156.0 to v1.1.0 - Fix heading nesting in advanced-features.md - Update experimental-features.md with current features - Fix broken cross-references and anchor links Signed-off-by: yxxhero <aiopsclub@163.com> * Revert changes to pkg/app from docs/restructure-and-improve branch Signed-off-by: yxxhero <aiopsclub@163.com> * docs: add create subcommand to README and CLI reference Signed-off-by: yxxhero <aiopsclub@163.com> --------- Signed-off-by: yxxhero <yxxhero@users.noreply.github.com> Signed-off-by: yxxhero <aiopsclub@163.com>
71 lines
2.4 KiB
Markdown
71 lines
2.4 KiB
Markdown
# Built-in Objects
|
|
|
|
## helmfile template built-in objects
|
|
|
|
- `Environment`: The information about the environment. This is set by the
|
|
`--environment` flag. It has several objects inside of it:
|
|
- `Environment.Name`: The name of the environment
|
|
- `Environment.KubeContext`: The kube context to be used by default for releases in the environment.
|
|
- `Values`: Values passed into the environment.
|
|
- `StateValues`: alias for `Values`.
|
|
- `Namespace`: The namespace to be released into
|
|
|
|
# release template built-in objects
|
|
|
|
it be used for the below two cases:
|
|
|
|
1. release definition
|
|
```
|
|
templates:
|
|
default:
|
|
chart: stable/{{`{{ .Release.Name }}`}}
|
|
namespace: kube-system
|
|
values:
|
|
- config/{{`{{ .Release.Name }}`}}/values.yaml
|
|
- config/{{`{{ .Release.Name }}`}}/{{`{{ .Environment.Name }}`}}.yaml
|
|
secrets:
|
|
- config/{{`{{ .Release.Name }}`}}/secrets.yaml
|
|
- config/{{`{{ .Release.Name }}`}}/{{`{{ .Environment.Name }}`}}-secrets.yaml
|
|
releases:
|
|
- name: heapster
|
|
version: 0.3.2
|
|
inherit:
|
|
- template: default
|
|
- name: kubernetes-dashboard
|
|
version: 0.10.0
|
|
inherit:
|
|
- template: default
|
|
```
|
|
|
|
2. release values template
|
|
```
|
|
releases:
|
|
- name: some-release
|
|
chart: my-chart
|
|
values:
|
|
# This is a template file can use the built-in objects
|
|
- path/to/values.gotmpl
|
|
```
|
|
|
|
- `Release`: This object describes the release itself. It has several objects
|
|
inside of it:
|
|
- `Release.Name`: The release name
|
|
- `Release.Namespace`: The namespace to be released into
|
|
- `Release.Labels`: The labels to be applied to the release
|
|
- `Release.Chart`: The chart name of the release
|
|
- `Release.KubeContext`: The kube context to be used for the release
|
|
- `Release.ChartVersion`: The version of the current chart
|
|
- `Values`: Values passed into the environment.
|
|
- `StateValues`: alias for `Values`.
|
|
- `Environment`: The information about the environment. This is set by the
|
|
`--environment` flag. It has several objects inside of it:
|
|
- `Environment.Name`: The name of the environment
|
|
- `Environment.KubeContext`: The kube context to be used by default for releases in the environment.
|
|
- `Chart`: The chart name for the release.
|
|
- `KubeContext`: The kube context to be used for the release
|
|
- `Namespace`: The namespace to be released into
|
|
|
|
The built-in values always begin with a capital letter. This is in keeping with
|
|
Go's naming convention. When you define your own values and template variables, you are free to use a
|
|
convention that suits your team.
|