Remove retired Qinling support
Qinling project is retiring in Wallaby cycle[1]. This commit removes the ansible roles of Qinling project before its code is removed. Needed-By: https://review.opendev.org/c/openstack/qinling/+/764521 [1] http://lists.openstack.org/pipermail/openstack-discuss/2020-November/018638.html Change-Id: I6543bacff638b1649511f7e779807954c34ef570
This commit is contained in:
parent
860c32de76
commit
dafde93fe2
@ -66,7 +66,6 @@ Kolla-Ansible deploys containers for the following OpenStack projects:
|
|||||||
- `Nova <https://docs.openstack.org/nova/latest/>`__
|
- `Nova <https://docs.openstack.org/nova/latest/>`__
|
||||||
- `Octavia <https://docs.openstack.org/octavia/latest/>`__
|
- `Octavia <https://docs.openstack.org/octavia/latest/>`__
|
||||||
- `Panko <https://docs.openstack.org/panko/latest/>`__
|
- `Panko <https://docs.openstack.org/panko/latest/>`__
|
||||||
- `Qinling <https://docs.openstack.org/qinling/latest/>`__
|
|
||||||
- `Rally <https://docs.openstack.org/rally/latest/>`__
|
- `Rally <https://docs.openstack.org/rally/latest/>`__
|
||||||
- `Sahara <https://docs.openstack.org/sahara/latest/>`__
|
- `Sahara <https://docs.openstack.org/sahara/latest/>`__
|
||||||
- `Searchlight <https://docs.openstack.org/searchlight/latest/>`__
|
- `Searchlight <https://docs.openstack.org/searchlight/latest/>`__
|
||||||
|
@ -446,8 +446,6 @@ prometheus_blackbox_exporter_port: "9115"
|
|||||||
|
|
||||||
qdrouterd_port: "31459"
|
qdrouterd_port: "31459"
|
||||||
|
|
||||||
qinling_api_port: "7070"
|
|
||||||
|
|
||||||
rabbitmq_port: "{{ '5671' if rabbitmq_enable_tls | bool else '5672' }}"
|
rabbitmq_port: "{{ '5671' if rabbitmq_enable_tls | bool else '5672' }}"
|
||||||
rabbitmq_management_port: "15672"
|
rabbitmq_management_port: "15672"
|
||||||
rabbitmq_cluster_port: "25672"
|
rabbitmq_cluster_port: "25672"
|
||||||
@ -617,7 +615,6 @@ enable_horizon_monasca: "{{ enable_monasca | bool }}"
|
|||||||
enable_horizon_murano: "{{ enable_murano | bool }}"
|
enable_horizon_murano: "{{ enable_murano | bool }}"
|
||||||
enable_horizon_neutron_vpnaas: "{{ enable_neutron_vpnaas | bool }}"
|
enable_horizon_neutron_vpnaas: "{{ enable_neutron_vpnaas | bool }}"
|
||||||
enable_horizon_octavia: "{{ enable_octavia | bool }}"
|
enable_horizon_octavia: "{{ enable_octavia | bool }}"
|
||||||
enable_horizon_qinling: "{{ enable_qinling | bool }}"
|
|
||||||
enable_horizon_sahara: "{{ enable_sahara | bool }}"
|
enable_horizon_sahara: "{{ enable_sahara | bool }}"
|
||||||
enable_horizon_searchlight: "{{ enable_searchlight | bool }}"
|
enable_horizon_searchlight: "{{ enable_searchlight | bool }}"
|
||||||
enable_horizon_senlin: "{{ enable_senlin | bool }}"
|
enable_horizon_senlin: "{{ enable_senlin | bool }}"
|
||||||
@ -674,7 +671,6 @@ enable_panko: "no"
|
|||||||
enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"
|
enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"
|
||||||
enable_prometheus: "no"
|
enable_prometheus: "no"
|
||||||
enable_qdrouterd: "{{ 'yes' if om_rpc_transport == 'amqp' else 'no' }}"
|
enable_qdrouterd: "{{ 'yes' if om_rpc_transport == 'amqp' else 'no' }}"
|
||||||
enable_qinling: "no"
|
|
||||||
enable_rally: "no"
|
enable_rally: "no"
|
||||||
enable_redis: "no"
|
enable_redis: "no"
|
||||||
enable_sahara: "no"
|
enable_sahara: "no"
|
||||||
@ -1022,12 +1018,6 @@ enable_nova_horizon_policy_file: "{{ enable_nova }}"
|
|||||||
|
|
||||||
horizon_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ horizon_tls_port if kolla_enable_tls_internal | bool else horizon_port }}"
|
horizon_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ horizon_tls_port if kolla_enable_tls_internal | bool else horizon_port }}"
|
||||||
|
|
||||||
#################
|
|
||||||
# Qinling options
|
|
||||||
#################
|
|
||||||
# Configure qinling-engine certificates to authenticate with Kubernetes cluster.
|
|
||||||
qinling_kubernetes_certificates: "no"
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# External Ceph options
|
# External Ceph options
|
||||||
###################
|
###################
|
||||||
|
@ -156,9 +156,6 @@ monitoring
|
|||||||
[magnum:children]
|
[magnum:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
[qinling:children]
|
|
||||||
control
|
|
||||||
|
|
||||||
[sahara:children]
|
[sahara:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
@ -496,13 +493,6 @@ magnum
|
|||||||
[magnum-conductor:children]
|
[magnum-conductor:children]
|
||||||
magnum
|
magnum
|
||||||
|
|
||||||
# Qinling
|
|
||||||
[qinling-api:children]
|
|
||||||
qinling
|
|
||||||
|
|
||||||
[qinling-engine:children]
|
|
||||||
qinling
|
|
||||||
|
|
||||||
# Solum
|
# Solum
|
||||||
[solum-api:children]
|
[solum-api:children]
|
||||||
solum
|
solum
|
||||||
|
@ -177,9 +177,6 @@ control
|
|||||||
[magnum:children]
|
[magnum:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
[qinling:children]
|
|
||||||
control
|
|
||||||
|
|
||||||
[sahara:children]
|
[sahara:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
@ -504,13 +501,6 @@ magnum
|
|||||||
[magnum-conductor:children]
|
[magnum-conductor:children]
|
||||||
magnum
|
magnum
|
||||||
|
|
||||||
# Qinling
|
|
||||||
[qinling-api:children]
|
|
||||||
qinling
|
|
||||||
|
|
||||||
[qinling-engine:children]
|
|
||||||
qinling
|
|
||||||
|
|
||||||
# Sahara
|
# Sahara
|
||||||
[sahara-api:children]
|
[sahara-api:children]
|
||||||
sahara
|
sahara
|
||||||
|
@ -162,8 +162,6 @@ fluentd_input_openstack_services:
|
|||||||
enabled: "{{ enable_octavia | bool }}"
|
enabled: "{{ enable_octavia | bool }}"
|
||||||
- name: panko
|
- name: panko
|
||||||
enabled: "{{ enable_panko | bool }}"
|
enabled: "{{ enable_panko | bool }}"
|
||||||
- name: qinling
|
|
||||||
enabled: "{{ enable_qinling | bool }}"
|
|
||||||
- name: rally
|
- name: rally
|
||||||
enabled: "{{ enable_rally | bool }}"
|
enabled: "{{ enable_rally | bool }}"
|
||||||
- name: sahara
|
- name: sahara
|
||||||
|
@ -209,7 +209,6 @@
|
|||||||
- { name: "octavia", enabled: "{{ enable_octavia | bool }}" }
|
- { name: "octavia", enabled: "{{ enable_octavia | bool }}" }
|
||||||
- { name: "outward-rabbitmq", enabled: "{{ enable_outward_rabbitmq | bool }}" }
|
- { name: "outward-rabbitmq", enabled: "{{ enable_outward_rabbitmq | bool }}" }
|
||||||
- { name: "panko", enabled: "{{ enable_panko | bool }}" }
|
- { name: "panko", enabled: "{{ enable_panko | bool }}" }
|
||||||
- { name: "qinling", enabled: "{{ enable_qinling | bool }}" }
|
|
||||||
- { name: "rabbitmq", enabled: "{{ enable_rabbitmq | bool }}" }
|
- { name: "rabbitmq", enabled: "{{ enable_rabbitmq | bool }}" }
|
||||||
- { name: "rally", enabled: "{{ enable_rally | bool }}" }
|
- { name: "rally", enabled: "{{ enable_rally | bool }}" }
|
||||||
- { name: "sahara", enabled: "{{ enable_sahara | bool }}" }
|
- { name: "sahara", enabled: "{{ enable_sahara | bool }}" }
|
||||||
|
@ -161,11 +161,6 @@
|
|||||||
pattern ^(blazar-api|blazar-manager)$
|
pattern ^(blazar-api|blazar-manager)$
|
||||||
tag openstack_python
|
tag openstack_python
|
||||||
</rule>
|
</rule>
|
||||||
<rule>
|
|
||||||
key programname
|
|
||||||
pattern ^(qinling-engine|qinling-api)$
|
|
||||||
tag openstack_python
|
|
||||||
</rule>
|
|
||||||
<rule>
|
<rule>
|
||||||
key programname
|
key programname
|
||||||
pattern ^(monasca-api|monasca-notification|monasca-persister|agent-collector|agent-forwarder|agent-statsd)$
|
pattern ^(monasca-api|monasca-notification|monasca-persister|agent-collector|agent-forwarder|agent-statsd)$
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
"/var/log/kolla/qinling/*.log"
|
|
||||||
{
|
|
||||||
}
|
|
@ -729,19 +729,6 @@
|
|||||||
- haproxy_stat.find('panko_api') == -1
|
- haproxy_stat.find('panko_api') == -1
|
||||||
- haproxy_vip_prechecks
|
- haproxy_vip_prechecks
|
||||||
|
|
||||||
- name: Checking free port for Qinling API HAProxy
|
|
||||||
wait_for:
|
|
||||||
host: "{{ kolla_internal_vip_address }}"
|
|
||||||
port: "{{ qinling_api_port }}"
|
|
||||||
connect_timeout: 1
|
|
||||||
timeout: 1
|
|
||||||
state: stopped
|
|
||||||
when:
|
|
||||||
- enable_qinling | bool
|
|
||||||
- inventory_hostname in groups['haproxy']
|
|
||||||
- haproxy_stat.find('qinling_api') == -1
|
|
||||||
- haproxy_vip_prechecks
|
|
||||||
|
|
||||||
- name: Checking free port for RabbitMQ Management HAProxy
|
- name: Checking free port for RabbitMQ Management HAProxy
|
||||||
wait_for:
|
wait_for:
|
||||||
host: "{{ kolla_internal_vip_address }}"
|
host: "{{ kolla_internal_vip_address }}"
|
||||||
|
@ -23,7 +23,6 @@ horizon_services:
|
|||||||
ENABLE_MURANO: "{{ 'yes' if enable_horizon_murano | bool else 'no' }}"
|
ENABLE_MURANO: "{{ 'yes' if enable_horizon_murano | bool else 'no' }}"
|
||||||
ENABLE_NEUTRON_VPNAAS: "{{ 'yes' if enable_horizon_neutron_vpnaas | bool else 'no' }}"
|
ENABLE_NEUTRON_VPNAAS: "{{ 'yes' if enable_horizon_neutron_vpnaas | bool else 'no' }}"
|
||||||
ENABLE_OCTAVIA: "{{ 'yes' if enable_horizon_octavia | bool else 'no' }}"
|
ENABLE_OCTAVIA: "{{ 'yes' if enable_horizon_octavia | bool else 'no' }}"
|
||||||
ENABLE_QINLING: "{{ 'yes' if enable_horizon_qinling | bool else 'no' }}"
|
|
||||||
ENABLE_SAHARA: "{{ 'yes' if enable_horizon_sahara | bool else 'no' }}"
|
ENABLE_SAHARA: "{{ 'yes' if enable_horizon_sahara | bool else 'no' }}"
|
||||||
ENABLE_SEARCHLIGHT: "{{ 'yes' if enable_horizon_searchlight | bool else 'no' }}"
|
ENABLE_SEARCHLIGHT: "{{ 'yes' if enable_horizon_searchlight | bool else 'no' }}"
|
||||||
ENABLE_SENLIN: "{{ 'yes' if enable_horizon_senlin | bool else 'no' }}"
|
ENABLE_SENLIN: "{{ 'yes' if enable_horizon_senlin | bool else 'no' }}"
|
||||||
|
@ -40,7 +40,6 @@
|
|||||||
- { name: "neutron", enabled: "{{ enable_neutron_horizon_policy_file }}" }
|
- { name: "neutron", enabled: "{{ enable_neutron_horizon_policy_file }}" }
|
||||||
- { name: "nova", enabled: "{{ enable_nova_horizon_policy_file }}" }
|
- { name: "nova", enabled: "{{ enable_nova_horizon_policy_file }}" }
|
||||||
- { name: "octavia", enabled: "{{ enable_horizon_octavia }}" }
|
- { name: "octavia", enabled: "{{ enable_horizon_octavia }}" }
|
||||||
- { name: "qinling", enabled: "{{ enable_horizon_qinling }}" }
|
|
||||||
- { name: "sahara", enabled: "{{ enable_horizon_sahara }}" }
|
- { name: "sahara", enabled: "{{ enable_horizon_sahara }}" }
|
||||||
- { name: "searchlight", enabled: "{{ enable_horizon_searchlight }}" }
|
- { name: "searchlight", enabled: "{{ enable_horizon_searchlight }}" }
|
||||||
- { name: "senlin", enabled: "{{ enable_horizon_senlin }}" }
|
- { name: "senlin", enabled: "{{ enable_horizon_senlin }}" }
|
||||||
|
@ -1,113 +0,0 @@
|
|||||||
---
|
|
||||||
project_name: "qinling"
|
|
||||||
|
|
||||||
qinling_services:
|
|
||||||
qinling-api:
|
|
||||||
container_name: qinling_api
|
|
||||||
group: qinling-api
|
|
||||||
enabled: true
|
|
||||||
image: "{{ qinling_api_image_full }}"
|
|
||||||
volumes: "{{ qinling_api_default_volumes + qinling_api_extra_volumes }}"
|
|
||||||
dimensions: "{{ qinling_api_dimensions }}"
|
|
||||||
haproxy:
|
|
||||||
qinling_api:
|
|
||||||
enabled: "{{ enable_qinling }}"
|
|
||||||
mode: "http"
|
|
||||||
external: false
|
|
||||||
port: "{{ qinling_api_port }}"
|
|
||||||
qinling_api_external:
|
|
||||||
enabled: "{{ enable_qinling }}"
|
|
||||||
mode: "http"
|
|
||||||
external: true
|
|
||||||
port: "{{ qinling_api_port }}"
|
|
||||||
qinling-engine:
|
|
||||||
container_name: qinling_engine
|
|
||||||
group: qinling-engine
|
|
||||||
enabled: true
|
|
||||||
image: "{{ qinling_engine_image_full }}"
|
|
||||||
volumes: "{{ qinling_engine_default_volumes + qinling_engine_extra_volumes }}"
|
|
||||||
dimensions: "{{ qinling_engine_dimensions }}"
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Database
|
|
||||||
####################
|
|
||||||
qinling_database_name: "qinling"
|
|
||||||
qinling_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}qinling{% endif %}"
|
|
||||||
qinling_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Docker
|
|
||||||
####################
|
|
||||||
qinling_install_type: "{{ kolla_install_type }}"
|
|
||||||
qinling_tag: "{{ openstack_tag }}"
|
|
||||||
|
|
||||||
qinling_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ qinling_install_type }}-qinling-api"
|
|
||||||
qinling_api_tag: "{{ qinling_tag }}"
|
|
||||||
qinling_api_image_full: "{{ qinling_api_image }}:{{ qinling_api_tag }}"
|
|
||||||
|
|
||||||
qinling_engine_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ qinling_install_type }}-qinling-engine"
|
|
||||||
qinling_engine_tag: "{{ qinling_tag }}"
|
|
||||||
qinling_engine_image_full: "{{ qinling_engine_image }}:{{ qinling_engine_tag }}"
|
|
||||||
|
|
||||||
qinling_api_dimensions: "{{ default_container_dimensions }}"
|
|
||||||
qinling_engine_dimensions: "{{ default_container_dimensions }}"
|
|
||||||
|
|
||||||
qinling_api_default_volumes:
|
|
||||||
- "{{ node_config_directory }}/qinling-api/:{{ container_config_directory }}/:ro"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
|
|
||||||
- "{{ kolla_dev_repos_directory ~ '/qinling/qinling:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/qinling' if qinling_dev_mode | bool else '' }}"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
qinling_engine_default_volumes:
|
|
||||||
- "{{ node_config_directory }}/qinling-engine/:{{ container_config_directory }}/:ro"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
- "{{ '/etc/timezone:/etc/timezone:ro' if ansible_os_family == 'Debian' else '' }}"
|
|
||||||
- "qinling:/var/lib/qinling/"
|
|
||||||
- "{{ kolla_dev_repos_directory ~ '/qinling/qinling:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/qinling' if qinling_dev_mode | bool else '' }}"
|
|
||||||
- "kolla_logs:/var/log/kolla/"
|
|
||||||
|
|
||||||
qinling_extra_volumes: "{{ default_extra_volumes }}"
|
|
||||||
qinling_api_extra_volumes: "{{ qinling_extra_volumes }}"
|
|
||||||
qinling_engine_extra_volumes: "{{ qinling_extra_volumes }}"
|
|
||||||
|
|
||||||
####################
|
|
||||||
# OpenStack
|
|
||||||
####################
|
|
||||||
qinling_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ qinling_api_port }}"
|
|
||||||
qinling_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ qinling_api_port }}"
|
|
||||||
qinling_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ qinling_api_port }}"
|
|
||||||
|
|
||||||
qinling_logging_debug: "{{ openstack_logging_debug }}"
|
|
||||||
|
|
||||||
qinling_keystone_user: "qinling"
|
|
||||||
|
|
||||||
openstack_qinling_auth: "{{ openstack_auth }}"
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Kolla
|
|
||||||
####################
|
|
||||||
qinling_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
|
|
||||||
qinling_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
|
|
||||||
qinling_dev_mode: "{{ kolla_dev_mode }}"
|
|
||||||
qinling_source_version: "{{ kolla_source_version }}"
|
|
||||||
|
|
||||||
####################
|
|
||||||
# Keystone
|
|
||||||
####################
|
|
||||||
qinling_ks_services:
|
|
||||||
- name: "qinling"
|
|
||||||
type: "function-engine"
|
|
||||||
description: "Function Service"
|
|
||||||
endpoints:
|
|
||||||
- {'interface': 'admin', 'url': '{{ qinling_admin_endpoint }}'}
|
|
||||||
- {'interface': 'internal', 'url': '{{ qinling_internal_endpoint }}'}
|
|
||||||
- {'interface': 'public', 'url': '{{ qinling_public_endpoint }}'}
|
|
||||||
|
|
||||||
qinling_ks_users:
|
|
||||||
- project: "service"
|
|
||||||
user: "{{ qinling_keystone_user }}"
|
|
||||||
password: "{{ qinling_keystone_password }}"
|
|
||||||
role: "admin"
|
|
@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Restart qinling-api container
|
|
||||||
vars:
|
|
||||||
service_name: "qinling-api"
|
|
||||||
service: "{{ qinling_services[service_name] }}"
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "recreate_or_restart_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "{{ service.container_name }}"
|
|
||||||
image: "{{ service.image }}"
|
|
||||||
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
|
||||||
dimensions: "{{ service.dimensions }}"
|
|
||||||
when:
|
|
||||||
- kolla_action != "config"
|
|
||||||
|
|
||||||
- name: Restart qinling-engine container
|
|
||||||
vars:
|
|
||||||
service_name: "qinling-engine"
|
|
||||||
service: "{{ qinling_services[service_name] }}"
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "recreate_or_restart_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "{{ service.container_name }}"
|
|
||||||
image: "{{ service.image }}"
|
|
||||||
volumes: "{{ service.volumes|reject('equalto', '')|list }}"
|
|
||||||
dimensions: "{{ service.dimensions }}"
|
|
||||||
when:
|
|
||||||
- kolla_action != "config"
|
|
@ -1,36 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Creating Qinling database
|
|
||||||
become: true
|
|
||||||
kolla_toolbox:
|
|
||||||
module_name: mysql_db
|
|
||||||
module_args:
|
|
||||||
login_host: "{{ database_address }}"
|
|
||||||
login_port: "{{ database_port }}"
|
|
||||||
login_user: "{{ database_user }}"
|
|
||||||
login_password: "{{ database_password }}"
|
|
||||||
name: "{{ qinling_database_name }}"
|
|
||||||
run_once: True
|
|
||||||
delegate_to: "{{ groups['qinling-api'][0] }}"
|
|
||||||
when:
|
|
||||||
- not use_preconfigured_databases | bool
|
|
||||||
|
|
||||||
- name: Creating Qinling database user and setting permissions
|
|
||||||
become: true
|
|
||||||
kolla_toolbox:
|
|
||||||
module_name: mysql_user
|
|
||||||
module_args:
|
|
||||||
login_host: "{{ database_address }}"
|
|
||||||
login_port: "{{ database_port }}"
|
|
||||||
login_user: "{{ database_user }}"
|
|
||||||
login_password: "{{ database_password }}"
|
|
||||||
name: "{{ qinling_database_user }}"
|
|
||||||
password: "{{ qinling_database_password }}"
|
|
||||||
host: "%"
|
|
||||||
priv: "{{ qinling_database_name }}.*:ALL"
|
|
||||||
append_privs: "yes"
|
|
||||||
run_once: True
|
|
||||||
delegate_to: "{{ groups['qinling-api'][0] }}"
|
|
||||||
when:
|
|
||||||
- not use_preconfigured_databases | bool
|
|
||||||
|
|
||||||
- import_tasks: bootstrap_service.yml
|
|
@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Running Qinling bootstrap container
|
|
||||||
vars:
|
|
||||||
qinling_api: "{{ qinling_services['qinling-api'] }}"
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "start_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
detach: False
|
|
||||||
environment:
|
|
||||||
KOLLA_BOOTSTRAP:
|
|
||||||
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
||||||
image: "{{ qinling_api.image }}"
|
|
||||||
labels:
|
|
||||||
BOOTSTRAP:
|
|
||||||
name: "bootstrap_qinling"
|
|
||||||
restart_policy: no
|
|
||||||
volumes: "{{ qinling_api.volumes|reject('equalto', '')|list }}"
|
|
||||||
run_once: True
|
|
||||||
delegate_to: "{{ groups[qinling_api.group][0] }}"
|
|
@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Check qinling containers
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "compare_container"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
name: "{{ item.value.container_name }}"
|
|
||||||
image: "{{ item.value.image }}"
|
|
||||||
volumes: "{{ item.value.volumes|reject('equalto', '')|list }}"
|
|
||||||
dimensions: "{{ item.value.dimensions }}"
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups[item.value.group]
|
|
||||||
- item.value.enabled | bool
|
|
||||||
with_dict: "{{ qinling_services }}"
|
|
||||||
notify:
|
|
||||||
- Restart {{ item.key }} container
|
|
@ -1 +0,0 @@
|
|||||||
---
|
|
@ -1,8 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Cloning qinling source repository for development
|
|
||||||
become: true
|
|
||||||
git:
|
|
||||||
repo: "{{ qinling_git_repository }}"
|
|
||||||
dest: "{{ kolla_dev_repos_directory }}/{{ project_name }}"
|
|
||||||
update: "{{ qinling_dev_repos_pull }}"
|
|
||||||
version: "{{ qinling_source_version }}"
|
|
@ -1,102 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensuring config directories exist
|
|
||||||
file:
|
|
||||||
path: "{{ node_config_directory }}/{{ item.key }}"
|
|
||||||
state: "directory"
|
|
||||||
owner: "{{ config_owner_user }}"
|
|
||||||
group: "{{ config_owner_group }}"
|
|
||||||
mode: "0770"
|
|
||||||
become: true
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups[item.value.group]
|
|
||||||
- item.value.enabled | bool
|
|
||||||
with_dict: "{{ qinling_services }}"
|
|
||||||
|
|
||||||
- include_tasks: external_kubernetes.yml
|
|
||||||
when:
|
|
||||||
- (enable_qinling | bool) and (qinling_kubernetes_certificates | bool)
|
|
||||||
- inventory_hostname in groups['qinling-engine']
|
|
||||||
|
|
||||||
- name: Check if policies shall be overwritten
|
|
||||||
stat:
|
|
||||||
path: "{{ item }}"
|
|
||||||
delegate_to: localhost
|
|
||||||
run_once: True
|
|
||||||
register: qinling_policy
|
|
||||||
with_first_found:
|
|
||||||
- files: "{{ supported_policy_format_list }}"
|
|
||||||
paths:
|
|
||||||
- "{{ node_custom_config }}/qinling/"
|
|
||||||
skip: true
|
|
||||||
|
|
||||||
- name: Set qinling policy file
|
|
||||||
set_fact:
|
|
||||||
qinling_policy_file: "{{ qinling_policy.results.0.stat.path | basename }}"
|
|
||||||
qinling_policy_file_path: "{{ qinling_policy.results.0.stat.path }}"
|
|
||||||
when:
|
|
||||||
- qinling_policy.results
|
|
||||||
|
|
||||||
- include_tasks: copy-certs.yml
|
|
||||||
when:
|
|
||||||
- kolla_copy_ca_into_containers | bool
|
|
||||||
|
|
||||||
- name: Copying over config.json files for services
|
|
||||||
template:
|
|
||||||
src: "{{ item.key }}.json.j2"
|
|
||||||
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
|
|
||||||
mode: "0660"
|
|
||||||
become: true
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups[item.value.group]
|
|
||||||
- item.value.enabled | bool
|
|
||||||
with_dict: "{{ qinling_services }}"
|
|
||||||
notify:
|
|
||||||
- Restart {{ item.key }} container
|
|
||||||
|
|
||||||
- name: Copying over qinling.conf
|
|
||||||
vars:
|
|
||||||
service_name: "{{ item.key }}"
|
|
||||||
merge_configs:
|
|
||||||
sources:
|
|
||||||
- "{{ role_path }}/templates/qinling.conf.j2"
|
|
||||||
- "{{ node_custom_config }}/global.conf"
|
|
||||||
- "{{ node_custom_config }}/qinling.conf"
|
|
||||||
- "{{ node_custom_config }}/qinling/{{ item.key }}.conf"
|
|
||||||
- "{{ node_custom_config }}/qinling/{{ inventory_hostname }}/qinling.conf"
|
|
||||||
dest: "{{ node_config_directory }}/{{ item.key }}/qinling.conf"
|
|
||||||
mode: "0660"
|
|
||||||
become: true
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups[item.value.group]
|
|
||||||
- item.value.enabled | bool
|
|
||||||
with_dict: "{{ qinling_services }}"
|
|
||||||
notify:
|
|
||||||
- Restart {{ item.key }} container
|
|
||||||
|
|
||||||
- name: Copying over wsgi-qinling files for services
|
|
||||||
vars:
|
|
||||||
service: "{{ qinling_services['qinling-api'] }}"
|
|
||||||
template:
|
|
||||||
src: "wsgi-qinling.conf.j2"
|
|
||||||
dest: "{{ node_config_directory }}/qinling-api/wsgi-qinling.conf"
|
|
||||||
mode: "0660"
|
|
||||||
become: true
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups[service.group]
|
|
||||||
- service.enabled | bool
|
|
||||||
notify:
|
|
||||||
- Restart qinling-api container
|
|
||||||
|
|
||||||
- name: Copying over existing policy file
|
|
||||||
template:
|
|
||||||
src: "{{ qinling_policy_file_path }}"
|
|
||||||
dest: "{{ node_config_directory }}/{{ item.key }}/{{ qinling_policy_file }}"
|
|
||||||
mode: "0660"
|
|
||||||
become: true
|
|
||||||
when:
|
|
||||||
- qinling_policy_file is defined
|
|
||||||
- inventory_hostname in groups[item.value.group]
|
|
||||||
- item.value.enabled | bool
|
|
||||||
with_dict: "{{ qinling_services }}"
|
|
||||||
notify:
|
|
||||||
- Restart {{ item.key }} container
|
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
- name: "Copy certificates and keys for {{ project_name }}"
|
|
||||||
import_role:
|
|
||||||
role: service-cert-copy
|
|
||||||
vars:
|
|
||||||
project_services: "{{ qinling_services }}"
|
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
- import_tasks: check-containers.yml
|
|
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
- import_tasks: register.yml
|
|
||||||
|
|
||||||
- import_tasks: config.yml
|
|
||||||
|
|
||||||
- import_tasks: check-containers.yml
|
|
||||||
|
|
||||||
- include_tasks: clone.yml
|
|
||||||
when: qinling_dev_mode | bool
|
|
||||||
|
|
||||||
- import_tasks: bootstrap.yml
|
|
||||||
|
|
||||||
- name: Flush handlers
|
|
||||||
meta: flush_handlers
|
|
@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Copy over Kubernetes certificates files for qinling-engine
|
|
||||||
copy:
|
|
||||||
src: "{{ item }}"
|
|
||||||
dest: "{{ node_config_directory }}/qinling-engine/"
|
|
||||||
mode: "0660"
|
|
||||||
owner: "{{ config_owner_user }}"
|
|
||||||
group: "{{ config_owner_group }}"
|
|
||||||
become: true
|
|
||||||
register: qinling_engine_kubernetes_files
|
|
||||||
with_items:
|
|
||||||
- "{{ node_custom_config }}/qinling/qinling-engine/kubernetes_ca.crt"
|
|
||||||
- "{{ node_custom_config }}/qinling/qinling-engine/kubernetes.crt"
|
|
||||||
- "{{ node_custom_config }}/qinling/qinling-engine/kubernetes.key"
|
|
||||||
when:
|
|
||||||
- qinling_kubernetes_certificates | bool
|
|
||||||
- inventory_hostname in groups['qinling-engine']
|
|
||||||
notify:
|
|
||||||
- Restart qinling-engine container
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
- name: "Configure haproxy for {{ project_name }}"
|
|
||||||
import_role:
|
|
||||||
name: haproxy-config
|
|
||||||
vars:
|
|
||||||
project_services: "{{ qinling_services }}"
|
|
||||||
tags: always
|
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
- include_tasks: "{{ kolla_action }}.yml"
|
|
@ -1,24 +0,0 @@
|
|||||||
---
|
|
||||||
- import_role:
|
|
||||||
name: service-precheck
|
|
||||||
vars:
|
|
||||||
service_precheck_services: "{{ qinling_services }}"
|
|
||||||
service_name: "{{ project_name }}"
|
|
||||||
|
|
||||||
- name: Get container facts
|
|
||||||
become: true
|
|
||||||
kolla_container_facts:
|
|
||||||
name:
|
|
||||||
- qinling_api
|
|
||||||
register: container_facts
|
|
||||||
|
|
||||||
- name: Checking free port for Qinling API
|
|
||||||
wait_for:
|
|
||||||
host: "{{ api_interface_address }}"
|
|
||||||
port: "{{ qinling_api_port }}"
|
|
||||||
connect_timeout: 1
|
|
||||||
timeout: 1
|
|
||||||
state: stopped
|
|
||||||
when:
|
|
||||||
- container_facts['qinling_api'] is not defined
|
|
||||||
- inventory_hostname in groups['qinling-api']
|
|
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Pulling qinling images
|
|
||||||
become: true
|
|
||||||
kolla_docker:
|
|
||||||
action: "pull_image"
|
|
||||||
common_options: "{{ docker_common_options }}"
|
|
||||||
image: "{{ item.value.image }}"
|
|
||||||
when:
|
|
||||||
- inventory_hostname in groups[item.value.group]
|
|
||||||
- item.value.enabled | bool
|
|
||||||
with_dict: "{{ qinling_services }}"
|
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
- import_tasks: deploy.yml
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
- import_role:
|
|
||||||
name: service-ks-register
|
|
||||||
vars:
|
|
||||||
service_ks_register_auth: "{{ openstack_qinling_auth }}"
|
|
||||||
service_ks_register_services: "{{ qinling_ks_services }}"
|
|
||||||
service_ks_register_users: "{{ qinling_ks_users }}"
|
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
- import_role:
|
|
||||||
name: service-stop
|
|
||||||
vars:
|
|
||||||
project_services: "{{ qinling_services }}"
|
|
||||||
service_name: "{{ project_name }}"
|
|
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
- import_tasks: config.yml
|
|
||||||
|
|
||||||
- import_tasks: check-containers.yml
|
|
||||||
|
|
||||||
- import_tasks: bootstrap_service.yml
|
|
||||||
|
|
||||||
- name: Flush handlers
|
|
||||||
meta: flush_handlers
|
|
@ -1,32 +0,0 @@
|
|||||||
{% set qinling_cmd = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %}
|
|
||||||
{% set qinling_dir = 'apache2/conf-enabled' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd/conf.d' %}
|
|
||||||
{
|
|
||||||
"command": "{{ qinling_cmd }} -DFOREGROUND",
|
|
||||||
"config_files": [
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/qinling.conf",
|
|
||||||
"dest": "/etc/qinling/qinling.conf",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/wsgi-qinling.conf",
|
|
||||||
"dest": "/etc/{{ qinling_dir }}/wsgi-qinling.conf",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
}{% if qinling_policy_file is defined %},
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/{{ qinling_policy_file }}",
|
|
||||||
"dest": "/etc/qinling/{{ qinling_policy_file }}",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
}{% endif %}
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"path": "/var/log/kolla/qinling",
|
|
||||||
"owner": "qinling:qinling",
|
|
||||||
"recurse": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"command": "qinling-engine --config-file /etc/qinling/qinling.conf",
|
|
||||||
"config_files": [
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/qinling.conf",
|
|
||||||
"dest": "/etc/qinling/qinling.conf",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
}{% if qinling_policy_file is defined %},
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/{{ qinling_policy_file }}",
|
|
||||||
"dest": "/etc/qinling/{{ qinling_policy_file }}",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
}{% endif %}{% if qinling_kubernetes_certificates is defined and qinling_kubernetes_certificates | bool %},
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/kubernetes_ca.crt",
|
|
||||||
"dest": "/etc/qinling/pki/kubernetes/ca.crt",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/kubernetes.crt",
|
|
||||||
"dest": "/etc/qinling/pki/kubernetes/qinling.crt",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": "{{ container_config_directory }}/kubernetes.key",
|
|
||||||
"dest": "/etc/qinling/pki/kubernetes/qinling.key",
|
|
||||||
"owner": "qinling",
|
|
||||||
"perm": "0600"
|
|
||||||
}{% endif %}
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
"path": "/var/lib/qinling",
|
|
||||||
"owner": "qinling:qinling",
|
|
||||||
"recurse": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "/var/log/kolla/qinling",
|
|
||||||
"owner": "qinling:qinling",
|
|
||||||
"recurse": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,70 +0,0 @@
|
|||||||
[DEFAULT]
|
|
||||||
debug = {{ qinling_logging_debug }}
|
|
||||||
log_dir = /var/log/kolla/qinling
|
|
||||||
transport_url = {{ rpc_transport_url }}
|
|
||||||
|
|
||||||
{% if service_name == 'qinling-api' %}
|
|
||||||
[api]
|
|
||||||
port = {{ qinling_api_port }}
|
|
||||||
host = {{ api_interface_address }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if service_name == 'qinling-engine' %}
|
|
||||||
[engine]
|
|
||||||
host = {{ api_interface_address }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[database]
|
|
||||||
connection = mysql+pymysql://{{ qinling_database_user }}:{{ qinling_database_password }}@{{ qinling_database_address }}/{{ qinling_database_name }}
|
|
||||||
connection_recycle_time = {{ database_connection_recycle_time }}
|
|
||||||
max_pool_size = {{ database_max_pool_size }}
|
|
||||||
max_retries = -1
|
|
||||||
|
|
||||||
[keystone_authtoken]
|
|
||||||
www_authenticate_uri = {{ keystone_internal_url }}/v3
|
|
||||||
auth_url = {{ keystone_admin_url }}
|
|
||||||
auth_type = password
|
|
||||||
project_domain_name = {{ default_project_domain_name }}
|
|
||||||
user_domain_name = {{ default_user_domain_name }}
|
|
||||||
project_name = service
|
|
||||||
username = {{ qinling_keystone_user }}
|
|
||||||
password = {{ qinling_keystone_password }}
|
|
||||||
region_name = {{ openstack_region_name }}
|
|
||||||
cafile = {{ openstack_cacert }}
|
|
||||||
|
|
||||||
memcache_security_strategy = ENCRYPT
|
|
||||||
memcache_secret_key = {{ memcache_secret_key }}
|
|
||||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
|
||||||
|
|
||||||
[storage]
|
|
||||||
file_system_dir = /var/lib/qinling/package
|
|
||||||
|
|
||||||
[etcd]
|
|
||||||
{% if enable_etcd | bool %}
|
|
||||||
host = {{ api_interface_address }}
|
|
||||||
port = {{ etcd_client_port }}
|
|
||||||
protocol = {{ etcd_protocol }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[oslo_messaging_notifications]
|
|
||||||
transport_url = {{ notify_transport_url }}
|
|
||||||
{% if enable_ceilometer | bool %}
|
|
||||||
driver = messagingv2
|
|
||||||
topics = notifications
|
|
||||||
{% else %}
|
|
||||||
driver = noop
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if om_enable_rabbitmq_tls | bool %}
|
|
||||||
[oslo_messaging_rabbit]
|
|
||||||
ssl = true
|
|
||||||
ssl_ca_file = {{ om_rabbitmq_cacert }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if qinling_policy_file is defined %}
|
|
||||||
[oslo_policy]
|
|
||||||
policy_file = {{ qinling_policy_file }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[oslo_middleware]
|
|
||||||
enable_proxy_headers_parsing = True
|
|
@ -1,39 +0,0 @@
|
|||||||
{% set qinling_log_dir = '/var/log/kolla/qinling' %}
|
|
||||||
|
|
||||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ qinling_api_port }}
|
|
||||||
|
|
||||||
ServerSignature Off
|
|
||||||
ServerTokens Prod
|
|
||||||
TraceEnable off
|
|
||||||
KeepAliveTimeout {{ kolla_httpd_keep_alive }}
|
|
||||||
|
|
||||||
ErrorLog "{{ qinling_log_dir }}/apache-error.log"
|
|
||||||
<IfModule log_config_module>
|
|
||||||
CustomLog "{{ qinling_log_dir }}/apache-access.log" common
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
{% if qinling_logging_debug | bool %}
|
|
||||||
LogLevel info
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<VirtualHost *:{{ qinling_api_port }}>
|
|
||||||
|
|
||||||
## Vhost docroot
|
|
||||||
DocumentRoot "/var/www/cgi-bin/qinling"
|
|
||||||
|
|
||||||
## Directories, there should at least be a declaration for /var/www/cgi-bin/qinling
|
|
||||||
|
|
||||||
<Directory "/var/www/cgi-bin/qinling">
|
|
||||||
Options Indexes FollowSymLinks MultiViews
|
|
||||||
Require all granted
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
## Logging
|
|
||||||
ErrorLog "{{ qinling_log_dir }}/qinling_api_wsgi_error.log"
|
|
||||||
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" logformat
|
|
||||||
CustomLog "{{ qinling_log_dir }}/qinling_api_wsgi_access.log" logformat
|
|
||||||
WSGIApplicationGroup %{GLOBAL}
|
|
||||||
WSGIDaemonProcess qinling group=qinling processes={{ openstack_service_workers }} threads=1 user=qinling
|
|
||||||
WSGIProcessGroup qinling
|
|
||||||
WSGIScriptAlias / "/var/www/cgi-bin/qinling/wsgi.py"
|
|
||||||
</VirtualHost>
|
|
@ -62,7 +62,6 @@
|
|||||||
- enable_placement_{{ enable_placement | bool }}
|
- enable_placement_{{ enable_placement | bool }}
|
||||||
- enable_prometheus_{{ enable_prometheus | bool }}
|
- enable_prometheus_{{ enable_prometheus | bool }}
|
||||||
- enable_qdrouterd_{{ enable_qdrouterd | bool }}
|
- enable_qdrouterd_{{ enable_qdrouterd | bool }}
|
||||||
- enable_qinling_{{ enable_qinling | bool }}
|
|
||||||
- enable_rabbitmq_{{ enable_rabbitmq | bool }}
|
- enable_rabbitmq_{{ enable_rabbitmq | bool }}
|
||||||
- enable_rally_{{ enable_rally | bool }}
|
- enable_rally_{{ enable_rally | bool }}
|
||||||
- enable_redis_{{ enable_redis | bool }}
|
- enable_redis_{{ enable_redis | bool }}
|
||||||
@ -302,11 +301,6 @@
|
|||||||
tasks_from: loadbalancer
|
tasks_from: loadbalancer
|
||||||
tags: prometheus
|
tags: prometheus
|
||||||
when: enable_prometheus | bool
|
when: enable_prometheus | bool
|
||||||
- include_role:
|
|
||||||
name: qinling
|
|
||||||
tasks_from: loadbalancer
|
|
||||||
tags: qinling
|
|
||||||
when: enable_qinling | bool
|
|
||||||
- include_role:
|
- include_role:
|
||||||
name: rabbitmq
|
name: rabbitmq
|
||||||
tasks_from: loadbalancer
|
tasks_from: loadbalancer
|
||||||
@ -838,18 +832,6 @@
|
|||||||
tags: mistral,
|
tags: mistral,
|
||||||
when: enable_mistral | bool }
|
when: enable_mistral | bool }
|
||||||
|
|
||||||
- name: Apply role qinling
|
|
||||||
gather_facts: false
|
|
||||||
hosts:
|
|
||||||
- qinling-api
|
|
||||||
- qinling-engine
|
|
||||||
- '&enable_qinling_True'
|
|
||||||
serial: '{{ kolla_serial|default("0") }}'
|
|
||||||
roles:
|
|
||||||
- { role: qinling,
|
|
||||||
tags: qinling,
|
|
||||||
when: enable_qinling | bool }
|
|
||||||
|
|
||||||
- name: Apply role sahara
|
- name: Apply role sahara
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
hosts:
|
hosts:
|
||||||
|
@ -13,6 +13,5 @@ compute services.
|
|||||||
nova-cells-guide
|
nova-cells-guide
|
||||||
nova-fake-driver
|
nova-fake-driver
|
||||||
nova-guide
|
nova-guide
|
||||||
qinling-guide
|
|
||||||
vmware-guide
|
vmware-guide
|
||||||
zun-guide
|
zun-guide
|
||||||
|
@ -1,102 +0,0 @@
|
|||||||
.. _qinling-guide:
|
|
||||||
|
|
||||||
=========================
|
|
||||||
Qinling - Function Engine
|
|
||||||
=========================
|
|
||||||
|
|
||||||
Overview
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
Qinling aims to provide a platform to support serverless functions
|
|
||||||
(like AWS Lambda). Qinling supports different container orchestration
|
|
||||||
platforms (Kubernetes/Swarm, etc...) and different function package storage
|
|
||||||
backends (local/Swift/S3) by nature using plugin mechanism.
|
|
||||||
|
|
||||||
Kolla deploys Qinling API and Qinling Engine containers which are the main
|
|
||||||
Qinling components but it needs to be connected to an existing container
|
|
||||||
orchestration platforms.
|
|
||||||
|
|
||||||
Apply custom policies to Qinling API
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Custom policies could be apply by creating ``policy.json`` file under
|
|
||||||
``/etc/kolla/config/qinling`` directory.
|
|
||||||
|
|
||||||
Enable etcd role
|
|
||||||
~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Qinling requires etcd for function mapping and concurrency. The etcd role
|
|
||||||
should be enabled to configure the etcd address and port within `qinling.conf`.
|
|
||||||
|
|
||||||
Look for ``enable_etcd: "no"`` and change it in ``/etc/kolla/globals.yml``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
enable_etcd: "yes"
|
|
||||||
|
|
||||||
Connect to an existing Kubernetes cluster
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Certificates
|
|
||||||
------------
|
|
||||||
|
|
||||||
``qinling-engine`` authenticates to Kubernetes by using certificates.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If the cluster has not been created with OpenStack Magnum then
|
|
||||||
certificates need to be gathered using different methods that will not
|
|
||||||
be mentioned here.
|
|
||||||
|
|
||||||
If the Kubernetes cluster has been deployed with OpenStack Magnum then the
|
|
||||||
OpenStack client should be used to retrieve the certificates.
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
openstack coe cluster config --dir . 687f7476-5604-4b44-8b09-b7a4f3fdbd64 --output-certs
|
|
||||||
|
|
||||||
Where ``687f7476-5604-4b44-8b09-b7a4f3fdbd64`` is the Kubernetes cluster ID
|
|
||||||
created with Magnum.
|
|
||||||
|
|
||||||
Four files should have been generated:
|
|
||||||
|
|
||||||
* ``ca.pem``
|
|
||||||
* ``cert.pem``
|
|
||||||
* ``key.pem``
|
|
||||||
* ``config``
|
|
||||||
|
|
||||||
Only ``ca.pem``, ``cert.pem`` and ``key.pem`` will be used, these files have
|
|
||||||
to be stored in ``/etc/kolla/config/qinling/qinling-engine`` directory under
|
|
||||||
these file name:
|
|
||||||
|
|
||||||
* ``ca.pem``: ``/etc/kolla/config/qinling/qinling-engine/kubernetes_ca.crt``
|
|
||||||
* ``cert.pem``: ``/etc/kolla/config/qinling/qinling-engine/kubernetes.crt``
|
|
||||||
* ``key.pem``: ``/etc/kolla/config/qinling/qinling-engine/kubernetes.key``
|
|
||||||
|
|
||||||
|
|
||||||
Declare ``qinling_kubernetes_certificates`` variable in
|
|
||||||
``/etc/kolla/globals.yml``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
qinling_kubernetes_certificates: "yes"
|
|
||||||
|
|
||||||
Kubernetes cluster
|
|
||||||
------------------
|
|
||||||
|
|
||||||
``qinling-engine`` needs to know where to connect, the information is
|
|
||||||
provided by options under ``[kubernetes]`` section inside ``qinling.conf``
|
|
||||||
configuration file.
|
|
||||||
|
|
||||||
As mentioned above, these settings are only required by ``qinling-engine``,
|
|
||||||
put the content in ``/etc/kolla/config/qinling/qinling-engine.conf``.
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[kubernetes]
|
|
||||||
kube_host = https://192.168.1.168:6443
|
|
||||||
ssl_ca_cert = /etc/qinling/pki/kubernetes/ca.crt
|
|
||||||
cert_file = /etc/qinling/pki/kubernetes/qinling.crt
|
|
||||||
key_file = /etc/qinling/pki/kubernetes/qinling.key
|
|
||||||
|
|
||||||
``kube_host`` is the Kubernetes cluster API address, ``https`` protocol
|
|
||||||
has to be defined.
|
|
@ -312,7 +312,6 @@
|
|||||||
#enable_horizon_murano: "{{ enable_murano | bool }}"
|
#enable_horizon_murano: "{{ enable_murano | bool }}"
|
||||||
#enable_horizon_neutron_vpnaas: "{{ enable_neutron_vpnaas | bool }}"
|
#enable_horizon_neutron_vpnaas: "{{ enable_neutron_vpnaas | bool }}"
|
||||||
#enable_horizon_octavia: "{{ enable_octavia | bool }}"
|
#enable_horizon_octavia: "{{ enable_octavia | bool }}"
|
||||||
#enable_horizon_qinling: "{{ enable_qinling | bool }}"
|
|
||||||
#enable_horizon_sahara: "{{ enable_sahara | bool }}"
|
#enable_horizon_sahara: "{{ enable_sahara | bool }}"
|
||||||
#enable_horizon_searchlight: "{{ enable_searchlight | bool }}"
|
#enable_horizon_searchlight: "{{ enable_searchlight | bool }}"
|
||||||
#enable_horizon_senlin: "{{ enable_senlin | bool }}"
|
#enable_horizon_senlin: "{{ enable_senlin | bool }}"
|
||||||
@ -369,7 +368,6 @@
|
|||||||
#enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"
|
#enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"
|
||||||
#enable_prometheus: "no"
|
#enable_prometheus: "no"
|
||||||
#enable_qdrouterd: "{{ 'yes' if om_rpc_transport == 'amqp' else 'no' }}"
|
#enable_qdrouterd: "{{ 'yes' if om_rpc_transport == 'amqp' else 'no' }}"
|
||||||
#enable_qinling: "no"
|
|
||||||
#enable_rally: "no"
|
#enable_rally: "no"
|
||||||
#enable_redis: "no"
|
#enable_redis: "no"
|
||||||
#enable_sahara: "no"
|
#enable_sahara: "no"
|
||||||
|
@ -188,9 +188,6 @@ masakari_keystone_password:
|
|||||||
|
|
||||||
memcache_secret_key:
|
memcache_secret_key:
|
||||||
|
|
||||||
qinling_database_password:
|
|
||||||
qinling_keystone_password:
|
|
||||||
|
|
||||||
# HMAC secret key
|
# HMAC secret key
|
||||||
osprofiler_secret:
|
osprofiler_secret:
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
The ``Qinling`` project is no longer maintained and
|
||||||
|
`retired since Wallaby cycle`__ . Its support and roles
|
||||||
|
are also removed since Wallaby cycle.
|
||||||
|
|
||||||
|
__ http://lists.openstack.org/pipermail/openstack-discuss/2020-November/018638.html
|
@ -191,9 +191,6 @@ control
|
|||||||
[magnum:children]
|
[magnum:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
[qinling:children]
|
|
||||||
control
|
|
||||||
|
|
||||||
[sahara:children]
|
[sahara:children]
|
||||||
control
|
control
|
||||||
|
|
||||||
@ -518,13 +515,6 @@ magnum
|
|||||||
[magnum-conductor:children]
|
[magnum-conductor:children]
|
||||||
magnum
|
magnum
|
||||||
|
|
||||||
# Qinling
|
|
||||||
[qinling-api:children]
|
|
||||||
qinling
|
|
||||||
|
|
||||||
[qinling-engine:children]
|
|
||||||
qinling
|
|
||||||
|
|
||||||
# Sahara
|
# Sahara
|
||||||
[sahara-api:children]
|
[sahara-api:children]
|
||||||
sahara
|
sahara
|
||||||
|
Loading…
Reference in New Issue
Block a user