aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml1
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh11
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/policy.json15
-rwxr-xr-xdeploy/adapters/ansible/roles/config-osa/tasks/main.yml8
-rw-r--r--deploy/adapters/ansible/roles/config-osa/tasks/meters.yml71
-rw-r--r--deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j27
-rw-r--r--deploy/adapters/ansible/roles/config-osa/vars/main.yml1
-rw-r--r--deploy/conf/hardware_environment/huawei-pod1/k8-nosdn-nofeature-ha.yml65
-rw-r--r--deploy/conf/vm_environment/k8-nosdn-nofeature-noha.yml22
-rw-r--r--docs/release/configguide/index.rst13
-rw-r--r--docs/release/installation/featureTable.rst2
-rw-r--r--docs/release/installation/images/architecture.pngbin0 -> 268126 bytes
-rw-r--r--docs/release/installation/images/k8s.pngbin0 -> 143868 bytes
-rw-r--r--docs/release/installation/index.rst2
-rw-r--r--docs/release/installation/k8s-deploy.rst267
-rw-r--r--docs/release/installation/k8s-intro.rst96
-rw-r--r--docs/release/release-notes/release-notes.rst11
-rw-r--r--docs/release/scenarios/k8s-nosdn-nofeature-ha.rst6
-rw-r--r--docs/release/scenarios/os-nosdn-nofeature-ha.rst6
-rw-r--r--docs/release/scenarios/os-odl-nofeature-ha.rst6
-rw-r--r--docs/release/scenarios/os-odl-sfc-ha.rst6
-rw-r--r--docs/release/userguide/FAQ/faq.rst35
-rw-r--r--plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml8
-rwxr-xr-xplugins/odl_sfc/roles/setup-odl-sfc/tasks/odl-cluster.yml3
24 files changed, 629 insertions, 33 deletions
diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
index 59826776..ef7128c5 100644
--- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
+++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
@@ -78,6 +78,7 @@
- network_hosts
- repo_container
- utility
+ - tacker_all
remote_user: root
roles:
- setup-odl-sfc
diff --git a/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh b/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh
index c598027f..fb197555 100644
--- a/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh
+++ b/deploy/adapters/ansible/roles/config-osa/files/op-venv-script.sh
@@ -202,6 +202,17 @@ unset ROLE_VENV_WITH_INDEX
#unset ROLE_VENV_WITH_INDEX
ROLE_VENV_WITH_INDEX=false
+ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/tacker"
+ROLE_VENV_FILE="tacker-15.1.4-x86_64"
+if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
+ venv_create "${ROLE_VENV_PATH}" "${ROLE_VENV_FILE}" "${ROLE_VENV_WITH_INDEX}" "python-tackerclient mysql-python networking-sfc==4.0.0 pymysql python-heatclient python-tackerclient tacker" &
+ pid[3]=$!
+fi
+unset ROLE_VENV_PATH
+unset ROLE_VENV_FILE
+unset ROLE_VENV_WITH_INDEX
+
+ROLE_VENV_WITH_INDEX=false
ROLE_VENV_PATH="/tmp/openstack-venv-builder/venvs/horizon"
ROLE_VENV_FILE="horizon-15.1.4-x86_64"
if [ ! -f "${ROLE_VENV_FILE}.tgz" ];then
diff --git a/deploy/adapters/ansible/roles/config-osa/files/policy.json b/deploy/adapters/ansible/roles/config-osa/files/policy.json
new file mode 100644
index 00000000..0aa0a3d1
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-osa/files/policy.json
@@ -0,0 +1,15 @@
+{
+ "context_is_admin": "role:admin",
+ "segregation": "rule:context_is_admin",
+
+ "telemetry:get_samples": "",
+ "telemetry:get_sample": "",
+ "telemetry:query_sample": "",
+ "telemetry:create_samples": "",
+
+ "telemetry:compute_statistics": "",
+ "telemetry:get_meters": "",
+
+ "telemetry:get_resource": "",
+ "telemetry:get_resources": "",
+}
diff --git a/deploy/adapters/ansible/roles/config-osa/tasks/main.yml b/deploy/adapters/ansible/roles/config-osa/tasks/main.yml
index d3779fd4..d2ce5c38 100755
--- a/deploy/adapters/ansible/roles/config-osa/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/config-osa/tasks/main.yml
@@ -138,6 +138,12 @@
{% endraw %}
when: offline_deployment is defined and offline_deployment == "Enable"
+# This is a bug in ocata, will be removed in the future
+- name: limit the version of networking-sfc in os_tacker
+ shell: |
+ sed -i 's/networking-sfc$/networking-sfc=={{ networking_sfc_version }}/g' \
+ /etc/ansible/roles/os_tacker/defaults/main.yml
+
- name: add rally and tempest to requirement.txt
blockinfile:
dest: /etc/ansible/roles/repo_build/tasks/repo_pre_build.yml
@@ -263,3 +269,5 @@
dest: /etc/ansible/roles/repo_build/tasks/main.yml
insertafter: "^- include: repo_post_build.yml"
line: "- include: repo_fix_pandas.yml"
+
+- include: meters.yml
diff --git a/deploy/adapters/ansible/roles/config-osa/tasks/meters.yml b/deploy/adapters/ansible/roles/config-osa/tasks/meters.yml
new file mode 100644
index 00000000..163fc69d
--- /dev/null
+++ b/deploy/adapters/ansible/roles/config-osa/tasks/meters.yml
@@ -0,0 +1,71 @@
+#############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# #############################################################################
+---
+- name: modify the aodh haproxy config
+ replace:
+ dest: /opt/openstack-ansible/playbooks/vars/configs/haproxy_config.yml
+ regexp: '- "expect status 401"'
+ replace: '- "expect status 200"'
+
+- name: add OS_AUTH_TYPE in openrc
+ lineinfile:
+ dest: /etc/ansible/roles/openstack_openrc/templates/openrc.j2
+ line: "export OS_AUTH_TYPE=password"
+
+- name: copy the ceilometer policy yaml
+ copy:
+ dest: /etc/ansible/roles/os_ceilometer/templates/policy.json.j2
+ src: policy.json
+ mode: 0664
+
+- name: replace the ceilometer policy
+ lineinfile:
+ dest: /etc/ansible/roles/os_ceilometer/tasks/ceilometer_post_install.yml
+ regexp: "ceilometer_policy_user_content"
+ line: ' src: "policy.json.j2"'
+ backrefs: "yes"
+
+- name: modify the os-ceilometer-install.yml
+ blockinfile:
+ dest: /opt/openstack-ansible/playbooks/os-ceilometer-install.yml
+ insertbefore: "common-tasks/package-cache-proxy.yml"
+ block: |
+ # create ceilometer db
+ - include: common-tasks/mysql-db-user.yml
+ static: no
+ vars: {% raw %}
+ user_name: "{{ ceilometer_galera_user }}"
+ password: "{{ ceilometer_container_db_password }}"
+ login_host: "{{ ceilometer_galera_address }}"
+ db_name: "{{ ceilometer_galera_database }}"
+ when: inventory_hostname == groups['ceilometer_all'][0]{% endraw %}
+
+- name: modify the os-ceilometer-install.yml
+ lineinfile:
+ dest: /opt/openstack-ansible/playbooks/os-ceilometer-install.yml
+ insertafter: "is_metal"
+ line: "{{ item }}"
+ with_items:
+ - " ceilometer_galera_user: ceilometer"
+ - " ceilometer_galera_database: ceilometer"
+
+- name: modify the os-ceilometer-install.yml
+ lineinfile:
+ dest: /opt/openstack-ansible/playbooks/os-ceilometer-install.yml
+ insertafter: "is_metal"
+ line: ' {% raw %} ceilometer_galera_address: "{{ galera_address }}"{% endraw %}'
+
+# yamllint disable rule:line-length
+- name: change the ceilometer.conf.j2
+ blockinfile:
+ dest: /etc/ansible/roles/os_ceilometer/templates/ceilometer.conf.j2
+ block: |
+ [database]{% raw %}
+ connection = mysql+pymysql://{{ ceilometer_galera_user }}:{{ ceilometer_container_db_password }}@{{ceilometer_galera_address }}/{{ ceilometer_galera_database }}?charset=utf86{% endraw %}
+# yamllint enable rule:line-length
diff --git a/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2 b/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2
index cadf5308..be119fbe 100644
--- a/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2
+++ b/deploy/adapters/ansible/roles/config-osa/templates/openstack_user_config.yml.j2
@@ -213,6 +213,13 @@ metrics_hosts:
ip: {{ hostvars[host]['ansible_ssh_host'] }}
{% endfor %}
+# tacker (mano service)
+mano_hosts:
+{% for host in groups.controller%}
+ {{host}}:
+ ip: {{ hostvars[host]['ansible_ssh_host'] }}
+{% endfor %}
+
# nova hypervisors
compute_hosts:
{% for host in groups.compute%}
diff --git a/deploy/adapters/ansible/roles/config-osa/vars/main.yml b/deploy/adapters/ansible/roles/config-osa/vars/main.yml
index 18687fa5..0b3b0c1e 100644
--- a/deploy/adapters/ansible/roles/config-osa/vars/main.yml
+++ b/deploy/adapters/ansible/roles/config-osa/vars/main.yml
@@ -10,3 +10,4 @@
LOCAL_REPOSITORY_IP: "192.168.137.222"
ceph_host: "{{ hostvars[inventory_hostname]['groups']['ceph_osd'][0] }}"
repo_dest_path: "/var/www/repo/os-releases/15.1.4/ubuntu-16.04-x86_64/"
+networking_sfc_version: 4.0.0
diff --git a/deploy/conf/hardware_environment/huawei-pod1/k8-nosdn-nofeature-ha.yml b/deploy/conf/hardware_environment/huawei-pod1/k8-nosdn-nofeature-ha.yml
new file mode 100644
index 00000000..995d0107
--- /dev/null
+++ b/deploy/conf/hardware_environment/huawei-pod1/k8-nosdn-nofeature-ha.yml
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: ipmitool
+
+ipmiUser: root
+ipmiVer: '2.0'
+
+hosts:
+ - name: host1
+ mac: 'F8:4A:BF:55:A2:8D'
+ interfaces:
+ - eth1: 'F8:4A:BF:55:A2:8E'
+ ipmiIp: 172.16.130.26
+ ipmiPass: Opnfv@pod1
+ roles:
+ - kube_master
+ - etcd
+
+ - name: host2
+ mac: 'D8:49:0B:DA:5A:B7'
+ interfaces:
+ - eth1: 'D8:49:0B:DA:5A:B8'
+ ipmiIp: 172.16.130.27
+ ipmiPass: Opnfv@pod1
+ roles:
+ - kube_master
+ - etcd
+
+ - name: host3
+ mac: '78:D7:52:A0:B1:99'
+ interfaces:
+ - eth1: '78:D7:52:A0:B1:9A'
+ ipmiIp: 172.16.130.29
+ ipmiPass: Opnfv@pod1
+ roles:
+ - kube_master
+ - etcd
+
+ - name: host4
+ mac: 'D8:49:0B:DA:5B:5D'
+ interfaces:
+ - eth1: 'D8:49:0B:DA:5B:5E'
+ ipmiIp: 172.16.130.30
+ ipmiPass: Opnfv@pod1
+ roles:
+ - kube_node
+
+ - name: host5
+ mac: 'D8:49:0B:DA:56:85'
+ interfaces:
+ - eth1: 'D8:49:0B:DA:56:86'
+ ipmiIp: 172.16.130.31
+ ipmiPass: Opnfv@pod1
+ roles:
+ - kube_node
diff --git a/deploy/conf/vm_environment/k8-nosdn-nofeature-noha.yml b/deploy/conf/vm_environment/k8-nosdn-nofeature-noha.yml
new file mode 100644
index 00000000..9912d59b
--- /dev/null
+++ b/deploy/conf/vm_environment/k8-nosdn-nofeature-noha.yml
@@ -0,0 +1,22 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: virtual
+FLAVOR: cluster
+
+hosts:
+ - name: host1
+ roles:
+ - kube_master
+ - etcd
+
+ - name: host2
+ roles:
+ - kube_node
diff --git a/docs/release/configguide/index.rst b/docs/release/configguide/index.rst
deleted file mode 100644
index fae27101..00000000
--- a/docs/release/configguide/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-.. _compass4nfv-overview:
-
-*********************************
-Compass4NFV Release Overview
-*********************************
-
-.. toctree::
- :maxdepth: 2
-
- containerized_compass.rst
diff --git a/docs/release/installation/featureTable.rst b/docs/release/installation/featureTable.rst
index 7d91d2a0..2cd74a2b 100644
--- a/docs/release/installation/featureTable.rst
+++ b/docs/release/installation/featureTable.rst
@@ -44,7 +44,7 @@ Supported Openstack Flavor and Features
| Multi-Nic | Yes | Yes | Yes | Yes |
| Support | | | | |
+---------------+--------------+--------------+---------------+---------------+
-| Boot | Yes | Yes | Yes | YES |
+| Boot | Yes | Yes | Yes | Yes |
| Recovery | | | | |
+---------------+--------------+--------------+---------------+---------------+
| SFC | No | No | Yes | Yes |
diff --git a/docs/release/installation/images/architecture.png b/docs/release/installation/images/architecture.png
new file mode 100644
index 00000000..0ee8bceb
--- /dev/null
+++ b/docs/release/installation/images/architecture.png
Binary files differ
diff --git a/docs/release/installation/images/k8s.png b/docs/release/installation/images/k8s.png
new file mode 100644
index 00000000..6af82dcc
--- /dev/null
+++ b/docs/release/installation/images/k8s.png
Binary files differ
diff --git a/docs/release/installation/index.rst b/docs/release/installation/index.rst
index d678b9df..80d07e86 100644
--- a/docs/release/installation/index.rst
+++ b/docs/release/installation/index.rst
@@ -17,6 +17,8 @@ Compass4nfv Installation Instructions
configure-network.rst
bmdeploy.rst
vmdeploy.rst
+ k8s-intro.rst
+ k8s-deploy.rst
offline-deploy.rst
expansion.rst
references.rst
diff --git a/docs/release/installation/k8s-deploy.rst b/docs/release/installation/k8s-deploy.rst
new file mode 100644
index 00000000..65f638cb
--- /dev/null
+++ b/docs/release/installation/k8s-deploy.rst
@@ -0,0 +1,267 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International Licence.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) by Yifei Xue (HUAWEI) and Justin Chi (HUAWEI)
+
+Installation of K8s on virtual machines
+=======================================
+
+Quick Start
+-----------
+
+Only 1 command to try virtual deployment, if you have Internet access. Just Paste it and Run.
+
+.. code-block:: bash
+
+ curl https://raw.githubusercontent.com/opnfv/compass4nfv/master/quickstart_k8s.sh | bash
+
+If you want to deploy noha with1 controller and 1 compute, run the following command
+
+.. code-block:: bash
+
+ export SCENARIO=k8-nosdn-nofeature-noha.yml
+ export VIRT_NUMBER=2
+ curl https://raw.githubusercontent.com/opnfv/compass4nfv/euphrates/quickstart_k8s.sh | bash
+
+Installation of K8s on Bare Metal
+=================================
+
+Nodes Configuration (Bare Metal Deployment)
+-------------------------------------------
+
+The below file is the inventory template of deployment nodes:
+
+"compass4nfv/deploy/conf/hardware_environment/huawei-pod1/k8-nosdn-nofeature-ha.yml"
+
+You can write your own IPMI IP/User/Password/Mac address/roles reference to it.
+
+ - name -- Host name for deployment node after installation.
+
+ - ipmiVer -- IPMI interface version for deployment node support. IPMI 1.0
+ or IPMI 2.0 is available.
+
+ - ipmiIP -- IPMI IP address for deployment node. Make sure it can access
+ from Jumphost.
+
+ - ipmiUser -- IPMI Username for deployment node.
+
+ - ipmiPass -- IPMI Password for deployment node.
+
+ - mac -- MAC Address of deployment node PXE NIC.
+
+ - interfaces -- Host NIC renamed according to NIC MAC addresses when OS provisioning.
+
+ - roles -- Components deployed.
+
+**Set TYPE/FLAVOR and POWER TOOL**
+
+E.g.
+.. code-block:: yaml
+
+ TYPE: baremetal
+ FLAVOR: cluster
+ POWER_TOOL: ipmitool
+
+**Set ipmiUser/ipmiPass and ipmiVer**
+
+E.g.
+
+.. code-block:: yaml
+
+ ipmiUser: USER
+ ipmiPass: PASSWORD
+ ipmiVer: '2.0'
+
+**Assignment of different roles to servers**
+
+E.g. K8s only deployment roles setting
+
+.. code-block:: yaml
+
+ hosts:
+ - name: host1
+ mac: 'F8:4A:BF:55:A2:8D'
+ interfaces:
+ - eth1: 'F8:4A:BF:55:A2:8E'
+ ipmiIp: 172.16.130.26
+ roles:
+ - kube_master
+ - etcd
+
+ - name: host2
+ mac: 'D8:49:0B:DA:5A:B7'
+ interfaces:
+ - eth1: 'D8:49:0B:DA:5A:B8'
+ ipmiIp: 172.16.130.27
+ roles:
+ - kube_node
+
+Network Configuration (Bare Metal Deployment)
+---------------------------------------------
+
+Before deployment, there are some network configuration to be checked based
+on your network topology.Compass4nfv network default configuration file is
+"compass4nfv/deploy/conf/hardware_environment/huawei-pod1/network.yml".
+This file is an example, you can customize by yourself according to specific network
+environment.
+
+In this network.yml, there are several config sections listed following(corresponed to the
+ordre of the config file):
+
+Provider Mapping
+~~~~~~~~~~~~~~~~
+
+ - name -- provider network name.
+
+ - network -- default as physnet, do not change it.
+
+ - interfaces -- the NIC or Bridge attached by the Network.
+
+ - type -- the type of the NIC or Bridge(vlan for NIC and ovs for Bridge, either).
+
+ - roles -- all the possible roles of the host machines which connected by this
+ network(mostly put both controller and compute).
+
+System Interface
+~~~~~~~~~~~~~~~~
+
+ - name -- Network name.
+
+ - interfaces -- the NIC or Bridge attached by the Network.
+
+ - vlan_tag -- if type is vlan, add this tag before 'type' tag.
+
+ - type -- the type of the NIC or Bridge(vlan for NIC and ovs for Bridge, either).
+
+ - roles -- all the possible roles of the host machines which connected by this
+ network(mostly put both controller and compute).
+
+IP Settings
+~~~~~~~~~~~
+
+ - name -- network name corresponding the the network name in System Interface section one by one.
+
+ - ip_ranges -- ip addresses range provided for this network.
+
+ - cidr -- the IPv4 address and its associated routing prefix and subnet mask?
+
+ - gw -- need to add this line only if network is external.
+
+ - roles -- all the possible roles of the host machines which connected by this
+ network(mostly put both controller and compute).
+
+Internal VIP(virtual or proxy IP)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ - ip -- virtual or proxy ip address, must be in the same subnet with mgmt network
+ but must not be in the range of mgmt network.
+
+ - netmask -- the length of netmask
+
+ - interface -- mostly mgmt.
+
+Public VIP
+~~~~~~~~~~
+
+ - ip -- virtual or proxy ip address, must be in the same subnet with external
+ network but must not be in the range of external network.
+
+ - netmask -- the length of netmask
+
+ - interface -- mostly external.
+
+
+Public Network
+~~~~~~~~~~~~~~
+
+ - enable -- must be True(if False, you need to set up provider network manually).
+
+ - network -- leave it ext-net.
+
+ - type -- the type of the ext-net above, such as flat or vlan.
+
+ - segment_id -- when the type is vlan, this should be id of vlan.
+
+ - subnet -- leave it ext-subnet.
+
+ - provider_network -- leave it physnet.
+
+ - router -- leave it router-ext.
+
+ - enable_dhcp -- must be False.
+
+ - no_gateway -- must be False.
+
+ - external_gw -- same as gw in ip_settings.
+
+ - floating_ip_cidr -- cidr for floating ip, see explanation in ip_settings.
+
+ - floating_ip_start -- define range of floating ip with floating_ip_end(this
+ defined range must not be included in ip range of external configured in
+ ip_settings section).
+
+ - floating_ip_end -- define range of floating ip with floating_ip_start.
+
+
+**The following figure shows the default network configuration.**
+
+.. figure:: images/k8s.png
+ :alt: Kubernetes network configuration
+ :figclass: align-center
+
+ Fig 5. Kubernetes network configuration
+
+Start Deployment (Bare Metal Deployment)
+----------------------------------------
+
+1. Edit deploy.sh
+
+1.1. Set OS version for deployment nodes.
+ Compass4nfv supports ubuntu and centos based openstack newton.
+
+E.g.
+
+.. code-block:: bash
+
+ # Set OS version for target hosts
+ # Only CentOS7 supported now
+ export OS_VERSION=centos7
+
+1.2. Set tarball corresponding to your code
+
+E.g.
+
+.. code-block:: bash
+
+ # Set ISO image corresponding to your code
+ export ISO_URL=file:///home/compass/compass4nfv.tar.gz
+
+1.3. Set hardware deploy jumpserver PXE NIC. (set eth1 E.g.)
+ You do not need to set it when virtual deploy.
+
+E.g.
+
+.. code-block:: bash
+
+ # Set hardware deploy jumpserver PXE NIC
+ # you need to comment out it when virtual deploy
+ export INSTALL_NIC=eth1
+
+1.4. K8s scenario that you want to deploy
+
+E.g.
+
+nosdn-nofeature scenario deploy sample
+
+.. code-block:: bash
+
+ # DHA is your dha.yml's path
+ export DHA=./deploy/conf/hardware_environment/huawei-pod1/k8-nosdn-nofeature-ha.yml
+
+ # NETWORK is your network.yml's path
+ export NETWORK=./deploy/conf/hardware_environment/huawei-pod1/network.yml
+
+2. Run ``deploy.sh``
+
+.. code-block:: bash
+
+ ./deploy.sh
diff --git a/docs/release/installation/k8s-intro.rst b/docs/release/installation/k8s-intro.rst
new file mode 100644
index 00000000..a3ea4547
--- /dev/null
+++ b/docs/release/installation/k8s-intro.rst
@@ -0,0 +1,96 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International Licence.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) by Yifei Xue (HUAWEI) and Justin Chi (HUAWEI)
+
+K8s introduction
+================
+
+Kubernetes Architecture
+-----------------------
+
+Currently Compass can deploy kubernetes as NFVI in 3+2 mode by default.
+
+**The following figure shows a typical architecture of Kubernetes.**
+
+.. figure:: images/architecture.png
+ :alt: K8s architecture
+ :figclass: align-center
+
+ Fig 3. K8s architecture
+
+Kube-apiserver
+~~~~~~~~~~~~~~
+
+Kube-apiserver exposes the Kubernetes API. It is the front-end for the Kubernetes control plane.
+It is designed to scale horizontally, that is, it scales by deploying more instances.
+
+Etcd
+~~~~
+
+Etcd is used as Kubernetes' backing store. All cluster data is stored here. Always have a backup
+plan for etcd's data for your Kubernetes cluster.
+
+Kube-controller-manager
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Kube-controller-manager runs controllers, which are the background threads that handle routine
+tasks in the cluster. Logically, each controller is a separate process, but to reduce complexity,
+they are all compiled into a single binary and run in a single process.
+
+These controllers include:
+
+ - Node Controller: Responsible for noticing and responding when nodes go down.
+ - Replication Controller: Responsible for maintaining the correct number of pods for every
+ replication controller object in the system.
+ - Endpoints Controller: Populates the Endpoints object (that is, joins Services & Pods).
+ - Service Account & Token Controllers: Create default accounts and API access tokens for
+ new namespaces.
+
+kube-scheduler
+~~~~~~~~~~~~~~
+
+Kube-scheduler watches newly created pods that have no node assigned, and selects a node for them
+to run on.
+
+Kubelet
+~~~~~~~
+
+Kubelet is the primary node agent. It watches for pods that have been assigned to its node (either
+by apiserver or via local configuration file) and:
+
+ - Mounts the pod's required volumes.
+ - Downloads the pod's secrets.
+ - Runs the pod's containers via docker (or, experimentally, rkt).
+ - Periodically executes any requested container liveness probes.
+ - Reports the status of the pod back to the rest of the system, by creating a mirror pod if
+ necessary.
+ - Reports the status of the node back to the rest of the system.
+
+Kube-proxy
+~~~~~~~~~~
+
+Kube-proxy enables the Kubernetes service abstraction by maintaining network rules on the host and
+performing connection forwarding.
+
+Docker
+~~~~~~
+
+Docker is used for running containers.
+
+POD
+~~~
+
+A pod is a collection of containers and its storage inside a node of a Kubernetes cluster. It is
+possible to create a pod with multiple containers inside it. For example, keeping a database container
+and data container in the same pod.
+
+Understand Kubernetes Networking in Compass configuration
+---------------------------------------------------------
+
+**The following figure shows the Kubernetes Networking in Compass configuration.**
+
+.. figure:: images/k8s.png
+ :alt: Kubernetes Networking in Compass
+ :figclass: align-center
+
+ Fig 4. Kubernetes Networking in Compass
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index 85700385..73825062 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -31,7 +31,7 @@ Release Data
| **Release designation** | Euphrates.1.0 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release date** | September 2017 |
+| **Release date** | October 2017 |
| | |
+--------------------------------------+--------------------------------------+
| **Purpose of the delivery** | OPNFV Euphrates release |
@@ -69,13 +69,10 @@ upstream components supported with this release.
- Openstack (Ocata release)
- - Opendaylight (Nitrogen release)
-
+ - Kubernates (1.7.3)
-Document version change
-~~~~~~~~~~~~~~~~~~~~~~~
+ - Opendaylight (Nitrogen release)
-Adjusted the document structure, and you can see document at `OPNFV(Euphrates) Compass4nfv installation instructions <http://artifacts.opnfv.org/compass4nfv/docs/configguide/index.html>`_.
Reason for new version
----------------------
@@ -160,5 +157,5 @@ Test Result
The Euphrates release with the Compass4nfv deployment toolchain has undergone QA test
runs with the following results:
-Functest: http://testresults.opnfv.org/reporting/functest/release/danube/index-status-compass.html
+Functest: http://testresults.opnfv.org/reporting/euphrates/functest/status-compass.html
diff --git a/docs/release/scenarios/k8s-nosdn-nofeature-ha.rst b/docs/release/scenarios/k8s-nosdn-nofeature-ha.rst
index 7e8e3b33..d9925cb7 100644
--- a/docs/release/scenarios/k8s-nosdn-nofeature-ha.rst
+++ b/docs/release/scenarios/k8s-nosdn-nofeature-ha.rst
@@ -9,9 +9,9 @@ deployment with no SDN controller and no feature enabled.
:depth: 3
:local:
-============
-Introduction
-============
+======================
+k8s-nosdn-nofeature-ha
+======================
This scenario is used to deploy an kubernets cluster.
diff --git a/docs/release/scenarios/os-nosdn-nofeature-ha.rst b/docs/release/scenarios/os-nosdn-nofeature-ha.rst
index f2dce3da..6ff3b85c 100644
--- a/docs/release/scenarios/os-nosdn-nofeature-ha.rst
+++ b/docs/release/scenarios/os-nosdn-nofeature-ha.rst
@@ -9,9 +9,9 @@ deployment with no SDN controller and no feature enabled.
:depth: 3
:local:
-============
-Introduction
-============
+=====================
+os-nosdn-nofeature-ha
+=====================
This scenario is used to deploy an Ocata OpenStack deployment with
Ceph Jewel, and without SDN controller nor any NFV feature enabled.
diff --git a/docs/release/scenarios/os-odl-nofeature-ha.rst b/docs/release/scenarios/os-odl-nofeature-ha.rst
index 14b02e6d..64e74e04 100644
--- a/docs/release/scenarios/os-odl-nofeature-ha.rst
+++ b/docs/release/scenarios/os-odl-nofeature-ha.rst
@@ -9,9 +9,9 @@ deployment with the OpenDaylight controller and no feature enabled.
:depth: 3
:local:
-============
-Introduction
-============
+===================
+os-odl-nofeature-ha
+===================
This scenario is used to deploy an Ocata OpenStack deployment with
OpenDaylight Nitrogen, Ceph Jewel, and without any NFV feature enabled.
diff --git a/docs/release/scenarios/os-odl-sfc-ha.rst b/docs/release/scenarios/os-odl-sfc-ha.rst
index 2a7a9fe0..7dca2417 100644
--- a/docs/release/scenarios/os-odl-sfc-ha.rst
+++ b/docs/release/scenarios/os-odl-sfc-ha.rst
@@ -9,9 +9,9 @@ deployment with the OpenDaylight controller and SFC feature enabled.
:depth: 3
:local:
-============
-Introduction
-============
+=============
+os-odl-sfc-ha
+=============
This scenario is used to deploy an Ocata OpenStack deployment with
OpenDaylight Nitrogen, Ceph Jewel, and SFC feature enabled.
diff --git a/docs/release/userguide/FAQ/faq.rst b/docs/release/userguide/FAQ/faq.rst
index f2500a0d..326b85fe 100644
--- a/docs/release/userguide/FAQ/faq.rst
+++ b/docs/release/userguide/FAQ/faq.rst
@@ -131,9 +131,44 @@ How to recovery network connection after Jumphost reboot
source deploy/network.sh && save_network_info
+How to use Kubernetes CLI
+=========================
+
+Login one of the controllers
+----------------------------
+
+There are 3 controllers referring to host1 to host3 with IPs from 10.1.0.50 to 10.1.0.52.
+The username of the nodes is root, and the password is root.
+
+.. code-block:: bash
+
+ ssh root@10.1.0.50
+
+Run the Kubernetes command
+--------------------------
+
+Kubectl controls the Kubernetes cluster manager.
+
+.. code-block:: bash
+
+ kubectl help
+
+Follow the k8s example to create a ngnix service
+------------------------------------------------
+
+To create a nginx service, please read Ref[2] at the end of this page.
+
References
==========
+
+[1]
+---
+
For more information on the Compass4nfv FAQ, please visit
`COMPASS FAQ WIKI Page <https://wiki.opnfv.org/compass4nfv_faq>`_
+[2]
+---
+
+`K8s Get-Started Page <http://containertutorials.com/get_started_kubernetes/k8s_example.html>`_
diff --git a/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml
new file mode 100644
index 00000000..c43b6dcc
--- /dev/null
+++ b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml
@@ -0,0 +1,8 @@
+---
+
+- name: upgrade networking-sfc
+ pip:
+ name: networking-sfc
+ extra_args: -U
+ virtualenv: /openstack/venvs/tacker-15.1.4
+ when: odl_sfc == "Enable"
diff --git a/plugins/odl_sfc/roles/setup-odl-sfc/tasks/odl-cluster.yml b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/odl-cluster.yml
index 07bf7084..ee2ee32a 100755
--- a/plugins/odl_sfc/roles/setup-odl-sfc/tasks/odl-cluster.yml
+++ b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/odl-cluster.yml
@@ -48,4 +48,7 @@
- inventory_hostname in groups['neutron_server'][0]
- inventory_hostname not in groups['network_hosts']
+- include: control-tacker-1.yml
+ when: inventory_hostname in groups['tacker_all']
+
- include: odl-post.yml