Deployment tools for Ranger services.
Images may be deployed to AWS ECR via the deploy_aws_ecr command.
deploy_aws_ecr has the following subcommands:
push- Updates the staging environment to use a new Docker image.
For usage information, run:
deploy_aws_ecs <subcommand> --help
deploy_aws_ecr can alternatively be invoked as python -m deploy.aws.ecr.
Services may be deployed to AWS ECS via the deploy_aws_ecs command. deploy_aws_ecs has only been tested with services using Fargate.
deploy_aws_ecs has the following subcommands:
staging- Updates the staging environment to use a new Docker image.
rollback- Updates the staging environment to use the prior Docker image by updating the service to use task definition used prior to the current one. Running this twice will not continue to roll back; it will switch between two definitions.
compare- Compares the staging environment with the production environment.
production- Updates the production environment to use the same Docker images as currently used in the staging environment. This does not modify other attributes, including environment variables.
environment- Views or updates the environment variables in the specified cluster and service.
For usage information, run:
deploy_aws_ecs <subcommand> --help
The following environment variables are used if the corresponding command line options are omitted:
AWS_ECS_CLUSTER_STAGING--staging-clusteror--clusterAWS_ECS_SERVICE_STAGING--staging-serviceor--serviceAWS_ECS_CLUSTER_PRODUCTION--production-clusterAWS_ECS_SERVICE_PRODUCTION--production-service
deploy_aws_ecs can alternatively be invoked as python -m deploy.aws.ecs.
An email notification can be sent after a deployment by running deploy_notify_smtp.
deploy_notify_smtp has the following subcommands:
staging- Sends a notification for a deployment to the staging environment.
For usage information, run:
deploy_notify_smtp <subcommand> --help
The following environment variables are used if the corresponding command line options are omitted:
PROJECT_NAME--project-nameREPOSITORY_ID--repository-idBUILD_NUMBER--build-numberBUILD_URL--build-urlCOMMIT_ID--commit-idCOMMIT_MESSAGE--commit-messageNOTIFY_SMTP_HOST--smtp-hostNOTIFY_SMTP_PORT--smtp-portNOTIFY_SMTP_USER--smtp-userNOTIFY_SMTP_PASSWORD--smtp-passwordNOTIFY_EMAIL_SENDER--senderNOTIFY_EMAIL_RECIPIENT--recipient
deploy_notify_smtp can alternatively be invoked as python -m deploy.notify.smtp.
A configuration file ~/.ranger-deploy.ini may be used to specify defaults for any of the above arguments.
This file uses a simple INI format in which configuration keys correspond to command line options, with each sections named after a configuration profile.
For configuration keys, remove leading hyphens and replace hyphens with underbars.
For example:
[rangers]
github_org = burningmantech
staging_cluster = rangers
production_cluster = rangers
smtp_host = smtp.example.com
smtp_port = 465
smtp_user = some_user
smtp_password = C70D9FB9-53BC-489A-A08D-567D281583D9
sender = sender@example.com
recipient = recipient@example.com
[clubhouse-api]
repository_id = ${rangers:github_org}/ranger-clubhouse-api
staging_cluster = ${rangers:staging_cluster}
production_cluster = ${rangers:production_cluster}
staging_service = ranger-clubhouse-api-staging-fg
production_service = ranger-clubhouse-api-production-fg
smtp_host = ${rangers:smtp_host}
smtp_port = ${rangers:smtp_port}
smtp_user = ${rangers:smtp_user}
smtp_password = ${rangers:smtp_password}
sender = ${rangers:sender}
recipient = ${rangers:recipient}
[clubhouse-web]
repository_id = ${rangers:github_org}/ranger-clubhouse-web
staging_cluster = ${rangers:staging_cluster}
production_cluster = ${rangers:production_cluster}
staging_service = ranger-clubhouse-web-staging-fg
production_service = ranger-clubhouse-web-production-fg
smtp_host = ${rangers:smtp_host}
smtp_port = ${rangers:smtp_port}
smtp_user = ${rangers:smtp_user}
smtp_password = ${rangers:smtp_password}
sender = ${rangers:sender}
recipient = ${rangers:recipient}
[clubhouse-classic]
repository_id = ${rangers:github_org}/ranger-secret-clubhouse
staging_cluster = ${rangers:staging_cluster}
production_cluster = ${rangers:production_cluster}
staging_service = ranger-secret-clubhouse-staging-fg
production_service = ranger-secret-clubhouse-production-fg
smtp_host = ${rangers:smtp_host}
smtp_port = ${rangers:smtp_port}
smtp_user = ${rangers:smtp_user}
smtp_password = ${rangers:smtp_password}
sender = ${rangers:sender}
recipient = ${rangers:recipient}
[ims]
repository_id = ${rangers:github_org}/ranger-ims-server
staging_cluster = ${rangers:staging_cluster}
production_cluster = ${rangers:production_cluster}
staging_service = ranger-ims-staging-fg
production_service = ranger-ims-production-fg
smtp_host = ${rangers:smtp_host}
smtp_port = ${rangers:smtp_port}
smtp_user = ${rangers:smtp_user}
smtp_password = ${rangers:smtp_password}
sender = ${rangers:sender}
recipient = ${rangers:recipient}