# ============================= Release Config ================================
default_release_config:
    # 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: {}
        mirror_url: https://cloud-images.ubuntu.com/daily
        mirror_dir: '/srv/citest/images'
        keyring: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
        # The OS version formatted as Major.Minor is used to compare releases
        version: null   # Each release needs to define this, for example 16.04

    ec2:
        # Choose from: [ebs, instance-store]
        root-store: ebs
        boot_timeout: 300
    nocloud-kvm:
        setup_overrides: null
        override_templates: false
    # 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:
    # UBUNTU =================================================================
    bionic:
        # EOL: Apr 2023
        default:
            enabled: true
            release: bionic
            version: 18.04
            os: ubuntu
            feature_groups:
                - base
                - debian_base
                - ubuntu_specific
        lxd:
            sstreams_server: https://cloud-images.ubuntu.com/daily
            alias: bionic
            setup_overrides: null
            override_templates: false
    artful:
        # EOL: Jul 2018
        default:
            enabled: true
            release: artful
            version: 17.10
            os: ubuntu
            feature_groups:
                - base
                - debian_base
                - ubuntu_specific
        lxd:
            sstreams_server: https://cloud-images.ubuntu.com/daily
            alias: artful
            setup_overrides: null
            override_templates: false
    xenial:
        # EOL: Apr 2021
        default:
            enabled: true
            release: xenial
            version: 16.04
            os: ubuntu
            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
            release: trusty
            version: 14.04
            os: ubuntu
            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:
        # 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:
        # 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:
        # 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
