Commit Graph

92 Commits

Author SHA1 Message Date
Emilien Macchi 4f198c32cb Remove some deprecated services
- Docker isn't supported anymore.
- Clients are now installed by Ansible, not Puppet
- Neutron SRIOV host isn't supported and operators should deploy with
  sriov_pf network object in nic configs.
- firewall is now managed by Ansible, not Puppet

Change-Id: I2b6068a719563a53bc255dcce72a92465e7df468
2020-06-04 09:16:04 -04:00
Emilien Macchi 26a3d4336c Deprecate Docker
Docker is deprecated in Stein and will be removed in Train.
It is being replaced by Podman and Buildah.

blueprint podman-support
Change-Id: Id9ec9cbe9f879c2f437b234742118763d6d0f535
2019-02-20 21:58:28 +00:00
Emilien Macchi 3e5488901a env/docker: add ContainerCli
This file will be used until we really get Podman everywhere (so when
CentOS 8 is out).
We still need Docker around for when Pacemaker is used. So this patch
will mainly be used by TripleO CI OVB jobs, so Docker can still be
deployed on the Overcloud, and not Podman.

blueprint podman-support

Change-Id: I80b07c83aae752b2b327a4570bc3df230f6a6319
2019-02-13 11:52:07 -05:00
Jiri Stransky 6c435ab3e0 Deprecate environments/docker.yaml
Default resource registry points to containerized services too, we
shouldn't use docker.yaml anymore.

Change-Id: I6106e223d9c1e399d396d745ad28274107074b06
2018-11-01 22:39:40 +00:00
trown 4a583c8910 Define keepalived service in environments/docker.yaml
The default for OS::TripleO::Services::Keepalived is missing.

Change-Id: I8e6bc6d46a32a55098991e1916cedebb7e0b5c93
2018-08-20 09:44:05 -04:00
Chandan Kumar bb924804df Add tempest container to docker.yaml
* it will help to update the tempest container and reuse it in CI
  when it is gated against a changeset.

Change-Id: I1386ce743e1a8cc38ccf7dbfb30735e78c6dc67a
2018-06-07 11:30:35 +00:00
Bogdan Dobrelya 041251d473 Switch remaining env files to containers defaults
Mark regular non-containerized services with FIXME
to be switched, once it is containerized

Do not mark yet an external/backend/plugin/host-config
related puppet services templates with that FIXME

Mark puppet/services/ceph- related templates as TODO
switch it to containerized ceph-ansible eventually, maybe.

Change-Id: Ib9fbad05eeb57dc641499fbf411cb5870da7a8e9
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2018-04-26 23:45:01 +00:00
Andrew Smith 78bc457585 Support separate oslo.messaging services for RPC and Notification
This commit introduces oslo.messaging services in place of a single
rabbitmq server. This will enable the separation of rpc and
notifications for the continued use of a single backend (e.g.
rabbitmq server) or a dual backend for the messaging communications.

This patch:
* add oslo_messaging_rpc and oslo_messaging_notify services
* add puppet services for rpc and notification
  (rabbitmq and qdrouterd servers)
* add docker services to deploy rpc (rabbitmq or qdrouterd)
  and notify (rabbitmq or shared)
* retains rabbit parameters for core services
* update resource registries, service_net_map, roles, etc.
* update ci environment container scenarios
* add environment generator for messaging
* add release note

Depends-On: Ic2c1a58526febefc1703da5fec12ff68dcc0efa0
Depends-On: I154e2fe6f66b296b9b643627d57696e5178e1815
Depends-On: I03e99d35ed043cf11bea9b7462058bd80f4d99da
Needed-By: Ie181a92731e254b7f613ad25fee6cc37e985c315
Change-Id: I934561612d26befd88a9053262836b47bdf4efb0
2018-04-22 04:33:44 +00:00
Michele Baldessari 0c8ba96517 Disable SwiftDispersion when using docker
We currently have the following in the registry:
OS::TripleO::Services::SwiftDispersion: puppet/services/swift-dispersion.yaml

Since this service is included by default in the Controller role
it will be installed on the host even on a containerized deployment.

Let's noop this in docker.yaml until a containerized version of it
gets merged.

