bedrock icon indicating copy to clipboard operation
bedrock copied to clipboard

As a CLI user, I want to be able to use a single HLD repository and a single Manifest repository to support multiple clusters

Open bnookala opened this issue 6 years ago • 0 comments

Topic:

As an SPK user, I want to be able to use a single HLD repository and a single Manifest repository to support multiple clusters

Question:

A use case that was brought up for spk and bedrock was how one may use multiple clusters for multiple environments. Ie a user may have a cluster each for dev, staging, and prod.

We presently have guidance on how one may run this sort of set up with rings, which are effectively multiple variations of a single service running on a cluster, allowing a user to deploy a service with dev, stage, and prod revisions: https://github.com/CatalystCode/spk/blob/master/guides/rings-101.md

With a single manifest repository, an "ideal" manifest repository structure would look like:

/dev -> "dev" cluster would be configured to pull manifests from here /stage -> "stage" cluster would be configured to pull manifests from here /prod -> "prod" cluster would be configured to pull manifests from here

But presently, the "hld to manifest" pipeline commits directly into the "prod" directory at the root of the manifest repository (due to how rings are configured per each service, rather than services configured for each ring).

One approach would be utilize multiple HLD repositories and multiple manifest repositories for each environment ie:

"hld-dev" -> manifest generation pipeline commits to "manifest-dev" "hld-stage" -> manifest generation pipeline commits to "manifest-stage" "hld-prod" -> manifest generation pipeline commits to "manifest-prod"

This would probably require updates to the build-update-hld pipeline to map commits to branches in the service repository (ie branches named "dev", "stage", "prod") to trigger individual pipelines that commit and open PRs on each of the "hld-dev", "hld-stage", and "hld-prod" repositories.

But there may other approaches - opening this issue to continue the discussion from the Bedrock Slack: https://bedrockco.slack.com/archives/CGD6ASVEF/p1585249821018100

bnookala avatar Mar 26 '20 20:03 bnookala