How do we do deploys
We need to do deploys to:
- container schedulers
- (cook/play)books to configuration management systems
- ssh support would be nice
- zero-downtime deploys/feature flags/etc. would be nice https://about.gitlab.com/direction/cicd/
We need it for environment deploys and review apps https://gitlab.com/gitlab-org/gitlab-ce/issues/20255
Options:
- CI script howto: redspread for k8, Ansible for BitBucket pipelines (hard to configure and test)
- Runner plugins similar to drone plugins (hard to set up and test credentials, we have to maintain an interface and a registry, Drone plugins can't send structured data back, how does it work with every plugin being a container)
- Project services, intuitive suggestion for deploy to Terraform (user friendly but unclear how that works since coordinator has to do the work instead of the Runner)
- Deploy/environment API https://developer.github.com/v3/repos/deployments/ (we probably want to do the deployment instead of just an API for it)
- A library like or similar to the dpl gem