Updates should be triggered on service/node configs change
Change-Id: Ia80685d032bffec55113639fb277b9910e10c909
This commit is contained in:
parent
e8ce334a9d
commit
08aa942502
|
@ -301,3 +301,9 @@ def get_rendering_config():
|
|||
conf = copy.deepcopy(CONF.configs)
|
||||
conf._merge(CONF.secret_configs)
|
||||
return conf
|
||||
|
||||
|
||||
def get_service_configs(service_name):
|
||||
service_config = config._yaml.AttrDict()
|
||||
extend_with_service_configs(service_name, service_config)
|
||||
return service_config
|
||||
|
|
|
@ -39,7 +39,7 @@ def _expand_items(service, kind, items):
|
|||
_expand(cmd)
|
||||
|
||||
|
||||
def _get_configmaps_version(configmaps, service_dir, files, configs):
|
||||
def _get_configmaps_version(configmaps, files, configs):
|
||||
"""Get overall ConfigMaps version
|
||||
|
||||
If any of the ConfigMaps changed, the overall version will be
|
||||
|
@ -109,7 +109,8 @@ def parse_role(component, topology, configmaps):
|
|||
process_files(files, service_dir)
|
||||
files_cm = _create_files_configmap(service_name, files, files_header)
|
||||
meta_cm = _create_meta_configmap(service)
|
||||
_create_service_configmap(service_name)
|
||||
service_configs = utils.get_service_configs(service_name)
|
||||
_create_service_configmap(service_name, service_configs)
|
||||
|
||||
yield _process_secrets(role.get("secrets"))
|
||||
|
||||
|
@ -122,8 +123,16 @@ def parse_role(component, topology, configmaps):
|
|||
cm_version = 'dry-run'
|
||||
else:
|
||||
rendering_context = utils.get_rendering_config()
|
||||
# update with node-related params
|
||||
for node_name, node in sorted(CONF.nodes._items()):
|
||||
rendering_context._merge(node.get('configs', {}))
|
||||
|
||||
# update with service-related params
|
||||
rendering_context._merge(service_configs)
|
||||
rendering_context['_current_service'] = service_name
|
||||
|
||||
cm_version = _get_configmaps_version(
|
||||
configmaps, service_dir, files, rendering_context._dict)
|
||||
configmaps, files, rendering_context._dict)
|
||||
|
||||
for cont in service["containers"]:
|
||||
daemon_cmd = cont["daemon"]
|
||||
|
@ -363,11 +372,9 @@ def _create_nodes_configmap(nodes):
|
|||
return kubernetes.process_object(cm)
|
||||
|
||||
|
||||
def _create_service_configmap(service_name):
|
||||
def _create_service_configmap(service_name, service_config):
|
||||
configmap_name = "%s-%s" % (service_name, templates.SERVICE_CONFIG)
|
||||
config = _yaml.AttrDict()
|
||||
utils.extend_with_service_configs(service_name, config)
|
||||
data = {templates.SERVICE_CONFIG: config._json()}
|
||||
data = {templates.SERVICE_CONFIG: service_config._json()}
|
||||
template = templates.serialize_configmap(configmap_name, data)
|
||||
return kubernetes.process_object(template)
|
||||
|
||||
|
|
|
@ -155,11 +155,11 @@ class TestDeploy(base.TestCase):
|
|||
cm_list = [mock.Mock(obj={'metadata': {'resourceVersion': '1'}})
|
||||
for _ in range(3)]
|
||||
self.assertEqual('111222', deploy._get_configmaps_version(
|
||||
cm_list, mock.ANY, mock.ANY, mock.ANY))
|
||||
cm_list, mock.ANY, mock.ANY))
|
||||
|
||||
cm_list = []
|
||||
self.assertEqual('222', deploy._get_configmaps_version(
|
||||
cm_list, mock.ANY, mock.ANY, mock.ANY))
|
||||
cm_list, mock.ANY, mock.ANY))
|
||||
|
||||
def test_get_service_files_hash(self):
|
||||
files = {
|
||||
|
|
Loading…
Reference in New Issue