Add operator for tripleo container image build
This new operator will allow to build TripleO container images using the v2 interface in tripleoclient. Change-Id: I6d1061292aa338c48f970848ff274b7e81d71b33
This commit is contained in:
parent
7ae7c668ed
commit
86f231c5ed
37
playbooks/container-build.yaml
Normal file
37
playbooks/container-build.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
###############################################################################
|
||||||
|
# Container Image Build playbook
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# This is a basic playbook to perform the basic container image build actions
|
||||||
|
# for TripleO containers.
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
- hosts: undercloud
|
||||||
|
collections:
|
||||||
|
- tripleo.operator
|
||||||
|
vars:
|
||||||
|
build_debug: true
|
||||||
|
registry: quay.io/tripleomaster
|
||||||
|
tag: current-tripleo
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Gather the rpm package facts
|
||||||
|
package_facts:
|
||||||
|
|
||||||
|
- name: Check if tripleoclient is installed
|
||||||
|
fail:
|
||||||
|
msg: >-
|
||||||
|
TripleO Client is not installed. Please make sure that the client
|
||||||
|
has been installed and the repositories are properly configured.
|
||||||
|
when: (ansible_facts.distribution_major_version|int <= 7 and not 'python2-tripleoclient' in ansible_facts.packages) or
|
||||||
|
(ansible_facts.distribution_major_version|int >= 8 and not 'python3-tripleoclient' in ansible_facts.packages)
|
||||||
|
|
||||||
|
- name: Run container image build
|
||||||
|
include_role:
|
||||||
|
name: tripleo_container_image_build
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_debug: "{{ build_debug }}"
|
||||||
|
tripleo_container_image_build_registry: "{{ registry }}"
|
||||||
|
tripleo_container_image_build_tag: "{{ tag }}"
|
||||||
|
tripleo_container_image_build_push: true
|
69
roles/tripleo_container_image_build/README.md
Normal file
69
roles/tripleo_container_image_build/README.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
tripleo_container_image_build
|
||||||
|
=============================
|
||||||
|
|
||||||
|
A role to perform the container image build process.
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Role Variables
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* `tripleo_container_image_build_authfile`: (String) Path of the authentication file. Default: ''
|
||||||
|
* `tripleo_container_image_build_base`: (String) Name of the base image. Can also specify a tag , e.g. ubi8:latest. Default: ''
|
||||||
|
* `tripleo_container_image_build_config_file`: (String) YAML Config file specifying the images to build. Default: ''
|
||||||
|
* `tripleo_container_image_build_config_path`: (String) YAML Config path where image configs are stored. Default: ''
|
||||||
|
* `tripleo_container_image_build_debug`: (Boolean) Flag to print out the delete command. Default: False
|
||||||
|
* `tripleo_container_image_build_distro`: (String) Ability to override the distro name; e.g. rhel. Default: ''
|
||||||
|
* `tripleo_container_image_build_excludes`: (List) Name of containers to exclude from the build. Default: []
|
||||||
|
* `tripleo_container_image_build_extra_config`: (String) YAML Config file specifying the extra metadata to override; e.g. labels. Default: ''
|
||||||
|
* `tripleo_container_image_build_generate_scripts_only`: (Boolean) Do not run the actual command - to be used in conjonction with `tripleo_container_image_build_generate_scripts`. By default uses the value of `tripleo_generate_scripts_only` or False if `tripleo_generate_scripts_only` is not defined.
|
||||||
|
* `tripleo_container_image_build_generate_scripts`: (Boolean) Write out a shell script that can be used to reproduce the command being executed. By default uses the value of `tripleo_generate_scripts` or False if `tripleo_generate_scripts` is not defined.
|
||||||
|
* `tripleo_container_image_build_home_dir` (String): Path to the home directory. Default: {{ ansible_env.HOME }}
|
||||||
|
* `tripleo_container_image_build_log` (String): Path to the log file. Default to {{ tripleo_container_image_build_home_dir }}/container_image_build.log
|
||||||
|
* `tripleo_container_image_build_log_combine`: (Boolean) Whether or not we combine the logs. Default: True
|
||||||
|
* `tripleo_container_image_build_log_output`: (Boolean) Whether or not we output the logs. Default: True
|
||||||
|
* `tripleo_container_image_build_namespace`: (String) Namespace for the container images. Default: ''
|
||||||
|
* `tripleo_container_image_build_poll`: (Integer) Number of seconds to wait between each checks to see if the command has completed. Default: 10
|
||||||
|
* `tripleo_container_image_build_prefix`: (String) Prefix for the container images names. Default: ''
|
||||||
|
* `tripleo_container_image_build_push`: (Boolean) Whether or not we push the container images to the registry. Default: False
|
||||||
|
* `tripleo_container_image_build_registry`: (String) URL of the container image registry. Default: ''
|
||||||
|
* `tripleo_container_image_build_skip_build`: (Boolean) Whether or not we skip the container image build and just generate configs. Default: False
|
||||||
|
* `tripleo_container_image_build_tag`: (String) Tag for the container images. Default: ''
|
||||||
|
* `tripleo_container_image_build_timeout`: (Integer) Number in seconds to wait for the ansible execution of the build command to finish. Default: 5700
|
||||||
|
* `tripleo_container_image_build_volumes`: (List) Volume to bind mount during the container image builds. Default: []
|
||||||
|
* `tripleo_container_image_build_work_dir`: (String) Tripleo container builds directory.
|
||||||
|
|
||||||
|
Output Variables
|
||||||
|
----------------
|
||||||
|
|
||||||
|
* `tripleo_container_image_build_output`: (String) The command standard output.
|
||||||
|
* `tripleo_container_image_build_result`: Ansible shell execution results
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Example Playbook
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Example container images build.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- hosts: undercloud
|
||||||
|
gather_facts: true
|
||||||
|
tasks:
|
||||||
|
- name: Build containers
|
||||||
|
import_role:
|
||||||
|
name: tripleo_container_image_build
|
||||||
|
var:
|
||||||
|
tripleo_container_image_build_debug: true
|
||||||
|
```
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
Apache-2.0
|
27
roles/tripleo_container_image_build/defaults/main.yml
Normal file
27
roles/tripleo_container_image_build/defaults/main.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# defaults file for tripleo_container_image_build
|
||||||
|
---
|
||||||
|
openstack_bin: openstack
|
||||||
|
tripleo_container_image_build_authfile:
|
||||||
|
tripleo_container_image_build_base:
|
||||||
|
tripleo_container_image_build_config_file:
|
||||||
|
tripleo_container_image_build_config_path:
|
||||||
|
tripleo_container_image_build_debug: false
|
||||||
|
tripleo_container_image_build_distro:
|
||||||
|
tripleo_container_image_build_excludes: []
|
||||||
|
tripleo_container_image_build_extra_config:
|
||||||
|
tripleo_container_image_build_generate_scripts_only: "{{ tripleo_generate_scripts_only | default(False) }}"
|
||||||
|
tripleo_container_image_build_generate_scripts: "{{ tripleo_generate_scripts | default(False) }}"
|
||||||
|
tripleo_container_image_build_home_dir: "{{ ansible_env.HOME }}"
|
||||||
|
tripleo_container_image_build_log: "{{ tripleo_container_image_build_home_dir }}/container_image_build.log"
|
||||||
|
tripleo_container_image_build_log_combine: true
|
||||||
|
tripleo_container_image_build_log_output: true
|
||||||
|
tripleo_container_image_build_namespace:
|
||||||
|
tripleo_container_image_build_poll: 10
|
||||||
|
tripleo_container_image_build_prefix:
|
||||||
|
tripleo_container_image_build_push: false
|
||||||
|
tripleo_container_image_build_registry:
|
||||||
|
tripleo_container_image_build_skip_build: false
|
||||||
|
tripleo_container_image_build_tag:
|
||||||
|
tripleo_container_image_build_timeout: 5700
|
||||||
|
tripleo_container_image_build_volumes: []
|
||||||
|
tripleo_container_image_build_work_dir:
|
42
roles/tripleo_container_image_build/meta/main.yml
Normal file
42
roles/tripleo_container_image_build/meta/main.yml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2020 Red Hat, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
|
||||||
|
galaxy_info:
|
||||||
|
author: OpenStack
|
||||||
|
description: TripleO Operator Role -- tripleo_container_image_build
|
||||||
|
company: Red Hat
|
||||||
|
license: Apache-2.0
|
||||||
|
min_ansible_version: 2.8
|
||||||
|
#
|
||||||
|
# Provide a list of supported platforms, and for each platform a list of versions.
|
||||||
|
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
||||||
|
# To view available platforms and versions (or releases), visit:
|
||||||
|
# https://galaxy.ansible.com/api/v1/platforms/
|
||||||
|
#
|
||||||
|
platforms:
|
||||||
|
- name: CentOS
|
||||||
|
versions:
|
||||||
|
- 7
|
||||||
|
- 8
|
||||||
|
|
||||||
|
galaxy_tags:
|
||||||
|
- tripleo
|
||||||
|
|
||||||
|
|
||||||
|
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
||||||
|
# if you add dependencies to this list.
|
||||||
|
dependencies: []
|
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
collections:
|
||||||
|
- tripleo.operator
|
||||||
|
vars:
|
||||||
|
openstack_bin: echo
|
||||||
|
tripleo_container_image_build_poll: 1
|
||||||
|
tripleo_container_image_build_log_output: false
|
||||||
|
tripleo_container_image_build_log_combine: false
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: "Include tripleo_container_image_build"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
|
||||||
|
- name: Check role
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output == "tripleo container image build"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_authfile"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_authfile: /tmp/secure.json
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_authfile"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --authfile /tmp/secure.json"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_base"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_base: ubi8:latest
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_base"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --base ubi8:latest"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_config_file"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_config_file: /tmp/tripleo_containers.yaml
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_config_file"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --config-file /tmp/tripleo_containers.yaml"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_config_path"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_config_path: /tmp/configs
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_config_path"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --config-path /tmp/configs"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_debug"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_debug: true
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_debug"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --debug"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_distro"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_distro: fedora
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_distro"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --distro fedora"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_excludes"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_excludes:
|
||||||
|
- keystone
|
||||||
|
- nova_api
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_excludes"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --exclude keystone --exclude nova_api"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_extra_config"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_extra_config: my_config.yaml
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_extra_config"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --extra-config my_config.yaml"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_namespace"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_namespace: masterchef
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_namespace"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --namespace masterchef"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_prefix"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_prefix: os
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_prefix"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --prefix os"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_push"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_push: true
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_push"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --push"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_registry"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_registry: localhost:8787
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_registry"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --registry localhost:8787"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_skip_build"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_skip_build: true
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_skip_build"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --skip-build"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_tag"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_tag: current
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_tag"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --tag current"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_volumes"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_volumes:
|
||||||
|
- '/etc:/etc'
|
||||||
|
- '/mydir:/mydir'
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_volumes"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --volume /etc:/etc --volume /mydir:/mydir"
|
||||||
|
|
||||||
|
- name: Check parameter "tripleo_container_image_build_work_dir"
|
||||||
|
include_role:
|
||||||
|
name: "tripleo_container_image_build"
|
||||||
|
vars:
|
||||||
|
tripleo_container_image_build_work_dir: /work
|
||||||
|
|
||||||
|
- name: Assert "tripleo_container_image_build_work_dir"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- tripleo_container_image_build_output ==
|
||||||
|
"tripleo container image build --work-dir /work"
|
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: delegated
|
||||||
|
options:
|
||||||
|
managed: false
|
||||||
|
ansible_connection_options:
|
||||||
|
ansible_connection: local
|
||||||
|
log: true
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
scenario:
|
||||||
|
name: default
|
||||||
|
test_sequence:
|
||||||
|
- prepare
|
||||||
|
- syntax
|
||||||
|
- converge
|
||||||
|
- verify
|
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: Prepare
|
||||||
|
hosts: all
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Include molecule prep
|
||||||
|
include_role:
|
||||||
|
name: test_molecule_prep
|
67
roles/tripleo_container_image_build/tasks/main.yml
Normal file
67
roles/tripleo_container_image_build/tasks/main.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
# tasks file for tripleo_container_image_build
|
||||||
|
- name: Set facts for tripleo container image build
|
||||||
|
set_fact:
|
||||||
|
_build_cmd: >-
|
||||||
|
{{ openstack_bin }} tripleo container image build
|
||||||
|
{{ tripleo_container_image_build_authfile | ternary('--authfile ' ~ tripleo_container_image_build_authfile, '') }}
|
||||||
|
{{ tripleo_container_image_build_base | ternary('--base ' ~ tripleo_container_image_build_base, '') }}
|
||||||
|
{{ tripleo_container_image_build_config_file | ternary('--config-file ' ~ tripleo_container_image_build_config_file, '') }}
|
||||||
|
{{ tripleo_container_image_build_config_path | ternary('--config-path ' ~ tripleo_container_image_build_config_path, '') }}
|
||||||
|
{{ tripleo_container_image_build_debug | ternary('--debug', '') }}
|
||||||
|
{{ tripleo_container_image_build_distro | ternary('--distro ' ~ tripleo_container_image_build_distro, '') }}
|
||||||
|
{{ tripleo_container_image_build_excludes | tripleo.operator.shell_arg_list('--exclude') }}
|
||||||
|
{{ tripleo_container_image_build_extra_config | ternary('--extra-config ' ~ tripleo_container_image_build_extra_config, '') }}
|
||||||
|
{{ tripleo_container_image_build_namespace | ternary('--namespace ' ~ tripleo_container_image_build_namespace, '') }}
|
||||||
|
{{ tripleo_container_image_build_prefix | ternary('--prefix ' ~ tripleo_container_image_build_prefix, '') }}
|
||||||
|
{{ tripleo_container_image_build_push | ternary('--push', '') }}
|
||||||
|
{{ tripleo_container_image_build_registry | ternary('--registry ' ~ tripleo_container_image_build_registry, '') }}
|
||||||
|
{{ tripleo_container_image_build_skip_build | ternary('--skip-build', '') }}
|
||||||
|
{{ tripleo_container_image_build_tag | ternary('--tag ' ~ tripleo_container_image_build_tag, '') }}
|
||||||
|
{{ tripleo_container_image_build_volumes | tripleo.operator.shell_arg_list('--volume') }}
|
||||||
|
{{ tripleo_container_image_build_work_dir | ternary('--work-dir ' ~ tripleo_container_image_build_work_dir, '') }}
|
||||||
|
{{ tripleo_container_image_build_log_output | ternary((">" ~ tripleo_container_image_build_log), '') }}
|
||||||
|
{{ tripleo_container_image_build_log_combine | ternary("2>&1", '') }}
|
||||||
|
_build_env: {}
|
||||||
|
|
||||||
|
- name: Preserve existing log file if exists
|
||||||
|
timestamp_file:
|
||||||
|
path: "{{ tripleo_container_image_build_log }}"
|
||||||
|
when: tripleo_container_image_build_log_output|bool
|
||||||
|
|
||||||
|
- name: Show debug information
|
||||||
|
when: tripleo_container_image_build_debug|bool
|
||||||
|
block:
|
||||||
|
- name: Show the command
|
||||||
|
debug:
|
||||||
|
var: _build_cmd
|
||||||
|
|
||||||
|
- name: Show the environment
|
||||||
|
debug:
|
||||||
|
var: _build_env
|
||||||
|
|
||||||
|
- name: Write reproducer script
|
||||||
|
tripleo_shell_script:
|
||||||
|
dest: "{{ tripleo_container_image_build_home_dir }}/tripleo_container_image_build.sh"
|
||||||
|
shell_command: "{{ _build_cmd }}"
|
||||||
|
shell_environment: "{{ _build_env }}"
|
||||||
|
when: tripleo_container_image_build_generate_scripts|bool
|
||||||
|
|
||||||
|
- name: Run tripleo container image build
|
||||||
|
shell: "{{ _build_cmd }}" # noqa 305
|
||||||
|
environment: "{{ _build_env }}"
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
chdir: "{{ tripleo_container_image_build_home_dir }}"
|
||||||
|
warn: false
|
||||||
|
register: tripleo_container_image_build_result
|
||||||
|
async: "{{ tripleo_container_image_build_timeout }}"
|
||||||
|
poll: "{{ tripleo_container_image_build_poll }}"
|
||||||
|
changed_when: false
|
||||||
|
when:
|
||||||
|
- not ansible_check_mode|bool
|
||||||
|
- not tripleo_container_image_build_generate_scripts_only|bool
|
||||||
|
|
||||||
|
- name: Set output fact
|
||||||
|
set_fact:
|
||||||
|
tripleo_container_image_build_output: "{{ tripleo_container_image_build_result.stdout }}"
|
1
roles/tripleo_container_image_build/tests/inventory
Normal file
1
roles/tripleo_container_image_build/tests/inventory
Normal file
@ -0,0 +1 @@
|
|||||||
|
localhost
|
5
roles/tripleo_container_image_build/tests/test.yml
Normal file
5
roles/tripleo_container_image_build/tests/test.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- tripleo_container_image_build
|
@ -4,6 +4,7 @@
|
|||||||
jobs:
|
jobs:
|
||||||
- tripleo-operator-molecule-test_molecule_prep
|
- tripleo-operator-molecule-test_molecule_prep
|
||||||
- tripleo-operator-molecule-tripleo_config_generate_ansible
|
- tripleo-operator-molecule-tripleo_config_generate_ansible
|
||||||
|
- tripleo-operator-molecule-tripleo_container_image_build
|
||||||
- tripleo-operator-molecule-tripleo_container_image_delete
|
- tripleo-operator-molecule-tripleo_container_image_delete
|
||||||
- tripleo-operator-molecule-tripleo_container_image_list
|
- tripleo-operator-molecule-tripleo_container_image_list
|
||||||
- tripleo-operator-molecule-tripleo_container_image_prepare
|
- tripleo-operator-molecule-tripleo_container_image_prepare
|
||||||
@ -66,6 +67,7 @@
|
|||||||
jobs:
|
jobs:
|
||||||
- tripleo-operator-molecule-test_molecule_prep
|
- tripleo-operator-molecule-test_molecule_prep
|
||||||
- tripleo-operator-molecule-tripleo_config_generate_ansible
|
- tripleo-operator-molecule-tripleo_config_generate_ansible
|
||||||
|
- tripleo-operator-molecule-tripleo_container_image_build
|
||||||
- tripleo-operator-molecule-tripleo_container_image_delete
|
- tripleo-operator-molecule-tripleo_container_image_delete
|
||||||
- tripleo-operator-molecule-tripleo_container_image_list
|
- tripleo-operator-molecule-tripleo_container_image_list
|
||||||
- tripleo-operator-molecule-tripleo_container_image_prepare
|
- tripleo-operator-molecule-tripleo_container_image_prepare
|
||||||
@ -161,6 +163,20 @@
|
|||||||
vars:
|
vars:
|
||||||
tox_extra_args: tripleo_config_generate_ansible
|
tox_extra_args: tripleo_config_generate_ansible
|
||||||
|
|
||||||
|
- job:
|
||||||
|
files:
|
||||||
|
- ^roles/tripleo_container_image_build/.*
|
||||||
|
- ^bindep.txt
|
||||||
|
- ^galaxy.yml
|
||||||
|
- ^requirements.txt
|
||||||
|
- ^setup.cfg
|
||||||
|
- ^test-requirements.txt
|
||||||
|
- ^tox.ini
|
||||||
|
name: tripleo-operator-molecule-tripleo_container_image_build
|
||||||
|
parent: tripleo-operator-molecule-base
|
||||||
|
vars:
|
||||||
|
tox_extra_args: tripleo_container_image_build
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
files:
|
files:
|
||||||
- ^roles/tripleo_container_image_delete/.*
|
- ^roles/tripleo_container_image_delete/.*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user