diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index da6c863a05..bb7d702cfd 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -140,8 +140,6 @@ aodh_api_port: "8042" barbican_api_port: "9311" -ceilometer_api_port: "8777" - cinder_api_port: "8776" congress_api_port: "1789" @@ -473,16 +471,6 @@ glance_backend_ceph: "{{ enable_ceph }}" glance_backend_vmware: "no" glance_file_datadir_volume: "glance" -####################### -# Ceilometer options -####################### -# Valid options are [ mongodb, mysql, gnocchi ] -ceilometer_database_type: "mongodb" - -# Valid options are [ mongodb, gnocchi, panko ] -ceilometer_event_type: "mongodb" - - ####################### # Barbican options ####################### diff --git a/ansible/roles/ceilometer/defaults/main.yml b/ansible/roles/ceilometer/defaults/main.yml index 187e3e283e..5580ebe228 100644 --- a/ansible/roles/ceilometer/defaults/main.yml +++ b/ansible/roles/ceilometer/defaults/main.yml @@ -2,6 +2,7 @@ project_name: "ceilometer" ceilometer_services: +# TODO(jeffrey4l): ceilometer_api_image is still required for bootstrap service. Remove this after use ceilometer notification image instead ceilometer-api: container_name: ceilometer_api group: ceilometer-api @@ -31,16 +32,6 @@ ceilometer_services: - "/etc/localtime:/etc/localtime:ro" - "ceilometer:/var/lib/ceilometer/" - "kolla_logs:/var/log/kolla/" - ceilometer-collector: - container_name: ceilometer_collector - group: ceilometer-collector - enabled: True - image: "{{ ceilometer_collector_image_full }}" - volumes: - - "{{ node_config_directory }}/ceilometer-collector/:{{ container_config_directory }}/:ro" - - "/etc/localtime:/etc/localtime:ro" - - "ceilometer:/var/lib/ceilometer/" - - "kolla_logs:/var/log/kolla/" ceilometer-compute: container_name: ceilometer_compute group: ceilometer-compute @@ -56,17 +47,6 @@ ceilometer_services: - "nova_libvirt:/var/lib/libvirt" -#################### -# Database -#################### -ceilometer_database_name: "ceilometer" -ceilometer_database_user: "ceilometer" -ceilometer_database_port: "{{ mongodb_port if ceilometer_database_type == 'mongodb' else database_port }}" - -ceilometer_database_mongodb_address: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ ceilometer_database_port }}{% if not loop.last %},{% endif %}{% endfor %}" -ceilometer_database_mysql_address: "{{ kolla_internal_fqdn }}" - - #################### # Docker #################### @@ -77,6 +57,7 @@ ceilometer_notification_image: "{{ docker_registry ~ '/' if docker_registry else ceilometer_notification_tag: "{{ ceilometer_tag }}" ceilometer_notification_image_full: "{{ ceilometer_notification_image }}:{{ ceilometer_notification_tag }}" +# TODO(jeffrey4l): ceilometer_api_image is still required for bootstrap service. Remove this after use ceilometer notification image instead ceilometer_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ ceilometer_install_type }}-ceilometer-api" ceilometer_api_tag: "{{ ceilometer_tag }}" ceilometer_api_image_full: "{{ ceilometer_api_image }}:{{ ceilometer_api_tag }}" @@ -85,10 +66,6 @@ ceilometer_central_image: "{{ docker_registry ~ '/' if docker_registry else '' } ceilometer_central_tag: "{{ ceilometer_tag }}" ceilometer_central_image_full: "{{ ceilometer_central_image }}:{{ ceilometer_central_tag }}" -ceilometer_collector_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ ceilometer_install_type }}-ceilometer-collector" -ceilometer_collector_tag: "{{ ceilometer_tag }}" -ceilometer_collector_image_full: "{{ ceilometer_collector_image }}:{{ ceilometer_collector_tag }}" - ceilometer_compute_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ ceilometer_install_type }}-ceilometer-compute" ceilometer_compute_tag: "{{ ceilometer_tag }}" ceilometer_compute_image_full: "{{ ceilometer_compute_image }}:{{ ceilometer_compute_tag }}" @@ -97,10 +74,6 @@ ceilometer_compute_image_full: "{{ ceilometer_compute_image }}:{{ ceilometer_com #################### # OpenStack #################### -ceilometer_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ ceilometer_api_port }}" -ceilometer_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ ceilometer_api_port }}" -ceilometer_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ ceilometer_api_port }}" - ceilometer_logging_debug: "{{ openstack_logging_debug }}" ceilometer_keystone_user: "ceilometer" diff --git a/ansible/roles/ceilometer/handlers/main.yml b/ansible/roles/ceilometer/handlers/main.yml index a5bcf9788f..162cacc2ce 100644 --- a/ansible/roles/ceilometer/handlers/main.yml +++ b/ansible/roles/ceilometer/handlers/main.yml @@ -1,28 +1,4 @@ --- -- name: Restart ceilometer-api container - vars: - service_name: "ceilometer-api" - service: "{{ ceilometer_services[service_name] }}" - config_json: "{{ ceilometer_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" - ceilometer_conf: "{{ ceilometer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" - policy_json: "{{ ceilometer_policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" - ceilometer_api_container: "{{ check_ceilometer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" - kolla_docker: - action: "recreate_or_restart_container" - common_options: "{{ docker_common_options }}" - name: "{{ service.container_name }}" - image: "{{ service.image }}" - volumes: "{{ service.volumes }}" - when: - - action != "config" - - inventory_hostname in groups[service.group] - - service.enabled | bool - - config_json.changed | bool - or ceilometer_conf.changed | bool - or policy_json.changed | bool - or wsgi_ceilometer_api.changed | bool - or ceilometer_api_container.changed | bool - - name: Restart ceilometer-notification container vars: service_name: "ceilometer-notification" @@ -72,31 +48,6 @@ or policy_json.changed | bool or ceilometer_central_container.changed | bool -- name: Restart ceilometer-collector container - vars: - service_name: "ceilometer-collector" - service: "{{ ceilometer_services[service_name] }}" - config_json: "{{ ceilometer_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" - ceilometer_conf: "{{ ceilometer_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" - policy_json: "{{ ceilometer_policy_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}" - ceilometer_collector_container: "{{ check_ceilometer_containers.results|selectattr('item.key', 'equalto', service_name)|first }}" - panko_conf: "{{ panko_confs.results|selectattr('item.key', 'equalto', service_name)|first }}" - kolla_docker: - action: "recreate_or_restart_container" - common_options: "{{ docker_common_options }}" - name: "{{ service.container_name }}" - image: "{{ service.image }}" - volumes: "{{ service.volumes }}" - when: - - action != "config" - - inventory_hostname in groups[service.group] - - service.enabled | bool - - config_json.changed | bool - or ceilometer_conf.changed | bool - or policy_json.changed | bool - or ceilometer_collector_container.changed | bool - or panko_conf.changed | bool - - name: Restart ceilometer-compute container vars: service_name: "ceilometer-compute" diff --git a/ansible/roles/ceilometer/tasks/bootstrap.yml b/ansible/roles/ceilometer/tasks/bootstrap.yml index 36dcfa60e7..22ec22504e 100644 --- a/ansible/roles/ceilometer/tasks/bootstrap.yml +++ b/ansible/roles/ceilometer/tasks/bootstrap.yml @@ -1,68 +1,3 @@ --- -- name: Creating Ceilometer MongoDB database - command: docker exec -t mongodb mongo --host {{ ceilometer_database_mongodb_address }} --eval 'db = db.getSiblingDB("{{ ceilometer_database_name }}"); db.createUser({user':' "{{ ceilometer_database_user }}", pwd':' "{{ ceilometer_database_password }}", roles':' [ "readWrite", "dbAdmin" ]})' - register: mongodb_ceilometer_database - run_once: true - changed_when: "{{ 'already' not in mongodb_ceilometer_database.stdout }}" - failed_when: "{{ mongodb_ceilometer_database.stdout.split()[4] != 'connecting' }}" - delegate_to: "{{ groups['mongodb'][0] }}" - when: - - ceilometer_database_type == "mongodb" - -- name: Creating external Ceilometer MySQL database by using given credential - kolla_toolbox: - module_name: mysql_db - module_args: - login_host: "{{ ceilometer_database_mysql_address }}" - login_port: "{{ ceilometer_database_port }}" - login_user: "{{ ceilometer_database_user }}" - login_password: "{{ ceilometer_database_password }}" - name: "{{ ceilometer_database_name }}" - register: mysql_access - failed_when: False - changed_when: False - run_once: True - when: - - ceilometer_database_type == "mysql" - -- name: Fallback to create internal Ceilometer MySQL database - 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: "{{ ceilometer_database_name }}" - register: mysql_ceilometer_database - run_once: True - delegate_to: "{{ groups['ceilometer-api'][0] }}" - when: - - ceilometer_database_type == "mysql" - - mysql_access.failed - -- name: Creating Ceilometer database user and setting permissions - 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: "{{ ceilometer_database_user }}" - password: "{{ ceilometer_database_password }}" - host: "%" - priv: "{{ ceilometer_database_name }}.*:ALL" - append_privs: "yes" - run_once: True - delegate_to: "{{ groups['ceilometer-api'][0] }}" - when: - - ceilometer_database_type == "mysql" - - mysql_access.failed - -# TODO(Jeffrey4l): fix idempotent when ceilometer_database_type == "gnocchi" -# NOTE(vbel): bootstrapping of mysql db for ceilometer is idempotent +# TODO(Jeffrey4l): fix idempotent - include: bootstrap_service.yml - when: ((ceilometer_database_type == "mongodb" and mongodb_ceilometer_database.changed) - or (ceilometer_database_type == "mysql" and mysql_ceilometer_database.changed ) - or ceilometer_database_type == "gnocchi") diff --git a/ansible/roles/ceilometer/tasks/bootstrap_service.yml b/ansible/roles/ceilometer/tasks/bootstrap_service.yml index ed506266e8..c95b2e19bf 100644 --- a/ansible/roles/ceilometer/tasks/bootstrap_service.yml +++ b/ansible/roles/ceilometer/tasks/bootstrap_service.yml @@ -9,7 +9,7 @@ environment: KOLLA_BOOTSTRAP: KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" - CEILOMETER_DATABASE_TYPE: "{{ ceilometer_database_type }}" + CEILOMETER_DATABASE_TYPE: "gnocchi" image: "{{ ceilometer_api.image }}" labels: BOOTSTRAP: diff --git a/ansible/roles/ceilometer/tasks/config.yml b/ansible/roles/ceilometer/tasks/config.yml index 254cf0520f..aaedbdc5c8 100644 --- a/ansible/roles/ceilometer/tasks/config.yml +++ b/ansible/roles/ceilometer/tasks/config.yml @@ -19,29 +19,10 @@ - item.value.enabled | bool with_dict: "{{ ceilometer_services }}" notify: - - Restart ceilometer-api container - Restart ceilometer-notification container - Restart ceilometer-central container - - Restart ceilometer-collector container - Restart ceilometer-compute container -- name: Copying over wsgi-ceilometer-api.conf - vars: - service: "{{ ceilometer_services['ceilometer-api'] }}" - template: - src: "{{ item }}" - dest: "{{ node_config_directory }}/ceilometer-api/wsgi-ceilometer-api.conf" - with_first_found: - - "{{ node_custom_config }}/ceilometer/{{ inventory_hostname }}/wsgi-ceilometer-api.conf" - - "{{ node_custom_config }}/ceilometer/wsgi-ceilometer-api.conf" - - "wsgi-ceilometer-api.conf.j2" - register: wsgi_ceilometer_api - when: - - inventory_hostname in groups[service.group] - - service.enabled | bool - notify: - - Restart ceilometer-api container - - name: Copying over ceilometer.conf vars: service_name: "{{ item.key }}" @@ -61,10 +42,8 @@ - inventory_hostname in groups[item.value.group] with_dict: "{{ ceilometer_services }}" notify: - - Restart ceilometer-api container - Restart ceilometer-notification container - Restart ceilometer-central container - - Restart ceilometer-collector container - Restart ceilometer-compute container - name: Copying over event and pipeline yaml for notification service @@ -88,7 +67,6 @@ vars: service_require_panko_conf: - ceilometer-notification - - ceilometer-collector merge_configs: sources: - "{{ role_path }}/../panko/templates/panko.conf.j2" @@ -99,7 +77,7 @@ dest: "{{ node_config_directory }}/{{ item.key }}/panko.conf" register: panko_confs when: - - ceilometer_event_type == 'panko' + - enable_panko | bool - item.value.enabled | bool - inventory_hostname in groups[item.value.group] - item.key in service_require_panko_conf @@ -123,10 +101,8 @@ - item.value.enabled | bool with_dict: "{{ ceilometer_services }}" notify: - - Restart ceilometer-api container - Restart ceilometer-notification container - Restart ceilometer-central container - - Restart ceilometer-collector container - Restart ceilometer-compute container # check whether the containers parameter is changed. If yes, trigger the handler. @@ -145,8 +121,6 @@ - item.value.enabled | bool with_dict: "{{ ceilometer_services }}" notify: - - Restart ceilometer-api container - Restart ceilometer-notification container - Restart ceilometer-central container - - Restart ceilometer-collector container - Restart ceilometer-compute container diff --git a/ansible/roles/ceilometer/tasks/precheck.yml b/ansible/roles/ceilometer/tasks/precheck.yml index 28b64bdbbb..ce5dff8b42 100644 --- a/ansible/roles/ceilometer/tasks/precheck.yml +++ b/ansible/roles/ceilometer/tasks/precheck.yml @@ -1,35 +1,8 @@ --- -- name: Get container facts - kolla_container_facts: - name: - - ceilometer_api - register: container_facts - -- name: Checking free port for Ceilometer API - wait_for: - host: "{{ api_interface_address }}" - port: "{{ ceilometer_api_port }}" - connect_timeout: 1 - timeout: 1 - state: stopped - when: - - container_facts['ceilometer_api'] is not defined - - inventory_hostname in groups['ceilometer-api'] - -- name: Checking mongodb backend for ceilometer - run_once: True - local_action: fail msg="ceilometer_database_type set to 'mongodb' but mongodb is not enabled" - changed_when: false - when: - - enable_ceilometer | bool - - not enable_mongodb | bool - - ceilometer_database_type == "mongodb" - - name: Checking gnocchi backend for ceilometer run_once: True - local_action: fail msg="ceilometer_database_type or ceilometer_event_type set to 'gnocchi' but gnocchi is not enabled" + local_action: fail msg="gnocchi is required but not enabled" changed_when: false when: - enable_ceilometer | bool - not enable_gnocchi | bool - - (ceilometer_database_type == "gnocchi" or ceilometer_event_type == "gnocchi") diff --git a/ansible/roles/ceilometer/tasks/register.yml b/ansible/roles/ceilometer/tasks/register.yml index f80d2ab8d1..2f81202f47 100644 --- a/ansible/roles/ceilometer/tasks/register.yml +++ b/ansible/roles/ceilometer/tasks/register.yml @@ -1,24 +1,4 @@ --- -- name: Creating the Ceilometer service and endpoint - kolla_toolbox: - module_name: "kolla_keystone_service" - module_args: - service_name: "ceilometer" - service_type: "metering" - description: "Openstack Telemetry" - endpoint_region: "{{ openstack_region_name }}" - url: "{{ item.url }}" - interface: "{{ item.interface }}" - region_name: "{{ openstack_region_name }}" - auth: "{{ '{{ openstack_ceilometer_auth }}' }}" - module_extra_vars: - openstack_ceilometer_auth: "{{ openstack_ceilometer_auth }}" - run_once: True - with_items: - - {'interface': 'admin', 'url': '{{ ceilometer_admin_endpoint }}'} - - {'interface': 'internal', 'url': '{{ ceilometer_internal_endpoint }}'} - - {'interface': 'public', 'url': '{{ ceilometer_public_endpoint }}'} - - name: Creating the Ceilometer project, user, and role kolla_toolbox: module_name: "kolla_keystone_user" diff --git a/ansible/roles/ceilometer/tasks/upgrade.yml b/ansible/roles/ceilometer/tasks/upgrade.yml index c38db1adf4..93431db991 100644 --- a/ansible/roles/ceilometer/tasks/upgrade.yml +++ b/ansible/roles/ceilometer/tasks/upgrade.yml @@ -3,5 +3,17 @@ - include: bootstrap_service.yml +# TODO(jeffrey4l): ceilometer-api and ceilometer-collector are marked as +# deprecated and will be removed already. Upgrade to Pike should remove +# ceilometer-api and ceilometer-collector container. This task should be +# remove in Q cycle. +- name: Containers are being removed + kolla_docker: + name: "{{ item }}" + action: remove_container + with_items: + - ceilometer_api + - ceilometer_collector + - name: Flush handlers meta: flush_handlers diff --git a/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 b/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 index 271d5e0f79..fccdc6f6ab 100644 --- a/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 +++ b/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 @@ -9,19 +9,6 @@ "dest": "/etc/ceilometer/ceilometer.conf", "owner": "ceilometer", "perm": "0600" - }, - { - "source": "{{ container_config_directory }}/wsgi-ceilometer-api.conf", - "dest": "/etc/{{ apache_dir }}/{{ apache_file }}", - "owner": "ceilometer", - "perm": "0600" - }, - { - "source": "{{ container_config_directory }}/policy.json", - "dest": "/etc/ceilometer/policy.json", - "owner": "ceilometer", - "perm": "0600", - "optional": true } ], "permissions": [ diff --git a/ansible/roles/ceilometer/templates/ceilometer-collector.json.j2 b/ansible/roles/ceilometer/templates/ceilometer-collector.json.j2 deleted file mode 100644 index 204dfc5f39..0000000000 --- a/ansible/roles/ceilometer/templates/ceilometer-collector.json.j2 +++ /dev/null @@ -1,32 +0,0 @@ -{ - "command": "ceilometer-collector", - "config_files": [ - { - "source": "{{ container_config_directory }}/ceilometer.conf", - "dest": "/etc/ceilometer/ceilometer.conf", - "owner": "ceilometer", - "perm": "0600" - }, - { - "source": "{{ container_config_directory }}/policy.json", - "dest": "/etc/ceilometer/policy.json", - "owner": "ceilometer", - "perm": "0600", - "optional": true - }, - { - "source": "{{ container_config_directory }}/panko.conf", - "dest": "/etc/panko/panko.conf", - "owner": "ceilometer", - "perm": "0600", - "optional": true - } - ], - "permissions": [ - { - "path": "/var/log/kolla/ceilometer", - "owner": "ceilometer:ceilometer", - "recurse": true - } - ] -} diff --git a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 index 2bcf8e9591..93ea7b99b4 100644 --- a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 +++ b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 @@ -5,35 +5,6 @@ log_dir = /var/log/kolla/ceilometer transport_url = rabbit://{% for host in groups['rabbitmq'] %}{{ rabbitmq_user }}:{{ rabbitmq_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ rabbitmq_port }}{% if not loop.last %},{% endif %}{% endfor %} -{% if ceilometer_event_type == "mongodb" %} -event_dispatchers = database -{% elif ceilometer_event_type == "gnocchi" %} -event_dispatchers = gnocchi -{% elif ceilometer_event_type == "panko" %} -event_dispatchers = panko -{% endif %} - -{% if ceilometer_database_type == 'gnocchi' %} -meter_dispatchers = gnocchi -{% else %} -meter_dispatchers = database -{% endif %} - -[api] -port = {{ ceilometer_api_port }} -host = {{ api_interface_address }} - -[collector] - -[database] -{% if ceilometer_database_type == "mongodb" %} -event_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mongodb_address }}/{{ ceilometer_database_name }} -metering_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mongodb_address }}/{{ ceilometer_database_name }} -{% elif ceilometer_database_type == "mysql" %} -event_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mysql_address }}:{{ ceilometer_database_port }}/{{ ceilometer_database_name }} -metering_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_mysql_address }}:{{ ceilometer_database_port }}/{{ ceilometer_database_name }} -{% endif %} - [keystone_authtoken] auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }} project_domain_name = {{ default_project_domain_name }} @@ -59,9 +30,3 @@ project_domain_id = {{ default_project_domain_id }} user_domain_id = {{ default_user_domain_id }} auth_type = password interface = internal - -{% if ceilometer_database_type == 'gnocchi' %} -[dispatcher_gnocchi] -filter_service_activity = False -url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ gnocchi_api_port }} -{% endif %} diff --git a/ansible/roles/ceilometer/templates/event_definitions.yaml.j2 b/ansible/roles/ceilometer/templates/event_definitions.yaml.j2 index 5f0d82ae5e..d87e1dca86 100644 --- a/ansible/roles/ceilometer/templates/event_definitions.yaml.j2 +++ b/ansible/roles/ceilometer/templates/event_definitions.yaml.j2 @@ -1,5 +1,5 @@ --- -- event_type: compute.instance.* +- event_type: 'compute.instance.*' traits: &instance_traits tenant_id: fields: payload.tenant_id @@ -7,6 +7,8 @@ fields: payload.user_id instance_id: fields: payload.instance_id + resource_id: + fields: payload.instance_id host: fields: publisher_id.`split(., 1, 1)` service: @@ -45,6 +47,11 @@ deleted_at: type: datetime fields: payload.deleted_at +- event_type: compute.instance.update + traits: + <<: *instance_traits + old_state: + fields: payload.old_state - event_type: compute.instance.exists traits: <<: *instance_traits @@ -96,7 +103,7 @@ fields: payload.image_id host: fields: payload.host -- event_type: ['image.update', 'image.upload', 'image.delete'] +- event_type: ['image.create', 'image.update', 'image.upload', 'image.delete'] traits: &glance_crud project_id: fields: payload.owner @@ -127,6 +134,7 @@ destination_ip: fields: payload.destination_ip bytes_sent: + type: int fields: payload.bytes_sent - event_type: orchestration.stack.* traits: &orchestration_crud @@ -252,14 +260,6 @@ fields: payload.target.metadata.object observer_id: fields: payload.observer.id -- event_type: magnetodb.table.* - traits: &kv_store - resource_id: - fields: payload.table_uuid - user_id: - fields: _context_user_id - project_id: - fields: _context_tenant - event_type: ['network.*', 'subnet.*', 'port.*', 'router.*', 'floatingip.*', 'pool.*', 'vip.*', 'member.*', 'health_monitor.*', 'healthmonitor.*', 'listener.*', 'loadbalancer.*', 'firewall.*', 'firewall_policy.*', 'firewall_rule.*', 'vpnservice.*', 'ipsecpolicy.*', 'ikepolicy.*', 'ipsec_site_connection.*'] traits: &network_traits user_id: @@ -551,3 +551,35 @@ fields: payload.info.db.statement db.params: fields: payload.info.db.params +- event_type: 'magnum.bay.*' + traits: &magnum_bay_crud + id: + fields: payload.id + typeURI: + fields: payload.typeURI + eventType: + fields: payload.eventType + eventTime: + fields: payload.eventTime + action: + fields: payload.action + outcome: + fields: payload.outcome + initiator_id: + fields: payload.initiator.id + initiator_typeURI: + fields: payload.initiator.typeURI + initiator_name: + fields: payload.initiator.name + initiator_host_agent: + fields: payload.initiator.host.agent + initiator_host_address: + fields: payload.initiator.host.address + target_id: + fields: payload.target.id + target_typeURI: + fields: payload.target.typeURI + observer_id: + fields: payload.observer.id + observer_typeURI: + fields: payload.observer.typeURI diff --git a/ansible/roles/ceilometer/templates/event_pipeline.yaml.j2 b/ansible/roles/ceilometer/templates/event_pipeline.yaml.j2 index 10275f7492..2b056acac1 100644 --- a/ansible/roles/ceilometer/templates/event_pipeline.yaml.j2 +++ b/ansible/roles/ceilometer/templates/event_pipeline.yaml.j2 @@ -8,6 +8,10 @@ sources: sinks: - name: event_sink transformers: - triggers: publishers: - - notifier:// +{% if enable_gnocchi | bool %} + - gnocchi:// +{% endif %} +{% if enable_panko | bool %} + - panko:// +{% endif %} diff --git a/ansible/roles/ceilometer/templates/pipeline.yaml.j2 b/ansible/roles/ceilometer/templates/pipeline.yaml.j2 index a5bd5148e7..53106399c2 100644 --- a/ansible/roles/ceilometer/templates/pipeline.yaml.j2 +++ b/ansible/roles/ceilometer/templates/pipeline.yaml.j2 @@ -1,20 +1,17 @@ --- sources: - name: meter_source - interval: 600 meters: - "*" sinks: - meter_sink - name: cpu_source - interval: 600 meters: - "cpu" sinks: - cpu_sink - cpu_delta_sink - name: disk_source - interval: 600 meters: - "disk.read.bytes" - "disk.read.requests" @@ -27,7 +24,6 @@ sources: sinks: - disk_sink - name: network_source - interval: 600 meters: - "network.incoming.bytes" - "network.incoming.packets" @@ -39,7 +35,7 @@ sinks: - name: meter_sink transformers: publishers: - - notifier:// + - gnocchi:// - name: cpu_sink transformers: - name: "rate_of_change" @@ -50,7 +46,7 @@ sinks: type: "gauge" scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" publishers: - - notifier:// + - gnocchi:// - name: cpu_delta_sink transformers: - name: "delta" @@ -59,7 +55,7 @@ sinks: name: "cpu.delta" growth_only: True publishers: - - notifier:// + - gnocchi:// - name: disk_sink transformers: - name: "rate_of_change" @@ -74,7 +70,7 @@ sinks: unit: "\\1/s" type: "gauge" publishers: - - notifier:// + - gnocchi:// - name: network_sink transformers: - name: "rate_of_change" @@ -89,4 +85,4 @@ sinks: unit: "\\1/s" type: "gauge" publishers: - - notifier:// + - gnocchi:// diff --git a/ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j2 b/ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j2 deleted file mode 100644 index 4adb84bf29..0000000000 --- a/ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j2 +++ /dev/null @@ -1,24 +0,0 @@ -{% set python_path = '/usr/lib/python2.7/site-packages' if kolla_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %} -Listen {{ api_interface_address }}:{{ ceilometer_api_port }} - - - LogLevel info - ErrorLog /var/log/kolla/ceilometer/ceilometer-api.log - CustomLog /var/log/kolla/ceilometer/ceilometer-api-access.log combined - - WSGIScriptReloading On - WSGIDaemonProcess ceilometer-api processes={{ openstack_service_workers }} threads=1 user=ceilometer group=ceilometer display-name=%{GROUP} python-path={{ python_path }} - WSGIProcessGroup ceilometer-api - WSGIScriptAlias / {{ python_path }}/ceilometer/api/app.wsgi - - - = 2.4> - Require all granted - - - Order allow,deny - Allow from all - - - - diff --git a/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 b/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 index 0039d80405..bd523c2f49 100644 --- a/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 +++ b/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 @@ -1,7 +1,7 @@ @type rewrite_tag_filter capitalize_regex_backreference yes - rewriterule1 programname ^(horizon-access|ceilometer-api-access|keystone-apache-admin-access|keystone-apache-public-access|cinder-api-access)$ apache_access + rewriterule1 programname ^(horizon-access|keystone-apache-admin-access|keystone-apache-public-access|cinder-api-access)$ apache_access rewriterule2 programname ^(aodh_wsgi_access | zun_api_wsgi_access)$ wsgi_access rewriterule3 programname ^(nova-api|nova-compute|nova-conductor|nova-consoleauth|nova-manage|nova-novncproxy|nova-scheduler|nova-placement-api|placement-api|placement-api-access|privsep-helper).* openstack_python rewriterule4 programname ^(sahara-api|sahara-engine).* openstack_python @@ -11,7 +11,7 @@ rewriterule8 programname ^(heat-engine|heat-api|heat-api-cfn).* openstack_python rewriterule9 programname ^(glance-api|glance-registry).* openstack_python rewriterule10 programname ^(cloudkitty-storage-init|cloudkitty-processor|cloudkitty-dbsync|cloudkitty-api).* openstack_python - rewriterule11 programname ^(ceilometer-polling|ceilometer-collector|ceilometer-agent-notification|loadwsgi).* openstack_python + rewriterule11 programname ^(ceilometer-polling|ceilometer-agent-notification).* openstack_python rewriterule12 programname ^(barbican-worker|barbican-keystone-listener|barbican-db-manage|barbican-api|app).* openstack_python rewriterule13 programname ^(aodh-notifier|aodh-listener|aodh-evaluator|aodh-dbsync).* openstack_python rewriterule14 programname ^(cinder-api|cinder-scheduler|cinder-manage|cinder-volume|cinder-backup|privsep-helper).* openstack_python diff --git a/ansible/roles/haproxy/tasks/precheck.yml b/ansible/roles/haproxy/tasks/precheck.yml index 601eceb612..bc8840ef76 100644 --- a/ansible/roles/haproxy/tasks/precheck.yml +++ b/ansible/roles/haproxy/tasks/precheck.yml @@ -116,18 +116,6 @@ - inventory_hostname in groups['haproxy'] - haproxy_stat.find('barbican_api') == -1 -- name: Checking free port for Ceilometer API HAProxy - wait_for: - host: "{{ kolla_internal_vip_address }}" - port: "{{ ceilometer_api_port }}" - connect_timeout: 1 - timeout: 1 - state: stopped - when: - - enable_ceilometer | bool - - inventory_hostname in groups['haproxy'] - - haproxy_stat.find('ceilometer_api') == -1 - - name: Checking free port for Cinder API HAProxy wait_for: host: "{{ kolla_internal_vip_address }}" diff --git a/ansible/roles/haproxy/templates/haproxy.cfg.j2 b/ansible/roles/haproxy/templates/haproxy.cfg.j2 index ab022f3895..8896c2c8dc 100644 --- a/ansible/roles/haproxy/templates/haproxy.cfg.j2 +++ b/ansible/roles/haproxy/templates/haproxy.cfg.j2 @@ -710,22 +710,6 @@ listen barbican_api_external {% endif %} {% endif %} -{% if enable_ceilometer | bool %} -listen ceilometer_api - bind {{ kolla_internal_vip_address }}:{{ ceilometer_api_port }} -{% for host in groups['ceilometer-api'] %} - server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ ceilometer_api_port }} check inter 2000 rise 2 fall 5 -{% endfor %} -{% if haproxy_enable_external_vip | bool %} - -listen ceilometer_api_external - bind {{ kolla_external_vip_address }}:{{ ceilometer_api_port }} {{ tls_bind_info }} -{% for host in groups['ceilometer-api'] %} - server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ ceilometer_api_port }} check inter 2000 rise 2 fall 5 -{% endfor %} -{% endif %} -{% endif %} - {% if enable_aodh | bool %} listen aodh_api bind {{ kolla_internal_vip_address }}:{{ aodh_api_port }} diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index fe9b84614e..3b2532cd64 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -249,15 +249,6 @@ kolla_internal_vip_address: "10.10.10.254" #glance_backend_ceph: "no" #glance_backend_vmware: "no" -####################### -# Ceilometer options -####################### -# Valid options are [ mongodb, mysql, gnocchi ] -#ceilometer_database_type: "mongodb" - -# Valid options are [ mongodb, gnocchi, panko ] -#ceilometer_event_type: "mongodb" - ####################### # Barbican options diff --git a/releasenotes/notes/remove-ceilometer-useless-service-4e210ddc1c48ac48.yaml b/releasenotes/notes/remove-ceilometer-useless-service-4e210ddc1c48ac48.yaml new file mode 100644 index 0000000000..b2cc30e227 --- /dev/null +++ b/releasenotes/notes/remove-ceilometer-useless-service-4e210ddc1c48ac48.yaml @@ -0,0 +1,8 @@ +--- +upgrade: + - | + ceilometer-api is marked as deprecated and useless now by + Ib88957001de2a61f9625ca5584a2129216647841, it will not be deployed. + ceilometer-notification is marked as deprecated and useless now by + I25a6e0b9221844adb4412f1829d9e290b6e198a3, it will not be deployed. + ceilometer_database_type and ceilometer_event_type variable is ignored.