aboutsummaryrefslogtreecommitdiffstats
path: root/docker
AgeCommit message (Collapse)AuthorFilesLines
2017-06-12Generate HAproxy iptables rules for containerized HA deploymentsDamien Ciabrini1-10/+13
The containerized HAproxy service can only specify steps to be run in containers, i.e. it cannot runs the regular puppet steps on bare metal at the same time. A side effect is that the dedicated HAproxy iptables rules are no longer generated. Update the docker_config step to fix the creation of iptables rules for HAproxy and persist them on-disk as before. Co-Authored-By: Michele Baldessari <michele@acksyn.org> Closes-Bug: 1697387 Change-Id: Ib5a083ba3299a82645f1a0f9da0d482c6b89ee23
2017-06-12Merge "Don't mount all of config-data /etc, /etc/httpd"Jenkins19-21/+46
2017-06-11Merge "Containerized collectd"Jenkins1-0/+94
2017-06-12Don't mount all of config-data /etc, /etc/httpdSteve Baker19-21/+46
This change modifies these mounts to be more specific mounts based on the files which puppet actually modifies. The result is something a bit more self-documenting, and allows for trying other techniques for populating /etc other than directly mounting config-data directories. Change-Id: Ied1eab99d43afcd34c00af25b7e36e7e55ff88e6
2017-06-09Merge "Write md5sum for service config directories"Jenkins2-3/+59
2017-06-09Merge "Make container names consistent"Jenkins18-41/+41
2017-06-09Merge "Containerize Tacker Services"Jenkins1-0/+134
2017-06-09Merge "Containerize Congress API service"Jenkins1-0/+135
2017-06-09Make container names consistentMartin André18-41/+41
This commit change the container names to consistently use the `_` char as a word separator and make the kolla external config file match the container name to make operators' life easier. Change-Id: Ibac9d76dde474b94c3cb86031ead0fd0327e126f
2017-06-09Merge "Modify libvirtd container command line when TLS is enabled"Jenkins1-1/+25
2017-06-09Merge "Run the nova-compute container as the nova user"Jenkins1-1/+1
2017-06-08Merge "Containerize Horizon"Jenkins1-0/+128
2017-06-08Run the nova-compute container as the nova userOliver Walsh1-1/+1
Change-Id: Ie6469d2fd2119952669f5c9fdaa41fb273185973 Depends-On: I91be1f1eacf8eed9017bbfef393ee2d66771e8d6 Closes-bug: #1693844
2017-06-08Containerized collectdMatthias Runge1-0/+94
Change-Id: I05126a108f5ab790e729d1f98399dca5801ebd69
2017-06-08Write md5sum for service config directoriesSteven Hardy2-3/+59
The configuration generated by docker-puppet may change on update, so checksum the combined files from the config-data directories, to enable detecting those that have changed and restarting the appropriate containers - we need to merge this checksum into the environment passed to the containters, as this will cause paunch to correctly restart containers when the configuration generated changes, even if the rest of the json definition provided by heat does not. Change-Id: I40d9080cf3ad708ef4ed91e46d2b2ae1138bb9c3
2017-06-08Containerize Tacker ServicesPradeep Kilambi1-0/+134
Closes-bug: #1668935 Change-Id: I83a02735eb445e831bc74ec786f2bb42cd2f87d6
2017-06-08Containerize Congress API servicePradeep Kilambi1-0/+135
Closes-bug: #1668929 Change-Id: I051edcf2980bb9c2521e21c410055690c012a0d1
2017-06-08Merge "Mount /var/run/libvirt on ceilo agent compute"Jenkins1-0/+1
2017-06-08Modify libvirtd container command line when TLS is enabledOliver Walsh1-1/+25
Libvirtd needs the --listen arg to enable the TLS socket. Change-Id: I535165f0a2634728045491b2a37a56b1891b13fe Resolves-Bug: #1694958
2017-06-07Mount /var/run/libvirt on ceilo agent computePradeep Kilambi1-0/+1
Without this evidently agent logs IO errors. Change-Id: I3031212c582381ae6b6147a48101bf83a05caa8a
2017-06-07Add host logging for redis service templateSteven Hardy1-3/+14
This got missed in the patch which added host logging for most other services. Change-Id: I0be8a5bce6558ebaf5b4830138d1f6c31aec6394
2017-06-07Merge "Map /etc/ssh/ssh_known_hosts to all containers"Jenkins1-0/+1
2017-06-07Merge "Ensure /etc/ssh/ssh_known_hosts exist in docker config-data."Jenkins1-0/+4
2017-06-07Merge "Convert puppet and docker steps to ansible"Jenkins2-99/+77
2017-06-07Merge "Stop/disable l3 agent in docker service upgrade_tasks"Jenkins1-0/+5
2017-06-07Map /etc/ssh/ssh_known_hosts to all containersOliver Walsh1-0/+1
This allows any ssh client spawned from a container to validate ssh host key. Change-Id: I86d95848e5f049e8af98107cd7027098d6cdee7c Closes-bug: #1693841
2017-06-07Ensure /etc/ssh/ssh_known_hosts exist in docker config-data.Oliver Walsh1-0/+4
Works around the issue encountered in 1696283. Change-Id: I1947d9d1e3cabc5dfe25ee1af994d684425bdbf7 Resolves-Bug: #1696283
2017-06-07Stop/disable l3 agent in docker service upgrade_tasksSteven Hardy1-0/+5
This service is missing the task to stop/disable the service on the host prior to it being started in a container. Change-Id: I33d70d32c3b55e1f2738441f57c74b007e7bd766 Closes-Bug: #1695017
2017-06-07Merge "Fix upgrade tasks to use correct service name"Jenkins2-2/+2
2017-06-06Merge "Containerize HAProxy for the non-ha case"Jenkins1-0/+111
2017-06-06Fix upgrade tasks to use correct service namePradeep Kilambi2-2/+2
Change-Id: I149ca7cdd939ed7c1767a416bb9569ada163e820 Closes-bug: #1696089
2017-06-06Convert puppet and docker steps to ansibleSteven Hardy2-99/+77
Replace the multiple SoftwareDeployment resources with a common playbook that runs on all roles, consuming the configuration data written via the HostPrepAnsible tasks. This hopefully simplifies things, and will enable re-running the deploy steps for minor updates (we'll need some way to detect a container should be replaced, but that will be done via a follow-up patch). Change-Id: I674a4d9d2c77d1f6fbdb0996f6c9321848e32662
2017-06-06Containerize HAProxy for the non-ha caseDamien Ciabrini1-0/+111
This change implements an initial container for haproxy in the non-HA case (aka when the container is not spawn by pacemaker). We tested this using a stock kolla haproxy container image and we were able to get haproxy running on a container with net=host correctly. Change-Id: I90253412a5e2cd8e56e74cce3548064c06d022b1 Co-Authored-By: Michele Baldessari <michele@acksyn.org> Depends-on: I51c482b70731f15fee4025bbce14e46a49a49938 Closes-Bug: #1668936
2017-06-04Merge "Containerize Redis for HA"Jenkins1-0/+140
2017-06-04Containerize Redis for HADamien1-0/+140
This service allows configuring and deploying Redis containers in a HA overcloud managed by pacemaker. The containers are managed and run by pacemaker. Inside there is pacemaker_remote which will invoke the resource agent managing galera. The resources themselves are created via puppet-pacemaker inside a short-lived container used for this purpose (mysql_init_bundle). This container needs to use the 'docker_config' section to invoke puppet (as opposed to 'docker_puppet_tasks'), because due to the HA composability each resource creation needs to happen on the bootstrap node of that service and 'docker_puppet_tasks' will only run on the controller/primary role. Co-Authored-By: Michele Baldessari <michele@acksyn.org> Closes-Bug: #1692924 Depends-On: Ia1131611d15670190b7b6654f72e6290bf7f8b9e Change-Id: Ie045954fcc86ef2b3e4562b6f012853177f03948
2017-06-03Merge "Containerize clustercheck galera monitor for HA deployments"Jenkins1-0/+103
2017-06-03Merge "Containerize HAProxy for HA"Jenkins1-0/+116
2017-06-03Merge "Containerize RabbitMQ for HA"Jenkins1-0/+159
2017-06-03Merge "Containerize MySQL for HA"Jenkins1-0/+180
2017-05-31Merge "Containerized nova-compute working with Deployed Server"Jenkins1-0/+21
2017-05-30Merge "docker bootstrap service commands"Jenkins11-28/+36
2017-05-29Containerized nova-compute working with Deployed ServerJiri Stransky1-0/+21
When using the Deployed Server feature, we rely on Puppet to install packages. But nova-compute/libvirt puppet is running in a container, so it cannot install anything on the host. We rely on virtlogd on the host, so we need to install it there some way. This patch uses host_prep_tasks for that, conditionally based on the EnablePackageInstall stack parameter value. Also multinode-container-upgrade.yaml env is copied as multinode-containers.yaml, to remove the naming confusion, as the environment file can be used for more than just upgrades. The old env file will be removed once we make the upgrade job use the new one (catch 22 type of issue). Change-Id: Ia9b3071daa15bc30792110e5f34cd859cc205fb8
2017-05-24Containerize RabbitMQ for HADan Prince1-0/+159
This service allows configuring and deploying RabbitMQ containers in a HA overcloud managed by pacemaker. The containers are managed and run by pacemaker. Inside there is pacemaker_remote which will invoke the resource agent managing galera. The resources themselves are created via puppet-pacemaker inside a short-lived container used for this purpose (mysql_init_bundle). This container needs to use the 'docker_config' section to invoke puppet (as opposed to 'docker_puppet_tasks'), because due to the HA composability each resource creation needs to happen on the bootstrap node of that service and 'docker_puppet_tasks' will only run on the controller/primary role. Co-Authored-By: Michele Baldessari <michele@acksyn.org> Co-Authored-By: John Eckersberg <jeckersb@redhat.com> Closes-Bug: #1692909 Depends-On: I0722e4a4d4716f477e8304cfa1aadd3eef7c2f31 Change-Id: I942737134385af775cade40c2d69516d4fe31a99
2017-05-24Containerize MySQL for HADamien Ciabrini1-0/+180
This service allows configuring and deploying MySQL/galera containers in a HA overcloud managed by pacemaker. The containers are managed and run by pacemaker. Inside there is pacemaker_remote which will invoke the resource agent managing galera. The resources themselves are created via puppet-pacemaker inside a short-lived container used for this purpose (mysql_init_bundle). This container needs to use the 'docker_config' section to invoke puppet (as opposed to 'docker_puppet_tasks'), because due to the HA composability each resource creation needs to happen on the bootstrap node of that service and 'docker_puppet_tasks' will only run on the controller/primary role. Co-Authored-By: Michele Baldessari <michele@acksyn.org> Closes-Bug: #1692842 Depends-On: I3b4d8ad2eec70080419882d5d822f78ebd3721ae Change-Id: I790dbc30b3de1c1a3fe76d3d8f060e4d7f95e2e7
2017-05-24Containerize HAProxy for HADamien Ciabrini1-0/+116
This service allows configuring and deploying HAProxy containers in a HA overcloud managed by pacemaker. The containers are managed and run by pacemaker. Pacemaker runs the standard Kolla image but overrides the initial command so that it explicitely calls HAProxy. This way, we shield ourselves from any unexpected future change in Kolla. This container needs to use the 'docker_config' section to invoke puppet (as opposed to 'docker_puppet_tasks'), because due to the HA composability each resource creation needs to happen on the bootstrap node of that service and 'docker_puppet_tasks' will only run on the controller/primary role. Co-Authored-By: Michele Baldessari <michele@acksyn.org> Closes-Bug: #1692908 Depends-On: Ifcf890a88ef003d3ab754cb677cbf34ba8db9312 Change-Id: I2f679bfe195733f4507e9b9e920b678e1370bb82
2017-05-24Remove duplicate PreConfig definitionJiri Stransky1-7/+0
We had two exactly the same definitions of PreConfig in docker_steps.j2.yaml. We should remove one of them. I chose to remove the first definition, as the 2nd definition is amended by change I674a4d9d2c77d1f6fbdb0996f6c9321848e32662, so we'll avoid a conflict. Change-Id: If65e30daefcf6552e085c7648c6691b7068834d4
2017-05-24Fix race condition between docker-puppet and container stepsJiri Stransky1-0/+1
GenerateConfigDeployment wasn't anchored with dependencies anywhere. If it took too long to complete and step 1 of containers creation already started executing, problems happened. This is now fixed by adding the required dependency relationship. Change-Id: Ie7dfd2a965e704ba278d4c2fad67f14a3a62799e Closes-Bug: #1692503
2017-05-23Containerize clustercheck galera monitor for HA deploymentsDamien Ciabrini1-0/+103
In HA overcloud deployments, HAProxy makes use of a helper service called "clustercheck", to check whether galera nodes are available for serving traffic. This change implements a dedicated service for clustercheck, which was originally part of the pacemaker mysql service. The service is configured by tripleo and the container's lifecycle is managed by docker, like other containerized services. Closes-Bug: #1692969 Change-Id: I8a5b30429f8ec3e484256a62a29ab7dee33ab291 Co-Authored-By: Michele Baldessari <michele@acksyn.org> Depends-on: I1aabe34fa6a9c8c705a4405f275b66502c313cf2
2017-05-22docker bootstrap service commandsDan Prince11-28/+36
This patch guards db syncs and initialization code from executing on multiple nodes at the same time by using the new bootstrap_host_exec script. This helper script checks to make sure the container is executing on the "bootstrap host" for the specified service (arg 0) and then if it matches runs the specified command. Depends-On: If25f217bbb592edab4e1dde53ca99ed93c0e146c Depends-On: Ic1585bae27c318bd6bafc287e905f2ed250cce0f Change-Id: I0c864ca093ea476248b619d8c88477ef0b64e2eb Closes-Bug: 1688380
2017-05-22docker/TLS-everywhere: Add metadata_settings output to templatesJuan Antonio Osorio Robles5-0/+10
This is needed since it's what writes the service metadata to the nova server in order to create the kerberos principals. It worked in a base controller since the keystone template does have this. But if we would deploy these services on a separate role, it would break. So this output is needed. bp tls-via-certmonger-containers Change-Id: I3ee8c65d356dcd092a3fbf79041e5c69ef23b721