Sync docs from v1.0.0.M7 to gh-pages
This commit is contained in:
@@ -22,14 +22,14 @@ scripts without changing the whole pipeline.</p></div><div class="section"><div
|
||||
contained them. To fix this, just remove the tags</p><pre class="programlisting">git tag -l | xargs -n <span class="hl-number">1</span> git push --delete origin</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_i_want_to_provide_a_different_jdk_version" href="#_i_want_to_provide_a_different_jdk_version"></a>10.8 I want to provide a different JDK version</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">by default we assume that you have jdk with id <code class="literal">jdk8</code> configured</li><li class="listitem">if you want a different one just override <code class="literal">JDK_VERSION</code> env var and point to the proper one</li></ul></div><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png"></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p>The docker image comes in with Java installed at <code class="literal">/usr/lib/jvm/java-8-openjdk-amd64</code>.
|
||||
You can go to <code class="literal">Global Tools</code> and create a JDK with <code class="literal">jdk8</code> id and JAVA_HOME
|
||||
pointing to <code class="literal">/usr/lib/jvm/java-8-openjdk-amd64</code></p></td></tr></table></div><p>To change the default one just follow these steps:</p><p>
|
||||
</p><div class="figure"><a name="d0e5071" href="#d0e5071"></a><p class="title"><b>Figure 10.1. Click 'Manage Jenkins'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/manage_jenkins.png" alt="manage jenkins"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5082" href="#d0e5082"></a><p class="title"><b>Figure 10.2. Click 'Global Tool'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/global_tool.png" alt="global tool"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5093" href="#d0e5093"></a><p class="title"><b>Figure 10.3. Click 'JDK Installations'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/jdk_installation.png" alt="jdk installation"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5104" href="#d0e5104"></a><p class="title"><b>Figure 10.4. Fill out JDK Installation with path to your JDK</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/jdk.png" alt="jdk"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5076" href="#d0e5076"></a><p class="title"><b>Figure 10.1. Click 'Manage Jenkins'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/manage_jenkins.png" alt="manage jenkins"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5087" href="#d0e5087"></a><p class="title"><b>Figure 10.2. Click 'Global Tool'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/global_tool.png" alt="global tool"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5098" href="#d0e5098"></a><p class="title"><b>Figure 10.3. Click 'JDK Installations'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/jdk_installation.png" alt="jdk installation"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5109" href="#d0e5109"></a><p class="title"><b>Figure 10.4. Fill out JDK Installation with path to your JDK</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/jdk.png" alt="jdk"></div></div></div><br class="figure-break"><p>
|
||||
</p><p>And that’s it!</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="groovy-token-macro" href="#groovy-token-macro"></a>10.9 Enable Groovy Token Macro Processing</h2></div></div></div><p>With scripted that but if you needed to this manually then this is how to do it:</p><p>
|
||||
</p><div class="figure"><a name="d0e5124" href="#d0e5124"></a><p class="title"><b>Figure 10.5. Click 'Manage Jenkins'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/manage_jenkins.png" alt="manage jenkins"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5135" href="#d0e5135"></a><p class="title"><b>Figure 10.6. Click 'Configure System'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/configure_system.png" alt="configure system"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5146" href="#d0e5146"></a><p class="title"><b>Figure 10.7. Click 'Allow token macro processing'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/groovy_token.png" alt="groovy token"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_i_want_deployment_to_stage_and_prod_be_automatic" href="#_i_want_deployment_to_stage_and_prod_be_automatic"></a>10.10 I want deployment to stage and prod be automatic</h2></div></div></div><p>No problem, just set the property / env var to true</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="literal">AUTO_DEPLOY_TO_STAGE</code> to automatically deploy to stage</li><li class="listitem"><code class="literal">AUTO_DEPLOY_TO_PROD</code> to automatically deploy to prod</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_i_don_t_want_to_test_api_compativility" href="#_i_don_t_want_to_test_api_compativility"></a>10.11 I don’t want to test API compativility</h2></div></div></div><p>No problem, just set the <code class="literal">API_COMPATIBILITY_STEP_REQUIRED</code> env variable
|
||||
</p><div class="figure"><a name="d0e5129" href="#d0e5129"></a><p class="title"><b>Figure 10.5. Click 'Manage Jenkins'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/manage_jenkins.png" alt="manage jenkins"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5140" href="#d0e5140"></a><p class="title"><b>Figure 10.6. Click 'Configure System'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/configure_system.png" alt="configure system"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e5151" href="#d0e5151"></a><p class="title"><b>Figure 10.7. Click 'Allow token macro processing'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/groovy_token.png" alt="groovy token"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_i_want_deployment_to_stage_and_prod_be_automatic" href="#_i_want_deployment_to_stage_and_prod_be_automatic"></a>10.10 I want deployment to stage and prod be automatic</h2></div></div></div><p>No problem, just set the property / env var to true</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="literal">AUTO_DEPLOY_TO_STAGE</code> to automatically deploy to stage</li><li class="listitem"><code class="literal">AUTO_DEPLOY_TO_PROD</code> to automatically deploy to prod</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_i_don_t_want_to_test_api_compativility" href="#_i_don_t_want_to_test_api_compativility"></a>10.11 I don’t want to test API compativility</h2></div></div></div><p>No problem, just set the <code class="literal">API_COMPATIBILITY_STEP_REQUIRED</code> env variable
|
||||
to <code class="literal">false</code> and rerun the seed (you can pick it from the seed
|
||||
job’s properties too).</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_i_can_t_tag_the_repo" href="#_i_can_t_tag_the_repo"></a>10.12 I can’t tag the repo!</h2></div></div></div><p>When you get sth like this:</p><pre class="programlisting"><span class="hl-number">19</span>:<span class="hl-number">01</span>:<span class="hl-number">44</span> stderr: remote: Invalid username or password.
|
||||
<span class="hl-number">19</span>:<span class="hl-number">01</span>:<span class="hl-number">44</span> fatal: Authentication failed <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">for</span> <span xmlns:d="http://docbook.org/ns/docbook" class="hl-string">'https://github.com/marcingrzejszczak/github-webhook/'</span>
|
||||
|
||||
@@ -59,15 +59,15 @@ of Java installation and the others to another one.</p></td></tr></table></div><
|
||||
you’d have to go to <code class="literal">Configure</code> of the build step and modify the Git name / email.
|
||||
If you want to set it globally you’ll have to remove the section from the build
|
||||
step and follow these steps to set it globally.</p><p>You can set Git email / user globally like this:</p><p>
|
||||
</p><div class="figure"><a name="d0e2636" href="#d0e2636"></a><p class="title"><b>Figure 7.1. Click 'Manage Jenkins'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/manage_jenkins.png" alt="manage jenkins"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2647" href="#d0e2647"></a><p class="title"><b>Figure 7.2. Click 'Configure System'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/configure_system.png" alt="configure system"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2658" href="#d0e2658"></a><p class="title"><b>Figure 7.3. Fill out Git user information</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/git.png" alt="git"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2641" href="#d0e2641"></a><p class="title"><b>Figure 7.1. Click 'Manage Jenkins'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/manage_jenkins.png" alt="manage jenkins"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2652" href="#d0e2652"></a><p class="title"><b>Figure 7.2. Click 'Configure System'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/configure_system.png" alt="configure system"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2663" href="#d0e2663"></a><p class="title"><b>Figure 7.3. Fill out Git user information</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/git.png" alt="git"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="jenkins-credentials-github" href="#jenkins-credentials-github"></a>Add Jenkins credentials for GitHub</h4></div></div></div><p><a name="jenkins-credentials" href="#jenkins-credentials"></a> The scripts will need to access the credential in order to tag the repo.</p><p>You have to set credentials with id: <code class="literal">git</code>.</p><p>Below you can find instructions on how to set a credential (e.g. for Cloud Foundry <code class="literal">cf-test</code> credential but
|
||||
remember to provide the one with id <code class="literal">git</code>).</p><p>
|
||||
</p><div class="figure"><a name="d0e2690" href="#d0e2690"></a><p class="title"><b>Figure 7.4. Click 'Credentials, System'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_system.png" alt="credentials system"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2701" href="#d0e2701"></a><p class="title"><b>Figure 7.5. Click 'Global Credentials'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_global.png" alt="credentials global"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2712" href="#d0e2712"></a><p class="title"><b>Figure 7.6. Click 'Add credentials'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_add.png" alt="credentials add"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2723" href="#d0e2723"></a><p class="title"><b>Figure 7.7. Fill out the user / password and provide the <code class="literal">git</code> credential ID (in this example <code class="literal">cf-test</code>)</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_example.png" alt="credentials example"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2695" href="#d0e2695"></a><p class="title"><b>Figure 7.4. Click 'Credentials, System'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_system.png" alt="credentials system"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2706" href="#d0e2706"></a><p class="title"><b>Figure 7.5. Click 'Global Credentials'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_global.png" alt="credentials global"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2717" href="#d0e2717"></a><p class="title"><b>Figure 7.6. Click 'Add credentials'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_add.png" alt="credentials add"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2728" href="#d0e2728"></a><p class="title"><b>Figure 7.7. Fill out the user / password and provide the <code class="literal">git</code> credential ID (in this example <code class="literal">cf-test</code>)</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/credentials_example.png" alt="credentials example"></div></div></div><br class="figure-break"><p>
|
||||
</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_testing_jenkins_scripts" href="#_testing_jenkins_scripts"></a>7.3 Testing Jenkins scripts</h2></div></div></div><p><code class="literal">./gradlew clean build</code></p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top"><p>The ran test only checks if your scripts compile.</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_how_to_work_with_jenkins_job_dsl_plugin" href="#_how_to_work_with_jenkins_job_dsl_plugin"></a>7.4 How to work with Jenkins Job DSL plugin</h2></div></div></div><p>Check out the <a class="link" href="https://github.com/jenkinsci/job-dsl-plugin/wiki/Tutorial---Using-the-Jenkins-Job-DSL" target="_top">tutorial</a>.
|
||||
Provide the link to this repository in your Jenkins installation.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top"><p>Remember that views can be overridden that’s why the suggestion is to contain in one script all the logic needed to build a view
|
||||
for a single project (check out that <code class="literal">spring_cloud_views.groovy</code> is building all the <code class="literal">spring-cloud</code> views).</p></td></tr></table></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_docker_image" href="#_docker_image"></a>7.5 Docker Image</h2></div></div></div><p>If you would like to run the pre-configured Jenkins image somewhere other than your local machine, we
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,14 +2,14 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>12. The demo setup (Cloud Foundry)</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="multi_spring-cloud-pipelines.html" title="Spring Cloud Pipelines"><link rel="up" href="multi_spring-cloud-pipelines.html" title="Spring Cloud Pipelines"><link rel="prev" href="multi__kubernetes_setup.html" title="11. Kubernetes setup"><link rel="next" href="multi__the_demo_setup_kubernetes.html" title="13. The demo setup (Kubernetes)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">12. The demo setup (Cloud Foundry)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="multi__kubernetes_setup.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="multi__the_demo_setup_kubernetes.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="_the_demo_setup_cloud_foundry" href="#_the_demo_setup_cloud_foundry"></a>12. The demo setup (Cloud Foundry)</h1></div></div></div><p>The demo uses 2 applications. <a class="link" href="https://github.com/spring-cloud-samples/github-webhook/" target="_top">Github Webhook</a>
|
||||
and <a class="link" href="https://github.com/spring-cloud-samples/github-analytics/" target="_top">Github analytics code</a>. Below you can
|
||||
see an image of how these application communicate with each other.</p><div class="figure"><a name="d0e5513" href="#d0e5513"></a><p class="title"><b>Figure 12.1. Github Webhook listens to HTTP calls and sends a message to Github Analytics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo.png" alt="demo"></div></div></div><br class="figure-break"><p>
|
||||
see an image of how these application communicate with each other.</p><div class="figure"><a name="d0e5518" href="#d0e5518"></a><p class="title"><b>Figure 12.1. Github Webhook listens to HTTP calls and sends a message to Github Analytics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo.png" alt="demo"></div></div></div><br class="figure-break"><p>
|
||||
</p><p>For the demo scenario we have two applications. <code class="literal">Github Analytics</code> and <code class="literal">Github Webhook</code>.
|
||||
Let’s imagine a case where Github is emitting events via HTTP. <code class="literal">Github Webhook</code> has
|
||||
an API that could register to such hooks and receive those messages. Once this happens
|
||||
<code class="literal">Github Webhook</code> sends a message by RabbitMQ to a channel. <code class="literal">Github Analytics</code> is
|
||||
listening to those messages and stores them in a MySQL database.</p><div class="figure"><a name="d0e5541" href="#d0e5541"></a><p class="title"><b>Figure 12.2. Github Analytics exposes metrics that are polled by Prometheus</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_metrics.png" alt="demo metrics"></div></div></div><br class="figure-break"><p>
|
||||
listening to those messages and stores them in a MySQL database.</p><div class="figure"><a name="d0e5546" href="#d0e5546"></a><p class="title"><b>Figure 12.2. Github Analytics exposes metrics that are polled by Prometheus</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_metrics.png" alt="demo metrics"></div></div></div><br class="figure-break"><p>
|
||||
</p><p><code class="literal">Github Analytics</code> has its KPIs (Key Performance Indicators) monitored. In the case
|
||||
of that application the KPI is number of issues.</p><div class="figure"><a name="d0e5556" href="#d0e5556"></a><p class="title"><b>Figure 12.3. Grafana alerts Slack over Prometheus metrics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_alerting.png" alt="demo alerting"></div></div></div><br class="figure-break"><p>
|
||||
of that application the KPI is number of issues.</p><div class="figure"><a name="d0e5561" href="#d0e5561"></a><p class="title"><b>Figure 12.3. Grafana alerts Slack over Prometheus metrics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_alerting.png" alt="demo alerting"></div></div></div><br class="figure-break"><p>
|
||||
</p><p>Let’s assume that if we go below the threshold of X issues then an alert should be
|
||||
sent to Slack.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_deploying_production_applications_to_pcf_dev" href="#_deploying_production_applications_to_pcf_dev"></a>12.1 Deploying production applications to PCF Dev</h2></div></div></div><p>In the real world scenario we wouldn’t want to automatically provision services like
|
||||
RabbitMQ, MySQL or Eureka each time we deploy a new application to production. Typically
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>13. The demo setup (Kubernetes)</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="multi_spring-cloud-pipelines.html" title="Spring Cloud Pipelines"><link rel="up" href="multi_spring-cloud-pipelines.html" title="Spring Cloud Pipelines"><link rel="prev" href="multi__the_demo_setup_cloud_foundry.html" title="12. The demo setup (Cloud Foundry)"><link rel="next" href="multi__building_the_project.html" title="14. Building the project"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">13. The demo setup (Kubernetes)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="multi__the_demo_setup_cloud_foundry.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="multi__building_the_project.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="_the_demo_setup_kubernetes" href="#_the_demo_setup_kubernetes"></a>13. The demo setup (Kubernetes)</h1></div></div></div><p>The demo uses 2 applications. <a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes/" target="_top">Github Webhook</a>
|
||||
and <a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes/" target="_top">Github analytics code</a>. Below you can
|
||||
see an image of how these application communicate with each other.</p><div class="figure"><a name="d0e5677" href="#d0e5677"></a><p class="title"><b>Figure 13.1. Github Webhook listens to HTTP calls and sends a message to Github Analytics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo.png" alt="demo"></div></div></div><br class="figure-break"><p>
|
||||
see an image of how these application communicate with each other.</p><div class="figure"><a name="d0e5682" href="#d0e5682"></a><p class="title"><b>Figure 13.1. Github Webhook listens to HTTP calls and sends a message to Github Analytics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo.png" alt="demo"></div></div></div><br class="figure-break"><p>
|
||||
</p><p>For the demo scenario we have two applications. <code class="literal">Github Analytics</code> and <code class="literal">Github Webhook</code>.
|
||||
Let’s imagine a case where Github is emitting events via HTTP. <code class="literal">Github Webhook</code> has
|
||||
an API that could register to such hooks and receive those messages. Once this happens
|
||||
<code class="literal">Github Webhook</code> sends a message by RabbitMQ to a channel. <code class="literal">Github Analytics</code> is
|
||||
listening to those messages and stores them in a MySQL database.</p><div class="figure"><a name="d0e5705" href="#d0e5705"></a><p class="title"><b>Figure 13.2. Github Analytics exposes metrics that are polled by Prometheus</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_metrics.png" alt="demo metrics"></div></div></div><br class="figure-break"><p>
|
||||
listening to those messages and stores them in a MySQL database.</p><div class="figure"><a name="d0e5710" href="#d0e5710"></a><p class="title"><b>Figure 13.2. Github Analytics exposes metrics that are polled by Prometheus</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_metrics.png" alt="demo metrics"></div></div></div><br class="figure-break"><p>
|
||||
</p><p><code class="literal">Github Analytics</code> has its KPIs (Key Performance Indicators) monitored. In the case
|
||||
of that application the KPI is number of issues.</p><div class="figure"><a name="d0e5720" href="#d0e5720"></a><p class="title"><b>Figure 13.3. Grafana alerts Slack over Prometheus metrics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_alerting.png" alt="demo alerting"></div></div></div><br class="figure-break"><p>
|
||||
of that application the KPI is number of issues.</p><div class="figure"><a name="d0e5725" href="#d0e5725"></a><p class="title"><b>Figure 13.3. Grafana alerts Slack over Prometheus metrics</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/demo/demo_alerting.png" alt="demo alerting"></div></div></div><br class="figure-break"><p>
|
||||
</p><p>Let’s assume that if we go below the threshold of X issues then an alert should be
|
||||
sent to Slack.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_deploying_production_applications_to_minikube" href="#_deploying_production_applications_to_minikube"></a>13.1 Deploying production applications to Minikube</h2></div></div></div><p>In the real world scenario we wouldn’t want to automatically provision services like
|
||||
RabbitMQ, MySQL or Eureka each time we deploy a new application to production. Typically
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<title>5. Concourse Pipeline (Kubernetes)</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="multi_spring-cloud-pipelines.html" title="Spring Cloud Pipelines"><link rel="up" href="multi_spring-cloud-pipelines.html" title="Spring Cloud Pipelines"><link rel="prev" href="multi_concourse-pipeline-cf.html" title="4. Concourse Pipeline (Cloud Foundry)"><link rel="next" href="multi_concourse-faq.html" title="6. Concourse FAQ"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">5. Concourse Pipeline (Kubernetes)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="multi_concourse-pipeline-cf.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="multi_concourse-faq.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="concourse-pipeline-k8s" href="#concourse-pipeline-k8s"></a>5. Concourse Pipeline (Kubernetes)</h1></div></div></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>In this chapter we assume that you perform deployment of your application
|
||||
to Kubernetes PaaS</p></td></tr></table></div><p><a name="concourse" href="#concourse"></a> The Spring Cloud Pipelines repository contains opinionated
|
||||
Concourse pipeline definition. Those jobs will form an empty pipeline and a
|
||||
sample, opinionated one that you can use in your company.</p><p>All in all there are the following projects taking part in the whole <code class="literal">microservice setup</code> for this demo.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes" target="_top">Github Analytics</a> - the app that has a REST endpoint and uses messaging. Our business application.</li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes" target="_top">Github Webhook</a> - project that emits messages that are used by Github Analytics. Our business application.</li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-eureka" target="_top">Eureka</a> - simple Eureka Server. This is an infrastructure application.</li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-stub-runner-boot" target="_top">Github Analytics Stub Runner Boot</a> - Stub Runner Boot server to be used for tests with Github Analytics. Uses Eureka and Messaging. This is an infrastructure application.</li></ul></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="step-by-step-k8s" href="#step-by-step-k8s"></a>5.1 Step by step</h2></div></div></div><p>This is a guide for Concourse pipeline.</p><p>If you want to just run the demo as far as possible using PCF Dev and Docker Compose</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-fork-k8s">Fork repos</a></li><li class="listitem"><a class="link" href="">Start Concourse and Artifactory</a></li><li class="listitem"><a class="link" href="">Deploy infra to Artifactory</a></li><li class="listitem"><a class="link" href="">Start Minikube (if you don’t want to use an existing one)</a></li><li class="listitem"><a class="link" href="">Run the seed job</a></li><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html" title="5. Concourse Pipeline (Kubernetes)">Run the <code class="literal">github-webhook</code> pipeline</a></li></ul></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fork-repos-k8s" href="#fork-repos-k8s"></a>5.1.1 Fork repos</h3></div></div></div><p><a name="concourse-fork-k8s" href="#concourse-fork-k8s"></a> There are 4 apps that are composing the pipeline</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes" target="_top">Github Webhook</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes/" target="_top">Github Analytics</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-eureka" target="_top">Github Eureka</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-stub-runner-boot-classpath-stubs" target="_top">Github Stub Runner Boot</a></li></ul></div><p>You need to fork only these. That’s because only then will your user be able to tag and push the tag to repo.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes" target="_top">Github Webhook</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes/" target="_top">Github Analytics</a></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="_concourse_in_k8s_kubernetes" href="#_concourse_in_k8s_kubernetes"></a>5.2 Concourse in K8S (Kubernetes)</h2></div></div></div><p>The simplest way to deploy Concourse to K8S is to use <a class="link" href="https://github.com/kubernetes/helm" target="_top">Helm</a>.
|
||||
sample, opinionated one that you can use in your company.</p><p>All in all there are the following projects taking part in the whole <code class="literal">microservice setup</code> for this demo.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes" target="_top">Github Analytics</a> - the app that has a REST endpoint and uses messaging. Our business application.</li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes" target="_top">Github Webhook</a> - project that emits messages that are used by Github Analytics. Our business application.</li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-eureka" target="_top">Eureka</a> - simple Eureka Server. This is an infrastructure application.</li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-stub-runner-boot" target="_top">Github Analytics Stub Runner Boot</a> - Stub Runner Boot server to be used for tests with Github Analytics. Uses Eureka and Messaging. This is an infrastructure application.</li></ul></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="step-by-step-k8s" href="#step-by-step-k8s"></a>5.1 Step by step</h2></div></div></div><p>This is a guide for Concourse pipeline.</p><p>If you want to just run the demo as far as possible using PCF Dev and Docker Compose</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-fork-k8s">Fork repos</a></li><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-start-k8s" title="5.2 Concourse in K8S (Kubernetes)">Start Concourse and Artifactory</a></li><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-pipeline-fly-k8s" title="5.2.2 Setup the fly CLI">Setup the <code class="literal">fly</code> CLI</a></li><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-pipeline-credentials-k8s" title="5.2.3 Setup your credentials.yml">Setup your <code class="literal">credentials.yml</code></a></li><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-pipeline-build-k8s" title="5.2.4 Build the pipeline">Setup the pipeline</a></li><li class="listitem"><a class="link" href="multi_concourse-pipeline-k8s.html#concourse-pipeline-run-k8s" title="5.2.5 Run the github-webhook pipeline">Run the <code class="literal">github-webhook</code> pipeline</a></li></ul></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fork-repos-k8s" href="#fork-repos-k8s"></a>5.1.1 Fork repos</h3></div></div></div><p><a name="concourse-fork-k8s" href="#concourse-fork-k8s"></a> There are 4 apps that are composing the pipeline</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes" target="_top">Github Webhook</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes/" target="_top">Github Analytics</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-eureka" target="_top">Github Eureka</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-stub-runner-boot-classpath-stubs" target="_top">Github Stub Runner Boot</a></li></ul></div><p>You need to fork only these. That’s because only then will your user be able to tag and push the tag to repo.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-webhook-kubernetes" target="_top">Github Webhook</a></li><li class="listitem"><a class="link" href="https://github.com/spring-cloud-samples/github-analytics-kubernetes/" target="_top">Github Analytics</a></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="concourse-start-k8s" href="#concourse-start-k8s"></a>5.2 Concourse in K8S (Kubernetes)</h2></div></div></div><p>The simplest way to deploy Concourse to K8S is to use <a class="link" href="https://github.com/kubernetes/helm" target="_top">Helm</a>.
|
||||
Once you have Helm installed and your <code class="literal">kubectl</code> is pointing to the
|
||||
cluster, just type this command to install the Concourse cluster in your K8S cluster.</p><pre class="programlisting">$ helm install stable/concourse --name concourse</pre><p>Once it’s done you’ll see the following output</p><pre class="programlisting"><span class="hl-number">1.</span> Concourse can be accessed:
|
||||
|
||||
@@ -34,7 +34,7 @@ Congratulations. You have just deployed JFrog Artifactory Pro!
|
||||
Default credential <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">for</span> Artifactory:
|
||||
user: admin
|
||||
password: password</pre><p>Next, we need to set up the repositories.</p><p>First, access the Artifactory URL and log in with
|
||||
user, <code class="literal">admin</code> and <code class="literal">password</code> password.</p><div class="figure"><a name="d0e2008" href="#d0e2008"></a><p class="title"><b>Figure 5.1. Click on the <code class="literal">Quick Setup</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/artifactory_quick_setup.png" alt="artifactory quick setup"></div></div></div><br class="figure-break"><p>Then, click on the Maven setup and click <code class="literal">Create</code>.</p><div class="figure"><a name="d0e2024" href="#d0e2024"></a><p class="title"><b>Figure 5.2. Create the <code class="literal">Maven</code> Repository</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/artifactory_maven_repo.png" alt="artifactory maven repo"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="concourse-pipeline-fly-k8s" href="#concourse-pipeline-fly-k8s"></a>5.2.2 Setup the <code class="literal">fly</code> CLI</h3></div></div></div><p><a name="fly" href="#fly"></a> If you go to Concourse website you should see sth like this:</p><p>
|
||||
user, <code class="literal">admin</code> and <code class="literal">password</code> password.</p><div class="figure"><a name="d0e2013" href="#d0e2013"></a><p class="title"><b>Figure 5.1. Click on the <code class="literal">Quick Setup</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/artifactory_quick_setup.png" alt="artifactory quick setup"></div></div></div><br class="figure-break"><p>Then, click on the Maven setup and click <code class="literal">Create</code>.</p><div class="figure"><a name="d0e2029" href="#d0e2029"></a><p class="title"><b>Figure 5.2. Create the <code class="literal">Maven</code> Repository</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/artifactory_maven_repo.png" alt="artifactory maven repo"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="concourse-pipeline-fly-k8s" href="#concourse-pipeline-fly-k8s"></a>5.2.2 Setup the <code class="literal">fly</code> CLI</h3></div></div></div><p><a name="fly" href="#fly"></a> If you go to Concourse website you should see sth like this:</p><p>
|
||||
</p><div class="informalfigure"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/running_concourse.png" alt="running concourse"></div></div><p>
|
||||
</p><p>You can click one of the icons (depending on your OS) to download <code class="literal">fly</code>, which is the Concourse CLI. Once you’ve downloaded that (and maybe added to your PATH) you can run:</p><pre class="programlisting">fly --version</pre><p>If <code class="literal">fly</code> is properly installed then it should print out the version.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="concourse-pipeline-credentials-k8s" href="#concourse-pipeline-credentials-k8s"></a>5.2.3 Setup your <code class="literal">credentials.yml</code></h3></div></div></div><p>There is a sample credentials file called <code class="literal">credentials-sample-k8s.yml</code>
|
||||
prepared for <code class="literal">k8s</code>. You can use it as a base for your <code class="literal">credentials.yml</code>.</p><p>To allow the Concourse worker’s spawned container to connect to
|
||||
@@ -43,13 +43,13 @@ auth token.</p><p>To get the contents of CA for GCE just execute</p><pre class="
|
||||
$ <span xmlns:d="http://docbook.org/ns/docbook" class="hl-keyword">echo</span> <span xmlns:d="http://docbook.org/ns/docbook" class="hl-string">"Visit http://127.0.0.1:8080 to use Concourse"</span>
|
||||
$ kubectl port-forward --namespace default $POD_NAME <span class="hl-number">8080</span>:<span class="hl-number">8080</span>
|
||||
Visit http://<span class="hl-number">127.0</span>.<span class="hl-number">0.1</span>:<span class="hl-number">8080</span> to use Concourse</pre><p>Log in (e.g. for Concourse running at <code class="literal">127.0.0.1</code> - if you don’t provide any value then <code class="literal">localhost</code> is assumed). If you execute this script (it assumes that either <code class="literal">fly</code> is on your <code class="literal">PATH</code> or it’s in the same folder as the script is):</p><pre class="programlisting">$ fly -t k8s login -c http://localhost:<span class="hl-number">8080</span> -u concourse -p concourse</pre><p>Next run the command to create the pipeline.</p><pre class="programlisting">$ ./set_pipeline.sh github-webhook k8s credentials-k8s.yml</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="concourse-pipeline-run-k8s" href="#concourse-pipeline-run-k8s"></a>5.2.5 Run the <code class="literal">github-webhook</code> pipeline</h3></div></div></div><p>
|
||||
</p><div class="figure"><a name="d0e2139" href="#d0e2139"></a><p class="title"><b>Figure 5.3. Click <code class="literal">Login</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_login.png" alt="concourse login"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2152" href="#d0e2152"></a><p class="title"><b>Figure 5.4. Pick <code class="literal">main</code> team</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_team_main.png" alt="concourse team main"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2166" href="#d0e2166"></a><p class="title"><b>Figure 5.5. Log in with <code class="literal">concourse</code> user and <code class="literal">concourse</code> password</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_user_pass.png" alt="concourse user pass"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2183" href="#d0e2183"></a><p class="title"><b>Figure 5.6. Your screen should look more or less like this</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_pipeline.png" alt="concourse pipeline"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2194" href="#d0e2194"></a><p class="title"><b>Figure 5.7. Unpause the pipeline by clicking in the top lefr corner and then clicking the <code class="literal">play</code> button</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/start_pipeline.png" alt="start pipeline"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2208" href="#d0e2208"></a><p class="title"><b>Figure 5.8. Click 'generate-version'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/generate_version.png" alt="generate version"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2219" href="#d0e2219"></a><p class="title"><b>Figure 5.9. Click <code class="literal">+</code> sign to start a new build</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/run_pipeline.png" alt="run pipeline"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2233" href="#d0e2233"></a><p class="title"><b>Figure 5.10. The job is pending</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_pending.png" alt="concourse pending"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2244" href="#d0e2244"></a><p class="title"><b>Figure 5.11. Job is pending in the main screen</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/job_running.png" alt="job running"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2255" href="#d0e2255"></a><p class="title"><b>Figure 5.12. Job is running in the main screen</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/running_pipeline.png" alt="running pipeline"></div></div></div><br class="figure-break"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="multi_concourse-pipeline-cf.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="multi_concourse-faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4. Concourse Pipeline (Cloud Foundry) </td><td width="20%" align="center"><a accesskey="h" href="multi_spring-cloud-pipelines.html">Home</a></td><td width="40%" align="right" valign="top"> 6. Concourse FAQ</td></tr></table></div></body></html>
|
||||
</p><div class="figure"><a name="d0e2144" href="#d0e2144"></a><p class="title"><b>Figure 5.3. Click <code class="literal">Login</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_login.png" alt="concourse login"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2157" href="#d0e2157"></a><p class="title"><b>Figure 5.4. Pick <code class="literal">main</code> team</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_team_main.png" alt="concourse team main"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2171" href="#d0e2171"></a><p class="title"><b>Figure 5.5. Log in with <code class="literal">concourse</code> user and <code class="literal">concourse</code> password</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_user_pass.png" alt="concourse user pass"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2188" href="#d0e2188"></a><p class="title"><b>Figure 5.6. Your screen should look more or less like this</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_pipeline.png" alt="concourse pipeline"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2199" href="#d0e2199"></a><p class="title"><b>Figure 5.7. Unpause the pipeline by clicking in the top lefr corner and then clicking the <code class="literal">play</code> button</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/start_pipeline.png" alt="start pipeline"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2213" href="#d0e2213"></a><p class="title"><b>Figure 5.8. Click 'generate-version'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/generate_version.png" alt="generate version"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2224" href="#d0e2224"></a><p class="title"><b>Figure 5.9. Click <code class="literal">+</code> sign to start a new build</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/run_pipeline.png" alt="run pipeline"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2238" href="#d0e2238"></a><p class="title"><b>Figure 5.10. The job is pending</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/concourse_pending.png" alt="concourse pending"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2249" href="#d0e2249"></a><p class="title"><b>Figure 5.11. Job is pending in the main screen</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/job_running.png" alt="job running"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2260" href="#d0e2260"></a><p class="title"><b>Figure 5.12. Job is running in the main screen</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/concourse/running_pipeline.png" alt="running pipeline"></div></div></div><br class="figure-break"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="multi_concourse-pipeline-cf.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="multi_concourse-faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4. Concourse Pipeline (Cloud Foundry) </td><td width="20%" align="center"><a accesskey="h" href="multi_spring-cloud-pipelines.html">Home</a></td><td width="40%" align="right" valign="top"> 6. Concourse FAQ</td></tr></table></div></body></html>
|
||||
@@ -32,35 +32,35 @@ has all the properties options, but you can delete most of it. If you
|
||||
set the properties as global env variables you have to remove them from the
|
||||
seed.</p><p>Anyways, to run the demo just provide in the <code class="literal">REPOS</code> var the comma separated
|
||||
list of URLs of the 2 aforementioned forks of <code class="literal">github-webhook</code> and `github-analytics'.</p><p>
|
||||
</p><div class="figure"><a name="d0e2974" href="#d0e2974"></a><p class="title"><b>Figure 8.1. Click the 'jenkins-pipeline-seed-cf' job for Cloud Foundry and <code class="literal">jenkins-pipeline-seed-k8s</code> for Kubernetes</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_click.png" alt="seed click"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2988" href="#d0e2988"></a><p class="title"><b>Figure 8.2. Click the 'Build with parameters'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_run.png" alt="seed run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2999" href="#d0e2999"></a><p class="title"><b>Figure 8.3. The <code class="literal">REPOS</code> parameter should already contain your forked repos (you’ll have more properties than the ones in the screenshot)</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed.png" alt="seed"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3013" href="#d0e3013"></a><p class="title"><b>Figure 8.4. This is how the results of seed should look like</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_built.png" alt="seed built"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="jenkins-pipeline-cf" href="#jenkins-pipeline-cf"></a>8.1.5 Run the <code class="literal">github-webhook</code> pipeline</h3></div></div></div><p>We already create the seed job for you but you’ll have to run it. When you do
|
||||
</p><div class="figure"><a name="d0e2979" href="#d0e2979"></a><p class="title"><b>Figure 8.1. Click the 'jenkins-pipeline-seed-cf' job for Cloud Foundry and <code class="literal">jenkins-pipeline-seed-k8s</code> for Kubernetes</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_click.png" alt="seed click"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e2993" href="#d0e2993"></a><p class="title"><b>Figure 8.2. Click the 'Build with parameters'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_run.png" alt="seed run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3004" href="#d0e3004"></a><p class="title"><b>Figure 8.3. The <code class="literal">REPOS</code> parameter should already contain your forked repos (you’ll have more properties than the ones in the screenshot)</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed.png" alt="seed"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3018" href="#d0e3018"></a><p class="title"><b>Figure 8.4. This is how the results of seed should look like</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_built.png" alt="seed built"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="jenkins-pipeline-cf" href="#jenkins-pipeline-cf"></a>8.1.5 Run the <code class="literal">github-webhook</code> pipeline</h3></div></div></div><p>We already create the seed job for you but you’ll have to run it. When you do
|
||||
run it you have to provide some properties. By default we create a seed that
|
||||
has all the properties options, but you can delete most of it. If you
|
||||
set the properties as global env variables you have to remove them from the
|
||||
seed.</p><p>Anyways, to run the demo just provide in the <code class="literal">REPOS</code> var the comma separated
|
||||
list of URLs of the 2 aforementioned forks of <code class="literal">github-webhook</code> and <code class="literal">github-analytics</code>.</p><p>
|
||||
</p><div class="figure"><a name="d0e3043" href="#d0e3043"></a><p class="title"><b>Figure 8.5. Click the 'github-webhook' view</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_views.png" alt="seed views"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3054" href="#d0e3054"></a><p class="title"><b>Figure 8.6. Run the pipeline</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_run.png" alt="pipeline run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3048" href="#d0e3048"></a><p class="title"><b>Figure 8.5. Click the 'github-webhook' view</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_views.png" alt="seed views"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3059" href="#d0e3059"></a><p class="title"><b>Figure 8.6. Run the pipeline</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_run.png" alt="pipeline run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>If your build fails on the <span class="strong"><strong>deploy previous version to stage</strong></span> due to missing jar,
|
||||
that means that you’ve forgotten to clear the tags in your repo. Typically that’s due to the fact that
|
||||
you’ve removed the Artifactory volume with deployed JAR whereas a tag in the repo is still pointing there.
|
||||
<a class="link" href="">Check out this section on how to remove the tag.</a></p></td></tr></table></div><p>
|
||||
</p><div class="figure"><a name="d0e3075" href="#d0e3075"></a><p class="title"><b>Figure 8.7. Click the manual step to go to stage (remember about killing the apps on test env). To do this click the <span class="strong">ARROW</span> next to the job name</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_manual.png" alt="pipeline manual"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3080" href="#d0e3080"></a><p class="title"><b>Figure 8.7. Click the manual step to go to stage (remember about killing the apps on test env). To do this click the <span class="strong">ARROW</span> next to the job name</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_manual.png" alt="pipeline manual"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>Most likely you will run out of memory so when reaching the stage
|
||||
environment it’s good to kill all apps on test. <a class="link" href="">Check out the FAQ section for more details</a>!</p></td></tr></table></div><p>
|
||||
</p><div class="figure"><a name="d0e3097" href="#d0e3097"></a><p class="title"><b>Figure 8.8. The full pipeline should look like this</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_finished.png" alt="pipeline finished"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3102" href="#d0e3102"></a><p class="title"><b>Figure 8.8. The full pipeline should look like this</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_finished.png" alt="pipeline finished"></div></div></div><br class="figure-break"><p>
|
||||
</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="declarative-pipeline-cf" href="#declarative-pipeline-cf"></a>8.2 Declarative pipeline & Blue Ocean</h2></div></div></div><p>You can also use the <a class="link" href="https://jenkins.io/doc/book/pipeline/syntax/" target="_top">declarative pipeline</a> approach with the
|
||||
<a class="link" href="https://jenkins.io/projects/blueocean/" target="_top">Blue Ocean UI</a>. Here is a step by step guide to run a pipeline via
|
||||
this approach.</p><p>The Blue Ocean UI is available under the <code class="literal">blue/</code> URL. E.g. for Docker Machine based setup <code class="literal"><a class="link" href="http://192.168.99.100:8080/blue" target="_top">http://192.168.99.100:8080/blue</a></code>.</p><p>
|
||||
</p><div class="figure"><a name="d0e3130" href="#d0e3130"></a><p class="title"><b>Figure 8.9. Open Blue Ocean UI and click on <code class="literal">github-webhook-declarative-pipeline</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_1.png" alt="blue 1"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3143" href="#d0e3143"></a><p class="title"><b>Figure 8.10. Your first run will look like this. Click <code class="literal">Run</code> button</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_2.png" alt="blue 2"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3157" href="#d0e3157"></a><p class="title"><b>Figure 8.11. Enter parameters required for the build and click <code class="literal">run</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_3.png" alt="blue 3"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3170" href="#d0e3170"></a><p class="title"><b>Figure 8.12. A list of pipelines will be shown. Click your first run.</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_4.png" alt="blue 4"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3181" href="#d0e3181"></a><p class="title"><b>Figure 8.13. State if you want to go to production or not and click <code class="literal">Proceed</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_5.png" alt="blue 5"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3194" href="#d0e3194"></a><p class="title"><b>Figure 8.14. The build is in progress…​</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_6.png" alt="blue 6"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3205" href="#d0e3205"></a><p class="title"><b>Figure 8.15. The pipeline is done!</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_7.png" alt="blue 7"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3135" href="#d0e3135"></a><p class="title"><b>Figure 8.9. Open Blue Ocean UI and click on <code class="literal">github-webhook-declarative-pipeline</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_1.png" alt="blue 1"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3148" href="#d0e3148"></a><p class="title"><b>Figure 8.10. Your first run will look like this. Click <code class="literal">Run</code> button</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_2.png" alt="blue 2"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3162" href="#d0e3162"></a><p class="title"><b>Figure 8.11. Enter parameters required for the build and click <code class="literal">run</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_3.png" alt="blue 3"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3175" href="#d0e3175"></a><p class="title"><b>Figure 8.12. A list of pipelines will be shown. Click your first run.</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_4.png" alt="blue 4"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3186" href="#d0e3186"></a><p class="title"><b>Figure 8.13. State if you want to go to production or not and click <code class="literal">Proceed</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_5.png" alt="blue 5"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3199" href="#d0e3199"></a><p class="title"><b>Figure 8.14. The build is in progress…​</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_6.png" alt="blue 6"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3210" href="#d0e3210"></a><p class="title"><b>Figure 8.15. The pipeline is done!</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_7.png" alt="blue 7"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>There is no possibility of restarting pipeline from specific stage, after failure. Please
|
||||
check out this <a class="link" href="https://issues.jenkins-ci.org/browse/JENKINS-33846" target="_top">issue</a> for more information</p></td></tr></table></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top"><p>Currently there is no way to introduce manual steps in a performant way. Jenkins is
|
||||
blocking an executor when manual step is required. That means that you’ll run out of executors
|
||||
|
||||
@@ -24,35 +24,35 @@ has all the properties options, but you can delete most of it. If you
|
||||
set the properties as global env variables you have to remove them from the
|
||||
seed.</p><p>Anyways, to run the demo just provide in the <code class="literal">REPOS</code> var the comma separated
|
||||
list of URLs of the 2 aforementioned forks of <code class="literal">github-webhook</code> and `github-analytics'.</p><p>
|
||||
</p><div class="figure"><a name="d0e3777" href="#d0e3777"></a><p class="title"><b>Figure 9.1. Click the 'jenkins-pipeline-seed-cf' job for Cloud Foundry and <code class="literal">jenkins-pipeline-seed-k8s</code> for Kubernetes</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_click.png" alt="seed click"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3791" href="#d0e3791"></a><p class="title"><b>Figure 9.2. Click the 'Build with parameters'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_run.png" alt="seed run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3802" href="#d0e3802"></a><p class="title"><b>Figure 9.3. The <code class="literal">REPOS</code> parameter should already contain your forked repos (you’ll have more properties than the ones in the screenshot)</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed.png" alt="seed"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3816" href="#d0e3816"></a><p class="title"><b>Figure 9.4. This is how the results of seed should look like</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_built.png" alt="seed built"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="jenkins-pipeline-k8s" href="#jenkins-pipeline-k8s"></a>9.1.4 Run the <code class="literal">github-webhook</code> pipeline</h3></div></div></div><p>We already create the seed job for you but you’ll have to run it. When you do
|
||||
</p><div class="figure"><a name="d0e3782" href="#d0e3782"></a><p class="title"><b>Figure 9.1. Click the 'jenkins-pipeline-seed-cf' job for Cloud Foundry and <code class="literal">jenkins-pipeline-seed-k8s</code> for Kubernetes</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_click.png" alt="seed click"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3796" href="#d0e3796"></a><p class="title"><b>Figure 9.2. Click the 'Build with parameters'</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_run.png" alt="seed run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3807" href="#d0e3807"></a><p class="title"><b>Figure 9.3. The <code class="literal">REPOS</code> parameter should already contain your forked repos (you’ll have more properties than the ones in the screenshot)</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed.png" alt="seed"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3821" href="#d0e3821"></a><p class="title"><b>Figure 9.4. This is how the results of seed should look like</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_built.png" alt="seed built"></div></div></div><br class="figure-break"></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="jenkins-pipeline-k8s" href="#jenkins-pipeline-k8s"></a>9.1.4 Run the <code class="literal">github-webhook</code> pipeline</h3></div></div></div><p>We already create the seed job for you but you’ll have to run it. When you do
|
||||
run it you have to provide some properties. By default we create a seed that
|
||||
has all the properties options, but you can delete most of it. If you
|
||||
set the properties as global env variables you have to remove them from the
|
||||
seed.</p><p>Anyways, to run the demo just provide in the <code class="literal">REPOS</code> var the comma separated
|
||||
list of URLs of the 2 aforementioned forks of <code class="literal">github-webhook</code> and <code class="literal">github-analytics</code>.</p><p>
|
||||
</p><div class="figure"><a name="d0e3846" href="#d0e3846"></a><p class="title"><b>Figure 9.5. Click the 'github-webhook' view</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_views.png" alt="seed views"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3857" href="#d0e3857"></a><p class="title"><b>Figure 9.6. Run the pipeline</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_run.png" alt="pipeline run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3851" href="#d0e3851"></a><p class="title"><b>Figure 9.5. Click the 'github-webhook' view</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/seed_views.png" alt="seed views"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3862" href="#d0e3862"></a><p class="title"><b>Figure 9.6. Run the pipeline</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_run.png" alt="pipeline run"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>If your build fails on the <span class="strong"><strong>deploy previous version to stage</strong></span> due to missing jar,
|
||||
that means that you’ve forgotten to clear the tags in your repo. Typically that’s due to the fact that
|
||||
you’ve removed the Artifactory volume with deployed JAR whereas a tag in the repo is still pointing there.
|
||||
<a class="link" href="">Check out this section on how to remove the tag.</a></p></td></tr></table></div><p>
|
||||
</p><div class="figure"><a name="d0e3878" href="#d0e3878"></a><p class="title"><b>Figure 9.7. Click the manual step to go to stage (remember about killing the apps on test env). To do this click the <span class="strong">ARROW</span> next to the job name</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_manual.png" alt="pipeline manual"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3883" href="#d0e3883"></a><p class="title"><b>Figure 9.7. Click the manual step to go to stage (remember about killing the apps on test env). To do this click the <span class="strong">ARROW</span> next to the job name</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_manual.png" alt="pipeline manual"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>Most likely you will run out of memory so when reaching the stage
|
||||
environment it’s good to kill all apps on test. <a class="link" href="">Check out the FAQ section for more details</a>!</p></td></tr></table></div><p>
|
||||
</p><div class="figure"><a name="d0e3900" href="#d0e3900"></a><p class="title"><b>Figure 9.8. The full pipeline should look like this</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_finished.png" alt="pipeline finished"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3905" href="#d0e3905"></a><p class="title"><b>Figure 9.8. The full pipeline should look like this</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/pipeline_finished.png" alt="pipeline finished"></div></div></div><br class="figure-break"><p>
|
||||
</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="declarative-pipeline-k8s" href="#declarative-pipeline-k8s"></a>9.2 Declarative pipeline & Blue Ocean</h2></div></div></div><p>You can also use the <a class="link" href="https://jenkins.io/doc/book/pipeline/syntax/" target="_top">declarative pipeline</a> approach with the
|
||||
<a class="link" href="https://jenkins.io/projects/blueocean/" target="_top">Blue Ocean UI</a>. Here is a step by step guide to run a pipeline via
|
||||
this approach.</p><p>The Blue Ocean UI is available under the <code class="literal">blue/</code> URL. E.g. for Docker Machine based setup <code class="literal"><a class="link" href="http://192.168.99.100:8080/blue" target="_top">http://192.168.99.100:8080/blue</a></code>.</p><p>
|
||||
</p><div class="figure"><a name="d0e3933" href="#d0e3933"></a><p class="title"><b>Figure 9.9. Open Blue Ocean UI and click on <code class="literal">github-webhook-declarative-pipeline</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_1.png" alt="blue 1"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3946" href="#d0e3946"></a><p class="title"><b>Figure 9.10. Your first run will look like this. Click <code class="literal">Run</code> button</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_2.png" alt="blue 2"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3960" href="#d0e3960"></a><p class="title"><b>Figure 9.11. Enter parameters required for the build and click <code class="literal">run</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_3.png" alt="blue 3"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3973" href="#d0e3973"></a><p class="title"><b>Figure 9.12. A list of pipelines will be shown. Click your first run.</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_4.png" alt="blue 4"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3984" href="#d0e3984"></a><p class="title"><b>Figure 9.13. State if you want to go to production or not and click <code class="literal">Proceed</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_5.png" alt="blue 5"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3997" href="#d0e3997"></a><p class="title"><b>Figure 9.14. The build is in progress…​</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_6.png" alt="blue 6"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e4008" href="#d0e4008"></a><p class="title"><b>Figure 9.15. The pipeline is done!</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_7.png" alt="blue 7"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3938" href="#d0e3938"></a><p class="title"><b>Figure 9.9. Open Blue Ocean UI and click on <code class="literal">github-webhook-declarative-pipeline</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_1.png" alt="blue 1"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3951" href="#d0e3951"></a><p class="title"><b>Figure 9.10. Your first run will look like this. Click <code class="literal">Run</code> button</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_2.png" alt="blue 2"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3965" href="#d0e3965"></a><p class="title"><b>Figure 9.11. Enter parameters required for the build and click <code class="literal">run</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_3.png" alt="blue 3"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3978" href="#d0e3978"></a><p class="title"><b>Figure 9.12. A list of pipelines will be shown. Click your first run.</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_4.png" alt="blue 4"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e3989" href="#d0e3989"></a><p class="title"><b>Figure 9.13. State if you want to go to production or not and click <code class="literal">Proceed</code></b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_5.png" alt="blue 5"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e4002" href="#d0e4002"></a><p class="title"><b>Figure 9.14. The build is in progress…​</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_6.png" alt="blue 6"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="figure"><a name="d0e4013" href="#d0e4013"></a><p class="title"><b>Figure 9.15. The pipeline is done!</b></p><div class="figure-contents"><div class="mediaobject"><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-pipelines/master/docs-sources/src/main/asciidoc/images/jenkins/blue_7.png" alt="blue 7"></div></div></div><br class="figure-break"><p>
|
||||
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>There is no possibility of restarting pipeline from specific stage, after failure. Please
|
||||
check out this <a class="link" href="https://issues.jenkins-ci.org/browse/JENKINS-33846" target="_top">issue</a> for more information</p></td></tr></table></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Warning</th></tr><tr><td align="left" valign="top"><p>Currently there is no way to introduce manual steps in a performant way. Jenkins is
|
||||
blocking an executor when manual step is required. That means that you’ll run out of executors
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user