Skip to content

Commit

Permalink
Merge branch 'main' into crc-cloud
Browse files Browse the repository at this point in the history
  • Loading branch information
danpawlik authored Aug 2, 2024
2 parents ba4ff7e + 0594f96 commit 58b2058
Show file tree
Hide file tree
Showing 7 changed files with 326 additions and 5 deletions.
29 changes: 25 additions & 4 deletions hooks/playbooks/manila_create_default_resources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,33 @@
- name: Create Manila resources needed for tempest run
hosts: "{{ cifmw_target_hook_host | default('localhost') }}"
gather_facts: false
vars:
share_type_name: "default"
driver_handles_share_servers: "False"
extra_specs:
snapshot_support: "True"
create_share_from_snapshot_support: "True"
tasks:
- name: Creat share type default for manila tempest plugin tests
- name: Create share type default for manila tempest plugin tests
environment:
KUBECONFIG: "{{ cifmw_openshift_kubeconfig }}"
PATH: "{{ cifmw_path }}"
ansible.builtin.shell: |
ansible.builtin.command: |
oc -n {{ namespace }} exec -it pod/openstackclient \
-- openstack share type create default false \
--snapshot-support True --create-share-from-snapshot-support True
-- openstack share type create {{ share_type_name }} {{ driver_handles_share_servers }}
register: _manila_share_creation
failed_when: >-
( ( _manila_share_creation.rc | int ) != 0 )
and not ( "HTTP 409" in _manila_share_creation.stderr )
- name: Update default share type properties
environment:
KUBECONFIG: "{{ cifmw_openshift_kubeconfig }}"
PATH: "{{ cifmw_path }}"
vars:
# convert dict to 'k=v ...' format
extra_spec_opt: "{%- for k, v in extra_specs.items() -%}{{ k }}={{ v }} {% endfor -%}"
when: extra_spec_opt | length > 0
ansible.builtin.command: |
oc -n {{ namespace }} exec -it pod/openstackclient \
-- openstack share type set {{ share_type_name }} --extra-specs {{ extra_spec_opt }}
2 changes: 1 addition & 1 deletion roles/ci_lvms_storage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ be controlled with the following parameters.

* `cifmw_lvms_delay`: (Int) Ansible `delay` passed to tasks which wait for `kubernetes.core.k8s_info` (default `10`)
* `cifmw_lvms_retries`: (Int) Ansible `retries` passed to tasks which wait for `kubernetes.core.k8s_info` (default `60`)

* `cifmw_lvms_wait_nodes_lvs_retries`: (Int) Number of retries to wait for the logical volumes to show up in each OCP node (default `120`)

### Optional parameters

