User can use custom directory for nova instance.
For example using a shared file system as backend.
Change-Id: I11fe4891719a2e2a34888d8b798df5602e294e4f
To destroy a kolla-ansible environment a confirmation string should be passed
along with kolla-ansible command: kolla-ansible destroy -i ~/multinode \
--yes-i-really-really-mean-it
However, this string is not evaluated right and just putting --y starts destroy
process: ./kolla-ansible destroy -i ~/multinode --y
Change-Id: I5983f9c7fd3859d60741dfd23ad10dfd91872eeb
Closes-Bug: #1701313
Deploys a bifrost container using kolla-ansible bifrost-deploy.
IPA and disk images are downloaded rather than built to improve
reliability.
Currently only minimal testing of the deployment is performed, creating
and deleting an ironic node. Ideally we would perform a bare metal node
deployment.
The job is based on CentOS, as Ubuntu bifrost deployment is currently
failing with a python-MySQLdb error.
Change-Id: Ic45094594c21116b5b0d6a606f568fc7954175e3
When running the kolla-ansible destroy playbook most of the files
under /etc/kolla are cleaned up. This change will cause the
clean-up to skip the kolla-cli related directories. When running
the deployment code in a container or a separate VM this is not
an issue, but when doing an all-in-one or running the deployment
process from one of the systems being deployed onto it would have
previously destroyed the kolla-cli inventory and any generated
certificates used for TLS.
Change-Id: Icd62e177964b8fb31052131785c6d7b138975a28
- 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
This patch enforces the removal of the container
network namespace when the environment is destroyed.
Closes-Bug: #1769651
Change-Id: I9b0bbbb5a59e6067a745635c555051ef97b79f9a
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@linaro.org>
the /etc/kolla/adminrc.sh should be export before
init vpn script, this ps to add test for credentials
set to avoid it missing.
Change-Id: Ib849d5f5804221c507c2466f2f08179340188c24
openstack cli now supports --network foo rather than having to find the
network uuid. Thanks to mgoddard for the tip.
Change-Id: I9ce94a86c6950b81ef3ec70fe10ee565cc1f1171
This patchset implements yamllint test to all *.yml
files.
Also fixes syntax errors to make jobs to pass.
Change-Id: I3186adf9835b4d0cada272d156b17d1bc9c2b799
- Ceph images are not being built when using depends-on a kolla build
job.
- Sync inventory files with current ones which causes ceph to fail due
missing groups.
- Small corrections in ceph config.yml syntax.
- fix preparse the disk only once
- enable ceph nfs only when enable_ceph_nfs is true
Co-Authored-By: Jeffrey Zhang <zhang.lei.fly@gmail.com>
Change-Id: Id0c7963bf59e2af4944834dcd16589a638e78ba5
Adding translate, new line in for loop /etc/default/ovs-dpdkctl.conf
Removed '' around pci_whitelist args for DPDK. When multiple entries
present vswitchd does not start.
Closes-bug: #1718240
Change-Id: I8196d56fe78e9ec1a0504059b98bcb9d1ee33f76
- Horizon
This will copy only yaml or json policy file if they exist.
Change-Id: Ib8875ca54dc9dc69abc8338413f7724d9d4ecc45
Implements: blueprint support-custom-policy-yaml
Co-authored-By: Duong Ha-Quang <duonghq@vn.fujitsu.com>
Nodepool nodes saves the cirros image in /opt/cache/files/, we can make
use of it to save some time and remove an external dependency on the
cirros website.
Change-Id: I81b431d8659b1da8b36d660f2a8f1cfa42461a14
Before cleanup containers and hosts, it should be ensure the
docker serivce running but the destroy action missing it,
this patch to fix it
Change-Id: I85ca806c1fd395daf937b585d466e16fbad4e20c
Closes-Bug: #1741852
Currently init-runonce script changes directory to the
script's base directory (/usr/...) before doing anything else.
This unnecessarily _forces_ a non-root user to use sudo for
running this script thereby raising privileges for code which
doesn't want it. Also downloading temporary stuff in places like
/usr... seems not a good choice.
Hence deleting the said code part and letting the deployer work
comfortably from any directory.
Made documentation changes accordingly.
Change-Id: Ib3c7ed97aa5f53c115b6337aaf572b5fdc7a71f3
Closes-Bug: #1732963
Add become to only neccesary tasks in roles:
- glance
- heat
- horizon
- keystone
- neutron
- nova
- openvswitch
Gate is also updated to use 'become' feature
Change-Id: I2f3f27306e9f384148e1ad4d54d8da2ebef34d00
Partial-Implements: blueprint ansible-specific-task-become
- move check container failure from post.yml to run.yml
- add binary related jobs
- use static kolla-ansible src dir, which is helpful for kolla project
to use.
- generate correct /etc/hosts by using private ip address and hostname
- fix the wrong api interface in global.yml file
Change-Id: Idfdee6dfe18f0fa2d4f984df59b57553122ce298
This allows for skipping tasks which match the provided tags, using
the ansible-playbook argument of the same name.
This can be useful in combination with --tags, to skip reconfiguration
of the common tasks:
kolla-ansible reconfigure --tags nova --skip-tags common
Change-Id: I766552f7ae4099da3d174759f4a609ffe8b4d89f
This patch includes three unrelated fixes.
Make qemu use nova user in centos
Libvirt 3.2.0 (latest version in centos) seems to
have changed behavior of dynamic_ownership.
Pin ansible to <2.4 to make ara work in gates
ARA does not work yet with ansible 2.4, this change
pins to lower version to make gates work.
Revert once ara works with 2.4
Disable selinux for oraclelinux and centos.
Co-Authored-By: wanghongxu <wang19930902@gmail.com>
Co-Authored-By: Jeffrey Zhang <jeffrey.zhang@99cloud.net>
Change-Id: Iac8bec19437192cd198d58f71c6ed0a65a76f820
Closes-bug: #1718541
Sometimes gates fails due lack of disk space,
This change mounts a second disk in opt and moves
registry data to opt.
Disk format commands are excepts from devstack-gate:
dc49f9e6eb/functions.sh (L306)
Change-Id: I606aa491b8cbf678e83281bad1a0ff39d3920ff2
Closes-Bug: #1713652
- This change creates a new role to
support deploying ovs with dpdk.
- This change introduces an enable_ovs_dpdk
variable to enable ovs with dpdk as part of
the deploy action.
- This change extends the ovs-dpdkctl.sh tool
to correctly deploy ovs-dpdk on Ubuntu and CentOS
hosts.
- This change extends the cleanup-host tool
to correctly uninstall ovs-dpdkctl.sh tool and its
systemd files if present on the host.
- This change automatically configures userspace
kernel drivers.
partial-implementes: bp/ovs-dpdk
Change-Id: I55858d81df437e8258705b75426f61ab9b907c7d
Remove the hardcoded callback path with python2.7 and use the
virtualenv python to determine the path where ARA is installed so
that no matter if we're running py2 or py3, it will work.
Change-Id: Ica0b94aeebabaeca8416a9768fadd12d3925e7b2
Ironic inspector should honour the Ansible inventory group
ironic-inspector. Ironic inspector may not be required at all. If
Ironic inspector is required then it should only run on a single
node, and this should be reflected by the inventory.
This change makes a number of Ironic inspector-related tasks dependent
upon the host's membership of the ironic-inspector group. Also, we
couple the ironic-dnsmasq container with the ironic-inspector group
rather than ironic-conductor, as the service is for inspector rather
than Ironic.
Change-Id: Ifd90753b0fe1a55c11b7723c28e1d14ab3d32737
Closes-Bug: #1665257
Lately, after we increased number of jobs, infra started to experience
network traffic issues due to us downloading registries. This
per-nodepool cache should help and also speed up actual gate.
Change-Id: I621a9c91e4508ef208a28137a736fd8468388219
Depends-On: I527d32f9b43dabb7640bfb056e2bf828b7c1dfa9
The pypi package 'docker-py' [1] has been renamed to 'docker' [2].
It is better to move to the new 'docker' package because the old
package will be deprecated and all the new features will go into
the new package only.
Package 'docker' has been added to requirements [3]. The old
package 'docker-py' is still allowed to be in the global requirements
during the transition period but it should be removed after all or
most of the projects finsih the migration.
[1] https://pypi.python.org/pypi/docker-py
[2] https://pypi.python.org/pypi/docker
[3] https://review.openstack.org/#/c/423715/
Change-Id: Ibcd5a57a1fbf55dcc5a690e41f20917f95b63da0
When cleanup-images is launch without parameters the following error is
triggered:
./cleanup-images: line 72: break: only meaningful in a `for', `while',
or `until' loop
This patch fix it.
Change-Id: Ie8c63420a4e9b0d49a4e6be4172c8f0be912b556
Closes-Bug: #1702496
When using depends-on, gates will not build cinder
and ceph images, causing ceph deploy gates to fail.
Change-Id: I441c742251754db27374331f774041c214678eba
First non-trivial scenario we'll be testing in gates will be cinder +
ceph. This patchset is supposed to create framework to easily add new
testing scenarios.
Change-Id: I6790eaf5cf3297af04a64e4169a39b6e2cd1890f
Add a new variable 'kolla_devmode', which when enabled, clones and
bindmounts service source code into the containers.
This commit adds the relevant changes for Heat, more services can be
added and built upon.
Usage:
* Set 'kolla_devmode: yes'
* Code is cloned to /opt/stack/{{ project_name }} on target
node(s)
* Users can develop in these repos, and simply restart the container to
pick up / test changes.
Debugging can be done from the host via 'remote_pdb'[0].
[0] https://pypi.python.org/pypi/remote-pdb
Implements: blueprint mount-sources
Change-Id: Ic0431b10d723bf84eeefc72039376fe0058dd902
This patches changes deploy_gate quite a bit so in reality all
deployments will now assume multinode (even if it's single node). After
that we will refactor it even further to enable easy addition of new
scenerios.
Change-Id: I1faada46e6a7aa026128b2f01d77eabb04759439
This seems to have got lost during repo split. Adding it back in now.
Change-Id: Ic0b0f5efb12eab58e7872b30611a39640dc44cc2
Closes-Bug: #1629224
(cherry picked from commit e1a2f99014a1aeb3697e8ec3c999cdc12380376b)
- when run tools/cleanup-containers mariadb, the mariadb volume remove
failed, because the "volumes_to_remove" can't catch the mariadb
volume, this patch to fix it.
- remove the unnecessary "()"
more test infomation, see http://paste.openstack.org/show/603359/
Closes-Bug: #1674207
Change-Id: I82f5922fcc84d222f74d2551a2c697bf78136a2d
Currently we omit the os_distro property when uploading the
cirros image to glance. Nova assumes it to need vfat disk
incase the image is Windows.
This change sets the property to "linux" causing ext4 to be
used instead.
TrivialFix
Change-Id: I3fdb71f5be7702a2dc223946fae82131c6c46154
Signed-off-by: Dave Walker (Daviey) <email@daviey.com>
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
Run playbooks in serial are unnecessary and may cause some issue. This
patch disables serial.
This patch also removes the serial for MariaDB playbook. MariaDB handle
this internally.
Partial-Bug: #1668185
Change-Id: I3b4216dd82607475e9bd9b44590b631be4abdbdd
The newest version of ARA, 0.11, deprecated "ara generate" in favor
of "ara generate html". "ara generate" will be removed sometime in
the future so let's adjust it right away.
Change-Id: I31bff0a7e130c329da44b46506f5b12fa8d6deb8
Closes-Bug: #1665746
There is inconsistent use of either `/usr/bin/python` or
`/usr/bin/env python`. This makes for unexpected results when a
user might be using a virtualenv.
Change-Id: Ibb030f920a8869f9113ade70b66a921cc815060d
Currently it is not possible to use kolla-ansible when it has been
installed in a virtualenv. Virtualenv-based installation may be
desirable when a suitable system package (e.g. RPM, .deb) is not
available, as it allows the user to install kolla-ansible and its
dependencies without affecting the system-wide packages.
This change checks for the presence of the $VIRTUAL_ENV environment
variable to determine whether we are running in an virtualenv. Since
kolla-ansible is not a python script, this comes with the caveat that we
must source the virtualenv activation script ($VIRTUAL_ENV/bin/activate)
before executing kolla-ansible.
Change-Id: I19efb96605bee3b16df3a0b78cd681e5f15499f6
Closes-Bug: #1530319
In commit 177fbea79a the project
was renamed to kolla-ansible, and this broke the BASEDIR
in the kolla-ansible wrapper.
Closes-bug: #1665262
Change-Id: I89fe15e5723f39f453a8173f7ced3f623a8bccc5
Ansible use jinja2 < 2.9, but requirements/upper-constraints.txt
requires jinja2===2.9.5. Installing ansible shouldn't use upper
constraints provides by OpenStack.
Change-Id: Ib37e8d06373a61959b41b8737085d5f001650e42
When using init-runonce script multiple default
security groups are present and raise error:
More than one security_group exists with the name 'default'.
Add a check to create rules to admin's default sec group.
Change-Id: Iaf93467d70ae41fdbcd2b37d6c5639a32d939394
- This change introduces a new tool for configuring
host interfaces for use with ovs and dpdk.
- The ovs-dpdkctl tool will be executed via systemd
when a system first boots to bind interfaces to
dpdk compaible drivers.
- The ovs-dpdkctl tool will be injected into the
ovsdb container to allow external configuration of
ovs bridges and ports for use with dpdk.
Change-Id: Ie8f32d097f0a6816c2ddd03ade926c00837da322
Pull images from tarballs.openstack.org site[0] when there is no
Depends-On in current commit message.
[0] http://tarballs.openstack.org/kolla/images/
Change-Id: I2e5d4d7ed6418624494121e0a530ec95fd045970
kolla-ansible destroy properly fails if qemu processes
are running in compute nodes.
Manually executing ./cleanup-container won't because
$COMPUTE variable is not defined anywhere.
Change-Id: I304c59ec682a93035e631490bbba7b355b1fcae2
Closes-Bug: #1656864
Move ovs-cleanup step to cleanup-containers,
otherwise bridges will not be removed because neutron_openvswitch_agent
container does not exists after running cleanup-containers.
Add logic to cleanup ovs bridges only when openvswitch_db
is removed and openvswitch-agent is running,
so when removing other container from a parameter at script
invocation ovs-cleanup will not be executed.
Change-Id: Ie5fea40426df0e9e465fc173aba185f61098f676
Closes-Bug: #1640178
With 4.4 kernel we can use the improved overlay2 driver instead of
btrfs for significantly better performance when creating layers.
Change-Id: I0b84a2b34fdb71c07798d94b546d3105a2742321
Related-Id: I3b0dfd6db5298dfb34ec160eed910ca76feeb423
Read EXTRA_OPTS from env make it possible that using arbitrary
ansible-playbook parameters in kolla-ansible script. like
EXTRA_OPTS='--limit control' kolla-ansible deploy
Change-Id: I10e0dafb6138d91facdb66a2f487cdeca4689c28
OpenStack requirements constrains is well tested. Use it in case of
installing upstream broken package.
This also fixes latest requests 2.12.2 break docker-py, which makes
kolla gate red.
Change-Id: I3e4ec4af2a6e1280313733e8f31f2eea7669dbc1
Updates cleanup-containers to disclude lines related to
dom0 qemu processes.
Change-Id: I0b71ed29b9a2f239ebfdaa66b7cbe41eeaf2773c
Partially-Implements: blueprint xen-hypervisor-support
Behavior of stop playbook is very similar to the destroy
playbook. This is meant when you may just want to bring down
the service for some sort of maintenance but not destroy all
the associated data. Also added support for the new playbook
into the kolla-ansible command.
Change-Id: Icf0ca91de71dc8ead3a024de3e5b9e49116560d1
Implements: blueprint ansible-stop-host-playbook
* Build kolla image by using kolla project's code
* bump openstack_release to 4.0.0
* Remove tox deploy related env, it is useless now.
Depends-On: I132ee005bce993cbadf411697817c2e95548dc81
Change-Id: Id899eb39d476b95130fbeb43adf4fd49ef32be32
All json file in Kolla are json.j2 file, it shold be render as jinja
template, then validate by using json.
Change-Id: Ibabbe435116fd255d68347e00407156db76fedfe
Closes-Bug: #1634447
ARA 0.9.2 was released which deprecates the previous callback location
in favor of a new one. The deprecated location still works but let's
move to the new one right away.
Change-Id: I8a10d5855ab6f813e52cc6efce5bcfe91d9c3f92
The next release of ARA (0.10.0) contains a change to the callback
plugin location that /should/ be backwards compatible but let's
control the update to the newer version to be safe and avoid
breaking the gate needlessly.
Change-Id: I32176166e8ebcbfdf0baa8bd7ec30e5ec6d795a5
The gate jobs are using Xenial as the base OS so it seems we should be
using the same non-infra repos as our base image.
TrivialFix
Change-Id: I6e5d27364054c474c16120a3195cae819861c8a1
We bumped the Kibana version from 4.4 to 4.6 with
Ia18cb89e0951359226add5cbd96d3a91c7fcfd8a. This version should be
used on the gates as well.
Change-Id: I21ccac9a12e4b604d3cf336c6263f2e4cd925524
Closes-bug: #1634049
Consistently set the search path to prefer PROJECT_ROOT as the source
of packages to import if we are using local tools instead of pip
installed kolla tools.
TrivialFix
Change-Id: Idd1d98bb82a8f1ddb32d1bdb23f346b461534b9f
Currently, when there are some qemu processes which may be some useful
virtual machines running by the operator running on non compute node, the
cleanup script will fail the cleanup operation for that node. We need to
ignore the qemu process check for non compute nodes.
Change-Id: If49a1a30764063935b2a65312de8f3b2357c7fbc
Closes-bug: 1633005
When all mariadb nodes are stopped gracefully, mariadb galera will
write it's last executed position into the grastate.dat file. Need find
the node with largest seqno number in that file and recovery from that
node.
Closes-Bug: #1627717
Change-Id: I6e97c190eec99c966bffde0698f783e519ba14bd
* use become instead of sudo
* use file instead of shell to change file modes
* rename setup_nodes.yml to playbook-setup-nodes.yml
Change-Id: I69eda1f034b97d13be76efc91458b6d762c76baf
* add serial for reconfigure
* set playbook serial by using variable
* fix serial for barbican, influxdb and vmtp
Closes-Bug: #1624607
Change-Id: I66530c7736e1673a592eddbde75637825d12d9e2
When run tools/init-runonce without some client installed,it's
retrun not friendly and confuse people,such as user does not
install python-openstackclient, it will return "openstack not
installed".This patch update it.
Use "type" command to avoid "which"
TrivialFix
Change-Id: I53789a767b3a2727bf2cb848c2881272e313e14c
- One of the usecase supported by tools/cleanup-containers
was the ablity to remove container with a regex so that
you could redepoloy just that single componet.
- By cleaning up ovs in cleanup-containers that is nolonger
possible.
- This change move the cleanup of ovs from,
tools/cleanup-contianers to tools/cleanup-hosts
TrivialFix
Change-Id: If2001130f4a2400555ce4d9ac5ee506482e4c25e
In some part in the code we import objects. In the Openstack style
guidelines they recommend to import only modules.
http://docs.openstack.org/developer/hacking/#imports
Change-Id: I4b55cae8c2672f82025a95112b14d441d66f9d6d
This patch changes version of ceph from hammer to jewel. Also removed
versionlock as it seems we don't use it in ubuntu, and actually might be
risky if we miss security patch on ceph.
Change-Id: Ib8f88c2f914a4b635e59a509fa0194605eb73165
Implements: blueprint upgrade-ceph-to-jewel
After cleaning hosts by using tools/cleanup_host, some of the ovs bridge
devices such as ovs-system still exist. This will result in
{{neutron_external_interface}} not working properly because it had been
added to the ovs-system bridge. The solution is calling
neutron-ovs-cleanup script in neutron_openvswitch_agent container before
removing it.
TrivialFix
Change-Id: Ib3b096d842f2210b8bd223892a3492ef2fcf7c52
Signed-off-by: luyao <lu.yao135@zte.com.cn>
Change the argument for including images as part of destroy from '-e
destroy_include_images=yes' to a more consistent --include-images.
TrivialFix
Change-Id: I0a29c69121697cab751578093cc7ca58011eb853
use different a docker namespace name in case it pull image from
hub.docker.io when deplying in gate
TrivialFix
Change-Id: I643000e5d9e597a254a4f12c0c10186d4eb20429
Signed-off-by: Jeffrey Zhang <zhang.lei.fly@gmail.com>