Skip to content

A bootstrap process for managing platform customer ns and ns-ingress while platform-api is in development

License

Notifications You must be signed in to change notification settings

ThoughtWorks-DPS/psk-platform-simple-teams-and-ns

Repository files navigation

Thoughtworks Logo
DPS Title

psk-platform-simple-teams-and-ns

In the greenfield development of an engineering platform there will typical be a window of time, preferably short, between when the early adopting customers need usable access to the platform but before the custom platform APIs are sufficiently mature to manage even the mvp capabilities.

A simple way to address this problem (and even provide a good development resources to the team building the platform APIs), is to use a basic pipeline to applpy the needed, basic configuration. For this approach to be manageable, limit the scope to:

  • Customer (team) namespaces

Customers will get a default set of environments (such as dev, qa, and prod) in a default set of cluster (nonprod and prod). Wait to enable user-manageable namespaces as part of an API driven capability.

The namespace definitions can include annotations for things like inclusion within the service mesh, OPA for http, and pod-security settings. In addition, include ns ResourceQuotas.

  • The mvp of the plataform should include one or more product-defined, managed top-level domains that support ingress.

The example strategy uses two domains, twdps.io and twdps.digital. Scalable configuration for the various subdomains or path-patterns to support these product domains should be api managed just like custom ns. A good short-term stragy is to initial aupport default ingress patterns much the same was as default environments are provided.

Default environment gateways:

gateway urls cluster
preview.twdps.digital-gateway (*.)preview.twdps.digital sbx-i01-aws-us-east-1
preview.twdps.io-gateway (*.)preview.twdps.io sbx-i01-aws-us-east-1
dev.twdps.digital-gateway (*.)dev.twdps.digital prod-i01-aws-us-east-1
dev.twdps.io-gateway (*.)dev.twdps.io prod-i01-aws-us-east-1
qa.twdps.digital-gateway (*.)qa.twdps.digital prod-i01-aws-us-east-1
qa.twdps.io-gateway (*.)qa.twdps.io prod-i01-aws-us-east-1
prod.twdps.digital-gateway (*.)prod.twdps.digital prod-i01-aws-us-east-1
prod.twdps.io-gateway (*.)prod.twdps.io prod-i01-aws-us-east-1

A typical external->internal routing patterns for domains would be:

api.twdps.io > "external api gateway" > api.prod.twdps.io dev.api.twdps.io > "external api gateway" > api.stage.twdps.io # or whatever environment constitutes a publically useable test env

A small list of example early-adopter customers have their configuration managed by this temporary, simple ns management pipeline.

alpha teams sbx-i01-aws-us-east-1 prod-i01-aws-us-east-2
twdps-core-labs-team preview dev, qa, prod
demo preview dev, qa, prod
demo-publications dev, qa, prod
demo-reviews dev, qa, prod

For each, there will be a demo-preview, demo-dev and so on depending on the team and the cluster. Only demo and twdps-core-labs-team have a preview ns in the sbx cluster for demonstrating the role of the preview cluster.

Note

This pipeline is expected to be short-lived and only used to support a small number of teams onboarded. Any scale at all will begin to reveal that this is unsustainable. The value is limited to getting a limited number of early adoptors onto the plateform to provide the necessary feedback loop for features as they evolve. THe follow-on API that will ultimately own this category of configuration must be a high priority.

About

A bootstrap process for managing platform customer ns and ns-ingress while platform-api is in development

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published