61 Commits

Author SHA1 Message Date
Radosław Piliszek
3e75a33ad4 Use the new image naming scheme
Change-Id: Ib4b15ed4feac82d8492b1c0f0238a752eac668e6
2022-05-23 06:37:25 +00:00
Christian Berendt
ea5b4d7e26 [bifrost] add bifrost_deploy_verbosity parameter
With the parameter bifrost_deploy_verbosity it is possible
to set the verbosity of the bootstrap of Bifrost.

This makes it possible to reduce verbosity when running
/bifrost/playbooks/install.yaml if needed.

Change-Id: I5815220f2193a492ae7e1f63443075790ae7aaef
2022-04-24 18:07:30 +02:00
Marcin Juszkiewicz
1620ab5be9 drop install_type from image names
We have only one value for install_type now and it gets removed from
image names.

Change-Id: I8bf95fd7aa9dd26b80d618ca0fcb097003b4cb0a
2022-04-20 12:29:12 +02:00
Zuul
675372ca20 Merge "bifrost: preempt change in defaults for TFTP and HTTP boot paths" 2022-01-07 09:08:56 +00:00
Pierre Riteau
56fc74f231 Move project_name and kolla_role_name to role vars
Role vars have a higher precedence than role defaults. This allows to
import default vars from another role via vars_files without overriding
project_name (see related bug for details).

Change-Id: I3d919736e53d6f3e1a70d1267cf42c8d2c0ad221
Related-Bug: #1951785
2021-12-31 09:26:25 +00:00
Mark Goddard
9e89af6f59 bifrost: preempt change in defaults for TFTP and HTTP boot paths
Bifrost in Yoga will change the default TFTP and HTTP boot directories
to reside under /var/lib/ironic/. We already avoid the cross-filesystem
linking issue that the patch aims to address, by overriding
tftp_master_path. Avoid this breaking us by reverting to the previous
defaults.

Needed-By: https://review.opendev.org/c/openstack/bifrost/+/822743

Change-Id: Idc54c78c618ae90b4d933c2c401bb1789b0abd36
2021-12-23 10:21:42 +00:00
Michal Nasiadka
675d4f55d5 bifrost: set IPA deploy logs dir to /var/log/kolla/ironic
By default those are saved in /var/log/ironic/deploy.
Change of path was introduced by [1] since Victoria.

[1]: https://review.opendev.org/c/openstack/bifrost/+/742854

Change-Id: I0fb69a06d6565d633f9ea0e37e0a780a70bb0ced
2021-12-09 11:34:51 +01:00
Mark Goddard
db4fc85c33 Revert "Performance: Use import_tasks in the main plays"
This reverts commit 9cae59be51e8d2d798830042a5fd448a4aa5e7dc.

Reason for revert: This patch was found to introduce issues with fluentd customisation. The underlying issue is not currently fully understood, but could be a sign of other obscure issues.

Change-Id: Ia4859c23d85699621a3b734d6cedb70225576dfc
Closes-Bug: #1906288
2020-12-14 10:36:55 +00:00
Radosław Piliszek
9cae59be51 Performance: Use import_tasks in the main plays
Main plays are action-redirect-stubs, ideal for import_tasks.

This avoids 'include' penalty and makes logs/ara look nicer.

Fixes haproxy and rabbitmq not to check the host group as well.

Change-Id: I46136fc40b815e341befff80b54a91ef431eabc0
Partially-Implements: blueprint performance-improvements
2020-10-27 19:09:32 +01:00
Michal Nasiadka
f257e79aff Allow setting container_proxy per service
Currently there is no option to set container_proxy only for one service
(e.g. magnum). This change adds this option.

Change-Id: Ia938ee660ebe8ce84321f721b6292b0b58a06e20
2020-09-22 10:54:40 +02:00
Mark Goddard
b685ac44e0 Performance: replace unconditional include_tasks with import_tasks
Including tasks has a performance penalty when compared with importing
tasks. If the include has a condition associated with it, then the
overhead of the include may be lower than the overhead of skipping all
imported tasks. For unconditionally included tasks, switching to
import_tasks provides a clear benefit.

Benchmarking of include vs. import is available at [1].

This change switches from include_tasks to import_tasks where there is
no condition applied to the include.

[1] https://github.com/stackhpc/ansible-scaling/blob/master/doc/include-and-import.md#task-include-and-import

Partially-Implements: blueprint performance-improvements

