From 92f3a196c16ad9deba0d9e1852496f914ab4ec89 Mon Sep 17 00:00:00 2001 From: Fabricio Aguiar Date: Fri, 27 Sep 2024 03:17:12 +0100 Subject: [PATCH] Add zuul tempest jobs Signed-off-by: Fabricio Aguiar --- ci/tempest/ci_fw_vars.yaml | 13 ++++++++++ ci/tempest/control_plane_hook.yaml | 26 +++++++++++++++++++ zuul.d/jobs.yaml | 41 ++++++++++++++++++++++++++++++ zuul.d/project.yaml | 7 +++++ 4 files changed, 87 insertions(+) create mode 100644 ci/tempest/ci_fw_vars.yaml create mode 100644 ci/tempest/control_plane_hook.yaml create mode 100644 zuul.d/jobs.yaml create mode 100644 zuul.d/project.yaml diff --git a/ci/tempest/ci_fw_vars.yaml b/ci/tempest/ci_fw_vars.yaml new file mode 100644 index 00000000..73b00909 --- /dev/null +++ b/ci/tempest/ci_fw_vars.yaml @@ -0,0 +1,13 @@ +--- +# note by default the source for the playbook specified +# in the hooks is relative to +# https://github.com/openstack-k8s-operators/ci-framework/tree/main/hooks/playbooks +# if you want to use a different source you can use the full path on the ansible controller + +post_ctlplane_deploy: + - name: 71 Kustomize control plane to enable heat service + type: playbook + source: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/heat-operator'].src_dir }}/ci/tempest/control_plane_hook.yaml" + - name: 82 Kustomize and update Control Plane + type: playbook + source: control_plane_kustomize_deploy.yml diff --git a/ci/tempest/control_plane_hook.yaml b/ci/tempest/control_plane_hook.yaml new file mode 100644 index 00000000..e196cd9d --- /dev/null +++ b/ci/tempest/control_plane_hook.yaml @@ -0,0 +1,26 @@ +--- +- name: Kustomize ControlPlane + hosts: "{{ cifmw_target_hook_host | default('localhost') }}" + gather_facts: false + tasks: + - name: Ensure the kustomizations dir exists + ansible.builtin.file: + path: "{{ cifmw_basedir }}/artifacts/manifests/kustomizations/controlplane" + state: directory + mode: "0755" + + - name: Create kustomization + ansible.builtin.copy: + dest: "{{ cifmw_basedir }}/artifacts/manifests/kustomizations/controlplane/71-controlplane-kustomization.yaml" + content: |- + apiVersion: kustomize.config.k8s.io/v1beta1 + kind: Kustomization + resources: + namespace: {{ cifmw_install_yamls_defaults['NAMESPACE'] }} + patches: + - target: + kind: OpenStackControlPlane + patch: |- + - op: replace + path: /spec/heat/enabled + value: true diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml new file mode 100644 index 00000000..daa4a501 --- /dev/null +++ b/zuul.d/jobs.yaml @@ -0,0 +1,41 @@ +--- +- job: + name: heat-operator-tempest-multinode + parent: podified-multinode-edpm-deployment-crc + dependencies: ["openstack-k8s-operators-content-provider"] + vars: + cifmw_extras: + - "@scenarios/centos-9/multinode-ci.yml" + - "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/heat-operator'].src_dir }}/ci/tempest/ci_fw_vars.yaml" + cifmw_run_test_role: test_operator + cifmw_test_operator_concurrency: 4 + cifmw_test_operator_timeout: 7200 + cifmw_test_operator_tempest_network_attachments: + - ctlplane + # This value is used to populate the `tempestconfRun` parameter of the Tempest CR: https://openstack-k8s-operators.github.io/test-operator/crds.html#tempest-custom-resource + # https://github.com/openstack-k8s-operators/ci-framework/blob/main/roles/test_operator/defaults/main.yml + # NOTE(gibi): identity.v3_endpoint_type override is a WA to force the + # publicURL as otherwise tempest gets configured with adminURL and that + # causes test instability. + cifmw_tempest_tempestconf_config: + overrides: | + compute-feature-enabled.vnc_console true + validation.run_validation true + identity.v3_endpoint_type public + identity.v2_admin_endpoint_type public + cifmw_test_operator_tempest_include_list: | + heat_tempest_plugin.* + cifmw_test_operator_tempest_exclude_list: | + heat_tempest_plugin.tests.functional.test_os_wait_condition.OSWaitCondition.test_create_stack_with_multi_signal_waitcondition + heat_tempest_plugin.tests.functional.test_software_config.ParallelDeploymentsTest.test_deployments_metadata + heat_tempest_plugin.tests.scenario.test_server_cfn_init.CfnInitIntegrationTest.test_server_cfn_init + heat_tempest_plugin.tests.scenario.test_aodh_alarm.AodhAlarmTest.test_alarm + heat_tempest_plugin.tests.scenario.test_base_resources.BasicResourcesTest.test_base_resources_integration + heat_tempest_plugin.tests.scenario.test_server_signal.ServerSignalIntegrationTest.test_server_signal_userdata_format_raw + heat_tempest_plugin.tests.scenario.test_server_signal.ServerSignalIntegrationTest.test_server_signal_userdata_format_software_config + heat_tempest_plugin.tests.scenario.test_server_software_config.SoftwareConfigIntegrationTest.test_server_software_config + heat_tempest_plugin.tests.scenario.test_remote_deeply_nested.RemoteDeeplyNestedStackTest.test_remote_nested + heat_tempest_plugin.tests.functional.test_remote_stack.RemoteStackTest + external_plugin: "opendev.org/openstack/heat-tempest-plugin" + change_item: "{{ zuul['items'] | selectattr('project.canonical_name', 'equalto', external_plugin) }}" + cifmw_test_operator_tempest_external_plugin: "{{ [] if change_item | length < 1 else [ { 'repository': 'https://' + external_plugin + '.git', 'changeRepository': 'https://review' + external_plugin, 'changeRefspec': [ 'refs/changes', change_item[0].change[-2:], change_item[0].change, change_item[0].patchset ] | join('/') } ] }}" diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml new file mode 100644 index 00000000..388c77be --- /dev/null +++ b/zuul.d/project.yaml @@ -0,0 +1,7 @@ +--- +- project: + name: openstack-k8s-operators/heat-operator + github-check: + jobs: + - openstack-k8s-operators-content-provider + - heat-operator-tempest-multinode