:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Copyright (c) 2017 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 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: From: Alexandru Avadanii Date: Mon, 21 Aug 2017 20:53:03 +0200 Subject: [PATCH] mcp: salt-formulas: armband: 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`. 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/bootstrap_script_arm64.sls | 4 +++ mcp/salt-formulas/armband/files/cloud.py.diff | 29 ++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 mcp/salt-formulas/armband/bootstrap_script_arm64.sls create mode 100644 mcp/salt-formulas/armband/files/cloud.py.diff diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane index 57c5685..8b9e3ef 100755 --- a/mcp/config/states/virtual_control_plane +++ b/mcp/config/states/virtual_control_plane @@ -26,6 +26,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.bootstrap_script_arm64 || 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/bootstrap_script_arm64.sls b/mcp/salt-formulas/armband/bootstrap_script_arm64.sls new file mode 100644 index 0000000..845dedd --- /dev/null +++ b/mcp/salt-formulas/armband/bootstrap_script_arm64.sls @@ -0,0 +1,4 @@ +/usr/lib/python2.7/dist-packages/salt/utils/cloud.py: + file.patch: + - source: salt://armband/files/cloud.py.diff + - hash: "ecd450b187156c1f6a91ea272fd668b0" diff --git a/mcp/salt-formulas/armband/files/cloud.py.diff b/mcp/salt-formulas/armband/files/cloud.py.diff new file mode 100644 index 0000000..75c3281 --- /dev/null +++ b/mcp/salt-formulas/armband/files/cloud.py.diff @@ -0,0 +1,29 @@ +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//usr/lib/python2.7/dist-packages/salt/utils/cloud.py b//usr/lib/python2.7/dist-packages/salt/utils/cloud.py +--- a//usr/lib/python2.7/dist-packages/salt/utils/cloud.py ++++ b//usr/lib/python2.7/dist-packages/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__),