summaryrefslogtreecommitdiff
path: root/tests/cloud_tests/releases.yaml
diff options
context:
space:
mode:
authorWesley Wiedenmeier <wesley.wiedenmeier@gmail.com>2017-06-08 18:23:31 -0400
committerScott Moser <smoser@brickies.net>2017-06-08 18:24:17 -0400
commit76d58265e34851b78e952a7f275340863c90a9f5 (patch)
tree91bf17879724b180e43bff07e428bb9089cbb395 /tests/cloud_tests/releases.yaml
parentad2680a689ab78847ccce7766d6591797d99e219 (diff)
downloadvyos-cloud-init-76d58265e34851b78e952a7f275340863c90a9f5.tar.gz
vyos-cloud-init-76d58265e34851b78e952a7f275340863c90a9f5.zip
Integration Testing: tox env, pyxld 2.2.3, and revamp framework
Massive update to clean up and greatly enhance the integration testing framework developed by Wesley Wiedenmeier. - Updated tox environment to run integration test 'citest' to utilize pylxd 2.2.3 - Add support for distro feature flags - add framework for feature flags to release config with feature groups and overrides allowed in any release conf override level - add support for feature flags in platform and config handling - during collect, skip testcases that require features not supported by the image with a warning message - Enable additional distros (i.e. centos, debian) - Add 'bddeb' command to build a deb from the current working tree cleanly in a container, so deps do not have to be installed on host - Adds a command line option '--preserve-data' that ensures that collected data will be left after tests run. This also allows the directory to store collected data in during the run command to be specified using '--data-dir'. - Updated Read the Docs testing page and doc strings for pep 257 compliance
Diffstat (limited to 'tests/cloud_tests/releases.yaml')
-rw-r--r--tests/cloud_tests/releases.yaml319
1 files changed, 243 insertions, 76 deletions
diff --git a/tests/cloud_tests/releases.yaml b/tests/cloud_tests/releases.yaml
index 183f78c1..45deb58f 100644
--- a/tests/cloud_tests/releases.yaml
+++ b/tests/cloud_tests/releases.yaml
@@ -1,86 +1,253 @@
# ============================= Release Config ================================
default_release_config:
- # all are disabled by default
- enabled: false
- # timeout for booting image and running cloud init
- timeout: 120
- # platform_ident values for the image, with data to identify the image
- # on that platform. see platforms.base for more information
- platform_ident: {}
- # a script to run after a boot that is used to modify an image, before
- # making a snapshot of the image. may be useful for removing data left
- # behind from cloud-init booting, such as logs, to ensure that data from
- # snapshot.launch() will not include a cloud-init.log from a boot used to
- # create the snapshot, if cloud-init has not run
- boot_clean_script: |
- #!/bin/bash
- rm -rf /var/log/cloud-init.log /var/log/cloud-init-output.log \
- /var/lib/cloud/ /run/cloud-init/ /var/log/syslog
+ # global default configuration options
+ default:
+ # all are disabled by default
+ enabled: false
+ # timeout for booting image and running cloud init
+ boot_timeout: 120
+ # a script to run after a boot that is used to modify an image, before
+ # making a snapshot of the image. may be useful for removing data left
+ # behind from cloud-init booting, such as logs, to ensure that data
+ # from snapshot.launch() will not include a cloud-init.log from a boot
+ # used to create the snapshot, if cloud-init has not run
+ boot_clean_script: |
+ #!/bin/bash
+ rm -rf /var/log/cloud-init.log /var/log/cloud-init-output.log \
+ /var/lib/cloud/ /run/cloud-init/ /var/log/syslog
+ # test script to determine if system is booted fully
+ system_ready_script: |
+ # permit running or degraded state as both indicate complete boot
+ [ $(systemctl is-system-running) = 'running' -o
+ $(systemctl is-system-running) = 'degraded' ]
+ # test script to determine if cloud-init has finished
+ cloud_init_ready_script: |
+ [ -f '/run/cloud-init/result.json' ]
+ # currently used features and their uses are:
+ # features groups and additional feature settings
+ feature_groups: []
+ features: {}
+
+ # lxd specific default configuration options
+ lxd:
+ # default sstreams server to use for lxd image retrieval
+ sstreams_server: https://us.images.linuxcontainers.org:8443
+ # keep base image, avoids downloading again next run
+ cache_base_image: true
+ # lxd images from linuxcontainers.org do not have the nocloud seed
+ # templates in place, so the image metadata must be modified
+ override_templates: true
+ # arg overrides to set image up
+ setup_overrides:
+ # lxd images from linuxcontainers.org do not come with
+ # cloud-init, so must pull cloud-init in from repo using
+ # setup_image.upgrade
+ upgrade: true
+
+features:
+ # all currently supported feature flags
+ all:
+ - apt # image supports apt package manager
+ - byobu # byobu is available in repositories
+ - landscape # landscape-client available in repos
+ - lxd # lxd is available in the image
+ - ppa # image supports ppas
+ - rpm # image supports rpms
+ - snap # supports snapd
+ # NOTE: the following feature flags are to work around bugs in the
+ # images, and can be removed when no longer needed
+ - hostname # setting system hostname works
+ # NOTE: the following feature flags are to work around issues in the
+ # testcases, and can be removed when no longer needed
+ - apt_src_cont # default contents and format of sources.list matches
+ # ubuntu sources.list
+ - apt_hist_fmt # apt command history entries use full paths to apt
+ # executable rather than relative paths
+ - daylight_time # timezones are daylight not standard time
+ - apt_up_out # 'Calculating upgrade..' present in log output from
+ # apt-get dist-upgrade output
+ - engb_locale # locale en_GB.UTF-8 is available
+ - locale_gen # the /etc/locale.gen file exists
+ - no_ntpdate # 'ntpdate' is not installed by default
+ - no_file_fmt_e # the 'file' utility does not have a formatting error
+ - ppa_file_name # the name of the source file added to sources.list.d has
+ # the expected format for newer ubuntu releases
+ - sshd # requires ssh server to be installed by default
+ - ssh_key_fmt # ssh auth keys printed to console have expected format
+ - syslog # test case requires syslog to be written by default
+ - ubuntu_ntp # expect ubuntu.pool.ntp.org to be used as ntp server
+ - ubuntu_repos # test case requres ubuntu repositories to be used
+ - ubuntu_user # test case needs user with the name 'ubuntu' to exist
+ # NOTE: the following feature flags are to work around issues that may
+ # be considered bugs in cloud-init
+ - lsb_release # image has lsb_release installed, maybe should install
+ # if missing by default
+ - sudo # image has sudo installed, should not be required
+ # feature flag groups
+ groups:
+ base:
+ hostname: true
+ no_file_fmt_e: true
+ ubuntu_specific:
+ apt_src_cont: true
+ apt_hist_fmt: true
+ byobu: true
+ daylight_time: true
+ engb_locale: true
+ landscape: true
+ locale_gen: true
+ lsb_release: true
+ lxd: true
+ ppa: true
+ ppa_file_name: true
+ snap: true
+ sshd: true
+ ssh_key_fmt: true
+ sudo: true
+ syslog: true
+ ubuntu_ntp: true
+ ubuntu_repos: true
+ ubuntu_user: true
+ debian_base:
+ apt: true
+ apt_up_out: true
+ no_ntpdate: true
+ rhel_base:
+ rpm: true
releases:
- trusty:
- enabled: true
- platform_ident:
- lxd:
- # if sstreams_server is omitted, default is used, defined in
- # tests.cloud_tests.platforms.lxd.DEFAULT_SSTREAMS_SERVER as:
- # sstreams_server: https://us.images.linuxcontainers.org:8443
- #alias: ubuntu/trusty/default
- alias: t
- sstreams_server: https://cloud-images.ubuntu.com/daily
- xenial:
- enabled: true
- platform_ident:
- lxd:
- #alias: ubuntu/xenial/default
- alias: x
- sstreams_server: https://cloud-images.ubuntu.com/daily
- yakkety:
- enabled: true
- platform_ident:
- lxd:
- #alias: ubuntu/yakkety/default
- alias: y
- sstreams_server: https://cloud-images.ubuntu.com/daily
- zesty:
- enabled: true
- platform_ident:
- lxd:
- #alias: ubuntu/zesty/default
- alias: z
- sstreams_server: https://cloud-images.ubuntu.com/daily
+ # UBUNTU =================================================================
artful:
- enabled: true
- platform_ident:
- lxd:
- #alias: ubuntu/artful/default
- alias: a
- sstreams_server: https://cloud-images.ubuntu.com/daily
- jessie:
- platform_ident:
- lxd:
- alias: debian/jessie/default
- sid:
- platform_ident:
- lxd:
- alias: debian/sid/default
+ # EOL: Jul 2018
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ - ubuntu_specific
+ lxd:
+ sstreams_server: https://cloud-images.ubuntu.com/daily
+ alias: artful
+ setup_overrides: null
+ override_templates: false
+ zesty:
+ # EOL: Jan 2018
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ - ubuntu_specific
+ lxd:
+ sstreams_server: https://cloud-images.ubuntu.com/daily
+ alias: zesty
+ setup_overrides: null
+ override_templates: false
+ yakkety:
+ # EOL: Jul 2017
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ - ubuntu_specific
+ lxd:
+ sstreams_server: https://cloud-images.ubuntu.com/daily
+ alias: yakkety
+ setup_overrides: null
+ override_templates: false
+ xenial:
+ # EOL: Apr 2021
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ - ubuntu_specific
+ lxd:
+ sstreams_server: https://cloud-images.ubuntu.com/daily
+ alias: xenial
+ setup_overrides: null
+ override_templates: false
+ trusty:
+ # EOL: Apr 2019
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ - ubuntu_specific
+ features:
+ apt_up_out: false
+ locale_gen: false
+ lxd: false
+ ppa_file_name: false
+ snap: false
+ ssh_key_fmt: false
+ no_ntpdate: false
+ no_file_fmt_e: false
+ system_ready_script: |
+ #!/bin/bash
+ # upstart based, so use old style runlevels
+ [ $(runlevel | awk '{print $2}') = '2' ]
+ lxd:
+ sstreams_server: https://cloud-images.ubuntu.com/daily
+ alias: trusty
+ setup_overrides: null
+ override_templates: false
+ # DEBIAN =================================================================
stretch:
- platform_ident:
- lxd:
- alias: debian/stretch/default
- wheezy:
- platform_ident:
- lxd:
- alias: debian/wheezy/default
+ # EOL: Not yet released
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ lxd:
+ alias: debian/stretch/default
+ jessie:
+ # EOL: Jun 2020
+ # NOTE: the cloud-init version shipped with jessie is out of date
+ # tests work if an up to date deb is used
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - debian_base
+ lxd:
+ alias: debian/jessie/default
+ # CENTOS =================================================================
centos70:
- timeout: 180
- platform_ident:
- lxd:
- alias: centos/7/default
+ # EOL: Jun 2024 (2020 - end of full updates)
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - rhel_base
+ user_data_overrides:
+ preserve_hostname: true
+ lxd:
+ features:
+ # NOTE: (LP: #1575779)
+ hostname: false
+ alias: centos/7/default
centos66:
- timeout: 180
- platform_ident:
- lxd:
- alias: centos/6/default
+ # EOL: Nov 2020
+ default:
+ enabled: true
+ feature_groups:
+ - base
+ - rhel_base
+ # still supported, but only bugfixes after may 2017
+ system_ready_script: |
+ #!/bin/bash
+ [ $(runlevel | awk '{print $2}') = '3' ]
+ user_data_overrides:
+ preserve_hostname: true
+ lxd:
+ features:
+ # NOTE: (LP: #1575779)
+ hostname: false
+ alias: centos/6/default
# vi: ts=4 expandtab