{"id":37022,"date":"2017-03-27T12:10:02","date_gmt":"2017-03-27T09:10:02","guid":{"rendered":"https:\/\/cloudbase.it\/?p=37022"},"modified":"2017-03-27T12:36:02","modified_gmt":"2017-03-27T09:36:02","slug":"openstack-kolla-hyper-v","status":"publish","type":"post","link":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","title":{"rendered":"Deploying OpenStack using Docker containers with Hyper-V and Kolla"},"content":{"rendered":"

OpenStack is a great technology, but it can be a bit cumbersome to deploy and manage without the proper tools. One easy solution\u00a0to address this issue is to deploy OpenStack services using pre-built Docker containers.<\/p>\n

Kolla is a set of deployment tools for\u00a0OpenStack, consisting in the Kolla<\/a> project itself, for generating OpenStack Docker images, and “deliverables” projects, to deploy the Docker containers and thus OpenStack. The most mature deliverable is kolla-ansible<\/a>, which, as the name implies, uses\u00a0Ansible playbooks to automate\u00a0the deployment. The project documentation can be found here<\/a>.<\/p>\n

 <\/p>\n

Hyper-V setup<\/h2>\n

On the Windows host, we need a VM to host the Linux OpenStack controller. For this purpose I created\u00a0an Ubuntu 16.04 VM with\u00a08GB of RAM, 4 virtual cores and 20GB of disk. All the controller\u00a0services run here and are deployed with Kolla in Docker containers. Last but not least, the same Hyper-V also serves as a compute host for the OpenStack deployment. This is achieved by installing our\u00a0Cloudbase OpenStack components<\/a>. Additional Hyper-V compute nodes can be added later as needed.<\/p>\n

 <\/p>\n

Networking setup<\/h3>\n

\"\"<\/a><\/p>\n

On the Hyper-V host, I am going to need 2 virtual switches\u00a0that are going to be connected\u00a0to the OpenStack controller VM. ext-net<\/strong>\u00a0is\u00a0the external\u00a0network, it is bridged to the Windows physical external interface. I will use this network also for the management of the VM. data-net<\/strong>\u00a0is the\u00a0data network, which can be a simple private virtual switch for now (an external one is needed only when adding more compute nodes).<\/p>\n

On\u00a0the OpenStack Controller VM there are 3 interfaces. The first two, eth0<\/strong> and eth1<\/strong> are connected to the external\u00a0network. The former is used for management (SSH, etc) and the latter is used by OpenStack for external traffic, managed by Open vSwitch. Finally, eth2<\/strong> is the data\/overlay network. It is used for tenant traffic between the instances and the Neutron components in the controller.<\/p>\n

 <\/p>\n

\"\"<\/a><\/p>\n

eth1<\/strong> and eth2<\/strong> do not have an IP and are\u00a0set as “manual” in \/etc\/network\/interfaces. The reason for this is that they are managed\u00a0by OpenvSwitch.\u00a0Also on these interfaces I need to enable MAC address spoofing (“Advanced Features” tab on the adapter).<\/p>\n

The scripts that I will be using configures the Linux network interfaces automatically so I don’t need to bother with that now. The only interface I have already configured is eth0<\/strong> so I can SSH\u00a0into the machine.<\/p>\n

 <\/p>\n

OpenStack controller deployment<\/strong><\/h2>\n

I am going to clone a repository that contains the scripts for the Kolla Openstack deployment, which can be found here<\/a>. At the end of the deployment it will also create some common flavors, a Cirros VHDX Cinder image, a Neutron virtual router and 2 networks, one external (flat) and one private for tenants (VLAN based).<\/p>\n

git clone https:\/\/github.com\/cloudbase\/kolla-resources.git\r\ncd kolla-resources<\/pre>\n

To begin with, we are going to configure the management and external network details by setting\u00a0some variables in\u00a0deploy_openstack.sh<\/em>:<\/p>\n

vim deploy_openstack.sh<\/pre>\n
# deploy_openstack.sh\r\nMGMT_IP=192.168.0.60\r\nMGMT_NETMASK=255.255.255.0\r\nMGMT_GATEWAY=192.168.0.1\r\nMGMT_DNS=\"8.8.8.8\"\r\n\r\n# neutron external network information\r\nFIP_START=192.168.0.80\r\nFIP_END=192.168.0.90\r\nFIP_GATEWAY=192.168.0.1\r\nFIP_CIDR=192.168.0.0\/24\r\nTENANT_NET_DNS=\"8.8.8.8\"\r\n\r\n# used for HAProxy\r\nKOLLA_INTERNAL_VIP_ADDRESS=192.168.0.91<\/pre>\n

As you can see, I am using the same subnet for management and external floating IPs.<\/p>\n

Now I can run the deployment script. I am using the Linux “time” command to see how long the deployment will take:<\/p>\n

time sudo .\/deploy_openstack.sh<\/pre>\n

The first thing this script will do is to pull the Docker images for each OpenStack service. The great thing with Kolla is that you just need to create the images once, sparing significant time during deployment. This reduces significantly potential errors due to updated dependencies as the container images already contain all the required components. The images that I am going to use during the deployment are available\u00a0here<\/a>. Feel free to create your own, just follow the documentation<\/a>.<\/p>\n

After the deployment is finished, I have a fully functional OpenStack controller. It took around 13 minutes to deploy, that’s quite fast if you ask me.<\/p>\n

real\t12m28.716s\r\nuser\t3m7.296s\r\nsys     1m4.428s<\/pre>\n

 <\/p>\n

By running\u00a0“sudo\u00a0docker ps”<\/em>\u00a0I can see all the containers running.<\/p>\n

\"\"<\/a><\/p>\n

Admin credentials can be sourced now:<\/p>\n

source \/etc\/kolla\/admin-openrc.sh<\/pre>\n

The only thing left to do is to deploy the OpenStack\u00a0Hyper-V components.<\/p>\n

 <\/p>\n

Nova Hyper-V compute node deployment<\/h2>\n

First, I’m going to edit the Ansible inventory to add my\u00a0Hyper-V host (simply named “hyperv-host” in this post) as well as the credentials needed to access it:<\/p>\n

vim hyperv_inventory<\/pre>\n
[hyperv]\r\nhyperv-host\r\n\r\n[hyperv:vars]\r\nansible_ssh_host=192.168.0.120\r\nansible_user=Administrator\r\nansible_password=Passw0rd\r\nansible_port=5986\r\nansible_connection=winrm\r\nansible_winrm_server_cert_validation=ignore<\/pre>\n

An HTTPS WinRM listener needs to be configured on the Hyper-V host, which\u00a0can be easily created with this PowerShell script<\/a>.<\/p>\n

Now, I’m going to run the scripts that will fully deploy and configure Nova compute on Hyper-V. The first\u00a0parameter\u00a0is the data bridge that I configured earlier, data-net<\/strong>. The third and fourth parameters are are the Hyper-V credentials that FreeRDP will need to use in order to access the Hyper-V host when connecting to a Nova instance console.<\/p>\n

sudo .\/deploy_hyperv_compute_playbook.sh data-net Administrator Passw0rd<\/pre>\n

Next, I need to set trunk mode for my OpenStack controller. There are two reasons for this: first, I have a tenant network with type VLAN, and second, the controller is\u00a0a VM in Hyper-V, so the hypervisor needs to allow VLAN tagged packets on\u00a0the controller VM data interface. Start an elevated PowerShell and run:<\/p>\n

Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList 500-2000 -NativeVlanId 0 openstack-controller<\/pre>\n

“openstack-controller” is the name of the controller VM in Hyper-V.<\/p>\n

 <\/p>\n

Spawning a VM<\/h2>\n

Now I have everything in place to start playing around. I will boot a VM and test its connectivity to the Internet.<\/p>\n

NETID=`neutron net-show private-net | awk '{if (NR == 5) {print $4}}'`\r\nnova boot --flavor m1.nano \\\r\n--nic net-id=$NETID \\\r\n--image cirros-gen1-vhdx hyperv-vm1<\/pre>\n

Taking a look in Horizon:<\/p>\n

\"\"<\/a><\/p>\n

 <\/p>\n

The FreeRDP\u00a0console access from Horizon works as well. I can also access the\u00a0VM directly from Hyper-v if needed.<\/p>\n

\"\"<\/a><\/p>\n

 <\/p>\n

 <\/p>\n

Useful information<\/h2>\n

What if you need to modify the configuration of an OpenStack service running in a container? For example, lets say you want to enable another ML2 type driver. It’s quite easy actually.<\/p>\n

In this\u00a0case i need to edit the ml2_conf.ini<\/em> file:<\/p>\n

sudo vim \/etc\/kolla\/neutron-server\/ml2_conf.ini<\/pre>\n

After I am done with the editing, the only thing left to do is to restart the Neutron server container:<\/p>\n

sudo docker restart neutron_server<\/pre>\n

Done. As you can see, Kolla keeps all the OpenStack configuration files in \/etc\/kolla<\/strong>.<\/p>\n

 <\/p>\n

 <\/p>\n

Conclusions<\/h2>\n

Containers can help a lot in an OpenStack deployment. Footprint is small, dependency induced regressions are limited and with the aid of a tool like Ansible, automation can be managed very easily.<\/p>\n

What’s next? As I mentioned at the beginning, kolla-ansible is just one of the “deliverables”. kolla-kubernetes<\/a> is also currently being\u00a0developed and we can already see the benefits that the Kubernetes container orchestration can bring to OpenStack deployments, so looking forward for kolla-kubernetes to reach a stable status as well!<\/p>\n","protected":false},"excerpt":{"rendered":"

OpenStack is a great technology, but it can be a bit cumbersome to deploy and manage without the proper tools. One easy solution\u00a0to address this issue is to deploy OpenStack services using pre-built Docker containers. Kolla is a set of deployment tools for\u00a0OpenStack, consisting in the Kolla project itself, for generating OpenStack Docker images, and…<\/p>\n","protected":false},"author":32,"featured_media":37221,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false},"categories":[149,86,9,150,83,90,40],"tags":[152,84,151,7],"class_list":["post-37022","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible","category-freerdp","category-hyper-v","category-kolla","category-openstack","category-ubuntu","category-windows","tag-ansible","tag-hyper-v","tag-kolla","tag-openstack","category-149","category-86","category-9","category-150","category-83","category-90","category-40","description-off"],"yoast_head":"\nDeploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions<\/title>\n<meta name=\"description\" content=\"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions\" \/>\n<meta property=\"og:description\" content=\"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudbase Solutions\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/cloudbasesolutions\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-27T09:10:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-03-27T09:36:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dan Ardelean\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cloudbaseit\" \/>\n<meta name=\"twitter:site\" content=\"@cloudbaseit\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dan Ardelean\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\"},\"author\":{\"name\":\"Dan Ardelean\",\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf\"},\"headline\":\"Deploying OpenStack using Docker containers with Hyper-V and Kolla\",\"datePublished\":\"2017-03-27T09:10:02+00:00\",\"dateModified\":\"2017-03-27T09:36:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\"},\"wordCount\":1068,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\/\/cloudbase.it\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"keywords\":[\"Ansible\",\"Hyper-V\",\"Kolla\",\"OpenStack\"],\"articleSection\":[\"Ansible\",\"FreeRDP\",\"Hyper-V\",\"Kolla\",\"OpenStack\",\"Ubuntu\",\"Windows\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\",\"url\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\",\"name\":\"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions\",\"isPartOf\":{\"@id\":\"https:\/\/cloudbase.it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"datePublished\":\"2017-03-27T09:10:02+00:00\",\"dateModified\":\"2017-03-27T09:36:02+00:00\",\"description\":\"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage\",\"url\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"contentUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png\",\"width\":960,\"height\":560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudbase.it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploying OpenStack using Docker containers with Hyper-V and Kolla\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudbase.it\/#website\",\"url\":\"https:\/\/cloudbase.it\/\",\"name\":\"Cloudbase Solutions\",\"description\":\"Cloud Interoperability\",\"publisher\":{\"@id\":\"https:\/\/cloudbase.it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudbase.it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudbase.it\/#organization\",\"name\":\"Cloudbase Solutions\",\"url\":\"https:\/\/cloudbase.it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png\",\"contentUrl\":\"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png\",\"width\":583,\"height\":143,\"caption\":\"Cloudbase Solutions\"},\"image\":{\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/facebook.com\/cloudbasesolutions\",\"https:\/\/x.com\/cloudbaseit\",\"https:\/\/www.linkedin.com\/company-beta\/3139764\",\"https:\/\/www.youtube.com\/channel\/UCBgH5RqPL4lgxA8gn3rIAFw\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf\",\"name\":\"Dan Ardelean\",\"sameAs\":[\"https:\/\/cloudbase.it\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions","description":"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.","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:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","og_locale":"en_US","og_type":"article","og_title":"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions","og_description":"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.","og_url":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","og_site_name":"Cloudbase Solutions","article_publisher":"http:\/\/facebook.com\/cloudbasesolutions","article_published_time":"2017-03-27T09:10:02+00:00","article_modified_time":"2017-03-27T09:36:02+00:00","og_image":[{"width":960,"height":560,"url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","type":"image\/png"}],"author":"Dan Ardelean","twitter_card":"summary_large_image","twitter_creator":"@cloudbaseit","twitter_site":"@cloudbaseit","twitter_misc":{"Written by":"Dan Ardelean","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#article","isPartOf":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/"},"author":{"name":"Dan Ardelean","@id":"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf"},"headline":"Deploying OpenStack using Docker containers with Hyper-V and Kolla","datePublished":"2017-03-27T09:10:02+00:00","dateModified":"2017-03-27T09:36:02+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/"},"wordCount":1068,"commentCount":6,"publisher":{"@id":"https:\/\/cloudbase.it\/#organization"},"image":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","keywords":["Ansible","Hyper-V","Kolla","OpenStack"],"articleSection":["Ansible","FreeRDP","Hyper-V","Kolla","OpenStack","Ubuntu","Windows"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","url":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/","name":"Deploying OpenStack using Docker containers with Hyper-V and Kolla - Cloudbase Solutions","isPartOf":{"@id":"https:\/\/cloudbase.it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage"},"image":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage"},"thumbnailUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","datePublished":"2017-03-27T09:10:02+00:00","dateModified":"2017-03-27T09:36:02+00:00","description":"Kolla is the answer to all your OpenStack deployment issues. It's easy, is based on Docker containers, uses Ansible and supports Hyper-V.","breadcrumb":{"@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#primaryimage","url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","contentUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","width":960,"height":560},{"@type":"BreadcrumbList","@id":"https:\/\/cloudbase.it\/openstack-kolla-hyper-v\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudbase.it\/"},{"@type":"ListItem","position":2,"name":"Deploying OpenStack using Docker containers with Hyper-V and Kolla"}]},{"@type":"WebSite","@id":"https:\/\/cloudbase.it\/#website","url":"https:\/\/cloudbase.it\/","name":"Cloudbase Solutions","description":"Cloud Interoperability","publisher":{"@id":"https:\/\/cloudbase.it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudbase.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudbase.it\/#organization","name":"Cloudbase Solutions","url":"https:\/\/cloudbase.it\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/","url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png","contentUrl":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/CBSL-Logo-2017-Black.png","width":583,"height":143,"caption":"Cloudbase Solutions"},"image":{"@id":"https:\/\/cloudbase.it\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/cloudbasesolutions","https:\/\/x.com\/cloudbaseit","https:\/\/www.linkedin.com\/company-beta\/3139764","https:\/\/www.youtube.com\/channel\/UCBgH5RqPL4lgxA8gn3rIAFw"]},{"@type":"Person","@id":"https:\/\/cloudbase.it\/#\/schema\/person\/5700e173b15ed9de31969270a4b4a7cf","name":"Dan Ardelean","sameAs":["https:\/\/cloudbase.it"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/cloudbase.it\/wp-content\/uploads\/2017\/03\/docker-kolla.png","_links":{"self":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts\/37022"}],"collection":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/comments?post=37022"}],"version-history":[{"count":96,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts\/37022\/revisions"}],"predecessor-version":[{"id":37218,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/posts\/37022\/revisions\/37218"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/media\/37221"}],"wp:attachment":[{"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/media?parent=37022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/categories?post=37022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudbase.it\/wp-json\/wp\/v2\/tags?post=37022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}