Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a72162c
[ci] Update the logging tests to use new pod test config format
elfiesmelfie Jun 12, 2025
41f6d23
[roles/common] allow using a dict to configure pod tests
elfiesmelfie Jun 12, 2025
9212ec4
[roles/common] Update the docs for the pod tests
elfiesmelfie Jun 12, 2025
d995322
[ci] Update the logging tests to use new pod test config format
elfiesmelfie Jun 12, 2025
fd23519
[ci] Add ansible.cfg to top-level dir
elfiesmelfie Nov 12, 2025
1e9a778
Update galaxy.yml
elfiesmelfie Aug 1, 2025
06126c6
Add pre-tasks to install oc
elfiesmelfie Aug 5, 2025
e155be2
Add requirements.yml
elfiesmelfie Aug 6, 2025
928ad8f
add oc installation to tasks
elfiesmelfie Aug 6, 2025
de7cc22
rename requirements.yml -> requirements.yaml
elfiesmelfie Aug 6, 2025
d43a4c6
Update path for the import role, since cifmw gets updated during the …
elfiesmelfie Aug 6, 2025
42ccb7b
update PATH
elfiesmelfie Aug 6, 2025
7ab6723
Explicitly log into openshift
elfiesmelfie Aug 6, 2025
35a103d
Add --insecure-skip-tls-verify to oc login
elfiesmelfie Aug 6, 2025
e19afb4
Move the config file to repo root
elfiesmelfie Aug 6, 2025
3dd0122
Add ouput dir config to write to mounted volume
elfiesmelfie Aug 6, 2025
c2972eb
remove the config for custom_junit
elfiesmelfie Aug 6, 2025
ae508d6
USe CR hook for verify metrics
elfiesmelfie Aug 7, 2025
ab67682
Add controller to the inventory
elfiesmelfie Aug 7, 2025
8f11617
[report_results] Skip creating the results dir
elfiesmelfie Aug 7, 2025
bd8a4e1
Add retries to oc login
elfiesmelfie Aug 7, 2025
89be3d0
update files that trigger jobs
elfiesmelfie Aug 7, 2025
331fddd
Add verify-metrics vars with CR hook to functional-tests job
elfiesmelfie Aug 8, 2025
059c446
Add logging tests
elfiesmelfie Aug 8, 2025
949f46f
set oc password to expected value
elfiesmelfie Aug 8, 2025
c949449
Add TODOs and pre-test steps
elfiesmelfie Aug 8, 2025
d11e121
Add extra test steps
elfiesmelfie Aug 8, 2025
a5e5e4e
Update kubeadmin password for local crc
elfiesmelfie Aug 8, 2025
d369294
Remove dep on cifmw
elfiesmelfie Aug 8, 2025
57f3104
Add some TODO comments
elfiesmelfie Aug 8, 2025
e0d6d01
Fix case on CloudKitty API images
elfiesmelfie Oct 31, 2025
cf172eb
[bug] autoscaling tests only run when autoscaling is enabled in the oscp
elfiesmelfie Nov 17, 2025
e35e738
[ci] Update patch-observabilityclient to specify namespace
elfiesmelfie Nov 17, 2025
445b9a3
Merge branch 'efoley/update_pod_tests' into test_operator_changes
elfiesmelfie Nov 17, 2025
81b0d2a
Merge branch 'efoley/test-update_pod_tests' into test_operator_changes
elfiesmelfie Nov 17, 2025
b4c2b53
Merge branch 'top_level_ansible_cfg' into test_operator_changes
elfiesmelfie Nov 17, 2025
914507e
[test][common] Check if the failed condition needs to be explicitly s…
elfiesmelfie Nov 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .zuul.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-autoscaling-tempest.yml"
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-functional-test.yml"
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-use-master-containers.yml"
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-metric-verification-test.yml"
roles:
- zuul: github.com/openstack-k8s-operators/ci-framework
required-projects: &required_projects
Expand Down Expand Up @@ -182,6 +183,7 @@
- ci/logging_tests_controller.yml
- ci/report_result.yml
- .zuul.yaml
- ci/vars-metric-verification-test.yml
- functional-periodic-telemetry-with-ceph:
files:
# Run this job for changes to the volume_pool_metrics test changes as this is
Expand Down
9 changes: 9 additions & 0 deletions ansible.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[defaults]
callbacks_enabled = custom_junit, custom_logger
callback_plugins = callback_plugins
# additional paths to search for roles
roles_path = /usr/share/ansible/roles:/etc/ansible/roles:~/.ansible/roles:../ci-framework/roles:roles

