helmfile/examples
Yusuke KUOKA 9d7c036753 doc: Add a basic example for managfing oneshot jobs
Resolves #49
2018-03-27 17:21:01 +09:00
..
charts/paths-example Adding in examples for readme 2017-10-03 20:23:55 -05:00
deployments Fix terminology (#35) 2018-03-03 00:14:43 +09:00
values Adding in examples for readme 2017-10-03 20:23:55 -05:00
README.md doc: Add a basic example for managfing oneshot jobs 2018-03-27 17:21:01 +09:00

README.md

Helmfile practical examples and advanced usages

Managing oneshot-jobs with Helmfile

In case you want to manage oneshot-jobs like a report generation or a database migration and so on, add a dedicated release spec for the job in helmfile.yaml like:

repositories:
  - name: yourorg
    url: https://yourorg.example.com/charts

releases:
  - name: dbmigrator
    labels:
      job: dbmigrator
    chart: ./dbmigrator
    # DB host, port, and connection opts for the environment
    values:
    - "deploy/environments/{{ env "RAILS_ENV" }}/values.yaml"
    # DB username and password encrypted with helm-secrets(mozilla/sops)
    secrets:
    - "deploy/environments/{{ env "RAILS_ENV" }}/secrets.yaml"

You would then start a database migration job by executing:

# Start a database migration for the prod environment
$ RAILS_ENV=prod helmfile sync --selector job=dbmigrator

# Tail log until you are satisfied
$ kubectl logs -l job=dbmigrator

For more context, see this issue.