From 09fb029569def5f4c9d3c14d720f944cf273b224 Mon Sep 17 00:00:00 2001
From: Michal Nasiadka <mnasiadka@gmail.com>
Date: Tue, 2 Jan 2024 14:53:04 +0100
Subject: [PATCH] CI: Run SLURP upgrade job

Change-Id: I246b14c9b547c6a0ff0be68ad57e723839cc3275
---
 tests/run.yml       | 34 ++++++++++++++++++++----
 zuul.d/base.yaml    |  1 +
 zuul.d/jobs.yaml    | 64 +++++++++++++++++++++++++++++++++++++++++++++
 zuul.d/project.yaml |  5 ++++
 4 files changed, 99 insertions(+), 5 deletions(-)

diff --git a/tests/run.yml b/tests/run.yml
index c038d7b96..333153fc3 100644
--- a/tests/run.yml
+++ b/tests/run.yml
@@ -257,11 +257,12 @@
 
     - name: Install kolla-ansible and dependencies
       vars:
+        ansible_core_version_slurp: "==2.13.*"
         ansible_core_version_min: "==2.14.*"
         ansible_core_version_max: "==2.15.*"
         # Test latest ansible version on Ubuntu, minimum supported on others.
         ansible_core_version_constraint: >-
-          {{ ansible_core_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_core_version_max }}
+          {{ ansible_core_version_slurp if is_slurp else ansible_core_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_core_version_max }}
       pip:
         extra_args: "-c {{ upper_constraints_file }}"
         name:
@@ -270,19 +271,20 @@
           - "ara[server]<1.7"
         virtualenv: "{{ kolla_ansible_venv_path }}"
 
-    # TODO(mnasiadka): Remove in Caracal
-    - name: Install Ansible on upgrade only
+    # TODO(mnasiadka): Remove in D
+    - name: Install Ansible on SLURP upgrade only
       vars:
+        ansible_version_slurp: "==6.*"
         ansible_version_min: "==7.*"
         ansible_version_max: "==8.*"
         # Test latest ansible version on Ubuntu, minimum supported on others.
         ansible_version_constraint: >-
-          {{ ansible_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_version_max }}
+          {{ ansible_version_slurp if is_slurp else ansible_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_version_max }}
       pip:
         extra_args: "-c {{ upper_constraints_file }}"
         name: "ansible{{ ansible_version_constraint }}"
         virtualenv: "{{ kolla_ansible_venv_path }}"
-      when: is_upgrade
+      when: is_slurp
 
     - name: Install Ansible collections
       shell: |
@@ -685,6 +687,28 @@
             new_requirements:
               collections: "{{ (old_requirements.collections | rejectattr('name', 'search', 'ansible-collection-kolla') | list) + [new_requirement] }}"
 
+        - name: Upgrade ansible
+          vars:
+            ansible_core_version_min: "==2.14.*"
+            ansible_core_version_max: "==2.15.*"
+            # Test latest ansible version on Ubuntu, minimum supported on others.
+            ansible_core_version_constraint: >-
+              {{ ansible_core_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_core_version_max }}
+            ansible_version_min: "==7.*"
+            ansible_version_max: "==8.*"
+            # Test latest ansible version on Ubuntu, minimum supported on others.
+            ansible_version_constraint: >-
+              {{ ansible_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_version_max }}
+          pip:
+            extra_args: "-c {{ upper_constraints_file }}"
+            name:
+              - "{{ kolla_ansible_src_dir }}"
+              - "ansible-core{{ ansible_core_version_constraint }}"
+              - "ansible{{ ansible_version_constraint }}"
+              - "ara<1.0.0"
+            virtualenv: "{{ kolla_ansible_venv_path }}"
+          when: is_slurp
+
         - name: Upgrade kolla-ansible
           pip:
             extra_args: "-c {{ upper_constraints_file }}"
diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml
index b83f5a351..f63651cc5 100644
--- a/zuul.d/base.yaml
+++ b/zuul.d/base.yaml
@@ -19,6 +19,7 @@
       configure_swap_size: 0
       container_engine: "docker"
       is_upgrade: false
