Extract nova-flavor role into a separate project on galaxy
This allows it to be used by other projects.
This commit is contained in:
parent
ed229582c3
commit
eb5551e3fb
1
.gitignore
vendored
1
.gitignore
vendored
@ -55,6 +55,7 @@ ansible/roles/mrlesmithjr.manage-lvm/
|
|||||||
ansible/roles/MichaelRigart.interfaces/
|
ansible/roles/MichaelRigart.interfaces/
|
||||||
ansible/roles/stackhpc.drac/
|
ansible/roles/stackhpc.drac/
|
||||||
ansible/roles/stackhpc.drac-facts/
|
ansible/roles/stackhpc.drac-facts/
|
||||||
|
ansible/roles/stackhpc.os-flavors/
|
||||||
ansible/roles/stackhpc.os-openstackclient/
|
ansible/roles/stackhpc.os-openstackclient/
|
||||||
ansible/roles/stackhpc.os-projects/
|
ansible/roles/stackhpc.os-projects/
|
||||||
ansible/roles/stackhpc.os-shade/
|
ansible/roles/stackhpc.os-shade/
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
ironic_node_flavor_properties: []
|
ironic_node_flavor_properties: []
|
||||||
existing_nova_flavors: "{{ nova_flavor_list.stdout | from_json }}"
|
existing_nova_flavors: "{{ nova_flavor_list.stdout | from_json }}"
|
||||||
relevant_existing_flavors: []
|
relevant_existing_flavors: []
|
||||||
nova_flavors: []
|
os_flavors: []
|
||||||
|
|
||||||
# Build a list of nodes' flavor-relevant properties.
|
# Build a list of nodes' flavor-relevant properties.
|
||||||
- name: Set a fact containing the ironic node properties
|
- name: Set a fact containing the ironic node properties
|
||||||
@ -68,8 +68,8 @@
|
|||||||
# won't work for a list of names other than 0 to N-1.
|
# won't work for a list of names other than 0 to N-1.
|
||||||
- name: Set a fact containing a list of flavors to register in nova
|
- name: Set a fact containing a list of flavors to register in nova
|
||||||
set_fact:
|
set_fact:
|
||||||
nova_flavors: >
|
os_flavors: >
|
||||||
{{ nova_flavors +
|
{{ os_flavors +
|
||||||
[item.1 | combine({'name': flavor_base_name ~ (item.0 + relevant_existing_flavors | length)})] }}
|
[item.1 | combine({'name': flavor_base_name ~ (item.0 + relevant_existing_flavors | length)})] }}
|
||||||
with_indexed_items: >
|
with_indexed_items: >
|
||||||
{{ ironic_node_flavor_properties |
|
{{ ironic_node_flavor_properties |
|
||||||
@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
# Register the new flavors.
|
# Register the new flavors.
|
||||||
- include_role:
|
- include_role:
|
||||||
role: nova-flavors
|
role: stackhpc.os-flavors
|
||||||
nova_flavors_venv: "{{ venv }}"
|
os_flavors_venv: "{{ venv }}"
|
||||||
nova_flavors_auth_type: "{{ openstack_auth_type }}"
|
os_flavors_auth_type: "{{ openstack_auth_type }}"
|
||||||
nova_flavors_auth: "{{ openstack_auth }}"
|
os_flavors_auth: "{{ openstack_auth }}"
|
||||||
|
@ -6,5 +6,6 @@
|
|||||||
- src: resmo.ntp
|
- src: resmo.ntp
|
||||||
- src: stackhpc.drac
|
- src: stackhpc.drac
|
||||||
- src: stackhpc.drac-facts
|
- src: stackhpc.drac-facts
|
||||||
|
- src: stackhpc.os-flavors
|
||||||
- src: stackhpc.os-projects
|
- src: stackhpc.os-projects
|
||||||
- src: yatesr.timezone
|
- src: yatesr.timezone
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
Nova Flavors
|
|
||||||
============
|
|
||||||
|
|
||||||
This role can be used to register flavors in nova using the
|
|
||||||
os\_nova\_flavor module.
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
------------
|
|
||||||
|
|
||||||
The OpenStack nova API should be accessible from the target host.
|
|
||||||
|
|
||||||
Role Variables
|
|
||||||
--------------
|
|
||||||
|
|
||||||
`nova_flavors_venv` is a path to a directory in which to create a
|
|
||||||
virtualenv.
|
|
||||||
|
|
||||||
`nova_flavors_auth_type` is an authentication type compatible with
|
|
||||||
the `auth_type` argument of `os_*` Ansible modules.
|
|
||||||
|
|
||||||
`nova_flavors_auth` is a dict containing authentication information
|
|
||||||
compatible with the `auth` argument of `os_*` Ansible modules.
|
|
||||||
|
|
||||||
`nova_flavors` is a list of nova flavors to register. Each item should be a
|
|
||||||
dict containing the items 'name', 'ram', 'disk', and 'vcpus'. Optionally, the
|
|
||||||
dict may contain 'ephemeral' and 'swap' items.
|
|
||||||
|
|
||||||
Dependencies
|
|
||||||
------------
|
|
||||||
|
|
||||||
This role depends on the Kayobe `shade` role.
|
|
||||||
|
|
||||||
Example Playbook
|
|
||||||
----------------
|
|
||||||
|
|
||||||
The following playbook registers a nova flavor.
|
|
||||||
|
|
||||||
---
|
|
||||||
- name: Ensure nova flavors are registered
|
|
||||||
hosts: nova-api
|
|
||||||
roles:
|
|
||||||
- role: nova-flavors
|
|
||||||
nova_flavors_venv: "~/nova-flavors-venv"
|
|
||||||
nova_flavors_auth_type: "password"
|
|
||||||
nova_flavors_auth:
|
|
||||||
project_name: <keystone project>
|
|
||||||
username: <keystone user>
|
|
||||||
password: <keystone password>
|
|
||||||
auth_url: <keystone auth URL>
|
|
||||||
nova_flavors:
|
|
||||||
name: flavor-1
|
|
||||||
ram: 1024
|
|
||||||
disk: 1024
|
|
||||||
vcpus: 2
|
|
||||||
|
|
||||||
Author Information
|
|
||||||
------------------
|
|
||||||
|
|
||||||
- Mark Goddard (<mark@stackhpc.com>)
|
|
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
# Path to a directory in which to create a virtualenv.
|
|
||||||
nova_flavors_venv:
|
|
||||||
|
|
||||||
# Authentication type.
|
|
||||||
nova_flavors_auth_type:
|
|
||||||
|
|
||||||
# Authentication information.
|
|
||||||
nova_flavors_auth: {}
|
|
||||||
|
|
||||||
# List of nova flavors to register. Each item should be a dict containing the
|
|
||||||
# items 'name', 'ram', 'disk', and 'vcpus'. Optionally, the dict may contain
|
|
||||||
# 'ephemeral' and 'swap' items.
|
|
||||||
nova_flavors: []
|
|
@ -1,4 +0,0 @@
|
|||||||
---
|
|
||||||
dependencies:
|
|
||||||
- role: stackhpc.os-shade
|
|
||||||
os_shade_venv: "{{ nova_flavors_venv }}"
|
|
@ -1,23 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Set a fact to ensure Ansible uses the python interpreter in the virtualenv
|
|
||||||
set_fact:
|
|
||||||
ansible_python_interpreter: "{{ nova_flavors_venv }}/bin/python"
|
|
||||||
|
|
||||||
- name: Ensure nova flavors exist
|
|
||||||
os_nova_flavor:
|
|
||||||
auth_type: "{{ nova_flavors_auth_type }}"
|
|
||||||
auth: "{{ nova_flavors_auth }}"
|
|
||||||
name: "{{ item.name }}"
|
|
||||||
ram: "{{ item.ram }}"
|
|
||||||
vcpus: "{{ item.vcpus }}"
|
|
||||||
disk: "{{ item.disk }}"
|
|
||||||
ephemeral: "{{ item.ephemeral | default(omit) }}"
|
|
||||||
swap: "{{ item.swap | default(omit) }}"
|
|
||||||
state: present
|
|
||||||
with_items: "{{ nova_flavors }}"
|
|
||||||
|
|
||||||
# This variable is unset before we set it, and it does not appear to be
|
|
||||||
# possible to unset a variable in Ansible.
|
|
||||||
- name: Set a fact to reset the Ansible python interpreter
|
|
||||||
set_fact:
|
|
||||||
ansible_python_interpreter: /usr/bin/python
|
|
Loading…
x
Reference in New Issue
Block a user