OpenAperture
Cloud Application Management Platform
OpenAperture is a free, open-source hybrid cloud management platform that delivers software quickly and consistently regardless of location or workload. This future-ready platform from Lexmark Enterprise Software provides a comprehensive management system to handle the six pillars of cloud management – provisioning, deployment, monitoring, maintenance, security and metering.
Note that the docker build step will need to access this repository in order to deploy your source code. If your repositories are private, your Builder deployment must have an SSH key or similar mechanism setup for git in order to clone the repository.
What is a Workflow?
Workflows are the basic building blocks for managing executions through OpenAperture. Workflows are made up of "milestones", which specify the desired behavior:
- scheduled
- The scheduled milestone may be used to schedule a Workflow to execute at a future time. This must be paired with setting the scheduled_start_time property on the created Workflow.
- config
- The config milestone may be used to configure the deployment repository. This step is automatically done by the "build" milestone, and only must be explicitly specified if the "build" milestone is not present.
- build
- The build milestone requires a docker registry be configured to push the docker images once they are built. OpenAperture will automatically tag images using the following convention: "docker_repo_name:source_repo_git_ref"
- The build milestone is used to build a docker image and push it to a configured docker registry. By default, the Builder system component will check if the docker image exists before the build begins; you may specify the force_build flag if you want to always build the docker image.
- deploy
- The deploy milestone may be used to execute a deployment of an application. The "build" or "config" milestone must have been run first, in order to be successful.
How to Create & Execute a Workflow
The Workflow resouce defines all of the available fields, although only the following are required upon creation:
- deployment_repo: String containing the relative or fully-qualified deployment repo github repo.
- deployment_repo_git_ref: The git commit has (or branch/tag name) of the deployment repo that you want to act on
- source_repo_git_ref: The git commit has (or branch/tag name) of the source repo that you want to act on
- milestones: An array of the milestones defined above.
You may optionally specify scheduled_start_time if your milestone list includes 'scheduled'.
To send a Workflow through OpenAperture, you need to create and then execute the workflow. To create, execute a POST to /workflows with the desired parameters. The response location header contains the relative path to the workflow (i.e. /workflows/*uuid*)
Once the Workflow has been created, execute a POST to /workflows/*uuid*/execute is required to start the execution (i.e. build and deploys). Execute supports the following optional parameters:
- force_build: Boolean that will force a docker build, regardless if the docker image already exists.
- build_messaging_exchange_id: A MessagingExchangeId of the build cluster you want to direct a build regquest to (generally only used for building OpenAperture components)
- deploy_messaging_exchange_id: A MessagingExchangeId of the deploy cluster you want to direct a build regquest to (generally only used for deploying OpenAperture components)
Once the Workflow has started, there are 2 methods of tracking the status:
- Execute a GET to /workflows/*uuid*
- During the 'build' milestone, the docker build logs are streamed via web sockets at /ws, channel build_log:*uuid*