Maestro
Maestro transforms metadata in Song into a search index that Arranger can expose through a search API and UI.
If you have not yet deployed your search engine, return to Search Engine first.
Maestro communicates with the search engine over the Elasticsearch 7.x REST API, which OpenSearch 2.x also serves, so the same MAESTRO_ELASTICSEARCH_* variables below drive an OpenSearch cluster. Point MAESTRO_ELASTICSEARCH_CLUSTER_NODES at your OpenSearch node (for example http://opensearch:9200), and if you disabled the OpenSearch security plugin as shown above, set MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_ENABLED=false since no credentials are required.
Running Maestro
-
Create an env file: Create a file named
.env.maestrowith the following content:# ==============================# Maestro Environment Variables# ==============================# Maestro VariablesMAESTRO_FAILURELOG_ENABLED=trueMAESTRO_FAILURELOG_DIR=app/logs/maestroMAESTRO_LOGGING_LEVEL_ROOT=INFOMAESTRO_NOTIFICATIONS_SLACK_ENABLED=false# Song VariablesMAESTRO_REPOSITORIES_0_CODE=song.overtureMAESTRO_REPOSITORIES_0_URL=http://song:8080MAESTRO_REPOSITORIES_0_NAME=OvertureMAESTRO_REPOSITORIES_0_ORGANIZATION=OvertureMAESTRO_REPOSITORIES_0_COUNTRY=CA# Elasticsearch VariablesMAESTRO_ELASTICSEARCH_CLUSTER_NODES=http://elasticsearch:9200MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_USER=elasticMAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_PASSWORD=myelasticpasswordMAESTRO_ELASTICSEARCH_CLIENT_TRUSTSELFSIGNEDCERT=trueMAESTRO_ELASTICSEARCH_INDEXES_ANALYSISCENTRIC_ENABLED=falseMAESTRO_ELASTICSEARCH_INDEXES_FILECENTRIC_ENABLED=trueMAESTRO_ELASTICSEARCH_INDEXES_FILECENTRIC_NAME=overture-quickstart-indexMAESTRO_ELASTICSEARCH_INDEXES_FILECENTRIC_ALIAS=file_centricMAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_ENABLED=trueMANAGEMENT_HEALTH_ELASTICSEARCH_ENABLED=false# Spring VariablesSPRING_MVC_ASYNC_REQUESTTIMEOUT=-1SPRINGDOC_SWAGGERUI_PATH=/swagger-api# Kafka VariablesSPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS=kafka:9092SPRING_CLOUD_STREAM_BINDINGS_SONGINPUT_DESTINATION=song-analysisClick here for a detailed breakdown
Maestro Variables
-
MAESTRO_FAILURELOG_ENABLEDenables or disables failure logging. When set totrue, Maestro logs any failures that occur, which is useful for debugging and monitoring purposes. -
MAESTRO_FAILURELOG_DIRsets the directory path where failure logs are stored. -
MAESTRO_LOGGING_LEVEL_ROOTsets the root logging level for Maestro.INFOis standard andDEBUGprovides more detailed output. -
MAESTRO_NOTIFICATIONS_SLACK_ENABLEDenables or disables Slack notifications.
Song Variables
-
MAESTRO_REPOSITORIES_0_CODEsets the code identifier for the repository. The value here issong.overture, serving as a unique identifier used within Maestro to reference the repository. -
MAESTRO_REPOSITORIES_0_URLis the URL of the metadata repository. -
MAESTRO_REPOSITORIES_0_NAMEdefines the display name for the repository. -
MAESTRO_REPOSITORIES_0_ORGANIZATIONdefines the name of the organization that owns the repository. -
MAESTRO_REPOSITORIES_0_COUNTRYdefines the country code for the repository's location.
Elasticsearch Variables
-
MAESTRO_ELASTICSEARCH_INDEXES_ANALYSISCENTRIC_ENABLEDset tofalsespecifies that analysis-centric indices are not expected. -
MAESTRO_ELASTICSEARCH_INDEXES_FILECENTRIC_ENABLEDset totrueenables file-centric indices. -
MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_ENABLEDenables basic authentication for the Elasticsearch client. -
MAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_USERandMAESTRO_ELASTICSEARCH_CLIENT_BASICAUTH_PASSWORDprovide credentials for Elasticsearch. -
MAESTRO_ELASTICSEARCH_CLUSTER_NODESpoints to the address of the Elasticsearch cluster node(s). -
MANAGEMENT_HEALTH_ELASTICSEARCH_ENABLEDcontrols whether Elasticsearch health checks are performed.
Spring Variables
-
SPRING_MVC_ASYNC_REQUESTTIMEOUTis-1(no timeout). -
SPRINGDOC_SWAGGERUI_PATHspecifies the URL path for the Swagger UI.
Kafka Variables
-
SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERSdefines the address of the Kafka broker(s). -
SPRING_CLOUD_STREAM_BINDINGS_SONGINPUT_DESTINATIONis the destination topic for the Song input binding.
-
-
Run Maestro: Use the docker run command with your
.env.maestrofile:docker run --env-file .env.maestro \--name maestro \--platform linux/amd64 \-p 11235:11235 \ghcr.io/overture-stack/maestro:4.3.0infoMaestro will now be available and can index metadata from Song into your search engine.
After Maestro is running, continue with Arranger to expose search APIs and UI components.