Change-Id: Ic2793d0cfb7b20f4661cb1a45793cae67a4868b4
Closes-Bug: #1723788
2017-10-17 17:06:36 +02:00
Jiri Stransky 2f9ed49748 Reintroduce containerized Cinder
Change-Id: Ied8429be0eb16e4d775d1dfe0c2f0f31f9e01e23
Closes-Bug: #1700140
2017-10-05 10:09:18 +02:00
Jenkins 60cf6a5ff2 Merge "Support for Ocata-Pike live-migration over ssh" 2017-09-22 21:32:28 +00:00
Jenkins ada47ab7ff Merge "OpenStack containerized qdrouterd service" 2017-09-11 21:48:38 +00:00
Oliver Walsh 17fd16b9f2 Support for Ocata-Pike live-migration over ssh
In Ocata all live-migration over ssh is performed on the default ssh port (22).
In Pike the containerized live-migration over ssh is on port 2022 as the
docker host's sshd is using port 22.

To allow live migration during upgrade we need to temporarily pin the Pike
computes to port 22 and in the final converge we can switch over to port 2022.

This also changes the default port to 2022 for baremetal computes in Pike to
enable live-migration between baremetal and containerized computes.

Change-Id: Icb9bfdd9a99dc1dce28eb95c50a9a36bffa621b1
Depends-On: I0b80b81711f683be539939e7d084365ff63546d3
Closes-Bug: 1714171
2017-09-07 12:20:34 +01:00
Brent Eagles 94c9c2f954 Add Neutron SR-IOV agent container
This patch adds support for running the neutron SR-IOV agent in a
container.

Depends-On: I4a63845a97c890d7d408731ec5509c320289f18f
Depends-On: Ie5d8cd7863c0d042cc6a4e1fc52602d8a03a1935
Depends-On: I1b5ab0a64ae1f5735f1bd5a68e6ae8bdcf47ddec

Closes-Bug: #1715388

Change-Id: I7ee603b32eddacd02d846dff00dd1b786d4a7ad9
2017-09-06 22:18:24 -02:30
John Eckersberg 6a991f6102 OpenStack containerized qdrouterd service
Add the qdrouterd container as an infrastructure component
that provides a messaging backend for olso.messaging. Currently
the qdr role aliases the rabbitmq service.

This patch:
* Add qdrouterd to docker services
* Update environments docker file
* Add global_config_settings to yaml validate

Change-Id: Ief8c09a2728b6e1a1127a53b6df2affecc0ce3c4
2017-09-06 09:05:38 -04:00
Steve Baker cb81cbe3b5 Containerized mongodb, disable by default, fix upgrade
This change removes the entry to containerise docker by default
because it should now be disabled since the change
Id2e6550fb7c319fc52469644ea022cf35757e0ce.

Removing the entry means the default mapping to mongodb-disabled.yaml
takes effect.

This change also modifies the upgrade_tasks so that the mongod service
is only disabled when the service exists. There appears to be upgrade
scenarios which fail because mongodb was never installed in the first
place.

Change-Id: Ie09ce2a52128eef157e4d768c1c4776fc49f2324
Closes-Bug: #1715031
2017-09-05 22:52:08 +00:00
Bogdan Dobrelya 8a03456056 Add logrotate with crond service
Add a docker service template to provide containerized services
logs rotation with a crond job.
Add OS::TripleO::Services::LogrotateCrond to CI multinode-containers
and to all environments among with generic services like Ntp or Kernel.
Set it to OS::Heat::None for non containerized environments and
only enable it to the environments/docker.yaml.

Closes-bug: #1700912

Change-Id: Ic94373f0a0758e9959e1f896481780674437147d
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2017-08-21 08:56:29 +02:00
Jenkins 9adfd2fc2a Merge "Restore and split nova metadata docker service out of nova-api." 2017-08-18 14:23:28 +00:00
Oliver Walsh 2760f53274 Restore and split nova metadata docker service out of nova-api.
I2c39a2957fd95dd261b5b8c4df5e66e00a68d2f7 changed nova api to http from
eventlet, however we need to continue running the eventlet service as
it is required for the nova metadata api.

