We have a list of clients that run on their own environments. Some hundreds of clients. I need to know if there is a way to setup the release pipelines to each client without the need to define each client in the gitlab ci yml file. Can i have a list of environments and when i want to do a manual deploy to choose from a dropdown the environment where to deploy? Also i need to be able to start a scheduled deploy to all environments. In jenkins you have the option to choose from a dropdown where you want to deploy you release.
there are no dropdowns in GitLab, everything is defined in code. One possible workaround (not ideal) is to specify a variable+value when running the pipeline manually from UI. Then it depends on what deployment tool you are using and/or having some umbrella script that figures to what environment to deploy based on the variable’s value.
To generate only jobs for environments you want to deploy to, you can use dynamic child pipelines where you can generate the pipeline definition during it’s execution. For example I usually have job template from which I extend the dynamically generated jobs.
You can set scheduled pipeline in the project’s CI/CD → Schedules. There is no on-time option available, tho.