From dafde93fe22bad5ecfbec8ae15481c930540cd3f Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Sat, 28 Nov 2020 10:10:29 -0600 Subject: [PATCH] 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 --- README.rst | 1 - ansible/group_vars/all.yml | 10 -- ansible/inventory/all-in-one | 10 -- ansible/inventory/multinode | 10 -- ansible/roles/common/defaults/main.yml | 2 - ansible/roles/common/tasks/config.yml | 1 - .../conf/filter/01-rewrite-0.14.conf.j2 | 5 - .../templates/cron-logrotate-qinling.conf.j2 | 3 - ansible/roles/haproxy/tasks/precheck.yml | 13 -- ansible/roles/horizon/defaults/main.yml | 1 - ansible/roles/horizon/tasks/config.yml | 1 - ansible/roles/qinling/defaults/main.yml | 113 ------------------ ansible/roles/qinling/handlers/main.yml | 30 ----- ansible/roles/qinling/tasks/bootstrap.yml | 36 ------ .../roles/qinling/tasks/bootstrap_service.yml | 20 ---- .../roles/qinling/tasks/check-containers.yml | 16 --- ansible/roles/qinling/tasks/check.yml | 1 - ansible/roles/qinling/tasks/clone.yml | 8 -- ansible/roles/qinling/tasks/config.yml | 102 ---------------- ansible/roles/qinling/tasks/copy-certs.yml | 6 - .../roles/qinling/tasks/deploy-containers.yml | 2 - ansible/roles/qinling/tasks/deploy.yml | 14 --- .../qinling/tasks/external_kubernetes.yml | 19 --- ansible/roles/qinling/tasks/loadbalancer.yml | 7 -- ansible/roles/qinling/tasks/main.yml | 2 - ansible/roles/qinling/tasks/precheck.yml | 24 ---- ansible/roles/qinling/tasks/pull.yml | 11 -- ansible/roles/qinling/tasks/reconfigure.yml | 2 - ansible/roles/qinling/tasks/register.yml | 7 -- ansible/roles/qinling/tasks/stop.yml | 6 - ansible/roles/qinling/tasks/upgrade.yml | 9 -- .../qinling/templates/qinling-api.json.j2 | 32 ----- .../qinling/templates/qinling-engine.json.j2 | 47 -------- .../roles/qinling/templates/qinling.conf.j2 | 70 ----------- .../qinling/templates/wsgi-qinling.conf.j2 | 39 ------ ansible/site.yml | 18 --- doc/source/reference/compute/index.rst | 1 - .../reference/compute/qinling-guide.rst | 102 ---------------- etc/kolla/globals.yml | 2 - etc/kolla/passwords.yml | 3 - ...remove-qinling-roles-12c1ce84d279949f.yaml | 8 ++ tests/templates/inventory.j2 | 10 -- 42 files changed, 8 insertions(+), 816 deletions(-) delete mode 100644 ansible/roles/common/templates/cron-logrotate-qinling.conf.j2 delete mode 100644 ansible/roles/qinling/defaults/main.yml delete mode 100644 ansible/roles/qinling/handlers/main.yml delete mode 100644 ansible/roles/qinling/tasks/bootstrap.yml delete mode 100644 ansible/roles/qinling/tasks/bootstrap_service.yml delete mode 100644 ansible/roles/qinling/tasks/check-containers.yml delete mode 100644 ansible/roles/qinling/tasks/check.yml delete mode 100644 ansible/roles/qinling/tasks/clone.yml delete mode 100644 ansible/roles/qinling/tasks/config.yml delete mode 100644 ansible/roles/qinling/tasks/copy-certs.yml delete mode 100644 ansible/roles/qinling/tasks/deploy-containers.yml delete mode 100644 ansible/roles/qinling/tasks/deploy.yml delete mode 100644 ansible/roles/qinling/tasks/external_kubernetes.yml delete mode 100644 ansible/roles/qinling/tasks/loadbalancer.yml delete mode 100644 ansible/roles/qinling/tasks/main.yml delete mode 100644 ansible/roles/qinling/tasks/precheck.yml delete mode 100644 ansible/roles/qinling/tasks/pull.yml delete mode 100644 ansible/roles/qinling/tasks/reconfigure.yml delete mode 100644 ansible/roles/qinling/tasks/register.yml delete mode 100644 ansible/roles/qinling/tasks/stop.yml delete mode 100644 ansible/roles/qinling/tasks/upgrade.yml delete mode 100644 ansible/roles/qinling/templates/qinling-api.json.j2 delete mode 100644 ansible/roles/qinling/templates/qinling-engine.json.j2 delete mode 100644 ansible/roles/qinling/templates/qinling.conf.j2 delete mode 100644 ansible/roles/qinling/templates/wsgi-qinling.conf.j2 delete mode 100644 doc/source/reference/compute/qinling-guide.rst create mode 100644 releasenotes/notes/remove-qinling-roles-12c1ce84d279949f.yaml 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