We also switched from Git Flow to GitLab Flow several months ago and so far we're very happy with our decision. It works very well with GitLab, it's easy to understand and less error-prone and you don't need additional Git commands (which are quite slow on Windows).
We use Docker Compose to organize our microservices and have a separate project/repository ...
So if we change it for one service, we need to update it in each docker-compose.yml in each project.
That's sounds like duplicate code and there are many ways to avoid that. But without more detailed information about how your setup looks like it's difficult to help.
Within a pipeline you can access other projects and their source code. Maybe Git ...
Gitlab CI/CD offers Docker Engine. If you can create a docker image, you can serve the application the same way as you were doing with Jenkins. You can find more details on how to integrate both here.
Hope it helps.
I might have skipped the optional installation of docker in my Ubuntu instance, so if the gitlab runner is going to use Docker, remember to install it:
curl -sSL https://get.docker.com/ | sh
I got back to this issue and seem to have partially fixed it by checking it the gitlab runner is running
systemctl is-enabled gitlab-runner
Try to use only n1-standard-1 nodes and let the autoscaler do it's magic.
If you can accept some downtime (and eventually some failures of the CI/CD jobs that should be fixed when you retry) you can use preemptible nodes.
Migrate stateless apps to Cloud Run.
Follow this guide to reduce resource consumption on your cluster.
Given that you mentioned rarely using some k8s resources, you could explore some alternatives:
With gcloud SDK you could create scripts to be executed for the periods you want to reduce GKE nodes (even to zero) during periods you're not using it
With Google Cloud Functions (GCF) you can create some python/Node.js/Go script to access GKE APIs and also ...
There is stages in gitlab ci and on 'docker build' stage I don't need ALL env variables. Usually its only a REACT_APP_SERVER_URI variable.
Later I use env file in compose.yml like you are.