mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Backport of 117f132213
(#1542)
This commit is contained in:
parent
29992f1fbf
commit
fa05ca3f63
3 changed files with 81 additions and 3 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- "docker_image - if ``push=true`` is used with ``repository``, and the image does not need to be tagged, still push. This can happen if ``repository`` and ``name`` are equal (https://github.com/ansible-collections/community.docker/issues/52, https://github.com/ansible-collections/community.docker/pull/53)."
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
- name: Registering image name
|
- name: Registering image name
|
||||||
set_fact:
|
set_fact:
|
||||||
inames: "{{ inames + [iname, test_image_base ~ ':latest', hello_world_image_base ~ ':latest'] }}"
|
inames: "{{ inames + [iname, test_image_base ~ ':latest', hello_world_image_base ~ ':latest', hello_world_image_base ~ ':newtag', hello_world_image_base ~ ':newtag2'] }}"
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
## interact with test registry #####################################
|
## interact with test registry #####################################
|
||||||
|
@ -101,6 +101,82 @@
|
||||||
- facts_2.images | length == 0
|
- facts_2.images | length == 0
|
||||||
- facts_3.images | length == 1
|
- facts_3.images | length == 1
|
||||||
|
|
||||||
|
- name: Tag different image with new tag
|
||||||
|
docker_image:
|
||||||
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
|
repository: "{{ hello_world_image_base }}:newtag"
|
||||||
|
push: no
|
||||||
|
source: pull
|
||||||
|
|
||||||
|
- name: Push different image with new tag
|
||||||
|
docker_image:
|
||||||
|
name: "{{ hello_world_image_base }}"
|
||||||
|
repository: "{{ hello_world_image_base }}"
|
||||||
|
tag: newtag
|
||||||
|
push: yes
|
||||||
|
source: local
|
||||||
|
register: push_1_different
|
||||||
|
|
||||||
|
- name: Push different image with new tag (idempotent)
|
||||||
|
docker_image:
|
||||||
|
name: "{{ hello_world_image_base }}"
|
||||||
|
repository: "{{ hello_world_image_base }}"
|
||||||
|
tag: newtag
|
||||||
|
push: yes
|
||||||
|
source: local
|
||||||
|
register: push_2_different
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- push_1_different is changed
|
||||||
|
- push_2_different is not changed
|
||||||
|
|
||||||
|
- name: Tag same image with new tag
|
||||||
|
docker_image:
|
||||||
|
name: "{{ docker_test_image_alpine_different }}"
|
||||||
|
repository: "{{ hello_world_image_base }}:newtag2"
|
||||||
|
push: no
|
||||||
|
source: pull
|
||||||
|
|
||||||
|
- name: Push same image with new tag
|
||||||
|
docker_image:
|
||||||
|
name: "{{ hello_world_image_base }}"
|
||||||
|
repository: "{{ hello_world_image_base }}"
|
||||||
|
tag: newtag2
|
||||||
|
push: yes
|
||||||
|
source: local
|
||||||
|
register: push_1_same
|
||||||
|
|
||||||
|
- name: Push same image with new tag (idempotent)
|
||||||
|
docker_image:
|
||||||
|
name: "{{ hello_world_image_base }}"
|
||||||
|
repository: "{{ hello_world_image_base }}"
|
||||||
|
tag: newtag2
|
||||||
|
push: yes
|
||||||
|
source: local
|
||||||
|
register: push_2_same
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
# NOTE: This should be:
|
||||||
|
# - push_1_same is changed
|
||||||
|
# Unfortunately docker does *NOT* report whether the tag already existed or not.
|
||||||
|
# Here are the logs returned by client.push() for both tasks (which are exactly the same):
|
||||||
|
# push_1_same:
|
||||||
|
# {"status": "The push refers to repository [localhost:32796/test/hello-world]"},
|
||||||
|
# {"id": "3fc64803ca2d", "progressDetail": {}, "status": "Preparing"},
|
||||||
|
# {"id": "3fc64803ca2d", "progressDetail": {}, "status": "Layer already exists"},
|
||||||
|
# {"status": "newtag2: digest: sha256:92251458088c638061cda8fd8b403b76d661a4dc6b7ee71b6affcf1872557b2b size: 528"},
|
||||||
|
# {"aux": {"Digest": "sha256:92251458088c638061cda8fd8b403b76d661a4dc6b7ee71b6affcf1872557b2b", "Size": 528, "Tag": "newtag2"}, "progressDetail": {}}
|
||||||
|
# push_2_same:
|
||||||
|
# {"status": "The push refers to repository [localhost:32796/test/hello-world]"},
|
||||||
|
# {"id": "3fc64803ca2d", "progressDetail": {}, "status": "Preparing"},
|
||||||
|
# {"id": "3fc64803ca2d", "progressDetail": {}, "status": "Layer already exists"},
|
||||||
|
# {"status": "newtag2: digest: sha256:92251458088c638061cda8fd8b403b76d661a4dc6b7ee71b6affcf1872557b2b size: 528"},
|
||||||
|
# {"aux": {"Digest": "sha256:92251458088c638061cda8fd8b403b76d661a4dc6b7ee71b6affcf1872557b2b", "Size": 528, "Tag": "newtag2"}, "progressDetail": {}}
|
||||||
|
- push_1_same is not changed
|
||||||
|
- push_2_same is not changed
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
## repository ######################################################
|
## repository ######################################################
|
||||||
####################################################################
|
####################################################################
|
||||||
|
|
Loading…
Reference in a new issue