Skip to content
Draft
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5c68939
test target health
mgirgisf Jun 26, 2025
a3aaaca
Adjust the logic for scaling down test
mgirgisf Aug 27, 2025
1df9724
Revert "test target health"
mgirgisf Aug 27, 2025
c3010ea
Merge branch 'master' into mgirgis-autoscaling-logic
mgirgisf Sep 2, 2025
94289cc
Update test_autoscaling.yml
mgirgisf Sep 5, 2025
c48a0a8
Update galaxy.yml
elfiesmelfie Aug 1, 2025
c5fcbe2
Add pre-tasks to install oc
elfiesmelfie Aug 5, 2025
9c2c0b5
Add requirements.yml
elfiesmelfie Aug 6, 2025
c65060d
add oc installation to tasks
elfiesmelfie Aug 6, 2025
27d824b
rename requirements.yml -> requirements.yaml
elfiesmelfie Aug 6, 2025
1614ac7
Update path for the import role, since cifmw gets updated during the …
elfiesmelfie Aug 6, 2025
75cb032
update PATH
elfiesmelfie Aug 6, 2025
be3b433
Explicitly log into openshift
elfiesmelfie Aug 6, 2025
c4ff8c1
Add --insecure-skip-tls-verify to oc login
elfiesmelfie Aug 6, 2025
3197f29
Move the config file to repo root
elfiesmelfie Aug 6, 2025
4522b1b
Add ouput dir config to write to mounted volume
elfiesmelfie Aug 6, 2025
e77a542
remove the config for custom_junit
elfiesmelfie Aug 6, 2025
0c9d37a
USe CR hook for verify metrics
elfiesmelfie Aug 7, 2025
e444ef8
Add controller to the inventory
elfiesmelfie Aug 7, 2025
5f8f312
[report_results] Skip creating the results dir
elfiesmelfie Aug 7, 2025
8803c6c
Add retries to oc login
elfiesmelfie Aug 7, 2025
9294632
update files that trigger jobs
elfiesmelfie Aug 7, 2025
938bb61
Add verify-metrics vars with CR hook to functional-tests job
elfiesmelfie Aug 8, 2025
8e8649d
Add logging tests
elfiesmelfie Aug 8, 2025
271b3a3
set oc password to expected value
elfiesmelfie Aug 8, 2025
6e2c16a
Add TODOs and pre-test steps
elfiesmelfie Aug 8, 2025
4ec047e
Add extra test steps
elfiesmelfie Aug 8, 2025
1eac5e0
Update kubeadmin password for local crc
elfiesmelfie Aug 8, 2025
75ffb0e
Remove dep on cifmw
elfiesmelfie Aug 8, 2025
da67e8c
Add some TODO comments
elfiesmelfie Aug 8, 2025
8df8121
add promclient update to patchobservabilityclient
elfiesmelfie Aug 27, 2025
ba08f40
[ci][autoscaling] INclude vars from cifmw_basedir only when the var i…
elfiesmelfie Sep 1, 2025
1f6d04b
Workaround zuul undefined and install_yamls dir not found
elfiesmelfie Sep 2, 2025
7a8e43a
[common] Add namespace to cr tests
elfiesmelfie Sep 2, 2025
e13f302
[telemetry_verify_metrics] Add explicit namespace to oc commands
elfiesmelfie Sep 2, 2025
09e64e1
[autoscaling] Update the oc cp command to use namespace
elfiesmelfie Sep 2, 2025
fe8a9c3
[autoscaling] Use openstack_cmd for post-teardown tasks
elfiesmelfie Sep 2, 2025
f5db44f
Set patch_observabilityclient in ansibletest cr
elfiesmelfie Sep 3, 2025
1fa8d91
[telemetry_autoscaling] Add explicit namesspace to oc commands
elfiesmelfie Sep 3, 2025
fc3ca68
[ci] add namespace to oc commands for patch_observabilityclient
elfiesmelfie Sep 3, 2025
119358c
[autoscaling] Conditionally run the overcloud services check
elfiesmelfie Sep 3, 2025
f46337b
[ci] Add promclient update to patchobservabilityclient for autoscaling
elfiesmelfie Sep 3, 2025
c658ada
[autoscaling] Conditionally run the scale up and down test
elfiesmelfie Sep 3, 2025
bb2dec0
[autoscaling] Install sshpass
elfiesmelfie Sep 3, 2025
0b8577e
[autoscaling] Update the sshpass command to use correct bool value
elfiesmelfie Sep 4, 2025
60ae56b
[autoscaling] update sshpass commands and scaling_up_success var
elfiesmelfie Sep 4, 2025
5dd38a6
[common] Add default namespace for CR tests
elfiesmelfie Sep 4, 2025
7c36fb6
[ci] Add in some vars to skip the logging tests
elfiesmelfie Sep 4, 2025
acd8b91
Add debug to see scaling_up_success var
elfiesmelfie Sep 5, 2025
b2407f1
[autoscaling] Update ssh command for kill busy process
elfiesmelfie Sep 5, 2025
3b6d5ca
Add cloudkitty test
elfiesmelfie Sep 11, 2025
dc9a1e2
Add script based on cloudkitty docs
elfiesmelfie Sep 12, 2025
1ca3f32
[ci Add tasks to enable hashmap module
elfiesmelfie Sep 15, 2025
775762f
[c][ck] Add task to delete created group and service
elfiesmelfie Sep 15, 2025
42c3892
Merge branch 'master' into test_operator_changes
elfiesmelfie Nov 4, 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 @@ -187,6 +188,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
11 changes: 11 additions & 0 deletions ansible.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[defaults]
callbacks_enabled = custom_junit, custom_logger
callback_plugins = callback_plugins
# additional paths to search for roles
roles_path = roles:/usr/share/ansible/roles:/etc/ansible/roles:~/.ansible/roles:../ci-framework/roles

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

#[custom_junit]
#output_dir = /var/lib/AnsibleTests/external_files/feature-verification-tests/
172 changes: 172 additions & 0 deletions ci/ansible-tests-fvt.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
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/"
# install_yamls_dir needs to be updated later, maybe removed... the required dirs should be mounted into the pods
ansibleVarFiles: |
install_yamls_dir: "{{ ansible_env.HOME }}/install_yamls"
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"
patch_observabilityclient: true
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
17 changes: 17 additions & 0 deletions ci/logging_tests_computes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@
- nova_compute
common_file_list:
- /etc/rsyslog.d/10-telemetry.conf
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

tasks:
- name: "Run Telemetry Logging tests"
ansible.builtin.import_role:
Expand All @@ -33,6 +42,14 @@
common_container_list:
- ceilometer_agent_compute
- node_exporter
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool
tasks:
- name: "Run the tests from the common role"
ansible.builtin.import_role:
Expand Down
54 changes: 54 additions & 0 deletions ci/logging_tests_controller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@
- logging-loki-query-frontend-grpc
- logging-loki-query-frontend-http
- openstack-logging
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

tasks:
- name: "Verify logging infrastructure components"
ansible.builtin.import_role:
Expand Down Expand Up @@ -105,6 +114,15 @@
common_pod_nspace: openshift-operators-redhat
common_pod_list:
- loki-operator-controller-manager
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

tasks:
- name: "Verify Pods running"
ansible.builtin.import_role:
Expand All @@ -131,7 +149,15 @@
- logging-loki-querier
- logging-loki-query-frontend
- collector
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

### see JIRA LOG-5431 if pods not running
tasks:
- name: "Verify Pods running"
Expand All @@ -151,6 +177,15 @@
common_pod_nspace: minio-dev
common_pod_list:
- minio
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

tasks:
- name: "Run pod running tests"
ansible.builtin.import_role:
Expand Down Expand Up @@ -183,7 +218,17 @@
- ssh-known-hosts-edpm-deployment
- telemetry-edpm-deployment-openstack-edpm-ipam
- validate-network-edpm-deployment-openstack-edpm-ipam
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

tasks:

- name: "Run pods completed tests"
ansible.builtin.import_role:
name: common
Expand All @@ -209,6 +254,15 @@
- lokistacks.loki.grafana.com
- recordingrules.loki.grafana.com
- rulerconfigs.loki.grafana.com
pre_tasks:
- name: "Skip logging test by run_logging_test false"
ansible.builtin.meta: end_play
when: not run_logging_test | default(true) | bool

- name: "Skip logging test by logging disabled"
ansible.builtin.meta: end_play
when: not logging_enabled | bool

tasks:
- name: "Run Services and CRD tests"
ansible.builtin.import_role:
Expand Down
Loading
Loading