
For the reasons described in the inline comment, use a different root-disk label when building dib test images. Change-Id: I3b518802d681b888916a5cc6a3dcf7e1b537da1e Depends-On: https://review.opendev.org/c/openstack/diskimage-builder/+/853573
103 lines
3.4 KiB
Django/Jinja
103 lines
3.4 KiB
Django/Jinja
elements-dir: {{ NODEPOOL_CONFIG | dirname }}/elements
|
|
images-dir: {{ NODEPOOL_DIB_BASE_PATH }}/images
|
|
|
|
zookeeper-servers:
|
|
- host: localhost
|
|
port: 2281
|
|
|
|
zookeeper-tls:
|
|
ca: /opt/zookeeper/ca/certs/cacert.pem
|
|
cert: /opt/zookeeper/ca/certs/client.pem
|
|
key: /opt/zookeeper/ca/keys/clientkey.pem
|
|
|
|
labels:
|
|
- name: test-image
|
|
min-ready: 1
|
|
|
|
providers:
|
|
- name: devstack
|
|
region-name: RegionOne
|
|
cloud: devstack
|
|
# Long boot timeout to deal with potentially nested virt.
|
|
boot-timeout: 600
|
|
launch-timeout: 900
|
|
rate: 0.25
|
|
diskimages:
|
|
- name: test-image
|
|
config-drive: true
|
|
pools:
|
|
- name: main
|
|
max-servers: 5
|
|
networks:
|
|
- private
|
|
labels:
|
|
- name: test-image
|
|
diskimage: test-image
|
|
min-ram: 512
|
|
flavor-name: 'nodepool'
|
|
console-log: True
|
|
key-name: {{ NODEPOOL_KEY_NAME }}
|
|
instance-properties:
|
|
nodepool_devstack: testing
|
|
userdata: |
|
|
#cloud-config
|
|
write_files:
|
|
- content: |
|
|
testpassed
|
|
path: /etc/testfile_nodepool_userdata
|
|
|
|
diskimages:
|
|
- name: test-image
|
|
rebuild-age: 86400
|
|
{% if 'elements-dir' in nodepool_diskimage %}
|
|
elements-dir: '{{ nodepool_diskimage.elements-dir }}'
|
|
{% endif %}
|
|
elements:
|
|
- {{ nodepool_diskimage.base_element }}
|
|
{% if 'extra_elements' in nodepool_diskimage %}
|
|
{% for item in nodepool_diskimage.extra_elements %}
|
|
- {{ item }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
- vm
|
|
- simple-init
|
|
- growroot
|
|
- devuser
|
|
- openssh-server
|
|
- nodepool-setup
|
|
- journal-to-console
|
|
release: '{{ nodepool_diskimage.release }}'
|
|
env-vars:
|
|
TMPDIR: '{{ NODEPOOL_DIB_BASE_PATH }}/tmp'
|
|
# We have seen multiple instances of dib's bootloader not
|
|
# setting the LABEL= command correctly for the installed kernel.
|
|
# If the command line from current kernel on the the builder
|
|
# system leaks into the test build we can hide the problem --
|
|
# when on a gate node (built by dib) the running kernel has in
|
|
# it's command-line LABEL=cloudimg-rootfs. The test image
|
|
# copies this and boots correctly in the gate; but when it hits
|
|
# the production builders, which don't boot like this, we are
|
|
# left with an unbootable image that can't find it's root
|
|
# partition.
|
|
#
|
|
# Thus we override the default root label during tests. This
|
|
# should ensure the root disk gets made with a different label,
|
|
# and if the bootloader doesn't correctly direct the kernel to
|
|
# this, we should get gate failures.
|
|
ROOT_LABEL: 'gate-rootfs'
|
|
DIB_CHECKSUM: '1'
|
|
DIB_SHOW_IMAGE_USAGE: '1'
|
|
DIB_IMAGE_CACHE: '{{ NODEPOOL_DIB_BASE_PATH }}/cache'
|
|
DIB_DEV_USER_AUTHORIZED_KEYS: '{{ NODEPOOL_PUBKEY }}'
|
|
{% if 'mirror' in nodepool_diskimage %}
|
|
DIB_DISTRIBUTION_MIRROR: '{{ nodepool_diskimage.mirror }}'
|
|
{% endif %}
|
|
{% if zuul.projects.get('opendev.org/opendev/glean', {}).get('required', False) %}
|
|
DIB_INSTALLTYPE_simple_init: 'repo'
|
|
DIB_REPOLOCATION_glean: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/opendev/glean'].src_dir }}"
|
|
DIB_REPOREF_glean: "{{ zuul.projects['opendev.org/opendev/glean'].checkout }}"
|
|
{% endif %}
|
|
{% for k, v in nodepool_diskimage.get('env-vars', {}).items() %}
|
|
{{ k }}: "{{ v }}"
|
|
{% endfor %}
|