Supporting spinnaker for deployment in GitLab CI

Problem to solve

Extract from https://github.com/spinnaker/spinnaker/issues/2047

At my company, we use Gitlab as an SCM hosting solution and we use Gitlab CI to do our CI. We also use Spinnaker, triggering pipelines when new docker images are added to the registry, but we'd like to have the tighter integration that is available for Jenkins (and Travis) and Github (and Stash and Bitbucket).

Intended users

Personas:

  • Software developers
  • DevOps engineers
  • Systems Administrator

Further details

We have several prospects in Sales Force (aka SFDC) asking about spinnaker integration to allow them to use their existing spinnaker implementation rather than use the one in GitLab CI.

Proposal

The following external doc outlines the current state (from the spinnaker viewpoint) and has a lot of detail as to what needs to happen on both sides:

Requirement notes from an internal team looking into spinnaker integration (team includes @kmcknight @francispotter @pharlan):

  • Create new tag in pipeline stage similar to script that would implement appropriate spinnaker REST API's to deploy packages
  • More granular permissions so different groups can’t splat over other groups’ spinnaker deploys
  • Good debug logging / cross-reference to spinnaker web UI
  • Reporting
  • Service or config dialogs for connecting a project to Spinnaker

Permissions and Security

Extracted from the external doc in the Proposal section above:

  • GitLab webhooks configuration - This is missing one piece, the ability to have the GitLab webhook use a secret that Spinnaker knows - similar to the GitHub trigger configuration.

Documentation

Testing

What does success look like, and how can we measure that?

Success metrics:

  • Prospects "on the fence" about purchasing GitLab now can go forward since the spinnaker integration requirement has been fulfilled

Acceptance criteria:

  • Sales team is able to demonstrate the ability to kick off spinnaker pipeline from GitLab CI pipeline
  • spinnaker integration is easy to activate in .gitlab-ci.yml and configure

What is the type of buyer?

I see this as a Premium tier capability, but open to discussion.

Links / references

/cc @francispotter @pharlan @jmiklos @GitLabMase

Edited by Ken McKnight