Add openstacksdk role
Add openstacksdk role which installs openstacksdk py package
and configures clouds.yaml.
Sem-Ver: feature
Change-Id: I574aa1401af90bd827c5301fae561f9bbf47daa8
diff --git a/releasenotes/notes/openstacksdk-add-role-352fd57b4abec9d2.yaml b/releasenotes/notes/openstacksdk-add-role-352fd57b4abec9d2.yaml
new file mode 100644
index 0000000..d886f71
--- /dev/null
+++ b/releasenotes/notes/openstacksdk-add-role-352fd57b4abec9d2.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Add openstacksdk role which installs openstacksdk py package
+ and configures clouds.yaml.
diff --git a/roles/openstack_helm_glance/meta/main.yml b/roles/openstack_helm_glance/meta/main.yml
index e50b7f0..e9a1e0a 100644
--- a/roles/openstack_helm_glance/meta/main.yml
+++ b/roles/openstack_helm_glance/meta/main.yml
@@ -27,3 +27,4 @@
vars:
helm_repository_name: "{{ openstack_helm_glance_chart_repo_name }}"
helm_repository_repo_url: "{{ openstack_helm_glance_chart_repo_url }}"
+ - openstacksdk
diff --git a/roles/openstack_helm_glance/tasks/main.yml b/roles/openstack_helm_glance/tasks/main.yml
index 3f157c6..13415b0 100644
--- a/roles/openstack_helm_glance/tasks/main.yml
+++ b/roles/openstack_helm_glance/tasks/main.yml
@@ -67,14 +67,7 @@
- name: Upload images
openstack.cloud.image:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
- region_name: "{{ openstack_helm_endpoints['identity']['auth']['glance']['region_name'] }}"
+ cloud: atmosphere
name: "{{ item.name }}"
state: present
filename: "/tmp/{{ item.image_file }}"
diff --git a/roles/openstack_helm_neutron/meta/main.yml b/roles/openstack_helm_neutron/meta/main.yml
index 409b595..c11c9ec 100644
--- a/roles/openstack_helm_neutron/meta/main.yml
+++ b/roles/openstack_helm_neutron/meta/main.yml
@@ -34,3 +34,4 @@
- openstack_helm_infra_rabbitmq
- openstack_helm_infra_openvswitch
- openstack_helm_keystone
+ - openstacksdk
diff --git a/roles/openstack_helm_neutron/tasks/main.yml b/roles/openstack_helm_neutron/tasks/main.yml
index 190decc..7d445a6 100644
--- a/roles/openstack_helm_neutron/tasks/main.yml
+++ b/roles/openstack_helm_neutron/tasks/main.yml
@@ -56,14 +56,7 @@
- name: Create networks
openstack.cloud.network:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
- region_name: "{{ openstack_helm_endpoints['identity']['auth']['neutron']['region_name'] }}"
+ cloud: atmosphere
# Network settings
name: "{{ item.name }}"
external: "{{ item.external | default(omit) }}"
@@ -77,14 +70,7 @@
- name: Create subnets
openstack.cloud.subnet:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
- region_name: "{{ openstack_helm_endpoints['identity']['auth']['neutron']['region_name'] }}"
+ cloud: atmosphere
# Subnet settings
network_name: "{{ item.0.name }}"
name: "{{ item.1.name }}"
diff --git a/roles/openstack_helm_nova/meta/main.yml b/roles/openstack_helm_nova/meta/main.yml
index a2003fe..9d2a79f 100644
--- a/roles/openstack_helm_nova/meta/main.yml
+++ b/roles/openstack_helm_nova/meta/main.yml
@@ -27,3 +27,4 @@
vars:
helm_repository_name: "{{ openstack_helm_nova_chart_repo_name }}"
helm_repository_repo_url: "{{ openstack_helm_nova_chart_repo_url }}"
+ - openstacksdk
diff --git a/roles/openstack_helm_nova/tasks/main.yml b/roles/openstack_helm_nova/tasks/main.yml
index a719f44..6a47eb3 100644
--- a/roles/openstack_helm_nova/tasks/main.yml
+++ b/roles/openstack_helm_nova/tasks/main.yml
@@ -129,14 +129,7 @@
- name: Create flavors
openstack.cloud.compute_flavor:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
- region_name: "{{ openstack_helm_endpoints['identity']['auth']['neutron']['region_name'] }}"
+ cloud: atmosphere
# Flavor settings
flavorid: "{{ item.flavorid | default(omit) }}"
name: "{{ item.name }}"
diff --git a/roles/openstack_helm_tempest/meta/main.yml b/roles/openstack_helm_tempest/meta/main.yml
index d9b9461..53ed300 100644
--- a/roles/openstack_helm_tempest/meta/main.yml
+++ b/roles/openstack_helm_tempest/meta/main.yml
@@ -27,3 +27,4 @@
vars:
helm_repository_name: "{{ openstack_helm_tempest_chart_repo_name }}"
helm_repository_repo_url: "{{ openstack_helm_tempest_chart_repo_url }}"
+ - openstacksdk
diff --git a/roles/openstack_helm_tempest/tasks/main.yml b/roles/openstack_helm_tempest/tasks/main.yml
index 4094809..436df55 100644
--- a/roles/openstack_helm_tempest/tasks/main.yml
+++ b/roles/openstack_helm_tempest/tasks/main.yml
@@ -24,13 +24,7 @@
block:
- name: Get test image object
openstack.cloud.image_info:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
+ cloud: atmosphere
image: cirros
register: _openstack_helm_tempest_test_image
when: openstack_helm_tempest_values.conf.tempest.compute.image_ref is not defined
@@ -49,13 +43,7 @@
- name: Get test flavor object
openstack.cloud.compute_flavor_info:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
+ cloud: atmosphere
name: m1.tiny
register: _openstack_helm_tempest_test_flavor
when: openstack_helm_tempest_values.conf.tempest.compute.flavor_ref is not defined
@@ -74,13 +62,7 @@
- name: Get test network object
openstack.cloud.networks_info:
- auth:
- auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
- username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
- password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
- project_name: admin
- user_domain_name: Default
- project_domain_name: Default
+ cloud: atmosphere
name: public
register: _openstack_helm_tempest_test_network
when: openstack_helm_tempest_values.conf.tempest.network.public_network_id is not defined
diff --git a/roles/openstacksdk/tasks/main.yml b/roles/openstacksdk/tasks/main.yml
new file mode 100644
index 0000000..912d515
--- /dev/null
+++ b/roles/openstacksdk/tasks/main.yml
@@ -0,0 +1,40 @@
+# Copyright (c) 2022 VEXXHOST, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+- name: Generate OpenStack-Helm endpoints
+ ansible.builtin.include_role:
+ name: openstack_helm_endpoints
+ vars:
+ openstack_helm_endpoints_list: ["identity"]
+
+- name: Install openstacksdk
+ ansible.builtin.pip:
+ name: openstacksdk
+
+- name: Create openstack config directory
+ become: true
+ ansible.builtin.file:
+ path: /etc/openstack
+ state: directory
+ owner: root
+ group: root
+
+- name: Generate cloud config file
+ become: true
+ ansible.builtin.template:
+ src: clouds.yaml.j2
+ dest: /etc/openstack/clouds.yaml
+ owner: root
+ group: root
+ mode: '0600'
diff --git a/roles/openstacksdk/templates/clouds.yaml.j2 b/roles/openstacksdk/templates/clouds.yaml.j2
new file mode 100644
index 0000000..53fb9d2
--- /dev/null
+++ b/roles/openstacksdk/templates/clouds.yaml.j2
@@ -0,0 +1,10 @@
+clouds:
+ atmosphere:
+ auth:
+ auth_url: "https://{{ openstack_helm_endpoints['identity']['host_fqdn_override']['public']['host'] }}"
+ username: "{{ openstack_helm_endpoints['identity']['auth']['admin']['username'] }}"
+ password: "{{ openstack_helm_endpoints['identity']['auth']['admin']['password'] }}"
+ project_name: admin
+ user_domain_name: Default
+ project_domain_name: Default
+ region_name: "{{ openstack_helm_endpoints['identity']['auth']['admin']['region_name'] }}"