c52a89ae04
This change enables the use of Docker healthchecks for core OpenStack services. Also check-failures.sh has been updated to treat containers with unhealthy status as failed. Implements: blueprint container-health-check Change-Id: I79c6b11511ce8af70f77e2f6a490b59b477fefbb
264 lines
11 KiB
YAML
264 lines
11 KiB
YAML
---
|
|
project_name: "glance"
|
|
|
|
glance_services:
|
|
glance-api:
|
|
container_name: glance_api
|
|
group: glance-api
|
|
host_in_groups: "{{ inventory_hostname in glance_api_hosts }}"
|
|
enabled: true
|
|
image: "{{ glance_api_image_full }}"
|
|
environment: "{{ glance_api_container_proxy }}"
|
|
privileged: "{{ enable_cinder | bool and enable_cinder_backend_iscsi | bool }}"
|
|
volumes: "{{ glance_api_default_volumes + glance_api_extra_volumes }}"
|
|
dimensions: "{{ glance_api_dimensions }}"
|
|
healthcheck: "{{ glance_api_healthcheck }}"
|
|
haproxy:
|
|
glance_api:
|
|
enabled: "{{ enable_glance | bool and not glance_enable_tls_backend | bool }}"
|
|
mode: "http"
|
|
external: false
|
|
port: "{{ glance_api_port }}"
|
|
frontend_http_extra:
|
|
- "timeout client {{ haproxy_glance_api_client_timeout }}"
|
|
backend_http_extra:
|
|
- "timeout server {{ haproxy_glance_api_server_timeout }}"
|
|
custom_member_list: "{{ haproxy_members.split(';') }}"
|
|
glance_api_external:
|
|
enabled: "{{ enable_glance | bool and not glance_enable_tls_backend | bool }}"
|
|
mode: "http"
|
|
external: true
|
|
port: "{{ glance_api_port }}"
|
|
frontend_http_extra:
|
|
- "timeout client {{ haproxy_glance_api_client_timeout }}"
|
|
backend_http_extra:
|
|
- "timeout server {{ haproxy_glance_api_server_timeout }}"
|
|
custom_member_list: "{{ haproxy_members.split(';') }}"
|
|
glance-tls-proxy:
|
|
container_name: glance_tls_proxy
|
|
group: glance-api
|
|
host_in_groups: "{{ inventory_hostname in glance_api_hosts }}"
|
|
enabled: "{{ glance_enable_tls_backend }}"
|
|
image: "{{ glance_tls_proxy_image_full }}"
|
|
volumes: "{{ glance_tls_proxy_default_volumes + glance_tls_proxy_extra_volumes }}"
|
|
dimensions: "{{ glance_tls_proxy_dimensions }}"
|
|
healthcheck: "{{ glance_tls_proxy_healthcheck }}"
|
|
haproxy:
|
|
glance_tls_proxy:
|
|
enabled: "{{ enable_glance | bool and glance_enable_tls_backend | bool }}"
|
|
mode: "http"
|
|
external: false
|
|
port: "{{ glance_api_port }}"
|
|
frontend_http_extra:
|
|
- "timeout client {{ haproxy_glance_api_client_timeout }}"
|
|
backend_http_extra:
|
|
- "timeout server {{ haproxy_glance_api_server_timeout }}"
|
|
custom_member_list: "{{ haproxy_tls_members.split(';') }}"
|
|
tls_backend: "yes"
|
|
glance_tls_proxy_external:
|
|
enabled: "{{ enable_glance | bool and glance_enable_tls_backend | bool }}"
|
|
mode: "http"
|
|
external: true
|
|
port: "{{ glance_api_port }}"
|
|
frontend_http_extra:
|
|
- "timeout client {{ haproxy_glance_api_client_timeout }}"
|
|
backend_http_extra:
|
|
- "timeout server {{ haproxy_glance_api_server_timeout }}"
|
|
custom_member_list: "{{ haproxy_tls_members.split(';') }}"
|
|
tls_backend: "yes"
|
|
|
|
####################
|
|
# HAProxy
|
|
####################
|
|
haproxy_members: "{% for host in glance_api_hosts %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ glance_api_listen_port }} check inter 2000 rise 2 fall 5;{% endfor %}"
|
|
haproxy_tls_members: "{% for host in glance_api_hosts %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ glance_api_listen_port }} check inter 2000 rise 2 fall 5 ssl verify required ca-file {{ haproxy_backend_cacert }};{% endfor %}"
|
|
|
|
####################
|
|
# Keystone
|
|
####################
|
|
glance_ks_services:
|
|
- name: "glance"
|
|
type: "image"
|
|
description: "Openstack Image"
|
|
endpoints:
|
|
- {'interface': 'admin', 'url': '{{ glance_admin_endpoint }}'}
|
|
- {'interface': 'internal', 'url': '{{ glance_internal_endpoint }}'}
|
|
- {'interface': 'public', 'url': '{{ glance_public_endpoint }}'}
|
|
|
|
glance_ks_users:
|
|
- project: "service"
|
|
user: "{{ glance_keystone_user }}"
|
|
password: "{{ glance_keystone_password }}"
|
|
role: "admin"
|
|
|
|
####################
|
|
# Notification
|
|
####################
|
|
glance_notification_topics:
|
|
- name: notifications
|
|
enabled: "{{ enable_ceilometer | bool or enable_searchlight | bool }}"
|
|
|
|
glance_enabled_notification_topics: "{{ glance_notification_topics | selectattr('enabled', 'equalto', true) | list }}"
|
|
|
|
####################
|
|
# Database
|
|
####################
|
|
glance_database_name: "glance"
|
|
glance_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}glance{% endif %}"
|
|
glance_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
|
|
|
|
|
####################
|
|
# HAProxy
|
|
####################
|
|
haproxy_glance_api_client_timeout: "6h"
|
|
haproxy_glance_api_server_timeout: "6h"
|
|
|
|
|
|
####################
|
|
# Docker
|
|
####################
|
|
glance_install_type: "{{ kolla_install_type }}"
|
|
glance_tag: "{{ openstack_tag }}"
|
|
|
|
glance_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ glance_install_type }}-glance-api"
|
|
glance_api_tag: "{{ glance_tag }}"
|
|
glance_api_image_full: "{{ glance_api_image }}:{{ glance_api_tag }}"
|
|
|
|
glance_tls_proxy_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ glance_install_type }}-haproxy"
|
|
glance_tls_proxy_tag: "{{ glance_tag }}"
|
|
glance_tls_proxy_image_full: "{{ glance_tls_proxy_image }}:{{ glance_tls_proxy_tag }}"
|
|
|
|
glance_api_dimensions: "{{ default_container_dimensions }}"
|
|
glance_tls_proxy_dimensions: "{{ default_container_dimensions }}"
|
|
|
|
glance_api_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
glance_api_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
glance_api_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
glance_api_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
glance_api_healthcheck_test: ["CMD-SHELL", "healthcheck_curl http://{% if glance_enable_tls_backend | bool %}localhost{% else %}{{ api_interface_address | put_address_in_context('url') }}{% endif %}:{{ glance_api_listen_port }}"]
|
|
glance_api_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
glance_api_healthcheck:
|
|
interval: "{{ glance_api_healthcheck_interval }}"
|
|
retries: "{{ glance_api_healthcheck_retries }}"
|
|
start_period: "{{ glance_api_healthcheck_start_period }}"
|
|
test: "{% if glance_api_enable_healthchecks | bool %}{{ glance_api_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ glance_api_healthcheck_timeout }}"
|
|
|
|
glance_tls_proxy_enable_healthchecks: "{{ enable_container_healthchecks }}"
|
|
glance_tls_proxy_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
|
|
glance_tls_proxy_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
|
|
glance_tls_proxy_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
|
|
glance_tls_proxy_healthcheck_test: ["CMD-SHELL", "healthcheck_curl -u {{ haproxy_user }}:{{ haproxy_password }} {{ api_interface_address | put_address_in_context('url') }}:{{ glance_tls_proxy_stats_port }}"]
|
|
glance_tls_proxy_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
|
|
glance_tls_proxy_healthcheck:
|
|
interval: "{{ glance_tls_proxy_healthcheck_interval }}"
|
|
retries: "{{ glance_tls_proxy_healthcheck_retries }}"
|
|
start_period: "{{ glance_tls_proxy_healthcheck_start_period }}"
|
|
test: "{% if glance_tls_proxy_enable_healthchecks | bool %}{{ glance_tls_proxy_healthcheck_test }}{% else %}NONE{% endif %}"
|
|
timeout: "{{ glance_tls_proxy_healthcheck_timeout }}"
|
|
|
|
glance_api_default_volumes:
|
|
- "{{ node_config_directory }}/glance-api/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
|
|
- "{{ glance_file_datadir_volume }}:/var/lib/glance/"
|
|
- "{{ kolla_dev_repos_directory ~ '/glance/glance:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/glance' if glance_dev_mode | bool else '' }}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
# NOTE(yoctozepto): below to support Cinder iSCSI backends
|
|
- "{% if enable_cinder | bool and enable_cinder_backend_iscsi | bool %}iscsi_info:/etc/iscsi{% endif %}"
|
|
- "{% if enable_cinder | bool and enable_cinder_backend_iscsi | bool %}/dev:/dev{% endif %}"
|
|
glance_tls_proxy_default_volumes:
|
|
- "{{ node_config_directory }}/glance-tls-proxy/:{{ container_config_directory }}/:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
|
|
- "kolla_logs:/var/log/kolla/"
|
|
|
|
glance_extra_volumes: "{{ default_extra_volumes }}"
|
|
glance_api_extra_volumes: "{{ glance_extra_volumes }}"
|
|
glance_tls_proxy_extra_volumes: "{{ glance_extra_volumes }}"
|
|
|
|
glance_api_container_proxy: "{{ container_proxy }}"
|
|
|
|
####################
|
|
# Glance
|
|
####################
|
|
glance_backends:
|
|
- name: file
|
|
type: file
|
|
enabled: "{{ glance_backend_file | bool }}"
|
|
- name: http
|
|
type: http
|
|
enabled: true
|
|
- name: rbd
|
|
type: rbd
|
|
enabled: "{{ glance_backend_ceph | bool }}"
|
|
- name: vmware
|
|
type: vmware
|
|
enabled: "{{ glance_backend_vmware | bool }}"
|
|
- name: cinder
|
|
type: cinder
|
|
enabled: "{{ enable_cinder | bool }}"
|
|
- name: swift
|
|
type: swift
|
|
enabled: "{{ glance_backend_swift | bool }}"
|
|
|
|
glance_store_backends: "{{ glance_backends|selectattr('enabled', 'equalto', true)|list }}"
|
|
|
|
####################
|
|
# OpenStack
|
|
####################
|
|
|
|
glance_admin_endpoint: "{{ admin_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
|
glance_internal_endpoint: "{{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
|
glance_public_endpoint: "{{ public_protocol }}://{{ glance_external_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
|
|
|
glance_logging_debug: "{{ openstack_logging_debug }}"
|
|
|
|
glance_keystone_user: "glance"
|
|
|
|
openstack_glance_auth: "{{ openstack_auth }}"
|
|
|
|
###################
|
|
# Kolla
|
|
###################
|
|
glance_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
|
|
glance_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
|
|
glance_dev_mode: "{{ kolla_dev_mode }}"
|
|
glance_source_version: "{{ kolla_source_version }}"
|
|
|
|
################################################
|
|
# VMware - OpenStack VMware support
|
|
################################################
|
|
vmware_vcenter_name:
|
|
vmware_datastore_name:
|
|
|
|
###################
|
|
# Glance cache
|
|
###################
|
|
# Default maximum size of 10Gb
|
|
glance_cache_max_size: "10737418240"
|
|
|
|
####################
|
|
# Backend TLS proxy
|
|
####################
|
|
syslog_server: "{{ api_interface_address }}"
|
|
syslog_glance_tls_proxy_facility: "local2"
|
|
|
|
glance_tls_proxy_max_connections: 40000
|
|
glance_tls_proxy_processes: 1
|
|
glance_tls_proxy_process_cpu_map: "no"
|
|
glance_tls_proxy_defaults_max_connections: 10000
|
|
|
|
# Glance TLS proxy timeout values
|
|
glance_tls_proxy_http_request_timeout: "10s"
|
|
glance_tls_proxy_http_keep_alive_timeout: "10s"
|
|
glance_tls_proxy_queue_timeout: "1m"
|
|
glance_tls_proxy_connect_timeout: "10s"
|
|
glance_tls_proxy_client_timeout: "{{ haproxy_glance_api_client_timeout}}"
|
|
glance_tls_proxy_server_timeout: "{{ haproxy_glance_api_server_timeout }}"
|
|
glance_tls_proxy_check_timeout: "10s"
|
|
|
|
# Check http://www.haproxy.org/download/1.5/doc/configuration.txt for available options
|
|
glance_tls_proxy_defaults_balance: "roundrobin"
|