From cebce0c0209e2a8a3c7a2a4a4e4431b8c16a81fc Mon Sep 17 00:00:00 2001 From: Logan V Date: Sat, 9 Jul 2016 09:30:46 -0500 Subject: [PATCH] Project Calico integration Integrate deployment for Project Calico's Neutron networking plugin. See http://docs.openstack.org/developer/networking-calico/ for more information about Calico. Depends-On: I80546b6deefe0878398716d173b7dcc36c3bef3a Depends-On: I02ba101a3dfdbb34b96a110f429cfa6d1f0e9863 Change-Id: I9e8e855c8aff8822878908ae75f913f0444a7303 --- ansible-role-requirements.yml | 8 +++++ .../defaults/repo_packages/projectcalico.yml | 22 +++++++++++++ playbooks/etcd-install.yml | 31 +++++++++++++++++++ playbooks/os-neutron-install.yml | 5 +++ playbooks/setup-infrastructure.yml | 1 + .../neutron-calico-2332b0972708af8a.yaml | 5 +++ 6 files changed, 72 insertions(+) create mode 100644 playbooks/defaults/repo_packages/projectcalico.yml create mode 100644 playbooks/etcd-install.yml create mode 100644 releasenotes/notes/neutron-calico-2332b0972708af8a.yaml diff --git a/ansible-role-requirements.yml b/ansible-role-requirements.yml index a0adcf4b96..85750e3497 100644 --- a/ansible-role-requirements.yml +++ b/ansible-role-requirements.yml @@ -134,3 +134,11 @@ scm: git src: https://github.com/willshersystems/ansible-sshd version: master +- name: bird + scm: git + src: https://github.com/logan2211/ansible-bird + version: master +- name: etcd + scm: git + src: https://github.com/logan2211/ansible-etcd + version: master diff --git a/playbooks/defaults/repo_packages/projectcalico.yml b/playbooks/defaults/repo_packages/projectcalico.yml new file mode 100644 index 0000000000..c67c6ac14f --- /dev/null +++ b/playbooks/defaults/repo_packages/projectcalico.yml @@ -0,0 +1,22 @@ +--- +# Copyright 2016, Logan Vig +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +calico_git_repo: https://github.com/projectcalico/calico +calico_git_install_branch: master +calico_git_project_group: neutron_all + +networking_calico_git_repo: https://git.openstack.org/openstack/networking-calico +networking_calico_git_install_branch: master +networking_calico_git_project_group: neutron_all \ No newline at end of file diff --git a/playbooks/etcd-install.yml b/playbooks/etcd-install.yml new file mode 100644 index 0000000000..2f25cdd8d2 --- /dev/null +++ b/playbooks/etcd-install.yml @@ -0,0 +1,31 @@ +--- +# Copyright 2016, Logan Vig +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Install etcd server cluster + hosts: etcd_all + gather_facts: "{{ gather_facts | default(True) }}" + max_fail_percentage: 20 + user: root + pre_tasks: + - include: common-tasks/os-lxc-container-setup.yml + - include: common-tasks/package-cache-proxy.yml + roles: + - role: "etcd" + etcd_install_type: server + tags: + - etcd-server + - role: "system_crontab_coordination" + vars: + is_metal: "{{ properties.is_metal|default(false) }}" diff --git a/playbooks/os-neutron-install.yml b/playbooks/os-neutron-install.yml index d28c6a4a5b..062379fe36 100644 --- a/playbooks/os-neutron-install.yml +++ b/playbooks/os-neutron-install.yml @@ -97,6 +97,11 @@ neutron_local_ip: "{{ _local_ip|default('127.0.0.1') }}" tags: - "os-neutron" + - role: "bird" + when: + - "'neutron_calico_dhcp_agent' in group_names" + tags: + - "bird" - { role: "openstack_openrc", tags: [ "openstack-openrc" ] } - role: "rsyslog_client" rsyslog_client_log_rotate_file: neutron_log_rotate diff --git a/playbooks/setup-infrastructure.yml b/playbooks/setup-infrastructure.yml index b9864966cc..aaf1da2562 100644 --- a/playbooks/setup-infrastructure.yml +++ b/playbooks/setup-infrastructure.yml @@ -18,5 +18,6 @@ - include: memcached-install.yml - include: galera-install.yml - include: rabbitmq-install.yml +- include: etcd-install.yml - include: utility-install.yml - include: rsyslog-install.yml diff --git a/releasenotes/notes/neutron-calico-2332b0972708af8a.yaml b/releasenotes/notes/neutron-calico-2332b0972708af8a.yaml new file mode 100644 index 0000000000..d285683cf6 --- /dev/null +++ b/releasenotes/notes/neutron-calico-2332b0972708af8a.yaml @@ -0,0 +1,5 @@ +--- +features: + - The Project Calico Neutron networking plugin is now integrated into the + deployment. For setup instructions please see ``os_neutron`` role + documentation.