Login to the user interface here: https://cloud-manager.cloud2-stg.rezfusion.com/
Info |
---|
The Cloud Deployment Manager is a GoLang application built to manage the Kubernetes and site states within the context of our Cloud platform. A VPN connection is required to interface with the deployment manager. |
Resources:
A collection of examples Postman requests to get started is below:
View file | ||
---|---|---|
|
Live/shared Postman environment: https://app.getpostman.com/join-team?invite_code=f051d21c83e9cb1be231988b5439e158&target_code=a2b51a0b8996192acd17798d454cb1c7
Application Flow:
...
Canary Endpoints:
Code Block | ||
---|---|---|
| ||
const ( BlueService SelectorName = "blue" GreenService SelectorName = "green" InitialCanaryService SelectorName = "blue" ) |
...
Install - runs
wp core install...
against the actively provisioning site.ActivateTheme - runs
wp theme install --activate {theme-name}
against the actively provisioning site.Ingress - adds an Ingress hosts entry for the given site.
FlushCaches - runs
wp cache flush
against the given site.PatchIngress - updates an Ingress host entry for a given site. This will point the given site’s ingress handler to the active canary service. Usually used within the context of a promotion.
PatchService - patches a site’s
service
value within the sites repository to reflect the active Canary service the site was moved to.
...
Code Block |
---|
POST /sites/create
{
"id": "rrr",
"theme": "astra",
"hostnames": ["rrr.cloud2-stg.rezfusion.com"],
"service": "blue",
"name": "Project Bluelaunch | rrr",
"canonicalHostname": "rrr.cloud2-stg.rezfusion.com"
} |
This will create the AWS Dynamo DB entry for the site as well as relevant secrets for accessing the database and WP CMS.
Fetching Site Details
Site details can be viewed by running a GET
request against /sites/rrr
:
...
Code Block |
---|
PUT /sites/{site-id}/upgrade |
...
Site originally provisioned on blue
service. Active Canary service set to green
.
...
Now, the service on the site is green
:
...
A related job to flush the cache is also executed against ttt
:
...
Promote
Promoting, almost identical to upgrading, moves a site to the active Canary service. Additionally, this triggers several queued jobs on the given site after moving to the new image.
...
To roll an upgrade or promotion out for all sites on a given service, simply execute a PUT
request against the /services
endpoint. These request types affect all sites on the active canary service. The only differences between the two requests is the promote
value. When false, this request triggers a new upgrade pipeline for all sites on the active canary service.
If promote
is true, then the promote pipeline is executed against each site on the active canary service. The promote pipeline includes an additional step to patch the ingress.
Upgrade
Code Block |
---|
PUT /services { "imageTag": "f2e9a5d05ef6fe7714962afaa468d643b6c7195656ffc86b15b0435daeef91a4", "promote": "false" } |
...
Promote
Code Block |
---|
PUT /services PUT /services { "imageTag": "f2e9a5d05ef6fe7714962afaa468d643b6c7195656ffc86b15b0435daeef91a4", "promote": "true" } |
...
Reverting Bad Deployments/Rollbacks
...