Refactor StorPool playboks
Change-Id: I2d2a7de224f0bfd11be1c29e6d17240b48ae8e5c
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
index f35b3f2..bd8781c 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
@@ -17,8 +17,8 @@
- "{{ item }}"
loop:
- "{{ port_node_1_sp_api }}"
- - "{{ port_sp0 }}"
- - "{{ port_sp1 }}"
+ - "{{ port_node_1_sp0 }}"
+ - "{{ port_node_1_sp1 }}"
- name: Remove the StorPool Ports from the OpenStack Node
ansible.builtin.command:
@@ -32,14 +32,38 @@
- "{{ openstack_node }}"
- "{{ port_node_2_sp_api }}"
+ - name: Remove the StorPool Ports from the Block Client OpenStack Node
+ ansible.builtin.command:
+ argv:
+ - "{{ os_venv }}/bin/openstack"
+ - --os-cloud
+ - openstack-testing
+ - server
+ - remove
+ - port
+ - "{{ openstack_node }}"
+ - "{{ item }}"
+ loop:
+ - "{{ port_node_1_sp_api }}"
+ - "{{ port_node_2_sp0 }}"
+ - "{{ port_node_2_sp1 }}"
+ when: storpool_connection == "block"
+
- name: Delete the StorPool Ports
ansible.builtin.command:
argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "delete", "{{ item }}" ]
loop:
- "{{ port_node_1_sp_api }}"
- "{{ port_node_2_sp_api }}"
- - "{{ port_sp0 }}"
- - "{{ port_sp1 }}"
+ - "{{ port_node_1_sp0 }}"
+ - "{{ port_node_1_sp1 }}"
+
+ - name: Delete the StorPool Block Ports
+ ansible.builtin.command:
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "delete", "{{ item }}" ]
+ loop:
+ - "{{ port_node_2_sp0 }}"
+ - "{{ port_node_2_sp1 }}"
- name: Delete the StorPool Networks
ansible.builtin.command:
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
index beb53dc..813633a 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
@@ -52,8 +52,28 @@
loop:
- { network: "{{ network_sp_api }}", subnet: "{{ subnet_sp_api }}", ip: "{{ ip_node_1_sp_api }}", port: "{{ port_node_1_sp_api }}" }
- { network: "{{ network_sp_api }}", subnet: "{{ subnet_sp_api }}", ip: "{{ ip_node_2_sp_api }}", port: "{{ port_node_2_sp_api }}" }
- - { network: "{{ network_sp0 }}", subnet: "{{ subnet_sp0 }}", ip: "{{ ip_sp0 }}", port: "{{ port_sp0 }}" }
- - { network: "{{ network_sp1 }}", subnet: "{{ subnet_sp1 }}", ip: "{{ ip_sp1 }}", port: "{{ port_sp1 }}" }
+ - { network: "{{ network_sp0 }}", subnet: "{{ subnet_sp0 }}", ip: "{{ port_node_1_ip_sp0 }}", port: "{{ port_node_1_sp0 }}" }
+ - { network: "{{ network_sp1 }}", subnet: "{{ subnet_sp1 }}", ip: "{{ port_node_1_ip_sp1 }}", port: "{{ port_node_1_sp1 }}" }
+
+ # TODO: Support port security
+ - name: Create the StorPool Ports for the Block Client OpenStack Node
+ ansible.builtin.command:
+ argv:
+ - "{{ os_venv }}/bin/openstack"
+ - --os-cloud
+ - openstack-testing
+ - port
+ - create
+ - --network
+ - "{{ item.network }}"
+ - --fixed-ip
+ - "subnet={{ item.subnet }},ip-address={{ item.ip }}"
+ - --disable-port-security
+ - "{{ item.port }}"
+ loop:
+ - { network: "{{ network_sp0 }}", subnet: "{{ subnet_sp0 }}", ip: "{{ port_node_2_ip_sp0 }}", port: "{{ port_node_2_sp0 }}" }
+ - { network: "{{ network_sp1 }}", subnet: "{{ subnet_sp1 }}", ip: "{{ port_node_2_ip_sp1 }}", port: "{{ port_node_2_sp1 }}" }
+ when: storpool_connection == "block"
- name: Attach the StorPool Ports to the StorPool Node
ansible.builtin.command:
@@ -68,8 +88,8 @@
- "{{ item }}"
loop:
- "{{ port_node_1_sp_api }}"
- - "{{ port_sp0 }}"
- - "{{ port_sp1 }}"
+ - "{{ port_node_1_sp0 }}"
+ - "{{ port_node_1_sp1 }}"
- name: Attach the StorPool API Port to the OpenStack Node
ansible.builtin.command:
@@ -83,6 +103,22 @@
- "{{ openstack_node }}"
- "{{ port_node_2_sp_api }}"
+ - name: Attach the StorPool Ports to the Block Client StorPool Node
+ ansible.builtin.command:
+ argv:
+ - "{{ os_venv }}/bin/openstack"
+ - --os-cloud
+ - openstack-testing
+ - server
+ - add
+ - port
+ - "{{ openstack_node }}"
+ - "{{ item }}"
+ loop:
+ - "{{ port_node_2_sp0 }}"
+ - "{{ port_node_2_sp1 }}"
+ when: storpool_connection == "block"
+
- name: Get Information About port_node_1_sp_api
ansible.builtin.command:
argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_1_sp_api }}" ]
@@ -101,23 +137,44 @@
ansible.builtin.set_fact:
port_node_2_sp_api_mac: "{{ (port_node_2_sp_api_info.stdout | from_json).mac_address }}"
- - name: Get Information About port_sp0
+ - name: Get Information About port_node_1_sp0
ansible.builtin.command:
- argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_sp0 }}" ]
- register: port_sp0_info
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_1_sp0 }}" ]
+ register: port_node_1_sp0_info
- - name: Get MAC Address of port_sp0
+ - name: Get MAC Address of port_node_1_sp0
ansible.builtin.set_fact:
- port_sp0_mac: "{{ (port_sp0_info.stdout | from_json).mac_address }}"
+ port_node_1_sp0_mac: "{{ (port_node_1_sp0_info.stdout | from_json).mac_address }}"
- - name: Get Information About port_sp1
+ - name: Get Information About port_node_1_sp1
ansible.builtin.command:
- argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_sp1 }}" ]
- register: port_sp1_info
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_1_sp1 }}" ]
+ register: port_node_1_sp1_info
- - name: Get MAC Address of port_sp1
+ - name: Get MAC Address of port_node_1_sp1
ansible.builtin.set_fact:
- port_sp1_mac: "{{ (port_sp1_info.stdout | from_json).mac_address }}"
+ port_node_1_sp1_mac: "{{ (port_node_1_sp1_info.stdout | from_json).mac_address }}"
+
+ - name: Collect Additional Info for StorPool Block
+ block:
+ - name: Get Information About port_node_2_sp0
+ ansible.builtin.command:
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_2_sp0 }}" ]
+ register: port_node_2_sp0_info
+
+ - name: Get MAC Address of port_node_2_sp0
+ ansible.builtin.set_fact:
+ port_node_2_sp0_mac: "{{ (port_node_2_sp0_info.stdout | from_json).mac_address }}"
+
+ - name: Get Information About port_node_2_sp1
+ ansible.builtin.command:
+ argv: [ "{{ os_venv }}/bin/openstack", "--os-cloud", "openstack-testing", "port", "show", "--format", "json", "{{ port_node_2_sp1 }}" ]
+ register: port_node_2_sp1_info
+
+ - name: Get MAC Address of port_node_2_sp1
+ ansible.builtin.set_fact:
+ port_node_2_sp1_mac: "{{ (port_node_2_sp1_info.stdout | from_json).mac_address }}"
+ when: storpool_connection == "block"
- name: Create the StorPool Volume
ansible.builtin.command:
@@ -178,11 +235,11 @@
- set_fact:
port_node_1_sp_api_mac: "{{ hostvars['undercloud-client']['port_node_1_sp_api_mac'] }}"
- sp_sp0_mac: "{{ hostvars['undercloud-client']['port_sp0_mac'] }}"
- sp_sp1_mac: "{{ hostvars['undercloud-client']['port_sp1_mac'] }}"
+ sp_sp0_mac: "{{ hostvars['undercloud-client']['port_node_1_sp0_mac'] }}"
+ sp_sp1_mac: "{{ hostvars['undercloud-client']['port_node_1_sp1_mac'] }}"
ip_node_1_sp_api: "{{ ip_node_1_sp_api }}/24"
- ip_sp0: "{{ ip_sp0 }}/24"
- ip_sp1: "{{ ip_sp1 }}/24"
+ port_node_1_ip_sp0: "{{ port_node_1_ip_sp0 }}/24"
+ port_node_1_ip_sp1: "{{ port_node_1_ip_sp1 }}/24"
- set_fact:
storpool_netplan: "{{ hostvars['localhost'].STORPOOL_STORPOOL_NETPLAN.v }}"
@@ -280,26 +337,37 @@
- [ "git", "config", "--global", "user.name", "OpenStack CI Worker" ]
- [ "git", "config", "--global", "user.email", "openstack-dev@storpool.com" ]
- - name: Provision StorPool Ansible Inventory
+ - name: Configure for iSCSI
+ block:
+ - set_fact:
+ storpool_inventory: "{{ hostvars['localhost'].STORPOOL_ISCSI_INVENTORY.v }}"
+ when: storpool_connection == "iscsi"
+
+ - name: Configure for Block
+ block:
+ - set_fact:
+ storpool_inventory: "{{ hostvars['localhost'].STORPOOL_BLOCK_INVENTORY.v }}"
+ when: storpool_connection == "block"
+
+ - name: Provision the StorPool Ansible Inventory
no_log: true
ansible.builtin.copy:
- content: "{{ STORPOOL_INVENTORY['v'] }}"
+ content: "{{ storpool_inventory }}"
dest: /home/ubuntu/ansible/inventory.yaml
- - name: Configure the StorPool Ansible Inventory
- ansible.builtin.replace:
- path: /home/ubuntu/ansible/inventory.yaml
- regexp: 'STORPOOL_NODE'
- replace: "{{ storpool_node_ip }}"
-
- - set_fact:
- storpool_node_hostname: "{{ hostvars['lab-sp-a1']['ansible_hostname'] }}"
-
- name: Install StorPool
block:
+ - set_fact:
+ storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF_ISCSI.v }}"
+ no_log: true
+ when: storpool_connection == "iscsi"
- set_fact:
- storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF.v }}"
+ storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF_BLOCK.v }}"
+ no_log: true
+ when: storpool_connection == "block"
+
+ - set_fact:
storpool_deploy_info_conf: "{{ hostvars['localhost'].STORPOOL_DEPLOY_INFO_CONF.v }}"
no_log: true
@@ -351,6 +419,14 @@
path: /home/ubuntu/ansible/storpool_deploy_info.conf
state: absent
+- hosts: controller
+ vars_files:
+ - vars.yaml
+ tasks:
+ - name: Start the zuul_console Daemon Again After Node Restart
+ zuul_console:
+ when: storpool_connection == "block"
+
- hosts: lab-sp-a1
vars_files:
- vars.yaml
@@ -386,6 +462,7 @@
- [ "storpool", "iscsi", "config", "portalGroup", "pg", "addNet", "192.168.50.100/24" ]
- [ "storpool", "iscsi", "config", "portal", "create", "portalGroup", "pg", "controller", "1", "address", "192.168.40.101" ]
- [ "storpool", "iscsi", "config", "portal", "create", "portalGroup", "pg", "controller", "1", "address", "192.168.50.101" ]
+ when: storpool_connection == "iscsi"
- hosts: controller
vars_files:
@@ -422,30 +499,40 @@
content: "{{ systemd_networkd_iscsi }}"
dest: /etc/systemd/network/62-storpool-api.network
- - set_fact:
- storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF_ISCSI_NODE.v }}"
- no_log: true
+ - name: Setup iSCSI
+ block:
+ - set_fact:
+ storpool_conf: "{{ hostvars['localhost'].STORPOOL_CONF_ISCSI_NODE.v }}"
+ no_log: true
- - name: Provision the StorPool Template
- no_log: true
- become: true
- ansible.builtin.copy:
- content: "{{ storpool_conf }}"
- dest: /etc/storpool.conf
+ - name: Provision the StorPool Template
+ no_log: true
+ become: true
+ ansible.builtin.copy:
+ content: "{{ storpool_conf }}"
+ dest: /etc/storpool.conf
- - name: Restart systemd-networkd to Apply the Network Configuration
- become: true
- ansible.builtin.command:
- argv: [ "systemctl", "restart", "systemd-networkd" ]
+ - name: Restart systemd-networkd to Apply the Network Configuration
+ become: true
+ ansible.builtin.command:
+ argv: [ "systemctl", "restart", "systemd-networkd" ]
- - name: Wait for the Portal Group IP 1 to Become Available
- ansible.builtin.command:
- argv: [ "ping", "-c1", "192.168.40.101" ]
- register: r
- until: r.rc == 0
+ - name: Wait for the Portal Group IP 1 to Become Available
+ ansible.builtin.command:
+ argv: [ "ping", "-c1", "192.168.40.101" ]
+ register: r
+ until: r.rc == 0
- - name: Wait for the Portal Group IP 2 to Become Available
- ansible.builtin.command:
- argv: [ "ping", "-c1", "192.168.50.101" ]
- register: r
- until: r.rc == 0
+ - name: Wait for the Portal Group IP 2 to Become Available
+ ansible.builtin.command:
+ argv: [ "ping", "-c1", "192.168.50.101" ]
+ register: r
+ until: r.rc == 0
+ when: storpool_connection == "iscsi"
+
+- hosts: undercloud-client
+ vars_files:
+ - vars.yaml
+ tasks:
+ - name: Debug Sleep
+ ansible.builtin.command: sleep 3600
diff --git a/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml b/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml
index 8334358..2116210 100644
--- a/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml
+++ b/playbooks/setup-openstack-iscsi-multipath-storpool/vars.yaml
@@ -1,7 +1,13 @@
+storpool_connection: "block"
+
storpool_node: "{{ hostvars['lab-sp-a1']['nodepool']['external_id'] }}"
storpool_node_ip: "{{ hostvars['lab-sp-a1']['nodepool']['interface_ip'] }}"
+storpool_node_hostname: "{{ hostvars['lab-sp-a1']['ansible_hostname'] }}"
+
undercloud_client_node: "{{ hostvars['undercloud-client']['nodepool']['external_id'] }}"
+
openstack_node: "{{ hostvars['controller']['nodepool']['external_id'] }}"
+openstack_node_ip: "{{ hostvars['controller']['nodepool']['interface_ip'] }}"
storpool_volume: "{{ undercloud_client_node }}-storpool-volume"
@@ -10,9 +16,12 @@
network_ip_sp1: "192.168.30.0/24"
ip_node_1_sp_api: "192.168.10.3"
+ip_node_1_sp0: "192.168.20.3"
+ip_node_1_sp1: "192.168.30.3"
+
ip_node_2_sp_api: "192.168.10.4"
-ip_sp0: "192.168.20.3"
-ip_sp1: "192.168.30.3"
+ip_node_2_sp0: "192.168.20.4"
+ip_node_2_sp1: "192.168.30.4"
network_sp_api: "{{ undercloud_client_node }}-network-sp-api"
network_sp0: "{{ undercloud_client_node }}-network-sp0"
@@ -23,6 +32,9 @@
subnet_sp1: "{{ undercloud_client_node }}-subnet-sp1"
port_node_1_sp_api: "{{ undercloud_client_node }}-port-node-1-sp-api"
+port_node_1_sp0: "{{ undercloud_client_node }}-port-node-1-sp0"
+port_node_1_sp1: "{{ undercloud_client_node }}-port-node-1-sp1"
+
port_node_2_sp_api: "{{ undercloud_client_node }}-port-node-2-sp-api"
-port_sp0: "{{ undercloud_client_node }}-port-sp0"
-port_sp1: "{{ undercloud_client_node }}-port-sp1"
+port_node_2_sp0: "{{ undercloud_client_node }}-port-node-2-sp0"
+port_node_2_sp1: "{{ undercloud_client_node }}-port-node-2-sp1"
diff --git a/zuul.d/sp-cinder-secrets.yaml b/zuul.d/sp-cinder-secrets.yaml
index 10f96c0..a92b9fc 100644
--- a/zuul.d/sp-cinder-secrets.yaml
+++ b/zuul.d/sp-cinder-secrets.yaml
@@ -39,19 +39,44 @@
+0hU8JtzQ3FVLtHgSxr0zZ5k0JS30fYWg9dUjId7cge0lL8mOVzlky/yL1dRUM=
- secret:
- name: STORPOOL_CONF
+ name: STORPOOL_CONF_BLOCK
data:
v: !encrypted/pkcs1-oaep
- - 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
+ - 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
+
+- secret:
+ name: STORPOOL_CONF_ISCSI
+ data:
+ v: !encrypted/pkcs1-oaep
+ - JjMx0I+ySQT/+BcKTa1OmjJ/Njm2Btjrx3KgGTY3eUh5kMPl6KNoNoyBGaK7FAXiSBEAA
+ aVD7+xk/MJiLVXxSNf6MsV2kUi/FaRv5itU+cx5fki3HSFbPEE7rAcOUz8457Hgs1zu31
+ OWHTwwU4dcg/URZzB/tdW47UpTYS7zVMQpjat7aL9xOCa5sWef3R6ZTUoT4qEMK17qe+L
+ IBtnjWPuuwPNba5PXNCoRzjJmbQfiKwhVw9etzWf2NiShFIwmbjxLdvlwD8fOCuUw4l4s
+ /FSAjtXZrlqGl7bIbpDTuENgrGnxrX9c9pf9YICeYMF3847ln2ZiJKQVIzIa20Qan56IQ
+ pBwY6a7KS5Nsy3zN7Q5Lm6TVvsq+f2ey1jkOjwB97TEjZn8u990ok2PAqSUhyZ6XWqtis
+ rR+sfdSYZc+YfF/0DfrvxVdPNBYK6T8lyPxRqiCONmt6GkOphpdlTsl1F0O1MKoC/bMqh
+ J6EiyMIwnt05ZAm6Kg5xdDFzthhgOtxPaaH8ffPWsxeuRUxs2KzA45t3iJjcacYVinnTe
+ kYbqxBy2ix1TzIAiYwbatXp9153HsAZZDIWHs2kznQQDVpEThKlRSMRVn1HFpNh1pmMA5
+ 1ZoEs5/MtGLj4vkL85at7S20fsoQ4JiR6RxFIK3eTof5GO6gtO4Df+IxOuRlB4=
- secret:
name: STORPOOL_DEPLOY
@@ -269,29 +294,54 @@
sUAv95LJu1UwePqTN4Ozcha6PWLgHi96tLZOj1tO5q/71+vOI6N+CYpUrRdhmE=
- secret:
- name: STORPOOL_INVENTORY
+ name: STORPOOL_BLOCK_INVENTORY
data:
v: !encrypted/pkcs1-oaep
- - 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
+ - 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
+
+- secret:
+ name: STORPOOL_ISCSI_INVENTORY
+ data:
+ v: !encrypted/pkcs1-oaep
+ - gTrsuSsoVMUZlD3mdaxGSO+j9559mjLPGpKxsCKExj61xPN4Dja8fdZ3OnbtRRsCFemz4
+ ZPgU8acvTntEXEc1KVi0NMNaDnplNkGDHuJMT/SGREwc5SnF4AL86+IvEComy2b1NsuAk
+ bXlXHjpHf+DNBamIuQSVU99g2RGJ7v3OTHo8k3HoeRN5ll2gHSNGG+/lijbZpj1mKZ3f8
+ JzXaQ5fL7ibkLKUP5EKDtwOsj0UB3N2whvBAraGdoMH0XoBkldmNiacyl69WKhbv/+5//
+ c+iA8ri7uaESdXnjN4zyxj6Z4RNDZOYWBV+Sv6MYtmrE8yHvmIETMR4WkzObLZpSZtibE
+ 7opvUXZP3aAtiVOn2oUvYa5YdDBOQMcMO/lRz0mhfBpa1sPsGN/8RwKTv8LqCB3tAzj3u
+ vgEDIo9ZBIvhsaJwJNXghHTqZYOney4ib/tOc990OeJeKpSu1vH7IFo91eJH28/UY8Urs
+ aqvjJauR8PXt9tE69hyCTzzHiP+gUcMtWo1Y2AbWRGV2Z/HkdsAuciDx02dJ2goa34xun
+ NIoNDLgfHB0LRY2qIc0/KjkUNro2NbaCuii5KQakvQMaNQtGweesyqkkWCCNmc0U0PHMd
+ UUxCpxsYtw52FxHaNYw2y8mOVSHYeb/0nTj0WOw1/M6CqDrRO9cthhWsGYgm4A=
+ - XPJfmCZEkNMld6y/KRjWeiLAs1M2E1o3KmCC0q3i5HkjWl+pHiCoMaagEk/1016NYj/9G
+ TaeMkAAwgqtI1l0s0/Q2A3ZoRgVCgXpi1FSzh8WCk7kicWUuwegOYj5adlqPTiAghZ28l
+ EkBwUOtuaI90/apw6m1lkNgk6FTOpytgLsGsq5pAGhJM9bZ3jJKJe5EQBuE19uuS+NSUe
+ 8eYz6IKumzXU18tzqhdENgsjFkXqCsirjHMp895ZpHq0h+ehy64k9kwzaAJWoUtF0rvfU
+ Nyp6nPiKJB0h+aBOWTtsWmdPkWdZPu3+v+9yqSzvojf8DSIri9m2LIGM14CHSGMUaqKpK
+ Eo3AqQhNMU47Q2FCDEPByAw2oeyHuw9j6x4IHioiJT2w+agh4P2FNjhKnljgDslS392Iy
+ EKXAjZ8hB/sxdqU1hNEnF01xfDFk+INgzVttHA73jf0cNc6px5L3SEToLEmTUkMLyQs+T
+ evqoy3lDaIQPnzRkO7FHeB8bmuxkLuoGCZ+S3FXHk5N17+VCWwWIyIEg6jZtymmHF6OfS
+ /Qagbldw21DU885wDnO4I6OU2WJGLL6ALSDpVPshK4Xx/Mk0Ls1LJ+NCkSM0xuUNJ8+tx
+ b4BB5ldiXSSZHGVICUe6+yOQU2KaHNoCT1htIGfglOpLZR4nI9qk+9Vx6IAZDM=
- secret:
name: STORPOOL_ISCSI_NETPLAN
diff --git a/zuul.d/sp-cinder.yaml b/zuul.d/sp-cinder.yaml
index 2ec5e5d..5de6cd5 100644
--- a/zuul.d/sp-cinder.yaml
+++ b/zuul.d/sp-cinder.yaml
@@ -1,9 +1,43 @@
+- nodeset:
+ name: ubuntu2004-openstack-multi-node-mixed
+ nodes:
+ - name: controller
+ label: os-ubuntu2004-large
+ - name: undercloud-client
+ label: os-ubuntu2004-small
+ - name: lab-sp-a1
+ label: os-ubuntu2004-large
+ groups:
+ - name: tempest
+ nodes:
+ - controller
+
+- nodeset:
+ name: ubuntu2204-openstack-multi-node-mixed
+ nodes:
+ - name: controller
+ label: os-ubuntu2204-large
+ - name: undercloud-client
+ label: os-ubuntu2204-small
+ - name: lab-sp-a1
+ label: os-ubuntu2204-large
+ groups:
+ - name: tempest
+ nodes:
+ - controller
+
- job:
name: cinder-storpool-tempest
parent: tempest-full
- pre-run: playbooks/sp-init.yaml
+ pre-run:
+ - playbooks/sp-init.yaml
+ - playbooks/setup-openstack-client/pre.yaml
+ - playbooks/setup-openstack-iscsi-multipath-storpool/pre.yaml
run: playbooks/tempest-and-cinderlib-run.yaml
- post-run: playbooks/sp-cleanup.yaml
+ cleanup-run:
+ - playbooks/setup-openstack-iscsi-multipath-storpool/post.yaml
+ - playbooks/setup-openstack-client/post.yaml
+ - playbooks/sp-cleanup.yaml
required-projects:
- opendev.org/openstack/cinderlib
- opendev.org/openstack/os-brick
@@ -13,9 +47,39 @@
- sp-osci
timeout: 10800
secrets:
+ # openstack-client
- name: OPENSTACK_DATA
secret: OPENSTACK_DATA
+ - name: RESOLVED_DATA
+ secret: RESOLVED_DATA
+
+ # openstack-iscsi-multipath-storpool
+ - name: STORPOOL_DEPLOY_KEY
+ secret: STORPOOL_DEPLOY_KEY
+ - name: STORPOOL_DEPLOY_KEY_PUB
+ secret: STORPOOL_DEPLOY_KEY_PUB
+ - name: STORPOOL_BLOCK_INVENTORY
+ secret: STORPOOL_BLOCK_INVENTORY
+ - name: STORPOOL_ISCSI_NETPLAN
+ secret: STORPOOL_ISCSI_NETPLAN
+ - name: STORPOOL_STORPOOL_NETPLAN
+ secret: STORPOOL_STORPOOL_NETPLAN
+ - name: STORPOOL_NETPLAN_SERVICE
+ secret: STORPOOL_NETPLAN_SERVICE
+ - name: STORPOOL_CONF_BLOCK
+ secret: STORPOOL_CONF_BLOCK
+ - name: STORPOOL_DEPLOY
+ secret: STORPOOL_DEPLOY
+ - name: STORPOOL_DEPLOY_INFO_CONF
+ secret: STORPOOL_DEPLOY_INFO_CONF
+ - name: STORPOOL_CONF_ISCSI_NODE
+ secret: STORPOOL_CONF_ISCSI_NODE
+ - name: ISCSI_NODE_SYSTEMD_NETWORKD
+ secret: ISCSI_NODE_SYSTEMD_NETWORKD
vars:
+ os_venv: "~/sp-venv-openstack"
+ storpool_connection: "block"
+
do_storprep: true
devstack_localrc:
CINDER_ENABLED_BACKENDS: storpool:storpool
@@ -81,34 +145,6 @@
# ^cinder_tempest_plugin
# (^(tempest\.((api\..*volume)|scenario\.test_encrypted_cinder_volumes|scenario\.test_volume|scenario\.test_shelve_instance))|(cinder_tempest_plugin))
-- nodeset:
- name: ubuntu2004-openstack-multi-node-mixed
- nodes:
- - name: controller
- label: os-ubuntu2004-large
- - name: undercloud-client
- label: os-ubuntu2004-small
- - name: lab-sp-a1
- label: os-ubuntu2004-large
- groups:
- - name: tempest
- nodes:
- - controller
-
-- nodeset:
- name: ubuntu2204-openstack-multi-node-mixed
- nodes:
- - name: controller
- label: os-ubuntu2204-large
- - name: undercloud-client
- label: os-ubuntu2204-small
- - name: lab-sp-a1
- label: os-ubuntu2204-large
- groups:
- - name: tempest
- nodes:
- - controller
-
- job:
name: cinder-storpool-tempest-iscsi-multipath-parent
parent: tempest-full
@@ -145,16 +181,16 @@
secret: STORPOOL_DEPLOY_KEY
- name: STORPOOL_DEPLOY_KEY_PUB
secret: STORPOOL_DEPLOY_KEY_PUB
- - name: STORPOOL_INVENTORY
- secret: STORPOOL_INVENTORY
+ - name: STORPOOL_ISCSI_INVENTORY
+ secret: STORPOOL_ISCSI_INVENTORY
- name: STORPOOL_ISCSI_NETPLAN
secret: STORPOOL_ISCSI_NETPLAN
- name: STORPOOL_STORPOOL_NETPLAN
secret: STORPOOL_STORPOOL_NETPLAN
- name: STORPOOL_NETPLAN_SERVICE
secret: STORPOOL_NETPLAN_SERVICE
- - name: STORPOOL_CONF
- secret: STORPOOL_CONF
+ - name: STORPOOL_CONF_ISCSI
+ secret: STORPOOL_CONF_ISCSI
- name: STORPOOL_DEPLOY
secret: STORPOOL_DEPLOY
- name: STORPOOL_DEPLOY_INFO_CONF
@@ -166,6 +202,8 @@
vars:
os_venv: "~/sp-venv-openstack"
+ storpool_connection: "iscsi"
+
zuul_copy_output:
/etc/multipath.conf: logs_txt
/etc/iscsi/iscsid.conf: logs_txt
@@ -256,16 +294,16 @@
secret: STORPOOL_DEPLOY_KEY
- name: STORPOOL_DEPLOY_KEY_PUB
secret: STORPOOL_DEPLOY_KEY_PUB
- - name: STORPOOL_INVENTORY
- secret: STORPOOL_INVENTORY
+ - name: STORPOOL_ISCSI_INVENTORY
+ secret: STORPOOL_ISCSI_INVENTORY
- name: STORPOOL_ISCSI_NETPLAN
secret: STORPOOL_ISCSI_NETPLAN
- name: STORPOOL_STORPOOL_NETPLAN
secret: STORPOOL_STORPOOL_NETPLAN
- name: STORPOOL_NETPLAN_SERVICE
secret: STORPOOL_NETPLAN_SERVICE
- - name: STORPOOL_CONF
- secret: STORPOOL_CONF
+ - name: STORPOOL_CONF_ISCSI
+ secret: STORPOOL_CONF_ISCSI
- name: STORPOOL_CONF_ISCSI_NODE
secret: STORPOOL_CONF_ISCSI_NODE
- name: ISCSI_NODE_SYSTEMD_NETWORKD