Browse code

Define devstack-base abstract job

Define an abstract job devstack base that does not require any
project apart from devstack. This job defines basic devstack_localrc
settings that are common to any devstack job (mostly to work with
infra) and devstack_services to emit "disable_all_services" so to
cancel any devstack default.

The variables are defined as global ones as well as host-vars for
the controller and group-vars for peer nodes, so that any
descendent job may extend them, thanks for Zuul dict merging.

Change-Id: I2cdb723f6ee209683044fecec59ff7b510a2752b

Andrea Frittoli authored on 2018/02/27 07:23:02
Showing 1 changed files
... ...
@@ -26,43 +26,43 @@
26 26
       - name: subnode
27 27
         nodes:
28 28
           - compute1
29
+      - name: switch
30
+        nodes:
31
+          - controller
32
+      - name: peers
33
+        nodes:
34
+          - compute1
29 35
 
30 36
 - job:
31
-    name: devstack
37
+    name: devstack-base
32 38
     parent: multinode
33
-    description: Base devstack job
34
-    nodeset: openstack-single-node
39
+    abstract: true
40
+    description: |
41
+      Base abstract Devstack job.
42
+
43
+      Defines plays and base variables, but it does not include any project
44
+      and it does not run any service by default. This is a common base for
45
+      all single Devstack jobs, single or multinode.
46
+      Variables are defined in job.vars, which is what is then used by single
47
+      node jobs and by multi node jobs for the controller, as well as in
48
+      job.group-vars.peers, which is what is used by multi node jobs for peer
49
+      nodes (everything but the controller).
35 50
     required-projects:
36 51
       - openstack-dev/devstack
37
-      - openstack/cinder
38
-      - openstack/glance
39
-      - openstack/keystone
40
-      - openstack/neutron
41
-      - openstack/nova
42
-      - openstack/requirements
43
-      - openstack/swift
44 52
     roles:
45 53
       - zuul: openstack-infra/devstack-gate
46 54
       - zuul: openstack-infra/openstack-zuul-jobs
47
-    timeout: 7200
48 55
     vars:
49
-      test_matrix_configs: [neutron, tlsproxy]
50 56
       devstack_localrc:
51 57
         DATABASE_PASSWORD: secretdatabase
52 58
         RABBIT_PASSWORD: secretrabbit
53 59
         ADMIN_PASSWORD: secretadmin
54 60
         SERVICE_PASSWORD: secretservice
55 61
         NETWORK_GATEWAY: 10.1.0.1
56
-        Q_USE_DEBUG_COMMAND: true
57 62
         FIXED_RANGE: 10.1.0.0/20
58 63
         IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
59 64
         FLOATING_RANGE: 172.24.5.0/24
60 65
         PUBLIC_NETWORK_GATEWAY: 172.24.5.1
61
-        FLOATING_HOST_PREFIX: 172.24.4
62
-        FLOATING_HOST_MASK: 23
63
-        SWIFT_REPLICAS: 1
64
-        SWIFT_START_ALL_SERVICES: false
65
-        SWIFT_HASH: 1234123412341234
66 66
         LOGFILE: /opt/stack/logs/devstacklog.txt
67 67
         LOG_COLOR: false
68 68
         VERBOSE: true
... ...
@@ -76,8 +76,7 @@
76 76
         # from the location below for all the CI jobs.
77 77
         ETCD_DOWNLOAD_URL: http://tarballs.openstack.org/etcd/
78 78
       devstack_services:
79
-        horizon: false
80
-        tempest: false
79
+        base: false
81 80
       zuul_copy_output:
82 81
         '{{ devstack_conf_dir }}/local.conf': 'logs'
83 82
         '{{ devstack_conf_dir }}/localrc': 'logs'
... ...
@@ -117,7 +116,28 @@
117 117
         log: True
118 118
         localrc: True
119 119
         stackenv: True
120
-        summary: True
120
+    group-vars:
121
+      peers:
122
+        devstack_localrc:
123
+          DATABASE_PASSWORD: secretdatabase
124
+          RABBIT_PASSWORD: secretrabbit
125
+          ADMIN_PASSWORD: secretadmin
126
+          SERVICE_PASSWORD: secretservice
127
+          NETWORK_GATEWAY: 10.1.0.1
128
+          FIXED_RANGE: 10.1.0.0/20
129
+          IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
130
+          FLOATING_RANGE: 172.24.5.0/24
131
+          PUBLIC_NETWORK_GATEWAY: 172.24.5.1
132
+          LOGFILE: /opt/stack/logs/devstacklog.txt
133
+          LOG_COLOR: false
134
+          VERBOSE: true
135
+          VERBOSE_NO_TIMESTAMP: true
136
+          NOVNC_FROM_PACKAGE: true
137
+          ERROR_ON_CLONE: true
138
+          LIBVIRT_TYPE: qemu
139
+          ETCD_DOWNLOAD_URL: http://tarballs.openstack.org/etcd/
140
+        devstack_services:
141
+          base: false
121 142
     pre-run: playbooks/pre.yaml
122 143
     run: playbooks/devstack.yaml
123 144
     post-run: playbooks/post.yaml
... ...
@@ -131,8 +151,40 @@
131 131
       - ^.*/locale/.*po$
132 132
 
133 133
 - job:
134
+    name: devstack
135
+    parent: devstack-base
136
+    description: |
137
+      Single node devstack job for integration gate.
138
+    nodeset: openstack-single-node
139
+    required-projects:
140
+      - openstack/cinder
141
+      - openstack/glance
142
+      - openstack/keystone
143
+      - openstack/neutron
144
+      - openstack/nova
145
+      - openstack/requirements
146
+      - openstack/swift
147
+    timeout: 7200
148
+    vars:
149
+      test_matrix_configs: [neutron, tlsproxy]
150
+      devstack_localrc:
151
+        # Common OpenStack services settings
152
+        SWIFT_REPLICAS: 1
153
+        SWIFT_START_ALL_SERVICES: false
154
+        SWIFT_HASH: 1234123412341234
155
+        CINDER_PERIODIC_INTERVAL: 10
156
+        DEBUG_LIBVIRT_COREDUMPS: True
157
+        NOVA_VNC_ENABLED: true
158
+        VNCSERVER_LISTEN: 0.0.0.0
159
+        VNCSERVER_PROXYCLIENT_ADDRESS: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
160
+      devstack_services:
161
+        base: true
162
+        horizon: false
163
+        tempest: false
164
+
165
+- job:
134 166
     name: devstack-multinode
135
-    parent: devstack
167
+    parent: devstack-base
136 168
     description: Base devstack multinode job
137 169
     nodeset: openstack-two-node
138 170
     # NOTE(andreaf) The multinode job is useful to see the setup of different