Planned changes in ansible-rulebook & ansible.eda

Hello Ansible community,

my name is Pino Toscano, and I work at Red Hat as part of the Ansible EDA team.

As part of the EDA ecosystem, the Red Hat EDA team maintains the ansible.eda collection:

While this collection has been working fine so far, it has a number of drawbacks:

  • it is also a Red Hat certified collection, and we ship is as part of AAP; because of this, what can be accepted in ansible.eda is limited, and thus it is harder to get additional content even if not supported by us
  • some of the content better fits in more specific collections – for example the plugins related to cloud providers (AWS, Azure)
  • some of the content does not work when used in AAP, but only when run via ansible-rulebook
  • last but not least, some of the content is actually needed to even write/test rulebooks, and so far using the ansible.eda collection was almost a must with ansible-rulebook

Because of the reasons above, we decided to take some steps to improve the situation w.r.t. (hopefully) all the drawbacks.

New community.eda collection

We started the effort of a new community.eda collection, to include any community-oriented and maintained plugin for ansible-rulebook. You can read more on the announcement here: New community.eda collection

New ansible-rulebook builtins

Since some of the event sources and event filters are useful no matter which collection you need, we decided to make some of them available as builtin modules in ansible-rulebook. The list of new builtin modules is:

  • eda.builtin.dashes_to_underscores (filter)
  • eda.builtin.generic (source)
  • eda.builtin.insert_hosts_to_meta (filter)
  • eda.builtin.json_filter (filter)
  • eda.builtin.normalize_keys (filter)
  • eda.builtin.pg_listener (source)
  • eda.builtin.range (source)
  • eda.builtin.webhook (source)

All of them are currently available as ansible.eda.something. These new builtins will be available in a new upstream release of ansible-rulebook in the coming weeks. Once the new release of ansible-rulebook is available, the modules in the ansible.eda collection will be marked as deprecated.

Cloud provider plugins

The modules specific to the AWS and Azure cloud providers are more suited in the collections for them, as their maintainers have more experience on the cloud providers themselves than us (EDA).

Regarding AWS: the aws_cloudtrail & aws_sqs_queue sources are currently in the process of being integrated in the amazon.aws collection.

Regarding Azure: the azure_service_bus source is available in the azure.azcollection collection starting from version 3.7.0. Hence, the source in ansible.eda will soon be marked as deprecated.

Plugins to be removed

A couple of plugins have either no use, or have more suitable replacement; in particular:

  • noop (filter): no need to use a filter that does nothing
  • tick (source): the generic and range sources provide better alternatives

These plugins will be soon marked as deprecated.

Long text, and lots of changes planned and already happening. Happy to help for more questions, doubts, etc.

Pino

1 Like