From 911c31d610f95c4ed74a9544292c2aa11f3f6975 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Mon, 4 Dec 2017 13:24:35 +0100 Subject: [PATCH] Add tempest to glance role This version currently ignores tempest errors Change-Id: I726a644d38d9828d66b954204669c91259bde781 --- defaults/main.yml | 2 ++ tasks/keystone.yml | 6 ++-- tests/templates/tempest.conf | 38 ++++++++++++++++++++ tests/tests.yml | 67 ++++++++++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 tests/templates/tempest.conf create mode 100644 tests/tests.yml diff --git a/defaults/main.yml b/defaults/main.yml index d2bcd83..203b4ff 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -19,6 +19,8 @@ clouds_config: 'clouds-secret' glance_config: DEFAULT: + debug: true + verbose: true public_bind_host: "0.0.0.0" database: connection: "mysql+pymysql://root:weakpassword@mariadb:3306/glance" diff --git a/tasks/keystone.yml b/tasks/keystone.yml index 851d928..f6a4e8c 100644 --- a/tasks/keystone.yml +++ b/tasks/keystone.yml @@ -9,6 +9,6 @@ service_project: '{{glance_config.keystone_authtoken.project}}' service_password: '{{glance_config.keystone_authtoken.password}}' service_username: '{{glance_config.keystone_authtoken.username}}' - service_internal_url: '{{ "https" if tls_enabled or "http"}}://{{glance_address}}:{{glance_port}}' - service_public_url: '{{ "https" if tls_enabled or "http"}}://{{glance_address}}:{{glance_port}}' - service_admin_url: '{{ "https" if tls_enabled or "http"}}://{{glance_address}}:{{glance_port}}' + service_internal_url: '{{ "https" if tls_enabled else "http"}}://{{glance_address}}:{{glance_port}}' + service_public_url: '{{ "https" if tls_enabled else "http"}}://{{glance_address}}:{{glance_port}}' + service_admin_url: '{{ "https" if tls_enabled else "http"}}://{{glance_address}}:{{glance_port}}' diff --git a/tests/templates/tempest.conf b/tests/templates/tempest.conf new file mode 100644 index 0000000..00b1fe6 --- /dev/null +++ b/tests/templates/tempest.conf @@ -0,0 +1,38 @@ +[DEFAULT] +debug = true + +[auth] +# Roles to assign to all users created by tempest (list value) +tempest_roles = _member_ + +use_dynamic_credentials = true + +# Roles to assign to all users created by tempest (list value) +#tempest_roles = +default_credentials_domain_name = Default + +admin_username = admin +admin_project_name = admin +admin_password = weakpassword +admin_domain_name = Default + +[identity] +admin_username = admin +admin_tenant_name = admin +admin_domain_name = Default +disable_ssl_certificate_validation = true +catalog_type = identity +uri = http://{{keystone_ip}}:5000/v3 +uri_v3 = http://{{keystone_ip}}:5000/v3 +auth_version = v3 +region = RegionOne +admin_role = admin +default_domain_id = default +admin_password = weakpassword + +[service_available] +cinder = false +neutron = false +glance = true +swift = false +nova = false \ No newline at end of file diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..92b526a --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,67 @@ +--- +- name: Get keystone cluster ip + shell: + cmd: | + kubectl get service keystone --namespace {{namespace}} --template={%raw%}{{.spec.clusterIP}}{%endraw%} + executable: /bin/bash + register: keystone_ip + +- set_fact: + keystone_ip: "{{keystone_ip.stdout}}" + +- name: Get glance cluster ip + shell: + cmd: | + kubectl get service glance --namespace {{namespace}} --template={%raw%}{{.spec.clusterIP}}{%endraw%} + executable: /bin/bash + register: glance_ip + +- set_fact: + glance_ip: "{{glance_ip.stdout}}" + +- name: Wait for glance to become available + wait_for: + host: "{{glance_ip}}" + port: "{{item}}" + delay: 2 + timeout: 300 + with_items: + - 9292 + +- name: Test glance jobs completion + shell: + cmd: | + set -ex + + rst=$(kubectl --namespace {{namespace}} get jobs {{item}} --template={%raw%}"{{.status.succeeded}}"{%endraw%}) + if [ "$rst" == "1" ]; then + exit 0 + fi + exit 1 + executable: /bin/bash + retries: 6 + delay: 5 + register: task_result + until: task_result.rc == 0 + with_items: + - glance-createdb + - glance-db-sync + + +- name: Copy tempests config + become: true + template: + src: templates/tempest.conf + dest: /etc/tempest/tempest.conf + +- name: Run tempest + shell: + cmd: | + set -x + set -e + tempest init tempest + cd tempest + tempest run -r image + executable: /bin/bash + ignore_errors: true + register: tempest_output