| {%- from slspath + "/map.jinja" import config, constants with context %} |
| |
| include: |
| - .client_installed |
| - .tiller_installed |
| - .kubectl_configured |
| - .repos_managed |
| |
| {%- if "releases" in config %} |
| {%- for release_id, release in config.releases.items() %} |
| {%- set release_name = release.get('name', release_id) %} |
| {%- set namespace = release.get('namespace', 'default') %} |
| |
| {%- if release.get('enabled', True) %} |
| ensure_{{ release_id }}_release: |
| helm_release.present: |
| - name: {{ release_name }} |
| - chart_name: {{ release['chart'] }} |
| - namespace: {{ namespace }} |
| - kube_config: {{ config.kubectl.config_file }} |
| - helm_home: {{ config.helm_home }} |
| {{ constants.helm.tiller_arg }} |
| {{ constants.helm.gce_state_arg }} |
| {%- if release.get('version') %} |
| - version: {{ release['version'] }} |
| {%- endif %} |
| {%- if release.get('values') %} |
| - values: |
| {{ release['values']|yaml(False)|indent(8) }} |
| {%- endif %} |
| - require: |
| {%- if config.tiller.install %} |
| - sls: {{ slspath }}.tiller_installed |
| {%- endif %} |
| - sls: {{ slspath }}.client_installed |
| - sls: {{ slspath }}.kubectl_configured |
| # |
| # note: intentionally don't fail if one or more repos fail to synchronize, |
| # since there should be a local repo cache anyways. |
| # |
| |
| {%- else %}{# not release.enabled #} |
| absent_{{ release_id }}_release: |
| helm_release.absent: |
| - name: {{ release_name }} |
| - namespace: {{ namespace }} |
| - kube_config: {{ config.kubectl.config_file }} |
| - helm_home: {{ config.helm_home }} |
| {{ constants.helm.tiller_arg }} |
| {{ constants.helm.gce_state_arg }} |
| - require: |
| {%- if config.tiller.install %} |
| - sls: {{ slspath }}.tiller_installed |
| {%- endif %} |
| - sls: {{ slspath }}.client_installed |
| - sls: {{ slspath }}.kubectl_configured |
| # |
| # note: intentionally don't fail if one or more repos fail to synchronize, |
| # since there should be a local repo cache anyways. |
| # |
| |
| {%- endif %}{# release.enabled #} |
| {%- endfor %}{# release_id, release in client.releases #} |
| {%- endif %}{# "releases" in client #} |