Skip to content

Latest commit

 

History

History

profiles

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Docker Compose Profiles

This directory contains a set of docker compose definitions which are designed to run several configurations for quickstart use-cases as well as development use-cases. These configurations cover a few of the wide variety of infrastructure configurations that DataHub can operate on.

Requirements:

  • Using profiles requires docker compose >= 2.20.
  • If using the debug/development profiles, you will need to have built the debug docker images locally. See the Development Profiles section for more details.
$ cd docker/profiles
$ docker compose --profile <profile name> up

Use Control-c (^c) to terminate the running system. This will automatically stop all running containers.

To remove the containers use the following:

docker compose --profile <profile name> rm

Please refer to docker's documentation for more details.

The following sections detail a few of the profiles and their intended use-cases. For a complete list of profiles and their configuration please see the table at the end of each section.

Quickstart Profiles

Quickstart profiles are primarily a way to test drive DataHub features before committing to a production ready deployment. A couple of these profiles are also used in our continuous integration (CI) tests.

Note: Quickstart profiles use docker images with the head tag. These images up updated when changes are committed to the DataHub github repository. This can be overridden to use a stable release tag by prefixing the commands with DATAHUB_VERSION=v0.12.1 for example.

quickstart

This is the default configuration MySQL and OpenSearch for the storage and GMS running with integrated consumers.

quickstart-consumers

This configuration is identical to quickstart how it runs standalone consumers instead of consumers integrated with the GMS container.

quickstart-postgres

Identical to quickstart with Postgres instead of MySQL.

quickstart-cassandra

Uses Cassandra as the primary data store along with Neo4j as the graph database.

quickstart-storage

Just run the quickstart data stores without the DataHub components. This mode is useful for debugging when running the frontend and GMS components outside of docker.

Quickstart Profiles Table

Profile Name MySQL Postgres Cassandra Neo4j Frontend GMS Actions SystemUpdate MAE MCE Kafka OpenSearch
quickstart X X X X X X X
quickstart-frontend X X X X X
quickstart-backend X X X X X X
quickstart-postgres X X X X X X X
quickstart-cassandra X X X X X X X X
quickstart-consumers X X X X X X X X X
quickstart-storage X X X

Development Profiles

  • Runs debug tagged images
  • JVM Debug Mode Enabled
  • Exposes local jars and scripts to the containers
  • Can run non-default one-off configurations (neo4j, cassandra, elasticsearch)

The docker images used are the debug images which are created by building locally. These images are created by running the gradle command.

./gradlew dockerTagDebug

For a complete list of profiles see the table at the end of this section.

quickstart-backend

Run everything except for the frontend component. Useful for running just a local (non-docker) frontend.

quickstart-frontend

Runs everything except for the GMS. Useful for running just a local (non-docker) GMS instance.

Development Profiles Table

Profile Name MySQL Postgres Cassandra Neo4j Frontend GMS Actions SystemUpdate MAE MCE Kafka OpenSearch Elasticsearch
debug X X X X X X X
debug-frontend X X X X X
debug-backend X X X X X X
debug-postgres X X X X X X X
debug-cassandra X X X X X X X
debug-consumers X X X X X X X X X
debug-neo4j X X X X X X X X
debug-elasticsearch X X X X X X X

Advanced Setups

Version Mixing

In some cases, it might be useful to debug upgrade scenarios where there are intentional version miss-matches. It is possible to override individual component versions.

Note: This only works for non-debug profiles because of the file mounts when in debug which would run older containers but still pickup the latest application jars.

In this example we are interested in upgrading two components (the mae-consumer and the mce-consumer) to a fresh build v0.15.1-SNAPSHOT while maintaining older components on v0.14.1 (especially the system-update container).

This configuration reproduces the situation where the consumers were upgraded prior to running the latest version of system-update. In this scenario we expect the consumers to block their startup waiting for the successful completion of a newer system-update.

DATAHUB_VERSION - specifies the default component version of v0.14.1 DATAHUB_MAE_VERSION - specifies an override of just the mae-consumer to version v0.15.1-SNAPSHOT[1] DATAHUB_MCE_VERSION - specifies an override of just the mce-consumer to version v0.15.1-SNAPSHOT[1]

 DATAHUB_MAE_VERSION="v0.15.1-SNAPSHOT" DATAHUB_MCE_VERSION="v0.15.1-SNAPSHOT" DATAHUB_VERSION="v0.14.1" ./gradlew quickstart

[1] Image versions were v0.15.1-SNAPSHOT built locally prior to running the command.