pull/2501/merge
Ronan Flynn-Curran 8 years ago committed by GitHub
commit b5b404a547

@ -1,3 +1,16 @@
+++
title = "Architecture"
weight = "1"
tags = ["stack", "architecture"]
section = "architecture"
categories = ["architecture"]
type = "page"
slug = "architecture"
+++
# The Kubernetes Helm Architecture
This document describes the Helm architecture at a high level.

@ -1,3 +1,20 @@
+++
title = "General Conventions"
weight = "1"
tags = ["chart", "template", "guide"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "conventions"
[menu.main]
url = "conventions"
parent = "chart-best-practices"
+++
# General Conventions
This part of the Best Practices Guide explains general conventions.

@ -17,4 +17,3 @@ may find that their internal interests override our suggestions here.
- Kubernetes Resources:
- [Pods and Pod Specs](pods.md): See the best practices for working with pod specifications.
- [Third Party Resources](third_party_resources.md): Third Party Resources (TPRs) have their own associated best practices.

@ -1,3 +1,20 @@
+++
title = "Labels and Annotations"
weight = "5"
tags = ["labels", "annotations"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "labels-and-annotations"
[menu.main]
url = "labels-and-annotations"
parent = "chart-best-practices"
+++
# Labels and Annotations
This part of the Best Practices Guide discusses the best practices for using
@ -30,8 +47,3 @@ release | REC | This should be the `{{ .Release.Name }}`.
chart | REC | This should be the chart name and version: `{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}`.
app | OPT | This should be the app name, reflecting the entire app. Often the chart's `{{ .Chart.Name }}` is used for this. This is used by many Kubernetes manifests, and is not Helm-specific.
component | OPT | This is a common label for marking the different roles that pieces may play in an application. For example, `component: frontend`

@ -1,3 +1,20 @@
+++
title = "Pods & PodTemplates"
weight = "6"
tags = ["pods", "podTemplates"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "pods-and-podtemplates"
[menu.main]
url = "pods-and-podtemplates"
parent = "chart-best-practices"
+++
# Pods and PodTemplates
This part of the Best Practices Guide discusses formatting the Pod and PodTemplate
@ -56,5 +73,3 @@ the pod.
But this is even more important for sets like Deployment.
Without this, the _entire_ set of labels is used to select matching pods, and
this will break if you use labels that change, like version or release date.

@ -1,3 +1,20 @@
+++
title = "Requirements"
weight = "4"
tags = ["chart", "template", "guide"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "requirements"
[menu.main]
url = "requirements"
parent = "chart-best-practices"
+++
# Requirements Files
This section of the guide covers best practices for `requirements.yaml` files.

@ -1,3 +1,20 @@
+++
title = "Templates"
weight = "3"
tags = ["chart", "template", "guide"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "templates"
[menu.main]
url = "templates"
parent = "chart-best-practices"
+++
# Templates
This part of the Best Practices Guide focuses on templates.
@ -72,7 +89,7 @@ Blocks (such as control structures) may be indented to indicate flow of the temp
```
{{ if $foo -}}
{{- with .Bar }}Hello{{ end -}}
{{- end -}}
{{- end -}}
```
However, since YAML is a whitespace-oriented language, it is often not possible for code indentation to follow that convention.
@ -179,7 +196,7 @@ readable than other YAML representations.
For example, this YAML is closer to the normal YAML method of expressing lists:
```yaml
arguments:
arguments:
- "--dirname"
- "/foo"
```

@ -1,3 +1,20 @@
+++
title = "Third Party Resources"
weight = "7"
tags = ["third", "resources", "party"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "third-party-resources"
[menu.main]
url = "third-party-resources"
parent = "chart-best-practices"
+++
# Third Party Resources
This section of the Best Practices Guide deals with creating and using Third Party Resource

@ -1,8 +1,23 @@
+++
title = "Values"
weight = "2"
tags = ["chart", "template", "guide"]
section = "chart-best-practices"
categories = ["chart-best-practices"]
type = "page"
slug = "values"
[menu.main]
url = "values"
parent = "chart-best-practices"
+++
# Values
This part of the best practices guide covers using values. In this part of the
guide, we provide recommendations on how you should structure and use your
values, with focus on designing a chart's `values.yaml` file.
This part of the best practices guide covers using values. In this part of the guide, we provide recommendations on how you should structure and use your values, with focus on designing a chart's `values.yaml` file.
## Naming Conventions

@ -1,3 +1,20 @@
+++
title = "Accessing Files Inside Templates"
weight = "9"
tags = ["access", "template", "ConfigMap"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "accessing-files-inside-templates"
[menu.main]
url = "accessing-files-inside-templates"
parent = "chart-template-guide"
+++
# Accessing Files Inside Templates
In the previous section we looked at several ways to create and access named templates. This makes it easy to import one template from within another template. But sometimes it is desirable to import a _file that is not a template_ and inject its contents without sending the contents through the template renderer.
@ -107,7 +124,7 @@ the returned object.
For example, imagine the directory structure:
```
foo/:
foo/:
foo.txt foo.yaml
bar/:
@ -205,4 +222,3 @@ data:
Currently, there is no way to pass files external to the chart during `helm install`. So if you are asking users to supply data, it must be loaded using `helm install -f` or `helm install --set`.
This discussion wraps up our dive into the tools and techniques for writing Helm templates. In the next section we will see how you can use one special file, `templates/NOTES.txt`, to send post-installation instructions to the users of your chart.

@ -1,3 +1,20 @@
+++
title = "Built-in Objects"
weight = "3"
tags = ["objects", "template", "builtin"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "built-in-objects"
[menu.main]
url = "built-in-objects"
parent = "chart-template-guide"
+++
# Built-in Objects
Objects are passed into a template from the template engine. And your code can pass objects around (we'll see examples when we look at the `with` and `range` statements). There are even a few ways to create new objects within your templates, like with the `tuple` function we'll see later.
@ -32,4 +49,3 @@ In the previous section, we use `{{.Release.Name}}` to insert the name of a rele
The values are available to any top-level template. As we will see later, this does not necessarily mean that they will be available _everywhere_.
The built-in values always begin with a capital letter. This is in keeping with Go's naming convention. When you create your own names, you are free to use a convention that suits your team. Some teams, like the [Kubernetes Charts](https://github.com/kubernetes/charts) team, choose to use only initial lower case letters in order to distinguish local names from those built-in. In this guide, we follow that convention.

@ -1,3 +1,20 @@
+++
title = "Flow Control"
weight = "6"
tags = ["chart", "template", "guide"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "flow-control"
[menu.main]
url = "flow-control"
parent = "chart-template-guide"
+++
# Flow Control
Control structures (called "actions" in template parlance) provide you, the template author, with the ability to control the flow of a template's generation. Helm's template language provides the following control structures:
@ -98,7 +115,7 @@ CHART PATH: /Users/mattbutcher/Code/Go/src/k8s.io/helm/_scratch/mychart
Error: YAML parse error on mychart/templates/configmap.yaml: error converting YAML to JSON: yaml: line 9: did not find expected key
```
What happened? We generated incorrect YAML because of the whitespacing above.
What happened? We generated incorrect YAML because of the whitespacing above.
```yaml
# Source: mychart/templates/configmap.yaml

@ -1,3 +1,20 @@
+++
title = "Appendix: Go Data Types & Templates"
weight = "15"
tags = ["appendix", "data types", "templates"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "appendix-data-templates"
[menu.main]
url = "appendix-data-templates"
parent = "chart-template-guide"
+++
# Appendix: Go Data Types and Templates
The Helm template language is implemented in the strongly typed Go programming language. For that reason, variables in templates are _typed_. For the most part, variables will be exposed as one of the following types:

@ -1,3 +1,20 @@
+++
title = "Debugging Templates"
weight = "12"
tags = ["debugging", "template"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "debugging-templates"
[menu.main]
url = "debugging-templates"
parent = "chart-template-guide"
+++
# Debugging Templates
Debugging templates can be tricky simply because the templates are rendered on the Tiller server, not the Helm client. And then the rendered templates are sent to the Kubernetes API server, which may reject the YAML files for reasons other than formatting.

@ -1,3 +1,20 @@
+++
title = "Template Functions and Pipelines"
weight = "5"
tags = ["chart", "template", "guide"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "template-functions--pipelines"
[menu.main]
url = "template-functions--pipelines"
parent = "chart-template-guide"
+++
# Template Functions and Pipelines
So far, we've seen how to place information into a template. But that information is placed into the template unmodified. Sometimes we want to transform the supplied data in a way that makes it more useable to us.

@ -1,3 +1,20 @@
+++
title = "Getting Started"
weight = "2"
tags = ["chart", "template", "guide"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "getting-started-charts"
[menu.main]
url = "getting-started-charts"
parent = "chart-template-guide"
+++
# Getting Started with a Chart Template
In this section of the guide, we'll create a chart and then add a first template. The chart we created here will be used throughout the rest of the guide.

@ -0,0 +1,30 @@
+++
title = "Intro"
weight = "1"
tags = ["chart", "template", "guide"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "guide-intro"
[menu.main]
url = "guide-intro"
parent = "chart-template-guide"
+++
# The Chart Template Developer's Guide
This guide provides an introduction to Helm's chart templates, with emphasis on the template language.
Templates generate manifest files, which are YAML-formatted resource descriptions that Kubernetes can understand. We'll look at how templates are structured, how they can be used, how to write Go templates, and how to debug your work.
This guide focuses on the following concepts:
- The Helm template language
- Using values
- Techniques for working with templates
This guide is oriented toward learning the ins and outs of the Helm template language. Other guides provide introductory material, examples, and best practices.

@ -1,3 +1,20 @@
+++
title = "Named Templates"
weight = "8"
tags = ["partials", "template", "definition"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "named-templates"
[menu.main]
url = "named-templates"
parent = "chart-template-guide"
+++
# Named Templates
It is time to move beyond one template, and begin to create others. In this section, we will see how to define _named templates_ in one file, and then use them elsewhere. A _named template_ (sometimes called a _partial_ or a _subtemplate_) is simply a template defined inside of a file, and given a name. We'll see two ways to create them, and a few different ways to use them.

@ -1,3 +1,20 @@
+++
title = "Creating a NOTES.txt File"
weight = "10"
tags = ["creating", "notes", "txt"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "creating-notes-file"
[menu.main]
url = "creating-notes-file"
parent = "chart-template-guide"
+++
# Creating a NOTES.txt File
In this section we are going to look at Helm's tool for providing instructions to your chart users. At the end of a `chart install` or `chart upgrade`, Helm can print out a block of helpful information for users. This information is highly customizable using templates.

@ -1,3 +1,20 @@
+++
title = "Subcharts & Global Values"
weight = "11"
tags = ["chart", "subcharts", "global"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "subcharts-global-values"
[menu.main]
url = "subcharts-global-values"
parent = "chart-template-guide"
+++
# Subcharts and Global Values
To this point we have been working only with one chart. But charts can have dependencies, called _subcharts_, that also have their own values and templates. In this section we will create a subchart and see the different ways we can access values from within templates.

@ -1,3 +1,20 @@
+++
title = "Values Files"
weight = "4"
tags = ["values", "template", "yaml"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "values-files"
[menu.main]
url = "values-files"
parent = "chart-template-guide"
+++
# Values Files
In the previous section we looked at the built-in objects that Helm templates offer. One of the four built-in objects is `Values`. This object provides access to values passed into the chart. Its contents come from four sources:

@ -1,3 +1,20 @@
+++
title = "Variables"
weight = "7"
tags = ["variables", "template", "yaml"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "variables"
[menu.main]
url = "variables"
parent = "chart-template-guide"
+++
# Variables
With functions, pipelines, objects, and control structures under our belts, we can turn to one of the more basic ideas in many programming languages: variables. In templates, they are less frequently used. But we will see how to use them to simplify code, and to make better use of `with` and `range`.

@ -1,3 +1,20 @@
+++
title = "Next Steps"
weight = "13"
tags = ["community", "contribute", "resources"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "next-steps"
[menu.main]
url = "next-steps"
parent = "chart-template-guide"
+++
# Wrapping Up
This guide is intended to give you, the chart developer, a strong understanding of how to use Helm's template language. The guide focuses on the technical aspects of template development.

@ -1,3 +1,20 @@
+++
title = "Appendix: YAML Techniques"
weight = "14"
tags = ["appendix", "yaml"]
section = "chart-template-guide"
categories = ["chart-template-guide"]
type = "page"
slug = "appendix-yaml-techniques"
[menu.main]
url = "appendix-yaml-techniques"
parent = "chart-template-guide"
+++
# YAML Techniques
Most of this guide has been focused on writing the template language. Here,

@ -1,16 +0,0 @@
# The Chart Template Developer's Guide
This guide provides an introduction to Helm's chart templates, with emphasis on
the template language.
Templates generate manifest files, which are YAML-formatted resource descriptions
that Kubernetes can understand. We'll look at how templates are structured,
how they can be used, how to write Go templates, and how to debug your work.
This guide focuses on the following concepts:
- The Helm template language
- Using values
- Techniques for working with templates
This guide is oriented toward learning the ins and outs of the Helm template language. Other guides provide introductory material, examples, and best practices.

@ -1,3 +1,16 @@
+++
title = "Developers Guide"
weight = "1"
tags = ["team", "developers", "about"]
section = "developer-guide"
categories = ["developer-guide"]
type = "page"
slug = "developer-guide"
+++
# Developers Guide
This guide explains how to set up your environment for developing on
@ -117,9 +130,7 @@ remains consistent, and (c) contributions follow the open source legal
requirements. Our intent is not to burden contributors, but to build
elegant and high-quality open source code so that our users will benefit.
Make sure you have read and understood the main CONTRIBUTING guide:
https://github.com/kubernetes/helm/blob/master/CONTRIBUTING.md
Make sure you have read and understood the main [CONTRIBUTING guide](https://github.com/kubernetes/helm/blob/master/CONTRIBUTING.md).
### Structure of the Code
@ -128,7 +139,7 @@ The code for the Helm project is organized as follows:
- The individual programs are located in `cmd/`. Code inside of `cmd/`
is not designed for library re-use.
- Shared libraries are stored in `pkg/`.
- The raw ProtoBuf files are stored in `_proto/hapi` (where `hapi` stands for
- The raw ProtoBuf files are stored in `_proto/hapi` (where `hapi` stands for
the Helm Application Programming Interface).
- The Go files generated from the `proto` definitions are stored in `pkg/proto`.
- The `scripts/` directory contains a number of utility scripts. Most of these

@ -1,3 +1,20 @@
+++
title = "Chart Repository Guide"
weight = "4"
tags = ["charts", "repo", "guide"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "chart-repo-guide"
[menu.main]
url = "chart-repo-guide"
parent = "developing-charts"
+++
# The Chart Repository Guide
This section explains how to create and work with Helm chart repositories. At a

@ -1,3 +1,20 @@
+++
title = "Chart Repository FAQ"
weight = "8"
tags = ["charts", "repo", "faqs"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "chart-repo-faq"
[menu.main]
url = "chart-repo-faq"
parent = "developing-charts"
+++
# Chart Repositories: Frequently Asked Questions
This section tracks some of the more frequently encountered issues with using chart repositories.

@ -1,3 +1,20 @@
+++
title = "Syncing Your Chart Repo"
weight = "5"
tags = ["charts", "syncing", "repo", "directory"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "syncing-your-chart-repo"
[menu.main]
url = "syncing-your-chart-repo"
parent = "developing-charts"
+++
# Syncing Your Chart Repository
*Note: This example is specifically for a Google Cloud Storage (GCS) bucket which serves a chart repository.*

@ -1,3 +1,20 @@
+++
title = "Chart Tests"
weight = "7"
tags = ["charts", "tests", "valid", "hooks"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "chart-tests"
[menu.main]
url = "chart-tests"
parent = "developing-charts"
+++
# Chart Tests
A chart contains a number of Kubernetes resources and components that work together. As a chart author, you may want to write some tests that validate that your chart works as expected when it is installed. These tests also help the chart consumer understand what your chart is supposed to do.

@ -1,10 +1,23 @@
+++
title = "Intro to Charts"
weight = "1"
tags = ["charts", "example", "intro", "structure", "format"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "intro-dev-charts"
[menu.main]
url = "intro-dev-charts"
parent = "developing-charts"
+++
# Charts
Helm uses a packaging format called _charts_. A chart is a collection of files
that describe a related set of Kubernetes resources. A single chart
might be used to deploy something simple, like a memcached pod, or
something complex, like a full web app stack with HTTP servers,
databases, caches, and so on.
Helm uses a packaging format called _charts_. A chart is a collection of files that describe a related set of Kubernetes resources. A single chart might be used to deploy something simple, like a memcached pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.
Charts are created as files laid out in a particular directory tree,
then they can be packaged into versioned archives to be deployed.
@ -310,11 +323,11 @@ tags:
In the above example all charts with the tag `front-end` would be disabled but since the
`subchart1.enabled` path evaluates to 'true' in the parent's values, the condition will override the
`front-end` tag and `subchart1` will be enabled.
`front-end` tag and `subchart1` will be enabled.
Since `subchart2` is tagged with `back-end` and that tag evaluates to `true`, `subchart2` will be
enabled. Also note that although `subchart2` has a condition specified in `requirements.yaml`, there
is no corresponding path and value in the parent's values so that condition has no effect.
is no corresponding path and value in the parent's values so that condition has no effect.
##### Using the CLI with Tags and Conditions
@ -337,19 +350,19 @@ helm install --set tags.front-end=true --set subchart2.enabled=false
#### Importing Child Values via requirements.yaml
In some cases it is desirable to allow a child chart's values to propagate to the parent chart and be
shared as common defaults. An additional benefit of using the `exports` format is that it will enable future
In some cases it is desirable to allow a child chart's values to propagate to the parent chart and be
shared as common defaults. An additional benefit of using the `exports` format is that it will enable future
tooling to introspect user-settable values.
The keys containing the values to be imported can be specified in the parent chart's `requirements.yaml` file
using a YAML list. Each item in the list is a key which is imported from the child chart's `exports` field.
The keys containing the values to be imported can be specified in the parent chart's `requirements.yaml` file
using a YAML list. Each item in the list is a key which is imported from the child chart's `exports` field.
To import values not contained in the `exports` key, use the [child/parent](#using-the-child/parent-format) format.
Examples of both formats are described below.
##### Using the exports format
If a child chart's `values.yaml` file contains an `exports` field at the root, its contents may be imported
If a child chart's `values.yaml` file contains an `exports` field at the root, its contents may be imported
directly into the parent's values by specifying the keys to import as in the example below:
```yaml
@ -366,8 +379,8 @@ exports:
myint: 99
```
Since we are specifying the key `data` in our import list, Helm looks in the the `exports` field of the child
chart for `data` key and imports its contents.
Since we are specifying the key `data` in our import list, Helm looks in the the `exports` field of the child
chart for `data` key and imports its contents.
The final parent values would contain our exported field:
@ -378,16 +391,16 @@ myint: 99
```
Please note the parent key `data` is not contained in the parent's final values. If you need to specify the
parent key, use the 'child/parent' format.
Please note the parent key `data` is not contained in the parent's final values. If you need to specify the
parent key, use the 'child/parent' format.
##### Using the child/parent format
To access values that are not contained in the `exports` key of the child chart's values, you will need to
specify the source key of the values to be imported (`child`) and the destination path in the parent chart's
To access values that are not contained in the `exports` key of the child chart's values, you will need to
specify the source key of the values to be imported (`child`) and the destination path in the parent chart's
values (`parent`).
The `import-values` in the example below instructs Helm to take any values found at `child:` path and copy them
The `import-values` in the example below instructs Helm to take any values found at `child:` path and copy them
to the parent's values at the path specified in `parent:`
```yaml
@ -402,7 +415,7 @@ dependencies:
parent: myimports
```
In the above example, values found at `default.data` in the subchart1's values will be imported
to the `myimports` key in the parent chart's values as detailed below:
to the `myimports` key in the parent chart's values as detailed below:
```yaml
# parent's values.yaml file
@ -411,7 +424,7 @@ myimports:
myint: 0
mybool: false
mystring: "helm rocks!"
```
```yaml
# subchart1's values.yaml file
@ -420,7 +433,7 @@ default:
data:
myint: 999
mybool: true
```
The parent chart's resulting values would be:

@ -1,3 +1,20 @@
+++
title = "Chart Lifecycle Hooks"
weight = "2"
tags = ["charts", "hooks", "lifecycle", "pre", "post"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "chart-lifecycle-hooks"
[menu.main]
url = "chart-lifecycle-hooks"
parent = "developing-charts"
+++
# Hooks
Helm provides a _hook_ mechanism to allow chart developers to intervene
@ -63,7 +80,7 @@ hooks, the lifecycle is altered like this:
5. Tiller sorts hooks by weight (assigning a weight of 0 by default) and by name for those hooks with the same weight in ascending order.
6. Tiller then loads the hook with the lowest weight first (negative to positive)
7. Tiller waits until the hook is "Ready"
8. Tiller loads the resulting resources into Kubernetes. Note that if the `--wait`
8. Tiller loads the resulting resources into Kubernetes. Note that if the `--wait`
flag is set, Tiller will wait until all resources are in a ready state
and will not run the `post-install` hook until they are ready.
9. Tiller executes the `post-install` hook (loading hook resources)
@ -170,5 +187,4 @@ deterministic executing order. Weights are defined using the following annotatio
Hook weights can be positive or negative numbers but must be represented as
strings. When Tiller starts the execution cycle of hooks of a particular Kind it
will sort those hooks in ascending order.
will sort those hooks in ascending order.

@ -1,3 +1,20 @@
+++
title = "Chart Tips and Tricks"
weight = "3"
tags = ["charts", "example", "tips", "tricks", "functions", "include"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "chart-tips-tricks"
[menu.main]
url = "chart-tips-tricks"
parent = "developing-charts"
+++
# Chart Development Tips and Tricks
This guide covers some of the tips and tricks Helm chart developers have
@ -107,7 +124,7 @@ with the old configuration resulting in an inconsistent deployment.
The `sha256sum` function can be used together with the `include`
function to ensure a deployments template section is updated if another
spec changes:
spec changes:
```yaml
kind: Deployment

@ -1,3 +1,20 @@
+++
title = "Signing Charts"
weight = "6"
tags = ["charts", "signing", "provenance", "integrity", "PGP", "key", "keypair"]
section = "developing-charts"
categories = ["developing-charts"]
type = "page"
slug = "signing-charts"
[menu.main]
url = "signing-charts"
parent = "developing-charts"
+++
# Helm Provenance and Integrity
Helm has provenance tools which help chart users verify the integrity and origin

@ -1,3 +1,16 @@
+++
title = "Glossary"
weight = "1"
tags = ["glossary", "architecture"]
section = "using-helm"
categories = ["glossary"]
type = "page"
slug = "glossary"
+++
# Helm Glossary
Helm uses a few special terms to describe components of the
@ -166,5 +179,3 @@ These exposed variables are called _values_ in Helm parlance.
Values can be set during `helm install` and `helm upgrade` operations,
either by passing them in directly, or by uploading a `values.yaml`
file.

@ -1,11 +1,21 @@
## helm
+++
title = "Helm"
weight = "-1"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
The Helm package manager for Kubernetes.
slug = "helm"
### Synopsis
[menu.main]
url = "helm"
parent = "helm-commands"
+++
The Kubernetes package manager
## helm
To begin working with Helm, run the 'helm init' command:

@ -1,3 +1,20 @@
+++
title = "helm completion"
weight = "2"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-completion"
[menu.main]
url = "helm-completion"
parent = "helm-commands"
+++
## helm completion
Generate autocompletions script for the specified shell (bash or zsh)

@ -1,3 +1,20 @@
+++
title = "helm create"
weight = "3"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-create"
[menu.main]
url = "helm-create"
parent = "helm-commands"
+++
## helm create
create a new chart with the given name

@ -1,3 +1,20 @@
+++
title = "helm delete"
weight = "4"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-delete"
[menu.main]
url = "helm-delete"
parent = "helm-commands"
+++
## helm delete
given a release name, delete the release from Kubernetes

@ -1,3 +1,20 @@
+++
title = "helm dependency"
weight = "5"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-dependency"
[menu.main]
url = "helm-dependency"
parent = "helm-commands"
+++
## helm dependency
manage a chart's dependencies

@ -1,3 +1,20 @@
+++
title = "helm dependency build"
weight = "6"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-dependency-build"
[menu.main]
url = "helm-dependency-build"
parent = "helm-commands"
+++
## helm dependency build
rebuild the charts/ directory based on the requirements.lock file

@ -1,3 +1,20 @@
+++
title = "helm dependency list"
weight = "7"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-dependency-list"
[menu.main]
url = "helm-dependency-list"
parent = "helm-commands"
+++
## helm dependency list
list the dependencies for the given chart

@ -1,3 +1,20 @@
+++
title = "helm dependency update"
weight = "8"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-dependency-update"
[menu.main]
url = "helm-dependency-update"
parent = "helm-commands"
+++
## helm dependency update
update charts/ based on the contents of requirements.yaml

@ -1,3 +1,20 @@
+++
title = "helm fetch"
weight = "9"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-fetch"
[menu.main]
url = "helm-fetch"
parent = "helm-commands"
+++
## helm fetch
download a chart from a repository and (optionally) unpack it in local directory

@ -1,3 +1,20 @@
+++
title = "helm get"
weight = "10"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-get"
[menu.main]
url = "helm-get"
parent = "helm-commands"
+++
## helm get
download a named release

@ -1,3 +1,20 @@
+++
title = "helm get hooks"
weight = "11"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-get-hooks"
[menu.main]
url = "helm-get-hooks"
parent = "helm-commands"
+++
## helm get hooks
download all hooks for a named release

@ -1,3 +1,20 @@
+++
title = "helm get manifest"
weight = "12"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-get-manifest"
[menu.main]
url = "helm-get-manifest"
parent = "helm-commands"
+++
## helm get manifest
download the manifest for a named release

@ -1,3 +1,20 @@
+++
title = "helm get values"
weight = "13"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-get-values"
[menu.main]
url = "helm-get-values"
parent = "helm-commands"
+++
## helm get values
download the values file for a named release

@ -1,3 +1,20 @@
+++
title = "helm history"
weight = "14"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-history"
[menu.main]
url = "helm-history"
parent = "helm-commands"
+++
## helm history
fetch release history

@ -1,3 +1,20 @@
+++
title = "helm home"
weight = "15"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-home"
[menu.main]
url = "helm-home"
parent = "helm-commands"
+++
## helm home
displays the location of HELM_HOME

@ -1,3 +1,20 @@
+++
title = "helm init"
weight = "16"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-init"
[menu.main]
url = "helm-init"
parent = "helm-commands"
+++
## helm init
initialize Helm on both client and server

@ -1,3 +1,20 @@
+++
title = "helm inspect"
weight = "17"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-inspect"
[menu.main]
url = "helm-inspect"
parent = "helm-commands"
+++
## helm inspect
inspect a chart

@ -1,3 +1,20 @@
+++
title = "helm inspect chart"
weight = "18"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-inspect-chart"
[menu.main]
url = "helm-inspect-chart"
parent = "helm-commands"
+++
## helm inspect chart
shows inspect chart

@ -1,3 +1,20 @@
+++
title = "helm inspect values"
weight = "19"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-inspect-values"
[menu.main]
url = "helm-inspect-values"
parent = "helm-commands"
+++
## helm inspect values
shows inspect values

@ -1,3 +1,20 @@
+++
title = "helm install"
weight = "20"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-install"
[menu.main]
url = "helm-install"
parent = "helm-commands"
+++
## helm install
install a chart archive

@ -1,3 +1,20 @@
+++
title = "helm lint"
weight = "21"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-lint"
[menu.main]
url = "helm-lint"
parent = "helm-commands"
+++
## helm lint
examines a chart for possible issues

@ -1,3 +1,20 @@
+++
title = "helm list"
weight = "22"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-list"
[menu.main]
url = "helm-list"
parent = "helm-commands"
+++
## helm list
list releases

@ -1,3 +1,20 @@
+++
title = "helm package"
weight = "23"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-package"
[menu.main]
url = "helm-package"
parent = "helm-commands"
+++
## helm package
package a chart directory into a chart archive

@ -1,3 +1,20 @@
+++
title = "helm plugin"
weight = "24"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-plugin"
[menu.main]
url = "helm-plugin"
parent = "helm-commands"
+++
## helm plugin
add, list, or remove Helm plugins

@ -1,3 +1,20 @@
+++
title = "helm plugin install"
weight = "25"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-plugin-install"
[menu.main]
url = "helm-plugin-install"
parent = "helm-commands"
+++
## helm plugin install
install one or more Helm plugins

@ -1,3 +1,20 @@
+++
title = "helm plugin list"
weight = "26"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-plugin-list"
[menu.main]
url = "helm-plugin-list"
parent = "helm-commands"
+++
## helm plugin list
list installed Helm plugins

@ -1,3 +1,20 @@
+++
title = "helm plugin remove"
weight = "27"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-plugin-remove"
[menu.main]
url = "helm-plugin-remove"
parent = "helm-commands"
+++
## helm plugin remove
remove one or more Helm plugins

@ -1,3 +1,20 @@
+++
title = "helm plugin update"
weight = "28"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-plugin-update"
[menu.main]
url = "helm-plugin-update"
parent = "helm-commands"
+++
## helm plugin update
update one or more Helm plugins

@ -1,3 +1,20 @@
+++
title = "helm repo"
weight = "29"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-repo"
[menu.main]
url = "helm-repo"
parent = "helm-commands"
+++
## helm repo
add, list, remove, update, and index chart repositories

@ -1,3 +1,20 @@
+++
title = "helm repo add"
weight = "30"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-repo-add"
[menu.main]
url = "helm-repo-add"
parent = "helm-commands"
+++
## helm repo add
add a chart repository

@ -1,3 +1,20 @@
+++
title = "helm repo index"
weight = "31"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-repo-index"
[menu.main]
url = "helm-repo-index"
parent = "helm-commands"
+++
## helm repo index
generate an index file given a directory containing packaged charts

@ -1,3 +1,20 @@
+++
title = "helm repo list"
weight = "32"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-repo-list"
[menu.main]
url = "helm-repo-list"
parent = "helm-commands"
+++
## helm repo list
list chart repositories

@ -1,3 +1,20 @@
+++
title = "helm repo remove"
weight = "33"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-repo-remove"
[menu.main]
url = "helm-repo-remove"
parent = "helm-commands"
+++
## helm repo remove
remove a chart repository

@ -1,3 +1,20 @@
+++
title = "helm repo update"
weight = "34"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-repo-update"
[menu.main]
url = "helm-repo-update"
parent = "helm-commands"
+++
## helm repo update
update information of available charts locally from chart repositories

@ -1,3 +1,20 @@
+++
title = "helm reset"
weight = "35"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-reset"
[menu.main]
url = "helm-reset"
parent = "helm-commands"
+++
## helm reset
uninstalls Tiller from a cluster

@ -1,3 +1,20 @@
+++
title = "helm rollback"
weight = "36"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-rollback"
[menu.main]
url = "helm-rollback"
parent = "helm-commands"
+++
## helm rollback
roll back a release to a previous revision

@ -1,3 +1,20 @@
+++
title = "helm search"
weight = "37"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-search"
[menu.main]
url = "helm-search"
parent = "helm-commands"
+++
## helm search
search for a keyword in charts

@ -1,3 +1,20 @@
+++
title = "helm serve"
weight = "38"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-serve"
[menu.main]
url = "helm-serve"
parent = "helm-commands"
+++
## helm serve
start a local http web server

@ -1,3 +1,20 @@
+++
title = "helm status"
weight = "39"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-status"
[menu.main]
url = "helm-status"
parent = "helm-commands"
+++
## helm status
displays the status of the named release

@ -1,3 +1,20 @@
+++
title = "helm test"
weight = "40"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-test"
[menu.main]
url = "helm-test"
parent = "helm-commands"
+++
## helm test
test a release

@ -1,3 +1,20 @@
+++
title = "helm upgrade"
weight = "41"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-upgrade"
[menu.main]
url = "helm-upgrade"
parent = "helm-commands"
+++
## helm upgrade
upgrade a release

@ -1,3 +1,20 @@
+++
title = "helm verify"
weight = "42"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-verify"
[menu.main]
url = "helm-verify"
parent = "helm-commands"
+++
## helm verify
verify that a chart at the given path has been signed and is valid

@ -1,3 +1,20 @@
+++
title = "helm version"
weight = "43"
tags = ["commands"]
section = "helm-commands"
categories = ["helm-commands"]
type = "page"
slug = "helm-version"
[menu.main]
url = "helm-version"
parent = "helm-commands"
+++
## helm version
print the client/server version information

@ -1,9 +1,19 @@
## The History of the Project
+++
title = "History"
weight = "1"
Kubernetes Helm is the merged result of [Helm
Classic](https://github.com/helm/helm) and the Kubernetes port of GCS Deployment
Manager. The project was jointly started by Google and Deis, though it
is now part of the CNCF. Many companies now contribute regularly to Helm.
tags = ["team", "history", "about", "deis", "cncf"]
section = "history"
categories = ["history"]
type = "page"
slug = "history"
+++
# The History of the Helm Project
Kubernetes Helm is the merged result of [Helm Classic](https://github.com/helm/helm) and the Kubernetes port of GCS Deployment Manager. The project was jointly started by Google and Deis, though it is now part of the CNCF. Many companies now contribute regularly to Helm.
Differences from Helm Classic:

@ -1,35 +0,0 @@
# Helm Documentation
- [Quick Start](quickstart.md) - Read me first!
- [Installing Helm](install.md) - Install Helm and Tiller
- [Kubernetes Distribution Notes](kubernetes_distros.md)
- [Frequently Asked Questions](install_faq.md)
- [Using Helm](using_helm.md) - Learn the Helm tools
- [Plugins](plugins.md)
- [Developing Charts](charts.md) - An introduction to chart development
- [Chart Lifecycle Hooks](charts_hooks.md)
- [Chart Tips and Tricks](charts_tips_and_tricks.md)
- [Chart Repository Guide](chart_repository.md)
- [Syncing your Chart Repository](chart_repository_sync_example.md)
- [Signing Charts](provenance.md)
- [Writing Tests for Charts](chart_tests.md)
- [Chart Template Developer's Guide](chart_template_guide/index.md) - Master Helm templates
- [Getting Started with Templates](chart_template_guide/getting_started.md)
- [Built-in Objects](chart_template_guide/builtin_objects.md)
- [Values Files](chart_template_guide/values_files.md)
- [Functions and Pipelines](chart_template_guide/functions_and_pipelines.md)
- [Flow Control (if/else, with, range, whitespace management)](chart_template_guide/control_structures.md)
- [Variables](chart_template_guide/variables.md)
- [Named Templates (Partials)](chart_template_guide/named_templates.md)
- [Accessing Files Inside Templates](chart_template_guide/accessing_files.md)
- [Creating a NOTES.txt File](chart_template_guide/notes_files.md)
- [Subcharts and Global Values](chart_template_guide/subcharts_and_globals.md)
- [Debugging Templates](chart_template_guide/debugging.md)
- [Wrapping Up](chart_template_guide/wrapping_up.md)
- [Appendix A: YAML Techniques](chart_template_guide/yaml_techniques.md)
- [Appendix B: Go Data Types](chart_template_guide/data_types.md)
- [Related Projects](related.md) - More Helm tools, articles, and plugins
- [Architecture](architecture.md) - Overview of the Helm/Tiller design
- [Developers](developers.md) - About the developers
- [History](history.md) - A brief history of the project
- [Glossary](glossary.md) - Decode the Helm vocabulary

@ -1,3 +1,16 @@
+++
title = "Related Projects & Docs"
weight = "1"
tags = ["related", "developers", "articles", "guides"]
section = "related"
categories = ["related"]
type = "page"
slug = "related"
+++
# Related Projects and Documentation
The Helm community has produced many extra tools, plugins, and documentation about

@ -1,3 +1,20 @@
+++
title = "Installing Helm"
weight = "2"
tags = ["setup", "install", "release"]
section = "using-helm"
categories = ["using-helm"]
type = "page"
slug = "install-helm"
[menu.main]
url = "install-helm"
parent = "using-helm"
+++
# Installing Helm
There are two parts to Helm: The Helm client (`helm`) and the Helm

@ -1,3 +1,20 @@
+++
title = "Install FAQ"
weight = "4"
tags = ["setup", "install", "release", "faq"]
section = "using-helm"
categories = ["using-helm"]
type = "page"
slug = "install-helm-faq"
[menu.main]
url = "install-helm-faq"
parent = "using-helm"
+++
# Installation: Frequently Asked Questions
This section tracks some of the more frequently encountered issues with installing

@ -1,3 +1,20 @@
+++
title = "Kubernetes Distribution Notes"
weight = "3"
tags = ["setup", "install", "release", "distros", "minikube", "Ubuntu", "coreos"]
section = "using-helm"
categories = ["using-helm"]
type = "page"
slug = "kubernetes-distribution-notes"
[menu.main]
url = "kubernetes-distribution-notes"
parent = "using-helm"
+++
# Kubernetes Distribution Guide
This document captures information about using Helm in specific Kubernetes

@ -1,3 +1,20 @@
+++
title = "Plugins"
weight = "6"
tags = ["setup", "plugins"]
section = "using-helm"
categories = ["using-helm"]
type = "page"
slug = "plugins"
[menu.main]
url = "plugins"
parent = "using-helm"
+++
# The Helm Plugins Guide
Helm 2.1.0 introduced the concept of a client-side Helm _plugin_. A plugin is a

@ -1,3 +1,20 @@
+++
title = "Quickstart"
weight = "1"
tags = ["quick", "start", "setup", "install"]
section = "using-helm"
categories = ["using-helm"]
type = "page"
slug = "quick-start"
[menu.main]
url = "quick-start"
parent = "using-helm"
+++
# Quickstart Guide
This guide covers how you can quickly get started using Helm.

@ -1,3 +1,20 @@
+++
title = "Using Helm"
weight = "5"
tags = ["setup", "usage", "commands"]
section = "using-helm"
categories = ["using-helm"]
type = "page"
slug = "helm-usage"
[menu.main]
url = "helm-usage"
parent = "using-helm"
+++
# Using Helm
This guide explains the basics of using Helm (and Tiller) to manage
@ -63,7 +80,7 @@ stable/mysql 0.1.0 Chart for MySQL
stable/mariadb 0.5.1 Chart for MariaDB
```
Now you will only see the results that match your filter.
Now you will only see the results that match your filter.
Why is
`mariadb` in the list? Because its package description relates it to
@ -356,9 +373,9 @@ is not a full list of cli flags. To see a description of all flags, just run
This defaults to 300 (5 minutes)
- `--wait`: Waits until all Pods are in a ready state, PVCs are bound, Deployments
have minimum (`Desired` minus `maxUnavailable`) Pods in ready state and
Services have an IP address (and Ingress if a `LoadBalancer`) before
marking the release as successful. It will wait for as long as the
`--timeout` value. If timeout is reached, the release will be marked as
Services have and IP address (and Ingress if a `LoadBalancer`) before
marking the release as successful. It will wait for as long as the
`--timeout` value. If timeout is reached, the release will be marked as
`FAILED`.
Note: In scenario where Deployment has `replicas` set to 1 and `maxUnavailable` is not set to 0 as part of rolling
Loading…
Cancel
Save