Change-Id: Ia45af4a198e422773d9f009c7f7b2e32ce9e3b97
2020-08-28 16:12:03 +00:00
Michal Nasiadka
8464046eac Fix bifrost deployment after removal of env-vars
Change-Id: I1318a5ea7f746012cc3055d4c03fd0508df921ff
2020-08-28 10:19:13 +02:00
Bartosz Bezak
9da39345ad Add support to use bifrost-deploy behind proxy
Change-Id: If90c2dfd32c8bc50671f6dd38e5a82b434c07151
Depends-On: https://review.opendev.org/#/c/720338
2020-08-17 10:29:29 +02:00
Mark Goddard
c31db5fa8a Bifrost: Stop stopping RabbitMQ
Bifrost no longer deploys RabbitMQ, so we should not try to stop it
during upgrade. In fact, if we do then it fails:

Failed to stop rabbitmq-server.service: Unit rabbitmq-server.service not
loaded.

Bifrost removed RabbitMQ in Train, so this is only required from Ussuri.

Change-Id: Ie86f85974fd7385e72a918065fc9c5172f9684ba
2020-02-21 16:40:30 +00:00
Zuul
5126087af5 Merge "CentOS 8: Support variable image tag suffix" 2020-01-21 09:29:58 +00:00
Mark Goddard
9e3c774371 Ansible lint: remove comparison with true or false
Change-Id: I3caa4581ba276082e859f18aaa6638472f5fbe49
Co-Authored-By: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
2020-01-13 10:33:43 +00:00
Mark Goddard
9755c924be CentOS 8: Support variable image tag suffix
For the CentOS 7 to 8 transition, we will have a period where both
CentOS 7 and 8 images are available. We differentiate these images via a
tag - the CentOS 8 images will have a tag of train-centos8 (or
master-centos8 temporarily).

To achieve this, and maintain backwards compatibility for the
openstack_release variable, we introduce a new 'openstack_tag' variable.
This variable is based on openstack_release, but has a suffix of
'openstack_tag_suffix', which is empty except on CentOS 8 where it has a
value of '-centos8'.

Change-Id: I12ce4661afb3c255136cdc1aabe7cbd25560d625
Partially-Implements: blueprint centos-rhel-8
2020-01-10 09:56:04 +00:00
Mark Goddard
9cac1137d0 Add upgrade-bifrost command
This performs the same as a deploy-bifrost, but first stops the
bifrost services and container if they are running.

This can help where a docker stop may lead to an ungraceful shutdown,
possibly due to running multiple services in one container.

Change-Id: I131ab3c0e850a1d7f5c814ab65385e3a03dfcc74
Implements: blueprint bifrost-upgrade
Closes-Bug: #1834332
2019-07-02 14:30:14 +01:00
Mark Goddard
b123bf6621 Use become for all docker tasks
Many tasks that use Docker have become specified already, but
not all. This change ensures all tasks that use the following
modules have become:

* kolla_docker
* kolla_ceph_keyring
* kolla_toolbox
* kolla_container_facts

It also adds become for 'command' tasks that use docker CLI.

Change-Id: I4a5ebcedaccb9261dbc958ec67e8077d7980e496
2019-06-06 19:04:58 +01:00
Mark Goddard
33564a0097 Remove RabbitMQ support from Bifrost
During the Train cycle, Bifrost switched to using JSON-RPC by default
for Ironic's internal communication [1], avoiding the need to install
RabbitMQ. This simplifies things, so we may as well remove our custom
configuration of RabbitMQ.

[1] https://review.openstack.org/645093

Change-Id: I3107349530aa753d68fd59baaf13eb7dd5485ae6
2019-04-10 11:30:50 +01:00
Eduardo Gonzalez
1a682fab28 Support stop specific containers
With this change, an operator may be able to stop a
service container without stopping all services in a host.
This change is the starting point to start
fast-forward upgrades support.
In next changes new flags will be introducced to disable
stop dataplane services during upgrades.

Change-Id: Ifde7a39d7d8596ef0d7405ecf1ac1d49a459d9ef
Implements: blueprint support-stop-containers
2018-11-26 08:07:01 +00:00
Christian Berendt
6df1b20618 Add missing project_name variables
Change-Id: I0cbc51eedb218f6b2f7d5c50372ad7a8be9bdcc0
2018-10-24 13:52:07 +02:00
Mark Goddard
e13815c7b0 Stabilise Bifrost CI job
The Bifrost CI job seems quite unstable, often failing while attempting
to reach the public epel package repositories. We shouldn't need to
install any packages when deploying the container - they should all have
been installed in the image already.

This change avoids running the scripts/env-setup.sh script, which is run
when the container image is built.

It also removes sourcing of /opt/stack/ansible/hacking/env-setup, which
is now just a stub.

Change-Id: I1786e5337a397cb7b427d6b87c21eaee600af170
2018-08-02 14:56:55 +01:00
Zuul
3e45b2cbec Merge "Use include_tasks instead of include" 2018-07-27 08:16:08 +00:00
Jeffrey Zhang
b51eeed89e Use include_tasks instead of include
include is marked as deprecated since ansible 2.4[0]

[0] https://docs.ansible.com/ansible/2.4/include_module.html#deprecated