+      is_slurp: false
       kolla_internal_vip_address: "192.0.2.10"
       le_enabled: false
       neutron_external_bridge_name: br0
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 98153495b..af1a01fa4 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -157,6 +157,19 @@
       is_upgrade: yes
       tls_enabled: true
 
+- job:
+    name: kolla-ansible-rocky9-slurp-upgrade
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-rocky9
+    timeout: 9000
+    branches: master
+    vars:
+      base_distro: rocky
+      is_upgrade: yes
+      is_slurp: yes
+      previous_release: 2023.1
+      tls_enabled: true
+
 - job:
     name: kolla-ansible-debian-upgrade
     parent: kolla-ansible-base
@@ -167,6 +180,19 @@
       is_upgrade: yes
       tls_enabled: true
 
+- job:
+    name: kolla-ansible-debian-slurp-upgrade
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-debian-bullseye
+    timeout: 9000
+    branches: master
+    vars:
+      base_distro: debian
+      is_upgrade: yes
+      is_slurp: yes
+      previous_release: 2023.1
+      tls_enabled: true
+
 - job:
     name: kolla-ansible-debian-upgrade-aarch64
     parent: kolla-ansible-debian-upgrade
@@ -182,6 +208,19 @@
       is_upgrade: yes
       tls_enabled: true
 
+- job:
+    name: kolla-ansible-ubuntu-slurp-upgrade
+    parent: kolla-ansible-base
+    nodeset: kolla-ansible-jammy
+    timeout: 9000
+    branches: master
+    vars:
+      base_distro: ubuntu
+      is_upgrade: yes
+      is_slurp: yes
+      previous_release: 2023.1
+      tls_enabled: true
+
 - job:
     name: kolla-ansible-rocky9-upgrade-cephadm
     parent: kolla-ansible-cephadm-base
@@ -191,6 +230,18 @@
       base_distro: rocky
       is_upgrade: yes
 
+- job:
+    name: kolla-ansible-rocky9-slurp-upgrade-cephadm
+    parent: kolla-ansible-cephadm-base
+    nodeset: kolla-ansible-rocky9-multi
+    timeout: 9000
+    branches: master
+    vars:
+      base_distro: rocky
+      is_upgrade: yes
+      is_slurp: yes
+      previous_release: 2023.1
+
 - job:
     name: kolla-ansible-ubuntu-upgrade-cephadm
     parent: kolla-ansible-cephadm-base
@@ -201,6 +252,19 @@
       is_upgrade: yes
       cephadm_use_package_from_distribution: true
 
+- job:
+    name: kolla-ansible-ubuntu-slurp-upgrade-cephadm
+    parent: kolla-ansible-cephadm-base
+    nodeset: kolla-ansible-jammy-multi
+    timeout: 9000
+    branches: master
+    vars:
+      base_distro: ubuntu
+      is_upgrade: yes
+      is_slurp: yes
+      previous_release: 2023.1
+      cephadm_use_package_from_distribution: true
+
 - job:
     name: kolla-ansible-rocky9-upgrade-ovn
     parent: kolla-ansible-ovn-base
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 4ca549fd7..c02b77174 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -36,8 +36,11 @@
         - kolla-ansible-debian-ironic
         - kolla-ansible-ubuntu-ironic
         - kolla-ansible-rocky9-upgrade
+        - kolla-ansible-rocky9-slurp-upgrade
         - kolla-ansible-debian-upgrade
+        - kolla-ansible-debian-slurp-upgrade
         - kolla-ansible-ubuntu-upgrade
+        - kolla-ansible-ubuntu-slurp-upgrade
         - kolla-ansible-ubuntu-cells
         - kolla-ansible-rocky9-cells
         - kolla-ansible-rocky9-mariadb
@@ -58,7 +61,9 @@
         - kolla-ansible-rocky9-cephadm
         - kolla-ansible-ubuntu-cephadm
         - kolla-ansible-rocky9-upgrade-cephadm
+        - kolla-ansible-rocky9-slurp-upgrade-cephadm
         - kolla-ansible-ubuntu-upgrade-cephadm
+        - kolla-ansible-ubuntu-slurp-upgrade-cephadm
         - kolla-ansible-rocky9-hashi-vault
         - kolla-ansible-rocky9-haproxy-fqdn
         - kolla-ansible-ubuntu-haproxy-fqdn
-- 
GitLab