Declaratively deploy your Kubernetes manifests, Kustomize configs, and Charts as Helm releases in one shot
Go to file
rob boll c78231e35e Merge pull request #6 from AMeng/return-code
Return exit code from helm
2017-05-02 22:07:57 -04:00
helmexec use modified cmd args. closes #4 2017-04-20 10:01:16 -04:00
state fmt 2017-04-12 11:16:12 -04:00
vendor vendor: add deps 2016-11-22 12:37:41 -05:00
.gitignore ignore dist 2017-04-12 11:22:19 -04:00
Dockerfile container: add helm 2016-11-22 21:40:24 -05:00
Makefile ignore standard ignores 2017-04-19 15:31:15 -04:00
README.md documentation updates and tweaking workflows with env vars. It now throws errors if they're not set 2017-04-12 10:15:56 -04:00
circle.yml build: add docker login 2016-11-22 21:40:50 -05:00
main.go Return exit code from helm 2017-05-02 12:49:49 -06:00

README.md

helmfile CircleCI

Deploy Kubernetes Helm Charts

Docker Repository on Quay

about

Helmfile is a declarative spec for deploying helm charts. It lets you...

  • Keep a directory of chart value files and maintain changes in version control.
  • Apply CI/CD to configuration changes.
  • Periodically sync to avoid skew in environments.

To avoid upgrades for each iteration of helm, the helmfile executable delegates to helm - as a result, helm must be installed.

The default helmfile is charts.yaml:

repositories:
  - name: roboll
    url: http://roboll.io/charts

charts:
  - name: vault                          # helm deployment name
    namespace: vault                     # target namespace
    chart: roboll/vault-secret-manager   # chart reference
    values: [ vault.yaml ]               # value files (--values)
    set:                                 # values (--set)
      - name: address
        value: https://vault.example.com
    env:                                 # values (--set) but value will be pulled from environment variables. Will throw an error if the environment variable is not set.
      - name: db.password
        value: DB_PASSWORD               # $DB_PASSOWRD needs to be set in the calling environment ex: export DB_PASSWORD='password1'

install

go get github.com/roboll/helmfile or releases or container

usage

NAME:
   helmfile -

USAGE:
   main [global options] command [command options] [arguments...]

VERSION:
   0.1.0

COMMANDS:
     repos   sync repositories from state file (helm repo add && helm repo update)
     charts  sync charts from state file (helm repo upgrade --install)
     sync    sync all resources from state file (repos && charts)
     delete  delete charts from state file (helm delete)

GLOBAL OPTIONS:
   --file FILE, -f FILE  load config from FILE (default: "charts.yaml")
   --quiet, -q           silence output
   --kube-context value  Set kubectl context. Uses current context by default
   --help, -h            show help
   --version, -v         print the version