127 Commits

Author SHA1 Message Date
mail2nadeem92
4b39d056ad Added Ansible playbook for congress deploy
Change-Id: Id04fe7a8f30ed0dae292933662036f4775e394a2
Partially-Implements: blueprint enable-congress-container
2016-09-01 10:43:03 +05:30
Jenkins
3fa38c80c5 Merge "generate bifrost yaml configs" 2016-08-31 15:30:23 +00:00
Jenkins
730086bfd1 Merge "Add option to support dhcp/l3 agent ha" 2016-08-31 13:44:13 +00:00
Sean Mooney
d7dfae75b2 generate bifrost yaml configs
- This change indroduces a merge_yaml action_plugin
- This change generates bifrost yaml configs.

Change-Id: I9814e6a5d55cbd46c4b60c06ed70ed54a575bd2f
Implements: blueprint bifrost-support
2016-08-31 13:06:41 +00:00
Jenkins
b29357e70c Merge "Add aodh role" 2016-08-31 12:52:58 +00:00
Jenkins
76f94f8d18 Merge "Add a check before wiping Ceph disks in bootstrap" 2016-08-31 09:15:19 +00:00
liyingjun
c5668bd50a Add option to support dhcp/l3 agent ha
New option enable_neutron_agent_ha added to enable/disable dhcp/l3 agent
high availability, dhcp_agents_per_network is default to 2 and it's
configurable.

Implement blueprint: support-network-ha

Change-Id: Id4742aa67c80584634b923195545bf2b654172f3
2016-08-31 16:31:07 +08:00
zhubingbing
7ce05f9782 Add aodh role
Partially-Implements: blueprint ansible-aodh

Change-Id: I9e20f4bf5e7d8f37f243ae15746e2b7bb49eb20c
2016-08-31 03:54:35 +00:00
Jenkins
b17027564c Merge "Add defaults for interfaces to all.yml" 2016-08-30 22:26:10 +00:00
Paul Bourke
ec40ed3cbb Add a check before wiping Ceph disks in bootstrap
An unwitting user may apply the KOLLA_CEPH_OSD[_CACHE]_BOOTSTRAP label
to a partition assuming it will only use that partition for Ceph, and
end up wiping out their disk.

This change adds a layer of checking to this scenario to try and help
avoid a disaster scenario.

Closes-Bug: 1599103
DocImpact

Change-Id: Ibb9fb42f87a76bc02165ec0b93b60234bad8747a
2016-08-29 14:34:01 +01:00
Shaun Smekel
1c68ae389b Add full support for fernet
This addresses the ansible aspects of fernet key bootstrapping as
well as distributed key rotation.

- Bootstrapping is handled in the same way as keystone bootstrap.
- A new keystone-fernet and keystone-ssh container is created to allow
  the nodes to communicate with each other (taken from nova-ssh).
- The keystone-fernet is a keystone container with crontab installed.
  This will handle key rotations through keystone-manage and trigger
  an rsync to push new tokens to other nodes.
- Key rotation is setup to be balanced across the keystone nodes using
  a round-robbin style. This ensures that any node failures will not
  stop the keys from rotating. This is configured by a desired token
  expiration time which then determines the cron scheduling for each
  node as well as the number of fernet tokens in rotation.
- Ability for recovered node to resync with the cluster. When a node
  starts it will run sanity checks to ensure that its fernet tokens
  are not stale. If they are it will rsync with other nodes to ensure
  its tokens are up to date.

The Docker component is implemented in:
  https://review.openstack.org/#/c/349366

