Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tempest kvm #7724

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
21 changes: 21 additions & 0 deletions openstack/tempest/kvm-tempest/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
9 changes: 9 additions & 0 deletions openstack/tempest/kvm-tempest/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dependencies:
- name: tempest-base
repository: file://../tempest-base
version: 0.1.0
- name: owner-info
repository: oci://keppel.eu-de-1.cloud.sap/ccloud-helm
version: 0.2.0
digest: sha256:714510c44e6ccd3aca3894b2e22ba383dd697c578ca9e21c537d57218d447031
generated: "2023-05-22T23:43:02.558525+04:00"
11 changes: 11 additions & 0 deletions openstack/tempest/kvm-tempest/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: A Helm chart for Openstack Tempest testing.
name: kvm-tempest
version: 0.1.0
apiVersion: v2
dependencies:
- name: tempest-base
repository: file://../tempest-base
version: 0.1.0
- name: owner-info
repository: oci://keppel.eu-de-1.cloud.sap/ccloud-helm
version: 0.2.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#!/usr/bin/env bash

set -o pipefail

{{- include "tempest-base.function_start_tempest_tests" . }}

function cleanup_security_groups() {
for secgroup in $(openstack security group list | grep -E "tempest-securitygroup|tempest_security_group" | awk '{ print $4 }');
do
echo "Security group $secgroup will be deleted";
openstack security group delete ${secgroup};
done
}

function cleanup_images() {
for image in $(openstack image list -f value -c Name | grep tempest);
do
if [ "$image" = "ubuntu-20.04-tempest" ]; then
echo "Tempest specific image will not deleted";
else
echo "Image $image will be deleted";
openstack image delete ${image};
fi
done
}

function cleanup_fips_user() {
# Delete all fips for nova user
COUNTER=0
for user in nova-tempestuser1 nova-tempestuser2 nova-tempestuser3 nova-tempestuser4 nova-tempestuser5 nova-tempestuser6 nova-tempestuser7 nova-tempestuser8 nova-tempestuser9 nova-tempestuser10 nova-tempestuser11 nova-tempestuser12 nova-tempestuser13 nova-tempestuser14 nova-tempestuser15 nova-tempestuser16 nova-tempestuser17 nova-tempestuser18; do
let COUNTER++
export OS_USERNAME=$user
TEMPESTPROJECT=nova-tempest$COUNTER
export OS_TENANT_NAME=$TEMPESTPROJECT
export OS_PROJECT_NAME=$TEMPESTPROJECT
for ip in $(openstack floating ip list | grep 10. | awk '{ print $2 }'); do openstack floating ip delete ${ip}; done
done
}

function cleanup_fips_admin() {
# Delete all fips for nova admin
COUNTER=0
for admin in nova-tempestadmin1 nova-tempestadmin2 nova-tempestadmin3 nova-tempestadmin4 nova-tempestadmin5 nova-tempestadmin6 nova-tempestadmin7 nova-tempestadmin8; do
let COUNTER++
export OS_USERNAME=$admin
TEMPESTPROJECT=nova-tempest-admin$COUNTER
export OS_TENANT_NAME=$TEMPESTPROJECT
export OS_PROJECT_NAME=$TEMPESTPROJECT
for ip in $(openstack floating ip list | grep 10. | awk '{ print $2 }'); do openstack floating ip delete ${ip}; done
done
}

function cleanup_nova() {
for i in $(seq 1 18); do
export OS_USERNAME=nova-tempestuser${i}
export OS_PROJECT_NAME=nova-tempest${i}
cleanup_security_groups
cleanup_images
done

for i in $(seq 1 8); do
export OS_USERNAME=nova-tempestadmin${i}
export OS_PROJECT_NAME=nova-tempest-admin${i}
cleanup_security_groups
cleanup_images
done
}

function cleanup_tempest_leftovers() {

echo "Run cleanup"

delete_os_items() {
os_item_type=$1
for item_id in $(openstack $os_item_type list -f value -c ID); do
openstack $os_item_type delete ${item_id}
done
}

delete_tempest_os_items() {
os_item_type=$1
for i in $(seq 1 18); do
export OS_USERNAME=nova-tempestuser${i}
export OS_PROJECT_NAME=nova-tempest${i}
delete_os_items "$os_item_type"
done

for i in $(seq 1 8); do
export OS_USERNAME=nova-tempestadmin${i}
export OS_PROJECT_NAME=nova-tempest-admin${i}
delete_os_items "$os_item_type"
done
}

# Delete types sequentially so that the deletion of servers in project 1 is
# eventually completed by the time script gets to deleting ports in project 1
delete_tempest_os_items "server"
delete_tempest_os_items "port"
delete_tempest_os_items "server group"
cleanup_nova
cleanup_fips_user
cleanup_fips_admin
}

{{- include "tempest-base.function_main" . }}

main
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{{- if (index .Values (print .Chart.Name | replace "-" "_")).tempest.enabled}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Chart.Name }}-bin
labels:
system: openstack
type: configuration
data:
tempest-start-and-cleanup.sh: |
{{ include (print .Template.BasePath "/bin/_tempest-start-and-cleanup.sh.tpl") . | indent 4 }}
{{ end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{{- if (index .Values (print .Chart.Name | replace "-" "_")).tempest.enabled}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Chart.Name }}-etc
labels:
system: openstack
type: configuration
data:
tempest_accounts.yaml: |
{{ include (print .Template.BasePath "/etc/_tempest_accounts.yaml.tpl") . | indent 4 }}
tempest_deployment_config.json: |
{{ include (print .Template.BasePath "/etc/_tempest_deployment_config.json.tpl") . | indent 4 }}
tempest_expected_failures_list.yaml: |
{{- include "tempest-base.expected_failures" (dict "myXfails" (index .Values (print .Chart.Name | replace "-" "_")).tempest.expected_failures) | indent 4 }}
tempest_skip_list.yaml: |
{{- include "tempest-base.skip_list" (dict "mySkipList" (index .Values (print .Chart.Name | replace "-" "_")).tempest.skip_list)| indent 4 }}
tempest_extra_options: |
{{ include (print .Template.BasePath "/etc/_tempest_extra_options.tpl") . | indent 4 }}
{{ end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin1
username: nova-tempestadmin1
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin2
username: nova-tempestadmin2
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin3
username: nova-tempestadmin3
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin4
username: nova-tempestadmin4
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin5
username: nova-tempestadmin5
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin6
username: nova-tempestadmin6
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin7
username: nova-tempestadmin7
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest-admin8
username: nova-tempestadmin8
types:
- admin
- primary
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest1
username: nova-tempestuser1
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest2
username: nova-tempestuser2
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest3
username: nova-tempestuser3
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest4
username: nova-tempestuser4
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest5
username: nova-tempestuser5
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest6
username: nova-tempestuser6
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest7
username: nova-tempestuser7
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest8
username: nova-tempestuser8
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest9
username: nova-tempestuser9
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest10
username: nova-tempestuser10
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest11
username: nova-tempestuser11
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest12
username: nova-tempestuser12
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest13
username: nova-tempestuser13
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest14
username: nova-tempestuser14
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest15
username: nova-tempestuser15
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest16
username: nova-tempestuser16
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest17
username: nova-tempestuser17
- domain_name: tempest
password: {{ .Values.tempestAdminPassword | quote }}
project_name: nova-tempest18
username: nova-tempestuser18
Loading