Merge autopkgtest-cloud:i386-as-amd64-cross into autopkgtest-cloud:master

Proposed by Steve Langasek
Status: Merged
Merged at revision: f47801100f79e9bec12e080c5e8cccf8f56bb77f
Proposed branch: autopkgtest-cloud:i386-as-amd64-cross
Merge into: autopkgtest-cloud:master
Diff against target: 152 lines (+30/-10)
11 files modified
worker-config-production/setup-canonical.sh (+7/-0)
worker-config-production/worker-bos01-arm64.conf (+1/-1)
worker-config-production/worker-bos01-ppc64el.conf (+1/-1)
worker-config-production/worker-bos01-s390x.conf (+1/-1)
worker-config-production/worker-bos01.conf (+1/-1)
worker-config-production/worker-bos02-arm64.conf (+1/-1)
worker-config-production/worker-bos02-ppc64el.conf (+1/-1)
worker-config-production/worker-bos02-s390x.conf (+1/-1)
worker-config-production/worker-canonistack.conf (+1/-1)
worker-config-production/worker.conf (+1/-1)
worker/worker (+14/-1)
Reviewer Review Type Date Requested Status
Iain Lane Needs Fixing
Review via email: mp+376587@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Iain Lane (laney) wrote :

Thanks for this, some specific comments inline. Nothing too major.

One general question: I'm concerned about the hardcoding of "== focal" here. Can you elaborate on whether there is a plan to drop i386 completely after focal which will make this be okay?

I think it is probably better in any event to avoid hardcoding that policy / plan in autopkgtest-cloud, and move to checking for ">= focal" instead, so that we don't have to think about revisiting that if the plan is to drop i386 and yet it doesn't come off for some reason - or doesn't happen immediately in the GG cycle. The requester (the Ubuntu archive and/or proposed-migration) would then have the policy about which tests it wants to see results for. Using something like the following class which lets you compare releases:

https://gist.github.com/iainlane/eaee9f2b1e681d49fb6ed51343dee215

review: Needs Fixing
Revision history for this message
Iain Lane (laney) wrote :

Steve, can I nudge you to address these review comments please? It's clear now that we should make this apply to all releases >= focal. At the start of the hirsute cycle, because this is currently cowboyed on the production infrastructure and requires manual editing, I made a mistake and all i386 tests ran as amd64 for a few days. Now this is fixed but we have regressions reported that need to be manually hinted away.

We should not be in this position again - both because there's no cowboy and because it doesn't require adjustment at each opening.

Here's a "release_ge" script I wrote for something else, which you can use like "if release_ge ${RELEASE} focal; then ... fi" in create-nova-image-new-release, to inject the --add-architecture only when needed.

https://gist.github.com/iainlane/a6df7f4c8e928fd7d1cccc6bef643211

