Searchlight
Searchlight is an OpenStack project that provides indexed, searchable views of OpenStack resources using a pluggable search backend (search and discovery for cloud infrastructure).
- Indexed search across OpenStack resources via a shared search backend (search and discovery).
- Integration with OpenStack services such as Glance and Nova through resource indexers and plugins (cloud infrastructure management).
- Representational State Transfer (REST) Application Programming Interface (API) for querying, filtering, and faceting cloud resource data (API-based search interface).
- Support for notifications-based indexing to keep search data synchronized with underlying services (data synchronization).
- Policy and Role-Based Access Control (RBAC) aligned with OpenStack Keystone for query authorization (identity and access control).
More About Searchlight
Searchlight is an OpenStack project that provides search and indexing capabilities (search and discovery) for OpenStack-managed resources, enabling operators and users to query metadata about instances, images, and other cloud objects through a common search service. It addresses the problem of discovering and filtering resources across multiple OpenStack services, which individually expose their own APIs and databases but do not always provide unified or cross-service search.
At its core, Searchlight defines an indexing service that consumes notifications from OpenStack components and builds a searchable index of resource representations (search indexing). It is designed to work with a pluggable backend, most commonly Elasticsearch, though the architecture treats the search engine as an implementation detail behind a driver interface. Resources from services such as Glance (image service) and Nova (compute) are mapped into index documents, including relevant metadata that can later be queried, filtered, and aggregated.
Searchlight exposes a REST API (API-based search interface) that allows clients to perform free-text search, structured filtering, and faceting operations across indexed resources. The API supports concepts such as resource types, query DSL structures, and pagination, allowing integration with dashboards, automation tools, and custom user interfaces. Horizon, the OpenStack dashboard, can use Searchlight to provide search-based navigation and discovery of resources via a dedicated plugin, though Searchlight itself is not limited to any particular UI.
The project implements a plugin model (extensibility framework) in which resource plugins define how to serialize OpenStack resources into index documents, how to handle notifications, and how to expose searchable fields. This model enables operators or distributions to extend Searchlight to additional OpenStack services or custom resources by adding new plugins without changing the core service. Index synchronization is typically driven by OpenStack’s notification system (messaging and events), which allows Searchlight to update its indexes as resources are created, modified, or deleted.
From an operational standpoint, Searchlight participates in the OpenStack authentication and authorization model via Keystone (identity and access management). Queries are evaluated in the context of a project and user, and Searchlight enforces policy so that search results align with the caller’s permissions on the underlying services. This helps enterprises maintain consistent access control while exposing a consolidated search endpoint that can span projects and services as permitted by policy.
In enterprise and institutional deployments, Searchlight fits into the category of search and discovery for cloud infrastructure, providing an indexed catalog of OpenStack resources that can be integrated with operations tooling, self-service portals, and inventory systems. Its role is to enhance observability of resource metadata rather than to replace monitoring or logging systems. By aggregating searchable views across services, it supports use cases such as locating resources by tag, image properties, or metadata fields, implementing policy-driven cleanup workflows, or powering UI components that require cross-service filtering and lookup.