container-inherit-properties=apt-sources doesn't take effect when deploying focal on jammy or jammy on focal

Bug #2012484 reported by Nobuto Murata
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical Juju
Triaged
Undecided
Joseph Phillips

Bug Description

$ juju version
2.9.42-ubuntu-amd64

Air-gapped deployment with a mirror simply fails in this scenario.

How to reproduce:

1. set a mirror server in MAAS as if it's an air-gapped environment with a local archive mirror

$ maas admin package-repository update main_archive \
    url=http://mirror.archive.ubuntu.com/ubuntu

2. set container-inherit-properties=apt-sources into the model

$ juju add-model test
$ juju model-config container-inherit-properties=apt-sources

3. deploy focal and jammy machines

$ juju deploy --series focal ubuntu ubuntu-focal
$ juju deploy --series jammy ubuntu ubuntu-jammy

4. deploy focal and jammy containers on both focal and jammy hosts

juju add-unit ubuntu-focal --to lxd:0
juju add-unit ubuntu-focal --to lxd:1

juju add-unit ubuntu-jammy --to lxd:0
juju add-unit ubuntu-jammy --to lxd:1

$ juju machines
Machine State Address Inst id Series AZ Message
0 started 192.168.151.102 native-tomcat focal default Deployed
0/lxd/0 started 192.168.151.106 juju-bd1a29-0-lxd-0 focal default Container started
0/lxd/1 started 192.168.151.107 juju-bd1a29-0-lxd-1 jammy default Container started
1 started 192.168.151.103 aware-zebra jammy default Deployed
1/lxd/0 started 192.168.151.104 juju-bd1a29-1-lxd-0 focal default Container started
1/lxd/1 started 192.168.151.105 juju-bd1a29-1-lxd-1 jammy default Container started

Then check whether archive.ubuntu.com or mirror.archive.ubuntu.com was written.

$ juju run --all -- grep -m1 archive.ubuntu.com /etc/apt/sources.list
- MachineId: 0/lxd/0
  Stdout: |
    deb http://mirror.archive.ubuntu.com/ubuntu focal universe main multiverse restricted
- MachineId: 1/lxd/1
  Stdout: |
    deb http://mirror.archive.ubuntu.com/ubuntu jammy universe main multiverse restricted
- MachineId: "0"
  Stdout: |
    deb http://mirror.archive.ubuntu.com/ubuntu focal universe main multiverse restricted
- MachineId: 0/lxd/1
  Stdout: |
    deb http://archive.ubuntu.com/ubuntu jammy main restricted
- MachineId: "1"
  Stdout: |
    deb http://mirror.archive.ubuntu.com/ubuntu jammy universe main multiverse restricted
- MachineId: 1/lxd/0
  Stdout: |
    deb http://archive.ubuntu.com/ubuntu focal main restricted

The following two containers are using unexpected archive.ubuntu.com

0/lxd/1 -> jammy on focal
1/lxd/0 -> focal on jammy

Revision history for this message
Nobuto Murata (nobuto) wrote :

There is no difference in the curtin generated config.

focal host

maas admin machine get-curtin-config "$(maas admin machines read hostname=native-tomcat | jq -r .[].system_id)"

jammy host

maas admin machine get-curtin-config "$(maas admin machines read hostname=aware-zebra | jq -r .[].system_id)"

$ head -n 28 *-host-curting-config.yaml
==> focal-host-curting-config.yaml <==
apt:
  preserve_sources_list: false
  proxy: http://192.168.151.1:8000/
  sources_list: 'deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main
    multiverse restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main multiverse
    restricted

    deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main multiverse
    restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main
    multiverse restricted

    deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main multiverse
    restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main
    multiverse restricted

    deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe main multiverse
    restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe
    main multiverse restricted

    '

==> jammy-host-curting-config.yaml <==
apt:
  preserve_sources_list: false
  proxy: http://192.168.151.1:8000/
  sources_list: 'deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main
    multiverse restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main multiverse
    restricted

    deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main multiverse
    restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main
    multiverse restricted

    deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main multiverse
    restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main
    multiverse restricted

    deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe main multiverse
    restricted

    # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe
    main multiverse restricted

    '

Revision history for this message
Nobuto Murata (nobuto) wrote :

and the mirror is going to be missed from /var/lib/cloud/instance/user-data.txt for LXD in the problematic combinations.

$ juju run --all -- sudo grep -B5 archive.ubuntu.com /var/lib/cloud/instance/user-data.txt
- MachineId: "0"
  ReturnCode: 1
  Stdout: ""
- MachineId: 0/lxd/0
  Stdout: |
    #cloud-config
    apt:
      sources_list: |
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main multiverse restricted
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main multiverse restricted
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main multiverse restricted
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe main multiverse restricted
- MachineId: 0/lxd/1
  ReturnCode: 1
  Stdout: ""
- MachineId: "1"
  ReturnCode: 1
  Stdout: ""
- MachineId: 1/lxd/0
  ReturnCode: 1
  Stdout: ""
- MachineId: 1/lxd/1
  Stdout: |
    #cloud-config
    apt:
      sources_list: |
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE universe main multiverse restricted
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-updates universe main multiverse restricted
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-security universe main multiverse restricted
        deb http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe main multiverse restricted
        # deb-src http://mirror.archive.ubuntu.com/ubuntu $RELEASE-backports universe main multiverse restricted

Revision history for this message
Harry Pidcock (hpidcock) wrote :

I can't see where this could be failing with a cursory look at the MachineInitReader, the only series specific code is dealing with trusty.

Could we please get these files from both the host machines:
- /var/lib/cloud/instance/vendor-data.txt
- /etc/cloud/cloud.cfg.d/*
- /root/curtin-install-cfg.yaml

Changed in juju:
status: New → Incomplete
Revision history for this message
Nobuto Murata (nobuto) wrote :

Sure thing.

Changed in juju:
status: Incomplete → New
Changed in juju:
assignee: nobody → Joseph Phillips (manadart)
tags: added: deploy maas-provider
Changed in juju:
status: New → Triaged
Revision history for this message
Joseph Phillips (manadart) wrote :

I remember working in this area way back for MAAS 2.5.
The patch is here: https://github.com/juju/juju/pull/9764

Those Ubuntu versions weren't even around back then.

What is the MAAS version in this case?

We'll just need to reproduce and diagnose.

Revision history for this message
Nobuto Murata (nobuto) wrote :

We found it a few weeks ago and confirmed it was the case for both MAAS 3.2 and 3.3.

I suppose all of the necessary files issued from MAAS is saved in the tarball:
https://bugs.launchpad.net/juju/+bug/2012484/comments/4

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.