docker_image: improve usage (#52894)

* Add source option.

* Split force parameter into force_source, force_absent and force_tag.

* Move all build-related options into a suboption called build.

* Add changelog.
This commit is contained in:
Felix Fontein
2019-03-14 10:46:38 +01:00
committed by John R Barker
parent fa7c8ce0b4
commit 35e7fb776a
5 changed files with 378 additions and 108 deletions

View File

@@ -7,6 +7,7 @@
docker_image:
name: "hello-world:latest"
state: absent
force_absent: yes
register: absent_1
- name: Make sure image is not there (idempotency)
@@ -23,14 +24,14 @@
docker_image:
name: "hello-world:latest"
state: present
pull: no
source: pull
register: present_1
- name: Make sure image is there (idempotent)
docker_image:
name: "hello-world:latest"
state: present
pull: yes
source: pull
register: present_2
- assert:
@@ -81,12 +82,14 @@
docker_image:
name: "{{ registry_address }}/test/hello-world:latest"
state: absent
force_absent: yes
- name: Push image to test registry
docker_image:
name: "hello-world:latest"
repository: "{{ registry_address }}/test/hello-world"
push: yes
source: local
register: push_1
- name: Push image to test registry (idempotent)
@@ -94,6 +97,7 @@
name: "hello-world:latest"
repository: "{{ registry_address }}/test/hello-world"
push: yes
source: local
register: push_2
- name: Push image to test registry (force, still idempotent)
@@ -119,6 +123,7 @@
docker_image:
name: "{{ registry_address }}/test/hello-world:latest"
state: absent
force_absent: yes
- name: Get facts of local image (absent)
docker_image_facts:
@@ -129,12 +134,14 @@
docker_image:
name: "{{ registry_address }}/test/hello-world:latest"
state: present
source: pull
register: pull_1
- name: Pull image from test registry (idempotency)
docker_image:
name: "{{ registry_address }}/test/hello-world:latest"
state: present
source: pull
register: pull_2
- name: Get facts of local image (present)

View File

@@ -9,33 +9,38 @@
inames: "{{ inames }} + [iname, iname_1]"
####################################################################
## buildargs #######################################################
## build.args ######################################################
####################################################################
- name: buildargs
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
buildargs:
TEST1: val1
TEST2: val2
TEST3: "True"
build:
path: "{{ role_path }}/files"
args:
TEST1: val1
TEST2: val2
TEST3: "True"
source: build
register: buildargs_1
- name: buildargs (idempotency)
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
buildargs:
TEST1: val1
TEST2: val2
TEST3: "True"
build:
path: "{{ role_path }}/files"
args:
TEST1: val1
TEST2: val2
TEST3: "True"
source: build
register: buildargs_2
- name: cleanup
docker_image:
name: "{{ iname }}"
state: absent
force_absent: yes
- assert:
that:
@@ -55,26 +60,31 @@
- name: container_limits (Failed due to min memory limit)
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
container_limits:
memory: 4000
build:
path: "{{ role_path }}/files"
container_limits:
memory: 4000
source: build
ignore_errors: yes
register: container_limits_1
- name: container_limits
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
container_limits:
memory: 5000000
memswap: 7000000
build:
path: "{{ role_path }}/files"
container_limits:
memory: 5000000
memswap: 7000000
source: build
register: container_limits_2
- name: cleanup
docker_image:
name: "{{ iname }}"
state: absent
force_absent: yes
- assert:
that:
@@ -93,15 +103,18 @@
- name: dockerfile
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
dockerfile: "MyDockerfile"
build:
path: "{{ role_path }}/files"
dockerfile: "MyDockerfile"
source: build
register: dockerfile_1
- name: cleanup
docker_image:
name: "{{ iname }}"
state: absent
force_absent: yes
- assert:
that:
@@ -116,19 +129,24 @@
docker_image:
name: "{{ registry_address }}/test/{{ iname }}:latest"
state: absent
force_absent: yes
- name: repository
docker_image:
name: "{{ iname }}"
path: "{{ role_path }}/files"
build:
path: "{{ role_path }}/files"
repository: "{{ registry_address }}/test/{{ iname }}"
source: build
register: repository_1
- name: repository (idempotent)
docker_image:
name: "{{ iname }}"
path: "{{ role_path }}/files"
build:
path: "{{ role_path }}/files"
repository: "{{ registry_address }}/test/{{ iname }}"
source: build
register: repository_2
- assert:
@@ -145,7 +163,7 @@
docker_image:
name: "{{ registry_address }}/test/{{ iname }}:latest"
state: absent
force: yes
force_absent: yes
- assert:
that:
@@ -157,29 +175,36 @@
- name: Build an image
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
build:
path: "{{ role_path }}/files"
source: build
- name: force (changed)
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
dockerfile: "MyDockerfile"
force: yes
build:
path: "{{ role_path }}/files"
dockerfile: "MyDockerfile"
source: build
force_source: yes
register: force_1
- name: force (unchanged)
docker_image:
path: "{{ role_path }}/files"
name: "{{ iname }}"
dockerfile: "MyDockerfile"
force: yes
build:
path: "{{ role_path }}/files"
dockerfile: "MyDockerfile"
source: build
force_source: yes
register: force_2
- name: cleanup
docker_image:
name: "{{ iname }}"
state: absent
force_absent: yes
- assert:
that:
@@ -194,23 +219,27 @@
docker_image:
name: "hello-world:latest"
archive_path: image.tar
source: pull
register: archive_image
- name: remove image
docker_image:
name: "hello-world:latest"
state: absent
force_absent: yes
- name: load image (changed)
docker_image:
name: "hello-world:latest"
load_path: image.tar
source: load
register: load_image
- name: load image (idempotency)
docker_image:
name: "hello-world:latest"
load_path: image.tar
source: load
register: load_image_1
- assert:
@@ -226,19 +255,24 @@
- name: Build image
docker_image:
name: "{{ iname }}"
path: "{{ role_path }}/files"
build:
path: "{{ role_path }}/files"
source: build
register: path_1
- name: Build image(idempotency)
- name: Build image (idempotency)
docker_image:
name: "{{ iname }}"
path: "{{ role_path }}/files"
build:
path: "{{ role_path }}/files"
source: build
register: path_2
- name: cleanup
docker_image:
name: "{{ iname }}"
state: absent
force_absent: yes
- assert:
that: