Hi everyone,
In a couple of recent posts, we’ve talked about Streamlining AWX Releases as well as Refactoring AWX into a Pluggable Services-Oriented Architecture. Now we’d like to announce plans from Red Hat engineering to make changes to how AWX Operator gets released.
First, let’s reiterate something that we said in a previous post because the changes I’m going to outline fit into that message:
“While we want to make changes that enable more collaboration with our community, at the same time we also must reduce the overhead we as the Ansible Engineering team within Red Hat spend supporting AWX so that we can more effectively serve both our upstream community and paying customers.”
Let’s talk about AWX Operator
AWX Operator is a convenient way to deploy AWX in Kubernetes environments. Work on the operator started back in 2019 when Red Hat open-sourced the codebase for Ansible Tower. The operator was originally created by the community, with a vision to grow it into an installation method with capabilities to manage the full lifecycle of an AWX deployment.
In 2022, Red Hat made the AWX Operator available from OperatorHub.io. The intention was to take away some of the pain with installing AWX on Kubernetes. However, this has lead to some unintended consequences:
- Red Hat customer confusion, after seeing the AWX Operator entry, about whether or not Red Hat recommended its use for production environments, and if Red Hat provided support for the AWX Operator. (Red Hat has never provided support for the AWX Operator. Red Hat Ansible Automation Platform is the supported product.)
- Increased engineering burden on Red Hat to maintain the release process.
Also in 2022, the Helm chart was added to the AWX Operator code repository from a community contribution. For folks who are not familiar with Helm charts, they are a packaging format for installing AWX on Kubernetes. Similarly to the situation with OperatorHub.io, we’ve observed some unintended consequences of having the Helm chart in the AWX Operator repository:
- Expertise for maintaining the Helm chart is outside the Red Hat engineering team.
- Community owns the Helm chart, but Red Hat engineering plans to refactor AWX could lead to conflicts or breakage. For instance, the Helm chart now depends on Red Hat release cycles and fast iteration from the community is gated by Red Hat engineering.
Removing AWX Operator from OperatorHub.io
With the above points in mind, Red Hat is taking action to remove AWX Operator from operatorhub.io on August 09, 2024.
You can sum up the motivation for removing the AWX Operator from operatorhub.io quite simply. Red Hat has put an obstacle in its own way by releasing the AWX operator on OperatorHub. This change is about Red Hat getting out of its own way.
Here is what is going to change:
- AWX Operator will no longer be listed on the OperatorHub. If you depend on installing awx-operator via OperatorHub, please plan accordingly for this upcoming change.
- The OLM subscription resource for this operator will be unhealthy.
Here is what is NOT going to change:
-
Existing installations of the AWX Operator should continue to work.
-
The awx-operator image will remain available.
-
The Ansible community can still continue to install AWX Operator following the documentation.
-
No changes to the license.
-
Contributions are always welcome.
Relocating the Helm chart code
Red Hat is moving the Helm chart code to a new repository in the ansible-community org in GitHub. With this move the code will reside somewhere it should always have been located, given the content and the fact that the community maintains it. This move will take place on or before August 09, 2024.
In a similar, but different, way to the removal of the operator from the OperatorHub, you can sum up the motivation for returning the Helm chart to the community. Red Hat wants to avoid creating obstacles for community development, especially once the work to refactor the AWX codebase begins in earnest. This change is about Red Hat getting out of the way of the community. As a consequence of this move, we expect there will be more enhancements and a faster release cadence.
Last year, Red Hat moved the source for the Ansible core and community package documentation to a new repository to provide greater ownership to content for the Steering Committee and to remove constraints on the documentation toolchain that came from the Ansible core CI/CD pipelines. It happened to be the case that the Red Hat engineering team and the Ansible community were pulling in the same direction, but just getting into each other’s way at times. After moving the documentation to a new repository, we saw that the community not only got more ownership of content, but the tooling around the docs repo was dramatically improved. Those tooling improvements, in turn, greatly reduced manual overhead and created a path to innovation and enhanced community contributions. We’re hoping to see the same kind of results for the Helm chart code.
Here is what is going to change:
- All code under the .helm/starter directory will move to the ansible-community/awx-operator-helm repository.
- The helm-release playbook will move to the new repository.
- The Helm chart code will be available under the GPL-3.0 license.
To make this move a success, we need the help of the community. We are looking for community maintainers for the Helm chart. Respond to this post or open an issue in the new repository if you’re interested!
Updating the release process
As mentioned in the previous post, AWX releases are paused for the time being. Along with the changes I’ve outlined above, we also need to make some changes to the release process for when we resume AWX Operator releases. The changes we plan to make include:
- Removing the workflows to publish the Helm chart and the Operator.
- Remove the step to release the Helm chart while promoting the Operator during release.
- Update the Makefile to remove targets related to the Helm chart and Operator Hub catalog.
- Update the release process documentation to reflect the changes.
Please note that this list of changes is not exhaustive and there might be some additional smaller changes.
Call to action
If you depend on OperatorHub as an installation method for the AWX Operator, plan accordingly for the removal taking place on August 09, 2024.
If you are a member of the community who is interested in helping maintain the Helm chart for the AWX Operator, we encourage you to get involved! You can respond to this post to express your interest or open an issue in the new repository to let us know.
Join the discussion
We value your input on these changes. You can share your thoughts asynchronously by replying to this forum post. I can also add a link for providing anonymous feedback if folks think that would be useful or preferable.
You can also come along to the next AWX community meeting, scheduled for August 13, and speak with us directly.
Stay updated
To stay in the loop with all things AWX, join the Ansible Forum, follow the News & Announcements and follow the awx tag.
Links in this AWX update series
- Blog: Upcoming Changes to the AWX Project
- Streamlining AWX Releases
- Refactoring AWX into a Pluggable, Service-Oriented Architecture
- Upcoming changes to AWX Operator installation methods (this post)
- AWX UI and credential types transitioning to the new pluggable architecture