Always write clouds.yaml
os-client-config can work for standalone mode with specifically written clouds.yaml file providing auth_type as None. This patch changes `bifrost-keystone-client-config` role to write `clouds.yaml` file also when keystone is not installed, with a `bifrost` cloud configured, so that users can write automation scripts around ironic installed by bifrost in unified manner independently of whether keystone is installed or not, by using openstack --os-cloud bifrost ... command. This effectively mimics current `env-vars` file in bifrost, but using `clouds.yaml` configuration file. Change-Id: I4c27ffed20b3d02723f7be99ccd61d8cee74bea1
This commit is contained in:
parent
7164cbfbd8
commit
de0a964e1a
|
@ -22,7 +22,6 @@
|
||||||
config_project_name: "{{ keystone.bootstrap.project_name }}"
|
config_project_name: "{{ keystone.bootstrap.project_name }}"
|
||||||
config_region_name: "{{ keystone.bootstrap.region_name }}"
|
config_region_name: "{{ keystone.bootstrap.region_name }}"
|
||||||
config_auth_url: "{{ keystone.bootstrap.public_url }}"
|
config_auth_url: "{{ keystone.bootstrap.public_url }}"
|
||||||
when: enable_keystone is defined and enable_keystone | bool == true
|
|
||||||
- { role: bifrost-create-dib-image, dib_imagename: "{{ http_boot_folder }}/ipa", build_ramdisk: false, dib_os_element: "{{ ipa_dib_os_element|default('debian') }}", dib_elements: "ironic-agent {{ ipa_extra_dib_elements | default('') }}", when: create_ipa_image | bool == true }
|
- { role: bifrost-create-dib-image, dib_imagename: "{{ http_boot_folder }}/ipa", build_ramdisk: false, dib_os_element: "{{ ipa_dib_os_element|default('debian') }}", dib_elements: "ironic-agent {{ ipa_extra_dib_elements | default('') }}", when: create_ipa_image | bool == true }
|
||||||
- { role: bifrost-create-dib-image, dib_imagename: "{{ deploy_image }}", dib_imagetype: "qcow2", dib_elements: "vm enable-serial-console {{ dib_init_element|default('simple-init') }} {{ extra_dib_elements|default('') }}", when: create_image_via_dib | bool == true and transform_boot_image | bool == false }
|
- { role: bifrost-create-dib-image, dib_imagename: "{{ deploy_image }}", dib_imagetype: "qcow2", dib_elements: "vm enable-serial-console {{ dib_init_element|default('simple-init') }} {{ extra_dib_elements|default('') }}", when: create_image_via_dib | bool == true and transform_boot_image | bool == false }
|
||||||
environment:
|
environment:
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
---
|
---
|
||||||
# This file is intentionally empty
|
ironic_api_url: "http://localhost:6385"
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
config_project_domain_id: "{{ config_project_domain_id|default('default') }}"
|
config_project_domain_id: "{{ config_project_domain_id|default('default') }}"
|
||||||
config_user_domain_id: "{{ config_user_domain_id|default('default') }}"
|
config_user_domain_id: "{{ config_user_domain_id|default('default') }}"
|
||||||
when:
|
when:
|
||||||
|
- "{{ enable_keystone | default(false) | bool }}"
|
||||||
- "{{ clouds is undefined }}"
|
- "{{ clouds is undefined }}"
|
||||||
- "{{ config_username is defined }}"
|
- "{{ config_username is defined }}"
|
||||||
- "{{ config_password is defined }}"
|
- "{{ config_password is defined }}"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
# WARNING: This file is managed by bifrost.
|
# WARNING: This file is managed by bifrost.
|
||||||
clouds:
|
clouds:
|
||||||
|
{% if (enable_keystone | default(false) | bool) %}
|
||||||
{% for cloud in clouds | default({}) | dictsort %}
|
{% for cloud in clouds | default({}) | dictsort %}
|
||||||
{{ cloud.0 }}:
|
{{ cloud.0 }}:
|
||||||
region_name: {{ cloud.1.config_region_name }}
|
region_name: {{ cloud.1.config_region_name }}
|
||||||
|
@ -12,3 +13,9 @@ clouds:
|
||||||
user_domain_id: "{{ cloud.1.config_user_domain_id | default('default') }}"
|
user_domain_id: "{{ cloud.1.config_user_domain_id | default('default') }}"
|
||||||
identity_api_version: "3"
|
identity_api_version: "3"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
bifrost:
|
||||||
|
auth_type: None
|
||||||
|
auth: {}
|
||||||
|
url: {{ ironic_api_url }}
|
||||||
|
{% endif %}
|
||||||
|
|
|
@ -87,7 +87,6 @@
|
||||||
config_project_name: "baremetal"
|
config_project_name: "baremetal"
|
||||||
config_region_name: "{{ keystone.bootstrap.region_name }}"
|
config_region_name: "{{ keystone.bootstrap.region_name }}"
|
||||||
config_auth_url: "{{ keystone.bootstrap.public_url }}"
|
config_auth_url: "{{ keystone.bootstrap.public_url }}"
|
||||||
when: "{{ enable_keystone is defined and enable_keystone | bool == true }}"
|
|
||||||
environment:
|
environment:
|
||||||
http_proxy: "{{ lookup('env','http_proxy') }}"
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
https_proxy: "{{ lookup('env','https_proxy') }}"
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
bifrost now always writes ``clouds.yaml`` configuration file
|
||||||
|
for os-client-config independently of whether keystone is installed
|
||||||
|
or not.
|
||||||
|
|
||||||
|
This allows unified usage of ironic-related openstackclient commands
|
||||||
|
both in presence and absence of installed keystone by using the
|
||||||
|
``openstack`` command in the following form for both situations::
|
||||||
|
|
||||||
|
openstack --os-cloud bifrost baremetal ...
|
Loading…
Reference in New Issue