Documentation
¶
Overview ¶
Package chartutil contains tools for working with charts.
Charts are described in the protocol buffer definition (pkg/proto/hapi/charts). This packe provides utilities for serializing and deserializing charts.
A chart can be represented on the file system in one of two ways:
- As a directory that contains a Chart.yaml file and other chart things.
- As a tarred gzipped file containing a directory that then contains a Chart.yaml file.
This package provides utilitites for working with those file formats.
The preferred way of loading a chart is using 'chartutil.Load`:
chart, err := chartutil.Load(filename)
This will attempt to discover whether the file at 'filename' is a directory or a chart archive. It will then load accordingly.
For accepting raw compressed tar file data from an io.Reader, the 'chartutil.LoadArchive()' will read in the data, uncompress it, and unpack it into a Chart.
When creating charts in memory, use the 'k8s.io/helm/pkg/proto/happy/chart' package directly.
Index ¶
- Constants
- func Create(chartfile *chart.Metadata, dir string) (string, error)
- func Expand(dir string, r io.Reader) error
- func Load(name string) (*chart.Chart, error)
- func LoadArchive(in io.Reader) (*chart.Chart, error)
- func LoadChartfile(filename string) (*chart.Metadata, error)
- func LoadDir(dir string) (*chart.Chart, error)
- func LoadFile(name string) (*chart.Chart, error)
- func Save(c *chart.Chart, outDir string) (string, error)
- func SaveChartfile(filename string, cf *chart.Metadata) error
- func UnmarshalChartfile(data []byte) (*chart.Metadata, error)
- type ErrNoTable
- type Files
- type ReleaseOptions
- type Values
Examples ¶
Constants ¶
const (
// ChartfileName is the default Chart file name.
ChartfileName = "Chart.yaml"
// ValuesfileName is the default values file name.
ValuesfileName = "values.yaml"
// TemplatesDir is the relative directory name for templates.
TemplatesDir = "templates"
// ChartsDir is the relative directory name for charts dependencies.
ChartsDir = "charts"
// IgnorefileName is the name of the Helm ignore file.
IgnorefileName = ".helmignore"
)
const GlobalKey = "global"
GlobalKey is the name of the Values key that is used for storing global vars.
Variables ¶
This section is empty.
Functions ¶
func Create ¶
func Create(chartfile *chart.Metadata, dir string) (string, error)
Create creates a new chart in a directory.
Inside of dir, this will create a directory based on the name of chartfile.Name. It will then write the Chart.yaml into this directory and create the (empty) appropriate directories.
The returned string will point to the newly created directory. It will be an absolute path, even if the provided base directory was relative.
If dir does not exist, this will return an error. If Chart.yaml or any directories cannot be created, this will return an error. In such a case, this will attempt to clean up by removing the new chart directory.
func Expand ¶
func Expand(dir string, r io.Reader) error
Expand uncompresses and extracts a chart into the specified directory.
func Load ¶
func Load(name string) (*chart.Chart, error)
Load takes a string name, tries to resolve it to a file or directory, and then loads it.
This is the preferred way to load a chart. It will discover the chart encoding and hand off to the appropriate chart reader.
If a .helmignore file is present, the directory loader will skip loading any files matching it. But .helmignore is not evaluated when reading out of an archive.
func LoadArchive ¶
func LoadArchive(in io.Reader) (*chart.Chart, error)
LoadArchive loads from a reader containing a compressed tar archive.
func LoadChartfile ¶
func LoadChartfile(filename string) (*chart.Metadata, error)
LoadChartfile loads a Chart.yaml file into a *chart.Metadata.
func LoadDir ¶
func LoadDir(dir string) (*chart.Chart, error)
LoadDir loads from a directory.
This loads charts only from directories.
func LoadFile ¶
func LoadFile(name string) (*chart.Chart, error)
LoadFile loads from an archive file.
func Save ¶
func Save(c *chart.Chart, outDir string) (string, error)
Save creates an archived chart to the given directory.
This takes an existing chart and a destination directory.
If the directory is /foo, and the chart is named bar, with version 1.0.0, this will generate /foo/bar-1.0.0.tgz.
This returns the absolute path to the chart archive file.
func SaveChartfile ¶
func SaveChartfile(filename string, cf *chart.Metadata) error
SaveChartfile saves the given metadata as a Chart.yaml file at the given path.
'filename' should be the complete path and filename ('foo/Chart.yaml')
func UnmarshalChartfile ¶
func UnmarshalChartfile(data []byte) (*chart.Metadata, error)
UnmarshalChartfile takes raw Chart.yaml data and unmarshals it.
Types ¶
type ErrNoTable ¶
type ErrNoTable error
ErrNoTable indicates that a chart does not have a matching table.
type Files ¶
type Files map[string][]byte
Files is a map of files in a chart that can be accessed from a template.
func NewFiles ¶
func NewFiles(from []*any.Any) Files
NewFiles creates a new Files from chart files. Given an []*any.Any (the format for files in a chart.Chart), extract a map of files.
type ReleaseOptions ¶
type ReleaseOptions struct {
Name string
Time *timestamp.Timestamp
Namespace string
}
ReleaseOptions represents the additional release options needed for the composition of the final values struct
type Values ¶
type Values map[string]interface{}
Values represents a collection of chart values.
Example ¶
Output: Loomings
func CoalesceValues ¶
func CoalesceValues(chrt *chart.Chart, vals *chart.Config) (Values, error)
CoalesceValues coalesces all of the values in a chart (and its subcharts).
Values are coalesced together using the following rules:
- Values in a higher level chart always override values in a lower-level dependency chart
- Scalar values and arrays are replaced, maps are merged
- A chart has access to all of the variables for it, as well as all of the values destined for its dependencies.
func ReadValues ¶
func ReadValues(data []byte) (vals Values, err error)
ReadValues will parse YAML byte data into a Values.
func ReadValuesFile ¶
func ReadValuesFile(filename string) (Values, error)
ReadValuesFile will parse a YAML file into a map of values.
func ToRenderValues ¶
func ToRenderValues(chrt *chart.Chart, chrtVals *chart.Config, options ReleaseOptions) (Values, error)
ToRenderValues composes the struct from the data coming from the Releases, Charts and Values files
func (Values) AsMap ¶
func (v Values) AsMap() map[string]interface{}
AsMap is a utility function for converting Values to a map[string]interface{}.
It protects against nil map panics.
func (Values) Encode ¶
func (v Values) Encode(w io.Writer) error
Encode writes serialized Values information to the given io.Writer.
func (Values) Table ¶
func (v Values) Table(name string) (Values, error)
Table gets a table (YAML subsection) from a Values object.
The table is returned as a Values.
Compound table names may be specified with dots:
foo.bar
The above will be evaluated as "The table bar inside the table foo".
An ErrNoTable is returned if the table does not exist.