However this should be tied to the OS::TripleO::Services::NovaMetadata
service, so duplicate the required config in nova-metadata.yaml.

Change-Id: I398575d565d5527bcaa1c8b33b9de2e1e0f2f6fd
Depends-On: Id3407e151566d16c6ae1e1ea8c1b021dac22e727
Closes-bug: #1711425
2017-08-18 02:13:17 +01:00
Jiri Stransky f7a84702de Refactor setup_docker_host.sh as host_prep_tasks
Previously what we've been doing with setup_docker_host.sh can now be
achieved with host_prep_tasks, and we can free up the NodeUserData
interface for other use cases.

Closes-Bug: #1711387
Change-Id: Iaac90efd03e37ceb02c312f9c15c1da7d4982510
2017-08-17 17:10:22 +02:00
Steven Hardy 7f6305980d Consolidate puppet/docker deployments with one deploy steps workflow
If we consolidate these we can focus on one implementation (the new ansible
based one used for docker-steps)

Change-Id: Iec0ad2278d62040bf03613fc9556b199c6a80546
Depends-On: Ifa2afa915e0fee368fb2506c02de75bf5efe82d5
2017-08-11 17:25:02 +00:00
Pradeep Kilambi 1dd72e5faa Fix ceilometer agent compute service name
Make sure this matches whats in roles_data.yaml

Change-Id: Id41c457914f557af7c9ec195c4c6f98669523ac1
2017-08-01 21:26:04 +00:00
Jenkins 56d4563935 Merge "Generate MySQL client config if service requires database" 2017-08-01 20:00:18 +00:00
Damien Ciabrini 0cb45d65c6 Generate MySQL client config if service requires database
Services that access database have to read an extra MySQL configuration file
/etc/my.cnf.d/tripleo.cnf which holds client-only settings, like client bind
address and SSL configuration. The configuration file is thus used by
containerized services, but also by non-containerized services that still
run on the host.

In order to generate that client configuration file appropriately both on the
host and for containers, 1) the MySQLClient service must be included by the
role; 2) every containerized service which uses the database must include the
mysql::client profile in the docker-puppet config generation step.

By including the mysql::client profile in each containerized service, we ensure
that any change in configuration file will be reflected in the service's
/var/lib/config-data/{service}, and that paunch will restart the service's
container automatically.

We now only rely on MySQLClient from puppet/services, to make it possible to
generate /etc/my.cnf.d/tripleo.cnf on the host, and to set the hiera keys that
drive the generation of that config file in containers via docker-puppet.

We include a new YAML validation step to ensure that any service which depends
on MySQL will initialize the mysql::client profile during the docker-puppet
step.

Change-Id: I0dab1dc9caef1e749f1c42cfefeba179caebc8d7
2017-07-27 13:41:13 -04:00
Damien Ciabrini 4645d9ce83 Fix creation of iptables rules for non-HA containerized HAproxy
The introduction of I90253412a5e2cd8e56e74cce3548064c06d022b1 broke the HAproxy
service due to some HAproxy-specific iptables rules being executed during the
puppet config step.

Ensure that no iptables call is performed during the generation of configuration
files. Move those calls to step 1, as implemented in the pacemaker-based
HAproxy service (Ib5a083ba3299a82645f1a0f9da0d482c6b89ee23).

Depends-On: I2d6274d061039a9793ad162ed8e750bd87bf71e9
Closes-Bug: #1697921

Change-Id: Ica3a432ff4a9e7a46df22cddba9ad96e1390b665
2017-07-26 03:58:14 +00:00
Oliver Walsh 4a7f3398f1 Add support for nova live/cold-migration with containers
Updates hieradata for changes in https://review.openstack.org/471950.
Creates a new service - NovaMigrationTarget. On baremetal this just configures
live/cold-migration. On docker is includes a container running a second sshd
services on an alternative port.
Configures /var/lib/nova/.ssh/config and mounts in nova-compute and libvirtd
containers.

