Browse Source

Added merge for max_replicas_per_node

Signed-off-by: Kevin Clark <[email protected]>
Kevin Clark 5 years ago
parent
commit
d811500fa0
2 changed files with 3 additions and 0 deletions
  1. 1 0
      compose/config/config.py
  2. 2 0
      tests/unit/config/config_test.py

+ 1 - 0
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)

+ 2 - 0
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'