Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🎻 Conductor #20

Merged
merged 34 commits into from
Nov 5, 2024
Merged

🎻 Conductor #20

merged 34 commits into from
Nov 5, 2024

Conversation

MitchellShiell
Copy link
Contributor

@MitchellShiell MitchellShiell commented Sep 30, 2024

Conductor

Responsible for directing the performance of musicians or a piece of music, esp. by an orchestra

Important

This update is part of a larger documentation update outlined here. We will be changing the name of the repository from Composer to Conductor this will more accurately reflect the its form and function. The Conductor website branch should be merged and deployed immediately following

Rollout Steps

To clarify the above note:

  1. Merge this branch
  2. Update repo name
  3. Merge Website branch

Summary

Conductor is a flexible Docker Compose setup that simplifies the process of spinning up Overture development and deployment configurations using Docker profiles and extensible scripting events.

  • Conductor carries out ordered scripts based on the PROFILE environment passed to it

    • This is now possible as all stages of the setup process are stored as modular and independent scripts located in the /conductorScripts/services/ directory`
    • Depending on the PROFILE selected the conductor will run a broader deployment script found in the /conductorScripts/deployments/ directory, these just call the needed serviceScripts for the given profile in the required order. They also contain talored logs for startup, success, and next steps for the given deployment.
  • One drawback of this is the verbose nature of the commands when having to pass a profile to docker and an env to conductor (PROFILE=platform docker compose --profile platform up --attach conductor )

    • To address the verbose commands I created a Makefile. This simplifies the input required for any given startup command (make platform)

Getting Started

1. Clone the repo branch

git clone -b conductor https://github.com/overture-stack/composer.git && cd composer

2. Run one of the following commands to spin up different environments:

Environment Unix/macOS Windows
Overture Platform make platform make.bat platform
Stage Dev make stageDev make.bat stageDev
Arranger Dev make arrangerDev make.bat arrangerDev
Maestro Dev make maestroDev make.bat maestroDev
Song Dev make songDev make.bat songDev
Score Dev make scoreDev make.bat scoreDev

Each command spins up complementary services for the specified development environment.

Detailed information can be found on the new docs site here

@MitchellShiell MitchellShiell changed the title [WIP] - 🎻 Conductor 🎻 Conductor Nov 1, 2024
@MitchellShiell MitchellShiell marked this pull request as ready for review November 1, 2024 18:44
scoreDev:
PROFILE=scoreDev docker compose --profile scoreDev up --attach conductor

down:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lazy question: does this work for all of the above? hoping the answer is yes, otherwise we'll need to rename it "platform down", and add "up" to all others (possibly with their own downs) or just remove this one to keep things consistent.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, it does, and I was happy to figure out it did, it's super convenient

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this file's indentation on purpose? doesn't seem to match that of other files

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like a typo will update

conductor:
profiles: ["platform", "songDev", "scoreDev", "maestroDev", "arrangerDev", "stageDev"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not acquainted with this "profiles" property. will have to do some reading on it to provide informed feedback, but it seems redundant with its namesake env variable, so there must be a means to do away with one of them

Copy link
Contributor Author

@MitchellShiell MitchellShiell Nov 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the ENV profile is passed to conductor for the bash script, the other profiles are docker specific, tagged in the compose on each image and are used with the docker compose --profile option (docker compose --profile {{profile}} up --attach conductor)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd love to have them as one, but I could not find a viable way to pass a docker profile into the container for the bash script

make.bat Outdated Show resolved Hide resolved
Copy link
Member

@justincorrigible justincorrigible left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

le wow! squash and ship it! :shipit:
(after adding that missing empty line)

.gitattributes Outdated Show resolved Hide resolved
Co-authored-by: Anders Richardsson <[email protected]>
@MitchellShiell MitchellShiell merged commit 9ec480e into main Nov 5, 2024
@MitchellShiell MitchellShiell deleted the conductor branch November 5, 2024 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants