Create volumes for Bifrost's persistent data

Using Docker volumes for persistent data in the bifrost container is
necessary for upgrading the bifrost services.

This change adds the following volumes:

* bifrost_httpboot
* bifrost_ironic
* bifrost_mariadb
* bifrost_rabbitmq
* bifrost_tftpboot

Ironic creates hardlinks between the TFTP master image store and the
HTTP root path when iPXE is enabled. With different Docker volumes
used for these locations we run into
https://bugs.launchpad.net/ironic/+bug/1507894 during deployment. If
we use a directory under /httpboot to store the master images this
issue is avoided.

Change-Id: I8653268d3598e7a59d2eb45c8750d45b6fc9e35f
Partially-implements: blueprint bifrost-upgrade
This commit is contained in:
Mark Goddard 2017-03-03 13:37:34 +00:00
parent bf8eb4809a
commit 2f25d43566
3 changed files with 24 additions and 0 deletions

View File

@ -37,3 +37,17 @@
chown ironic:ironic /home/ironic/.ssh/id_rsa &&
chown ironic:ironic /home/ironic/.ssh/id_rsa.pub &&
chown ironic:ironic /home/ironic/.ssh/config'
# Ironic creates hardlinks between the TFTP master image store and the
# HTTP root path when iPXE is enabled. With Docker volumes used for these
# locations we run into https://bugs.launchpad.net/ironic/+bug/1507894
# during deployment. If we use a directory under /httpboot to store the
# master images this issue is avoided.
- name: Configuring TFTP master image path
command: |
docker exec bifrost_deploy
bash -c 'cat >> /etc/ironic/ironic.conf << EOF
[pxe]
tftp_master_path = /httpboot/master_images
EOF
systemctl restart ironic-conductor'

View File

@ -11,3 +11,8 @@
- "/etc/localtime:/etc/localtime:ro"
- "/dev:/dev"
- "kolla_logs:/var/log/kolla/"
- "bifrost_httpboot:/httpboot/"
- "bifrost_ironic:/var/lib/ironic/"
- "bifrost_mariadb:/var/lib/mysql/"
- "bifrost_rabbitmq:/var/lib/rabbitmq/"
- "bifrost_tftpboot:/tftpboot/"

View File

@ -0,0 +1,5 @@
---
features:
- |
Adds Docker volumes for storing persistent data in the ``bifrost_deploy``
container on the deployment host.