Co-Authored-By: confi-surya <singh.surya64mnnit@gmail.com>
Change-Id: Ic9d71e1865d1c728890625aeddf424a5734c0a8a
2018-07-25 23:57:22 +08:00
Mark Goddard
e78f823110 Bifrost: set TFTP cache master path properly
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.

This change uses the new bifrost config variable,
ironic_tftp_master_path added in [1] to configure the path, rather than
the existing hacked approach of modifying the ironic.conf config file
after the bifrost_deploy container has started.

[1] https://review.openstack.org/#/c/577071

Change-Id: I5c62999c4956bebd0d3920d756ce67ba194b0ebe
2018-07-10 15:07:23 +01:00
Ha Manh Dong
30be04ea91 Specify 'become' for all tasks that use kolla_docker module
Add become to all tasks that use the module "kolla_docker"

Change-Id: I4309c4011687b88ec31d739fd8f834fe2326ff10
Partial-Implements: blueprint ansible-specific-task-become
2018-06-08 12:39:24 +00:00
Jeffrey Zhang
c567055176 Fix ansible warning
- rename action and serial to kolla_ansible and kolla_serial
- use become instead of "sudo <command>" in shell
- Remove quota for failed_when and changed_when in rabbitmq tasks

Change-Id: I78cb60168aaa40bb6439198283546b7faf33917c
Implements: blueprint migrate-to-ansible-2-2-0
2018-05-11 02:54:02 +00:00
Mark Goddard
746a2e0900 Fix rabbitmq-env.conf ownership in bifrost
The permissions of rabbitmq-env.conf for bifrost were changed in
I6e32d94d4172dd96d09d8609e8a5221ab5586a31 to 0660. This breaks bifrost
deployment, as the rabbitmq user is no longer able to read the
root-owned file on startup.

This commit changes the ownership of the file in the container to
rabbitmq:rabbitmq after it has been copied.

Change-Id: I53418f5d4e40b7ca57e546e2e92a57f613fd381e
Closes-Bug: #1766196
2018-04-23 09:59:54 +01:00
Eduardo Gonzalez
ea1a1dee0d Verify YAML syntax in gates
This patchset implements yamllint test to all *.yml
files.

Also fixes syntax errors to make jobs to pass.

Change-Id: I3186adf9835b4d0cada272d156b17d1bc9c2b799
2018-03-26 17:56:22 +02:00
Zuul
ee00e3eeb3 Merge "Use www-data user for bifrost nginx log directory" 2018-03-13 08:24:31 +00:00
Zuul
e160734abc Merge "Workaround for Bifrost being unable to write to /etc/hosts" 2018-03-13 08:24:23 +00:00
Zuul
3b27a9fe20 Merge "Don't set mysql_service_name for bifrost" 2018-03-13 08:21:19 +00:00
Duong Ha-Quang
9965cc46ff Specify 'become' for only neccesary tasks (all other roles)
Add become to only neccesary tasks in roles:

- aodh
- barbican
- bifrost
- ceilometer
- ceph
- chrony
- cinder
- cloudkitty
- collectd
- congress
- designate
- elasticsearch
- etcd
- freezer
- gnocchi
- grafana
- influxdb
- ironic
- iscsi
- karbor
- kibana
- kuryr
- magnum
- manila
- mistral
- mongodb
- multipathd
- murano
- octavia
- panko
- qdrouterd
- rally
- sahara
- searchlight
- senlin
- skydive
- solum
- swift
- swift
- tacker
- telegraf
- tempest
- trove
- vmtp
- watcher
- zun

Change-Id: I6e32d94d4172dd96d09d8609e8a5221ab5586a31
Partial-Implements: blueprint ansible-specific-task-become
2018-03-12 09:37:43 +07:00
Mark Goddard
2f8c9f83fa Use www-data user for bifrost nginx log directory
Bifrost uses the www-data user for nginx on debian/ubuntu, and nginx on
other platforms. Kolla-ansible currently uses the nginx user for all
platforms when creating a log directory. This change uses the www-data
user on debian/ubuntu when setting ownership of the bifrost nginx log
directory.

Change-Id: I142a158b6f2e8f8a46b684267f6fbb2a6e22a259
Closes-Bug: #1753750
2018-03-06 13:25:16 +00:00
Mark Goddard
376c607f37 Workaround for Bifrost being unable to write to /etc/hosts
Bifrost cannot modify /etc/hosts from within a container, so add a
host entry during bootstrap.

This was previously fixed by Ied378b4dd755788e75ad1814cecb5700732ba83e
but the logic in bifrost was changed [1], making it out of sync with
kolla-ansible, and triggering a write to /etc/hosts. This change applies
the new logic in bifrost to kolla-ansible, ensuring that the file will
not need to change in the container.

