Built-in wrapper for Azure deployments

Problem to solve

As part of &1804, we should add support for Azure 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.

azure_deploy:
  stage: deploy
  image: gitlab/gitlab-azureclient@1.0
  script:
    - az deployment create ..."

Microsoft provides a base CLI image at https://hub.docker.com/r/microsoft/azure-cli/ which we can 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/Azure/actions). If possible, we could leverage the same open source code so it is always kept up to date and working by community contributors.
Edited Aug 22, 2019 by Jason Yavorsky
Assignee Loading
Time tracking Loading