:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Copyright (c) 2018 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, 7 Aug 2017 19:45:01 +0200 Subject: [PATCH] maas: Add curtin_userdata_arm64_generic_xenial Add AArch64 specific configuration. While at it, preseed Armband common repo-comp for Pike, so we get the updated kernel & other packages from the start. Signed-off-by: Alexandru Avadanii --- ...-Add-curtin_userdata_arm64_generic_xenial.patch | 35 +++++++++++++++++++++ mcp/patches/patches.list | 1 + .../baremetal-mcp-pike-common-ha/infra/maas.yml | 36 ++++++++++++++++++++++ .../files/curtin_userdata_arm64_generic_xenial | 35 +++++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch create mode 100644 mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial diff --git a/mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch b/mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch new file mode 100644 index 0000000..0368937 --- /dev/null +++ b/mcp/patches/0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch @@ -0,0 +1,35 @@ +From: Alexandru Avadanii +Date: Sat, 5 Aug 2017 02:03:01 +0200 +Subject: [PATCH] maas: Add curtin_userdata_arm64_generic_xenial + +Based on curtin_userdata_amd64_generic_xenial, add new arm64 +specific configuration file: +- curtin_userdata_arm64_generic_xenial + +Requires Salt repo key and repo URL to be defined via reclass. + +Signed-off-by: Alexandru Avadanii +--- + +diff --git a/maas/region.sls b/maas/region.sls +--- a/maas/region.sls ++++ b/maas/region.sls +@@ -70,6 +70,18 @@ + - require: + - pkg: maas_region_packages + ++/etc/maas/preseeds/curtin_userdata_arm64_generic_xenial: ++ file.managed: ++ - source: salt://maas/files/curtin_userdata_arm64_generic_xenial ++ - template: jinja ++ - user: root ++ - group: root ++ - mode: 644 ++ - context: ++ salt_master_ip: {{ region.salt_master_ip }} ++ - require: ++ - pkg: maas_region_packages ++ + /root/.pgpass: + file.managed: + - source: salt://maas/files/pgpass diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index 34d913a..01e3224 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -18,3 +18,4 @@ /usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch /usr/share/salt-formulas/env: 0013-dpdk-Support-ovs-bridge-tagging.patch +/usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml index da28abf..65e6557 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml @@ -40,6 +40,42 @@ parameters: enable_third_party_drivers: true network_discovery: 'enabled' default_min_hwe_kernel: ${_param:hwe_kernel} + package_repositories: + armband: + name: armband + enabled: '1' + url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}' + distributions: '${_param:openstack_version}-armband' + components: 'main' + arches: 'arm64' + key: &armband_key | + -----BEGIN PGP PUBLIC KEY BLOCK----- + Version: GnuPG v2.0.14 (GNU/Linux) + + mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM + qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz + SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq + mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg + BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P + ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE + ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JATgEEwECACICGwMGCwkIBwMC + BhUIAgkKCwQWAgMBAh4BAheABQJaY3bYAAoJEN6rkLp5irHRoQMH/0PYl0A/6eWw + nQ/szhEFrr76Ln6wA4vEO+PiuWj9kTkZM2NaCnkisrIuHSPIVvOLfFmztbE6sKGe + t+a2b7Jqw48DZ/gq508aZE4Q307ookxdCOrzIu/796hFO34yXg3sqZoJh3VmKIjY + 4DL8yG1iAiQ5vOw3IFWQnATwIZUgaCcjmE7HGap+9ePuJfFuQ8mIG5cy28t8qocx + AB/B2tucfBMwomYxKqgbLI5AG7iSt58ajvrrNa9f8IX7Ihj/jiuXhUwX+geEp98K + IWVI1ftEthZvfBpZW4BS98J4z//dEPi31L4jb9RQXq3afF2RpXchDeUN85bW45nu + W/9PMAlgE/U= + =m+zE + -----END PGP PUBLIC KEY BLOCK----- + saltstack_armband: + name: saltstack_armband + enabled: '1' + url: 'http://linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11' + distributions: '${_param:linux_system_codename}' + components: 'main' + arches: 'arm64' + key: *armband_key subnets: opnfv_maas_pxe: name: ${_param:opnfv_infra_maas_pxe_network_address}/24 diff --git a/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial b/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial new file mode 100644 index 0000000..15d10a4 --- /dev/null +++ b/mcp/salt-formulas/maas/files/curtin_userdata_arm64_generic_xenial @@ -0,0 +1,35 @@ +{%- from "maas/map.jinja" import cluster with context %} +{% raw %} +#cloud-config +debconf_selections: + maas: | + {{for line in str(curtin_preseed).splitlines()}} + {{line}} + {{endfor}} +{{if third_party_drivers and driver}} +early_commands: + {{py: key_string = ''.join(['\\x%x' % x for x in map(ord, driver['key_binary'])])}} + driver_00_get_key: /bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg + driver_01_add_key: ["apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"] + driver_02_add: ["add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"] + driver_03_update_install: ["sh", "-c", "apt-get update --quiet && apt-get --assume-yes install {{driver['package']}}"] + driver_04_load: ["sh", "-c", "depmod && modprobe {{driver['module']}}"] +{{endif}} +late_commands: + maas: [wget, '--no-proxy', {{node_disable_pxe_url|escape.json}}, '--post-data', {{node_disable_pxe_data|escape.json}}, '-O', '/dev/null'] + salt_01_install: ["curtin", "in-target", "--", "apt-get", "-y", "install", "salt-minion"] +{% endraw %} + salt_02_hostname_set: ["curtin", "in-target", "--", "echo", "{% raw %}{{node.hostname}}{% endraw %}.{{pillar.linux.system.domain}}"] + salt_03_hostname_get: ["curtin", "in-target", "--", "sh", "-c", "echo 'id: {% raw %}{{node.hostname}}{% endraw %}.{{pillar.linux.system.domain}}' >> /etc/salt/minion"] + salt_04_master: ["curtin", "in-target", "--", "sh", "-c", "echo 'master: {{ salt_master_ip }}' >> /etc/salt/minion"] +{% raw %} +{{if third_party_drivers and driver}} + driver_00_key_get: curtin in-target -- sh -c "/bin/echo -en '{{key_string}}' > /tmp/maas-{{driver['package']}}.gpg" + driver_02_key_add: ["curtin", "in-target", "--", "apt-key", "add", "/tmp/maas-{{driver['package']}}.gpg"] + driver_03_add: ["curtin", "in-target", "--", "add-apt-repository", "-y", "deb {{driver['repository']}} {{node.get_distro_series()}} main"] + driver_04_update_install: ["curtin", "in-target", "--", "apt-get", "update", "--quiet"] + driver_05_install: ["curtin", "in-target", "--", "apt-get", "-y", "install", "{{driver['package']}}"] + driver_06_depmod: ["curtin", "in-target", "--", "depmod"] + driver_07_update_initramfs: ["curtin", "in-target", "--", "update-initramfs", "-u"] +{{endif}} +{% endraw %}