Add searchlight listener and api services

searchlight-api and searchlight-listener allows
to use searchlight service.

Change-Id: Idc37e788436299f2ff08956e960d51e66236b9b9
This commit is contained in:
Peter Razumovsky 2016-12-08 17:31:46 +04:00
parent 24f1cc784f
commit 6e1933b47e
7 changed files with 236 additions and 0 deletions

View File

@ -0,0 +1,4 @@
FROM {{ image_spec("searchlight-base") }}
MAINTAINER {{ maintainer }}
USER searchlight

View File

@ -0,0 +1,11 @@
FROM {{ image_spec("openstack-base") }}
MAINTAINER {{ maintainer }}
{{ copy_sources("openstack/searchlight", "/searchlight") }}
RUN useradd --user-group -G microservices searchlight \
&& /var/lib/microservices/venv/bin/pip install --upgrade /searchlight \
&& mkdir -p /var/lib/searchlight /etc/searchlight \
&& cp -r /searchlight/etc/* /etc/searchlight/ \
&& chown -R searchlight:searchlight /etc/searchlight /var/lib/searchlight \
&& rm -r /searchlight

View File

@ -0,0 +1,4 @@
FROM {{ image_spec("searchlight-base") }}
MAINTAINER {{ maintainer }}
USER searchlight

View File

@ -0,0 +1,22 @@
configs:
searchlight:
api_port:
cont: 9393
ingress: search
debug: false
user: searchlight
password: password
notification_driver: messagingv2
services:
# enable only services from fuel-ccp/etc/topology-example.yaml by default
nova: true
neutron: true
glance: true
cinder: false
# do not enable this service until it has no ccp plugin
swift: false
sources:
openstack/searchlight:
git_url: https://git.openstack.org/openstack/searchlight.git
git_ref: stable/newton

View File

@ -0,0 +1,97 @@
[DEFAULT]
use_syslog = false
use_stderr = true
debug = {{ searchlight.debug }}
transport_url = rabbit://{{ rabbitmq.user }}:{{ rabbitmq.password }}@{{ address("rabbitmq") }}:{{ rabbitmq.port.cont }}/
[api]
bind_port = {{ searchlight.api_port.cont }}
bind_host = {{ network_topology["private"]["address"] }}
[service_credentials]
auth_plugin = password
username = {{ searchlight.user }}
password = {{ searchlight.password }}
tenant_name = service
os_region_name = RegionOne
auth_uri = {{ address('keystone', keystone.public_port, with_scheme=True) }}
auth_url = {{ address('keystone', keystone.admin_port, with_scheme=True) }}
[keystone_authtoken]
auth_uri = {{ address('keystone', keystone.public_port, with_scheme=True) }}
auth_url = {{ address('keystone', keystone.admin_port, with_scheme=True) }}
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = {{ searchlight.user }}
password = {{ searchlight.password }}
memcached_servers = {{ address("memcached", memcached.port) }}
[paste_deploy]
flavor = keystone
[oslo_concurrency]
lock_path = /var/lib/searchlight/temp
[listener]
notifications_pool = searchlight
[resource_plugin]
resource_group_name = searchlight
[service_credentials:nova]
compute_api_version = 2.1
[resource_plugin:os_nova_server]
enabled = {{ searchlight.services.nova }}
admin_only_fields = OS-EXT-SRV*,OS-EXT-STS:vm_state
[resource_plugin:os_nova_hypervisor]
enabled = {{ searchlight.services.nova }}
[resource_plugin:os_nova_flavor]
enabled = {{ searchlight.services.nova }}
[resource_plugin:os_nova_servergroup]
enabled = {{ searchlight.services.nova }}
[resource_plugin:os_glance_image]
enabled = {{ searchlight.services.glance }}
[resource_plugin:os_glance_metadef]
enabled = {{ searchlight.services.glance }}
[resource_plugin:os_cinder_volume]
enabled = {{ searchlight.services.cinder }}
[resource_plugin:os_cinder_snapshot]
enabled = {{ searchlight.services.cinder }}
[resource_plugin:os_neutron_net]
enabled = {{ searchlight.services.neutron }}
admin_only_fields=admin_state_up,status
[resource_plugin:os_neutron_port]
enabled = {{ searchlight.services.neutron }}
[resource_plugin:os_neutron_security_group]
enabled = {{ searchlight.services.neutron }}
[resource_plugin:os_designate_zone]
enabled = false
[resource_plugin:os_designate_recordset]
enabled = false
[resource_plugin:os_swift_account]
enabled = {{ searchlight.services.swift }}
[resource_plugin:os_swift_container]
enabled = {{ searchlight.services.swift }}
[resource_plugin:os_swift_object]
enabled = {{ searchlight.services.swift }}
[elasticsearch]
hosts = {{ address('elasticsearch', elasticsearch.port, with_scheme=True) }}

View File

@ -0,0 +1,75 @@
dsl_version: 0.1.0
service:
name: searchlight-api
ports:
- {{ searchlight.api_port }}
containers:
- name: searchlight-api
image: searchlight-api
# TODO(prazumovsky): add probes
pre:
- name: searchlight-elasticsearch-sync
dependencies:
- elasticsearch
# {% if searchlight.services.nova %}
- nova-api
# {% endif %}
# {% if searchlight.services.glance %}
- glance-api
# {% endif %}
# {% if searchlight.services.neutron %}
- neutron-server
# {% endif %}
# {% if searchlight.services.cinder %}
- cinder-api
# {% endif %}
files:
- searchlight-conf
type: local
command: searchlight-manage --config-file /etc/searchlight/searchlight.conf index sync --force
- name: searchlight-user-create
dependencies:
- keystone-create-project
type: single
command: openstack user create --domain default --password {{ searchlight.password }} {{ searchlight.user }}
- name: searchlight-admin-role-add
dependencies:
- searchlight-user-create
type: single
command: openstack role add --project service --user {{ searchlight.user }} admin
- name: searchlight-service-create
dependencies:
- keystone-create-project
type: single
command: openstack service create --name searchlight --description "Searchlight Service" search
- name: searchlight-public-endpoint-create
dependencies:
- searchlight-service-create
type: single
command: openstack endpoint create --region RegionOne search public {{ address('searchlight-api', searchlight.api_port, external=True, with_scheme=True) }}
- name: searchlight-internal-endpoint-create
dependencies:
- searchlight-service-create
type: single
command: openstack endpoint create --region RegionOne search internal {{ address('searchlight-api', searchlight.api_port, with_scheme=True) }}
- name: searchlight-admin-endpoint-create
dependencies:
- searchlight-service-create
type: single
command: openstack endpoint create --region RegionOne search admin {{ address('searchlight-api', searchlight.api_port, with_scheme=True) }}
daemon:
dependencies:
- rabbitmq
files:
- searchlight-conf
command: searchlight-api --config-file /etc/searchlight/searchlight.conf
files:
searchlight-conf:
path: /etc/searchlight/searchlight.conf
content: searchlight.conf.j2

View File

@ -0,0 +1,23 @@
dsl_version: 0.1.0
service:
name: searchlight-listener
containers:
- name: searchlight-listener
image: searchlight-listener
# TODO(prazumovsky): add probes
probes:
readiness: "true"
liveness:
command: "true"
type: "exec"
daemon:
dependencies:
- searchlight-api
files:
- searchlight-conf
command: searchlight-listener --config-file /etc/searchlight/searchlight.conf
files:
searchlight-conf:
path: /etc/searchlight/searchlight.conf
content: searchlight.conf.j2