6c2aace8d6
Regularly, we experience issues in Kolla Ansible deployments because we use wrong options in OpenStack configuration files. This is because OpenStack services ignore unknown options. We also need to keep on top of deprecated options that may be removed in the future. Integrating oslo-config-validator into Kolla Ansible will greatly help. Adds a shared role to run oslo-config-validator on each service. Takes into account that services have multiple containers, and these may also use multiple config files. Service roles are extended to use this shared role. Executed with the new command ``kolla-ansible validate-config``. Change-Id: Ic10b410fc115646d96d2ce39d9618e7c46cb3fbc
338 lines
15 KiB
YAML
338 lines
15 KiB
YAML
---
|
|
cinder_services:
|
|
cinder-api:
|
|
container_name: cinder_api
|
|
group: cinder-api
|
|
enabled: true
|
|
image: "{{ cinder_api_image_full }}"
|
|
volumes: "{{ cinder_api_default_volumes + cinder_api_extra_volumes }}"
|
|
dimensions: "{{ cinder_api_dimensions }}"
|
|
healthcheck: "{{ cinder_api_healthcheck }}"
|
|
haproxy:
|
|
cinder_api:
|
|
enabled: "{{ enable_cinder }}"
|
|
mode: "http"
|
|
external: false
|
|
port: "{{ cinder_api_port }}"
|
|
listen_port: "{{ cinder_api_listen_port }}"
|
|
tls_backend: "{{ cinder_enable_tls_backend }}"
|
|
cinder_api_external:
|
|
enabled: "{{ enable_cinder }}"
|
|
mode: "http"
|
|
external: true
|
|
port: "{{ cinder_api_port }}"
|
|
listen_port: "{{ cinder_api_listen_port }}"
|
|
tls_backend: "{{ cinder_enable_tls_backend }}"
|
|
cinder-scheduler:
|
|
container_name: cinder_scheduler
|
|
group: cinder-scheduler
|
|
enabled: true
|
|
image: "{{ cinder_scheduler_image_full }}"
|
|
volumes: "{{ cinder_scheduler_default_volumes + cinder_scheduler_extra_volumes }}"
|
|
dimensions: "{{ cinder_scheduler_dimensions }}"
|
|
healthcheck: "{{ cinder_scheduler_healthcheck }}"
|
|
cinder-volume:
|
|
container_name: cinder_volume
|
|
group: cinder-volume
|
|
enabled: true
|
|
image: "{{ cinder_volume_image_full }}"
|
|
privileged: True
|
|
ipc_mode: "host"
|
|
tmpfs: "{{ cinder_volume_tmpfs }}"
|
|
volumes: "{{ cinder_volume_default_volumes + cinder_volume_extra_volumes }}"
|
|
dimensions: "{{ cinder_volume_dimensions }}"
|
|
healthcheck: "{{ cinder_volume_healthcheck }}"
|
|
cinder-backup:
|
|
container_name: cinder_backup
|
|
group: cinder-backup
|
|
enabled: "{{ enable_cinder_backup | bool }}"
|
|
image: "{{ cinder_backup_image_full }}"
|
|
privileged: True
|
|
volumes: "{{ cinder_backup_default_volumes + cinder_backup_extra_volumes }}"
|
|
dimensions: "{{ cinder_backup_dimensions }}"
|
|
healthcheck: "{{ cinder_backup_healthcheck }}"
|
|
|
|
####################
|
|
# Config Validate
|
|
####################
|
|
cinder_config_validation:
|
|
- generator: "/cinder/tools/config/cinder-config-generator.conf"
|
|
config: "/etc/cinder/cinder.conf"
|
|
|
|
####################
|
|
# Database
|
|
####################
|
|
cinder_database_name: "cinder"
|
|
cinder_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cinder{% endif %}"
|
|
cinder_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
|
|
|
####################
|
|
# Database sharding
|
|
####################
|
|
cinder_database_shard_root_user: "{% if enable_proxysql | bool %}root_shard_{{ cinder_database_shard_id }}{% else %}{{ database_user }}{% endif %}"
|
|
cinder_database_shard_id: "{{ mariadb_default_database_shard_id | int }}"
|
|
cinder_database_shard:
|
|
users:
|
|
- user: "{{ cinder_database_user }}"
|
|
password: "{{ cinder_database_password }}"
|
|
rules:
|
|
- schema: "{{ cinder_database_name }}"
|
|
shard_id: "{{ cinder_database_shard_id }}"
|
|
|
|
|
|
####################
|
|
# Docker
|
|
####################
|
|
cinder_tag: "{{ openstack_tag }}"
|
|
|
|
cinder_volume_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/cinder-volume"
|
|
cinder_volume_tag: "{{ cinder_tag }}"
|
|
cinder_volume_image_full: "{{ cinder_volume_image }}:{{ cinder_volume_tag }}"
|
|
|
|
cinder_scheduler_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/cinder-scheduler"
|
|
cinder_scheduler_tag: "{{ cinder_tag }}"
|
|
cinder_scheduler_image_full: "{{ cinder_scheduler_image }}:{{ cinder_scheduler_tag }}"
|
|
|
|
cinder_backup_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/cinder-backup"
|
|
cinder_backup_tag: "{{ cinder_tag }}"
|
|
cinder_backup_image_full: "{{ cinder_backup_image }}:{{ cinder_backup_tag }}"
|
|
|
|
cinder_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/cinder-api"
|
|
cinder_api_tag: "{{ cinder_tag }}"
|
|
cinder_api_image_full: "{{ cinder_api_image }}:{{ cinder_api_tag }}"
|
|
|
|
cinder_api_dimensions: "{{ default_container_dimensions }}"
|
|
cinder_backup_dimensions: "{{ default_container_dimensions }}"
|
|
cinder_scheduler_dimensions: "{{ default_container_dimensions }}"
|
|
cinder_volume_dimensions: "{{ default_container_dimensions }}"
|
|
|
|
cinder_api_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
cinder_api_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
cinder_api_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
cinder_api_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
cinder_api_healthcheck_test: ["CMD-SHELL", "healthcheck_curl {{ 'https' if cinder_enable_tls_backend | bool else 'http' }}://{{ api_interface_address | put_address_in_context('url') }}:{{ cinder_api_listen_port }}"]
|
|
cinder_api_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
cinder_api_healthcheck:
|
|
interval: "{{ cinder_api_healthcheck_interval }}"
|
|
retries: "{{ cinder_api_healthcheck_retries }}"
|
|
start_period: "{{ cinder_api_healthcheck_start_period }}"
|
|
test: "{% if cinder_api_enable_healthchecks | bool %}{{ cinder_api_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ cinder_api_healthcheck_timeout }}"
|
|
|
|
cinder_scheduler_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
cinder_scheduler_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
cinder_scheduler_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
cinder_scheduler_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
cinder_scheduler_healthcheck_test: ["CMD-SHELL", "healthcheck_port cinder-scheduler {{ om_rpc_port }}"]
|
|
cinder_scheduler_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
cinder_scheduler_healthcheck:
|
|
interval: "{{ cinder_scheduler_healthcheck_interval }}"
|
|
retries: "{{ cinder_scheduler_healthcheck_retries }}"
|
|
start_period: "{{ cinder_scheduler_healthcheck_start_period }}"
|
|
test: "{% if cinder_scheduler_enable_healthchecks | bool %}{{ cinder_scheduler_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ cinder_scheduler_healthcheck_timeout }}"
|
|
|
|
cinder_volume_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
cinder_volume_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
cinder_volume_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
cinder_volume_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
cinder_volume_healthcheck_test: ["CMD-SHELL", "healthcheck_port cinder-volume {{ om_rpc_port }}"]
|
|
cinder_volume_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
cinder_volume_healthcheck:
|
|
interval: "{{ cinder_volume_healthcheck_interval }}"
|
|
retries: "{{ cinder_volume_healthcheck_retries }}"
|
|
start_period: "{{ cinder_volume_healthcheck_start_period }}"
|
|
test: "{% if cinder_volume_enable_healthchecks | bool %}{{ cinder_volume_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ cinder_volume_healthcheck_timeout }}"
|
|
|
|
cinder_backup_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
cinder_backup_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
cinder_backup_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
cinder_backup_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
cinder_backup_healthcheck_test: ["CMD-SHELL", "healthcheck_port cinder-backup {{ om_rpc_port }}"]
|
|
cinder_backup_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
cinder_backup_healthcheck:
|
|
interval: "{{ cinder_backup_healthcheck_interval }}"
|
|
retries: "{{ cinder_backup_healthcheck_retries }}"
|
|
start_period: "{{ cinder_backup_healthcheck_start_period }}"
|
|
test: "{% if cinder_backup_enable_healthchecks | bool %}{{ cinder_backup_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ cinder_backup_healthcheck_timeout }}"
|
|
|
|
cinder_api_default_volumes:
|
|
- "{{ node_config_directory }}/cinder-api/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
- "{{ kolla_dev_repos_directory ~ '/cinder/cinder:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/cinder' if cinder_dev_mode | bool else '' }}"
|
|
cinder_backup_default_volumes:
|
|
- "{{ node_config_directory }}/cinder-backup/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
|
- "/dev/:/dev/"
|
|
- "/lib/modules:/lib/modules:ro"
|
|
- "/run/:/run/:shared"
|
|
- "cinder:/var/lib/cinder"
|
|
- "{% if enable_iscsid | bool %}iscsi_info:/etc/iscsi{% endif %}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
- "{{ kolla_dev_repos_directory ~ '/cinder/cinder:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/cinder' if cinder_dev_mode | bool else '' }}"
|
|
cinder_scheduler_default_volumes:
|
|
- "{{ node_config_directory }}/cinder-scheduler/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
- "{{ kolla_dev_repos_directory ~ '/cinder/cinder:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/cinder' if cinder_dev_mode | bool else '' }}"
|
|
cinder_volume_default_volumes:
|
|
- "{{ node_config_directory }}/cinder-volume/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}"
|
|
- "/dev/:/dev/"
|
|
- "/lib/modules:/lib/modules:ro"
|
|
- "/run/:/run/:shared"
|
|
- "cinder:/var/lib/cinder"
|
|
- "{% if enable_iscsid | bool %}iscsi_info:/etc/iscsi{% endif %}"
|
|
- "{% if enable_cinder_backend_lvm | bool and cinder_target_helper == 'lioadm' %}target_config:/etc/target{% endif %}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
- "{{ kolla_dev_repos_directory ~ '/cinder/cinder:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/cinder' if cinder_dev_mode | bool else '' }}"
|
|
|
|
cinder_extra_volumes: "{{ default_extra_volumes }}"
|
|
cinder_api_extra_volumes: "{{ cinder_extra_volumes }}"
|
|
cinder_backup_extra_volumes: "{{ cinder_extra_volumes }}"
|
|
cinder_scheduler_extra_volumes: "{{ cinder_extra_volumes }}"
|
|
cinder_volume_extra_volumes: "{{ cinder_extra_volumes }}"
|
|
|
|
cinder_volume_tmpfs:
|
|
- "{% if cinder_enable_conversion_tmpfs | bool %}/var/lib/cinder/conversion{% endif %}"
|
|
|
|
# If true, use a tmpfs mount for the Cinder image conversion directory.
|
|
cinder_enable_conversion_tmpfs: false
|
|
|
|
####################
|
|
# OpenStack
|
|
####################
|
|
cinder_internal_base_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}"
|
|
cinder_public_base_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}"
|
|
|
|
cinder_v3_internal_endpoint: "{{ cinder_internal_base_endpoint }}/v3/%(tenant_id)s"
|
|
cinder_v3_public_endpoint: "{{ cinder_public_base_endpoint }}/v3/%(tenant_id)s"
|
|
|
|
cinder_logging_debug: "{{ openstack_logging_debug }}"
|
|
|
|
openstack_cinder_auth: "{{ openstack_auth }}"
|
|
|
|
# After upgrading cinder, services will have an RPC version cap in place. We
|
|
# need to restart all services in order to allow them to use the latest RPC
|
|
# version. Ideally, there would be a way to check whether all cinder services
|
|
# are using the latest version, but currently there is not. Instead, wait a
|
|
# short time for all cinder services to update the version of their service in
|
|
# the database. This seems to take around 10 seconds, but the default is 30 to
|
|
# allow room for slowness.
|
|
cinder_rpc_version_startup_delay: 30
|
|
|
|
cinder_api_workers: "{{ openstack_service_workers }}"
|
|
|
|
####################
|
|
# Cinder
|
|
####################
|
|
cinder_backends:
|
|
- name: "{{ cinder_backend_ceph_name }}"
|
|
enabled: "{{ cinder_backend_ceph | bool }}"
|
|
- name: "{{ cinder_backend_lvm_name }}"
|
|
enabled: "{{ enable_cinder_backend_lvm | bool }}"
|
|
- name: "{{ cinder_backend_nfs_name }}"
|
|
enabled: "{{ enable_cinder_backend_nfs | bool }}"
|
|
- name: "{{ cinder_backend_hnas_nfs_name }}"
|
|
enabled: "{{ enable_cinder_backend_hnas_nfs | bool }}"
|
|
- name: "{{ cinder_backend_vmwarevc_vmdk_name }}"
|
|
enabled: "{{ cinder_backend_vmwarevc_vmdk | bool }}"
|
|
- name: "{{ cinder_backend_vmware_vstorage_object_name }}"
|
|
enabled: "{{ cinder_backend_vmware_vstorage_object | bool }}"
|
|
- name: "{{ cinder_backend_quobyte_name }}"
|
|
enabled: "{{ enable_cinder_backend_quobyte | bool }}"
|
|
- name: "{{ cinder_backend_pure_iscsi_name }}"
|
|
enabled: "{{ enable_cinder_backend_pure_iscsi | bool }}"
|
|
- name: "{{ cinder_backend_pure_fc_name }}"
|
|
enabled: "{{ enable_cinder_backend_pure_fc | bool }}"
|
|
- name: "{{ cinder_backend_pure_roce_name }}"
|
|
enabled: "{{ enable_cinder_backend_pure_roce | bool }}"
|
|
|
|
cinder_backend_ceph_name: "rbd-1"
|
|
cinder_backend_lvm_name: "lvm-1"
|
|
cinder_backend_nfs_name: "nfs-1"
|
|
cinder_backend_hnas_nfs_name: "hnas-nfs"
|
|
cinder_backend_vmwarevc_vmdk_name: "vmwarevc-vmdk"
|
|
cinder_backend_vmware_vstorage_object_name: "vmware-vstorage-object"
|
|
cinder_backend_quobyte_name: "QuobyteHD"
|
|
cinder_backend_pure_iscsi_name: "Pure-FlashArray-iscsi"
|
|
cinder_backend_pure_fc_name: "Pure-FlashArray-fc"
|
|
cinder_backend_pure_roce_name: "Pure-FlashArray-roce"
|
|
|
|
skip_cinder_backend_check: False
|
|
|
|
cinder_enabled_backends: "{{ cinder_backends | selectattr('enabled', 'equalto', true) | list }}"
|
|
|
|
####################
|
|
# Notification
|
|
####################
|
|
cinder_notification_topics:
|
|
- name: notifications
|
|
enabled: "{{ enable_ceilometer | bool }}"
|
|
- name: vitrage_notifications
|
|
enabled: "{{ enable_vitrage | bool }}"
|
|
|
|
cinder_enabled_notification_topics: "{{ cinder_notification_topics | selectattr('enabled', 'equalto', true) | list }}"
|
|
|
|
##################################
|
|
# Hitachi NAS Platform NFS drivers
|
|
##################################
|
|
# nfs
|
|
hnas_nfs_backend: "hnas_nfs_backend"
|
|
hnas_nfs_username:
|
|
hnas_nfs_mgmt_ip0:
|
|
hnas_nfs_svc0_volume_type:
|
|
hnas_nfs_svc0_hdp:
|
|
|
|
#########################
|
|
# Quobyte Storage Driver
|
|
#########################
|
|
quobyte_storage_host:
|
|
quobyte_storage_volume:
|
|
|
|
|
|
################################
|
|
# Pure FlashArray Storage Driver
|
|
################################
|
|
pure_iscsi_backend: "pure_iscsi_backend"
|
|
pure_fc_backend: "pure_fc_backend"
|
|
pure_api_token:
|
|
pure_san_ip:
|
|
|
|
####################
|
|
# Kolla
|
|
####################
|
|
cinder_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
|
|
cinder_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
|
|
cinder_dev_mode: "{{ kolla_dev_mode }}"
|
|
cinder_source_version: "{{ kolla_source_version }}"
|
|
|
|
####################
|
|
# Keystone
|
|
####################
|
|
cinder_ks_services:
|
|
- name: "cinderv3"
|
|
type: "volumev3"
|
|
description: "Openstack Block Storage"
|
|
endpoints:
|
|
- {'interface': 'internal', 'url': '{{ cinder_v3_internal_endpoint }}'}
|
|
- {'interface': 'public', 'url': '{{ cinder_v3_public_endpoint }}'}
|
|
|
|
cinder_ks_users:
|
|
- project: "service"
|
|
user: "{{ cinder_keystone_user }}"
|
|
password: "{{ cinder_keystone_password }}"
|
|
role: "admin"
|
|
|
|
####################
|
|
# TLS
|
|
####################
|
|
cinder_enable_tls_backend: "{{ kolla_enable_tls_backend }}"
|