NOTE: This module is deprecated and will be removed in a future version. Please consider using the ci_script module instead.
This wraps community.general.make
module, mostly. It requires an additional
parameter, output_dir
, in order to output the make
generated command.
It also adds a new optional parameter, dry_run
, allowing to NOT run
community.general.make
module, but get a file with the passed parameters.
Requires community.general
collection v6.5.0 or higher.
Example:
- hosts: localhost
tasks:
- name: Create artifact directory
ansible.builtin.file:
path: /tmp/artifacts
state: directory
- name: Run pre-commit tests
ci_make:
chdir: "~/code/github.com/ci-framework-data"
output_dir: /tmp/artifacts
target: pre_commit
params:
USE_VENV: no
This will output a file in /tmp/artifacts with a specific pattern:
ci_make_INDEX_run_pre-commit_tests.sh
The INDEX is calculated based on matching ci_make_*
pattern in that directory.
The file can then be used as a reproducer or just debug output in order to
understand what was actually launched using community.ansible.make
module.
Allows to discover the latest available qcow2 from a remote page. It's mainly wrapped in the discover_latest_image role, but you may call the action directly. Beware though, it will NOT export any fact! Please check the example bellow for more info about its proper usage.
Any of the ansible.builtin.uri
module is supported.
url
:- description: remote URL to the page
- required: True
- type: str
image_prefix
:- description: Image prefix we want to filter.
- required: True
- type: str
images_file
:- description: Name of the file that contain the images with the corresponding hash
- required: False
- type: str
- name: Get latest CentOS 9 Stream image
register: discovered_image
discover_latest_image:
url: "https://cloud.centos.org/centos/9-stream/x86_64/images/"
image_prefix: "CentOS-Stream-GenericCloud"
- name: Export discovered image facts
ansible.builtin.set_fact:
cifmw_discovered_image_name: "{{ discovered_image['data']['image_name'] }}"
cifmw_discovered_image_url: "{{ discovered_image['data']['image_url'] }}"
cifmw_discovered_hash: "{{ discovered_image['data']['hash'] }}"
cifmw_discovered_hash_algorithm: "{{ discovered_image['data']['hash_algorithm'] }}"
cacheable: true
Description: Retrieves a dictionary with all the environment variables defined in the Makefiles under the given path.
base_path
:- description: The base path on where to start picking Makefiles vars.
- required: true
- type: str
Description: Generate task file per Makefile target.
install_yamls_path
:- description: Absolute path to install_yamls repository
- required: True
- type: str
output_directory
:- description: Absolute path to the output directory. It must exist
- required: True
- type: str
Description: Generate list of tests to be executed by tempest
yaml_file
:- description: Path to a yaml file containing the tests
- required: True
- type: str
job
:- description: Name of the job to be used in the filter.
- required: False
- type: str
groups
:- description: List of groups to be used in the filter.
- required: False
- type: list
release
- description: Release version
- type: str
- default: master
Description: Generate list of tests to be skipped by tempest
yaml_file
:- description: Path to a yaml file containing the tests
- required: True
- type: str
jobs
:- description: List of the jobs to be used in the filter.
- required: False
- type: list
release
:- description: Release name to be used in the filter. Default is 'master'
- required: False
- type: str
- default: master
In order to benefit of the generated role and tasks, you have to ensure ansible
knows about the role location. By default, it will be in
{{cifmw_basedir}}/artifacts/roles/install_yamls
, and this path is already
injected in the ansible.cfg
provided by the project.
Leveraging ansible.builtin.include_role
and its tasks_from
parameter, you
may call the generated task file for the desired make
target. For instance:
- name: Prepare storage in CRC
vars:
make_crc_storage_env: "{{ cifmw_edpm_prepare_common_env }}"
make_crc_storage_dryrun: "{{ cifmw_edpm_prepare_dry_run }}"
when: not cifmw_edpm_prepare_skip_crc_storage_creation | bool
ansible.builtin.include_role:
name: 'install_yamls_makes'
tasks_from: 'make_crc_storage'
This block will call the make crc_storage
command, passing some variables
that will then be transferred to the ci_make
call.
make_TARGET_env
: (List) Allows to passenvironment
parameter to the task.make_TARGET_params
: (List) Allows to passmake
parameters.make_TARGET_dryrun
: (Boolean) Toggledry_run
flag ofci_make
.make_TARGET_retries
: (Integer) Number of retries forci_make
task.make_TARGET_delay
: (Integer) Delay between retries forci_make
task.make_TARGET_until
: (String) Early exit condition (until
) forci_make
retries.
When you want to leverage retries
, it's always good to get an until
condition.
In order to make things easier, the generated task exposes make_TARGET_status
,
allowing an easy make_TARGET_status is not failed
condition:
- name: Prepare storage in CRC
vars:
make_crc_storage_env: "{{ cifmw_edpm_prepare_common_env }}"
make_crc_storage_dryrun: "{{ cifmw_edpm_prepare_dry_run }}"
make_crc_storage_retries: 10
make_crc_storage_delay: 2
make_crc_storage_until: "make_crc_storage_status is not failed"
when: not cifmw_edpm_prepare_skip_crc_storage_creation | bool
register: crc_storage_status
ansible.builtin.include_role:
name: 'install_yamls_makes'
tasks_from: 'make_crc_storage'
Module that approves pending certificate requests in OpenShift platform.
* k8s_config
* description: Absolute path to the kube configuration file.
required: false
type: str
* quiet_period
* description: Maximum amount of time to be observed for no events.
required: false
type: str
default: 3m
- name: Approve pending certificate requests in OpenShift
hosts: hypervisor
gather_facts: false
vars:
k8s_config: "/home/zuul/.kube/config"
tasks:
- name: Wait and approve all
approve_csr:
k8s_config: "{{ k8s_config }}"
Configures the gathered VLAN ids for all TAP devices attached to the provided network(s).
* networks
* description: List of the networks to be processed.
required: true
type: list
elements: str
---
- name: Configure the TAP attached to trunk ports
hosts: hypervisor
gather_facts: false
vars:
networks:
osp_trunk: |
<network>
<name>osp_trunk</name>
<forward mode='nat' />
<bridge name='osp_trunk' />
</network>
tasks:
- name: Apply VLANs to all associated TAP devices.
become: true
cifmw.general.bridge_vlan:
networks: "{{ networks.keys() | list }}"
register: _bridge_results