Use one data container for all data volumes
The previous method of using the API image for a data container worked, but resulted in more data being bindmounted and copied into the system. This patch resolves that by essentially using a distro-type as a FROM in a Dockerfile to generate distro-type-data. Further all of the data containers used throughout ansible are modified to use this new data container. Change-Id: I8846573d4f2d4b98d4f46c770bfefc6d4c5cd0b5 Partially-Implements: blueprint one-data-container
This commit is contained in:
parent
ac61653343
commit
bd5e5bbb64
@ -28,6 +28,10 @@ cinder_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ dock
|
|||||||
cinder_api_tag: "{{ openstack_release }}"
|
cinder_api_tag: "{{ openstack_release }}"
|
||||||
cinder_api_image_full: "{{ cinder_api_image }}:{{ cinder_api_tag }}"
|
cinder_api_image_full: "{{ cinder_api_image }}:{{ cinder_api_tag }}"
|
||||||
|
|
||||||
|
cinder_data_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-data"
|
||||||
|
cinder_data_image_tag: "{{ openstack_release }}"
|
||||||
|
cinder_data_image_full: "{{ cinder_data_image }}:{{ cinder_data_image_tag }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Openstack
|
# Openstack
|
||||||
@ -41,4 +45,4 @@ cinder_logging_debug: "{{ openstack_logging_debug }}"
|
|||||||
|
|
||||||
cinder_keystone_user: "cinder"
|
cinder_keystone_user: "cinder"
|
||||||
|
|
||||||
openstack_cinder_auth: "{'auth_url':'{{ openstack_auth_v2.auth_url }}','username':'{{ openstack_auth_v2.username }}','password':'{{ openstack_auth_v2.password }}','project_name':'{{ openstack_auth_v2.project_name }}'}"
|
openstack_cinder_auth: "{'auth_url':'{{ openstack_auth_v2.auth_url }}','username':'{{ openstack_auth_v2.username }}','password':'{{ openstack_auth_v2.password }}','project_name':'{{ openstack_auth_v2.project_name }}'}"
|
||||||
|
@ -40,8 +40,7 @@
|
|||||||
password: "{{ docker_registry_password }}"
|
password: "{{ docker_registry_password }}"
|
||||||
insecure_registry: "{{ docker_insecure_registry }}"
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
name: cinder_data
|
name: cinder_data
|
||||||
image: "{{ cinder_api_image_full }}"
|
image: "{{ cinder_data_image_full }}"
|
||||||
command: "/bin/sleep infinity"
|
|
||||||
volumes: "/var/lib/cinder/"
|
volumes: "/var/lib/cinder/"
|
||||||
|
|
||||||
- name: Starting Cinder bootstrap container
|
- name: Starting Cinder bootstrap container
|
||||||
|
@ -20,6 +20,10 @@ glance_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ dock
|
|||||||
glance_api_tag: "{{ openstack_release }}"
|
glance_api_tag: "{{ openstack_release }}"
|
||||||
glance_api_image_full: "{{ glance_api_image }}:{{ glance_api_tag }}"
|
glance_api_image_full: "{{ glance_api_image }}:{{ glance_api_tag }}"
|
||||||
|
|
||||||
|
glance_data_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-data"
|
||||||
|
glance_data_image_tag: "{{ openstack_release }}"
|
||||||
|
glance_data_image_full: "{{ glance_data_image }}:{{ glance_data_image_tag }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Openstack
|
# Openstack
|
||||||
|
@ -40,8 +40,7 @@
|
|||||||
password: "{{ docker_registry_password }}"
|
password: "{{ docker_registry_password }}"
|
||||||
insecure_registry: "{{ docker_insecure_registry }}"
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
name: glance_data
|
name: glance_data
|
||||||
image: "{{ glance_registry_image_full }}"
|
image: "{{ glance_data_image_full }}"
|
||||||
command: "/bin/sleep infinity"
|
|
||||||
volumes: "/var/lib/glance/"
|
volumes: "/var/lib/glance/"
|
||||||
|
|
||||||
- name: Starting Glance bootstrap container
|
- name: Starting Glance bootstrap container
|
||||||
|
@ -13,3 +13,7 @@ database_cluster_name: "openstack"
|
|||||||
mariadb_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-galera"
|
mariadb_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-galera"
|
||||||
mariadb_tag: "{{ openstack_release }}"
|
mariadb_tag: "{{ openstack_release }}"
|
||||||
mariadb_image_full: "{{ mariadb_image }}:{{ mariadb_tag }}"
|
mariadb_image_full: "{{ mariadb_image }}:{{ mariadb_tag }}"
|
||||||
|
|
||||||
|
mariadb_data_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-data"
|
||||||
|
mariadb_data_tag: "{{ openstack_release }}"
|
||||||
|
mariadb_data_image_full: "{{ mariadb_data_image }}:{{ mariadb_data_tag }}"
|
||||||
|
@ -49,8 +49,7 @@
|
|||||||
password: "{{ docker_registry_password }}"
|
password: "{{ docker_registry_password }}"
|
||||||
insecure_registry: "{{ docker_insecure_registry }}"
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
name: mariadb_data
|
name: mariadb_data
|
||||||
image: "{{ mariadb_image_full }}"
|
image: "{{ mariadb_data_image_full }}"
|
||||||
command: "/bin/sleep infinity"
|
|
||||||
volumes: "/var/lib/mysql/"
|
volumes: "/var/lib/mysql/"
|
||||||
|
|
||||||
- name: Starting MariaDB bootstrap container
|
- name: Starting MariaDB bootstrap container
|
||||||
|
@ -8,6 +8,10 @@ rabbitmq_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker
|
|||||||
rabbitmq_tag: "{{ openstack_release }}"
|
rabbitmq_tag: "{{ openstack_release }}"
|
||||||
rabbitmq_image_full: "{{ rabbitmq_image }}:{{ rabbitmq_tag }}"
|
rabbitmq_image_full: "{{ rabbitmq_image }}:{{ rabbitmq_tag }}"
|
||||||
|
|
||||||
|
rabbitmq_data_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-data"
|
||||||
|
rabbitmq_data_tag: "{{ openstack_release }}"
|
||||||
|
rabbitmq_data_image_full: "{{ rabbitmq_data_image }}:{{ rabbitmq_data_tag }}"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Message-Broker
|
# Message-Broker
|
||||||
|
@ -20,8 +20,7 @@
|
|||||||
password: "{{ docker_registry_password }}"
|
password: "{{ docker_registry_password }}"
|
||||||
insecure_registry: "{{ docker_insecure_registry }}"
|
insecure_registry: "{{ docker_insecure_registry }}"
|
||||||
name: rabbitmq_data
|
name: rabbitmq_data
|
||||||
image: "{{ rabbitmq_image_full }}"
|
image: "{{ rabbitmq_data_image_full }}"
|
||||||
command: "/bin/sleep infinity"
|
|
||||||
volumes: "/var/lib/rabbitmq/"
|
volumes: "/var/lib/rabbitmq/"
|
||||||
|
|
||||||
- name: Starting RabbitMQ bootstrap container
|
- name: Starting RabbitMQ bootstrap container
|
||||||
|
4
docker/centos/binary/data/Dockerfile
Normal file
4
docker/centos/binary/data/Dockerfile
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
FROM centos
|
||||||
|
MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
||||||
|
|
||||||
|
CMD /bin/sleep infinity
|
1
docker/centos/binary/data/build
Symbolic link
1
docker/centos/binary/data/build
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../tools/build-docker-image
|
@ -19,7 +19,8 @@ RUN echo "[mariadb]" > /etc/yum.repos.d/MariaDB.repo && \
|
|||||||
percona-xtrabackup \
|
percona-xtrabackup \
|
||||||
pv \
|
pv \
|
||||||
tar \
|
tar \
|
||||||
expect
|
expect \
|
||||||
|
&& rm -rf /var/lib/mysql/*
|
||||||
|
|
||||||
COPY config-galera.sh /opt/kolla/config/
|
COPY config-galera.sh /opt/kolla/config/
|
||||||
COPY config-external.sh /opt/kolla/
|
COPY config-external.sh /opt/kolla/
|
||||||
|
@ -5,7 +5,8 @@ RUN yum -y install \
|
|||||||
hostname \
|
hostname \
|
||||||
rabbitmq-server && \
|
rabbitmq-server && \
|
||||||
yum clean all && \
|
yum clean all && \
|
||||||
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
|
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management \
|
||||||
|
&& rm -rf /var/lib/rabbitmq/*
|
||||||
|
|
||||||
COPY config-rabbit.sh config-external.sh /opt/kolla/
|
COPY config-rabbit.sh config-external.sh /opt/kolla/
|
||||||
COPY start.sh /
|
COPY start.sh /
|
||||||
|
4
docker/centos/source/data/Dockerfile
Normal file
4
docker/centos/source/data/Dockerfile
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
FROM centos
|
||||||
|
MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
||||||
|
|
||||||
|
CMD /bin/sleep infinity
|
1
docker/centos/source/data/build
Symbolic link
1
docker/centos/source/data/build
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../tools/build-docker-image
|
@ -74,13 +74,8 @@ function configure_db {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function populate_db {
|
function populate_db {
|
||||||
if [[ $(ls /var/lib/mysql) == "" ]]; then
|
mysql_install_db
|
||||||
echo "POPULATING NEW DB"
|
chown -R mysql: /var/lib/mysql
|
||||||
mysql_install_db
|
|
||||||
chown -R mysql: /var/lib/mysql
|
|
||||||
else
|
|
||||||
echo "DB ALREADY EXISTS"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepare_db {
|
function prepare_db {
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
function set_rabbitmq_cookie {
|
function set_rabbitmq_cookie {
|
||||||
echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie
|
echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie
|
||||||
chown rabbitmq: /var/lib/rabbitmq/.erlang.cookie
|
chown -R rabbitmq: /var/lib/rabbitmq
|
||||||
chmod 400 /var/lib/rabbitmq/.erlang.cookie
|
chmod 400 /var/lib/rabbitmq/.erlang.cookie
|
||||||
}
|
}
|
||||||
|
4
docker_templates/data/Dockerfile.j2
Normal file
4
docker_templates/data/Dockerfile.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
FROM {{ base_distro }}:{{ base_distro_tag }}
|
||||||
|
MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
||||||
|
|
||||||
|
CMD /bin/sleep infinity
|
@ -21,12 +21,16 @@ RUN yum install -y http://www.percona.com/redir/downloads/percona-release/redhat
|
|||||||
percona-xtrabackup \
|
percona-xtrabackup \
|
||||||
pv \
|
pv \
|
||||||
tar \
|
tar \
|
||||||
expect
|
expect \
|
||||||
|
&& rm -rf /var/lib/mysql/*
|
||||||
|
|
||||||
{% elif base_distro in ['ubuntu', 'debian'] %}
|
{% elif base_distro in ['ubuntu', 'debian'] %}
|
||||||
|
|
||||||
RUN ["/bin/false"]
|
RUN ["/bin/false"]
|
||||||
|
|
||||||
|
# TODO(sdake) when ubuntu support is implemented we will need a line
|
||||||
|
# && rm -rf /var/lib/mysql/
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
COPY config-galera.sh /opt/kolla/config/
|
COPY config-galera.sh /opt/kolla/config/
|
||||||
|
@ -6,14 +6,16 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla)
|
|||||||
RUN yum -y install \
|
RUN yum -y install \
|
||||||
hostname \
|
hostname \
|
||||||
rabbitmq-server \
|
rabbitmq-server \
|
||||||
&& yum clean all
|
&& yum clean all \
|
||||||
|
&& rm -rf /var/lib/rabbitmq/*
|
||||||
|
|
||||||
{% elif base_distro in ['ubuntu', 'debian'] %}
|
{% elif base_distro in ['ubuntu', 'debian'] %}
|
||||||
|
|
||||||
RUN apt-get install -y --no-install-recommends \
|
RUN apt-get install -y --no-install-recommends \
|
||||||
hostname \
|
hostname \
|
||||||
rabbitmq-server \
|
rabbitmq-server \
|
||||||
&& apt-get clean
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/rabbitmq/*
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ if ! [ -f "$IMAGE" ]; then
|
|||||||
curl -L -o ./$IMAGE $IMAGE_URL/$IMAGE
|
curl -L -o ./$IMAGE $IMAGE_URL/$IMAGE
|
||||||
fi
|
fi
|
||||||
echo Creating glance image.
|
echo Creating glance image.
|
||||||
glance image-create --name cirros --progress --disk-format qcow2 --container-format bare --visibility public --progress --file ./$IMAGE
|
glance image-create --name cirros --progress --disk-format qcow2 --container-format bare --progress --file ./$IMAGE
|
||||||
|
|
||||||
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
||||||
echo Configuring nova networking.
|
echo Configuring nova networking.
|
||||||
|
Loading…
Reference in New Issue
Block a user