blob: 23e28c4ce3d83079c781c48d6f3d640ea942e3b3 [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
15def release_exists(name):
16 cmd = _helm_cmd('list', '--short', '--all', name)
17 return __salt__['cmd.run_stdout'](**cmd) == name
18
19
20def release_create(name, chart_name, version=None, values=None):
21 args = []
22 if version is not None:
23 args += ['--version', version]
24 if values is not None:
25 args += ['--values', '/dev/stdin']
26 cmd = _helm_cmd('install', '--name', name, chart_name, *args)
27 if values is not None:
28 cmd['stdin'] = yaml.serialize(values, default_flow_style=False)
29 LOG.debug('Creating release with args: %s', cmd)
30 return __salt__['cmd.retcode'](**cmd) == 0
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040031
32
Yuriy Taraday893b3fb2017-07-03 16:22:57 +040033def release_delete(name):
34 cmd = _helm_cmd('delete', '--purge', name)
35 return __salt__['cmd.retcode'](**cmd) == 0
36
37
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040038def release_upgrade(name, chart_name, version=None, values=None):
39 args = []
40 if version is not None:
41 args += ['--version', version]
42 if values is not None:
43 args += ['--values', '/dev/stdin']
44 cmd = _helm_cmd('upgrade', name, chart_name, *args)
45 if values is not None:
46 cmd['stdin'] = yaml.serialize(values, default_flow_style=False)
Yuriy Taraday893b3fb2017-07-03 16:22:57 +040047 LOG.debug('Upgrading release with args: %s', cmd)
Yuriy Taradayaeeaa742017-06-28 15:54:56 +040048 return __salt__['cmd.retcode'](**cmd) == 0
49
50
51def get_values(name):
52 cmd = _helm_cmd('get', 'values', '--all', name)
53 return yaml.deserialize(__salt__['cmd.run_stdout'](**cmd))