aboutsummaryrefslogtreecommitdiffstats
path: root/patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2017-12-28 18:41:09 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-01-05 23:14:01 +0100
commit0e8a4fc5a553bb55c22590c0620ebfd770394e96 (patch)
tree58fdd861d2efbe06bf2749aadcf31a60ccdfbe39 /patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch
parent11f5bc3ca9191039b9b22e2da8a6e29538d2f6ea (diff)
MaaS: preseed Armband repo via curtin
Instead of installing upstream vanilla kernel from Ubuntu just to upgrade to the one from Armband repo later, preseed Armband repo config via curtin. This allows us to drop a kernel update cycle, thus saving a few minutes at each deploy. While at it, switch salt repo addition to use the maas region reclass section instead of adding a dedicated mechanism for it in the curtin template (only for arm64). [ stable/ euphrates ] Preseed all Armband repos, since Ocata does not have a "common" repo. JIRA: ARMBAND-280 Change-Id: Iad5953a7de80d728f11a4ce3113bd7725100c31c Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> (cherry picked from commit 648ec98613d31e3d9701b9ac1d87aed640b245f3)
Diffstat (limited to 'patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch')
-rw-r--r--patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch172
1 files changed, 172 insertions, 0 deletions
diff --git a/patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch b/patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch
new file mode 100644
index 00000000..cbade85d
--- /dev/null
+++ b/patches/opnfv-fuel/0004-maas-Add-curtin_userdata_arm64_generic_xenial.patch
@@ -0,0 +1,172 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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 <Alexandru.Avadanii@enea.com>
+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 Openstack & APT-MK for Ocata,
+so we get the updated kernel & other packages from the start.
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ ...-Add-curtin_userdata_arm64_generic_xenial.patch | 35 +++++++++++++++++
+ mcp/patches/patches.list | 1 +
+ .../baremetal-mcp-ocata-common/infra/maas.yml | 44 ++++++++++++++++++++++
+ .../files/curtin_userdata_arm64_generic_xenial | 35 +++++++++++++++++
+ 4 files changed, 115 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 <Alexandru.Avadanii@enea.com>
++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 <Alexandru.Avadanii@enea.com>
++---
++
++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 f2549d7..a2f6a19 100644
+--- a/mcp/patches/patches.list
++++ b/mcp/patches/patches.list
+@@ -16,3 +16,4 @@
+ /usr/share/salt-formulas/reclass: 0011-service.horizon.server.cluster-Default-to-v2-API.patch
+ /usr/share/salt-formulas/env: 0011-maas-region-interface-default-mode-DHCP.patch
+ /usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch
++/usr/share/salt-formulas/env: 0101-maas-Add-curtin_userdata_arm64_generic_xenial.patch
+diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml
+index e8c2965..e972df3 100644
+--- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml
++++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml
+@@ -40,6 +40,50 @@ parameters:
+ enable_third_party_drivers: true
+ network_discovery: 'enabled'
+ default_min_hwe_kernel: 'hwe-16.04'
++ package_repositories:
++ armband_openstack:
++ name: armband_openstack
++ enabled: '1'
++ url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}'
++ distributions: '${_param:openstack_version}'
++ components: 'main'
++ arches: 'arm64'
++ key: &armband_key |
++ -----BEGIN PGP PUBLIC KEY BLOCK-----
++ Version: GnuPG v1
++
++ mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM
++ qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz
++ SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq
++ mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg
++ BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P
++ ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE
++ ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JAT4EEwECACgFAlagAroCGwMF
++ CQPCZwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEN6rkLp5irHRsG8H/2P2
++ hO6jFHPRD1u8j9ufO9AxoInaEG9GeRjuvMc1tCUzovXvTs106TZ0as6MbAJ1S6u5
++ E8UyQ1+VGepvdIJPXx3PCxLmUt6WIqmdOdqFrxIclohig/kardi3NfX1MBvlEV/c
++ 7Q51H43hrlMqMpqgY1Bm+53PLC4ujjlDJBtJOEU9dki319bUmng+gO9BAljDJFXv
++ JqY6+P/er7IgCbRXUXYfyJzgjx9JwlKbmdQ8QnCrZjF/VHIW40/mu5IIJuFvuCti
++ tcog+SNSlDmCOS+wE8CCojeuJqupIOcz9zypVGzeus/N5Q5EEFe7GYWYS/5NKUkE
++ 1TuuFeZKu5NJC5rkwIU=
++ =7p60
++ -----END PGP PUBLIC KEY BLOCK-----
++ armband_mk_openstack:
++ name: armband_mk_openstack
++ enabled: '1'
++ url: 'http://linux.enea.com/apt-mk/${_param:linux_system_codename}/'
++ distributions: 'nightly'
++ components: '${_param:openstack_version}'
++ arches: 'arm64'
++ key: *armband_key
++ 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_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 %}