I'm writing a platform to automate the day to day runnings of a business, this is to be a SaaS offering with each customer having its own database's.
I'm currently using the following; Gitlab (Git Repo with many DevOps based tools), Sentry (Error Tracking integrated with Gitlab), Kubernetes (Container Orchestration), PHPStorm (IDE).
The idea was to push the code to Gitlab which would do the CI/CD process and deploy as a rolling update to all my customers who are separated by namespaces in Kubernetes. The problem is each customer would need there own environment variables including encryption keys, database credentials, and API keys to a central API that enables communications between each customers deployment. I can see where I would enter environment variables for one customer but how would I do it for many customers.
I have looked into forking the code for each customer and setting up a mirror but Gitlab always gives a 500 error when trying to mirror the same Gitlab server.
This has caused my whole project to come to a halt.
Any guidance is greatly appreciated.
Each customer runs on a separate copy of the code base for a few reasons including data isolation and we bill on resource usage not per user.