Merge "Add modify_only_with_source"
This commit is contained in:
commit
22b18ffcce
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Added `modify_only_with_source` to the ContainerImagePrepare set that can
|
||||||
|
be used to limit modify container images to a specific image_source as
|
||||||
|
defined in the services to container images mapping.
|
|
@ -180,6 +180,7 @@ def container_images_prepare_multi(environment, roles_data, dry_run=False,
|
||||||
modify_role = cip_entry.get('modify_role')
|
modify_role = cip_entry.get('modify_role')
|
||||||
modify_vars = cip_entry.get('modify_vars')
|
modify_vars = cip_entry.get('modify_vars')
|
||||||
modify_only_with_labels = cip_entry.get('modify_only_with_labels')
|
modify_only_with_labels = cip_entry.get('modify_only_with_labels')
|
||||||
|
modify_only_with_source = cip_entry.get('modify_only_with_source')
|
||||||
modify_append_tag = cip_entry.get('modify_append_tag',
|
modify_append_tag = cip_entry.get('modify_append_tag',
|
||||||
time.strftime(
|
time.strftime(
|
||||||
'-modified-%Y%m%d%H%M%S'))
|
'-modified-%Y%m%d%H%M%S'))
|
||||||
|
@ -208,6 +209,7 @@ def container_images_prepare_multi(environment, roles_data, dry_run=False,
|
||||||
modify_role=modify_role,
|
modify_role=modify_role,
|
||||||
modify_vars=modify_vars,
|
modify_vars=modify_vars,
|
||||||
modify_only_with_labels=modify_only_with_labels,
|
modify_only_with_labels=modify_only_with_labels,
|
||||||
|
modify_only_with_source=modify_only_with_source,
|
||||||
mirrors=mirrors,
|
mirrors=mirrors,
|
||||||
registry_credentials=creds,
|
registry_credentials=creds,
|
||||||
multi_arch=multi_arch,
|
multi_arch=multi_arch,
|
||||||
|
@ -249,6 +251,7 @@ def container_images_prepare(template_file=DEFAULT_TEMPLATE_FILE,
|
||||||
output_images_file=None, tag_from_label=None,
|
output_images_file=None, tag_from_label=None,
|
||||||
append_tag=None, modify_role=None,
|
append_tag=None, modify_role=None,
|
||||||
modify_vars=None, modify_only_with_labels=None,
|
modify_vars=None, modify_only_with_labels=None,
|
||||||
|
modify_only_with_source=None,
|
||||||
mirrors=None, registry_credentials=None,
|
mirrors=None, registry_credentials=None,
|
||||||
multi_arch=False, lock=None):
|
multi_arch=False, lock=None):
|
||||||
"""Perform container image preparation
|
"""Perform container image preparation
|
||||||
|
@ -276,6 +279,9 @@ def container_images_prepare(template_file=DEFAULT_TEMPLATE_FILE,
|
||||||
:param modify_vars: dict of variables to pass to modify_role
|
:param modify_vars: dict of variables to pass to modify_role
|
||||||
:param modify_only_with_labels: only modify the container images with the
|
:param modify_only_with_labels: only modify the container images with the
|
||||||
given labels
|
given labels
|
||||||
|
:param modify_only_with_source: only modify the container images from a
|
||||||
|
image_source in the tripleo-common service
|
||||||
|
to container mapping (e.g. kolla/tripleo)
|
||||||
:param mirrors: dict of registry netloc values to mirror urls
|
:param mirrors: dict of registry netloc values to mirror urls
|
||||||
:param registry_credentials: dict of registry netloc values to
|
:param registry_credentials: dict of registry netloc values to
|
||||||
authentication credentials for that registry.
|
authentication credentials for that registry.
|
||||||
|
@ -341,18 +347,27 @@ def container_images_prepare(template_file=DEFAULT_TEMPLATE_FILE,
|
||||||
entry['imagename'] = '%s:%s' % (
|
entry['imagename'] = '%s:%s' % (
|
||||||
image_no_tag, image_version_tags[image_no_tag])
|
image_no_tag, image_version_tags[image_no_tag])
|
||||||
|
|
||||||
|
images_with_labels = []
|
||||||
if modify_only_with_labels:
|
if modify_only_with_labels:
|
||||||
images_with_labels = uploader.filter_images_with_labels(
|
images_with_labels = uploader.filter_images_with_labels(
|
||||||
images, modify_only_with_labels)
|
images, modify_only_with_labels)
|
||||||
|
|
||||||
|
images_with_source = []
|
||||||
|
if modify_only_with_source:
|
||||||
|
images_with_source = [i.get('imagename') for i in result
|
||||||
|
if i.get('image_source', '')
|
||||||
|
in modify_only_with_source]
|
||||||
|
|
||||||
params = {}
|
params = {}
|
||||||
modify_append_tag = append_tag
|
modify_append_tag = append_tag
|
||||||
for entry in result:
|
for entry in result:
|
||||||
imagename = entry.get('imagename', '')
|
imagename = entry.get('imagename', '')
|
||||||
append_tag = ''
|
append_tag = ''
|
||||||
if modify_role and (
|
if modify_role and (
|
||||||
(not modify_only_with_labels) or
|
(not modify_only_with_labels
|
||||||
imagename in images_with_labels):
|
and not modify_only_with_source) or
|
||||||
|
(imagename in images_with_labels or
|
||||||
|
imagename in images_with_source)):
|
||||||
entry['modify_role'] = modify_role
|
entry['modify_role'] = modify_role
|
||||||
if modify_append_tag:
|
if modify_append_tag:
|
||||||
entry['modify_append_tag'] = modify_append_tag
|
entry['modify_append_tag'] = modify_append_tag
|
||||||
|
|
|
@ -861,6 +861,15 @@ class TestPrepare(base.TestCase):
|
||||||
'modify_role': 'add-foo-plugin',
|
'modify_role': 'add-foo-plugin',
|
||||||
'modify_only_with_labels': ['kolla_version'],
|
'modify_only_with_labels': ['kolla_version'],
|
||||||
'modify_vars': {'foo_version': '1.0.1'}
|
'modify_vars': {'foo_version': '1.0.1'}
|
||||||
|
}, {
|
||||||
|
'set': mapping_args,
|
||||||
|
'tag_from_label': 'bar',
|
||||||
|
'includes': ['nova', 'neutron'],
|
||||||
|
'push_destination': True,
|
||||||
|
'modify_role': 'add-foo-plugin',
|
||||||
|
'modify_only_with_source': ['kolla', 'tripleo'],
|
||||||
|
'modify_vars': {'foo_version': '1.0.1'}
|
||||||
|
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -887,6 +896,19 @@ class TestPrepare(base.TestCase):
|
||||||
'push_destination': '192.0.2.1:8787'
|
'push_destination': '192.0.2.1:8787'
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'image_params': {
|
||||||
|
'BarImage': 't/bar:1.0',
|
||||||
|
'BazImage': 't/baz:1.0'
|
||||||
|
},
|
||||||
|
'upload_data': [{
|
||||||
|
'imagename': 't/bar:1.0',
|
||||||
|
'push_destination': '192.0.2.1:8787'
|
||||||
|
}, {
|
||||||
|
'imagename': 't/baz:1.0',
|
||||||
|
'push_destination': '192.0.2.1:8787'
|
||||||
|
}]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
image_params = kb.container_images_prepare_multi(env, roles_data,
|
image_params = kb.container_images_prepare_multi(env, roles_data,
|
||||||
|
@ -906,6 +928,7 @@ class TestPrepare(base.TestCase):
|
||||||
append_tag=mock.ANY,
|
append_tag=mock.ANY,
|
||||||
modify_role=None,
|
modify_role=None,
|
||||||
modify_only_with_labels=None,
|
modify_only_with_labels=None,
|
||||||
|
modify_only_with_source=None,
|
||||||
modify_vars=None,
|
modify_vars=None,
|
||||||
mirrors={
|
mirrors={
|
||||||
'docker.io': 'http://192.0.2.2/reg/'
|
'docker.io': 'http://192.0.2.2/reg/'
|
||||||
|
@ -929,6 +952,31 @@ class TestPrepare(base.TestCase):
|
||||||
append_tag=mock.ANY,
|
append_tag=mock.ANY,
|
||||||
modify_role='add-foo-plugin',
|
modify_role='add-foo-plugin',
|
||||||
modify_only_with_labels=['kolla_version'],
|
modify_only_with_labels=['kolla_version'],
|
||||||
|
modify_only_with_source=None,
|
||||||
|
modify_vars={'foo_version': '1.0.1'},
|
||||||
|
mirrors={
|
||||||
|
'docker.io': 'http://192.0.2.2/reg/'
|
||||||
|
},
|
||||||
|
registry_credentials={
|
||||||
|
'docker.io': {'my_username': 'my_password'}
|
||||||
|
},
|
||||||
|
multi_arch=False,
|
||||||
|
lock=mock_lock
|
||||||
|
),
|
||||||
|
mock.call(
|
||||||
|
excludes=None,
|
||||||
|
includes=['nova', 'neutron'],
|
||||||
|
mapping_args=mapping_args,
|
||||||
|
output_env_file='image_params',
|
||||||
|
output_images_file='upload_data',
|
||||||
|
pull_source=None,
|
||||||
|
push_destination='192.0.2.1:8787',
|
||||||
|
service_filter=None,
|
||||||
|
tag_from_label='bar',
|
||||||
|
append_tag=mock.ANY,
|
||||||
|
modify_role='add-foo-plugin',
|
||||||
|
modify_only_with_labels=None,
|
||||||
|
modify_only_with_source=['kolla', 'tripleo'],
|
||||||
modify_vars={'foo_version': '1.0.1'},
|
modify_vars={'foo_version': '1.0.1'},
|
||||||
mirrors={
|
mirrors={
|
||||||
'docker.io': 'http://192.0.2.2/reg/'
|
'docker.io': 'http://192.0.2.2/reg/'
|
||||||
|
@ -941,7 +989,7 @@ class TestPrepare(base.TestCase):
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
|
|
||||||
mock_im.assert_called_once()
|
self.assertEqual(mock_im.call_count, 2)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
{
|
{
|
||||||
|
@ -1020,6 +1068,7 @@ class TestPrepare(base.TestCase):
|
||||||
append_tag=mock.ANY,
|
append_tag=mock.ANY,
|
||||||
modify_role=None,
|
modify_role=None,
|
||||||
modify_only_with_labels=None,
|
modify_only_with_labels=None,
|
||||||
|
modify_only_with_source=None,
|
||||||
modify_vars=None,
|
modify_vars=None,
|
||||||
mirrors={},
|
mirrors={},
|
||||||
registry_credentials=None,
|
registry_credentials=None,
|
||||||
|
@ -1039,6 +1088,7 @@ class TestPrepare(base.TestCase):
|
||||||
append_tag=mock.ANY,
|
append_tag=mock.ANY,
|
||||||
modify_role='add-foo-plugin',
|
modify_role='add-foo-plugin',
|
||||||
modify_only_with_labels=['kolla_version'],
|
modify_only_with_labels=['kolla_version'],
|
||||||
|
modify_only_with_source=None,
|
||||||
modify_vars={'foo_version': '1.0.1'},
|
modify_vars={'foo_version': '1.0.1'},
|
||||||
mirrors={},
|
mirrors={},
|
||||||
registry_credentials=None,
|
registry_credentials=None,
|
||||||
|
@ -1129,6 +1179,7 @@ class TestPrepare(base.TestCase):
|
||||||
append_tag=mock.ANY,
|
append_tag=mock.ANY,
|
||||||
modify_role=None,
|
modify_role=None,
|
||||||
modify_only_with_labels=None,
|
modify_only_with_labels=None,
|
||||||
|
modify_only_with_source=None,
|
||||||
modify_vars=None,
|
modify_vars=None,
|
||||||
mirrors={},
|
mirrors={},
|
||||||
registry_credentials=None,
|
registry_credentials=None,
|
||||||
|
@ -1148,6 +1199,7 @@ class TestPrepare(base.TestCase):
|
||||||
append_tag=mock.ANY,
|
append_tag=mock.ANY,
|
||||||
modify_role='add-foo-plugin',
|
modify_role='add-foo-plugin',
|
||||||
modify_only_with_labels=['kolla_version'],
|
modify_only_with_labels=['kolla_version'],
|
||||||
|
modify_only_with_source=None,
|
||||||
modify_vars={'foo_version': '1.0.1'},
|
modify_vars={'foo_version': '1.0.1'},
|
||||||
mirrors={},
|
mirrors={},
|
||||||
registry_credentials=None,
|
registry_credentials=None,
|
||||||
|
|
Loading…
Reference in New Issue