mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-08 14:02:38 +00:00
2
molecule/default/roles/helm/files/values.yaml
Normal file
2
molecule/default/roles/helm/files/values.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
revisionHistoryLimit: 0
|
||||||
@@ -258,6 +258,25 @@
|
|||||||
that:
|
that:
|
||||||
- install is changed
|
- install is changed
|
||||||
|
|
||||||
|
- name: "Install {{ chart_test }} from {{ source }} with values_files"
|
||||||
|
helm:
|
||||||
|
binary_path: "{{ helm_binary }}"
|
||||||
|
name: test
|
||||||
|
chart_ref: "{{ chart_source }}"
|
||||||
|
chart_version: "{{ chart_source_version | default(omit) }}"
|
||||||
|
namespace: "{{ helm_namespace }}"
|
||||||
|
values_files:
|
||||||
|
- "{{ role_path }}/files/values.yaml"
|
||||||
|
register: install
|
||||||
|
|
||||||
|
- name: "Assert that {{ chart_test }} chart has var from {{ source }}"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- install is changed
|
||||||
|
- install.status.status | lower == 'deployed'
|
||||||
|
- install.status.chart == "{{ chart_test }}-{{ chart_test_version }}"
|
||||||
|
- "install.status['values'].revisionHistoryLimit == 0"
|
||||||
|
|
||||||
- name: Remove helm namespace
|
- name: Remove helm namespace
|
||||||
k8s:
|
k8s:
|
||||||
api_version: v1
|
api_version: v1
|
||||||
|
|||||||
@@ -73,6 +73,17 @@ options:
|
|||||||
default: {}
|
default: {}
|
||||||
aliases: [ values ]
|
aliases: [ values ]
|
||||||
type: dict
|
type: dict
|
||||||
|
values_files:
|
||||||
|
description:
|
||||||
|
- Value files to pass to chart.
|
||||||
|
- Paths will be read from the target host's filesystem, not the host running ansible.
|
||||||
|
- values_files option is evaluated before values option if both are used.
|
||||||
|
- Paths are evaluated in the order the paths are specified.
|
||||||
|
required: false
|
||||||
|
default: []
|
||||||
|
type: list
|
||||||
|
elements: str
|
||||||
|
version_added: '1.1.0'
|
||||||
update_repo_cache:
|
update_repo_cache:
|
||||||
description:
|
description:
|
||||||
- Run C(helm repo update) before the operation. Can be run as part of the package installation or as a separate step.
|
- Run C(helm repo update) before the operation. Can be run as part of the package installation or as a separate step.
|
||||||
@@ -155,6 +166,14 @@ EXAMPLES = r'''
|
|||||||
chart_version: 5.0.12
|
chart_version: 5.0.12
|
||||||
values: "{{ lookup('template', 'somefile.yaml') | from_yaml }}"
|
values: "{{ lookup('template', 'somefile.yaml') | from_yaml }}"
|
||||||
|
|
||||||
|
- name: Deploy Grafana chart using values files on target
|
||||||
|
community.kubernetes.helm:
|
||||||
|
name: test
|
||||||
|
chart_ref: stable/grafana
|
||||||
|
release_namespace: monitoring
|
||||||
|
values_files:
|
||||||
|
- /path/to/values.yaml
|
||||||
|
|
||||||
- name: Remove test release and waiting suppression ending
|
- name: Remove test release and waiting suppression ending
|
||||||
community.kubernetes.helm:
|
community.kubernetes.helm:
|
||||||
name: test
|
name: test
|
||||||
@@ -328,8 +347,8 @@ def fetch_chart_info(command, chart_ref):
|
|||||||
|
|
||||||
|
|
||||||
def deploy(command, release_name, release_values, chart_name, wait,
|
def deploy(command, release_name, release_values, chart_name, wait,
|
||||||
wait_timeout, disable_hook, force, atomic=False, create_namespace=False,
|
wait_timeout, disable_hook, force, values_files, atomic=False,
|
||||||
replace=False):
|
create_namespace=False, replace=False):
|
||||||
"""
|
"""
|
||||||
Install/upgrade/rollback release chart
|
Install/upgrade/rollback release chart
|
||||||
"""
|
"""
|
||||||
@@ -362,6 +381,10 @@ def deploy(command, release_name, release_values, chart_name, wait,
|
|||||||
if create_namespace:
|
if create_namespace:
|
||||||
deploy_command += " --create-namespace"
|
deploy_command += " --create-namespace"
|
||||||
|
|
||||||
|
if values_files:
|
||||||
|
for value_file in values_files:
|
||||||
|
deploy_command += " --values=" + value_file
|
||||||
|
|
||||||
if release_values != {}:
|
if release_values != {}:
|
||||||
fd, path = tempfile.mkstemp(suffix='.yml')
|
fd, path = tempfile.mkstemp(suffix='.yml')
|
||||||
with open(path, 'w') as yaml_file:
|
with open(path, 'w') as yaml_file:
|
||||||
@@ -403,6 +426,7 @@ def main():
|
|||||||
release_namespace=dict(type='str', required=True, aliases=['namespace']),
|
release_namespace=dict(type='str', required=True, aliases=['namespace']),
|
||||||
release_state=dict(default='present', choices=['present', 'absent'], aliases=['state']),
|
release_state=dict(default='present', choices=['present', 'absent'], aliases=['state']),
|
||||||
release_values=dict(type='dict', default={}, aliases=['values']),
|
release_values=dict(type='dict', default={}, aliases=['values']),
|
||||||
|
values_files=dict(type='list', default=[], elements='str'),
|
||||||
update_repo_cache=dict(type='bool', default=False),
|
update_repo_cache=dict(type='bool', default=False),
|
||||||
|
|
||||||
# Helm options
|
# Helm options
|
||||||
@@ -437,6 +461,7 @@ def main():
|
|||||||
release_namespace = module.params.get('release_namespace')
|
release_namespace = module.params.get('release_namespace')
|
||||||
release_state = module.params.get('release_state')
|
release_state = module.params.get('release_state')
|
||||||
release_values = module.params.get('release_values')
|
release_values = module.params.get('release_values')
|
||||||
|
values_files = module.params.get('values_files')
|
||||||
update_repo_cache = module.params.get('update_repo_cache')
|
update_repo_cache = module.params.get('update_repo_cache')
|
||||||
|
|
||||||
# Helm options
|
# Helm options
|
||||||
@@ -491,15 +516,15 @@ def main():
|
|||||||
|
|
||||||
if release_status is None: # Not installed
|
if release_status is None: # Not installed
|
||||||
helm_cmd = deploy(helm_cmd, release_name, release_values, chart_ref, wait, wait_timeout,
|
helm_cmd = deploy(helm_cmd, release_name, release_values, chart_ref, wait, wait_timeout,
|
||||||
disable_hook, False, atomic=atomic, create_namespace=create_namespace,
|
disable_hook, False, values_files=values_files, atomic=atomic,
|
||||||
replace=replace)
|
create_namespace=create_namespace, replace=replace)
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
elif force or release_values != release_status['values'] \
|
elif force or release_values != release_status['values'] \
|
||||||
or (chart_info['name'] + '-' + chart_info['version']) != release_status["chart"]:
|
or (chart_info['name'] + '-' + chart_info['version']) != release_status["chart"]:
|
||||||
helm_cmd = deploy(helm_cmd, release_name, release_values, chart_ref, wait, wait_timeout,
|
helm_cmd = deploy(helm_cmd, release_name, release_values, chart_ref, wait, wait_timeout,
|
||||||
disable_hook, force, atomic=atomic, create_namespace=create_namespace,
|
disable_hook, force, values_files=values_files, atomic=atomic,
|
||||||
replace=replace)
|
create_namespace=create_namespace, replace=replace)
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
if module.check_mode:
|
if module.check_mode:
|
||||||
|
|||||||
Reference in New Issue
Block a user