MC-Workflow-Manager is one of the components of the M-CMP platform. With MC-Workflow-Manager, you can easily create and execute workflows, as well as modify and delete them as needed. For example, it allows you to create and manage multi-cloud infrastructures and seamlessly deploy applications across multiple clouds.
- Workflow creation and execution
- Workflow Stage management
- Workflow management
- System Requirements
- Installation with Docker Compose
- Project Structure
- Run Instructions
- Contributing
- License
To use mc-workflow-manager, ensure your system meets the following requirements:
- Operating System: Linux (Ubuntu 22.04 LTS recommended)
- Java: OpenJDK 17
- Gradle: v7.6
- Docker: v24.0.2
- WorkflowEngine(Jenkins): v2.424
- Git: Latest version
The easiest way to deploy mc-workflow-manager is via Docker Compose. Follow the steps below to get started.
First, clone the mc-workflow-manager
repository to your local machine:
git clone https://github.com/m-cmp/mc-workflow-manager.git
cd mc-workflow-manager
You can customize the following environment variables in the docker-compose.yaml file:
- DB_INIT_YN: Database initialization (create, update, create-drop, none ....)
- DB_ID: Database user ID
- DB_PW: Database user password
- Edit these environment variables according to your needs.
To bring up the mc-workflow-manager service along with its dependencies, run the following command:
sudo apt update
sudo apt install -y docker-compose
cd ./script
chmod x setup-docker-no-sudo.sh
./setup-docker-no-sudo.sh
cd ..
sudo docker-compose up -d
This command will pull the necessary Docker images, build the services, and start the containers in detached mode.
Once the services are up, you can access the following endpoints:
- Swagger UI: http://<Public_IP>:18083/swagger-ui/index.html
- WorkflowEngine(Jenkins) UI: http://<Public_IP>:9800
- Workflow Manager UI:
- http://<Public_IP>:18083
- OSS Management: http://<Public_IP>:18083/web/oss/list
- Workflow Stage Management: http://<Public_IP>:18083/web/workflowStage/list
- Workflow Management: http://<Public_IP>:18083/web/workflow/list
- Event Listener Management: http://<Public_IP>:18083/web/eventListener/list
To stop the running services, use:
sudo docker-compose down
This will gracefully shut down the containers without removing volumes, allowing you to preserve the state of the database.
mc-workflow-manager/
├── docker-compose.yaml # Docker Compose file for service orchestration
├── src/ # Source code for the Workflow Manager
├── script/ # Helper scripts for build and execution
├── README.md # Project documentation
├── LICENSE # License information
└── docs/ # Additional documentation
If you prefer to build and run the project manually, follow these steps:
-
Install Git
sudo apt update sudo apt install -y git
-
Download mc-workflow-manager Source Code
cd $HOME git clone https://github.com/m-cmp/mc-workflow-manager.git export PROJECT_ROOT=$(pwd)/mc-workflow-manager
-
Install Required Packages/Tools and Set Environment Variables
-
Install Java, Docker
cd $PROJECT_ROOT/script sudo chmod x *.sh . $PROJECT_ROOT/script/init-install.sh
-
Set Environment Variables
cd $PROJECT_ROOT/script . $PROJECT_ROOT/script/set_env.sh source $HOME/.bashrc
-
-
Build and Run
- Execute Shell Script
# Run Jenkins . $PROJECT_ROOT/script/run-jenkins.sh # Build Springboot Project . $PROJECT_ROOT/script/build-mc-workflow.sh # Run Springboot Project . $PROJECT_ROOT/script/run-mc-workflow.sh
- Execute Shell Script
1. Access the Jenkins container
sudo docker exec -it we-jenkins /bin/bash
2. Inside the container, retrieve the initial admin password
cat /var/jenkins_home/secrets/initialAdminPassword
3. Copy the string that appears after running the cat command.
4. Open Chrome browser and navigate to http://<Public IP>:9800
Jenkins Unlock Page
5. Paste the copied string into the password field.
6. Click Install suggested plugins
Button
This process will complete the initial setup of Jenkins
We welcome contributions to the mc-workflow-manager project! To get involved, follow these steps:
- Fork the repository on GitHub.
- Create a feature branch:
git checkout -b feature-branch
. - Commit your changes:
git commit -m "Add new feature"
. - Push the branch:
git push origin feature-branch
. - Open a Pull Request.
- For detailed guidelines, refer to the Contributing Guide.
This project is licensed under the terms of the Apache 2.0 License. See the LICENSE file for details.