Add voting and gating test with Keystone enabled
Without this test, the Ironic services might end up misconfigured and machines can not be provisioned properly. The Ironic configuration templates that Bifrost uses should be validated for both Keystone enabled and disabled. Change-Id: Iab4457a6dcea232b5c19e681dc87b08570c2a120 Depends-On: I4c733dba8e65fe624c9de5b9c5722cef2df59109
This commit is contained in:
parent
5a688a0110
commit
99e97c4cc7
@ -6,6 +6,16 @@
|
||||
|
||||
tasks:
|
||||
|
||||
- name: Set script name for testing without Keystone
|
||||
set_fact:
|
||||
script_name: scripts/test-bifrost.sh
|
||||
when: not (use_keystone | default(false) | bool)
|
||||
|
||||
- name: Set script name for testing with Keystone
|
||||
set_fact:
|
||||
script_name: scripts/test-bifrost-keystone-auth.sh
|
||||
when: use_keystone | default(false) | bool
|
||||
|
||||
- name: Ensure legacy workspace directory
|
||||
file:
|
||||
path: '{{ ansible_user_dir }}/workspace'
|
||||
@ -66,7 +76,7 @@
|
||||
export GIT_BASE=$(pwd)
|
||||
export UPPER_CONSTRAINTS_FILE=$WORKSPACE/upper-constraints.txt
|
||||
cd openstack/bifrost
|
||||
scripts/test-bifrost.sh
|
||||
"{{ script_name }}"
|
||||
executable: /bin/bash
|
||||
chdir: '{{ ansible_user_dir }}/workspace'
|
||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
||||
|
@ -35,7 +35,11 @@ log_dir = {{ ironic_log_dir }}
|
||||
{% endif %}
|
||||
|
||||
[pxe]
|
||||
{% if testing | bool %}
|
||||
pxe_append_params = console=/dev/ttyS0
|
||||
{% else %}
|
||||
pxe_append_params = systemd.journald.forward_to_console=yes {{ extra_kernel_options | default('') }}
|
||||
{% endif %}
|
||||
pxe_config_template = $pybasedir/drivers/modules/ipxe_config.template
|
||||
tftp_server = {{ hostvars[inventory_hostname]['ansible_' + ans_network_interface]['ipv4']['address'] }}
|
||||
tftp_root = /tftpboot
|
||||
@ -108,5 +112,5 @@ project_domain_id = default
|
||||
region_name = {{ keystone.bootstrap.region_name | default('RegionOne')}}
|
||||
{% else %}
|
||||
auth_type = none
|
||||
endpoint_override = http://{{ hostvars[inventory_hostname]['ansible_' + ans_network_interface]['ipv4']['address'] }}:6385
|
||||
{% endif %}
|
||||
endpoint_override = http://{{ hostvars[inventory_hostname]['ansible_' + ans_network_interface]['ipv4']['address'] }}:6385
|
||||
|
@ -11,18 +11,47 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
---
|
||||
- name: "Install {{ package }} package from pip"
|
||||
|
||||
- name: set virtualenv_command
|
||||
set_fact:
|
||||
venv_command: "{{ hostvars[inventory_hostname].ansible_python.executable }} -m virtualenv"
|
||||
when: enable_venv|bool
|
||||
|
||||
- name: "Install {{ package }} package from pip using virtualenv"
|
||||
pip:
|
||||
name: "{{ package }}"
|
||||
state: "{{ state | default(omit) }}"
|
||||
version: "{{ version | default(omit) }}"
|
||||
virtualenv: "{{ bifrost_venv_dir if enable_venv else omit }}"
|
||||
virtualenv: "{{ bifrost_venv_dir }}"
|
||||
virtualenv_command: "{{ venv_command | default(omit) }}"
|
||||
extra_args: "{{ extra_args | default(omit) }}"
|
||||
when: source_install is not defined or source_install == false
|
||||
register: pip_package_install_done
|
||||
until: pip_package_install_done|succeeded
|
||||
retries: 5
|
||||
delay: 10
|
||||
when: (source_install is not defined or source_install == false) and enable_venv|bool
|
||||
|
||||
- name: "Install {{ package }} package from pip without virtualenv"
|
||||
pip:
|
||||
name: "{{ package }}"
|
||||
state: "{{ state | default(omit) }}"
|
||||
version: "{{ version | default(omit) }}"
|
||||
extra_args: "{{ extra_args | default(omit) }}"
|
||||
requirements: "{{ requirements_file | default(omit) }}"
|
||||
register: pip_package_install_done
|
||||
until: pip_package_install_done|succeeded
|
||||
retries: 5
|
||||
delay: 10
|
||||
when: (source_install is not defined or source_install == false) and not enable_venv|bool
|
||||
|
||||
# NOTE (cinerama): We should be able to use the pip module here and
|
||||
# possibly merge these two tasks when
|
||||
# https://github.com/ansible/ansible-modules-core/pull/2600 lands.
|
||||
- name: "Install from {{ sourcedir }} using pip"
|
||||
command: pip install --upgrade {{ sourcedir }} {{ extra_args | default('') }}
|
||||
register: pip_package_install_done
|
||||
until: pip_package_install_done|succeeded
|
||||
retries: 5
|
||||
delay: 10
|
||||
when: source_install is defined and (source_install | bool == true)
|
||||
environment: "{{ bifrost_venv_env if enable_venv else {} }}"
|
||||
|
@ -200,6 +200,7 @@ ${ANSIBLE} -vvvv \
|
||||
-e wait_timeout=${PROVISION_WAIT_TIMEOUT} \
|
||||
-e noauth_mode=${NOAUTH_MODE} \
|
||||
-e enable_keystone=${ENABLE_KEYSTONE} \
|
||||
-e use_public_urls=${ENABLE_KEYSTONE} \
|
||||
-e wait_for_node_deploy=${WAIT_FOR_DEPLOY} \
|
||||
-e not_enrolled_data_file=${BAREMETAL_DATA_FILE}.rest \
|
||||
${CLOUD_CONFIG}
|
||||
|
@ -83,6 +83,13 @@
|
||||
parent: bifrost-integration-tinyipa
|
||||
nodeset: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-keystone-ubuntu-xenial
|
||||
parent: bifrost-integration-tinyipa
|
||||
nodeset: ubuntu-xenial
|
||||
vars:
|
||||
use_keystone: true
|
||||
|
||||
- job:
|
||||
name: bifrost-integration-tinyipa-centos-7
|
||||
parent: bifrost-integration-tinyipa
|
||||
|
@ -7,6 +7,7 @@
|
||||
check:
|
||||
jobs:
|
||||
- bifrost-integration-tinyipa-ubuntu-xenial
|
||||
- bifrost-integration-tinyipa-keystone-ubuntu-xenial
|
||||
- bifrost-integration-tinyipa-opensuse-423
|
||||
# Non-voting jobs
|
||||
- bifrost-integration-dhcp-ubuntu-xenial:
|
||||
@ -27,5 +28,6 @@
|
||||
gate:
|
||||
jobs:
|
||||
- bifrost-integration-tinyipa-ubuntu-xenial
|
||||
- bifrost-integration-tinyipa-keystone-ubuntu-xenial
|
||||
- bifrost-integration-tinyipa-opensuse-423
|
||||
- openstack-tox-lower-constraints
|
||||
|
Loading…
Reference in New Issue
Block a user