From 6268930634fed4dcf35043499bec01b2dc4a5d25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Mart=C3=ADn?= Date: Mon, 27 Nov 2023 14:05:49 +0100 Subject: [PATCH] image_template: allow to setup template version name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow to create templates with the same name but with different version by setting up the `template_version_name` variable. Creating a new version requires the base template to exist. If not specified the value of the variable is `base version` which is the default value for base templates. Signed-off-by: Miguel Martín --- roles/image_template/README.md | 1 + roles/image_template/tasks/qcow2_image.yml | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/roles/image_template/README.md b/roles/image_template/README.md index 16d56695..63ecca79 100644 --- a/roles/image_template/README.md +++ b/roles/image_template/README.md @@ -49,6 +49,7 @@ Role Variables | glance_image_provider | UNDEF (mandatory if qcow_url is not used) | Name of the glance image provider. | | glance_image | UNDEF (mandatory if qcow_url is not used) | This parameter specifies the name of disk in glance provider to be imported as template. | | template_prerequisites_tasks | UNDEF | Works only with qcow image. Specify a path to Ansible tasks file, which should be executed on virtual machine before creating a template from it. Note that qcow image must contain guest agent which reports IP address. | +| template_version_name | "base version" | Version name of the template. Allows to create different versions of a template. | The `template_disks` List of dictionaries can contain following attributes: diff --git a/roles/image_template/tasks/qcow2_image.yml b/roles/image_template/tasks/qcow2_image.yml index 6f2ad16e..bd1195f3 100644 --- a/roles/image_template/tasks/qcow2_image.yml +++ b/roles/image_template/tasks/qcow2_image.yml @@ -83,7 +83,8 @@ - name: Check if template already exists ovirt_template_info: auth: "{{ ovirt_auth }}" - pattern: "name={{ template_name }} and datacenter={{ dc_info.ovirt_datacenters[0].name }}" + pattern: "name={{ template_name }} and datacenter={{ dc_info.ovirt_datacenters[0].name }} + and version_name={{ template_version_name | default('\"base version\"') }}" register: template_info tags: - ovirt-template-image @@ -230,6 +231,8 @@ cluster: "{{ template_cluster }}" timeout: "{{ template_timeout }}" seal: "{{ template_seal }}" + version: + name: "{{ template_version_name | default('\"base version\"') }}" when: template_info.ovirt_templates | length == 0 tags: - ovirt-template-image