Expand Down
1 change: 1 addition & 0 deletions roles/ci_lvms_storage/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ cifmw_lvms_thin_pool_size_percent: 90
cifmw_lvms_thin_pool_overprovision_ratio: 10
cifmw_lvms_retries: 60
cifmw_lvms_delay: 10
cifmw_lvms_wait_nodes_lvs_retries: 120
cifmw_lvms_storage_tolerations: {}
60 changes: 60 additions & 0 deletions roles/ci_lvms_storage/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,63 @@
- _cifmw_lvms_storage_cluster_lvmscluster_out.resources[0].status is defined
- _cifmw_lvms_storage_cluster_lvmscluster_out.resources[0].status.ready is defined
- _cifmw_lvms_storage_cluster_lvmscluster_out.resources[0].status.ready | bool
- _cifmw_lvms_storage_cluster_lvmscluster_out.resources[0].status.deviceClassStatuses is defined
- >-
_cifmw_lvms_storage_cluster_lvmscluster_out.resources[0].status.deviceClassStatuses |
selectattr("name", "defined") |
selectattr("nodeStatus", "defined") |
selectattr("name", "equalto", cifmw_lvms_storage_class) |
map(attribute="nodeStatus") | flatten |
selectattr("status", "defined") |
map(attribute="status") | unique == ["Ready"]
- name: Wait for all the LVMVolumeGroupNodeStatus to be ready
kubernetes.core.k8s_info:
kubeconfig: "{{ cifmw_openshift_kubeconfig }}"
api_key: "{{ cifmw_openshift_token | default(omit) }}"
context: "{{ cifmw_openshift_context | default(omit) }}"
api_version: lvm.topolvm.io/v1alpha1
kind: LVMVolumeGroupNodeStatus
namespace: "{{ cifmw_lvms_namespace }}"
register: _cifmw_lvms_storage_cluster_lvmvolumegroupnodestatus_out
retries: "{{ cifmw_lvms_retries }}"
delay: "{{ cifmw_lvms_delay }}"
until:
- _cifmw_lvms_storage_cluster_lvmvolumegroupnodestatus_out.failed is false
- _cifmw_lvms_storage_cluster_lvmvolumegroupnodestatus_out.resources is defined
- >-
_cifmw_lvms_storage_cluster_lvmvolumegroupnodestatus_out.resources |
selectattr("spec.nodeStatus", "defined") |
map(attribute="spec.nodeStatus") | flatten |
selectattr("status", "defined") |
map(attribute="status") | unique == ["Ready"]
- name: Wait for all nodes to have the LVM annotation
vars:
_cifmw_lvms_storage_nodes: >-
{{
_cifmw_lvms_storage_cluster_lvmvolumegroupnodestatus_out.resources |
selectattr("metadata.name", "defined") |
map(attribute="metadata.name")
}}
environment:
KUBECONFIG: "{{ cifmw_openshift_kubeconfig }}"
PATH: "{{ cifmw_path }}"
when: _cifmw_lvms_storage_nodes | length > 0
ansible.builtin.command:
cmd: >-
oc get node
-l 'topology.topolvm.io/node in ({{ _cifmw_lvms_storage_nodes | join(", ") }})'
-o=jsonpath='{.items[*].metadata.annotations.capacity\.topolvm\.io/{{ cifmw_lvms_storage_class }}}'
changed_when: false
register: _cifmw_lvms_storage_nodes_annotations_out
retries: "{{ cifmw_lvms_wait_nodes_lvs_retries }}"
delay: "{{ cifmw_lvms_delay }}"
until:
- _cifmw_lvms_storage_nodes_annotations_out is defined
- _cifmw_lvms_storage_nodes_annotations_out.failed is false
- _cifmw_lvms_storage_nodes_annotations_out.stdout | trim | length != 0
- >-
_cifmw_lvms_storage_nodes_annotations_out.stdout | split(" ") |
map("int") | select("gt", 0) |
length == _cifmw_lvms_storage_nodes | length
66 changes: 66 additions & 0 deletions zuul.d/edpm_multinode.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,70 @@
---
- job:
name: podified-multinode-edpm-deployment-crc-2comp
parent: podified-multinode-edpm-deployment-crc
nodeset: centos-9-medium-2x-centos-9-crc-extracted-2-39-0-xxl
description: |
A multinode EDPM Zuul job which has one controller, one extracted crc
and two compute nodes. It is used in whitebox neutron tempest plugin testing.
vars:
crc_ci_bootstrap_cloud_name: "{{ nodepool.cloud | replace('-nodepool-tripleo','') }}"
crc_ci_bootstrap_networking:
networks:
default:
mtu: "{{ ('ibm' in nodepool.cloud) | ternary('1440', '1500') }}"
router_net: "{{ ('ibm' in nodepool.cloud) | ternary('hostonly', 'public') }}"
range: 192.168.122.0/24
internal-api:
vlan: 20
range: 172.17.0.0/24
storage:
vlan: 21
range: 172.18.0.0/24
tenant:
vlan: 22
range: 172.19.0.0/24
instances:
controller:
networks:
default:
ip: 192.168.122.11
crc:
networks:
default:
ip: 192.168.122.10
internal-api:
ip: 172.17.0.5
storage:
ip: 172.18.0.5
tenant:
ip: 172.19.0.5
compute-0:
networks:
default:
ip: 192.168.122.100
internal-api:
ip: 172.17.0.100
config_nm: false
storage:
ip: 172.18.0.100
config_nm: false
tenant:
ip: 172.19.0.100
config_nm: false
compute-1:
networks:
default:
ip: 192.168.122.101
internal-api:
ip: 172.17.0.101
config_nm: false
storage:
ip: 172.18.0.101
config_nm: false
tenant:
ip: 172.19.0.101
config_nm: false

- job:
name: podified-multinode-edpm-deployment-crc-3comp
parent: podified-multinode-edpm-deployment-crc
Expand Down
21 changes: 21 additions & 0 deletions zuul.d/nodeset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,27 @@
- name: controller
label: centos-9-stream-crc-2-39-0-3xl

