{"id":13281,"date":"2014-12-05T20:04:58","date_gmt":"2014-12-05T17:04:58","guid":{"rendered":"http:\/\/blog.altoros.com\/?p=6869"},"modified":"2021-03-23T17:43:34","modified_gmt":"2021-03-23T14:43:34","slug":"juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/","title":{"rendered":"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#A_new_charm_for_Cloud_Foundry\" >A new charm for Cloud Foundry<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#Automated_deployment_with_the_Cloud_Foundry_charm\" >Automated deployment with the Cloud Foundry charm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#Manual_deployment_using_the_config_file\" >Manual deployment using the config file<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#Customizing_a_Cloud_Foundry_deployment\" >Customizing a Cloud Foundry deployment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#Upgrading_Cloud_Foundry_with_Juju_upcoming_features\" >Upgrading Cloud Foundry with Juju (upcoming features)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#Related_video\" >Related video<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"A_new_charm_for_Cloud_Foundry\"><\/span>A new charm for Cloud Foundry<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A lot has changed in the Juju orchestration tool and the Cloud Foundry Juju Charm, since our latest <a href=\"https:\/\/www.altoros.com\/blog\/deploying-cloud-foundry-in-a-single-click-with-juju-charms\/\">blog post<\/a> about them. In this new post, I will overview the new features and provide two guides on installing Cloud Foundry, taking into account these updates. You will learn about:<\/p>\n<ol>\n<li dir=\"ltr\">The new Cloud Foundry Juju charm implementation and some of its features<\/li>\n<li dir=\"ltr\">How to deploy Cloud Foundry automatically with the latest Cloud Foundry Juju charm<\/li>\n<li dir=\"ltr\">How to deploy Cloud Foundry manually using the config file<\/li>\n<li dir=\"ltr\">How to customize your Cloud Foundry deployment by editing the config file<\/li>\n<li dir=\"ltr\">How to upgrade Cloud Foundry with Juju<\/li>\n<\/ol>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/juju-charms-cloud-foundry-new-features.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/juju-charms-cloud-foundry-new-features.png\" alt=\"juju-charms-cloud-foundry-new-features\" width=\"640\" class=\"aligncenter size-full wp-image-24522\" \/><\/a><\/center><\/p>\n<p>Recently, a lot of new components have been added to the Cloud Foundry charm. You can see all of them above, on the screenshot from the Juju GUI tool.<\/p>\n<p>However, the most important change was in the way you deploy Cloud Foundry with Juju. Now you need to use a separate charm instead of the Juju deployer. The new Cloud Foundry Juju charm works like an orchestrator responsible for installing all other charms and setting all the necessary relations. Still, its main responsibility is helping you to configure different deployment options.<\/p>\n<p>The diagram below demonstrates how this process works:<\/p>\n<p><center><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/jujucharms-cf-deployment.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/jujucharms-cf-deployment.png\" alt=\"jujucharms-cf-deployment\" width=\"640\" class=\"aligncenter size-full wp-image-24523\" \/><\/a><\/center><\/p>\n<p>This charm differs from the regular charms, because it uses Juju to deploy all other Cloud Foundry charms. So, it cannot work without access to the admin-secret key from your Juju configuration.<\/p>\n<p>You still can deploy all the charms and set all the relations manually, but it is much easier to use the Cloud Foundry charm. I will describe both ways of deploying Cloud Foundry below.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Automated_deployment_with_the_Cloud_Foundry_charm\"><\/span>Automated deployment with the Cloud Foundry charm<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>So, lets go through the basic Cloud Foundry deployment scenario:<\/p>\n<ol>\n<li style=\"margin-bottom: 6px;\">First of all, you need to <a href=\"http:\/\/doc.bazaar.canonical.com\/latest\/en\/user-guide\/installing_bazaar.html\" target=\"_blank\" rel=\"noopener noreferrer\">install<\/a> the Bazaar version control system, if you do not have it already.<\/li>\n<li>The second step is getting a local copy of the Cloud Foundry charm from the <a href=\"https:\/\/launchpad.net\/~cf-charmers\/charms\/trusty\/cloudfoundry\/trunk\" target=\"_blank\" rel=\"noopener noreferrer\">launchpad<\/a>.\n<p><pre dir=\"ltr\">mkdir trusty\r\nbzr branch lp:~cf-charmers\/charms\/trusty\/cloudfoundry\/trunk trusty\/cloudfoundry<\/pre>\n<\/p>\n<\/li>\n<p>It is possible to use the version of this charm available from the charm store. If you do, you will not need to install Bazaar or obtain a local version of the charm. However, then you also will not get access to the useful Python helpers that come with the charm and you will have to create the config file for the charm manually. (See the second tutorial below.)<\/p>\n<li>Once you have obtained a local version of the charm, execute the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code> script:\n<p><pre dir=\"ltr\">cd trusty\/cloudfoundry\/\r\n.\/cfdeploy <cf_admin_password><\/cf_admin_password><\/pre>\n<\/li>\n<\/ol>\n<p>This script will take care of generating the charm config file, bootstrapping your environment (if necessary), and actually deploying the Cloud Foundry charm. Optionally, you can also specify the Cloud Foundry version using the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">-v<\/code> switch. The latest supported version will be installed by default. At the time this was written, this was revision 180, but the new architecture of the Cloud Foundry charm makes it very easy to add support for new versions. So, we expect new ones to become available soon.<\/p>\n<p>The <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code> command is asynchronous, so it will be blocked until the deployment is fully up and running. When that happens, it will create a Cloud Foundry &#8220;admin&#8221; user with the specified password, leaving you logged in and ready to push a Cloud Foundry app. Note that while this can take quite some time, the whole process is automated.<\/p>\n<p>In addition, if you do not have the cf command line client on your machine, the latest one will be installed from a .deb package to your local system as part of <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Manual_deployment_using_the_config_file\"><\/span>Manual deployment using the config file<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>As you know, the Cloud Foundry charm cannot be deployed without the IaaS provider\u2019s admin-secret (see the table below). This and some other options are stored in the config file. To install Cloud Foudnry, the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code> script, described in the previous section, generates a minimal config file and executes a command similar to this one:<\/p>\n<p><pre>juju deploy --repository=. --config=&lt;path to the generated config&gt; local:&lt;path to the Cloud Foundry charm root folder&gt;<\/pre>\n<\/p>\n<p>You can also easily deploy Cloud Foundry using a manually created config file. This is done via the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">-config<\/code> switch:<\/p>\n<p><pre>juju deploy cs:~cf-charmers\/trusty\/cloudfoundry --config=&lt;path to the config file&gt;<\/pre>\n<\/p>\n<p>When using this command, we do not have to obtain a local version of the Cloud Foundry charm and can use the version from the Charm Store. This approach will also work with the local version.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Customizing_a_Cloud_Foundry_deployment\"><\/span>Customizing a Cloud Foundry deployment<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Your Cloud Foundry deployment can be customized by editing the config file before installation. The table below lists some of the most useful options you can adjust:<\/p>\n<p><center><small><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"160\" \/>\n<col width=\"464\" \/><\/colgroup>\n<tbody>\n<tr>\n<td><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">admin_password<\/code><\/td>\n<td>The password for the default admin user in Cloud Foundry. This value is passed to the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code> script.<\/td>\n<\/tr>\n<tr>\n<td><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">admin_secret<\/code><\/td>\n<td>The admin password for the Juju REST API used in bundle orchestration. The <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code> script gets this value from the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">~\/.juju\/environments\/&lt;provider_name&gt;.jenv<\/code> file.<\/td>\n<\/tr>\n<tr>\n<td><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cf_version<\/code><\/td>\n<td>The Cloud Foundry release the deployed bundle is switched to. If set to <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">latest<\/code>, it will use the most recent version supported by this charm. You can set this with the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">-v<\/code> script when executing <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">domain<\/code><\/td>\n<td>The router domain (set to the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">xip.io<\/code> address by default).<\/td>\n<\/tr>\n<tr>\n<td><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">placement<\/td>\n<td>This value indicates the placement strategy. It is set to <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">sparse<\/code> by default, which places each service on its own machine. When placement is set to <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">dense<\/code>, some of the the services are collocated to keep the number of machines down. The <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">local<\/code> option is intended for deploying on a local provider\u2014it installs all services on the same machine except for the DEA, which is deployed to machine 0 since it cannot be installed in an LXC container. The <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">manual<\/code> placement option needs to be followed by YAML containing zones or raw bundle directives (e.g., <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">manual:zones: {a: [cc, cc-clock]}<\/code> or <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">manual:dea: {to: 0}<\/code>).<\/td>\n<\/tr>\n<tr>\n<td><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">admin_ui<\/code><\/td>\n<td>This deploys and configures the Administration UI from the Cloud Foundry Incubator.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><\/small><\/center><\/p>\n<p>To view all the available options with full descriptions, open the <a href=\"http:\/\/bazaar.launchpad.net\/~cf-charmers\/charms\/trusty\/cloudfoundry\/trunk\/view\/head:\/config.yaml\" target=\"_blank\" rel=\"noopener noreferrer\">config.yaml<\/a> file located in the root of the Cloud Foundry charm folder.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Upgrading_Cloud_Foundry_with_Juju_upcoming_features\"><\/span>Upgrading Cloud Foundry with Juju (upcoming features)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p dir=\"ltr\">One of the obvious drawbacks of installing Cloud Foundry via Juju\u2014as compared to BOSH\u2014is that you cannot upgrade without re-deploying the entire system. Luckily, the Cloud Foundry Juju charm team have been working on a tool called Reconciler that helps to resolve this issue. When you use <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">cfdeploy<\/code> to install Cloud Foundry, Reconciler is deployed and started automatically.<\/p>\n<p>The tool is responsible for upgrading and monitoring the health of all installed Cloud Foundry components. The screenshot below is the UI of Reconciler.<\/p>\n<p style=\"text-align: center;\"> <a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/reconciler-cloud-foundry-deployed-with-juju-charms.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/reconciler-cloud-foundry-deployed-with-juju-charms.png\" alt=\"reconciler-cloud-foundry-deployed-with-juju-charms\" width=\"500\" class=\"aligncenter size-full wp-image-24524\" \/><\/a><\/p>\n<p dir=\"ltr\">Reconciler lists all the deployed charms along with information about their status and relations. It can also grab and display all charm logs. At the time this was written, Reconciler was in active development, so I will not describe it in many details as they may change. However, keep it in mind that soon this tool will become standard.<\/p>\n<p>As you can see, deploying Cloud Foundry with Juju is probably not the perfect solution that suits everyone\u2019s needs. You still do not have as much flexibility in configuring individual components of your deployment as when you are using BOSH. In addition, not all the planned features have been fully implemented yet. Despite that, the development team have definitely made a big step forward in developing this charm, adding automation of deployment with a separate charm, Cloud Foundry revisions support, support for upgrades, and a variety of new services.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/cloud-foundry-deployment-tools-bosh-vs-juju-charms\/\">Deployment Tools for Cloud Foundry: BOSH vs. Juju Charms<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/how-to-implement-integration-tests-for-juju-charms\/\">How to Implement Integration Tests for Juju Charms<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/deploying-cloud-foundry-in-a-single-click-with-juju-charms\/\">Deploying Cloud Foundry in a Single Click with Juju Charms<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_video\"><\/span>Related video<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><center><iframe loading=\"lazy\" src=\"\/\/fast.wistia.net\/embed\/iframe\/8opm0mipba\" allowtransparency=\"true\" frameborder=\"0\" scrolling=\"no\" class=\"wistia_embed\" name=\"wistia_embed\" allowfullscreen mozallowfullscreen webkitallowfullscreen oallowfullscreen msallowfullscreen width=\"640\" height=\"450\"><\/iframe><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A new charm for Cloud Foundry<\/p>\n<p>A lot has changed in the Juju orchestration tool and the Cloud Foundry Juju Charm, since our latest blog post about them. In this new post, I will overview the new features and provide two guides on installing Cloud Foundry, taking into account these updates. [&#8230;]<\/p>\n","protected":false},"author":94,"featured_media":19058,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[873,206],"class_list":["post-13281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-native","tag-oss-cloud-foundry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade | Altoros<\/title>\n<meta name=\"description\" content=\"Overviewing the features of the new Juju charm for Cloud Foundry, this blog post demonstrates how to automate deployment or do it manually via a config file.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade | Altoros\" \/>\n<meta property=\"og:description\" content=\"A new charm for Cloud Foundry A lot has changed in the Juju orchestration tool and the Cloud Foundry Juju Charm, since our latest blog post about them. In this new post, I will overview the new features and provide two guides on installing Cloud Foundry, taking into account these updates. [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-05T17:04:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-23T14:43:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Siarhei Matsiukevich\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Siarhei Matsiukevich\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/\",\"name\":\"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif\",\"datePublished\":\"2014-12-05T17:04:58+00:00\",\"dateModified\":\"2021-03-23T14:43:34+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/5c29ff93db657e3cf6552d5e642003d9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/5c29ff93db657e3cf6552d5e642003d9\",\"name\":\"Siarhei Matsiukevich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/06\/Sergey-Matyukevich-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/06\/Sergey-Matyukevich-150x150.jpg\",\"caption\":\"Siarhei Matsiukevich\"},\"description\":\"Siarhei Matsiukevich is a Cloud Engineer and Go Developer at Altoros. With 6+ years in software engineering, he is an expert in cloud automation and designing architectures for complex cloud-based systems. An active member of the Go community, Siarhei is a frequent contributor to open-source projects, such as Ubuntu and Juju Charms.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/siarhei-matsiukevich\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade | Altoros","description":"Overviewing the features of the new Juju charm for Cloud Foundry, this blog post demonstrates how to automate deployment or do it manually via a config file.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/","og_locale":"en_US","og_type":"article","og_title":"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade | Altoros","og_description":"A new charm for Cloud Foundry A lot has changed in the Juju orchestration tool and the Cloud Foundry Juju Charm, since our latest blog post about them. In this new post, I will overview the new features and provide two guides on installing Cloud Foundry, taking into account these updates. [...]","og_url":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/","og_site_name":"Altoros","article_published_time":"2014-12-05T17:04:58+00:00","article_modified_time":"2021-03-23T14:43:34+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif","type":"image\/gif"}],"author":"Siarhei Matsiukevich","twitter_misc":{"Written by":"Siarhei Matsiukevich","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/","url":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/","name":"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif","datePublished":"2014-12-05T17:04:58+00:00","dateModified":"2021-03-23T14:43:34+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/5c29ff93db657e3cf6552d5e642003d9"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2014\/12\/Juju-Charms-for-Cloud-Foundry.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/juju-charms-for-cloud-foundry-how-to-deploy-customize-and-upgrade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Juju Charms for Cloud Foundry: How to Deploy, Customize, and Upgrade"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/5c29ff93db657e3cf6552d5e642003d9","name":"Siarhei Matsiukevich","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/06\/Sergey-Matyukevich-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/06\/Sergey-Matyukevich-150x150.jpg","caption":"Siarhei Matsiukevich"},"description":"Siarhei Matsiukevich is a Cloud Engineer and Go Developer at Altoros. With 6+ years in software engineering, he is an expert in cloud automation and designing architectures for complex cloud-based systems. An active member of the Go community, Siarhei is a frequent contributor to open-source projects, such as Ubuntu and Juju Charms.","url":"https:\/\/www.altoros.com\/blog\/author\/siarhei-matsiukevich\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/13281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/94"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=13281"}],"version-history":[{"count":34,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/13281\/revisions"}],"predecessor-version":[{"id":60771,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/13281\/revisions\/60771"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/19058"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=13281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=13281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=13281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}