Data Tagging preview and testing

Background

Ansible Core 2.19 is slated to receive the Data Tagging feature we’ve been talking about and developing for several years. It’s been a long process, culminating in the largest set of changes to ansible-core since collections, including a significant overhaul of the templating engine and many other changes we’re hoping you’ll love. We’ve spent a lot of time validating countless backward compatibility scenarios, but a few of the security and templating changes may require adjustments to playbooks.

We’ve reached a point where we’re looking for community feedback and testing. We’ll be using releases of the fallible experimental build of ansible-core to make things easier to test.

How You Can Help

Right now, we’re hoping to get feedback around how well existing playbooks and content work with these new features. We’re still working on some plugin API changes and compatibility corner cases, as well as some new ways to more formally define the boundaries of those APIs.

Barring discovery of anything deemed a major design flaw, we’re aiming to merge the PR to devel within the next few weeks and continue to stabilize the features leading up to the 2.19 release of ansible-core. Depending on uptake and fix velocity, we may continue to release refreshed fallible builds once the PR has merged.

Getting Help

Draft documentation for the new features can be found in the associated documentation PR. The 2.19 porting guide contains detailed descriptions of the changes, and outlines situations where content changes may be required.

Reporting Issues

Issues specific to these changes should be filed with the Fallible 2.19 Data Tagging Preview Bug Report form, against the specific Fallible release being tested.

Getting Started

There are two ways to test data tagging currently.

Installing Using Pip

Install a current release of fallible (the experimental build of ansible-core) from PyPI with the [compat] extra to include the ansible-* CLI entrypoints:

$ pip install --upgrade fallible[compat]
...
$ ansible --version
ansible [core 2.19.0.dev0]
...
Fallible experimental build 2025.1.30
This build contains the following experimental features:
  - [WIP] Templating overhaul, implement Data Tagging: https://github.com/ansible/ansible/pull/84621

If the installation was successful, the version output should reflect a development build of 2.19, with the Fallible-specific section at the bottom denoting the experimental features present.

The fallible experimental build should function correctly for all ansible-core CLI tools, including most ansible-test use cases. It will not function correctly for tools that attempt to import ansible-core internals as library code into other processes (eg, ansible-lint, pytest-ansible)- testing these tools will require manual local build and installation of an ansible-core distribution directly from the PR.

Building Execution Environments

AAP/AWX Execution Environments can also be created with Fallible via ansible-builder 3.0+ using this method; use fallible[compat] for the ansible_core → package_pip entry in the definition file, ensure that the Python interpreter is at least Python 3.11, and set skip_ansible_check: true. For example:

version: 3
images:
  base_image:
    name: registry.fedoraproject.org/fedora:41
dependencies:
  ansible_core:
    package_pip: fallible[compat]
  ansible_runner:
    package_pip: ansible-runner
  python_interpreter:
    package_system: python3
options:
  skip_ansible_check: true  # this check fails against fallible, since the `ansible` top-level package is hidden
4 Likes