From 7ad3be5351e776b17b7af90aee53f1b816957337 Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Mon, 9 Jul 2018 15:35:40 +0100
Subject: [PATCH] Add kolla project dependencies to Zuul configuration

This allows us to use the Depends-On syntax in commit messages to depend
on changes in kolla, kolla-ansible, and requirements.

Change-Id: I0c863d46f65de24c04ba9ea445473436b146c424
---
 playbooks/kayobe-overcloud-base/overrides.yml.j2 |  6 ++++++
 playbooks/kayobe-overcloud-base/pre.yml          |  9 +++++++++
 playbooks/kayobe-seed-base/overrides.yml.j2      |  6 ++++++
 playbooks/kayobe-seed-base/pre.yml               |  9 +++++++++
 zuul.d/jobs.yaml                                 | 14 ++++++++++++++
 5 files changed, 44 insertions(+)

diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2
index db327943..e5190527 100644
--- a/playbooks/kayobe-overcloud-base/overrides.yml.j2
+++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2
@@ -2,3 +2,9 @@
 # NOTE(mgoddard): Don't reboot after disabling SELinux during CI testing, as
 # Ansible is run directly on the controller.
 disable_selinux_do_reboot: false
+
+kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
+kolla_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla'].checkout }}"
+kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla-ansible'].src_dir }}"
+kolla_ansible_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla-ansible'].checkout }}"
+kolla_upper_constraints_file: "/tmp/upper-constraints.txt"
diff --git a/playbooks/kayobe-overcloud-base/pre.yml b/playbooks/kayobe-overcloud-base/pre.yml
index 1f167b94..d99e207d 100644
--- a/playbooks/kayobe-overcloud-base/pre.yml
+++ b/playbooks/kayobe-overcloud-base/pre.yml
@@ -30,6 +30,15 @@
       when: ansible_os_family == 'RedHat'
       become: true
 
+    # NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
+    # the zuul and stack users.
+    - name: Ensure upper-contraints.txt exists
+      copy:
+        src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
+        dest: "/tmp"
+        mode: 0644
+        remote_src: true
+
     - name: Ensure kayobe-config directory exists
       file:
         path: "{{ kayobe_config_src_dir }}"
diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2
index 92b5ca7f..3f3f0bdc 100644
--- a/playbooks/kayobe-seed-base/overrides.yml.j2
+++ b/playbooks/kayobe-seed-base/overrides.yml.j2
@@ -3,6 +3,12 @@
 # Ansible is run directly on the controller.
 disable_selinux_do_reboot: false
 
+kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla'].src_dir }}"
+kolla_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla'].checkout }}"
+kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kolla-ansible'].src_dir }}"
+kolla_ansible_source_version: "{{ zuul.projects['git.openstack.org/openstack/kolla-ansible'].checkout }}"
+kolla_upper_constraints_file: "/tmp/upper-constraints.txt"
+
 # NOTE(mgoddard): We're using a cirros image, which doesn't require the
 # resolv.conf work around used for CentOS.
 overcloud_host_image_workaround_resolv_enabled: false
diff --git a/playbooks/kayobe-seed-base/pre.yml b/playbooks/kayobe-seed-base/pre.yml
index f89906ae..4ad6ba18 100644
--- a/playbooks/kayobe-seed-base/pre.yml
+++ b/playbooks/kayobe-seed-base/pre.yml
@@ -30,6 +30,15 @@
       when: ansible_os_family == 'RedHat'
       become: true
 
+    # NOTE(mgoddard): Copying upper constraints to somewhere accessible by both
+    # the zuul and stack users.
+    - name: Ensure upper-contraints.txt exists
+      copy:
+        src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
+        dest: "/tmp"
+        mode: 0644
+        remote_src: true
+
     - name: Ensure kayobe-config directory exists
       file:
         path: "{{ kayobe_config_src_dir }}"
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index e930aaa6..e39af27f 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -39,6 +39,13 @@
     post-run: playbooks/kayobe-overcloud-base/post.yml
     attempts: 1
     timeout: 5400
+    required-projects:
+      - name: openstack/kolla
+        override-checkout: stable/queens
+      - name: openstack/kolla-ansible
+        override-checkout: stable/queens
+      - name: openstack/requirements
+        override-checkout: stable/queens
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*
@@ -59,6 +66,13 @@
     post-run: playbooks/kayobe-seed-base/post.yml
     attempts: 1
     timeout: 5400
+    required-projects:
+      - name: openstack/kolla
+        override-checkout: stable/queens
+      - name: openstack/kolla-ansible
+        override-checkout: stable/queens
+      - name: openstack/requirements
+        override-checkout: stable/queens
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*
-- 
GitLab