From d2dc5dd2072fd86b7abfffb16b127c6ff16b32d5 Mon Sep 17 00:00:00 2001 From: Colleen Murphy Date: Sat, 2 Jun 2018 15:11:09 +0200 Subject: [PATCH] Convert infra's beaker jobs for zuulv3 This patch moves the legacy beaker jobs that were being used for Infra's puppet modules out of the legecy definitions and into the regular list. Historically, the test scripts were shared between the Infra and Puppet OpenStack teams, but the Puppet OpenStack team has already moved their jobs in-repo so we can remove tasks specific to their setup. We need to leave some jobs and playbooks in place that are still being used by the puppet-midonet project which belongs to neither team. Change-Id: Iefea6ee173cff2bf050d99d96ae2e1d1a51b7f49 --- playbooks/infra-puppet-beaker-rspec/run.yaml | 53 ++++++++ .../legacy/puppet-beaker-rspec/post.yaml | 15 --- playbooks/legacy/puppet-beaker-rspec/run.yaml | 126 ------------------ zuul.d/jobs.yaml | 103 ++++++++++++++ zuul.d/project-templates.yaml | 25 ++++ zuul.d/zuul-legacy-jobs.yaml | 88 ------------ zuul.d/zuul-legacy-project-templates.yaml | 28 +--- 7 files changed, 183 insertions(+), 255 deletions(-) create mode 100644 playbooks/infra-puppet-beaker-rspec/run.yaml delete mode 100644 playbooks/legacy/puppet-beaker-rspec/post.yaml delete mode 100644 playbooks/legacy/puppet-beaker-rspec/run.yaml diff --git a/playbooks/infra-puppet-beaker-rspec/run.yaml b/playbooks/infra-puppet-beaker-rspec/run.yaml new file mode 100644 index 00000000..08f36fec --- /dev/null +++ b/playbooks/infra-puppet-beaker-rspec/run.yaml @@ -0,0 +1,53 @@ +- hosts: all + name: Beaker-rspec functional testing for Infra puppet modules + roles: + - bindep + + tasks: + + - name: Set up SSH for beaker + shell: + cmd: | + echo "" | sudo tee -a /etc/ssh/sshd_config + echo "Match address 127.0.0.1" | sudo tee -a /etc/ssh/sshd_config + echo " PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config + echo "" | sudo tee -a /etc/ssh/sshd_config + echo "Match address ::1" | sudo tee -a /etc/ssh/sshd_config + echo " PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config + mkdir -p ~/.ssh + ssh-keygen -f ~/.ssh/id_rsa -b 2048 -P "" + sudo mkdir -p /root/.ssh + cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys + if [ -f /usr/bin/yum ]; then + sudo systemctl reload sshd + elif [ -f /usr/bin/apt-get ]; then + sudo service ssh restart + fi + + - name: Create local gems directory + file: + state: directory + path: '{{ ansible_user_dir }}/.bundled_gems' + + - name: Install ruby dependencies + become: yes + shell: + cmd: | + if [ -f /usr/bin/yum ]; then + yum install ruby-devel gcc-c++ -y + elif [ -f /usr/bin/apt-get ]; then + apt-get install ruby-dev -y + fi + + - name: Execute acceptance tests + shell: + cmd: | + gem install bundler --no-rdoc --no-ri --verbose + $GEM_HOME/bin/bundle install --retry 3 + export BEAKER_set={{ nodeset }} + export BEAKER_debug=yes + export BEAKER_color=no + $GEM_HOME/bin/bundle exec rspec spec/acceptance + chdir: "{{ zuul.project.src_dir }}" + environment: + 'GEM_HOME': "{{ ansible_user_dir }}/.bundled_gems" diff --git a/playbooks/legacy/puppet-beaker-rspec/post.yaml b/playbooks/legacy/puppet-beaker-rspec/post.yaml deleted file mode 100644 index e07f5510..00000000 --- a/playbooks/legacy/puppet-beaker-rspec/post.yaml +++ /dev/null @@ -1,15 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff --git a/playbooks/legacy/puppet-beaker-rspec/run.yaml b/playbooks/legacy/puppet-beaker-rspec/run.yaml deleted file mode 100644 index 048e0db3..00000000 --- a/playbooks/legacy/puppet-beaker-rspec/run.yaml +++ /dev/null @@ -1,126 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-puppet-beaker-rspec from old job gate-{name}-puppet-beaker-rspec-ubuntu-xenial - roles: - - bindep - - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - CLONEMAP=`mktemp` - function cleanup { - # In cases where zuul-cloner is aborted during a git - # clone operation, git will remove the git work tree in - # its cleanup. The work tree in these jobs is the - # workspace directory, which means that subsequent - # jenkins post-build actions can not run because the - # workspace has been removed. - # To reduce the likelihood of this having an impact, - # recreate the workspace directory if needed - mkdir -p $WORKSPACE - rm -f $CLONEMAP - } - trap cleanup EXIT - cat > $CLONEMAP << EOF - clonemap: - - name: $ZUUL_PROJECT - dest: . - EOF - /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \ - git://git.openstack.org $ZUUL_PROJECT - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - ZUUL_BRANCH_REAL=${ZUUL_BRANCH:-master} - # Workaround for puppet-ceph, where we need to checkout - # puppet-openstack-integration from stable/pike when working on - # stable/jewel. - # Ceph Jewel works with Newton to Pike - if [[ "$ZUUL_BRANCH" == "stable/jewel" ]]; then - ZUUL_BRANCH_REAL='stable/pike' - fi - export ZUUL_REF=${ZUUL_REF:-None} - CLONEMAP=`mktemp` - function cleanup { - rm -f $CLONEMAP - } - trap cleanup EXIT - cat > $CLONEMAP << EOF - clonemap: - - name: openstack/puppet-openstack-integration - dest: puppet-openstack-integration - EOF - /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \ - --cache-dir /opt/git \ - --zuul-branch $ZUUL_BRANCH_REAL \ - git://git.openstack.org openstack/puppet-openstack-integration - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - if [ -f /usr/bin/yum ]; then - sudo yum -y remove rdo-release "centos-release-openstack-*" "centos-release-ceph-*" - sudo yum -y install libxml2-devel libxslt-devel ruby-devel zlib-devel - sudo yum -y groupinstall "Development Tools" - # Uninstall python-requests from pip, since we install it in - # system-config/install_puppet.sh - sudo pip uninstall requests -y || true - elif [ -f /usr/bin/apt-get ]; then - sudo apt-get update - sudo apt-get install -y libxml2-dev libxslt-dev ruby-dev zlib1g-dev - fi - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - echo "" | sudo tee -a /etc/ssh/sshd_config - echo "Match address 127.0.0.1" | sudo tee -a /etc/ssh/sshd_config - echo " PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config - echo "" | sudo tee -a /etc/ssh/sshd_config - echo "Match address ::1" | sudo tee -a /etc/ssh/sshd_config - echo " PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config - mkdir -p .ssh - ssh-keygen -f ~/.ssh/id_rsa -b 2048 -P "" - sudo mkdir -p /root/.ssh - cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys - if [ -f /usr/bin/yum ]; then - sudo systemctl reload sshd - elif [ -f /usr/bin/apt-get ]; then - sudo service ssh restart - fi - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - trap "puppet-openstack-integration/copy_logs.sh" EXIT - mkdir .bundled_gems - export GEM_HOME=`pwd`/.bundled_gems - gem install bundler --no-rdoc --no-ri --verbose - $GEM_HOME/bin/bundle install --retry 3 - export BEAKER_set=nodepool-xenial - export BEAKER_debug=yes - export BEAKER_color=no - $GEM_HOME/bin/bundle exec rspec spec/acceptance - chdir: '{{ ansible_user_dir }}/workspace' - executable: /bin/bash - environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index e9a8ba37..e5d80254 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -1233,6 +1233,109 @@ vars: puppet_version: 4 +- job: + name: puppet-beaker-rspec-infra + description: | + Base job for beaker-rspec tests for Infra's puppet modules + nodeset: devstack-single-node + run: playbooks/infra-puppet-beaker-rspec/run.yaml + vars: + nodeset: nodepool-xenial + timeout: 3600 + irrelevant-files: + - ^.*\.md$ + - ^.*\.rst$ + - ^doc/.*$ + - ^etc/.*$ + - ^metadata.json$ + - ^releasenotes/.*$ + - ^test-requirements.txt$ + required-projects: + - openstack-infra/project-config + - openstack-infra/system-config + - openstack-infra/puppet-openstack_infra_spec_helper + - openstack-infra/puppet-bugdaystats + - openstack-infra/puppet-mysql_backup + - openstack-infra/puppet-openstackci + - openstack-infra/puppet-zuul + - openstack-infra/puppet-mqtt_statsd + - openstack-infra/puppet-meetbot + - openstack-infra/puppet-hound + - openstack-infra/puppet-pip + - openstack-infra/puppet-os_client_config + - openstack-infra/puppet-openstackid + - openstack-infra/puppet-bandersnatch + - openstack-infra/puppet-project_config + - openstack-infra/puppet-grafyaml + - openstack-infra/puppet-refstack + - openstack-infra/puppet-github + - openstack-infra/puppet-ethercalc + - openstack-infra/puppet-unattended_upgrades + - openstack-infra/puppet-openafs + - openstack-infra/puppet-httpd + - openstack-infra/puppet-drupal + - openstack-infra/puppet-subunit2sql + - openstack-infra/puppet-reviewday + - openstack-infra/puppet-kibana + - openstack-infra/puppet-redis + - openstack-infra/puppet-phabricator + - openstack-infra/puppet-ssl_cert_check + - openstack-infra/puppet-lpmqtt + - openstack-infra/puppet-germqtt + - openstack-infra/puppet-cgit + - openstack-infra/puppet-packagekit + - openstack-infra/puppet-haveged + - openstack-infra/puppet-graphite + - openstack-infra/puppet-diskimage_builder + - openstack-infra/puppet-sudoers + - openstack-infra/puppet-stackalytics + - openstack-infra/puppet-zanata + - openstack-infra/puppet-logstash + - openstack-infra/puppet-gerritbot + - openstack-infra/puppet-asterisk + - openstack-infra/puppet-statusbot + - openstack-infra/puppet-gerrit + - openstack-infra/puppet-mediawiki + - openstack-infra/puppet-mailman + - openstack-infra/puppet-exim + - openstack-infra/puppet-tmpreaper + - openstack-infra/puppet-elastic_recheck + - openstack-infra/puppet-ulimit + - openstack-infra/puppet-planet + - openstack-infra/puppet-nodepool + - openstack-infra/puppet-logrotate + - openstack-infra/puppet-infracloud + - openstack-infra/puppet-elasticsearch + - openstack-infra/puppet-unbound + - openstack-infra/puppet-storyboard + - openstack-infra/puppet-openstack_health + - openstack-infra/puppet-kerberos + - openstack-infra/puppet-odsreg + - openstack-infra/puppet-askbot + - openstack-infra/puppet-log_processor + - openstack-infra/puppet-simpleproxy + - openstack-infra/puppet-iptables + - openstack-infra/puppet-lodgeit + - openstack-infra/puppet-etherpad_lite + - openstack-infra/puppet-mosquitto + - openstack-infra/puppet-bup + - openstack-infra/puppet-pgsql_backup + - openstack-infra/puppet-ansible + - openstack-infra/puppet-ssh + - openstack-infra/puppet-snmpd + - openstack-infra/puppet-user + - openstack-infra/puppet-jeepyb + - openstack-infra/puppet-accessbot + - openstack-infra/puppet-ptgbot + - openstack-infra/puppet-jenkins + +- job: + name: puppet-beaker-rspec-centos-7-infra + parent: puppet-beaker-rspec-infra + nodeset: centos-7 + vars: + nodeset: nodepool-centos7 + - job: name: ansible-role-functional-base abstract: true diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml index ad700e22..f614f123 100644 --- a/zuul.d/project-templates.yaml +++ b/zuul.d/project-templates.yaml @@ -1036,3 +1036,28 @@ jobs: - golang-fmt - golang-unit + +- project-template: + name: puppet-beaker-jobs-xenial-infra + check: + jobs: + - puppet-beaker-rspec-infra + gate: + jobs: + - puppet-beaker-rspec-infra + +- project-template: + name: puppet-beaker-jobs-xenial-infra-nv + check: + jobs: + - puppet-beaker-rspec-infra: + voting: false + +- project-template: + name: puppet-beaker-jobs-centos-7-infra + check: + jobs: + - puppet-beaker-rspec-centos-7-infra + gate: + jobs: + - puppet-beaker-rspec-centos-7-infra diff --git a/zuul.d/zuul-legacy-jobs.yaml b/zuul.d/zuul-legacy-jobs.yaml index 3d2eb2e8..b6c14051 100644 --- a/zuul.d/zuul-legacy-jobs.yaml +++ b/zuul.d/zuul-legacy-jobs.yaml @@ -1576,87 +1576,6 @@ - ^releasenotes/.*$ - ^test-requirements.txt$ -- job: - name: legacy-puppet-beaker-rspec-infra - parent: legacy-puppet-beaker-rspec - required-projects: - - openstack-infra/project-config - - openstack-infra/system-config - - openstack-infra/puppet-bugdaystats - - openstack-infra/puppet-mysql_backup - - openstack-infra/puppet-openstackci - - openstack-infra/puppet-zuul - - openstack-infra/puppet-mqtt_statsd - - openstack-infra/puppet-meetbot - - openstack-infra/puppet-hound - - openstack-infra/puppet-pip - - openstack-infra/puppet-os_client_config - - openstack-infra/puppet-openstackid - - openstack-infra/puppet-bandersnatch - - openstack-infra/puppet-project_config - - openstack-infra/puppet-grafyaml - - openstack-infra/puppet-refstack - - openstack-infra/puppet-github - - openstack-infra/puppet-ethercalc - - openstack-infra/puppet-unattended_upgrades - - openstack-infra/puppet-openafs - - openstack-infra/puppet-httpd - - openstack-infra/puppet-drupal - - openstack-infra/puppet-subunit2sql - - openstack-infra/puppet-reviewday - - openstack-infra/puppet-kibana - - openstack-infra/puppet-redis - - openstack-infra/puppet-phabricator - - openstack-infra/puppet-ssl_cert_check - - openstack-infra/puppet-lpmqtt - - openstack-infra/puppet-germqtt - - openstack-infra/puppet-cgit - - openstack-infra/puppet-packagekit - - openstack-infra/puppet-haveged - - openstack-infra/puppet-graphite - - openstack-infra/puppet-diskimage_builder - - openstack-infra/puppet-sudoers - - openstack-infra/puppet-stackalytics - - openstack-infra/puppet-zanata - - openstack-infra/puppet-logstash - - openstack-infra/puppet-gerritbot - - openstack-infra/puppet-asterisk - - openstack-infra/puppet-statusbot - - openstack-infra/puppet-gerrit - - openstack-infra/puppet-mediawiki - - openstack-infra/puppet-mailman - - openstack-infra/puppet-exim - - openstack-infra/puppet-tmpreaper - - openstack-infra/puppet-elastic_recheck - - openstack-infra/puppet-ulimit - - openstack-infra/puppet-planet - - openstack-infra/puppet-nodepool - - openstack-infra/puppet-logrotate - - openstack-infra/puppet-infracloud - - openstack-infra/puppet-elasticsearch - - openstack-infra/puppet-unbound - - openstack-infra/puppet-storyboard - - openstack-infra/puppet-openstack_health - - openstack-infra/puppet-kerberos - - openstack-infra/puppet-odsreg - - openstack-infra/puppet-askbot - - openstack-infra/puppet-log_processor - - openstack-infra/puppet-simpleproxy - - openstack-infra/puppet-iptables - - openstack-infra/puppet-lodgeit - - openstack-infra/puppet-etherpad_lite - - openstack-infra/puppet-mosquitto - - openstack-infra/puppet-bup - - openstack-infra/puppet-pgsql_backup - - openstack-infra/puppet-ansible - - openstack-infra/puppet-ssh - - openstack-infra/puppet-snmpd - - openstack-infra/puppet-user - - openstack-infra/puppet-jeepyb - - openstack-infra/puppet-accessbot - - openstack-infra/puppet-ptgbot - - openstack-infra/puppet-jenkins - - job: name: legacy-puppet-beaker-rspec-centos-7 parent: legacy-puppet-openstack-integration @@ -1675,13 +1594,6 @@ - ^releasenotes/.*$ - ^test-requirements.txt$ -- job: - name: legacy-puppet-beaker-rspec-centos-7-infra - parent: legacy-puppet-beaker-rspec-infra - run: playbooks/legacy/puppet-beaker-rspec-centos-7/run.yaml - post-run: playbooks/legacy/puppet-beaker-rspec-centos-7/post.yaml - nodeset: legacy-centos-7 - - job: name: legacy-puppet-httpd-forge-upload parent: legacy-base diff --git a/zuul.d/zuul-legacy-project-templates.yaml b/zuul.d/zuul-legacy-project-templates.yaml index b279d1eb..8523828c 100644 --- a/zuul.d/zuul-legacy-project-templates.yaml +++ b/zuul.d/zuul-legacy-project-templates.yaml @@ -117,7 +117,8 @@ jobs: - legacy-tempest-dsvm-neutron-src-plugin -- project-template: + +- project-template: # Used by puppet-midonet name: puppet-beaker-jobs check: jobs: @@ -126,31 +127,6 @@ jobs: - legacy-puppet-beaker-rspec-centos-7 -- project-template: - name: puppet-beaker-jobs-xenial-infra - check: - jobs: - - legacy-puppet-beaker-rspec-infra - gate: - jobs: - - legacy-puppet-beaker-rspec-infra - -- project-template: - name: puppet-beaker-jobs-xenial-infra-nv - check: - jobs: - - legacy-puppet-beaker-rspec-infra: - voting: false - -- project-template: - name: puppet-beaker-jobs-centos-7-infra - check: - jobs: - - legacy-puppet-beaker-rspec-centos-7-infra - gate: - jobs: - - legacy-puppet-beaker-rspec-centos-7-infra - - project-template: name: puppet-module-unit-jobs check: