Merge "Add system-config-run-base job"
This commit is contained in:
commit
fcfacc7e52
21
.zuul.yaml
21
.zuul.yaml
@ -22,6 +22,26 @@
|
|||||||
vars:
|
vars:
|
||||||
project_src_dir: "{{ zuul.project.src_dir }}/modules/openstack_project"
|
project_src_dir: "{{ zuul.project.src_dir }}/modules/openstack_project"
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: system-config-run-base
|
||||||
|
nodeset:
|
||||||
|
nodes:
|
||||||
|
- name: bridge.openstack.org
|
||||||
|
label: ubuntu-bionic
|
||||||
|
- name: trusty
|
||||||
|
label: ubuntu-trusty
|
||||||
|
- name: xenial
|
||||||
|
label: ubuntu-xenial
|
||||||
|
- name: bionic
|
||||||
|
label: ubuntu-bionic
|
||||||
|
- name: centos7
|
||||||
|
label: centos-7
|
||||||
|
pre-run: playbooks/zuul/run-base-pre.yaml
|
||||||
|
run: playbooks/zuul/run-base.yaml
|
||||||
|
files:
|
||||||
|
- playbooks/.*
|
||||||
|
- roles/.*
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
@ -29,6 +49,7 @@
|
|||||||
- puppet-beaker-rspec-infra-centos-7-system-config
|
- puppet-beaker-rspec-infra-centos-7-system-config
|
||||||
- puppet-beaker-rspec-puppet-4-infra-system-config
|
- puppet-beaker-rspec-puppet-4-infra-system-config
|
||||||
- puppet-beaker-rspec-puppet-4-centos-7-infra-system-config
|
- puppet-beaker-rspec-puppet-4-centos-7-infra-system-config
|
||||||
|
- system-config-run-base
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- puppet-beaker-rspec-infra-system-config
|
- puppet-beaker-rspec-infra-system-config
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
bastion_ipv4: 23.253.245.198,23.253.234.219
|
bastion_ipv4: 23.253.245.198,23.253.234.219
|
||||||
bastion_ipv6: 2001:4800:7818:101:3c21:a454:23ed:4072,2001:4800:7817:103:be76:4eff:fe04:5a1d
|
bastion_ipv6: 2001:4800:7818:101:3c21:a454:23ed:4072,2001:4800:7817:103:be76:4eff:fe04:5a1d
|
||||||
|
bastion_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSLlN41ftgxkNeUi/kATYPwMPjJdMaSbgokSb9PSkRPZE7GeNai60BCfhu+ky8h5eMe70Bpwb7mQ7GAtHGXPNU1SRBPhMuVN9EYrQbt5KSiwuiTXtQHsWyYrSKtB+XGbl2PhpMQ/TPVtFoL5usxu/MYaakVkCEbt5IbPYNg88/NKPixicJuhi0qsd+l1X1zoc1+Fn87PlwMoIgfLIktwaL8hw9mzqr+pPcDIjCFQQWnjqJVEObOcMstBT20XwKj/ymiH+6p123nnlIHilACJzXhmIZIZO+EGkNF7KyXpcBSfv9efPI+VCE2TOv/scJFdEHtDFkl2kdUBYPC0wQ92rp puppet-remote-2014-09-15
|
||||||
base_packages:
|
base_packages:
|
||||||
- at
|
- at
|
||||||
- git
|
- git
|
||||||
|
@ -36,8 +36,7 @@
|
|||||||
state: present
|
state: present
|
||||||
user: root
|
user: root
|
||||||
exclusive: yes
|
exclusive: yes
|
||||||
key: |
|
key: "{{ bastion_public_key }}"
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSLlN41ftgxkNeUi/kATYPwMPjJdMaSbgokSb9PSkRPZE7GeNai60BCfhu+ky8h5eMe70Bpwb7mQ7GAtHGXPNU1SRBPhMuVN9EYrQbt5KSiwuiTXtQHsWyYrSKtB+XGbl2PhpMQ/TPVtFoL5usxu/MYaakVkCEbt5IbPYNg88/NKPixicJuhi0qsd+l1X1zoc1+Fn87PlwMoIgfLIktwaL8hw9mzqr+pPcDIjCFQQWnjqJVEObOcMstBT20XwKj/ymiH+6p123nnlIHilACJzXhmIZIZO+EGkNF7KyXpcBSfv9efPI+VCE2TOv/scJFdEHtDFkl2kdUBYPC0wQ92rp puppet-remote-2014-09-15
|
|
||||||
key_options: |
|
key_options: |
|
||||||
from="{{ bastion_ipv4 }},{{ bastion_ipv6 }},localhost"
|
from="{{ bastion_ipv4 }},{{ bastion_ipv6 }},localhost"
|
||||||
|
|
||||||
|
5
playbooks/zuul/run-base-pre.yaml
Normal file
5
playbooks/zuul/run-base-pre.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- ensure-tox
|
||||||
|
- multi-node-known-hosts
|
||||||
|
- copy-build-sshkey
|
51
playbooks/zuul/run-base.yaml
Normal file
51
playbooks/zuul/run-base.yaml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
- import_playbook: ../bridge.yaml
|
||||||
|
vars:
|
||||||
|
root_rsa_key: "{{ lookup('file', zuul.executor.work_root + '/' + zuul.build + '_id_rsa') }}"
|
||||||
|
|
||||||
|
- hosts: bridge.openstack.org
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: Write inventory on bridge
|
||||||
|
include_role:
|
||||||
|
name: write-inventory
|
||||||
|
vars:
|
||||||
|
write_inventory_dest: /etc/ansible/hosts/inventory.yaml
|
||||||
|
write_inventory_exclude_hostvars:
|
||||||
|
- ansible_user
|
||||||
|
- name: Update ansible.cfg to use job inventory
|
||||||
|
ini_file:
|
||||||
|
path: /etc/ansible/ansible.cfg
|
||||||
|
section: defaults
|
||||||
|
option: inventory
|
||||||
|
value: /etc/ansible/hosts/inventory.yaml
|
||||||
|
- name: Set up /opt/system-config repo
|
||||||
|
git:
|
||||||
|
repo: /home/zuul/src/git.openstack.org/openstack-infra/system-config
|
||||||
|
dest: /opt/system-config
|
||||||
|
force: yes
|
||||||
|
- name: Make host_vars directory
|
||||||
|
file:
|
||||||
|
path: "/etc/ansible/hosts/host_vars"
|
||||||
|
state: directory
|
||||||
|
- name: Make group_vars directory
|
||||||
|
file:
|
||||||
|
path: "/etc/ansible/hosts/group_vars"
|
||||||
|
state: directory
|
||||||
|
- name: Write hostvars files
|
||||||
|
vars:
|
||||||
|
bastion_ipv4: "{{ nodepool['public_ipv4'] }}"
|
||||||
|
bastion_ipv6: "{{ nodepool['public_ipv6'] }}"
|
||||||
|
bastion_public_key: "{{ lookup('file', zuul.executor.work_root + '/' + zuul.build + '_id_rsa.pub') }}"
|
||||||
|
template:
|
||||||
|
src: "templates/{{ item }}.j2"
|
||||||
|
dest: "/etc/ansible/hosts/{{ item }}"
|
||||||
|
loop:
|
||||||
|
- group_vars/all.yaml
|
||||||
|
- name: Run base.yaml
|
||||||
|
command: ansible-playbook /home/zuul/src/git.openstack.org/openstack-infra/system-config/playbooks/base.yaml
|
||||||
|
- name: Run testinfra to validate configuration
|
||||||
|
include_role:
|
||||||
|
name: tox
|
||||||
|
vars:
|
||||||
|
tox_envlist: testinfra
|
||||||
|
tox_extra_args: testinfra/test_base.py
|
10
playbooks/zuul/templates/group_vars/all.yaml.j2
Normal file
10
playbooks/zuul/templates/group_vars/all.yaml.j2
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# If the bastion ipv4 or v6 addresses aren't available (because this
|
||||||
|
# job runs in an environment without them) just fall back to the
|
||||||
|
# defaults for the real bridge.
|
||||||
|
{% if bastion_ipv4 %}
|
||||||
|
bastion_ipv4: {{ bastion_ipv4 }}
|
||||||
|
{% endif %}
|
||||||
|
{% if bastion_ipv6 %}
|
||||||
|
bastion_ipv6: {{ bastion_ipv6 }}
|
||||||
|
{% endif %}
|
||||||
|
bastion_public_key: {{ bastion_public_key }}
|
@ -7,3 +7,7 @@ PyYAML>=3.10.0 # MIT
|
|||||||
ansible-lint
|
ansible-lint
|
||||||
openstacksdk
|
openstacksdk
|
||||||
zuul-sphinx>=0.2.3
|
zuul-sphinx>=0.2.3
|
||||||
|
testinfra
|
||||||
|
# pytest-xdist is a plugin for pytest which allows parallel execution,
|
||||||
|
# used by testinfra
|
||||||
|
pytest-xdist
|
||||||
|
23
testinfra/test_base.py
Normal file
23
testinfra/test_base.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Copyright 2018 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
def test_exim_is_installed(host):
|
||||||
|
if host.system_info.distribution in ['ubuntu', 'debian']:
|
||||||
|
exim = host.package("exim4-base")
|
||||||
|
else:
|
||||||
|
exim = host.package("exim")
|
||||||
|
assert exim.is_installed
|
||||||
|
|
||||||
|
cmd = host.run("exim -bt root")
|
||||||
|
assert cmd.rc == 0
|
3
tox.ini
3
tox.ini
@ -31,6 +31,9 @@ commands = {posargs}
|
|||||||
deps = -r{toxinidir}/doc/requirements.txt
|
deps = -r{toxinidir}/doc/requirements.txt
|
||||||
commands = sphinx-build -W -E -b html doc/source doc/build/html
|
commands = sphinx-build -W -E -b html doc/source doc/build/html
|
||||||
|
|
||||||
|
[testenv:testinfra]
|
||||||
|
commands = py.test -n 5 --connection=ansible --ansible-inventory=/etc/ansible/hosts/inventory.yaml --hosts=all -v {posargs}
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
show-source = True
|
show-source = True
|
||||||
exclude = .tox,.eggs
|
exclude = .tox,.eggs
|
||||||
|
Loading…
Reference in New Issue
Block a user