This is my effort to run SaltStack masters in Docker containers. Published on Docker Hub.
- Automated builds
- Available as Alpine or Ubuntu
- TLS for API enabled by default (self-signed cert generated if no cert found)
- Docker's in container process manager tini baked in.
- The images on the official SaltStack repo are not well maintained.
- The base images, w/o SaltStack, are separated into their own repo.
docker run -d --name saltstack digitalr00ts/saltstack
docker-compose -f .travis/compose-<distro>.yaml up -d --build
- Better testing
- Change curl/wget url to use ARG for branch
- Ability to build Saltstack off commit
- and point at any git url
- Better documentation
- Usage / paths
Alpine | Ubuntu |
---|---|
Upstream Alpine | Upstream Ubuntu |
digitalr00ts Base:alpine | digitalr00ts Base:ubuntu |
SaltStack Base:alpine | SaltStack Base:ubuntu |
SaltStack:alpine | SaltStack:ubuntu |
- We start with the upstream OS container image
- Then we have a small layer that is common to most digitar00ts containers to simplify infrastructure management.
- After we create a layer of common dependencies for SaltStack, regardless of version.
- Finally, the desired version of SaltStack is installed and any version dependant dependencies are installed.
There salt services are tightly coupled, based on both functionality and version. Therefore, we felt a monolithic container was appropriate here.
Salt requires root to access such things as PAM for authentication. While many best practices suggest to not run as root, we felt the loss in functionality was not worth the trade off. See https://docs.saltstack.com/en/latest/ref/configuration/nonroot.html
LGPL-3.0-or-later
This is free software: you can redistribute it and/or modify
it under the terms of the Lesser GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.
This is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Lesser GNU General Public License for more details.
You should have received a copy of the Lesser GNU General Public License
along with Foobar. If not, see <https://www.gnu.org/licenses/>.
Copyright 2017, 2018 digitalr00ts