helmctl

command module
v0.0.0-...-a480921 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2022 License: Apache-2.0 Imports: 1 Imported by: 0

README

helmctl

helmctl is a wrapper of helm, helm-diff and sops. It uses yaml formated files to describe and re-use helm releases.

Installing

brew install go && \
git clone https://github.com/sprokhorov/helmctl.git && \
cd helmctl && go install github.com/sprokhorov/helmctl

Using the helmctl

Create helmctl.yaml

First of all we need helmctl.yaml to describe our releases. In following example we deploy telegraf on development environment. Please check example-helmctl.yaml to see all possible options of release describing.

version: v1
spec:
  releases:
    - name: telegraf
      chart: stable/telegraf
      version: 1.6.1
      values:
        - name: image.tag
          value: latest
  installs:
    environments:
      development:
        - telegraf

Syntax features:

  • You can use environment variables with custom YAML tag !env
  • You can include yaml blocks from files with custom YAML tag !include
version: v1
spec:
  releases:
  # Include values from file
    - !include releases/example/example-release-2.yaml
  # You can use `<<:` yaml merge operation to merge data from file with defined values
    - <<: !include releases/example/example-release-2.yaml
      name: example-release-2
  • You can use override/append release params for each environemnt or project in installs section. Arrays will be appended, string values will be overrided:
version: v1
spec:
  releases:
    - name: telegraf
      chart: stable/telegraf
      version: 1.6.1
      values:
        - name: image.tag
          value: latest
  installs:
    environments:
      development:
        - name: telegraf
          values:
          - name: image.pullPolicy
            value: always
          version: 1.6.2-NEW_VERSION

This will produce next release for development for telegraf:

name: telegraf
chart: stable/telegraf
version: 1.6.2-NEW_VERSION
values:
  - name: image.tag
    value: latest
  - name: image.pullPolicy
    value: always
Install releases

We can install one release to environment:

helmctl --environment development install telegraf

or all releases at the same time:

helmctl --environment development install all

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg
cmd
config
Caveat:
Caveat:
kubernetes
Kubernetes
Kubernetes

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL