Merge "Refactor Kuryr-Kubernetes gates to Zuul-V3"

This commit is contained in:
Zuul 2018-02-22 06:39:57 +00:00 committed by Gerrit Code Review
commit da611aef0a
6 changed files with 287 additions and 415 deletions

View File

@ -1,161 +1,289 @@
- job:
name: kuryr-kubernetes-install-base
parent: legacy-dsvm-base
run: playbooks/kuryr-kubernetes-install-base/run.yaml
post-run: playbooks/kuryr-kubernetes-install-base/post.yaml
timeout: 4200
vars:
variant: default
required-projects:
- openstack-infra/devstack-gate
- openstack/devstack-plugin-container
- openstack/dragonflow
- openstack/kuryr
- openstack/kuryr-kubernetes
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
- job:
name: kuryr-kubernetes-tempest-base
parent: legacy-dsvm-base
run: playbooks/tempest-kuryr-kubernetes-base/run.yaml
post-run: playbooks/tempest-kuryr-kubernetes-base/post.yaml
timeout: 4200
vars:
loadbalancer: lbaasv2
kuryr_daemon: False
container_engine: kubernetes
required-projects:
- openstack-infra/devstack-gate
- openstack/devstack-plugin-container
- openstack/kuryr
- openstack/kuryr-kubernetes
- openstack/kuryr-tempest-plugin
- openstack/tempest
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
- job:
name: kuryr-kubernetes-install-default
parent: kuryr-kubernetes-install-base
- job:
name: kuryr-kubernetes-install-dragonflow
parent: kuryr-kubernetes-install-base
vars:
variant: dragonflow
voting: false
- job:
name: kuryr-kubernetes-tempest-multinode
parent: legacy-dsvm-base-multinode
run: playbooks/tempest-kuryr-kubernetes-multinode/run.yaml
post-run: playbooks/tempest-kuryr-kubernetes-multinode/post.yaml
timeout: 4200
required-projects:
- openstack-infra/devstack-gate
- openstack/devstack-plugin-container
- openstack/kuryr
- openstack/kuryr-kubernetes
- openstack/kuryr-tempest-plugin
- openstack/tempest
nodeset: legacy-ubuntu-xenial-2-node
voting: false
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
# Tempest with LBaaSV2
- job:
name: kuryr-kubernetes-tempest-lbaasv2
parent: kuryr-kubernetes-tempest-base
# Tempest with LBaaSV2 and CNI daemon enabled
- job:
name: kuryr-kubernetes-tempest-lbaasv2-daemon
parent: kuryr-kubernetes-tempest-base
vars:
kuryr_daemon: True
# Tempest with LBaaSV2 and OpenShift
- job:
name: kuryr-kubernetes-tempest-lbaasv2-openshift
parent: kuryr-kubernetes-tempest-lbaasv2
vars:
container_engine: openshift
voting: false
# Tempest with LBaaSV2, OpenShift and CNI daemon enabled
- job:
name: kuryr-kubernetes-tempest-lbaasv2-daemon-openshift
parent: kuryr-kubernetes-tempest-lbaasv2-daemon
vars:
container_engine: openshift
voting: false
# Tempest with Octavia
- job:
name: kuryr-kubernetes-tempest-octavia
parent: kuryr-kubernetes-tempest-base
vars:
loadbalancer: octavia
required-projects:
- openstack-infra/devstack-gate
- openstack/barbican
- openstack/devstack-plugin-container
- openstack/kuryr
- openstack/kuryr-kubernetes
- openstack/kuryr-tempest-plugin
- openstack/octavia
- openstack/python-barbicanclient
- openstack/python-octaviaclient
- openstack/tempest
# Tempest with Octavia and CNI daemon enabled
- job:
name: kuryr-kubernetes-tempest-octavia-daemon
parent: kuryr-kubernetes-tempest-octavia
vars:
kuryr_daemon: True
voting: false
# Tempest with Octavia and OpenShift
- job:
name: kuryr-kubernetes-tempest-octavia-openshift
parent: kuryr-kubernetes-tempest-octavia
vars:
container_engine: openshift
voting: false
# Tempest with Octavia, OpenShift and CNI daemon enabled
- job:
name: kuryr-kubernetes-tempest-octavia-daemon-openshift
parent: kuryr-kubernetes-tempest-octavia-daemon
vars:
container_engine: openshift
voting: false
# 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.
- project:
check:
jobs:
- kuryr-kubernetes-install-default
- kuryr-kubernetes-install-dragonflow
- kuryr-kubernetes-tempest-lbaasv2
- kuryr-kubernetes-tempest-lbaasv2-openshift
- kuryr-kubernetes-tempest-lbaasv2-daemon
- kuryr-kubernetes-tempest-octavia
- kuryr-kubernetes-tempest-octavia-daemon
- kuryr-kubernetes-tempest-octavia-openshift
- kuryr-kubernetes-tempest-daemon-octavia
- kuryr-kubernetes-tempest-openshift-octavia
- kuryr-kubernetes-tempest-lbaasv2
- kuryr-kubernetes-tempest-daemon-lbaasv2
- kuryr-kubernetes-tempest-openshift-lbaasv2
- kuryr-kubernetes-tempest-dragonflow
- kuryr-kubernetes-tempest-ovn
gate:
jobs:
- kuryr-kubernetes-install-default
- kuryr-kubernetes-tempest-octavia
- kuryr-kubernetes-tempest-lbaasv2
experimental:
jobs:
- kuryr-kubernetes-tempest-multinode
- kuryr-kubernetes-tempest-lbaasv2-daemon-openshift
- kuryr-kubernetes-tempest-octavia-daemon-openshift
- kuryr-kubernetes-tempest-daemon-openshift-octavia
- kuryr-kubernetes-tempest-daemon-openshift-lbaasv2
- kuryr-kubernetes-tempest-multinode-octavia
- kuryr-kubernetes-tempest-multinode-lbaasv2
- kuryr-kubernetes-tempest-octavia-centos-7
- kuryr-kubernetes-tempest-lbaasv2-centos-7
- nodeset:
name: openstack-centos-7-single-node
nodes:
- name: controller
label: centos-7
groups:
- name: tempest
nodes:
- controller
- job:
name: kuryr-kubernetes-tempest-base
parent: devstack-tempest
description: Base kuryr-kubernetes-job
required-projects:
- openstack-infra/devstack-gate
- openstack/devstack-plugin-container
- openstack/kuryr
- openstack/kuryr-kubernetes
- openstack/kuryr-tempest-plugin
- openstack/neutron-lbaas
- openstack/tempest
vars:
tempest_test_regex: '^(kuryr_tempest_plugin.tests.)'
tox_envlist: 'all'
devstack_localrc:
KURYR_K8S_API_PORT: 8080
TEMPEST_PLUGINS: '/opt/stack/kuryr-tempest-plugin'
devstack_services:
base: false
tempest: true
neutron: true
q-agt: true
q-dhcp: true
q-l3: true
q-svc: true
q-meta: true
q-lbaasv2: true
key: true
mysql: true
rabbit: true
n-api: true
n-api-meta: true
n-cpu: true
n-cond: true
n-sch: true
placement-api: true
placement-client: true
g-api: true
g-reg: true
etcd3: true
kubernetes-api: true
kubernetes-controller-manager: true
kubernetes-scheduler: true
kubelet: true
kuryr-kubernetes: true
devstack_plugins:
kuryr-kubernetes: https://git.openstack.org/openstack/kuryr
devstack-plugin-container: https://git.openstack.org/openstack/devstack-plugin-container
neutron-lbaas: https://git.openstack.org/openstack/neutron-lbaas
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
- job:
name: kuryr-kubernetes-tempest-octavia
parent: kuryr-kubernetes-tempest-base
description: |
Kuryr-Kubernetes tempest job using octavia
required-projects:
- openstack/barbican
- openstack/octavia
- openstack/python-barbicanclient
- openstack/python-octaviaclient
vars:
devstack_local_conf:
post-config:
$OCTAVIA_CONF:
controller_worker:
amp_active_retries: 9999
devstack_services:
octavia: true
o-api: true
o-cw: true
o-hk: true
o-hm: true
devstack_plugins:
octavia: https://git.openstack.org/openstack/octavia
barbican: https://git.openstack.org/openstack/barbican
- job:
name: kuryr-kubernetes-tempest-octavia-centos-7
parent: kuryr-kubernetes-tempest-octavia
nodeset: openstack-centos-7-single-node
voting: false
- job:
name: kuryr-kubernetes-tempest-daemon-octavia
parent: kuryr-kubernetes-tempest-octavia
description: |
Kuryr-Kubernetes tempest job using octavia and CNI daemon
vars:
devstack_services:
kuryr_daemon: true
- job:
name: kuryr-kubernetes-tempest-openshift-octavia
parent: kuryr-kubernetes-tempest-octavia
description: |
Kuryr-Kubernetes tempest job using octavia and OpenShift
vars:
devstack_localrc:
DOCKER_CGROUP_DRIVER: "systemd"
devstack_services:
kubernetes-api: false
kubernetes-controller-manager: false
kubernetes-scheduler: false
kubelet: false
openshift-master: true
openshift-node: true
- job:
name: kuryr-kubernetes-tempest-daemon-openshift-octavia
parent: kuryr-kubernetes-tempest-openshift-octavia
description: |
Kuryr-Kubernetes tempest job using octavia, CNI daemon and OpenShift
vars:
devstack_services:
kuryr_daemon: true
voting: false
- job:
name: kuryr-kubernetes-tempest-multinode-octavia
parent: kuryr-kubernetes-tempest-octavia
description: |
Kuryr-Kubernetes tempest multinode job using octavia
nodeset: openstack-two-node
voting: false
- job:
name: kuryr-kubernetes-tempest-lbaasv2
parent: kuryr-kubernetes-tempest-base
description: |
Kuryr-Kubernetes tempest job using lbaasv2
vars:
devstack_localrc:
NEUTRON_LBAAS_SERVICE_PROVIDERV2: 'LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default'
- job:
name: kuryr-kubernetes-tempest-lbaasv2-centos-7
parent: kuryr-kubernetes-tempest-lbaasv2
nodeset: openstack-centos-7-single-node
voting: false
- job:
name: kuryr-kubernetes-tempest-daemon-lbaasv2
parent: kuryr-kubernetes-tempest-lbaasv2
description: |
Kuryr-Kubernetes tempest job using lbaasv2 and CNI daemon
vars:
devstack_services:
kuryr_daemon: true
- job:
name: kuryr-kubernetes-tempest-openshift-lbaasv2
parent: kuryr-kubernetes-tempest-lbaasv2
description: |
Kuryr-Kubernetes tempest job using lbaasv2 and OpenShift
vars:
devstack_localrc:
DOCKER_CGROUP_DRIVER: "systemd"
devstack_services:
kubernetes-api: false
kubernetes-controller-manager: false
kubernetes-scheduler: false
kubelet: false
openshift-master: true
openshift-node: true
- job:
name: kuryr-kubernetes-tempest-daemon-openshift-lbaasv2
parent: kuryr-kubernetes-tempest-openshift-lbaasv2
description: |
Kuryr-Kubernetes tempest job using lbaasv2, CNI daemon and OpenShift
vars:
devstack_services:
kuryr_daemon: true
voting: false
- job:
name: kuryr-kubernetes-tempest-multinode-lbaasv2
parent: kuryr-kubernetes-tempest-lbaasv2
description: |
Kuryr-Kubernetes tempest multinode job using lbaasv2
nodeset: openstack-two-node
voting: false
- job:
name: kuryr-kubernetes-tempest-ovn
parent: kuryr-kubernetes-tempest-lbaasv2
description: |
Kuryr-Kubernetes tempest job using OVN
required-projects:
- openstack/networking-ovn
vars:
devstack_localrc:
OVS_HOST_PATH: /usr/local/var/run/openvswitch
devstack_services:
ovn-northd: true
ovn-controller: true
networking-ovn-metadata-agent: true
q-agt: false
q-l3: false
q-dhcp: false
q-meta: false
q-trunk: true
devstack_plugins:
networking-ovn: https://git.openstack.org/openstack/networking-ovn
neutron: https://git.openstack.org/openstack/neutron
voting: false
- job:
name: kuryr-kubernetes-tempest-dragonflow
parent: kuryr-kubernetes-tempest-lbaasv2
description: |
Kuryr-Kubernetes tempest job using Dragonflow
required-projects:
- openstack/dragonflow
vars:
devstack_localrc:
Q_ENABLE_DRAGONFLOW_LOCAL_CONTROLLER: true
DF_RUNNING_IN_GATE: true
TUNNEL_TYPE: vxlan
DF_L2_RESPONDER: true
OVS_INSTALL_FROM_GIT: false
OVS_BRANCH: master
devstack_services:
q-agt: false
q-dhcp: false
q-l3: false
q-trunk: true
df-redis: true
df-redis-server: true
df-controller: true
df-ext-services: true
df-zmq-publisher-service: true
df-l3-agent: true
devstack_plugins:
dragonflow: https://github.com/openstack/dragonflow
voting: false

View File

@ -1,41 +0,0 @@
# 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.
#
# This script is executed in the install-dsvm-kuryr-kuryr-kubernetes
# OpenStack CI job that runs DevStack + kuryr. You can find the CI job
# configuration here:
#
# https://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/kuryr.yaml
#
VARIANT=${1:-default}
export DEVSTACK_LOCAL_CONFIG="enable_plugin neutron-lbaas git://git.openstack.org/openstack/neutron-lbaas"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin devstack-plugin-container https://git.openstack.org/openstack/devstack-plugin-container"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin kuryr-kubernetes https://git.openstack.org/openstack/kuryr-kubernetes"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"NEUTRON_LBAAS_SERVICE_PROVIDERV2=LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default"
export OVERRIDE_ENABLED_SERVICES=neutron,q-svc,key,mysql,rabbit,docker,etcd3,kubernetes-api,kubernetes-controller-manager,kubernetes-scheduler,kubelet,kuryr-kubernetes,q-lbaasv2
if [[ $VARIANT == 'default' ]]; then
export OVERRIDE_ENABLED_SERVICES+=,q-agt,q-dhcp,q-l3
elif [[ $VARIANT == 'dragonflow' ]]; then
export OVERRIDE_ENABLED_SERVICES+=,df-redis,df-redis-server,df-controller,df-ext-services,df-zmq-publisher-service,df-l3-agent
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin dragonflow https://github.com/openstack/dragonflow"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ENABLE_DRAGONFLOW_LOCAL_CONTROLLER=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"DF_RUNNING_IN_GATE=True"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"TUNNEL_TYPE=vxlan"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"DF_L2_RESPONDER=\"True\""
export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_INSTALL_FROM_GIT=False"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_BRANCH=master"
else
die $LINENO "Unsupported variant"
fi

