For the the company’s internal infra project and accounting project (accounting information about customers), CI has been implemented based on Docker images.
Now, by pushing to the repository, CI builds the docker image from this project based on python called accounting. The image contains a python interpreter and python code. Then, when adding (by git push) accounting information about clients to the accounting project, accounting information yamls are added to the image, the image is uploaded to the Docker Registry of this project, then CI initiates the launch of this image on the production runner, substitutes working variables for production with access tokens to the GitLab API, and so on.
Thus, in short, when adding descriptions of new clients and their servers to the repository, labels with servers in the necessary projects automatically appear. Next, you need to fill the yaml database with clients and servers (remove billing from pillars) and add other modules to the code for billing, necessary checks, etc.