Treat wheel builders more like build nodes
Pass the wheel keytab across and aklog with it. Also, split the build role into a build and a copy so that we only have the token when we need it, and not while we're running the wheel builds themselves. And split release from build so that we can release the mirror once for a consistent state across python2 and python3. Change-Id: Id30a99f5b515dd520d013fabbd356e32c82030a0
This commit is contained in:
parent
8a7456ed90
commit
622f04f214
@ -24,7 +24,7 @@
|
||||
wheel_dir: /opt/wheel/workspace
|
||||
|
||||
roles:
|
||||
- role: build-wheels
|
||||
wheel_python: python2
|
||||
- role: build-wheels
|
||||
wheel_python: python3
|
||||
- build-wheels
|
||||
- create-afs-token
|
||||
- copy-wheels
|
||||
- destroy-afs-token
|
||||
|
@ -1,10 +1,10 @@
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- create-afs-token
|
||||
- role: create-afs-token
|
||||
- role: release-afs
|
||||
afs_volume: trustyx64
|
||||
- role: release-afs
|
||||
afs_volume: cent7x64
|
||||
- role: release-afs
|
||||
afs_volume: xenialx64
|
||||
- destroy-afs-token
|
||||
- role: destroy-afs-token
|
||||
|
1
roles/build-wheels/README.rst
Normal file
1
roles/build-wheels/README.rst
Normal file
@ -0,0 +1 @@
|
||||
Run the build scripts on the wheel mirror builders
|
@ -10,17 +10,3 @@
|
||||
|
||||
- name: Build the wheel mirror
|
||||
shell: bash -x scripts/wheel-build.sh {{ wheel_dir }} {{ wheel_python }}
|
||||
|
||||
- name: Get an afs token and copy the wheels to AFS
|
||||
command: <
|
||||
k5start -t -f /etc/wheel.keytab
|
||||
service/wheel
|
||||
-- timeout -k 2m 30m
|
||||
scripts/wheel-copy.sh {{ wheel_dir }} {{ afs_dir }}
|
||||
|
||||
- name: Obtaining token and rebuilding mirror index
|
||||
command: <
|
||||
k5start -t -f /etc/wheel.keytab
|
||||
service/wheel
|
||||
-- timeout -k 2m 30m
|
||||
scripts/wheel-index.sh {{ afs_dir }}
|
||||
|
1
roles/copy-wheels/README.rst
Normal file
1
roles/copy-wheels/README.rst
Normal file
@ -0,0 +1 @@
|
||||
Run the copy scripts on the wheel mirror builders
|
5
roles/copy-wheels/tasks/main.yaml
Normal file
5
roles/copy-wheels/tasks/main.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
- name: Copy the wheels to AFS
|
||||
command: bash -x scripts/wheel-copy.sh {{ wheel_dir }} {{ afs_dir }}
|
||||
|
||||
- name: Rebuild mirror index
|
||||
command: bash -x scripts/wheel-index.sh {{ afs_dir }}
|
54
zuul.yaml
54
zuul.yaml
@ -280,13 +280,12 @@
|
||||
|
||||
- job:
|
||||
name: build-wheel-mirror
|
||||
pre-run: playbooks/wheel/pre
|
||||
run: playbooks/wheel/build
|
||||
post-run: playbooks/wheel/release
|
||||
nodes: []
|
||||
final: True
|
||||
# 4.5 hours - double the v2 runtime, since we're running python2 and
|
||||
# python3 in series
|
||||
timeout: 16200
|
||||
# 2.5 hours
|
||||
timeout: 9000
|
||||
allowed-projects:
|
||||
- openstack/requirements
|
||||
semaphore: wheel-mirror
|
||||
@ -294,9 +293,29 @@
|
||||
- wheel_mirror_centos_7_key
|
||||
- wheel_mirror_ubuntu_trusty_key
|
||||
- wheel_mirror_ubuntu_xenial_key
|
||||
- name: afs
|
||||
secret: wheel_keytab
|
||||
|
||||
- job:
|
||||
name: release-wheel-mirror
|
||||
run: playbooks/wheel/release
|
||||
nodes: []
|
||||
secrets:
|
||||
- name: afs
|
||||
secret: afsadmin_keytab
|
||||
|
||||
- job:
|
||||
name: build-wheel-mirror-python2
|
||||
parent: build-wheel-mirror
|
||||
vars:
|
||||
wheel_python: python2
|
||||
|
||||
- job:
|
||||
name: build-wheel-mirror-python3
|
||||
parent: build-wheel-mirror
|
||||
vars:
|
||||
wheel_python: python3
|
||||
|
||||
- project:
|
||||
name: openstack-infra/project-config
|
||||
check:
|
||||
@ -577,6 +596,22 @@
|
||||
gcFWp3Xx4jIQHQdx7I5ZHTLSojvChAf2b8/Ps4IvYTiBKxt7wLtyfV9/kj3BAQ=
|
||||
service_name: service/afsadmin@OPENSTACK.ORG
|
||||
|
||||
- secret:
|
||||
name: wheel_keytab
|
||||
data:
|
||||
keytab: !encrypted/pkcs1-oaep
|
||||
- B12EKQPl+E46VynbYHYNOyzbpIYkxLjia3uDsYjah39m2e/VtrnfprDAk/xOzxqZiC4/u
|
||||
uG9bnvzHaUZE6BpoUNja1Tr5Mlzk9UY9OGxnb7KGEzIxxyS3s2H6r50FhlSSwK9VZc8fB
|
||||
Qn2Gp1Vo+Z5VgJoi/W0S7HSPcc9RW+nLdO6S0yX4TLc7EQUlwgQCWowZg5F9V7iouYccz
|
||||
hJ/ZpM3aAK/77vF70gkX2mXKAtu6/AyCUBnEaEG13KrSiONw95xW7+re1WIuHQxDNGbOH
|
||||
FInMT0NxDm7hJp8NycY5F5Otwtx1rVOoAK3ReWYKxiTz6JsaM70jpnwc6Ps3eTXwk2B12
|
||||
mxBsOtjNXJVVF+Np8lKQ/lk7DweHC0uqM+qbX40er1mcYfT9X+Z8W6lqP3FFgWj3cYqBf
|
||||
CsTmqIk+W7PaBG6BCe2635L2Ai7gtlAqavo/J+Cry89zsuaj+AkcVzA6impXhNR9bu0Vm
|
||||
ptwYcxQLEjC+AMUAYwLGhtNGG1wpz1s3kjHyq4ggYUep7C58M3Sk8K58xjVnzAKOldAL1
|
||||
EN/khW6Dz+h7qOktic0Nia2AXRG3U8EQY8G/ZL6GGhvlldABqTi7uyLwtUHq+edirlO+5
|
||||
rk1ilszKDQOr+gBfweJGrJVcTCTOv+uKf4V8jeSTn6d7Wlu5k3tchI41A3pWeA=
|
||||
service_name: service/wheel@OPENSTACK.ORG
|
||||
|
||||
- secret:
|
||||
name: wheel_mirror_ubuntu_xenial_key
|
||||
data:
|
||||
@ -754,7 +789,10 @@
|
||||
periodic:
|
||||
jobs:
|
||||
# This is a periodic job to ensure that our wheels are reasonably
|
||||
# up-to-date. Adding it to the requirements project seems to be the
|
||||
# best place to put it, though it's not strictly a requirement for
|
||||
# requirements.
|
||||
- build-wheel-mirror
|
||||
# up-to-date. It uses the upper-constraints files from requirements.
|
||||
- build-wheel-mirror-python2
|
||||
- build-wheel-mirror-python3
|
||||
- release-wheel-mirror:
|
||||
dependencies:
|
||||
- build-wheel-mirror-python2
|
||||
- build-wheel-mirror-python3
|
||||
|
Loading…
x
Reference in New Issue
Block a user