From d811500fa0702c30310289f736c66874171b0657 Mon Sep 17 00:00:00 2001 From: Kevin Clark Date: Thu, 10 Sep 2020 17:05:11 -0400 Subject: [PATCH] Added merge for max_replicas_per_node Signed-off-by: Kevin Clark --- compose/config/config.py | 1 + tests/unit/config/config_test.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/compose/config/config.py b/compose/config/config.py index 243529bd6..7b3969b6c 100644 --- a/compose/config/config.py +++ b/compose/config/config.py @@ -1114,6 +1114,7 @@ def merge_deploy(base, override): md['resources'] = dict(resources_md) if md.needs_merge('placement'): placement_md = MergeDict(md.base.get('placement') or {}, md.override.get('placement') or {}) + placement_md.merge_scalar('max_replicas_per_node') placement_md.merge_field('constraints', merge_unique_items_lists, default=[]) placement_md.merge_field('preferences', merge_unique_objects_lists, default=[]) md['placement'] = dict(placement_md) diff --git a/tests/unit/config/config_test.py b/tests/unit/config/config_test.py index 8b0d37526..63eece17e 100644 --- a/tests/unit/config/config_test.py +++ b/tests/unit/config/config_test.py @@ -2543,6 +2543,7 @@ web: 'labels': ['com.docker.compose.a=1', 'com.docker.compose.b=2'], 'mode': 'replicated', 'placement': { + 'max_replicas_per_node': 1, 'constraints': [ 'node.role == manager', 'engine.labels.aws == true' ], @@ -2599,6 +2600,7 @@ web: 'com.docker.compose.c': '3' }, 'placement': { + 'max_replicas_per_node': 1, 'constraints': [ 'engine.labels.aws == true', 'engine.labels.dev == true', 'node.role == manager', 'node.role == worker'