This repo contains the source code for a CI/CD pipeline that helps you run containerized apps in AWS. To use this pipeline you'll need to set up a repo in your GitHub organization with your own secrets. The documentation and available services (i.e. both the Available services list below in the docs as well as all the directories in terraform/modules/services except for _template) are just examples and should be deleted once you set up your own repo.
- Available services
- Features
- Architecture diagram
- Directory structure
- Environment variables
- Secrets
- Shared PubSub+ Cloud: Event Broker
- Steps to onboard a service
- Steps to deploy a service
- Steps to stop a service
- Steps to start a service
- Steps to check a service's logs
- Steps to remove a service
Name | Root topic | Repository |
---|---|---|
faa-scds-feeds-simulator | fdps-simulator/ | link |
package-scan-simulator | package.delivery/scanned/ | link |
ecommerce-order-simulator | ecommerce-order-simulator/ | link |
cdc-order-source | cdc-order-source/ | link |
order-validation-processor | order-validation-processor/ | link |
- Push button service deployment, scaling, and starting/stopping
- Shared access to a dedicated event broker service
- CloudWatch Logs
- Optional CloudWatch Alarms
Name | Description |
---|---|
.github | Workflow configuration files for GitHub Actions. |
dockerfile-examples | Example Dockerfiles that show how to build images for a few different application languages. |
terraform | Terraform configuration files for the cluster and all active services. On-boarding a service includes adding a directory here. |
The following environment variables are set for all containers:
SOLACE_USERNAME
SOLACE_PASSWORD
SOLACE_MESSAGE_VPN
SOLACE_HOST_AMQP
SOLACE_HOST_MQTT
SOLACE_HOST_MQTT_WSS
SOLACE_HOST_REST
SOLACE_HOST_SMF
SOLACE_HOST_WSS
All of the above environment variables are set as GitHub Secrets on this repository (Settings -> Secrets), as well as the following:
AWS_ACCESS_KEY_ID_TF_AGENT
- permissioned so the TF agent can create resourcesAWS_SECRET_ACCESS_KEY_TF_AGENT
There is a dedicated event broke service that any services deployed by this pipeline can connect to by using the environment variables listed above.
Name: demos-infra
Region: us-east-1b
Console link: [ REDACTED ]
Follow the instructions outlined here
- Clone this repository and make a new branch
- Delete the service's directory under terraform/modules/services
- Remove the corresponding module block in terraform/modules/services/main.tf
- Make a PR
Terraform diffs the existing state of the deployment with any changes you make to the configuration files, so it will know what to delete.