diff --git a/README.rst b/README.rst
index b462534bf7..6740272f28 100644
--- a/README.rst
+++ b/README.rst
@@ -66,7 +66,6 @@ Kolla-Ansible deploys containers for the following OpenStack projects:
- `Nova `__
- `Octavia `__
- `Panko `__
-- `Qinling `__
- `Rally `__
- `Sahara `__
- `Searchlight `__
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index e0eb0d0efc..40e114df9c 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -446,8 +446,6 @@ prometheus_blackbox_exporter_port: "9115"
qdrouterd_port: "31459"
-qinling_api_port: "7070"
-
rabbitmq_port: "{{ '5671' if rabbitmq_enable_tls | bool else '5672' }}"
rabbitmq_management_port: "15672"
rabbitmq_cluster_port: "25672"
@@ -617,7 +615,6 @@ enable_horizon_monasca: "{{ enable_monasca | bool }}"
enable_horizon_murano: "{{ enable_murano | bool }}"
enable_horizon_neutron_vpnaas: "{{ enable_neutron_vpnaas | bool }}"
enable_horizon_octavia: "{{ enable_octavia | bool }}"
-enable_horizon_qinling: "{{ enable_qinling | bool }}"
enable_horizon_sahara: "{{ enable_sahara | bool }}"
enable_horizon_searchlight: "{{ enable_searchlight | bool }}"
enable_horizon_senlin: "{{ enable_senlin | bool }}"
@@ -674,7 +671,6 @@ enable_panko: "no"
enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"
enable_prometheus: "no"
enable_qdrouterd: "{{ 'yes' if om_rpc_transport == 'amqp' else 'no' }}"
-enable_qinling: "no"
enable_rally: "no"
enable_redis: "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 }}"
-#################
-# Qinling options
-#################
-# Configure qinling-engine certificates to authenticate with Kubernetes cluster.
-qinling_kubernetes_certificates: "no"
-
###################
# External Ceph options
###################
diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one
index 28dd2fda4e..abdccf20e7 100644
--- a/ansible/inventory/all-in-one
+++ b/ansible/inventory/all-in-one
@@ -156,9 +156,6 @@ monitoring
[magnum:children]
control
-[qinling:children]
-control
-
[sahara:children]
control
@@ -496,13 +493,6 @@ magnum
[magnum-conductor:children]
magnum
-# Qinling
-[qinling-api:children]
-qinling
-
-[qinling-engine:children]
-qinling
-
# Solum
[solum-api:children]
solum
diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode
index d2e11d9091..ca3f148f8e 100644
--- a/ansible/inventory/multinode
+++ b/ansible/inventory/multinode
@@ -177,9 +177,6 @@ control
[magnum:children]
control
-[qinling:children]
-control
-
[sahara:children]
control
@@ -504,13 +501,6 @@ magnum
[magnum-conductor:children]
magnum
-# Qinling
-[qinling-api:children]
-qinling
-
-[qinling-engine:children]
-qinling
-
# Sahara
[sahara-api:children]
sahara
diff --git a/ansible/roles/common/defaults/main.yml b/ansible/roles/common/defaults/main.yml
index f59c78a586..662eedff4b 100644
--- a/ansible/roles/common/defaults/main.yml
+++ b/ansible/roles/common/defaults/main.yml
@@ -162,8 +162,6 @@ fluentd_input_openstack_services:
enabled: "{{ enable_octavia | bool }}"
- name: panko
enabled: "{{ enable_panko | bool }}"
- - name: qinling
- enabled: "{{ enable_qinling | bool }}"
- name: rally
enabled: "{{ enable_rally | bool }}"
- name: sahara
diff --git a/ansible/roles/common/tasks/config.yml b/ansible/roles/common/tasks/config.yml
index 1d98c74ef5..659806b3cc 100644
--- a/ansible/roles/common/tasks/config.yml
+++ b/ansible/roles/common/tasks/config.yml
@@ -209,7 +209,6 @@
- { name: "octavia", enabled: "{{ enable_octavia | bool }}" }
- { name: "outward-rabbitmq", enabled: "{{ enable_outward_rabbitmq | bool }}" }
- { name: "panko", enabled: "{{ enable_panko | bool }}" }
- - { name: "qinling", enabled: "{{ enable_qinling | bool }}" }
- { name: "rabbitmq", enabled: "{{ enable_rabbitmq | bool }}" }
- { name: "rally", enabled: "{{ enable_rally | bool }}" }
- { name: "sahara", enabled: "{{ enable_sahara | bool }}" }
diff --git a/ansible/roles/common/templates/conf/filter/01-rewrite-0.14.conf.j2 b/ansible/roles/common/templates/conf/filter/01-rewrite-0.14.conf.j2
index c8bd0cd3a5..c6d58f39d3 100644
--- a/ansible/roles/common/templates/conf/filter/01-rewrite-0.14.conf.j2
+++ b/ansible/roles/common/templates/conf/filter/01-rewrite-0.14.conf.j2
@@ -161,11 +161,6 @@
pattern ^(blazar-api|blazar-manager)$
tag openstack_python
-
- key programname
- pattern ^(qinling-engine|qinling-api)$
- tag openstack_python
-
key programname
pattern ^(monasca-api|monasca-notification|monasca-persister|agent-collector|agent-forwarder|agent-statsd)$
diff --git a/ansible/roles/common/templates/cron-logrotate-qinling.conf.j2 b/ansible/roles/common/templates/cron-logrotate-qinling.conf.j2
deleted file mode 100644
index 570dfc2760..0000000000
--- a/ansible/roles/common/templates/cron-logrotate-qinling.conf.j2
+++ /dev/null
@@ -1,3 +0,0 @@
-"/var/log/kolla/qinling/*.log"
-{
-}
diff --git a/ansible/roles/haproxy/tasks/precheck.yml b/ansible/roles/haproxy/tasks/precheck.yml
index 0e79dd44af..db6dfee17c 100644
--- a/ansible/roles/haproxy/tasks/precheck.yml
+++ b/ansible/roles/haproxy/tasks/precheck.yml
@@ -729,19 +729,6 @@
- haproxy_stat.find('panko_api') == -1
- 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
wait_for:
host: "{{ kolla_internal_vip_address }}"
diff --git a/ansible/roles/horizon/defaults/main.yml b/ansible/roles/horizon/defaults/main.yml
index 6876cc37fa..4388da5079 100644
--- a/ansible/roles/horizon/defaults/main.yml
+++ b/ansible/roles/horizon/defaults/main.yml
@@ -23,7 +23,6 @@ horizon_services:
ENABLE_MURANO: "{{ 'yes' if enable_horizon_murano | 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_QINLING: "{{ 'yes' if enable_horizon_qinling | bool else 'no' }}"
ENABLE_SAHARA: "{{ 'yes' if enable_horizon_sahara | bool else 'no' }}"
ENABLE_SEARCHLIGHT: "{{ 'yes' if enable_horizon_searchlight | bool else 'no' }}"
ENABLE_SENLIN: "{{ 'yes' if enable_horizon_senlin | bool else 'no' }}"
diff --git a/ansible/roles/horizon/tasks/config.yml b/ansible/roles/horizon/tasks/config.yml
index 1f5e8ff45f..2c551cbfea 100644
--- a/ansible/roles/horizon/tasks/config.yml
+++ b/ansible/roles/horizon/tasks/config.yml
@@ -40,7 +40,6 @@
- { name: "neutron", enabled: "{{ enable_neutron_horizon_policy_file }}" }
- { name: "nova", enabled: "{{ enable_nova_horizon_policy_file }}" }
- { name: "octavia", enabled: "{{ enable_horizon_octavia }}" }
- - { name: "qinling", enabled: "{{ enable_horizon_qinling }}" }
- { name: "sahara", enabled: "{{ enable_horizon_sahara }}" }
- { name: "searchlight", enabled: "{{ enable_horizon_searchlight }}" }
- { name: "senlin", enabled: "{{ enable_horizon_senlin }}" }
diff --git a/ansible/roles/qinling/defaults/main.yml b/ansible/roles/qinling/defaults/main.yml
deleted file mode 100644
index 0f11311609..0000000000
--- a/ansible/roles/qinling/defaults/main.yml
+++ /dev/null
@@ -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"
diff --git a/ansible/roles/qinling/handlers/main.yml b/ansible/roles/qinling/handlers/main.yml
deleted file mode 100644
index 9b5e5263dd..0000000000
--- a/ansible/roles/qinling/handlers/main.yml
+++ /dev/null
@@ -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"
diff --git a/ansible/roles/qinling/tasks/bootstrap.yml b/ansible/roles/qinling/tasks/bootstrap.yml
deleted file mode 100644
index f5b0ed9ad7..0000000000
--- a/ansible/roles/qinling/tasks/bootstrap.yml
+++ /dev/null
@@ -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
diff --git a/ansible/roles/qinling/tasks/bootstrap_service.yml b/ansible/roles/qinling/tasks/bootstrap_service.yml
deleted file mode 100644
index 6c95ebd5a9..0000000000
--- a/ansible/roles/qinling/tasks/bootstrap_service.yml
+++ /dev/null
@@ -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] }}"
diff --git a/ansible/roles/qinling/tasks/check-containers.yml b/ansible/roles/qinling/tasks/check-containers.yml
deleted file mode 100644
index 852e78a596..0000000000
--- a/ansible/roles/qinling/tasks/check-containers.yml
+++ /dev/null
@@ -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
diff --git a/ansible/roles/qinling/tasks/check.yml b/ansible/roles/qinling/tasks/check.yml
deleted file mode 100644
index ed97d539c0..0000000000
--- a/ansible/roles/qinling/tasks/check.yml
+++ /dev/null
@@ -1 +0,0 @@
----
diff --git a/ansible/roles/qinling/tasks/clone.yml b/ansible/roles/qinling/tasks/clone.yml
deleted file mode 100644
index b003d4855f..0000000000
--- a/ansible/roles/qinling/tasks/clone.yml
+++ /dev/null
@@ -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 }}"
diff --git a/ansible/roles/qinling/tasks/config.yml b/ansible/roles/qinling/tasks/config.yml
deleted file mode 100644
index 625f9aa68a..0000000000
--- a/ansible/roles/qinling/tasks/config.yml
+++ /dev/null
@@ -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
diff --git a/ansible/roles/qinling/tasks/copy-certs.yml b/ansible/roles/qinling/tasks/copy-certs.yml
deleted file mode 100644
index ee25f1d265..0000000000
--- a/ansible/roles/qinling/tasks/copy-certs.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- name: "Copy certificates and keys for {{ project_name }}"
- import_role:
- role: service-cert-copy
- vars:
- project_services: "{{ qinling_services }}"
diff --git a/ansible/roles/qinling/tasks/deploy-containers.yml b/ansible/roles/qinling/tasks/deploy-containers.yml
deleted file mode 100644
index eb24ab5c7a..0000000000
--- a/ansible/roles/qinling/tasks/deploy-containers.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-- import_tasks: check-containers.yml
diff --git a/ansible/roles/qinling/tasks/deploy.yml b/ansible/roles/qinling/tasks/deploy.yml
deleted file mode 100644
index de9d81428f..0000000000
--- a/ansible/roles/qinling/tasks/deploy.yml
+++ /dev/null
@@ -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
diff --git a/ansible/roles/qinling/tasks/external_kubernetes.yml b/ansible/roles/qinling/tasks/external_kubernetes.yml
deleted file mode 100644
index 0dee19b692..0000000000
--- a/ansible/roles/qinling/tasks/external_kubernetes.yml
+++ /dev/null
@@ -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
diff --git a/ansible/roles/qinling/tasks/loadbalancer.yml b/ansible/roles/qinling/tasks/loadbalancer.yml
deleted file mode 100644
index 5d33b5d658..0000000000
--- a/ansible/roles/qinling/tasks/loadbalancer.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- name: "Configure haproxy for {{ project_name }}"
- import_role:
- name: haproxy-config
- vars:
- project_services: "{{ qinling_services }}"
- tags: always
diff --git a/ansible/roles/qinling/tasks/main.yml b/ansible/roles/qinling/tasks/main.yml
deleted file mode 100644
index bc5d1e6257..0000000000
--- a/ansible/roles/qinling/tasks/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-- include_tasks: "{{ kolla_action }}.yml"
diff --git a/ansible/roles/qinling/tasks/precheck.yml b/ansible/roles/qinling/tasks/precheck.yml
deleted file mode 100644
index b548f59800..0000000000
--- a/ansible/roles/qinling/tasks/precheck.yml
+++ /dev/null
@@ -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']
diff --git a/ansible/roles/qinling/tasks/pull.yml b/ansible/roles/qinling/tasks/pull.yml
deleted file mode 100644
index 8cd89824e5..0000000000
--- a/ansible/roles/qinling/tasks/pull.yml
+++ /dev/null
@@ -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 }}"
diff --git a/ansible/roles/qinling/tasks/reconfigure.yml b/ansible/roles/qinling/tasks/reconfigure.yml
deleted file mode 100644
index 5b10a7e111..0000000000
--- a/ansible/roles/qinling/tasks/reconfigure.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-- import_tasks: deploy.yml
diff --git a/ansible/roles/qinling/tasks/register.yml b/ansible/roles/qinling/tasks/register.yml
deleted file mode 100644
index 02d055b33f..0000000000
--- a/ansible/roles/qinling/tasks/register.yml
+++ /dev/null
@@ -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 }}"
diff --git a/ansible/roles/qinling/tasks/stop.yml b/ansible/roles/qinling/tasks/stop.yml
deleted file mode 100644
index 2402dfe382..0000000000
--- a/ansible/roles/qinling/tasks/stop.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- import_role:
- name: service-stop
- vars:
- project_services: "{{ qinling_services }}"
- service_name: "{{ project_name }}"
diff --git a/ansible/roles/qinling/tasks/upgrade.yml b/ansible/roles/qinling/tasks/upgrade.yml
deleted file mode 100644
index 6ba9f99799..0000000000
--- a/ansible/roles/qinling/tasks/upgrade.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-- import_tasks: config.yml
-
-- import_tasks: check-containers.yml
-
-- import_tasks: bootstrap_service.yml
-
-- name: Flush handlers
- meta: flush_handlers
diff --git a/ansible/roles/qinling/templates/qinling-api.json.j2 b/ansible/roles/qinling/templates/qinling-api.json.j2
deleted file mode 100644
index ad9b4f39ce..0000000000
--- a/ansible/roles/qinling/templates/qinling-api.json.j2
+++ /dev/null
@@ -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
- }
- ]
-}
diff --git a/ansible/roles/qinling/templates/qinling-engine.json.j2 b/ansible/roles/qinling/templates/qinling-engine.json.j2
deleted file mode 100644
index b1f8bd4c41..0000000000
--- a/ansible/roles/qinling/templates/qinling-engine.json.j2
+++ /dev/null
@@ -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
- }
- ]
-}
diff --git a/ansible/roles/qinling/templates/qinling.conf.j2 b/ansible/roles/qinling/templates/qinling.conf.j2
deleted file mode 100644
index ee9f8702c9..0000000000
--- a/ansible/roles/qinling/templates/qinling.conf.j2
+++ /dev/null
@@ -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
diff --git a/ansible/roles/qinling/templates/wsgi-qinling.conf.j2 b/ansible/roles/qinling/templates/wsgi-qinling.conf.j2
deleted file mode 100644
index 26aabe9a8b..0000000000
--- a/ansible/roles/qinling/templates/wsgi-qinling.conf.j2
+++ /dev/null
@@ -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"
-
- CustomLog "{{ qinling_log_dir }}/apache-access.log" common
-
-
-{% if qinling_logging_debug | bool %}
-LogLevel info
-{% endif %}
-
-
-
- ## Vhost docroot
- DocumentRoot "/var/www/cgi-bin/qinling"
-
- ## Directories, there should at least be a declaration for /var/www/cgi-bin/qinling
-
-
- Options Indexes FollowSymLinks MultiViews
- Require all granted
-
-
- ## 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"
-
diff --git a/ansible/site.yml b/ansible/site.yml
index 6b5745a9cc..c7cde2313c 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -62,7 +62,6 @@
- enable_placement_{{ enable_placement | bool }}
- enable_prometheus_{{ enable_prometheus | bool }}
- enable_qdrouterd_{{ enable_qdrouterd | bool }}
- - enable_qinling_{{ enable_qinling | bool }}
- enable_rabbitmq_{{ enable_rabbitmq | bool }}
- enable_rally_{{ enable_rally | bool }}
- enable_redis_{{ enable_redis | bool }}
@@ -302,11 +301,6 @@
tasks_from: loadbalancer
tags: prometheus
when: enable_prometheus | bool
- - include_role:
- name: qinling
- tasks_from: loadbalancer
- tags: qinling
- when: enable_qinling | bool
- include_role:
name: rabbitmq
tasks_from: loadbalancer
@@ -838,18 +832,6 @@
tags: mistral,
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
gather_facts: false
hosts:
diff --git a/doc/source/reference/compute/index.rst b/doc/source/reference/compute/index.rst
index 8ed8411b67..822f09b27e 100644
--- a/doc/source/reference/compute/index.rst
+++ b/doc/source/reference/compute/index.rst
@@ -13,6 +13,5 @@ compute services.
nova-cells-guide
nova-fake-driver
nova-guide
- qinling-guide
vmware-guide
zun-guide
diff --git a/doc/source/reference/compute/qinling-guide.rst b/doc/source/reference/compute/qinling-guide.rst
deleted file mode 100644
index 2f5b81e876..0000000000
--- a/doc/source/reference/compute/qinling-guide.rst
+++ /dev/null
@@ -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.
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index 932a1c03bf..99a514b53c 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -312,7 +312,6 @@
#enable_horizon_murano: "{{ enable_murano | bool }}"
#enable_horizon_neutron_vpnaas: "{{ enable_neutron_vpnaas | bool }}"
#enable_horizon_octavia: "{{ enable_octavia | bool }}"
-#enable_horizon_qinling: "{{ enable_qinling | bool }}"
#enable_horizon_sahara: "{{ enable_sahara | bool }}"
#enable_horizon_searchlight: "{{ enable_searchlight | bool }}"
#enable_horizon_senlin: "{{ enable_senlin | bool }}"
@@ -369,7 +368,6 @@
#enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"
#enable_prometheus: "no"
#enable_qdrouterd: "{{ 'yes' if om_rpc_transport == 'amqp' else 'no' }}"
-#enable_qinling: "no"
#enable_rally: "no"
#enable_redis: "no"
#enable_sahara: "no"
diff --git a/etc/kolla/passwords.yml b/etc/kolla/passwords.yml
index 80fafec360..77626405eb 100644
--- a/etc/kolla/passwords.yml
+++ b/etc/kolla/passwords.yml
@@ -188,9 +188,6 @@ masakari_keystone_password:
memcache_secret_key:
-qinling_database_password:
-qinling_keystone_password:
-
# HMAC secret key
osprofiler_secret:
diff --git a/releasenotes/notes/remove-qinling-roles-12c1ce84d279949f.yaml b/releasenotes/notes/remove-qinling-roles-12c1ce84d279949f.yaml
new file mode 100644
index 0000000000..63f0137b92
--- /dev/null
+++ b/releasenotes/notes/remove-qinling-roles-12c1ce84d279949f.yaml
@@ -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
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2
index 86b3213b54..1417517b78 100644
--- a/tests/templates/inventory.j2
+++ b/tests/templates/inventory.j2
@@ -191,9 +191,6 @@ control
[magnum:children]
control
-[qinling:children]
-control
-
[sahara:children]
control
@@ -518,13 +515,6 @@ magnum
[magnum-conductor:children]
magnum
-# Qinling
-[qinling-api:children]
-qinling
-
-[qinling-engine:children]
-qinling
-
# Sahara
[sahara-api:children]
sahara