Revision history for this message
Balint Reczey (rbalint) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/worker-config-production/setup-canonical.sh b/worker-config-production/setup-canonical.sh
2index af76f24..f61f1c0 100644
3--- a/worker-config-production/setup-canonical.sh
4+++ b/worker-config-production/setup-canonical.sh
5@@ -39,3 +39,10 @@ if [ -d /run/systemd/system ] && systemd-detect-virt --quiet --vm; then
6 ExecStart=/usr/bin/perl -E 'open \$\$f, "/bin/bash" or die; open \$\$rnd, ">/dev/random" or die; for (\$\$i = 0; \$\$i < 10; ++\$\$i) {read \$\$f, \$\$d, 64; ioctl \$\$rnd, 0x40085203, pack("ii", 64*8, 64) . \$\$d}'
7 EOF
8 fi
9+
10+# Make our amd64 runners capable of testing i386
11+if grep -q focal /etc/os-release && [ "$(dpkg --print-architecture)" = amd64 ]
12+then
13+ dpkg --add-architecture i386
14+ apt-get update
15+fi
16diff --git a/worker-config-production/worker-bos01-arm64.conf b/worker-config-production/worker-bos01-arm64.conf
17index 5a84577..38c3975 100644
18--- a/worker-config-production/worker-bos01-arm64.conf
19+++ b/worker-config-production/worker-bos01-arm64.conf
20@@ -24,4 +24,4 @@ blacklist = bionic/arm64/stress-ng bionic/arm64/upstart bionic/arm64/libnih bion
21 # flavors
22 package_size_default = autopkgtest
23 package_size_big = m1.large
24-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
25+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
26diff --git a/worker-config-production/worker-bos01-ppc64el.conf b/worker-config-production/worker-bos01-ppc64el.conf
27index e8a6d38..cc80e9b 100644
28--- a/worker-config-production/worker-bos01-ppc64el.conf
29+++ b/worker-config-production/worker-bos01-ppc64el.conf
30@@ -24,4 +24,4 @@ blacklist = bionic/ppc64el/stress-ng bionic/ppc64el/upstart bionic/ppc64el/libni
31 # flavors
32 package_size_default = autopkgtest
33 package_size_big = m1.large
34-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
35+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
36diff --git a/worker-config-production/worker-bos01-s390x.conf b/worker-config-production/worker-bos01-s390x.conf
37index 9fc3d7e..43a1e77 100644
38--- a/worker-config-production/worker-bos01-s390x.conf
39+++ b/worker-config-production/worker-bos01-s390x.conf
40@@ -24,4 +24,4 @@ blacklist = bionic/s390x/stress-ng bionic/s390x/upstart bionic/s390x/libnih bion
41 # flavors
42 package_size_default = autopkgtest
43 package_size_big = m1.large
44-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
45+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
46diff --git a/worker-config-production/worker-bos01.conf b/worker-config-production/worker-bos01.conf
47index f7a8f57..d034ec0 100644
48--- a/worker-config-production/worker-bos01.conf
49+++ b/worker-config-production/worker-bos01.conf
50@@ -24,4 +24,4 @@ blacklist = bionic/ppc64el/stress-ng bionic/ppc64el/upstart bionic/ppc64el/libni
51 # flavors
52 package_size_default = autopkgtest
53 package_size_big = m1.large
54-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
55+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
56diff --git a/worker-config-production/worker-bos02-arm64.conf b/worker-config-production/worker-bos02-arm64.conf
57index 5a84577..38c3975 100644
58--- a/worker-config-production/worker-bos02-arm64.conf
59+++ b/worker-config-production/worker-bos02-arm64.conf
60@@ -24,4 +24,4 @@ blacklist = bionic/arm64/stress-ng bionic/arm64/upstart bionic/arm64/libnih bion
61 # flavors
62 package_size_default = autopkgtest
63 package_size_big = m1.large
64-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
65+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
66diff --git a/worker-config-production/worker-bos02-ppc64el.conf b/worker-config-production/worker-bos02-ppc64el.conf
67index 1f74340..fbffa47 100644
68--- a/worker-config-production/worker-bos02-ppc64el.conf
69+++ b/worker-config-production/worker-bos02-ppc64el.conf
70@@ -24,4 +24,4 @@ blacklist = bionic/ppc64el/stress-ng bionic/ppc64el/upstart bionic/ppc64el/libni
71 # flavors
72 package_size_default = autopkgtest
73 package_size_big = m1.large
74-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
75+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
76diff --git a/worker-config-production/worker-bos02-s390x.conf b/worker-config-production/worker-bos02-s390x.conf
77index 9fc3d7e..43a1e77 100644
78--- a/worker-config-production/worker-bos02-s390x.conf
79+++ b/worker-config-production/worker-bos02-s390x.conf
80@@ -24,4 +24,4 @@ blacklist = bionic/s390x/stress-ng bionic/s390x/upstart bionic/s390x/libnih bion
81 # flavors
82 package_size_default = autopkgtest
83 package_size_big = m1.large
84-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
85+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --nova-reboot --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server-.* --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,changelogs.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
86diff --git a/worker-config-production/worker-canonistack.conf b/worker-config-production/worker-canonistack.conf
87index a91e685..32a6c19 100644
88--- a/worker-config-production/worker-canonistack.conf
89+++ b/worker-config-production/worker-canonistack.conf
90@@ -24,4 +24,4 @@ long_tests = gutenprint gmp-ecm open-iscsi diffoscope
91 # flavors
92 package_size_default = m1.small
93 package_size_big = m1.large
94-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server --keyname #KEYNAME# -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net'
95+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server --keyname #KEYNAME# -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,ppa.launchpad.net'
96diff --git a/worker-config-production/worker.conf b/worker-config-production/worker.conf
97index d16e926..f184909 100644
98--- a/worker-config-production/worker.conf
99+++ b/worker-config-production/worker.conf
100@@ -24,4 +24,4 @@ blacklist = bionic/i386/upstart bionic/amd64/upstart bionic/i386/libnih bionic/a
101 # flavors
102 package_size_default = autopkgtest
103 package_size_big = m1.large
104-args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$ARCHITECTURE-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
105+args = ssh -s $CHECKOUTDIR/ssh-setup/nova -- --flavor $PACKAGESIZE --security-groups $SECGROUP --name adt-$RELEASE-$ARCHITECTURE-$PACKAGENAME-$TIMESTAMP --image adt/ubuntu-$RELEASE-$HOSTARCH-server --keyname #KEYNAME# --net-id=net_ues_proposed_migration -e 'http_proxy=http://squid.internal:3128' -e 'https_proxy=http://squid.internal:3128' -e 'no_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,novalocal,internal,archive.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,ppa.launchpad.net' --mirror=http://ftpmaster.internal/ubuntu
106diff --git a/worker/worker b/worker/worker
107index 6a769a6..aaec435 100755
108--- a/worker/worker
109+++ b/worker/worker
110@@ -176,11 +176,16 @@ def series_to_version(series):
111
112
113 def subst(s, autopkgtest_checkout, big_package, release, architecture, pkgname):
114+ if release == 'focal' and architecture == 'i386':
115+ host_arch = 'amd64'
116+ else:
117+ host_arch = architecture
118 subst = {
119 'CHECKOUTDIR': autopkgtest_checkout,
120 'AUTOPKGTEST_CLOUD_DIR': root_path,
121 'RELEASE': release,
122 'ARCHITECTURE': architecture,
123+ 'HOSTARCH': host_arch,
124 'PACKAGENAME': pkgname,
125 'PACKAGESIZE': cfg.get('virt',
126 big_package and 'package_size_big' or 'package_size_default'),
127@@ -359,6 +364,9 @@ def request(msg):
128 argv = ['autopkgtest']
129 argv += ['--output-dir', out_dir, '--timeout-copy=6000']
130
131+ if release in ('focal',) and architecture == 'i386':
132+ argv += ['-a', 'i386']
133+
134 c = cfg.get('autopkgtest', 'extra_args')
135 if c:
136 argv += c.strip().split()
137@@ -479,9 +487,14 @@ def request(msg):
138 if 'testname' in params:
139 argv.append('--testname=%s' % params['testname'])
140
141+ if release in ('focal',) and architecture == 'i386':
142+ img_arch = 'amd64'
143+ else:
144+ img_arch = architecture
145+
146 argv.append('--')
147 argv += subst(cfg.get('virt', 'args'), autopkgtest_checkout, big_pkg,
148- release, architecture, pkgname).split()
149+ release, img_architecture, pkgname).split()
150
151 # run autopkgtest; retry up to three times on tmpfail issues
152 if not blacklisted:

Subscribers

People subscribed via source and target branches