Change-Id: Ic4b810ff71085b73ccd08c66a3739f94e6c0c427
Implements: blueprint tripleo-cold-migration
Depends-On: I6c04cebd1cf066c79c5b4335011733d32ac208dc
Depends-On: I063a84a8e6da64ae3b09125cfa42e48df69adc12
2017-07-23 02:26:55 +01:00
Dan Prince 90317db0eb Drop ComputeServices from environments/docker.yaml
Change-Id: Ibfc568755764203b68aed524d6f334eeb7cd5da7
Closes-bug: #1703001
2017-07-12 09:04:06 -04:00
Tim Rozet 24e855dae3 Adds docker OpenDaylight
Depends-On: I020550ede0ef981582392cf6c48dd5cb5823a074
Depends-On: I610b07a3c2bcf1c3288f76112a08b81c50e06913
Depends-On: I3d378044b3da5309b60967a12df7800520a254dc
Depends-On: I9c32b41ef865a09587f3ebfe8b8a896031fbd285
Depends-On: Ib31bf29bc69f5c58e98b99c3e598b19c99efc77f

Change-Id: I36c7390ddb4192e55ee56006fd6e9c5f8704445c
Signed-off-by: Tim Rozet <trozet@redhat.com>
2017-07-03 23:47:19 -04:00
Martin André 35f189f700 Temporarily disable containerized cinder
The containerized cinder service was merged a bit too soon and it
caused several issues in CI. Disable it temporarily to unblock CI until
it matures.

Change-Id: I8c6c0ce0011fddfec1e2de798d4fc6f34ae78de2
Related-Bug: #1700333
2017-06-25 18:54:55 +02:00
Jenkins 1daea3222c Merge "Configuration for containerized MySQL clients" 2017-06-23 13:47:07 +00:00
Martin André 39ee601e77 Re-enable docker service in docker.yaml
It was removed by mistake from the docker.yaml environment file in
I76f188438bfc6449b152c2861d99738e6eb3c61b.

Change-Id: If8df98e1ddd0961ab0c9e5df917fef8200db65e6
Closes-Bug: #1698749
2017-06-19 09:33:58 +02:00
Jenkins cb0ae4a630 Merge "Remove duplicate docker/puppet services.yaml" 2017-06-17 09:46:33 +00:00
Jiri Stransky 6e72aa9f81 Fall back to non-containerized cinder-backup to unblock OVB CI
The previous fix Ib10e4f18d967d356a15b97f58c488f8402a73356 made
multinode CI pass, but there was still an error during volume
scheduling on OVB:

OSError: [Errno 13] Permission denied: '/var/lib/cinder/conversion'

This was most likely due to cinder-volume was running on host and used
host's cinder user, while we still deployed containerized
cinder-backup and it chowned /var/lib/cinder under kolla's cinder user
whose UID doesn't match the baremetal one.

We didn't hit this issue in the multinode job because it doesn't
presently deploy cinder-backup service at all.

Co-Authored-By: Martin André <m.andre@redhat.com>
Change-Id: I9ac74d6717533f59945694b4a43fe56d7ca768c6
Closes-Bug: #1698136
2017-06-16 15:48:24 +02:00
Jiri Stransky 0e0ccda369 Fall back to non-containerized cinder-volume to unblock CI
CI was stuck on collecting logs. The collect-logs playbook, which
normally takes just a few minutes, took more than an hour and was
eventually killed.

The playbook was stuck on collecting LVM info on the overcloud node,
which runs this command:

  (vgs; pvs; lvs) &> /var/log/extra/lvm.txt

Therefore it's very likely that the problematic part is the LVM setup
in the containerized cinder-volume service, and falling back to
non-contianerized for the time being should get the CI going
again.

