[docker] Add docker-compose definitions
Add configuration items for bringing up the Salt master Docker
container using docker-compose:
- mount <storage dir>/hosts as /etc/hosts
- mount <storage dir>/salt as /etc/salt:
* semi-persistent generated Salt information;
- mount <storage dir>/nodes as /srv/salt/reclass/nodes:
* semi-persistent generated reclass node data storage;
- mount Fuel@OPNFV git repo in /root/fuel;
- mount all other previously rsynced artifacts;
- hook container to 3 networks/bridges: mcpcontrol, PXE/admin and
management:
* container IP addresses are managed by Docker, so no DHCP is used;
- override upstream entrypoint.sh by mounting our own version on top;
* run-time patch Salt to fix certain init system interactions due
to 'Tini' looking like Upstart but behaving a bit differently;
* work around directory traversal issues in Salt/reclass by using
extensive `cp` (to be later mitigated at container build time);
* overwrite reclass.system with our own version (patched), later to
fetched pre-patched during container build;
* overwrite salt-formulas with our patched versions;
* create missing links for salt-formulas-* packages (e.g. gnocchi)
which are not available as git repos upstream;
- add mcp.rsa.pub to 'ubuntu' user's authorized_keys for SSH login
to master node to remain backwards compatible;
- mount configuration files for semi-persistent state preservation
at container destroy/rebuild (using '-f' deploy argument);
JIRA: FUEL-383
Change-Id: Ie17e578a7ebeb071b1c0e0a49ad58ffa6bbc89bb
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>