Built-in wrapper for AWS deployments
Problem to solve
As part of &1804, we should add support for AWS deployments in a simple way.
In contrast to a recipe (https://gitlab.com/gitlab-org/gitlab-ce/issues/53307), this should be much more built-in, discoverable, well-documented and part of the primary user experience for people setting up deployments to this cloud. They should also be maintained over time rather than being a bit of reference code stored somewhere.
Intended users
Teams implementing CD for the cloud
Further details
Proposal
For the first iteration we should create a container that can be used to perform arbitrary CLI commands. It should automatically authenticate using environment variables or a simple service integration made available to the container (note that it's likely that different credentials are needed for different environments), and fail if the needed values are not there.
deploy:
stage: deploy
image: gitlab/gitlab-awsclient@1.0
script:
- aws ..."
AWS does not provide a preconfigured AWS client Docker image to build on.
In the future, more sophisticated GitLab-specific behaviors can be integrated with the container, but as-is this will help teams get up and running using GitLab CI much more quickly. We could also consider including https://github.com/python-gitlab/python-gitlab ready to run.
Permissions and Security
Documentation
Testing
What does success look like, and how can we measure that?
Links / references
- This is related to what GitHub provides via an action (https://github.com/actions/aws). If possible, we could leverage the same open source code so it is always kept up to date and working by community contributors.