Longer term we should look at ways to make bifrost less eager to modify
/etc/hosts, accepting any file that will work for RabbitMQ.

[1]
60b9a9917e

Change-Id: I0ee05feae3630435b2ec52cfeddf33647a974ee0
Closes-Bug: #1661009
2018-03-05 18:34:20 +00:00
Mark Goddard
6b1ef3ffcb Don't set mysql_service_name for bifrost
Bifrost will determine the name of the service for MySQL based on the OS
distro if mysql_service_name is not set. Setting it explicitly in
extra-vars was causing problems on systems that use mariadb.

Change-Id: I892b1c9cf636b9dfc1bacc92e1e2f0d066018260
Closes-Bug: #1753522
2018-03-05 16:00:55 +00:00
Zuul
589c5dec4c Merge "Workaround for Bifrost being unable to write to /etc/hosts" 2018-02-15 12:13:03 +00:00
Mark Goddard
2f25d43566 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
2017-12-30 12:45:43 +00:00
Mark Goddard
bf8eb4809a Mount kolla_logs volume in bifrost_deploy
Using a kolla_logs volume ensures that logs are persistent beyond the
lifespan of the bifrost_deploy container. This is necessary to support
upgrading the bifrost services. It also opens the possibility of log
forwarding, although we do not currently deploy a fluentd container on
the bifrost host.

Change-Id: If3118cd75ccc87b0d003d5f382695aeaa43ed0f8
Partially-implements: blueprint bifrost-upgrade
2017-12-30 12:31:38 +00:00
Mark Goddard
19d4913c45 Workaround for Bifrost being unable to write to /etc/hosts
Bifrost cannot modify /etc/hosts from within a container, so add a
host entry during bootstrap.

Change-Id: Ied378b4dd755788e75ad1814cecb5700732ba83e
Closes-Bug: #1661009
2017-12-21 10:42:06 +00:00
Dai Dang Van
a02e597e58 Mixing binary and source images for A* and B* projects
In case Kolla's users want to deploy with both of
binary and source image, we should have a variable
install type that define install type for each project.

We also add specific image tag for each Openstack project.

This commit is implemented for Aodh, Barbican and Bifrost projects.

Change-Id: I926c9631c860b527941c40addc68896dd27bd1cc
Implements: blueprint mixing-binary-and-source-image
2017-06-02 17:13:44 +07:00
zhuzeyu
a308a2c409 Remove the variable redefined in deploy-servers.yml
The 'ansible_python_interpreter' has already defined in /etc/bifrost/bifrost.yml
we should remove the redundant variable

Change-Id: Ie799170d3318a731d31e1f39bcf940a1b220bd53
2017-04-12 15:53:36 +08:00
Jenkins
9d0daa015a Merge "Enable sanity checks from kolla-ansible" 2017-03-09 17:31:51 +00:00
Paul Bourke
5418ada148 Enable sanity checks from kolla-ansible
Add a new subcommand 'check' to kolla-ansible, used to run the
smoke/sanity checks.

Add stub files to all services that don't currently have checks.

Change-Id: I9f661c5fc51fd5b9b266f23f6c524884613dee48
Partially-implements: blueprint sanity-check-container
2017-03-09 10:37:06 +00:00
Mark Goddard
e6b9249556 Use correct inventory file for Bifrost
Bifrost now targets the play in the install.yml playbook at the
target Ansible group instead of localhost.

This change uses the target inventory file to pick up this group
and avoid a 'noop' playbook.

Change-Id: I850993c9d824b59cfb1eec0d8286098d021d4d5f
Closes-Bug: #1665415
2017-02-16 18:34:56 +00:00
Sayantani Goswami
2c76dd4a26 Fix RabbitMQ server error in bifrost
Update playbooks to ensure rabbitMQ server starts successfully in the
bifrost container.

Change-Id: I73e3d7f2b50221aeff75576d594f64abcea2d43b
Closes-Bug: #1658768
2017-01-26 00:45:36 +00:00
Sayantani Goswami
af199e71fe Fix bootstrap.yml in Bifrost
The bootstrap.yml playbook attempts to source
/opt/stack/ansible/hacking/env-setup and fails because no such file
exists (ansible is not installed in the location /opt/stack/). This step
is not required since the command bash ./scripts/env-setup.sh does not
install ansible from source in the Bifrost container as ansible is
already installed in the base image used by the Bifrost container.

Change-Id: Ibc26b4b77866127e7b57a30d80cd15734dedd85d
Closes-Bug: #1658741
2017-01-24 20:55:51 +00:00
Jenkins
b7bac2fba0 Merge "Add upgrade.yml for bifrost" 2016-11-06 06:45:19 +00:00
Jenkins
9277210734 Merge "Add reconfigure.yml for bifrost" 2016-11-06 05:18:49 +00:00