{"id":833,"date":"2020-03-30T18:00:00","date_gmt":"2020-03-30T18:00:00","guid":{"rendered":"http:\/\/bullyrooks.com\/index.php\/2020\/04\/10\/simple-spring-boot-service-to-kubernetes-application-step-18-9dff659cd334\/"},"modified":"2021-02-04T02:12:48","modified_gmt":"2021-02-04T02:12:48","slug":"simple-spring-boot-service-to-kubernetes-application-step-18-9dff659cd334","status":"publish","type":"post","link":"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-18-9dff659cd334\/","title":{"rendered":"UI Build Pipeline"},"content":{"rendered":"\n<h3 class=\"graf graf--h3 graf--leading graf--title wp-block-heading\" id=\"ccf6\">Simple Spring Boot Service to Kubernetes Application: Step&nbsp;18<\/h3>\n\n\n\n<p class=\"graf graf--p graf-after--h3 graf--trailing\" id=\"6cde\">Lets quickly update our build pipeline to push an image for our front end application into our repo. This opens the path to using helm to package and deploy our chart.<\/p>\n\n\n\n<h3 class=\"graf graf--h3 graf--leading wp-block-heading\" id=\"5958\">Create a New&nbsp;Pipeline<\/h3>\n\n\n\n<p class=\"graf graf--p graf-after--h3\" id=\"a9b8\">Log into codefresh and go into pipelines. Choose <code class=\"markup--code markup--p-code\">+ NEW PIPELINE<\/code>&nbsp;. The name will be <code class=\"markup--code markup--p-code\">medium-customer-manager <\/code>with the project as <code class=\"markup--code markup--p-code\">medium<\/code>. Add the <code class=\"markup--code markup--p-code\">medium-customer-manager<\/code> git repository. Our workflow is going to be very simple, since docker is taking care of the compiling and packaging for us:<\/p>\n\n\n\n<pre id=\"36ef\" class=\"wp-block-code graf graf--pre graf-after--p\"><code>version: \"1.0\"\nstages:\n  - \"clone\"\n  - \"build\"\n  - \"push\"<\/code><\/pre>\n\n\n\n<pre id=\"1f1d\" class=\"wp-block-code graf graf--pre graf-after--pre\"><code>steps:\n  Clone:\n      title: \"Cloning repository\"\n      type: \"git-clone\"\n      repo: \"<a class=\"markup--anchor markup--pre-anchor\" href=\"https:\/\/github.com\/brianrook\/medium-customer-manager\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/github.com\/brianrook\/medium-customer-manager\">https:\/\/github.com\/brianrook\/medium-customer-manager<\/a>\"\n      revision: \"master\"\n      stage: \"clone\"\n  BuildImage:\n      title: Building Docker Image\n      type: build\n      stage: build\n      image_name: medium\/medium-customer-manager\n      working_directory: '\/codefresh\/volume\/medium-customer-manager'\n      tag: '${{CF_SHORT_REVISION}}'\n      dockerfile: Dockerfile\n  PushToCodeFreshRegistry:\n      type: push\n      stage: \"push\"\n      title: Push Image to Registry\n      candidate: ${{BuildImage}}\n      tag: '${{CF_SHORT_REVISION}}'\n      image_name: medium-customer-manager\n      registry: cfcr\n      fail_fast: false<\/code><\/pre>\n\n\n\n<p class=\"graf graf--p graf-after--pre\" id=\"2ecf\">Make sure that you setup your trigger to only trigger a build off of a master commit.<\/p>\n\n\n\n<p class=\"graf graf--p graf-after--p\" id=\"798f\">Lets save and run.<\/p>\n\n\n\n<p class=\"graf graf--p graf-after--p\" id=\"1227\">Go to Images and confirm that our chart is available.<\/p>\n\n\n\n<p class=\"graf graf--p graf-after--p\" id=\"5169\">Success!<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"entry-summary\">\nSimple Spring Boot Service to Kubernetes Application: Step&nbsp;18 Lets quickly update our&hellip;\n<\/div>\n<div class=\"link-more\"><a href=\"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-18-9dff659cd334\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;UI Build Pipeline&rdquo;<\/span>&hellip;<\/a><\/div>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[78,77,76,5,74,101],"course":[40],"class_list":["post-833","post","type-post","status-publish","format-standard","hentry","category-software-development","tag-automation","tag-cicd","tag-codefresh","tag-docker","tag-dockerfile","tag-pipeline","course-spring-with-kubernetes","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":824,"url":"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-10-e1a3a8e865bb\/","url_meta":{"origin":833,"position":0},"title":"Automated Build Pipeline","author":"Bullyrook","date":"March 30, 2020","format":false,"excerpt":"Lets set up automated build so that we can generate a docker image when a change hits master. Build the\u00a0Pipeline Go in to codefresh and choose Projects. Create a new project in the top right. Call it medium. Click on create pipeline. Call the pipeline medium-customer and choose our git\u2026","rel":"","context":"In &quot;Software Development&quot;","block_context":{"text":"Software Development","link":"https:\/\/bullyrooks.com\/index.php\/category\/software-development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":823,"url":"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-21-6986a29db37a\/","url_meta":{"origin":833,"position":1},"title":"Simplify Deployment","author":"Bullyrook","date":"March 30, 2020","format":false,"excerpt":"Now that we have multiple components lets simplify our deployment so that we can deploy our complete application in one step. Create an Umbrella\u00a0Chart Create a new git repository called medium-application. This is the repository that will house the helm umbrella chart. Create a directory called helm and run helm\u2026","rel":"","context":"In &quot;Software Development&quot;","block_context":{"text":"Software Development","link":"https:\/\/bullyrooks.com\/index.php\/category\/software-development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":822,"url":"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-13-c3d437bb7570\/","url_meta":{"origin":833,"position":2},"title":"Automating Deployment (for CICD)","author":"Bullyrook","date":"March 30, 2020","format":false,"excerpt":"Now that we\u2019ve deployed our application, lets reduce some of the manual steps and make our deployments more reproducible with the intent of eventually making them automated for CI\/CD. Publish our Chart to the Chart Repository Normally, we would need to create a helm chart repository, however, codefresh has given\u2026","rel":"","context":"In &quot;Software Development&quot;","block_context":{"text":"Software Development","link":"https:\/\/bullyrooks.com\/index.php\/category\/software-development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":817,"url":"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-20-fe28a586cdc6\/","url_meta":{"origin":833,"position":3},"title":"Creating an Ingress in Kubernetes","author":"Bullyrook","date":"March 30, 2020","format":false,"excerpt":"We\u2019ve got multiple service available for deployment now. Lets allow them to communicate internally and externally with the cluster. We\u2019ll do that by creating an ingress. Current State of Our Application We\u2019re using our services as nodeports which allows us to expose an external port that will map to the\u2026","rel":"","context":"In &quot;Software Development&quot;","block_context":{"text":"Software Development","link":"https:\/\/bullyrooks.com\/index.php\/category\/software-development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":818,"url":"https:\/\/bullyrooks.com\/index.php\/2020\/03\/30\/simple-spring-boot-service-to-kubernetes-application-step-19-944a76415384\/","url_meta":{"origin":833,"position":4},"title":"Put the UI in to Helm","author":"Bullyrook","date":"March 30, 2020","format":false,"excerpt":"Lets take the docker image we just created and wrap it with helm so that we have an easy way to deploy our application. Create Helm Chart Templates We\u2019ve created helm charts before, so lets create a helm directory at the frontend root. Then run helm create in that directory\u2026","rel":"","context":"In &quot;Software Development&quot;","block_context":{"text":"Software Development","link":"https:\/\/bullyrooks.com\/index.php\/category\/software-development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1141,"url":"https:\/\/bullyrooks.com\/index.php\/2022\/01\/02\/kubernetes-application-hosted-in-the-cloud\/","url_meta":{"origin":833,"position":5},"title":"Kubernetes Application Hosted in the Cloud","author":"Bullyrook","date":"January 2, 2022","format":false,"excerpt":"It's been a few years since my last spring boot based kubernetes application. That course ended with a microservice deployed into kubernetes via minikube locally. I'm using this course to expand on that effort. In this course I'm going to show a few ways to do the same things in\u2026","rel":"","context":"In &quot;Software Development&quot;","block_context":{"text":"Software Development","link":"https:\/\/bullyrooks.com\/index.php\/category\/software-development\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/posts\/833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":3,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/posts\/833\/revisions"}],"predecessor-version":[{"id":911,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/posts\/833\/revisions\/911"}],"wp:attachment":[{"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/media?parent=833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/categories?post=833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/tags?post=833"},{"taxonomy":"course","embeddable":true,"href":"https:\/\/bullyrooks.com\/index.php\/wp-json\/wp\/v2\/course?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}