Docker Modules Roadmap

We’re excited to announce a clear roadmap to providing first-class support for container orchestration with Ansible. Over the coming months we will create a supported and maintainable solution that keeps pace with the fast moving world of containers.

The current Docker modules will be around for a while yet, but as the new container modules begin to take shape, we will deprecate the current modules.

To kick things off we identified a list of core modules Ansible must provide. The list appears below with a description of the module’s purpose and scope.

But before we get too far down the development path, we need to hear from you. We’ll be thinking and collaborating on the shape of each module here:

https://public.etherpad-mozilla.org/p/9RQPFWC1Mv

Have a look at the list of modules. Tells us what we missed. What could be better? We’ll take your input and shape the roadmap between now and 2/26 before officially kicking off development.

Thanks!

Chris Houseknecht

@chouseknecht

RedHat | Ansible

Core Docker Modules

docker_container

Manage the container lifecycle through created, started, stopped, killed, paused and unpaused states. Development of this module will start with the current docker module and remove things falling outside of this scope. Functionality that can be shared by all modules will be moved to module_utils.

docker_files

Provide an interface to the docker cp and diff API endpoints.

docker_image

Manage docker images using the build, list, pull, push, rmi, tag, and save image API endpoints. Development will begin with the current docker_image module.

docker_network

Manage docker networks through the network connect, create, disconnect, inspect, ls and rm endpoints.

docker_volume

Manage docker volumes through the volume create, inspect, ls and rm API endpoints.

docker_login

An interface to the login API endpoint. Development will begin with the current docker_login module.

docker_daemon

Manage the docker daemon through the docker daemon API endpoint.

docker inventory script

Develop an inventory script that provides comprehensive docker container facts and can connect to either a locally running or remote API.

That’s great! I’m so tired to support my own local pile of patches to existing docker* modules. Probably the team is very busy, but now it takes ages to push something to the upstream:(

I suggest to take a look on the docker_facts module https://github.com/CaptTofu/ansible-modules-extras/commit/c069b604ff386f70408d1dc5078e9fb867829d85 as a base for your inventory script.

And don’t repeat the existing docker module behavior with ‘image’ as an obligate parameter.

Been working on loose requirements for each modules. Originally had these in an etherpad, but oving to proposals. PRs for the proposal are below. All comments and idea are welcome. And if you’re inclined to help build these, let me know. Planning to start work on docker_container module today. Would be awesome to have a few of these in the 2.1 release.

docker_files, docker_image, docker_image_facts:

https://github.com/ansible/ansible/pull/14666

docker_container:

https://github.com/ansible/ansible/pull/14644

Hi Chris,

docker_files, docker_image, docker_image_facts:

https://github.com/ansible/ansible/pull/14666

docker_container:

https://github.com/ansible/ansible/pull/14644

More than happy to play with it, as I'm one of cutting edge lovers. :slight_smile:

Do you have actual modules in your ansible-module-core repo? I'll clone
and start play with it, if there are.

I've subscribed your PRs. :slight_smile:

Cheers,

Kei

Nothing out there yet. The first iteration of docker_container will appear between now and Monday. It’ll be rough and incomplete. But it will be started. I’ll update here when it’s available.

–c