[custom_logger]
output_dir = /$HOME/ci-framework-data/tests/feature-verification-tests/

169 changes: 169 additions & 0 deletions ci/ansible-tests-fvt.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
apiVersion: test.openstack.org/v1beta1
kind: AnsibleTest
metadata:
name: ansible-fvt
namespace: openstack
spec:
#ansibleGitRepo: 'http://github.com/infrawatch/feature-verification-tests'
#ansibleGitRepo: 'http://github.com/elfiesmelfie/feature-verification-tests" -b "test_operator_changes'
# I pushed test_operator_changes to master
ansibleGitRepo: 'http://github.com/elfiesmelfie/feature-verification-tests'
debug: true
containerImage: quay.io/podified-antelope-centos9/openstack-ansible-tests:current-podified
# TODO: try an absolute path for the playbook.
#ansiblePlaybookPath: ci/run_verify_metrics_osp18.yml
storageClass: crc-csi-hostpath-provisioner
computeSSHKeySecretName: dataplane-ansible-ssh-private-key-secret
workloadSSHKeySecretName: dataplane-ansible-ssh-private-key-secret
# ansibleExtraVars: "ANSIBLE_ROLES_PATH=roles"
# need to check where the collection ends up living...
# or indeed, just the ansible playbook.
# /var/lib/ansible/ansible/ci/"
ansibleVarFiles: |
cifmw_openshift_kubeconfig: ~/.kube.config
cifmw_path: "{{ ansible_env.PATH }}:/var/lib/ansible/bin"
cifmw_openshift_api: api.crc.testing:6443
cifmw_openshift_password: '12345678'
cifmw_openshift_user: kubeadmin
openstack_cmd: "oc -n openstack rsh openstackclient openstack"
telemetry_verify_metrics_metric_sources_to_test:
- ceilometer_compute_agent
- ceilometer_central_agent
#- ksm
- node_exporter
#- podman_exporter
#- rabbitmq
#- kepler
#- openstack_network_exporter
#- ceilometer_prom_exporter
#- mariadb
#ansibleCollections: "git+https://github.com/infrawatch/feature-verification-tests.git,master"
#ansibleCollections: 'git+https://github.com/elfiesmelfie/feature-verification-tests.git,test_operator_changes" "git+https://github.com/openstack-k8s-operators/ci-framework'
#ansibleCollections: 'git+https://github.com/elfiesmelfie/feature-verification-tests.git,test_operator_changes'
ansibleCollections: 'git+https://github.com/elfiesmelfie/feature-verification-tests.git,master'
# allow privilige escalation so ci_setup/tasks/packages can be run, even if we don't install any packages.
# Since the oc install tasks are in the pre-tasks playbook, and don't use the ci_setup role, this can be removed.
# TODO: Consider updating cifmw ci_setup role to have a separate get_oc_client task.
privileged: true
extraMounts:
- extraVol:
- mounts:
- name: test-operator-logs
mountPath: /var/lib/ansible/ci-framework-data/tests/feature-verification-tests
volumes: []
ansibleInventory: |
localhost ansible_connection=local ansible_python_interpreter=python3
compute-0 ansible_host=192.168.122.100 ansible_user=root ansible_ssh_private_key_file=/var/lib/ansible/.ssh/compute_id
compute-1 ansible_host=192.168.122.101 ansible_user=root ansible_ssh_private_key_file=/var/lib/ansible/.ssh/compute_id
[compute]
compute-0
compute-1
[controller]
localhost
[local]
localhost
workflow:
- stepName: verify-metrics
ansiblePlaybookPath: ci/run_verify_metrics_osp18.yml
- stepName: logging
ansiblePlaybookPath: ci/logging_tests_all.yml
- stepName: autoscaling
ansiblePlaybookPath: ci/run_autoscaling_tests.yml
- stepName: graphing
ansblePlaybookPath: ci/run_graphing_test.yml
- stepName: report-results
ansiblePlaybookPath: ci/report_result.yml
#FIELDS:
# SELinuxLevel <string>
# A SELinuxLevel that should be used for test pods spawned by the test
# operator.
#
# TODO: check this option in test-operator, since it only seems to support a sigle extra collection at the moment
# TODO: Correct this to requirements.yml instead of requirements.yaml (or support both)
# ansibleCollections <string>
# AnsibleCollections - extra ansible collections to instal in additionn to the
# ones exist in the requirements.yaml
#
# ansibleExtraVars <string>
# AnsibleExtraVars - string to pass parameters to ansible using
#
# ansibleGitRepo <string> -required-
# AnsibleGitRepo - git repo to clone into container
# ansibleInventory <string>
# AnsibleInventory - string that contains the inventory file content
#
# ansiblePlaybookPath <string> -required-
# AnsiblePlaybookPath - path to ansible playbook
#
# TODO: If the repos from the hosts are copied into the extraMounts, we can skip using the ansibleVarFiles interface, and use ansibleExtraVars: @<file> instead.
# ansibleVarFiles <string>
# AnsibleVarFiles - interface to create ansible var files Those get added to
# the
#
# backoffLimit <integer>
# BackoffLimit allows to define the maximum number of retried executions
# (defaults to 0).
#
# computeSSHKeySecretName <string>
# ComputeSSHKeySecretName is the name of the k8s secret that contains an ssh
# key for computes.
# The key is mounted to ~/.ssh/id_ecdsa in the ansible pod
# containerImage <string>
# A URL of a container image that should be used by the test-operator for
# tests execution.
#
# debug <boolean>
# Run ansible playbook with -vvvv
# extraConfigmapsMounts <[]Object>
# Extra configmaps for mounting inside the pod
# TODO: Investigate preparing a PV and populating it with the git repos from the host.
# This would removed the need to install from galaxy and push to elfie/master in order to run a playbook.
# The git repos could then be cloned from the local copy of the repo.
#
# extraMounts <[]Object>
# ExtraMounts containing conf files, credentials and storage volumes
#
# nodeSelector <map[string]string>
# This value contains a nodeSelector value that is applied to test pods
# spawned by the test operator.
#
# openStackConfigMap <string>
# OpenStackConfigMap is the name of the ConfigMap containing the clouds.yaml
#
# openStackConfigSecret <string>
# OpenStackConfigSecret is the name of the Secret containing the secure.yaml
# TODO: add openstack config secrets, then skip running openstack commands in openstackclient. This also means that the version of promclient, observabilityclient and apdh client can be updated without patching the containers.
# clouds.yaml is included by default. Need to check the cloudname.
# The OS_CLOUD_NAME can be set in the env to select the cloud.
# clouds.yaml is mounted at /etc/openstack/clouds.yaml
# The cloud is called default.
# privileged <boolean>
# Use with caution! This parameter specifies whether test-operator should
# spawn
# test pods with allowedPrivilegedEscalation: true, readOnlyRootFilesystem:
# false,
# runAsNonRoot: false, automountServiceAccountToken: true, and the default
# capabilities on top of capabilities that are usually needed by the test
# pods (NET_ADMIN, NET_RAW). This parameter is deemed insecure but it is
# needed for certain test-operator functionalities to work properly (e.g.:
# extraRPMs in Tempest CR, or certain set of tobiko tests).
#
# resources <Object>
# The desired amount of resources that should be assigned to each test pod
# spawned using the AnsibleTest CR.
# https://pkg.go.dev/k8s.io/api/core/v1#ResourceRequirements
#
# storageClass <string>
# StorageClass used to create any test-operator related PVCs.
#
# tolerations <[]Object>
# This value contains a toleration that is applied to pods spawned by the
# test pods that are spawned by the test-operator.
#
# workflow <[]Object>
# A parameter that contains a workflow definition.
#
# workloadSSHKeySecretName <string>
# WorkloadSSHKeySecretName is the name of the k8s secret that contains an ssh
# key for the ansible workload.
# The key is mounted to ~/test_keypair.key in the ansible pod
4 changes: 4 additions & 0 deletions ci/logging_tests_all.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
- name: Run pre-test steps
ansible.builtin.import_playbook: pre-test-steps.yml


- name: Run the compute node tests
ansible.builtin.import_playbook: logging_tests_computes.yml

Expand Down
Loading