[virtual] Add Ubuntu 18.04 (Bionic) basic support 62/68162/2
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 28 Jun 2019 13:52:22 +0000 (15:52 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 28 Jun 2019 22:37:14 +0000 (00:37 +0200)
Support Ubuntu 18.04 for virtual deployments (and implicitly for VCP
VMs). Note that MaaS-provisioned systems will require the same
changes being applied via curtin templates.

Change-Id: I7cbd7e7c4421f6b970ce6ef97c10d269fec5fca3
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
mcp/config/scenario/defaults.yaml.j2
mcp/scripts/lib_jump_deploy.sh
mcp/scripts/user-data.sh.j2

index 5a9b4fd..8864974 100644 (file)
@@ -22,6 +22,26 @@ x86_64:
         - virtual_control_plane
 {%- endif %}
 {%- endif %}
+  ubuntu1804:
+    base_image: https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
+    common:
+      repo:
+        keys:
+          - https://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7/SALTSTACK-GPG-KEY.pub
+        repos:
+          # <repo name> <repo prio> deb [arch=<arch>] <repo url> <repo dist> <repo comp>
+          - saltstack 500 deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7 bionic main
+      pkg:
+        install:
+          - salt-minion
+          - ifupdown
+          - cloud-init
+          - dnsmasq
+    control:
+      repo: ~
+      pkg:
+        install:
+          - cloud-init
   ubuntu1604:
     base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
     common:
@@ -64,6 +84,26 @@ aarch64:
     vcpus: 6
     ram: 4096
     cluster: *arch_default_cluster_states
+  ubuntu1804:
+    base_image: https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-arm64.img
+    common:
+      repo:
+        keys:
+          - https://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7/SALTSTACK-GPG-KEY.pub
+        repos:
+          # <repo name> <repo prio> deb [arch=<arch>] <repo url> <repo dist> <repo comp>
+          - saltstack 500 deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7 bionic main
+      pkg:
+        install:
+          - salt-minion
+          - ifupdown
+          - cloud-init
+          - dnsmasq
+    control:
+      repo: ~
+      pkg:
+        install:
+          - cloud-init
   ubuntu1604:
     base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-uefi1.img
     common:
index 9370710..d3ccd6e 100644 (file)
@@ -152,6 +152,24 @@ function __mount_image {
   sudo mount -t proc proc "${OPNFV_MNT_DIR}/proc"
   sudo mount -t sysfs sys "${OPNFV_MNT_DIR}/sys"
   sudo mount -o bind /dev "${OPNFV_MNT_DIR}/dev"
+  if [[ "${MCP_OS:-}" =~ ubuntu1804 ]]; then
+    # Ubuntu Bionic (18.04) or newer defaults to using netplan.io, revert it
+    sudo mkdir -p "${OPNFV_MNT_DIR}/run/systemd/resolve"
+    sudo cp -f --remove-destination /etc/resolv.conf \
+      "${OPNFV_MNT_DIR}/run/systemd/resolve/stub-resolv.conf"
+    sudo chroot "${OPNFV_MNT_DIR}" systemctl stop \
+      systemd-networkd.socket systemd-networkd \
+      networkd-dispatcher systemd-networkd-wait-online systemd-resolved
+    sudo chroot "${OPNFV_MNT_DIR}" systemctl disable \
+      systemd-networkd.socket systemd-networkd \
+      networkd-dispatcher systemd-networkd-wait-online systemd-resolved
+    sudo chroot "${OPNFV_MNT_DIR}" systemctl mask \
+      systemd-networkd.socket systemd-networkd \
+      networkd-dispatcher systemd-networkd-wait-online systemd-resolved
+    sudo chroot "${OPNFV_MNT_DIR}" apt --assume-yes purge nplan netplan.io
+    echo "source /etc/network/interfaces.d/*" | \
+      sudo tee "${OPNFV_MNT_DIR}/etc/network/interfaces"
+  fi
   sudo cp -f --remove-destination \
     /etc/resolv.conf "${OPNFV_MNT_DIR}/etc/resolv.conf"
   echo "GRUB_DISABLE_OS_PROBER=true" | \
index f568164..8b80e32 100644 (file)
@@ -11,5 +11,10 @@ rm -f /etc/salt/minion_id /etc/salt/pki/minion/minion_master.pub
 echo "id: $(hostname).{{ conf.cluster.domain }}" > /etc/salt/minion
 echo "master: {{ nm.net_admin | ipnet_hostaddr(nm.start_ip[nm.net_admin] + nm.net_admin_hosts.index('opnfv_infra_config_pxe_admin_address') +1) }}" >> /etc/salt/minion
 ldconfig
+{%- if 'ubuntu1804' in conf.MCP_OS %}
+systemctl unmask networking.service || true
+systemctl enable networking.service || true
+systemctl start networking.service || true
+{%- endif %}
 systemctl enable salt-minion.service
 systemctl restart salt-minion.service