View File

@ -1,6 +0,0 @@
#!/usr/bin/env bash
set -ex
source $BASE/new/kuryr-kubernetes/devstack/devstackgaterc $1
$BASE/new/devstack-gate/devstack-vm-gate.sh

View File

@ -1,80 +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=**/*nose_results.html
- --include=*/
- --exclude=*
- --prune-empty-dirs
- 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=**/*testr_results.html.gz
- --include=*/
- --exclude=*
- --prune-empty-dirs
- 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=/.testrepository/tmp*
- --include=*/
- --exclude=*
- --prune-empty-dirs
- 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=**/*testrepository.subunit.gz
- --include=*/
- --exclude=*
- --prune-empty-dirs
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}/tox'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/.tox/*/log/*
- --include=*/
- --exclude=*
- --prune-empty-dirs
- 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

View File

@ -1,136 +0,0 @@
- hosts: all
name: tempest-kuryr-kubernetes-base
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack-infra/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
git://git.openstack.org \
openstack-infra/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
cat << 'EOF' >>"/tmp/dg-local.conf"
[[local|localrc]]
enable_plugin kuryr-kubernetes \
https://git.openstack.org/openstack/kuryr-kubernetes
ENABLED_SERVICES=""
# Neutron services
enable_service neutron
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-svc
enable_service q-meta
# Keystone
enable_service key
# dependencies
enable_service mysql
enable_service rabbit
# Nova
enable_service n-api
enable_service n-api-meta
enable_service n-cpu
enable_service n-cond
enable_service n-sch
enable_service placement-api
enable_service placement-client
# Glance
enable_service g-api
enable_service g-reg
# Docker
enable_plugin devstack-plugin-container \
git://git.openstack.org/openstack/devstack-plugin-container
# Etcd
enable_service etcd3
# Kubernetes
KURYR_K8S_API_PORT="8080"
if [ "{{ container_engine }}" == "kubernetes" ]; then
enable_service kubernetes-api
enable_service kubernetes-controller-manager
enable_service kubernetes-scheduler
# Kubelet
enable_service kubelet
elif [ "{{ container_engine }}" == "openshift" ]; then
enable_service openshift-master
enable_service openshift-node
DOCKER_CGROUP_DRIVER="systemd"
fi
# Kuryr watcher
enable_service kuryr-kubernetes
# LBaaS service
ENABLED_SERVICES+=,q-lbaasv2
enable_plugin neutron-lbaas git://git.openstack.org/openstack/neutron-lbaas
if [ "{{ loadbalancer }}" == "lbaasv2" ]; then
# Haproxy agent
NEUTRON_LBAAS_SERVICE_PROVIDERV2=LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
elif [ "{{ loadbalancer }}" == "octavia" ]; then
# Octavia
enable_plugin octavia https://git.openstack.org/openstack/octavia
enable_plugin barbican https://git.openstack.org/openstack/barbican
ENABLED_SERVICES+=,octavia,o-api,o-cw,o-hk,o-hm
fi
if [ "{{ kuryr_daemon }}" == "True" ]; then
# Enable kuryr-daemon
enable_service kuryr-daemon
fi
# Enable Tempest
enable_service tempest
# Enable Tempest plugin
TEMPEST_PLUGINS='/opt/stack/new/kuryr-tempest-plugin'
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=1
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_TEMPEST_REGEX="kuryr_tempest_plugin.tests"
export BRANCH_OVERRIDE=default
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
export PROJECTS="openstack/kuryr-kubernetes $PROJECTS"
export PROJECTS="openstack/kuryr-tempest-plugin $PROJECTS"
export PROJECTS="openstack/devstack-plugin-container $PROJECTS"
if [ "{{ loadbalancer }}" == "octavia" ]; then
export PROJECTS="openstack/barbican $PROJECTS"
export PROJECTS="openstack/python-barbicanclient $PROJECTS"
export PROJECTS="openstack/octavia $PROJECTS"
export PROJECTS="openstack/python-octaviaclient $PROJECTS"
fi
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -0,0 +1,7 @@
---
features:
- |
Migrated all upstream gates to Zuul V3 [1] native format. This commit also
introduces several new (for now) experimental gates such as multinode and
centos-7 based. These will be moved to check and voting once they have been
behaving at a stable pace for some time.