helmfile/pkg/state
KUOKA Yusuke 7666e95690
feat: Add `needs: [NS/NAME]` for controlling installation/deletion order declaratively (#914)
Introduces DAG-aware installation/deletion ordering to Helmfile.

`needs` controls the order of the installation/deletion of the release:

```yaml
relesaes:
- name: somerelease
  needs:
  - [TILLER_NAMESPACE/][NAMESPACE/]anotherelease
```

All the releases listed under `needs` are installed before(or deleted after) the release itself.

For the following example, `helmfile [sync|apply]` installs releases in this order:

1. logging
2. servicemesh
3. myapp1 and myapp2

```yaml
  - name: myapp1
    chart: charts/myapp
    needs:
    - servicemesh
    - logging
  - name: myapp2
    chart: charts/myapp
    needs:
    - servicemesh
    - logging
  - name: servicemesh
    chart: charts/istio
    needs:
    - logging
  - name: logging
    chart: charts/fluentd
```

Note that all the releases in a same group is installed concurrently. That is, myapp1 and myapp2 are installed concurrently.

On `helmdile [delete|destroy]`, deleations happen in the reverse order.

That is, `myapp1` and `myapp2` are deleted first, then `servicemesh`, and finally `logging`.

Resolves #715
2019-10-28 12:57:25 +09:00
..
chart_dependency.go Warn users when no repositories are defined (#879) 2019-09-29 16:11:06 +09:00
create.go Add integration with Hashicorp Vault, AWS SSM, SecretsManager (#906) 2019-10-25 22:55:26 +09:00
create_test.go Add integration with Hashicorp Vault, AWS SSM, SecretsManager (#906) 2019-10-25 22:55:26 +09:00
environment.go feat: Advanced Templating (#823) 2019-08-31 14:31:31 +09:00
envvals_loader.go feat: When values.yaml.gotmpl can't be parsed as YAML, print the YAML. (#703) 2019-06-19 08:47:36 +09:00
helmx.go feat: Adopt existing K8s resources as Helm release on install (#746) 2019-07-11 09:13:34 +09:00
release.go Make advanced templating backward-compatible (#833) 2019-08-31 22:37:46 +09:00
release_error.go chore: tidy up pkgs (#636) 2019-06-01 13:36:05 +09:00
release_filters.go chore: tidy up pkgs (#636) 2019-06-01 13:36:05 +09:00
state.go feat: Add `needs: [NS/NAME]` for controlling installation/deletion order declaratively (#914) 2019-10-28 12:57:25 +09:00
state_exec_tmpl.go feat: Advanced Templating (#823) 2019-08-31 14:31:31 +09:00
state_exec_tmpl_test.go Make advanced templating backward-compatible (#833) 2019-08-31 22:37:46 +09:00
state_run.go feat: Add `needs: [NS/NAME]` for controlling installation/deletion order declaratively (#914) 2019-10-28 12:57:25 +09:00
state_test.go feat: Add `needs: [NS/NAME]` for controlling installation/deletion order declaratively (#914) 2019-10-28 12:57:25 +09:00
storage.go chore: tidy up pkgs (#636) 2019-06-01 13:36:05 +09:00
types.go feat: state values (#647) 2019-06-04 16:34:02 +09:00
util.go fix: absolute chart path (#753) 2019-07-12 22:37:54 +09:00
util_test.go fix: absolute chart path (#753) 2019-07-12 22:37:54 +09:00