- nodeset:
name: centos-9-medium-2x-centos-9-crc-extracted-2-39-0-xxl
nodes:
- name: controller
label: cloud-centos-9-stream-tripleo-medium
# Note(Chandan Kumar): Switch to xxl nodeset once RHOSZUUL-1940 resolves
- name: compute-0
label: cloud-centos-9-stream-tripleo
- name: compute-1
label: cloud-centos-9-stream-tripleo
- name: crc
label: coreos-crc-extracted-2-39-0-xxl
groups:
- name: computes
nodes:
- compute-0
- compute-1
- name: ocps
nodes:
- crc

- nodeset:
name: centos-9-medium-3x-centos-9-crc-extracted-2-39-0-xxl
nodes:
Expand Down
152 changes: 152 additions & 0 deletions zuul.d/whitebox_neutron_tempest_jobs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
---
# It contains the list of jobs running against
# whitebox-neutron-tempest-plugin rdo third party check job

- job:
name: whitebox-neutron-tempest-plugin-podified-multinode-edpm-deployment-crc-2comp
parent: podified-multinode-edpm-deployment-crc-2comp
override-checkout: main
description: |
A multinode EDPM Zuul job which one controller, one extracted crc and
2 computes. This job will run with meta content provider to test
whitebox-neutron-tempest-plugin opendev patches. It will validate the
deployment by running whitebox-neutron-tempest-plugin tests.
vars:
cifmw_run_test_role: test_operator
cifmw_os_must_gather_timeout: 28800
cifmw_test_operator_timeout: 14400
cifmw_block_device_size: 40G
cifmw_test_operator_concurrency: 6
cifmw_test_operator_tempest_network_attachments:
- ctlplane
cifmw_test_operator_tempest_container: openstack-tempest-all
cifmw_test_operator_tempest_registry: "{{ content_provider_os_registry_url | split('/') | first }}"
cifmw_test_operator_tempest_namespace: "{{ content_provider_os_registry_url | split('/') | last }}"
cifmw_test_operator_tempest_image_tag: "{{ content_provider_dlrn_md5_hash }}"
cifmw_test_operator_tempest_extra_images:
# TODO(chandan): Replace rocky qcow2 url once rhos-ops hosts it
- URL: "https://chandankumar.fedorapeople.org/rocky9_latest_neutron_whitebox.qcow2"
name: custom_neutron_guest
diskFormat: qcow2
ID: "11111111-1111-1111-1111-111111111111"
flavor:
name: custom_neutron_guest
ID: "22222222-2222-2222-2222-222222222222"
RAM: 1024
disk: 10
vcpus: 1
cifmw_edpm_prepare_kustomizations:
- apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: openstack
patches:
- patch: |-
apiVersion: core.openstack.org/v1beta1
kind: OpenStackControlPlane
metadata:
name: unused
spec:
heat:
enabled: true
neutron:
template:
customServiceConfig: |
[DEFAULT]
debug=true
vlan_transparent = true
global_physnet_mtu = 1400
[ovn]
ovn_emit_need_to_frag = true
[ml2]
path_mtu = 1400
[ovs]
igmp_snooping_enable=True
target:
kind: OpenStackControlPlane
cifmw_tempest_tempestconf_config:
overrides: |
compute-feature-enabled.vnc_console true
compute-feature-enabled.cold_migration true
compute-feature-enabled.block_migration_for_live_migration true
network-feature-enabled.port_security true
neutron_plugin_options.advanced_image_ssh_user rocky
neutron_plugin_options.available_type_drivers geneve
neutron_plugin_options.create_shared_resources true
neutron_plugin_options.is_igmp_snooping_enabled true
neutron_plugin_options.ipv6_metadata false
neutron_plugin_options.advanced_image_ref 11111111-1111-1111-1111-111111111111
neutron_plugin_options.advanced_image_flavor_ref 22222222-2222-2222-2222-222222222222
whitebox_neutron_plugin_options.openstack_type podified
whitebox_neutron_plugin_options.run_traffic_flow_tests True
whitebox_neutron_plugin_options.kubeconfig_path '/home/zuul/.crc/machines/crc/kubeconfig'
validation.allowed_network_downtime 15
validation.run_validation true
identity.v3_endpoint_type public
identity.v2_admin_endpoint_type public
# NOTE(gibi): This is a WA to force the publicURL as otherwise
# tempest gets configured with adminURL and that causes test
# instability.
cifmw_test_operator_tempest_workflow:
- stepName: multi-thread-testing
tempestRun:
concurrency: 6
includeList: |
whitebox_neutron_tempest_plugin.*
excludeList: |
neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest
test_multicast.*ext*
test_multicast.*restart
whitebox_neutron_tempest_plugin.*south_north
whitebox_neutron_tempest_plugin.tests.scenario.*test_mtu
^neutron_.*plugin..*scenario.test_.*macvtap
^neutron_tempest_plugin.fwaas.*
^whitebox_neutron_tempest_plugin.*many_vms
^whitebox_neutron_tempest_plugin.*networker_reboot
^whitebox_neutron_tempest_plugin.*ovn_controller_restart
^whitebox_neutron_tempest_plugin.*reboot_node
^whitebox_neutron_tempest_plugin.*test_previously_used_ip
^whitebox_neutron_tempest_plugin.tests.scenario.test_internal_dns.InternalDNSInterruptions.*
^whitebox_neutron_tempest_plugin.tests.scenario.test_l3ha_ovn.*
^whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting
^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_dbs.OvnDbsMonitoringTest.*
^whitebox_neutron_tempest_plugin.tests.scenario.test_qos.*external
^whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging
^whitebox_neutron_tempest_plugin.tests.scenario.test_extra_dhcp_opts.ExtraDhcpOptionsTest.test_extra_dhcp_opts_ipv4_ipv6_stateless
# https://review.opendev.org/892839
# - neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest
# It's in Blacklist before, FWaaS tests are not executed in any of our setups so there is no need to keep them whitelisted
# ^neutron_tempest_plugin.fwaas.*
# Note(chandankumar): Skipping due to https://issues.redhat.com/browse/OSPRH-9091/RHOSZUUL-1940
# and It require xl node to fix no valid host.
# - whitebox_neutron_tempest_plugin.tests.scenario.test_extra_dhcp_opts.ExtraDhcpOptionsTest.test_extra_dhcp_opts_ipv4_ipv6_stateless
- stepName: single-thread-testing
tempestRun:
concurrency: 1
includeList: |
whitebox_neutron_tempest_plugin.*south_north
^whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging
test_multicast.ext
test_multicast.*restart
whitebox_neutron_tempest_plugin.*south_north
whitebox_neutron_tempest_plugin.tests.scenario.*test_mtu
^neutron_.*plugin..*scenario.test_.*macvtap
^whitebox_neutron_tempest_plugin.many_vms
^whitebox_neutron_tempest_plugin.ovn_controller_restart
^whitebox_neutron_tempest_plugin.test_previously_used_ip
^whitebox_neutron_tempest_plugin.tests.scenario.test_internal_dns.InternalDNSInterruptions.
^whitebox_neutron_tempest_plugin.tests.scenario.test_l3ha_ovn.
^whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting
^whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_dbs.OvnDbsMonitoringTest.
^whitebox_neutron_tempest_plugin.tests.scenario.test_qos.*external
^whitebox_neutron_tempest_plugin.tests.scenario.test_router_flavors
^whitebox_neutron_tempest_plugin.tests.scenario.test_vlan_transparency.ProviderNetworkVlanTransparencyTest
# NOTE(mblue): Exclude list has test failures which need further debugging
# remove when bug OSPRH-7998 resolved
# - whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging.*test_only_dropped_traffic_logged
excludeList: |
whitebox_neutron_tempest_plugin.tests.scenario.test_metadata_rate_limiting
whitebox_neutron_tempest_plugin.tests.scenario.test_mtu.GatewayMtuTestIcmp.test_northbound_pmtud_icmp
whitebox_neutron_tempest_plugin.tests.scenario.test_ovn_dbs.OvnDbsMonitoringTest
whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging.*test_only_dropped_traffic_logged
whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging.StatefulSecGroupLoggingTest.test_only_accepted_traffic_logged
whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging.StatelessSecGroupLoggingTest.test_only_accepted_traffic_logged

0 comments on commit 58b2058

Please sign in to comment.