~raharper/curtin:release/19.2

Last commit made on 2019-07-17
Get this branch:
git clone -b release/19.2 https://git.launchpad.net/~raharper/curtin
Only Ryan Harper can upload to this branch. If you are Ryan Harper please log in for upload directions.

Branch merges

Branch information

Name:
release/19.2
Repository:
lp:~raharper/curtin

Recent commits

12e4123... by Ryan Harper

Release 19.2

Bump the version in curtin/__init__.py to be 19.2.

LP: #1836951

2161494... by Michael Hudson-Doyle

storage_config: a missing ID_PART_TABLE_TYPE key means no ptable

Defaulting to gpt in this case causes LP: #1835087

231cfca... by Dan Watkins

vmtests: drop skip_by_date decorators for bug 1813228

These are now passing, so we no longer need to skip them.

77b9cee... by Ryan Harper

block: Add opportunistic zkey encryption if supported

On s390x, systems with a crypto accelerator may be present
and enabled for sure. When handling a type: dm_crypt block
configuration, curtin will test if zkey is available and if
so, use the zkey command to generate keys and encrypt the
block device using zkey-based secrets.

In the case that zkey is not available, curtin will fallback
to using normal cryptsetup.

7c8c5d2... by Dan Watkins

vmtests: add support for CURTIN_VMTEST_APT_PROXY

This has the same behaviour as apt_proxy, but allows developers to
override it globally without affecting other applications. apt_proxy
will continue to work, but CURTIN_VMTEST_APT_PROXY will be preferred if
it is present in the environment.

(This change is applied to both the Python vmtests code, and to the
tools/launch shell script.)

d0a14a5... by Dan Watkins

vmtests: add use of CURTIN_VMTEST_ prefixed envvars to image sync

Specifically, add the use of CURTIN_VMTEST_IMAGE_SRC_URL,
CURTIN_VMTEST_IMAGE_DIR, and CURTIN_VMTEST_IMAGE_SRC_KEYRING. Each of
these behaves exactly the same as its un-prefixed environment variable.
If both are present in the environment, the prefixed variable will be
preferred.

This change allows developers to set these globally in their shell,
without worrying about the generic names conflicting with environment
variables used by other applications. Use of the old environment
variable names is retained so existing users aren't broken.

(The CURTIN_VMTEST_ prefix matches that used for many of the other
environment variables used by the vmtests.)

81984b4... by Ryan Harper

vmtest: dont raise SkipTest in class definition

Raising SkipTest in class definition breaks the test loader
resulting in tools/vmtest-sync-images failing. Remove skipTest
and leave the message as a comment.

37a7a0f... by Ryan Harper

vmtests: determine block name via dname when verifying volume groups

The LVM tests verify `pvs` output to check that a VG is composed of
the specified devices from the storage config. The current test
expected /dev/sda, /dev/sdb for certain VGs, however, sda/sdb kernel
names are not stable and sometimes we would fail to verify when the
order was swapped. Instead we now look up the dname, which is stable
to determine the kname of the specific disk at runtime and use that
to verify the VG is composed of the correct devices.

a5de952... by Ryan Harper

vmtest: add Centos66/Centos70 FromBionic release and re-add tests

Newer MAAS will use Bionic to deploy Centos and curtin until now
did not test this path. Critically, Centos66 has issues with ext4
features that are enabled by default in Bionic and newer, namely
'64bit' and 'metadata_csum'. These features break centos66 grub
probing which results in failed deployment, LP: #1775424.

Add additional Centos66/70 tests to verify installing from Bionic
is successful. For Centos66, we test the known workaround which is
to use 'ext3' as the root filesystem, and we introduce a test-case
which recreates the failure (test_simple.py:Centos66BionicTestSimple)
but leave it disabled by default.

b828a0f... by Ryan Harper

block-discover: add cli/API for exporting existing storage to config

Curtin can now probe an existing system for block devices and convert that
information into a storage_config yaml document representing the devices,
partitions, filesystems, etc as they would be if created from scratch.

This cli and API depend upon probert for discovery and
curtin.storage_config.validate_config to generate valid configs.