diff options
Diffstat (limited to 'mcp')
-rw-r--r-- | mcp/config/labs/local/idf-pod1.yaml | 79 | ||||
-rw-r--r-- | mcp/config/labs/local/idf-virtual1.yaml | 103 | ||||
-rw-r--r-- | mcp/config/labs/local/pod1.yaml | 199 | ||||
-rw-r--r-- | mcp/config/labs/local/virtual1.yaml | 127 | ||||
-rw-r--r-- | mcp/config/scenario/README.rst | 21 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-bgpvpn-noha.yaml | 1 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-nofeature-ha.yaml | 1 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-nofeature-noha.yaml | 1 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-ovs-noha.yaml | 1 | ||||
-rw-r--r-- | mcp/config/scenario/os-odl-sfc-noha.yaml | 1 | ||||
-rwxr-xr-x | mcp/config/states/sqlalchemy_update | 16 | ||||
-rw-r--r-- | mcp/patches/Makefile | 2 | ||||
-rw-r--r-- | mcp/patches/README.rst | 158 | ||||
-rw-r--r-- | mcp/patches/config.mk | 3 | ||||
-rw-r--r-- | mcp/reclass/classes/cluster/README.rst | 16 | ||||
-rw-r--r-- | mcp/scripts/lib_template.sh | 3 |
16 files changed, 123 insertions, 609 deletions
diff --git a/mcp/config/labs/local/idf-pod1.yaml b/mcp/config/labs/local/idf-pod1.yaml deleted file mode 100644 index b916707a1..000000000 --- a/mcp/config/labs/local/idf-pod1.yaml +++ /dev/null @@ -1,79 +0,0 @@ -############################################################################## -# Copyright (c) 2018 Linux Foundation, Mirantis Inc., Enea AB 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 -############################################################################## ---- -### LF POD 2 installer descriptor file ### - -idf: - version: 0.1 - net_config: - # NOTE: Network names are likely to change after the PDF spec is updated - oob: - interface: 0 - ip-range: 172.30.8.65-172.30.8.75 - vlan: 410 - admin: - interface: 0 - vlan: native - network: 192.168.11.0 # Untagged, 'PXE/Admin' on wiki, different IP - mask: 24 - mgmt: - interface: 0 - vlan: 300 - network: 10.167.4.0 # Tagged, 'vlan 300' on wiki - ip-range: 10.167.4.10-10.167.4.254 # Some IPs are in use by lab infra - mask: 24 - storage: - interface: 3 - vlan: 301 - network: 10.2.0.0 # Tagged, not the same with 'storage' on wiki - mask: 24 - private: - interface: 1 - vlan: 1000 - network: 10.1.0.0 # Tagged, not the same with 'private' on wiki - mask: 24 - public: - interface: 2 - vlan: native - network: 172.30.10.0 # Untagged, 'public' on wiki - ip-range: 172.30.10.100-172.30.10.254 # Some IPs are in use by lab infra - mask: 24 - gateway: 172.30.10.1 - dns: - - 8.8.8.8 - - 8.8.4.4 - fuel: - jumphost: - bridges: - admin: 'pxebr' - mgmt: 'br-ctl' - private: ~ - public: ~ - network: - node: - # Ordered-list, index should be in sync with node index in PDF - - interfaces: &interfaces - # Ordered-list, index should be in sync with interface index in PDF - - 'enp6s0' - - 'enp7s0' - - 'enp8s0' - - 'enp9s0' - busaddr: &busaddr - # Bus-info reported by `ethtool -i ethX` - - '0000:06:00.0' - - '0000:07:00.0' - - '0000:08:00.0' - - '0000:09:00.0' - - interfaces: *interfaces - busaddr: *busaddr - - interfaces: *interfaces - busaddr: *busaddr - - interfaces: *interfaces - busaddr: *busaddr - - interfaces: *interfaces - busaddr: *busaddr diff --git a/mcp/config/labs/local/idf-virtual1.yaml b/mcp/config/labs/local/idf-virtual1.yaml deleted file mode 100644 index 402af9852..000000000 --- a/mcp/config/labs/local/idf-virtual1.yaml +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################## -# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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 -############################################################################## ---- -### Fuel@OPNFV sample VIRTUAL installer descriptor file ### - -idf: - version: 0.0 # Intentionally invalid to indicate this is experimental - net_config: - # NOTE: Network names are likely to change after the PDF spec is updated - oob: - interface: 0 - ip-range: ~ - vlan: native - # All networks (except OOB) are virtual networks managed by `libvirt` - # Interface indexes are based on Fuel installer defaults - admin: - interface: 0 # when used, will be first vnet interface, untagged - vlan: native - network: 192.168.11.0 - mask: 24 - mgmt: - interface: 1 # when used, will be second vnet interface, untagged - vlan: native - network: 172.16.10.0 - ip-range: 172.16.10.10-172.16.10.254 # Some IPs are in use by lab infra - mask: 24 - storage: - interface: 4 # when used, will be fifth vnet interface, untagged - vlan: native - network: 192.168.20.0 - mask: 24 - private: - interface: 2 # when used, will be third vnet interface, untagged - vlan: 1000-1999 - network: 10.1.0.0 - mask: 24 - public: - interface: 3 # when used, will be fourth vnet interface, untagged - vlan: native - network: 10.16.0.0 - ip-range: 10.16.0.100-10.16.0.254 # Some IPs are in use by lab infra - mask: 24 - gateway: 10.16.0.1 - dns: - - 8.8.8.8 - - 8.8.4.4 - fuel: - jumphost: - bridges: - admin: ~ - mgmt: ~ - private: ~ - public: ~ - network: - ntp_strata_host1: 1.se.pool.ntp.org - ntp_strata_host2: 0.se.pool.ntp.org - node: - # Ordered-list, index should be in sync with node index in PDF - - interfaces: &interfaces - # Ordered-list, index should be in sync with interface index in PDF - - 'ens3' - - 'ens4' - - 'ens5' - - 'ens6' - busaddr: &busaddr - # Bus-info reported by `ethtool -i ethX` - - '0000:00:03.0' - - '0000:00:04.0' - - '0000:00:05.0' - - '0000:00:06.0' - - interfaces: *interfaces - busaddr: *busaddr - - interfaces: *interfaces - busaddr: *busaddr - - interfaces: *interfaces - busaddr: *busaddr - - interfaces: *interfaces - busaddr: *busaddr - reclass: - node: - - compute_params: &compute_params - common: &compute_params_common - compute_hugepages_size: 2M - compute_hugepages_count: 2048 - compute_hugepages_mount: /mnt/hugepages_2M - dpdk: - <<: *compute_params_common - compute_dpdk_driver: uio - compute_ovs_pmd_cpu_mask: "0x6" - compute_ovs_dpdk_socket_mem: "1024" - compute_ovs_dpdk_lcore_mask: "0x8" - compute_ovs_memory_channels: "2" - dpdk0_driver: igb_uio - dpdk0_n_rxq: 2 - - compute_params: *compute_params - - compute_params: *compute_params - - compute_params: *compute_params - - compute_params: *compute_params diff --git a/mcp/config/labs/local/pod1.yaml b/mcp/config/labs/local/pod1.yaml deleted file mode 100644 index 219b2a683..000000000 --- a/mcp/config/labs/local/pod1.yaml +++ /dev/null @@ -1,199 +0,0 @@ -############################################################################## -# Copyright (c) 2018 Linux Foundation, Enea AB 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 -############################################################################## ---- -### LF POD 2 descriptor file ### - -version: 1.0 -details: - pod_owner: Trevor Bramwell - contact: tbramwell@linuxfoundation.org - lab: LF Pharos Lab - location: Portland - type: production - link: https://wiki.opnfv.org/display/pharos/LF+POD+2 -############################################################################## -jumphost: - name: pod2-jump - node: - type: baremetal - vendor: Cisco Systems Inc - model: UCSB-B200-M4 - arch: x86_64 - cpus: 2 - cpu_cflags: haswell - cores: 8 - memory: 128G - disks: &disks - - name: 'disk1' - disk_capacity: 2400G - disk_type: hdd - disk_interface: sas - disk_rotation: 0 - os: centos-7 - remote_params: &remote_params - type: ipmi - versions: - - 2.0 - user: admin - pass: octopus - remote_management: - <<: *remote_params - address: 172.30.8.83 - mac_address: "a8:9d:21:c9:c4:9e" - interfaces: - - mac_address: "00:25:b5:a0:00:1a" - speed: 40gb - features: 'dpdk|sriov' - address: 192.168.11.1 - name: 'nic1' - - mac_address: "00:25:b5:a0:00:1b" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic2' - - mac_address: "00:25:b5:a0:00:1c" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic3' - - mac_address: "00:25:b5:a0:00:1d" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic4' -############################################################################## -nodes: - - name: pod2-node1 - node: &nodeparams - type: baremetal - vendor: Cisco Systems Inc - model: UCSB-B200-M4 - arch: x86_64 - cpus: 2 - cpu_cflags: haswell - cores: 8 - memory: 32G - disks: *disks - remote_management: - <<: *remote_params - address: 172.30.8.75 - mac_address: "a8:9d:21:c9:8b:56" - interfaces: - - mac_address: "00:25:b5:a0:00:2a" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic1' - - mac_address: "00:25:b5:a0:00:2b" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic2' - - mac_address: "00:25:b5:a0:00:2c" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic3' - - mac_address: "00:25:b5:a0:00:2d" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic4' - ############################################################################ - - name: pod2-node2 - node: *nodeparams - disks: *disks - remote_management: - <<: *remote_params - address: 172.30.8.65 - mac_address: "a8:9d:21:c9:4d:26" - interfaces: - - mac_address: "00:25:b5:a0:00:3a" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic1' - - mac_address: "00:25:b5:a0:00:3b" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic2' - - mac_address: "00:25:b5:a0:00:3c" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic3' - - mac_address: "00:25:b5:a0:00:3d" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic4' - ############################################################################ - - name: pod2-node3 - node: *nodeparams - disks: *disks - remote_management: - <<: *remote_params - address: 172.30.8.74 - mac_address: "a8:9d:21:c9:3a:92" - interfaces: - - mac_address: "00:25:b5:a0:00:4a" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic1' - - mac_address: "00:25:b5:a0:00:4b" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic2' - - mac_address: "00:25:b5:a0:00:4c" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic3' - - mac_address: "00:25:b5:a0:00:4d" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic4' - ############################################################################ - - name: pod2-node4 - node: *nodeparams - disks: *disks - remote_management: - <<: *remote_params - address: 172.30.8.73 - mac_address: "74:a2:e6:a4:14:9c" - interfaces: - - mac_address: "00:25:b5:a0:00:5a" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic1' - - mac_address: "00:25:b5:a0:00:5b" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic2' - - mac_address: "00:25:b5:a0:00:5c" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic3' - - mac_address: "00:25:b5:a0:00:5d" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic4' - ############################################################################ - - name: pod2-node5 - node: *nodeparams - disks: *disks - remote_management: - <<: *remote_params - address: 172.30.8.72 - mac_address: "a8:9d:21:a0:15:9c" - interfaces: - - mac_address: "00:25:b5:a0:00:6a" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic1' - - mac_address: "00:25:b5:a0:00:6b" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic2' - - mac_address: "00:25:b5:a0:00:6c" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic3' - - mac_address: "00:25:b5:a0:00:6d" - speed: 40gb - features: 'dpdk|sriov' - name: 'nic4' diff --git a/mcp/config/labs/local/virtual1.yaml b/mcp/config/labs/local/virtual1.yaml deleted file mode 100644 index b293b9775..000000000 --- a/mcp/config/labs/local/virtual1.yaml +++ /dev/null @@ -1,127 +0,0 @@ -############################################################################## -# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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 -############################################################################## ---- -### Fuel@OPNFV sample VIRTUAL POD descriptor file ### -### NOTE: This is subject to change as vPDF is not yet officialy supported ### - -version: 0.0 # Intentionally invalid to indicate this is experimental -details: - pod_owner: Fuel@OPNFV - contact: Fuel@OPNFV - lab: Example Lab - location: Example Location - type: development - link: https://wiki.opnfv.org/display/pharos/ -############################################################################## -jumphost: - name: virtual1-jump - node: - type: baremetal - vendor: HP - model: ProLiant BL460c Gen8 - arch: x86_64 - cpus: 2 - cpu_cflags: ivybridge - cores: 10 - memory: 64G - disks: - - name: 'disk1' - disk_capacity: 800G - disk_type: hdd - disk_interface: scsi - disk_rotation: 15000 - os: ubuntu-16.04 - remote_management: - type: ipmi - versions: - - 1.0 - - 2.0 - user: changeme - pass: changeme - address: 0.0.0.0 - mac_address: "00:00:00:00:00:00" - interfaces: - - name: 'nic1' - speed: 10gb - features: 'dpdk|sriov' - mac_address: "00:00:00:00:00:00" - vlan: native - - name: 'nic2' - speed: 10gb - features: 'dpdk|sriov' - mac_address: "00:00:00:00:00:00" - vlan: native -############################################################################## -nodes: - - name: node-1 # noha ctl01 or ha (novcp) kvm01 - node: &nodeparams - # Fuel overrides certain params (e.g. cpus, mem) based on node role later - type: virtual - vendor: libvirt - model: virt - arch: x86_64 - cpus: 1 - cpu_cflags: ivybridge - cores: 8 - memory: 6G - disks: &disks - - name: 'disk1' - disk_capacity: 100G - disk_type: hdd - disk_interface: scsi # virtio-scsi - disk_rotation: 15000 - remote_management: &remotemgmt - type: libvirt - user: changeme - pass: changeme - address: 127.0.0.1 # Not used currently, will be 'qemu:///system' later - interfaces: &interfaces - - name: 'nic1' - speed: 10gb - features: 'dpdk|sriov' - mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt - vlan: native - - name: 'nic2' - speed: 10gb - features: 'dpdk|sriov' - mac_address: "00:00:00:00:00:00" - vlan: native - - name: 'nic3' - speed: 10gb - features: 'dpdk|sriov' - mac_address: "00:00:00:00:00:00" - vlan: native - - name: 'nic4' - speed: 10gb - features: 'dpdk|sriov' - mac_address: "00:00:00:00:00:00" - vlan: native - ############################################################################ - - name: node-2 # noha gtw01 or ha (novcp) kvm02 - node: *nodeparams - disks: *disks - remote_management: *remotemgmt - interfaces: *interfaces - ############################################################################ - - name: node-3 # noha odl01 / unused or ha (novcp) kvm02 - node: *nodeparams - disks: *disks - remote_management: *remotemgmt - interfaces: *interfaces - ############################################################################ - - name: node-4 # cmp001 - node: *nodeparams - disks: *disks - remote_management: *remotemgmt - interfaces: *interfaces - ############################################################################ - - name: node-5 # cmp002 - node: *nodeparams - disks: *disks - remote_management: *remotemgmt - interfaces: *interfaces diff --git a/mcp/config/scenario/README.rst b/mcp/config/scenario/README.rst index e03182f11..0a5391637 100644 --- a/mcp/config/scenario/README.rst +++ b/mcp/config/scenario/README.rst @@ -1,22 +1,25 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. (c) 2017 Mirantis Inc., Enea AB and others. +.. (c) 2018 Mirantis Inc., Enea AB and others. -Fuel@OPNFV Scenario Configuration +OPNFV Fuel Scenario Configuration ================================= -Abstract: ---------- +Abstract +-------- + This directory contains configuration files for different OPNFV deployment -feature scenarios used by Fuel@OPNFV, e.g.: +feature scenarios used by OPNFV Fuel, e.g.: - High availability configuration; - Type of SDN controller to be deployed; - OPNFV collaboration project features to be deployed; - Provisioning of any other sevices; -- POD configuration (baremetal, virtual); +- POD configuration (``baremetal``, ``virtual``); + +NOTES +----- -NOTES: ------- This directory is highly likely to change and/or be replaced/complemented -by the new PDF (Pod Descriptor File) info in Pharos OPNFV git repo. +by the new ``SDF`` (Scenario Descriptor File) info in Pharos OPNFV git repo +in upcoming OPNFV releases. diff --git a/mcp/config/scenario/os-odl-bgpvpn-noha.yaml b/mcp/config/scenario/os-odl-bgpvpn-noha.yaml index 1b2e2d0fb..d49fcf677 100644 --- a/mcp/config/scenario/os-odl-bgpvpn-noha.yaml +++ b/mcp/config/scenario/os-odl-bgpvpn-noha.yaml @@ -14,6 +14,7 @@ cluster: - neutron_gateway - quagga - networks + - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-nofeature-ha.yaml b/mcp/config/scenario/os-odl-nofeature-ha.yaml index 51d476de5..61a28891d 100644 --- a/mcp/config/scenario/os-odl-nofeature-ha.yaml +++ b/mcp/config/scenario/os-odl-nofeature-ha.yaml @@ -12,6 +12,7 @@ cluster: - opendaylight - openstack_ha - networks + - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-nofeature-noha.yaml b/mcp/config/scenario/os-odl-nofeature-noha.yaml index 3133d0e62..b43f790ce 100644 --- a/mcp/config/scenario/os-odl-nofeature-noha.yaml +++ b/mcp/config/scenario/os-odl-nofeature-noha.yaml @@ -13,6 +13,7 @@ cluster: - openstack_noha - neutron_gateway - networks + - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-ovs-noha.yaml b/mcp/config/scenario/os-odl-ovs-noha.yaml index e2df6a476..02f652bee 100644 --- a/mcp/config/scenario/os-odl-ovs-noha.yaml +++ b/mcp/config/scenario/os-odl-ovs-noha.yaml @@ -14,6 +14,7 @@ cluster: - openstack_noha - neutron_gateway - networks + - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-sfc-noha.yaml b/mcp/config/scenario/os-odl-sfc-noha.yaml index 8611b0261..88ad1037b 100644 --- a/mcp/config/scenario/os-odl-sfc-noha.yaml +++ b/mcp/config/scenario/os-odl-sfc-noha.yaml @@ -14,6 +14,7 @@ cluster: - neutron_gateway - tacker - networks + - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/states/sqlalchemy_update b/mcp/config/states/sqlalchemy_update new file mode 100755 index 000000000..d4901a9c5 --- /dev/null +++ b/mcp/config/states/sqlalchemy_update @@ -0,0 +1,16 @@ +#!/bin/bash -e +############################################################################## +# Copyright (c) 2018 Mirantis Inc., Enea AB 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 +############################################################################## + +sqlalchemy_ver=1.2.1 + +salt -I 'neutron:server' pkg.install python-pip +salt -I 'neutron:server' cmd.run \ + "sudo -H -u neutron pip install --user SQLAlchemy==${sqlalchemy_ver}" + +salt -I 'neutron:server' service.restart neutron-server diff --git a/mcp/patches/Makefile b/mcp/patches/Makefile index be3eb9ee5..e0a1c34ce 100644 --- a/mcp/patches/Makefile +++ b/mcp/patches/Makefile @@ -25,7 +25,7 @@ FPATCHES = $(shell find ${F_PATCH_DIR} -name '*.patch') # In order to keep things sort of separate, we should only pass up (to main # Makefile) the fully-patched repos, and gather any fingerprinting info here. -# Fuel@OPNFV relies on upstream git repos (one per component) in 1 of 2 ways: +# OPNFV Fuel relies on upstream git repos (one per component) in 1 of 2 ways: # - pinned down to tag objects (e.g. "9.0.1") # - tracking upstream remote HEAD on a stable or master branch # FIXME(alav): Should we support mixed cases? (e.g. pin down only fuel-main) diff --git a/mcp/patches/README.rst b/mcp/patches/README.rst index 735b70341..28af0e8f7 100644 --- a/mcp/patches/README.rst +++ b/mcp/patches/README.rst @@ -1,30 +1,30 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. (c) 2017 Mirantis Inc., Enea AB and others. +.. (c) 2018 Mirantis Inc., Enea AB and others. ========================================== -Fuel@OPNFV submodule fetching and patching +OPNFV Fuel Submodule Fetching and Patching ========================================== This directory holds submodule fetching/patching scripts, intended for -working with upstream Fuel/MCP components (e.g.: reclass-system-salt-model) in -developing/applying OPNFV patches (backports, custom fixes etc.). +working with upstream Fuel/MCP components (e.g.: ``reclass-system-salt-model``) +in developing/applying OPNFV patches (backports, custom fixes etc.). The scripts should be friendly to the following 2 use-cases: - - development work: easily cloning, binding repos to specific commits, - remote tracking, patch development etc.; - - to provide parent build scripts an easy method of tracking upstream - references and applying OPNFV patches on top; +- development work: easily cloning, binding repos to specific commits, + remote tracking, patch development etc.; +- to provide parent build scripts an easy method of tracking upstream + references and applying OPNFV patches on top; Also, we need to support at least the following modes of operations: - - submodule bind - each submodule patches will be based on the commit ID - saved in the .gitmodules config file; - - remote tracking - each submodule will sync with the upstream remote - and patches will be applied on top of <sub_remote>/<sub_branch>/HEAD; +- submodule bind - each submodule patches will be based on the commit ID + saved in the ``.gitmodules`` config file; +- remote tracking - each submodule will sync with the upstream remote + and patches will be applied on top of ``<sub_remote>/<sub_branch>/HEAD``; -Workflow (development) +Workflow (Development) ====================== The standard development workflow should look as follows: @@ -32,114 +32,116 @@ The standard development workflow should look as follows: Decide whether remote tracking should be active or not ------------------------------------------------------ -NOTE: Setting the following var to any non-empty str enables remote track. +.. NOTE:: -NOTE: Leaving unset will enable remote track for anything but stable branch. + Setting the following var to any non-empty str enables remote track. - .. code-block:: bash +.. code-block:: console - $ export FUEL_TRACK_REMOTES="" + developer@machine:~/fuel$ export FUEL_TRACK_REMOTES="" Initialize git submodules ------------------------- -All Fuel sub-projects are registered as submodules. +All Fuel direct dependency projects are registered as submodules. If remote tracking is active, upstream remote is queried and latest remote -branch HEAD is fetched. Otherwise, checkout commit IDs from .gitmodules. +branch ``HEAD`` is fetched. Otherwise, checkout commit IDs from ``.gitmodules``. - .. code-block:: bash +.. code-block:: console - $ make sub + developer@machine:~/fuel$ make -C mcp/patches sub -Apply patches from `patches/<sub-project>/*` to respective submodules ---------------------------------------------------------------------- +Apply patches from ``patches/<sub-project>/*`` to respective submodules +----------------------------------------------------------------------- This will result in creation of: -- a tag called `${FUEL_MAIN_TAG}-opnfv-root` at the same commit as Fuel@OPNFV - upstream reference (bound to git submodule OR tracking remote HEAD); -- a new branch `opnfv-fuel` which will hold all the OPNFV patches, - each patch is applied on this new branch with `git-am`; -- a tag called `${FUEL_MAIN_TAG}-opnfv` at `opnfv-fuel/HEAD`; +- a tag called ``${F_OPNFV_TAG}-root`` at the same commit as OPNFV Fuel + upstream reference (bound to git submodule OR tracking remote ``HEAD``); +- a new branch ``nightly`` which will hold all the OPNFV patches, + each patch is applied on this new branch with ``git-am``; +- a tag called ``${F_OPNFV_TAG}`` at ``nightly/HEAD``; +- for each (sub)directory of ``patches/<sub-project>``, another pair of tags + ``${F_OPNFV_TAG}-<sub-directory>-fuel/patch-root`` and + ``${F_OPNFV_TAG}-<sub-directory>-fuel/patch`` are also created; - .. code-block:: bash +.. code-block:: console - $ make patches-import + developer@machine:~/fuel$ make -C mcp/patches patches-import Modify sub-projects for whatever you need ----------------------------------------- -Commit your changes when you want them taken into account in the build. +To add/change OPNFV-specific patches for a sub-project: -Re-create patches +- commit your changes inside the git submodule(s); +- move the git tag to the new reference so ``make patches-export`` will + pick up the new commit later; + +.. code-block:: console + + developer@machine:~/fuel$ cd ./path/to/submodule + developer@machine:~/fuel/path/to/submodule$ # ... + developer@machine:~/fuel/path/to/submodule$ git commit + developer@machine:~/fuel/path/to/submodule$ git tag -f ${F_OPNFV_TAG}-fuel/patch + +Re-create Patches ----------------- -Each commit on `opnfv-fuel` branch of each subproject will be -exported to `patches/subproject/` via `git format-patch`. +Each commit on ``nightly`` branch of each subproject will be +exported to ``patches/subproject/`` via ``git format-patch``. + +.. NOTE:: + + Only commit submodule file changes when you need to bump upstream refs. -NOTE: Only commit (-f) submodules when you need to bump upstream ref. +.. WARNING:: -NOTE: DO NOT commit patched submodules! + DO NOT commit patched submodules! - .. code-block:: bash +.. code-block:: console - $ make patches-export + developer@machine:~/fuel$ make -C mcp/patches patches-export patches-copyright -Clean workbench branches and tags +Clean Workbench Branches and Tags --------------------------------- - .. code-block:: bash +.. code-block:: console - $ make clean + developer@machine:~/fuel$ make -C mcp/patches clean -De-initialize submodules and force a clean clone +De-initialize Submodules and Force a Clean Clone ------------------------------------------------ - .. code-block:: bash +.. code-block:: console - $ make deepclean + developer@machine:~/fuel$ make -C mcp/patches deepclean -Sub-project maintenance +Sub-project Maintenance ======================= -Adding a new submodule +Adding a New Submodule ---------------------- -If you need to add another subproject, you can do it with `git submodule`. -Make sure that you specify branch (with `-b`), short name (with `--name`): - - .. code-block:: bash - - $ git submodule -b master add --name reclass-system-salt-model - https://github.com/Mirantis/reclass-system-salt-model - relative/path/to/submodule - -Working with remote tracking for upgrading Fuel components ----------------------------------------------------------- - -Enable remote tracking as described above, which at `make sub` will update -ALL submodules (e.g. reclass-system-salt-model) to remote branch (set in -.gitmodules) HEAD. +If you need to add another subproject, you can do it with ``git submodule``. +Make sure that you specify branch (with ``-b``), short name (with ``--name``): -* If upstream has NOT already tagged a new version, we can still work on - our patches, make sure they apply etc., then check for new upstream - changes (and that our patches still apply on top of them) by: +.. code-block:: console -* If upstream has already tagged a new version we want to pick up, checkout - the new tag in each submodule: + developer@machine:~/fuel$ git submodule -b master add --name reclass-system-salt-model \ + https://github.com/Mirantis/reclass-system-salt-model \ + mcp/reclass/classes/system -* Once satisfied with the patch and submodule changes, commit them: +Working with Remote Tracking +---------------------------- - - enforce FUEL_TRACK_REMOTES to "yes" if you want to constatly use the - latest remote branch HEAD (as soon as upstream pushes a change on that - branch, our next build will automatically include it - risk of our - patches colliding with new upstream changes); - - stage patch changes if any; - - if submodule tags have been updated (relevant when remote tracking is - disabled, i.e. we have a stable upstream baseline), add submodules; +Enable remote tracking as described above, which at ``make sub`` will update +ALL submodules (e.g. ``reclass-system-salt-model``) to remote branch (set in +``.gitmodules``) ``HEAD``. - .. code-block:: bash +.. WARNING:: - $ make deepclean patches-import - $ git submodule foreach 'git checkout <newtag>' - $ make deepclean sub && git add -f relative/path/to/submodule + Enforce ``FUEL_TRACK_REMOTES`` to ``yes`` only if you want to constatly + use the latest remote branch ``HEAD`` (as soon as upstream pushes a change + on that branch, our next build will automatically include it - risk of our + patches colliding with new upstream changes) - for **ALL** submodules. diff --git a/mcp/patches/config.mk b/mcp/patches/config.mk index 260cbf829..5e5d3b327 100644 --- a/mcp/patches/config.mk +++ b/mcp/patches/config.mk @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2015,2016,2017 Ericsson AB, Enea AB and others. +# Copyright (c) 2018 Ericsson AB, Enea AB and others. # stefan.k.berg@ericsson.com # jonas.bjurel@ericsson.com # All rights reserved. This program and the accompanying materials @@ -18,6 +18,5 @@ F_GIT_DIR := $(shell git rev-parse --git-dir) F_PATCH_DIR := $(shell pwd) F_OPNFV_TAG := master-opnfv -# for the patches applying purposes (empty git config in docker build container) export GIT_COMMITTER_NAME?=Fuel OPNFV export GIT_COMMITTER_EMAIL?=fuel@opnfv.org diff --git a/mcp/reclass/classes/cluster/README.rst b/mcp/reclass/classes/cluster/README.rst index 69234043a..2bb0f265b 100644 --- a/mcp/reclass/classes/cluster/README.rst +++ b/mcp/reclass/classes/cluster/README.rst @@ -2,22 +2,22 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) 2017 Mirantis Inc., Enea AB and others. -Fuel@OPNFV Cluster Reclass Models +OPNFV Fuel Cluster Reclass Models ================================= Overview -------- -#. Common classes (HA + noHA) +#. Common classes (HA **and** noHA) - - all-mcp-arch-common + - all-mcp-arch-common -#. Common classes (HA baremetal/virtual, noHA virtual) +#. Common classes (HA **or** noHA) - - mcp-<release>-common-ha - - mcp-<release>-common-noha + - mcp-common-ha + - mcp-common-noha #. Cluster specific classes - - mcp-<release>-*-{ha,noha} - - mcp-<release>-*-{ha,noha} + - mcp-\*-ha + - mcp-\*-noha diff --git a/mcp/scripts/lib_template.sh b/mcp/scripts/lib_template.sh index daa04441b..980827c7a 100644 --- a/mcp/scripts/lib_template.sh +++ b/mcp/scripts/lib_template.sh @@ -31,9 +31,6 @@ function do_templates_scenario { LOCAL_PDF="${image_dir}/$(basename "${BASE_CONFIG_PDF}")" LOCAL_IDF="${image_dir}/$(basename "${BASE_CONFIG_IDF}")" - # Make sample PDF/IDF available via default lab-config (pharos submodule) - ln -sf "$(readlink -f "../config/labs/local")" "./pharos/labs/" - # Expand scenario file and main reclass input (pod_config.yaml) based on PDF if ! curl --create-dirs -o "${LOCAL_PDF}" "${BASE_CONFIG_PDF}"; then notify_e "[ERROR] Could not retrieve PDF (Pod Descriptor File)!" |