blob: f6d7088cdaa5a79f273bd966a8b5766315aec443 [file] [log] [blame]
Yuriy Taraday84a21032017-06-27 11:13:16 +04001import logging
2
3from salt.serializers import yaml
4
5HELM_HOME = '/srv/helm/home'
6LOG = logging.getLogger(__name__)
7
8def _helm_cmd(*args):
9 return {
10 'cmd': ('helm',) + args,
11 'env': {'HELM_HOME': HELM_HOME},
12 }
13
14
Yuriy Taraday66e61df2017-08-11 15:14:26 +040015def release_exists(name, namespace):
16 cmd = _helm_cmd('list', '--short', '--all', '--namespace', namespace, name)
Yuriy Taraday84a21032017-06-27 11:13:16 +040017 return __salt__['cmd.run_stdout'](**cmd) == name
18
19
Yuriy Taraday66e61df2017-08-11 15:14:26 +040020def release_create(name, namespace, chart_name, version=None, values=None):
Yuriy Taraday84a21032017-06-27 11:13:16 +040021 args = []
22 if version is not None:
23 args += ['--version', version]
24 if values is not None:
25 args += ['--values', '/dev/stdin']
Yuriy Taraday66e61df2017-08-11 15:14:26 +040026 cmd = _helm_cmd('install', '--namespace', namespace,
27 '--name', name, chart_name, *args)
Yuriy Taraday84a21032017-06-27 11:13:16 +040028 if values is not None:
29 cmd['stdin'] = yaml.serialize(values, default_flow_style=False)
30 LOG.debug('Creating release with args: %s', cmd)
31 return __salt__['cmd.retcode'](**cmd) == 0
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040032
33
Yuriy Taraday893b3fb2017-07-03 16:22:57 +040034def release_delete(name):
35 cmd = _helm_cmd('delete', '--purge', name)
36 return __salt__['cmd.retcode'](**cmd) == 0
37
38
Yuriy Taraday66e61df2017-08-11 15:14:26 +040039def release_upgrade(name, namespace, chart_name, version=None, values=None):
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040040 args = []
41 if version is not None:
42 args += ['--version', version]
43 if values is not None:
44 args += ['--values', '/dev/stdin']
Yuriy Taraday66e61df2017-08-11 15:14:26 +040045 cmd = _helm_cmd('upgrade', '--namespace', namespace,
46 name, chart_name, *args)
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040047 if values is not None:
48 cmd['stdin'] = yaml.serialize(values, default_flow_style=False)
Yuriy Taraday893b3fb2017-07-03 16:22:57 +040049 LOG.debug('Upgrading release with args: %s', cmd)
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040050 return __salt__['cmd.retcode'](**cmd) == 0
51
52
53def get_values(name):
54 cmd = _helm_cmd('get', 'values', '--all', name)
55 return yaml.deserialize(__salt__['cmd.run_stdout'](**cmd))