Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GitLab on DC/OS blog post and tutorial. #831

Closed
wants to merge 2 commits into from
Closed

Conversation

ssk2
Copy link
Contributor

@ssk2 ssk2 commented Sep 16, 2016

No description provided.

lunr: true
---

We've been working with the team at GitLab for a few months now to bring GitLab as an easily installable package to DC/OS. This is a feature that many in the community have requested and we're happy to finally merge this package to the Universe and make it available for all!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't part of DC/OS community, let's not use words like we. Maybe you can now use GitLab easily with DC/OS or something like that. Need to make sure the community is aware that this isn't a part of DC/OS but an application you run on top of it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My affiliation is mentioned in the author tag, so "we" was intended to refer to Mesosphere. I will make this clearer.


Using GitLab on DC/OS now allows you to co-locate all of the tools you need for developers on one easy to manage cluster. Just as with any Universe package, you can robustly install several side by side instances of GitLab to provide segregated instances for each of your development teams. Alternatively, you can just as easily install GitLab in a highly available configuration that many teams use concurrently.

In this post, we'll run through a quickstart installation of GitLab to show how straightforward it is to set up an end to end continuous delivery pipeline using GitLab to host both your code and Docker images, and Jenkins to run a job that builds a Docker image on DC/OS and deploys it to Marathon.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please move all this into an actual tutorial. Discovery on blog posts and maintenance is a nightmare. Then you can link to the tutorial in docs and we'll bring it along and update every version.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!


# Prerequisites

+ DC/OS 1.8 or later
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please link to the installation docs here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!


+ DC/OS 1.8 or later

+ [Marathon-lb](https://dcos.io/docs/1.8/usage/service-discovery/marathon-lb/usage/) must be installed and running
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop the domain.


+ [Marathon-lb](https://dcos.io/docs/1.8/usage/service-discovery/marathon-lb/usage/) must be installed and running

+ [Jenkins](https://docs.mesosphere.com/1.8/usage/service-guides/jenkins/) must be installed and running
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop the domain.


+ An available hostname configured to point to the public agent(s) where Marathon-lb is running (e.g. `gitlab-test.mesosphere.com`)

+ Either set up appropriate certificates on each of your hosts, or configure each of your hosts to use your hostname (i.e. `gitlab-test.mesosphere.com`) as a [Docker insecure registry](https://docs.docker.com/registry/insecure/). You will need to do this for the Jenkins agent too using the [Advanced Configuration instructions](https://docs.mesosphere.com/1.8/usage/service-guides/jenkins/advanced-configuration/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty confusing. Should it be a separate topic in administration?


<img src="/assets/images/blog/2016-09-16-gitlab/new-project.png" alt="New GitLab Project" /> *Create a New GitLab Project*

1. Once this is done, clone the project to your local machine:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Syntax highlighting please.


1. Next, we'll create a simple Marathon application definition. Putting this into version control is good practice and makes it easy to implement and track changes to your application definition as the underlying application:

nano marathon.json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nano? really? also, syntax highlighting.


1. This will tell Marathon how to run our application. Paste the following into it, replacing the address to the Docker registry with your own:

{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Syntax highlighting please.


1. Finally, let's create a simple Jenkinsfile. This is a new way to programmatically define your builds that was released as part of [the Pipeline feature](https://jenkins.io/doc/pipeline/) of Jenkins 2.0. This will pull from the GitLab instance you've just set up, build the Docker image, push it to the GitLab registry, and then trigger a deployment using [the Marathon plugin](https://github.com/jenkinsci/marathon-plugin) for Jenkins:

nano Jenkinsfile
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Syntax highlighting please.


1. Now that we've got our four files, add, commit and push them to the repository:

git add *
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Syntax highlighting please.

Other resources:
* [About GitLab](https://about.gitlab.com/about/)

* [Deploy GitLab on DC/OS today](https://mesosphere.com/blog/2016/09/16/gitlab-dcos/) on the Mesosphere blog
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this link for? Feels like we're crossing the streams.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PageRank mainly. Fine.

@ashenden
Copy link
Contributor

ashenden commented Oct 4, 2016

Is this still up for review or are we good to go?

@judithpatudith
Copy link
Contributor

Hey Guys, is anything happening with this post? If it goes up I'm happy to promote it on twitter etc.

@ssk2
Copy link
Contributor Author

ssk2 commented Oct 24, 2016

Blocked on me @judithpatudith.

@ssk2
Copy link
Contributor Author

ssk2 commented Dec 13, 2016

Superceded by dcos/examples#27

@ssk2 ssk2 closed this Dec 13, 2016
@ashenden ashenden deleted the gitlab-blog-post branch December 22, 2016 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants