From 6de5bac371844b70b96b9bd75b62b8d06e5f51fc Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Sat, 24 Sep 2016 17:27:16 +0200 Subject: build: Use git submodules for Fuel git repos This change reworks support for cloning (fetching) and patching all Fuel components (fuel-library ... fuel-ui, see [1] for full list), both outside the ISO build process (for development purposes, like testing OPNFV patches apply cleanly to each component), and during the ISO build. The implementation relies heavily on git submodules and patches, so backporting pending upstream gerrit changes, as well as adding new out-of-upstream-tree patches, should be trivial. Also, since without tracking remotes the repos rarely change, leverage the in-place OPNFV build caching mechanism to drastically reduce the number of git clones during each build. The mechanism is detailed more in-depth in the JIRA ticket [3], and it's merely a rehash of the submodule handling in Armband, implemented initially by Stanislaw Kardach . Pros (+ new features): - OPNFV patches for Fuel components can be applied (imported) or developed (exported) outside of the ISO build process; - git repo caching reduces the number of external pulls; - reuse the same fuel-* componets in ALL targets e.g. fuel-mirror used to employ 2 slightly different git trees; - one step closer to Fuel/Armband merge (lots of steps left though); Cons: - adds a lot complexity to solve a non-problem (handling the repos is fine in the current form, for the current goals); However, patching or seems to be quite complicated with the current mechanism, as env vars override our locally patched repos for these components). The proposed change should eliminate this issue completely. CHANGE: Aligned divergent fuel-mirror in ISO vs local repo build by applying the 302 redirect fix ("Fixed handling http redirects") [2] on top of 9.0.1 tag in fuel-mirror repo, and using that for both. This obsoleted the followking mk file: - build/f_isoroot/f_repobuild/config.mk CHANGE: Removed unused make target `get-fuel-repo` from build/config.mk. FIXME: Remote tracking is currently deactivated for all branches. Change this when remote HEAD should be tracked instead, e.g. during Newton rebase. [1] https://github.com/openstack/fuel-main/blob/stable/mitaka/repos.mk#L32 [2] https://review.openstack.org/#/c/334882/ [3] https://jira.opnfv.org/browse/FUEL-200 TODO: Extend build/f_repos/README.md with info about: - branch changes; - tag bumps; - patching now supports subdirs; v5 -> v6: * Added support for nesting patches in subdirs, to be used for feature groups and related changes across submodules. E.g. Upcoming multiarch EFI support could go in: - .../f_repos/patch/fuel-agent/multiarch-efi/...; - .../f_repos/patch/fuel-astute/multiarch-efi/...; While Armband patches could go in: - .../f_repos/patch/fuel-agent/armband/...; - .../f_repos/patch/fuel-astute/armband/...; etc. v6 -> v13: * fix wrong tag used for VERSION dump; * fix wrong tag used for patches-export; * move OPNFV_TAG to main config.mk and use it in FUEL_*_COMMIT; * only run `patches-import` when patches changed / not yet applied; * only run `clean` for stale `.cacheid` (avoid re-applying patches); * allow git submodule path/name to be different (FIXED); * put-cache should only run when artifact is not already cached; * `git am`: use 3-way merge so already applied patches are gently skipped (useful for upstreaming patches from Armband); * Properly support nested patch dirs; * Colorize the output a little; JIRA: FUEL-200 Change-Id: I9dbdd9b3022896d4497d21be8dacc859730db489 Signed-off-by: Alexandru Avadanii --- .../patch-repos/0010-bootstrap_admin_node.sh.patch | 83 ---------------------- build/patch-repos/0020-isolinux.cfg.patch | 21 ------ .../0030-repo-multi-arch-local-mirrors.patch | 59 --------------- ...ls-to-add-files-with-path-longer-then-240.patch | 24 ------- ...en-revoke-to-increase-keystone-performanc.patch | 44 ------------ .../0001-Reduce-ceilometer-memory-usage.patch | 30 -------- ...ntel-82599-10-Gigabit-NIC-as-DPDK-capable.patch | 22 ------ 7 files changed, 283 deletions(-) delete mode 100644 build/patch-repos/0010-bootstrap_admin_node.sh.patch delete mode 100644 build/patch-repos/0020-isolinux.cfg.patch delete mode 100644 build/patch-repos/0030-repo-multi-arch-local-mirrors.patch delete mode 100644 build/patch-repos/0040-xorriso-fails-to-add-files-with-path-longer-then-240.patch delete mode 100644 build/patch-repos/build/repos/fuel-library/0001-Disable-token-revoke-to-increase-keystone-performanc.patch delete mode 100644 build/patch-repos/build/repos/fuel-library/0001-Reduce-ceilometer-memory-usage.patch delete mode 100644 build/patch-repos/build/repos/fuel-nailgun/0010-Mark-Intel-82599-10-Gigabit-NIC-as-DPDK-capable.patch (limited to 'build/patch-repos') diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch deleted file mode 100644 index d3769adfb..000000000 --- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch +++ /dev/null @@ -1,83 +0,0 @@ -From: Fuel OPNFV -Date: Mon, 13 Jun 2016 22:23:57 +0200 -Subject: OPNFV: Additions to bootstrap_admin_node.sh - ---- -diff --git a/iso/bootstrap_admin_node.sh b/iso/bootstrap_admin_node.sh -index 3197c91..e035145 100755 ---- a/iso/bootstrap_admin_node.sh -+++ b/iso/bootstrap_admin_node.sh -@@ -339,8 +339,22 @@ fuelmenu --save-only --iface=$ADMIN_INTERFACE || fail - set +x - echo "Done!" - -+### OPNFV addition BEGIN -+shopt -s nullglob -+for script in /opt/opnfv/bootstrap/pre.d/*.sh -+do -+ echo "Pre script: $script" >> /root/pre.log 2>&1 -+ $script >> /root/pre.log 2>&1 -+done -+shopt -u nullglob -+### OPNFV addition END -+ -+# Enable sshd -+systemctl enable sshd -+systemctl start sshd -+ - if [[ "$showmenu" == "yes" || "$showmenu" == "YES" ]]; then -- fuelmenu || fail -+ fuelmenu - else - # Give user 15 seconds to enter fuelmenu or else continue - echo -@@ -360,9 +374,10 @@ else - fi - fi - -+# OPNFV: Disabled to speedup installation in offline env. - # Enable online base MOS repos (security, updates) if we run an ISO installation --[ -f /etc/fuel_build_id ] && \ -- yum-config-manager --enable mos${FUEL_RELEASE}-security mos${FUEL_RELEASE}-updates --save -+#[ -f /etc/fuel_build_id ] && \ -+# yum-config-manager --enable mos${FUEL_RELEASE}-security mos${FUEL_RELEASE}-updates --save - - if [ ! -f "${ASTUTE_YAML}" ]; then - echo ${fuelmenu_fail_message} -@@ -377,7 +392,5 @@ if [ ! -f /etc/fuel_build_id ]; then - --# Enable sshd --systemctl enable sshd --systemctl start sshd -+systemctl reload sshd - - # Enable iptables - systemctl enable iptables.service -@@ -532,6 +545,16 @@ systemctl start ntpd - - bash /etc/rc.local - -+### OPNFV addition BEGIN -+shopt -s nullglob -+for script in /opt/opnfv/bootstrap/post.d/*.sh -+do -+ echo "Post script: $script" >> /root/post.log 2>&1 -+ $script >> /root/post.log 2>&1 -+done -+shopt -u nullglob -+### OPNFV addition END -+ - if [ "`get_bootstrap_skip`" = "False" ]; then - build_ubuntu_bootstrap bs_status || true - else -@@ -571,8 +571,8 @@ - fi - - #Check if repo is accessible --echo "Checking for access to updates repository..." --repourl=$(yum repolist all -v | awk '{if ($1 ~ "baseurl" && $3 ~ "updates") print $3}' | head -1) -+echo "Checking for access to updates repository/mirrorlist..." -+repourl=$(yum repolist all -v | awk '{if ($1 ~ "baseurl|mirrors" && $3 ~ "updates") print $3}' | head -1) - if urlaccesscheck check "$repourl" ; then - UPDATE_ISSUES=0 - else diff --git a/build/patch-repos/0020-isolinux.cfg.patch b/build/patch-repos/0020-isolinux.cfg.patch deleted file mode 100644 index f09be2a7f..000000000 --- a/build/patch-repos/0020-isolinux.cfg.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: Fuel OPNFV -Date: Mon, 13 Jun 2016 22:23:57 +0200 -Subject: OPNFV: showmenu=yes in isolinux.cfg - ---- -diff --git a/iso/isolinux/isolinux.cfg b/iso/isolinux/isolinux.cfg -index c6b1ed9..77a4b18 100644 ---- a/iso/isolinux/isolinux.cfg -+++ b/iso/isolinux/isolinux.cfg -@@ -19,9 +19,9 @@ label nailgun - menu label ^1. Fuel Install (Static IP) - menu default - kernel vmlinuz -- append initrd=initrd.img net.ifnames=0 biosdevname=0 inst.repo=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ inst.ks=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: nameserver=10.20.0.1 -+ append initrd=initrd.img net.ifnames=0 biosdevname=0 inst.repo=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ inst.ks=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: nameserver=10.20.0.1 showmenu=yes - - label nailgunifname - menu label ^2. Fuel Advanced Install (Static IP) - kernel vmlinuz -- append initrd=initrd.img inst.repo=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ inst.ks=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: nameserver=10.20.0.1 ifname=adminif:XX:XX:XX:XX:XX:XX -+ append initrd=initrd.img inst.repo=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ inst.ks=cdrom:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: nameserver=10.20.0.1 ifname=adminif:XX:XX:XX:XX:XX:XX showmenu=yes diff --git a/build/patch-repos/0030-repo-multi-arch-local-mirrors.patch b/build/patch-repos/0030-repo-multi-arch-local-mirrors.patch deleted file mode 100644 index d40428743..000000000 --- a/build/patch-repos/0030-repo-multi-arch-local-mirrors.patch +++ /dev/null @@ -1,59 +0,0 @@ -From: Stanislaw Kardach -Date: Thu, 25 Feb 2016 13:31:19 +0100 -Subject: repo mirror: Allow multi-arch local mirrors - -This patch allows specifying multiple architectures via UBUNTU_ARCH in -form of a list of space separated architectures. The first architecture -in the list is considered primary and will be used for building all the -deb packages by fuel-main. Additional architectures are added to allow -targets of other architectures to use the mirror. -NOTE: this imposes a requirement that all packages built are arch -independent (which is true so far). - -Signed-off-by: Stanislaw Kardach -Signed-off-by: Alexandru Avadanii ---- - mirror/ubuntu/module.mk | 2 +- - sandbox.mk | 2 +- - config.mk | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/mirror/ubuntu/module.mk b/mirror/ubuntu/module.mk -index 7a9466e..fe1ada2 100644 ---- a/mirror/ubuntu/module.mk -+++ b/mirror/ubuntu/module.mk -@@ -81,7 +81,7 @@ $(BUILD_DIR)/mirror/ubuntu/mirror.done: - --root=$(MIRROR_MOS_UBUNTU_ROOT) \ - --dist=$(MIRROR_MOS_UBUNTU_SUITE) \ - --section=$(subst $(space),$(comma),$(MIRROR_MOS_UBUNTU_SECTION)) \ -- --arch=$(UBUNTU_ARCH) \ -+ --arch=$(shell echo $(UBUNTU_ARCH) | tr ' ' ',') \ - $(LOCAL_MIRROR_UBUNTU)/ - rm -rf $(LOCAL_MIRROR_UBUNTU)/.temp $(LOCAL_MIRROR_UBUNTU)/project - $(ACTION.TOUCH) -diff --git a/sandbox.mk b/sandbox.mk -index 4bc3962..5ffddbd 100644 ---- a/sandbox.mk -+++ b/sandbox.mk -@@ -188,7 +188,7 @@ touch $(SANDBOX_UBUNTU)/etc/init.d/.legacy-bootordering - mkdir -p $(SANDBOX_UBUNTU)/usr/sbin - cp -a $(BUILD_DIR)/policy-rc.d $(SANDBOX_UBUNTU)/usr/sbin - echo "Running debootstrap" --sudo debootstrap --no-check-gpg --include=ca-certificates --arch=$(UBUNTU_ARCH) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) -+sudo debootstrap --no-check-gpg --include=ca-certificates --arch=$(word 1,$(UBUNTU_ARCH)) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) - if [ -e $(SANDBOX_UBUNTU)/etc/resolv.conf ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf.orig; fi - sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf - if [ -e $(SANDBOX_UBUNTU)/etc/hosts ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/hosts $(SANDBOX_UBUNTU)/etc/hosts.orig; fi -diff --git a/config.mk b/config.mk -index 74ee039..45a3b30 100644 ---- a/config.mk -+++ b/config.mk -@@ -49,7 +49,7 @@ UBUNTU_MINOR:=04 - UBUNTU_RELEASE_NUMBER:=$(UBUNTU_MAJOR).$(UBUNTU_MINOR) - UBUNTU_KERNEL_FLAVOR?=lts-trusty - UBUNTU_NETBOOT_FLAVOR?=netboot --UBUNTU_ARCH:=amd64 -+UBUNTU_ARCH?=amd64 - UBUNTU_IMAGE_RELEASE:=$(UBUNTU_MAJOR)$(UBUNTU_MINOR) - SEPARATE_IMAGES?=/boot,ext2 /,ext4 - diff --git a/build/patch-repos/0040-xorriso-fails-to-add-files-with-path-longer-then-240.patch b/build/patch-repos/0040-xorriso-fails-to-add-files-with-path-longer-then-240.patch deleted file mode 100644 index 734523040..000000000 --- a/build/patch-repos/0040-xorriso-fails-to-add-files-with-path-longer-then-240.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Artem Silenkov -Date: Tue, 22 Sep 2015 21:54:44 +0300 -Subject: [PATCH] xorriso fails to add files with path longer then 240 - -joliet-long option added to xorriso command line - -Change-Id: I97016cf3e6a554f44d839740ba7d210337435cdc -Related-Bug: #1498619 ---- - iso/module.mk | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/iso/module.mk b/iso/module.mk -index 8995378..0073068 100644 ---- a/iso/module.mk -+++ b/iso/module.mk -@@ -174,6 +174,7 @@ $(ISO_PATH): $(BUILD_DIR)/iso/isoroot.done - -V $(ISO_VOLUME_ID) -p $(ISO_VOLUME_PREP) \ - -J -R \ - -graft-points \ -+ -joliet-long \ - -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \ - -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \ - -eltorito-alt-boot -e images/efiboot.img -no-emul-boot \ diff --git a/build/patch-repos/build/repos/fuel-library/0001-Disable-token-revoke-to-increase-keystone-performanc.patch b/build/patch-repos/build/repos/fuel-library/0001-Disable-token-revoke-to-increase-keystone-performanc.patch deleted file mode 100644 index 4d5be493b..000000000 --- a/build/patch-repos/build/repos/fuel-library/0001-Disable-token-revoke-to-increase-keystone-performanc.patch +++ /dev/null @@ -1,44 +0,0 @@ -From ba542dde34743b276547b7ca3c6591feb9000877 Mon Sep 17 00:00:00 2001 -From: iberezovskiy -Date: Mon, 19 Sep 2016 12:35:05 +0300 -Subject: [PATCH] Disable token revoke to increase keystone performance - -Change-Id: I4df816369093908ad1eac372f38c92155efbe8e0 -Closes-bug: #1625077 ---- - .../openstack_tasks/manifests/keystone/keystone.pp | 2 ++ - tests/noop/spec/hosts/keystone/keystone_spec.rb | 5 +++++ - 2 files changed, 7 insertions(+) - -diff --git a/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp b/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp -index 3162287..ba9d7df 100644 ---- a/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp -+++ b/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp -@@ -327,6 +327,8 @@ class openstack_tasks::keystone::keystone { - memcache_pool_unused_timeout => '60', - cache_memcache_servers => $memcache_servers, - policy_driver => 'keystone.policy.backends.sql.Policy', -+ # Set revoke_by_id to false according to LP #1625077 -+ revoke_by_id => false, - } - - Package<| title == 'keystone'|> ~> Service<| title == 'keystone'|> -diff --git a/tests/noop/spec/hosts/keystone/keystone_spec.rb b/tests/noop/spec/hosts/keystone/keystone_spec.rb -index b29e691..3c0f847 100644 ---- a/tests/noop/spec/hosts/keystone/keystone_spec.rb -+++ b/tests/noop/spec/hosts/keystone/keystone_spec.rb -@@ -176,6 +176,11 @@ describe manifest do - should contain_class('keystone').with('sync_db' => primary_controller) - end - -+ it 'should declare keystone class with revoke_by_id set to false' do -+ # Set revoke_by_id to false according to LP #1625077 -+ should contain_class('keystone').with('revoke_by_id' => false) -+ end -+ - it 'should configure keystone with paramters' do - should contain_keystone_config('token/caching').with(:value => 'false') - should contain_keystone_config('cache/enabled').with(:value => 'true') --- -1.7.9.5 - diff --git a/build/patch-repos/build/repos/fuel-library/0001-Reduce-ceilometer-memory-usage.patch b/build/patch-repos/build/repos/fuel-library/0001-Reduce-ceilometer-memory-usage.patch deleted file mode 100644 index f7fe06884..000000000 --- a/build/patch-repos/build/repos/fuel-library/0001-Reduce-ceilometer-memory-usage.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 38315ee3945a5444de13918eb29e7771eb9927c7 Mon Sep 17 00:00:00 2001 -From: Michael Polenchuk -Date: Thu, 8 Sep 2016 19:25:14 +0300 -Subject: [PATCH 1/1] Reduce ceilometer memory usage - -Change-Id: I8b1a97bd710c859a3543d1aed8226313f35f4f10 ---- - .../manifests/ceilometer/controller.pp | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp b/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp -index 2c63ff0..1dda109 100644 ---- a/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp -+++ b/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp -@@ -234,5 +234,12 @@ class openstack_tasks::ceilometer::controller { - Ceilometer_config<| title == 'oslo_messaging_rabbit/kombu_compression' |> { value => $kombu_compression } - } - } -+ -+ # Reduce memory usage -+ ceilometer_config { -+ 'DEFAULT/executor_thread_pool_size': value => ceiling($service_workers*0.5); -+ 'notification/pipeline_processing_queues': value => ceiling($service_workers*1.5); -+ 'oslo_messaging_rabbit/rabbit_qos_prefetch_count': value => 5; -+ } - } - } --- -1.7.9.5 - diff --git a/build/patch-repos/build/repos/fuel-nailgun/0010-Mark-Intel-82599-10-Gigabit-NIC-as-DPDK-capable.patch b/build/patch-repos/build/repos/fuel-nailgun/0010-Mark-Intel-82599-10-Gigabit-NIC-as-DPDK-capable.patch deleted file mode 100644 index d486f2354..000000000 --- a/build/patch-repos/build/repos/fuel-nailgun/0010-Mark-Intel-82599-10-Gigabit-NIC-as-DPDK-capable.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Fuel OPNFV -Date: Wed, 3 Aug 2016 09:41:21 +0200 -Subject: [PATCH] Mark Intel 82599 10 Gigabit NIC as DPDK capable - -This NIC is used on Ericsson POD2 but Fuel doesn't allow to activate -DPDK on it. ---- - nailgun/nailgun/fixtures/openstack.yaml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml -index 74fa509..d08a4fc 100644 ---- a/nailgun/nailgun/fixtures/openstack.yaml -+++ b/nailgun/nailgun/fixtures/openstack.yaml -@@ -2215,3 +2215,3 @@ - "14e4:163f", "14e4:168d", "14e4:16a1", "14e4:16a2", "14e4:16ad", -- "14e4:16ae", "14e4:163e", "14e4:16a4" -+ "14e4:16ae", "14e4:163e", "14e4:16a4", "8086:10f8" - ] --- -1.9.1 - -- cgit 1.2.3-korg