-
Feature Request
-
Resolution: Unresolved
-
Major
-
None
-
False
-
None
-
False
-
-
The Ansible business unit (ABU) has initiated the prototyping of a new component within the Ansible Automation Platform (AAP), known as Ansible development workspaces. This component aims to simplify the process of setting up a comprehensive Ansible development environment for creating Ansible automation content—such as Ansible playbooks and collections. Even on Windows-only workstations with restricted access, users will be able to easily set up and access this environment with just one click. For additional details, refer to ANSTRAT-530. The concept behind Ansible development workspaces draws inspiration from the Automation Services team’s Ansible Content Hub (also known as ZipShip) initiative. Similar to ZipShip, Ansible development workspaces will offer a curated development experience that leverages OpenShift and Dev Spaces.
Initial prototypes produced a working image; however, at approximately 9GB, the size was impractical beyond the prototype stage. Ansible engineers utilized the Dev Spaces Universal Developers Images (UDI) as their base. The UDI includes configurations specific to Dev Spaces and numerous development tools that a curated Ansible experience does not require. To create a significantly smaller image, the Ansible team could build their own from scratch using the Universal Base Image (UBI) and then add the Ansible development tools (ADT) along with their dependencies. Essentially, this approach mirrors how the community Ansible Dev Spaces sandbox image was constructed. The challenge lies in maintaining compatibility with Dev Spaces, as the Ansible engineering team would need to align their configuration and significantly expand their testing efforts.
Speaking on behalf of the Ansible development tools team, we’d also like to control the release schedule for the Ansible development tools image independently of the release cycle of the images it depends on. We expect that the tools will occasionally need to make releases that don’t align with the UDI layers.
So what’s lacking is a minimal UDI base image derived from the Universal Base Image (UBI), containing only the dependencies necessary for Dev Spaces. Although this base UDI image may not have significant functionality on its own, engineering teams—such as Ansible or Red Hat customers—could leverage it to create customized development images that align with their specific user requirements more efficiently and consistently.
Action plan defined in July 2024 after the sync call - https://issues.redhat.com/browse/CRW-6577?focusedId=25106725&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-25106725
short-term: [DONE]
- Move stow / kubedoc and other internal features to the Base Developer Image 8.
This would allow using `quay.io/devfile/base-developer-image:ubi8-latest` as a base image for `ghcr.io/ansible/ansible-workspace-env-reference`. Related upstream issue - https://github.com/eclipse-che/che/issues/23033 (ETA next sprint ~ late July / early August 2024)
mid-term:
- Deprecate Base Developer Image 8 and move to Base Developer Image 9 image.
To reduce the support burden in the upstream we are going to deprecate and remove Base Developer Image 8 from the codebase as part of https://github.com/eclipse-che/che/issues/23034 + make Base Developer Image 9 the only option available in the upstream (ETA end of Q3 2024 UPDATE: mid Q4 2024).
N.B. We are NOT going to remove old `ubi8` tags and the Ansible team could switch to the `quay.io/devfile/base-developer-image: ubi9-latest` and use it as a base image once time permits (even though it is expected to be trivial exercise).
long-term:
- (Downstream specific) produce Base Developer Image based on RHEL 9.x
So far the the action plans were upstream specific. The long-term plan targets the downstream / product Base Developer Image (which does not exist yet). As part of UBI -> RHEL migration in the downstream which is tracked as part of https://issues.redhat.com/browse/CRW-3185, we are going to provide RHEL 9 Base Developer Image that would be used as a base image for the Ansible product developer image (ETA Q1 2025)