Change-Id: Ib10e4f18d967d356a15b97f58c488f8402a73356
Closes-Bug: #1698136
2017-06-16 11:03:45 +02:00
Jenkins d95394a01c Merge "Containerize Ceilometer Agent Ipmi" 2017-06-15 13:05:36 +00:00
Jenkins bf66addf38 Merge "Add Nova Consoleauth service to containerized deployment" 2017-06-14 17:34:47 +00:00
Jenkins cbb3a9ec72 Merge "Add Nova Vncproxy service to containerized deployment" 2017-06-14 16:45:32 +00:00
Jenkins 112236f8bb Merge "Docker service for Cinder Volume" 2017-06-14 15:06:08 +00:00
Jenkins 4a7c142a92 Merge "Docker services for Cinder Backup" 2017-06-14 13:49:46 +00:00
Jenkins 2ff174b64f Merge "Docker services for Cinder Api and Scheduler" 2017-06-14 10:18:37 +00:00
Jenkins 0152cccd2b Merge "Containerize multipathd" 2017-06-14 01:00:09 +00:00
Jenkins d9afde3696 Merge "Move iscsid to a container" 2017-06-14 01:00:01 +00:00
Pradeep Kilambi 0849c76ca6 Containerize Ceilometer Agent Ipmi
Depends-On: I3e865f2e9b6935eb3dfa4b4579c803f0127848ae

Change-Id: I09327a63d238a130b6ac0f2361f80e2b244b4b52
2017-06-13 20:51:39 +00:00
Damien Ciabrini 80f6907054 Configuration for containerized MySQL clients
This service generates the /etc/my.cnf.d/tripleo.cnf file which is
being used to configured MySQL clients (e.g. client bind address,
client SSL configuration...)

We generate the config file in this service and let containerized MySQL clients
mount /var/lib/config-data/mysql_client/etc/my.cnf.d/tripleo.cnf it in their
own container.  This way, when this MySQLClient service is updated, the other
containers will automatically pick the updated configuration at next restart.

Partial-Bug: #1692317
Change-Id: Idc56d27fb9645ad3b07df8ef08b7e2ce29e6d499
2017-06-13 17:22:32 +02:00
Sven Anderson 15e74ab667 Add Nova Vncproxy service to containerized deployment
Depends-On: I037858a445742de58bd2f8d879f2b1272b07f481
Change-Id: Ifd138ea553a45a637a1a9fe3d0e946f8be51e119
2017-06-13 14:45:34 +00:00
Sven Anderson e58faa9ceb Add Nova Consoleauth service to containerized deployment
Depends-On: I037858a445742de58bd2f8d879f2b1272b07f481
Change-Id: I808a5513decab1bd2cce949d05fd1acb17612a42
2017-06-13 14:45:25 +00:00
Jiri Stransky 6dbb8632ae Unblock CI by reverting to non-containerized HAProxy
In change I90253412a5e2cd8e56e74cce3548064c06d022b1 we merged
containerized HAProxy setup, but because of a typo in resource
registry, CI kept using the non-containerized variant and it went
unnoticed that the containerized HAProxy doesn't work yet.

We merged a resource registry fix in
Ibcbacff16c3561b75e29b48270d60b60c1eb1083 and it brought down the CI,
which now used the non-working HAProxy.

After putting in the missing haproxy container image to tripleo-common
in I41c1064bbf5f26c8819de6d241dd0903add1bbaa we got further, but the
CI still fails on HAProxy related problem, so we should revert back to
using non-containerized HAProxy for the time being.

Change-Id: If73bf28288de10812f430619115814494618860f
Closes-Bug: #1697645
2017-06-13 11:01:29 +02:00
Jenkins 571778f2f0 Merge "Fix typo in haproxy docker mapping" 2017-06-12 22:28:25 +00:00
Dan Prince 54c31f664f Docker service for Cinder Volume
Adds docker service for Cinder Volume

Co-Authored-By: Jon Bernard <jobernar@redhat.com>

Depends-On: Ic1585bae27c318bd6bafc287e905f2ed250cce0f

Partial-bug: #1668920

Change-Id: Ifadb007897f3455b90de6800751a0d08991ebca2
2017-06-12 10:04:59 -04:00
Dan Prince 7f9f066359 Docker services for Cinder Backup
Adds docker services for Cinder Backup

Co-Authored-By: Gorka Eguileor <geguileo@redhat.com>
Co-Authored-By: Jon Bernard <jobernar@redhat.com>
Co-Authored-By: Martin André <m.andre@redhat.com>
Co-Authored-By: Alan Bishop <abishop@redhat.com>

Partial-bug: #1668920

Change-Id: I26fc31e59b28da017f0b028b74bde40aaac53ad5
2017-06-12 10:04:59 -04:00