The Ansible Container team is proud to announce the 0.9 release of the Ansible Container project. Key new features of the 0.9 release include:
Tighter integration with Ansible roles
Ansible roles are a great way to describe microservices; roles that are "common" between multiple services map well to container image layers and service-specific roles are easy for teams to maintain. We decided to make that concept clearer in the way Ansible Container works. We ditched the main.yml playbook and replaced it with a per-service list of roles in container.yml.
Tighter integration with Kubernetes in OpenShift Origin and Red Hat OpenShift Container Platform
We've built brand new Kubernetes and OpenShift modules for Ansible, and are already using them in Ansible Container. We've also restructured the container.yml syntax to more naturally support Kubernetes and OpenShift concepts out of the box, then fall back to the comparatively simpler Docker ecosystem. Instead of trying to bolt Kubernetes features into the Docker Compose style schema, we have dedicated OpenShift/Kubernetes configuration for resources like Persistent Volume Claims. This will allow end users to transfer existing Ansible roles into Kubernetes/OpenShift and have Ansible Container manage the deployment lifecycle.
Putting more tools into the conductor container
We found ourselves needing more and more functionality inside of the "builder" container, so we shifted the majority of the work Ansible Container does to run inside the container formerly known as “builder,” and renamed it the "conductor" container.
Elimination of Python dependency in target containers
We heard loud and clear that requiring Python runtime and Ansible module dependencies inside of target containers was less-than-ideal. As part of the conductor container refactoring, we made it possible to derive the conductor container from any distro, and to mount the conductor's Python environment to target containers during build time. This means you get full control over what’s in the final container, and can use Ansible Container to build containers for any language without requiring Python.
The new "deploy" command
The usage of separate "shipit" and "run" commands was not always clearly delineated, so we decide to replace them with a single "deploy" command with a richer set of parameters.
Dockerfile to Ansible Container conversion
We are introducing a new tool that will convert Dockerfiles to Ansible Container projects. In this initial version, the converter leans heavily on the Ansible "command" module, but in future releases we're hoping to have a much smarter converter that can leverage the full power of the Ansible module collection.
For more details, take a look at the release notes and updated documentation. For questions, feel free to join the Ansible Container mailing list or the #ansible-container IRC channel on Freenode.
Thanks to Joshua (JAG) Ginsberg, Chris Houseknecht and Ryan Brown for making this the best release of Ansible Container yet. We hope you like what you see.