Change-Id: I15052c25a1d1149d364236f10ced2e2346119738
Implements: blueprint keystone-fernet-token
2016-08-25 20:08:22 +10:00
Paul Bourke
158a852998 Add defaults for interfaces to all.yml
The values for 'network_interface' and 'neutron_external_interface' are
missing from all.yml, meaning it is impossible to override them on a per
node / per group basis. (globals.yml get's top precedence).

Make these consistent with the rest of the variables and move the
defaults into all.yml. Operators can still override / update these in
globals.yml as before, but those wanting more flexibility now have it
via host / group variables.

Change-Id: I2575921f76a8e245106da765757c70353bd6762c
Closes-Bug: #1604129
2016-08-24 14:45:14 +00:00
Jeffrey Zhang
3d6344d800 Move the keystone_*_url variable from common role to group vars
keystone_*_url are cross role variables. They are used in multi roles.
Move them from the common role to the group vars

TrivialFix

Change-Id: If451823ed7612bfec7bc797ec9dd2597164c6804
2016-08-17 16:53:40 +08:00
Ken Wronkiewicz
cc4150292c Fix intf address for RabbitMQ and disable cluster for Kube
enable_rabbitmq_cluster is now a "yes" by default but you can set it
to "no" if you want to disable clustering under any circumstances.

The agreement made at OpenStack in Austin was that Kolla-Kubernetes
would concentrate on RabbitMQ and MariaDB without clustering but
with persistent storage and workload migration, then examine how to
do proper distributed functionality as the project progresses, so I
am just following what we'd already agreed upon.

First, it helps us deal with issues of version upgrades without
dealing with clustered version upgrades and the synchronization
thereof.

Second, it provides an alternative model for durability when used in
Kubernetes.  Understand that, if we disable RabbitMQ's clustering,
Kubernetes is still able to re-schedule the queue off of a failed node
in ways that Kolla-Ansible is not.  There are known issues with
RabbitMQ clustering, especially with auto-heal turned on.  For many
small-to-mid-sized clusters, it's going to provide for a better
operator experience to have the known potential for a 30 second blip
after RabbitMQ node failure than it is to have the known potential
for partition and data loss and/or manual operations after you've
turned off auto-heal.

Kolla-kubernetes has already turned off host networking for the
RabbitMQ pod; it's safe to set the interface address in the
Kubernetes context.

The question was asked why don't I just set the RabbitMQ cluster to be
a single instance.  It's unlikely that Kubernetes RabbitMQ with a
PetSet will be clustered in the same declaritive fashion as the
rabbitmq-clusterer plugin. Easier to just disable it and worry about
how to configure the kube-friendly clustered RabbitMQ at a later point
in time.  Furthermore, it's an entirely valid case for many OpenStack
control planes hosted atop Kolla-Kubernetes to accept the possibility
of a 30-60 second blip in lieu of the long and questionable history
of RabbitMQ clustering in production.

Co-authored-by: Ryan Hallisey <rhallise@redhat.com>
Change-Id: I7f0cb22d29a418fce4af8d69f63739859173d746
Partially-implements: blueprint api-interface-bind-address-override
2016-08-10 09:40:54 -04:00
Jenkins
06c93471ae Merge "Simplify the Cinder LVM backend" 2016-08-06 18:18:19 +00:00
Jeffrey Zhang
59b887dfb5 Fix the evaluating conditional for enable es and kibana
Fix the wrong if condition for enable_elasticsearch and
enable_kibana

TrivialFix

Change-Id: I3d649d39b9eafb4526d8919f1cb962f6378815c7
2016-08-05 14:31:28 +08:00
Jenkins
1db534e4d0 Merge "Change workers to be static when using kubernates" 2016-08-05 03:24:09 +00:00
Christian Berendt
4cd95dbcc5 Enable central logging without deploying elasticsearch/kibana
This changed introduces 4 new parameters to be able to use an existing
elasticsearch service for central logging.

* elasticsearch_address - address of elasticsearch server
* elasticsearch_protocol - protocol (HTTP/HTTPS) used by elasticsearch server
* enable_elasticsearch - deploy elasticsearch container
* enable_kibana - deploy kibana container

Closes-bug: #1584861

Change-Id: Ia1ff9ae8b6d9929c3826da02693d1e2fc9ea2522
2016-08-03 21:59:51 +02:00
Jenkins
63d448fe2e Merge "External Ceph - Implementation Nova" 2016-08-03 15:29:36 +00:00
Takeaki Matsumoto
046f739d1b Change workers to be static when using kubernates
When orchestration engine is Kubernates,
ansible_processor_vcpus is not defined.

This patch changes workers to be static when using kubernates

Change-Id: I4d77b2e48ea24c4ca8b86ec5b7e6029c054b247a
Closes-Bug: #1609206
2016-08-03 02:47:59 +00:00
Mathias Ewald
ffafebf87c External Ceph - Implementation Nova
Introduced nova backend selection flag for Ceph and priority if
multiple backends are configured

Add mechanism to deploy arbitrary ceph.conf and keyring files into
nova-compute and nova-libvirt containers

Added documentation

Change-Id: Id010ca9cc2d914e5358ef79edeb600a28220dd4b
Implements: blueprint external-ceph
2016-07-27 20:25:00 +00:00
Jeffrey Zhang
1b0e701402 Simplify the Cinder LVM backend
Remove the unnecessary option in the  group_vars/all.yml file.

* removed some cinder.conf options like volume_backend_name,
  iscsi_helper, iscsi_protocol etc. these value can be configured by
  custom cinder.conf file, no need export as global variables.
* remove meaningless iscsi_ip_addess, which is not used in LVM driver
* force start iscsi relate when enable_cinder_backend_lvm is yes

TrivialFix
Change-Id: Ifcbfdad15e4d68bc5f20fc77e0315a09983ef022
2016-07-25 09:50:12 +08:00
Mathias Ewald
3894883871 External Ceph - Implementation Cinder
This patch adds support for external Ceph clusters for Cinder.

For clean integration the backend configuration mechanism had to be
slightly adjusted.

We now have the option to enable multiple backends for Cinder
independently.

Currently, the flags cinder_backend_iscsi and cinder_backend_ceph are
used to toggle backends.

Documentation on how to use external ceph was added.

Change-Id: I7e0267b90d62d6d881f24f063cdb894422ec8618
Partially-Implements: Blueprint: external-ceph
2016-07-19 12:45:48 +00:00
Jenkins
ef0d8da2cb Merge "TrivialFix:modify the spelling mistakes" 2016-07-15 11:24:10 +00:00
Jing Sun
9aa385a72a TrivialFix:modify the spelling mistakes
Change-Id: Ida7742920051db7120f953a04243e3b03629b975
2016-07-15 16:46:23 +08:00
Mathias Ewald
f16a45180c External Ceph support - Implementation Glance
Most simple implementation of external ceph support.

We use INI merge to configure RBD backend for Glance and copy
ceph.conf and keyring provided by the user into the container.

Set_configs.py had to be extended to support globbing (wildcards) in
order to copy ceph keyring file which is named depending on the cephx
user name.

Partially-Implements Blueprint: external-ceph
Partially-Implements Blueprint: selectable-ceph

Change-Id: Iacadbd8ec9956e9f075206ea03b28f044cb6ffb8
2016-07-14 14:05:34 +00:00
Carlos Cesario
115c55e1fe Add multipathing support to docker container
Due some cinder drivers need multipathing support like this one
http://docs.openstack.org/mitaka/config-reference/block-storage/drivers/ibm-storwize-svc-driver.html

This PS will allow to run these additional drivers when using Kolla.

Implements: blueprint multipath-support
Change-Id: Id6cf29f984c92773bbfc2f95daea573a74701648
2016-07-11 09:07:21 -03:00
Suhail Syed
b8ea99971b Fixed typo in all.yml
TrivialFix

Change-Id: I778437d575458537cc916ed83653836247df0cee
2016-06-30 17:44:10 -04:00
Jenkins
8790492c6b Merge "Update kollaglue repo on docker to kolla" 2016-06-23 15:36:49 +00:00
Jenkins
7f447eb354 Merge "Make Neutron QoS service plugin configurable" 2016-06-20 10:55:01 +00:00
Christian Berendt
a7f93b09bb Make Neutron QoS service plugin configurable
This introduces a new configuration parameter neutron_enable_qos to
be able to enable the Neutron QoS service plugin.

More details about the Neutron QoS service plugin are available at:

http://docs.openstack.org/liberty/networking-guide/adv-config-qos.html

Change-Id: I8525bf4dce5f1e225f72a4e1c3760b64a36b17f6
Closes-bug: #1593183
Implements: bp netowrking-qos
2016-06-18 15:53:12 +00:00
Jenkins
e48f68c82a Merge "Implement ceilometer ansible role" 2016-06-18 04:05:52 +00:00
Hui Kang
4108c6c6ec Implement ceilometer ansible role
Change-Id: I13c50a78b2dc7c98b720a4b2e7161104213bd295
Implements: bp ansible-ceilometer
2016-06-16 22:05:56 -04:00
Christian Berendt
c073b2d897 Remove EC2 API related configurations and tasks
The Nova EC2 API is disabled by default, the default value
of the enabled_apis parameter in nova.conf is "osapi_compute, metadata"
The EC2 API is marked as deprecated and will be removed from Nova in
the future.

Change-Id: I6b9d66017e066cde5749be45b367194d2192ead3
Closes-bug: #1586605
2016-06-16 12:16:07 +02:00
Swapnil Kulkarni (coolsvap)
3f063626a2 Update kollaglue repo on docker to kolla
[1] http://lists.openstack.org/pipermail/openstack-dev/2016-June/097227.html

Change-Id: I73af59dcf1e755dbe0579486f1fb0ebe5ca0119c
Closes-Bug: #1592286
2016-06-14 12:34:34 +05:30
Jeffrey Zhang
fa12f27840 Fix the openstack_release variable in all.yml
In the master branch, we should use 3.0.0 release version

Change-Id: I3b10307c2072c28ea00e26fbbdf6723ebc318f30
2016-06-13 15:07:11 +08:00
mgatien
5fdd2b18cc
adding else statement with empty string
starting ansible 2.X it require a else statement.

Closes-bug: #1588941
Change-Id: I3f12be8de75ddcebf28a077c361a9206b36aafb0
2016-06-03 14:59:05 -04:00
Daneyon Hansen
ba30579b3b Adds Neutron LBaaS Support
Previously, kolla did not support neutron lbaas functionality.
Only Lbaasv2 is supported in Mitaka. Additional information can
be found here:
http://docs.openstack.org/mitaka/networking-guide/adv-config-lbaas.html
Magnum uses Neutron Lbaas to provide high availability to COE API
and Etcd endpoints within a bay. Therefore, Neutron Lbaas is required
for Kolla to support Magnum.

Co-Authored-By: Serguei Bezverkhi <sbezverk@cisco.com>
Partial-Bug: #1551992

Change-Id: I05360b7c447c601fcb3c2b6b2a913ef5cc0f3a1b
2016-05-27 11:41:25 -04:00
Jenkins
6f17a71d7f Merge "add support for non-default database_port in kolla/ansible" 2016-05-26 09:24:56 +00:00
Ryan Hallisey
2da010a7b9 Make configurable the location where config files are merged
An operator may want to specify the location of custom config
files so that kolla can detect their location and merge
them with the default configs generated.

Partially implements: blueprint multi-project-config

Change-Id: Ibfb38d07a36dfa7fe25381adc34cc1d3cbe7d1e1
2016-05-23 03:23:06 -04:00
Ryan Hallisey
c5f686ac43 Generate configuration using ansible for any project
Give outside projects the ability to consume kolla-ansible as a
config generation mechanism by allowing for the developer to define
a directory structure within /etc/kolla that fits a project's needs.

For example, kolla-kubernetes does not define configuration in terms
of serivces, but in terms of pods (groups of services).

Partially implements: blueprint multi-project-config

Change-Id: If08443aefcaf5fa5604b243b39a6a2d54e431cff
2016-05-23 03:15:37 -04:00
Jenkins
fef79059b7 Merge "Adding variables for Cinder iSCSI backend configuration" 2016-05-23 09:52:48 +00:00
weiyu
b071bb22c9 Add a cluster_network interface when we use ceph
Because of the consideration of security and performance, ceph community
recommend the use of two separate network public networks and cluster
networks. refer:
http://docs.ceph.com/docs/master/rados/configuration/network-config-ref/

DocImpact
Closes-Bug: #1582095
Change-Id: I8cb0e14f86c859820fbbb8af8f94ac8155338e13
2016-05-17 14:09:36 +08:00
Waldemar Znoinski
a2c2eba34f add support for non-default database_port in kolla/ansible
This change makes each step of the kolla deployment aware
of the port database was configured to listen on.
It defaults mariadb_port to database_port.

Change-Id: I8e85d5732015afc0a5481cb33e0b629fdfa84a1b
Closes-Bug: #1576151
DocImpact
2016-05-13 12:12:25 +00:00
Serguei Bezverkhi
4150df42e2 Adding variables for Cinder iSCSI backend configuration
This fix adds several variables required for Cinder iSCSI backend
configutation.

Change-Id: I2f709f8589fdbf62e3d0b265452fd58f413bee65
Closes-Bug: #1579800
2016-05-09 11:15:32 -04:00
Serguei Bezverkhi
d553514cb7 Configures swift-rsyncd to use non-default port
This PS configures swift-rsyncd process to use non-default port
from the range above 1024.

Change-Id: I7c37c548a5185a2ffac789383fe012619e401131
Closes-Bug: #1573137
2016-04-21 12:54:30 -04:00
Jenkins
0d87a2372b Merge "Remove node_templates_directory in ansbile variable file" 2016-04-19 09:47:34 +00:00
Jenkins
0078d9b4a1 Merge "Add iscsid/tgtd specific parameters to Kolla infrastructure" 2016-04-15 12:05:39 +00:00
Hui Kang
3a6b65f95f Remove node_templates_directory in ansbile variable file
This variable is not used anymore.

TrivialFix

Change-Id: I1293d75a250370a80d1ac77f754858891cbeef5a
2016-04-13 20:53:36 -04:00
Serguei Bezverkhi
c605d6ca26 Add iscsid/tgtd specific parameters to Kolla infrastructure
This partially implements iscsi and lvm2 support for cinder
in Kolla. Add integration with Kolla infrastructure.

Change-Id: I5b7d59163518080f38aec0c00617440de0763f1d
Implements: blueprint iscsi-lvm2-docker
2016-04-12 14:58:15 -04:00