Investigate Service Catalogs for auto-provisioning of pets on cloud providers
Kubernetes offers support for Service Catalogs, which offer a way to interact with Open Service Brokers. The TLDR; is that these offer a way to provision and bind to external services.
Service Brokers exist for key platforms:
- GCP: https://github.com/GoogleCloudPlatform/gcp-service-broker
- AWS: https://github.com/awslabs/aws-servicebroker-documentation/wiki
- Azure: https://github.com/Azure/open-service-broker-azure
Service Catalog does not ship by default with Kubernetes, but it can be easily deployed with a Helm Chart: https://kubernetes.io/docs/tasks/service-catalog/install-service-catalog-using-helm/
We should investigate if this offers a nice way to provision pets for GitLab, such as:
- Managed databases like RDS or Cloud SQL
- Managed Redis like ElastiCache
In some cases these also offer methods to interact with other important functions such as DNS.
This could provide a more generic alternative to setting up GitLab with pets like Cloud SQL, than using something like CloudFormation/Deployment Manager.