Updated
over 2 years
ago.
2 hacker ♥️.
Results
Submitted upstream.
Introduction
If you have an infrastructure described with a Salt state tree (.sls files) having to create Docker images with Dockerfiles means you have infrastructure defined somewhere else and in a different format.
This projects attempts to allow building Docker images from pure Salt states. In some way, it has a similar goal to ansible-container with some differences:
- It is not a "cli" tool, but a Salt module that inherits all the features of Salt.
- It reuses the dockerng module instead of interacting directly with Docker
- As the tricky part is to get the configuration management engine in the container "temporarily", it does not do hacks like going to the internet and checkout Ansible master from github in /tmp. It uses the salt.thin technology to use the host Salt installation into the container.
Challenges
- Just like it is tricky to get Salt into the container, right now the image always ends with Python installed.
- Figure out how to pass pillar data
Progress
- Developed in the salt-container branch of my Salt playground. Main module file is here though I may want to move it into dockerng later.
Working
- Create images from a base images and a list of sls modules
- Ability of using the host salt installation thanks to salt.thin
- Ability to use the grains from inside of the container
- Ability to pillar data visible to the minion in the state applied in the container
TODO
- Better error handling (eg, cleanup containers)
- Factor out a function to run arbitrary salt modules inside the container with salt.thin
This project is part of:
Hack Week 14
Activity
Comments
Be the first to comment!
Similar Projects
This project is one of its kind!