Upcoming changes to the AWX Project

Hello folks,

I have some exciting news to share today. We have been hard at work developing what will become the future architecture of AWX. These upcoming changes represent years of thought and consideration as we move towards a more flexible and scalable deployment model.

In an upcoming release of AWX (date still TBD), we will be removing custom virtual environments in favor of Execution Environments. Execution Environments are container images that include Ansible and any other dependencies in order to run your automation content. To learn more about EEs and how to create them, see the documentation for our new project Ansible Builder.

This shift to container images requires us to make some tradeoffs when compared to the current deployment model. Now that each Job in AWX will run inside of a container, we cannot (read: have chosen not to) run containers-in-containers.

The major changes coming up are:

Separation of Control Plane and Execution Plane

Some of you may already be familiar with the concept of Container Groups, which launches ephemeral pods in Kubernetes and returns the results back to AWX. We are currently rewriting this functionality from the ground up with a focus on performance and scalability. This will become the new default behavior for AWX when deployed inside of OpenShift and Kubernetes.

Removal of “Docker Compose” Installation Mode

The official Docker Compose installation path has been a maintenance burden for us since it was released. We initially wanted to make AWX accessible to as many people as possible, and at the time, Kubernetes was not as widely used as it is today

However, with this going away, AWX also has support for a very similar Docker Compose-based environment which our team refers to internally as “the development environment”. In the near future, we intend to direct users who want to install AWX with Docker Compose to this install path. If you’d like a preview of what the Docker Compose install path will look like going forward, have a read over these instructions in our contributing guide.

If you have any questions or feedback regarding these upcoming changes, please feel free to engage in the conversation here on this thread.

Thank you,

The AWX Team

Hi Shane/Team

Thanks for info.

I have query regarding Docker-Compose installation being removed.

Could you please let me know following:-

  1. If we are using AWX 12 or AWX 14 via docker compose platform and wish to upgrade or keep using this will AWX community be providing support further.

  2. By removing u mean in future we will not be having option to install AWX via docker compose :no_mouth:.

Looking to hear back from you on this.

Thanks

To clarify, these are currently two different mechanisms for installing AWX using Docker Compose, and the overhead of maintaining both is too much for our small team:

https://github.com/ansible/awx/blob/devel/INSTALL.md#docker-compose
https://github.com/ansible/awx/blob/devel/CONTRIBUTING.md#setting-up-your-development-environment

Moving forward, we intend to only support one of these (the one described in the second link, because it’s the one that all of the maintainers actively develop our nightly builds against, and so it’s the one where we’re most likely to notice and address issues).

Does that mean that there will continue to be a supported and documented installation path outside of Kubernetes, that does not require RHEL/CentOS/Fedora as the “on the metal(vm)” operating system?

I’ll extend the last comment to include - will there be a stable installation ON Redhat derivatives that doesn’t have python conflicts?

Jesse,

That’s our intention, yes: https://github.com/ansible/awx/blob/devel/CONTRIBUTING.md#prerequisites

So long as these platforms continue to provide a relatively up-to-date version of Docker and docker-compose, we’ll do our best to support them. That said, it’s important to note that we don’t currently test - for example - Debian or Arch-based installs; we rely pretty heavily on the community to let us know if we’ve broken something. “Support” here truly is in the form outlined at: https://github.com/ansible/awx/blob/devel/LICENSE.md#7-disclaimer-of-warranty

That said, our official stance has always been that the Docker-based install mechanism isn’t really meant for production usage, and that isn’t changing here.

Hi Shane,
Is “the development environment” install path compatible with Swarm ?
( we are running AWX15 with Swarm for production, a small one :slight_smile: )

Best Regards,
Ahmed.

Hi Ryan , Team

Thanks for below , could you please help me to know what’s the difference between these two docker installation links w.r.t functionality and installation? Apologizes but I am new to AWX.

Also any tentative release/date on which this support will be removed?

Thanks .looking forward for your response.

Hi Team,

Could you please help here answer below queries? Thanks.

Ahmed,

Docker in swarm mode has never been something AWX has a documented or supported install path for, so if you’ve hacked something together to accomplish it, you’ll likely have to do so again. I don’t suspect this would be a huge effort, though, as both install methods we’re discussing here are based on Docker Compose.