3 ms·
Same. The simple fact that every PR can deploy a full stack, including RDS and managed Redis if desired, automatically in it's own namespace with proper DNS poi
by marcinzm 2y ago
Same. The simple fact that every PR can deploy a full stack, including RDS and managed Redis if desired, automatically in it's own namespace with proper DNS pointing to services is a massive win for us. As in, if you label the PR then it all happens automatically and then it all shuts down automatically when the PR is closed.
- williamdclt 2y agoDo you have any resource to how to set that up? I’m interested!
- marcinzm 2y agoShould make a blog post but in short: - Every service is deployed via a Helm chart and using containers - GitHub actions build the container and deploy the helm chart Some of the details that matter: - ACK is used to create AWS services (RDS, Redis, etc.) via Helm charts (we also have a container option for helm charts as it's faster and less expensive) - External Secrets is used to create secrets in the new namespace and also do things like generate RDS passwords - ExternalDNS creates DNS entries in Route53 from the Ingress objects - Namespace name is generated automatically from the branch name - Docker images use the git hash for the tag Some things that are choices: - Monorepo although each service aims to be as self-contained as possible. - Docker context is the git root as this allows for a service to include shared libraries from the repo when creating a container. This is for case where we break the previous rule.