From d8dd9847b7a534b3c78af1b3eb772f07a3543d0c Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Sun, 19 Nov 2017 02:13:08 +0100 Subject: u/fuel: Bump & rebase for new deploy arg `-E` Slight refactor of Armband high states, combine all parts touching salt minion into a single `armband.salt_minion` state. Also bring in support for NVRAM-backed domain undefine via `virt.purge` by passing down the proper flag to libvirt. While at it, squash mcp/patches touching the same lines of code in <_modules/seedng.py>, so deploys using `-f` do not fail at the patch stage (due to conflicting patch lines, checking for `patch -R` does not work as expected). Change-Id: Iefca061e641854d28bd8576f2b4547c87c239e32 Signed-off-by: Alexandru Avadanii --- ...lt-formulas-armband-Extend-libvirt_domain.patch | 142 +++++++++++++++------ 1 file changed, 106 insertions(+), 36 deletions(-) (limited to 'patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch') diff --git a/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch b/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch index a7144f08..1ea8f5af 100644 --- a/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch +++ b/patches/opnfv-fuel/0007-mcp-salt-formulas-armband-Extend-libvirt_domain.patch @@ -10,42 +10,85 @@ From: Alexandru Avadanii Date: Sun, 20 Aug 2017 22:41:26 +0200 Subject: [PATCH] mcp: salt-formulas: armband: Extend libvirt_domain -Add new state in armband salt formula that extends salt's virt -libvirt_domain.jinja template with support for: -- hw_firmware_type; -- virt_machine_model; -- cpu_model; +Add new state in armband salt formula that: +* extends salt's virt libvirt_domain.jinja template with support for: + - hw_firmware_type; + - virt_machine_model; + - cpu_model; + These will later be leveraged via salt virt formula with AArch64 + specific values. +* to ensure compatibilty of `virt.purge` with NVRAM-enabled domains + at undefine time, pass down the proper flag to libvirt from virt.py. +* re-enable AArch64 bootstrap + Recent changes in salt bootstrap script from [1] whitelist a + fixed pool of known architectures. Add "arm64" to that list on the + fly, as part of `config.gather_bootstrap_script`. + NOTE: This change will be leveraged by passing a custom DEB repo to + the bootstrap script with `-R linux.enea.com/saltstack`. -These will later be leveraged via salt virt formula with AArch64 -specific values. +NOTE: After running this new state, salt-minion should be restarted +to pick up the changes, so we'll run it before rebooting kvm nodes. + +[1] http://bootstrap.saltstack.com Signed-off-by: Alexandru Avadanii --- - mcp/config/states/virtual_control_plane | 1 + - .../armband/files/libvirt_domain.jinja.diff | 46 ++++++++++++++++++++++ - .../armband/libvirt_domain_template.sls | 4 ++ - 3 files changed, 51 insertions(+) - create mode 100644 mcp/salt-formulas/armband/files/libvirt_domain.jinja.diff - create mode 100644 mcp/salt-formulas/armband/libvirt_domain_template.sls + mcp/config/states/virtual_control_plane | 1 + + .../armband/files/salt-minion-aarch64-rollup.diff | 101 +++++++++++++++++++++ + mcp/salt-formulas/armband/salt_minion.sls | 7 ++ + 3 files changed, 109 insertions(+) + create mode 100644 mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff + create mode 100644 mcp/salt-formulas/armband/salt_minion.sls diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane -index 99fb517..abf46ce 100755 +index 99fb517..88a4488 100755 --- a/mcp/config/states/virtual_control_plane +++ b/mcp/config/states/virtual_control_plane -@@ -47,6 +47,7 @@ wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \ - salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp - - salt -C 'kvm*' state.sls armband || true -+salt -C 'kvm*' state.sls armband.libvirt_domain_template || true - wait_for 5 "salt -C 'kvm*' state.sls libvirt" - - salt -C '* and not cfg01* and not mas01*' state.apply salt -diff --git a/mcp/salt-formulas/armband/files/libvirt_domain.jinja.diff b/mcp/salt-formulas/armband/files/libvirt_domain.jinja.diff +@@ -40,6 +40,7 @@ salt -C 'kvm*' pkg.install bridge-utils + salt -C 'kvm*' state.apply linux.network + salt -C 'cmp*' state.apply linux.system + salt -C 'cmp*' state.apply linux.network || true ++salt -C 'kvm*' state.apply armband.salt_minion || true + salt -C 'kvm* or cmp*' system.reboot + wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \ + "tee /dev/stderr | grep -Fq 'Not connected'" +diff --git a/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff b/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff new file mode 100644 -index 0000000..4e7fad5 +index 0000000..9e74c24 --- /dev/null -+++ b/mcp/salt-formulas/armband/files/libvirt_domain.jinja.diff -@@ -0,0 +1,46 @@ ++++ b/mcp/salt-formulas/armband/files/salt-minion-aarch64-rollup.diff +@@ -0,0 +1,101 @@ ++From: Alexandru Avadanii ++Date: Sun Aug 20 18:18:53 2017 +0200 ++Subject: [PATCH] cloud.py: Allow AArch64 arch in salt bootstrap ++ ++Recent changes in salt bootstrap script from [1] whitelist a ++fixed pool of known architectures. Add "arm64" to that list on the ++fly, as part of `config.gather_bootstrap_script`. ++ ++NOTE: This change will be leveraged by passing a custom DEB repo to ++the bootstrap script with `-R linux.enea.com/saltstack`. ++ ++[1] http://bootstrap.saltstack.com ++ ++Signed-off-by: Alexandru Avadanii ++--- ++ ++diff --git a/salt/utils/cloud.py b/salt/utils/cloud.py ++--- a/salt/utils/cloud.py +++++ b/salt/utils/cloud.py ++@@ -2772,6 +2772,9 @@ ++ if not script_content: ++ raise ValueError('No content in bootstrap script !') ++ +++ # NOTE(armband): edit bootstrap script on the fly to allow AArch64 +++ script_content = script_content.replace('"amd64")', '"amd64"|"arm64")') +++ ++ # Get the path to the built-in deploy scripts directory ++ builtin_deploy_dir = os.path.join( ++ os.path.dirname(__file__), ++-- ++ +From: Alexandru Avadanii +Date: Sun Aug 20 18:18:53 2017 +0200 +Subject: [PATCH] libvirt_domain.jinja: Add AArch64 support @@ -66,9 +109,9 @@ index 0000000..4e7fad5 +Signed-off-by: Alexandru Avadanii +--- + -+diff --git a/usr/lib/python2.7/dist-packages/salt/templates/virt/libvirt_domain.jinja b/usr/lib/python2.7/dist-packages/salt/templates/virt/libvirt_domain.jinja -+--- a/usr/lib/python2.7/dist-packages/salt/templates/virt/libvirt_domain.jinja -++++ b/usr/lib/python2.7/dist-packages/salt/templates/virt/libvirt_domain.jinja ++diff --git a/salt/templates/virt/libvirt_domain.jinja b/salt/templates/virt/libvirt_domain.jinja ++--- a/salt/templates/virt/libvirt_domain.jinja +++++ b/salt/templates/virt/libvirt_domain.jinja +@@ -3,11 +3,22 @@ + {{ cpu }} + {{ mem }} @@ -92,13 +135,40 @@ index 0000000..4e7fad5 + + {% for diskname, disk in disks.items() %} + -diff --git a/mcp/salt-formulas/armband/libvirt_domain_template.sls b/mcp/salt-formulas/armband/libvirt_domain_template.sls ++-- ++ ++From: Alexandru Avadanii ++Date: Sun Nov 19 02:18:53 2017 +0200 ++Subject: [PATCH] virt.py: undefine: NVRAM flag support ++ ++Signed-off-by: Alexandru Avadanii ++--- ++ ++diff --git a/salt/modules/virt.py b/salt/modules/virt.py ++--- a/salt/modules/virt.py +++++ b/salt/modules/virt.py ++@@ -1523,7 +1523,10 @@ ++ salt '*' virt.undefine ++ ''' ++ dom = _get_domain(vm_) ++- return dom.undefine() == 0 +++ try: +++ return dom.undefineFlags(libvirt.VIR_DOMAIN_UNDEFINE_NVRAM) == 0 +++ except libvirt.libvirtError: +++ return dom.undefine() == 0 ++ ++ ++ def purge(vm_, dirs=False): +diff --git a/mcp/salt-formulas/armband/salt_minion.sls b/mcp/salt-formulas/armband/salt_minion.sls new file mode 100644 -index 0000000..7cc8e22 +index 0000000..9cce636 --- /dev/null -+++ b/mcp/salt-formulas/armband/libvirt_domain_template.sls -@@ -0,0 +1,4 @@ -+/usr/lib/python2.7/dist-packages/salt/templates/virt/libvirt_domain.jinja: ++++ b/mcp/salt-formulas/armband/salt_minion.sls +@@ -0,0 +1,7 @@ ++salt-minion-aarch64-rollup: + file.patch: -+ - source: salt://armband/files/libvirt_domain.jinja.diff -+ - hash: "9d02cd8aa04497c2d75c72840a5c6c41" ++ - name: /usr/lib/python2.7/dist-packages ++ - source: salt://armband/files/salt-minion-aarch64-rollup.diff ++ - hash: False ++ - options: '-p1' ++ - unless: 'test -f /var/cache/salt/minion/files/base/armband/files/salt-minion-aarch64-rollup.diff && cd /usr/lib/python2.7/dist-packages && patch -p1 -R --dry-run /var/cache/salt/minion/files/base/armband/files/salt-minion-aarch64-rollup.diff' -- cgit 1.2.3-korg