{"id":9052,"date":"2015-11-05T16:08:46","date_gmt":"2015-11-05T14:08:46","guid":{"rendered":"http:\/\/blog.zhaw.ch\/icclab\/?p=9052"},"modified":"2015-11-05T18:16:00","modified_gmt":"2015-11-05T16:16:00","slug":"installing-openshift-origin-v3-on-openstack","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/","title":{"rendered":"Installing OpenShift Origin v3 on OpenStack"},"content":{"rendered":"<p>In this blog post we will describe the necessary steps\u00a0to get an installation of <a href=\"http:\/\/www.openshift.org\/\">OpenShift Origin v3<\/a> up and running on <a href=\"http:\/\/www.openstack.org\/\">OpenStack<\/a>. OpenShift Origin v3 offers a ton of features over <a href=\"http:\/\/blog.zhaw.ch\/icclab\/openshift-on-openstack-round-one\/\">its predecessor we covered<\/a> over a year ago. Most notably is the support for <a href=\"https:\/\/www.docker.com\/\">Docker<\/a> containers and the usage of <a href=\"http:\/\/kubernetes.io\/\">Kubernetes<\/a>.<\/p>\n<p><!--more--><\/p>\n<h1>Getting ready<\/h1>\n<p>Before we start the installation, a few prerequisites must be met.<\/p>\n<p>This tutorial relies on the official <a href=\"https:\/\/github.com\/openshift\/openshift-ansible\">Ansible installer<\/a>, therefore you need to install Ansible on your system of choice. Instructions for the installation for various platforms can be found <a href=\"http:\/\/docs.ansible.com\/ansible\/intro_installation.html\">here<\/a>.<\/p>\n<p>As we are going to deploy OpenShift Origin V3 on OpenStack, you need to have access to an OpenStack cloud that features the orchestrator Heat and uses Neutron for networking and have appropriate quotas set on your tenant. Depending on the size of your OpenShift deployment, more or less is required, but take these guidelines as a recommended minimum:<\/p>\n<ul>\n<li>Compute: 5*m1.large or equivalent flavor<\/li>\n<li>Networking: 5 Floating IPs, 1 network\/subnet\/router, 3 security groups<\/li>\n<\/ul>\n<p>Your OpenStack installation requires a CentOS 7.1 image available to your user. If it is not available, you can get the latest one <a href=\"http:\/\/cloud.centos.org\/centos\/7\/images\/\">here<\/a>.<\/p>\n<p>Last but not least, you need access to a domain or subdomain\u00a0and DNS server where you can create A records and wildcard A records.<\/p>\n<h1>Starting the installation<\/h1>\n<p>Start the installation by cloning the installer from git:<\/p>\n<pre>git clone https:\/\/github.com\/openshift\/openshift-ansible.git\r\ncd openshift-ansible<\/pre>\n<p>Next, make sure you have your OpenStack credentials in your shells environment. This might look something like this:<\/p>\n<pre>source openstack-openrc.sh<\/pre>\n<p>Now we start the actual installation via the installer:<\/p>\n<pre>bin\/cluster create -t origin \\\r\n-n 3 \\\r\n-o image_name=CentOS-7-Generic-Cloud \\\r\n-o external_net=external-net \\\r\n-o floating_ip_pool=external-net \\\r\n-o master_flavor=m1.large \\\r\n-o node_flavor=m1.large \\\r\n-o infra_flavor=m1.large \\\r\nopenstack \\\r\nopsv3<\/pre>\n<p>Make sure to adopt the parameters to your OpenStack environment. Here is a brief explanation of the parameters:<\/p>\n<pre>bin\/cluster create -t origin: deploy the free \"Origin\" version\r\n-n: number of compute nodes to provision\r\n-o image_name: name of the CentOS image to use\r\n-o external_net: your external network\r\n-o floating_ip_pool: network for floating ips\r\n-o master_flavor\/node_flavor\/infra_flavor: flavors for the roles\r\nopenstack: use the openstack provider\r\nopsv3: name for the Heat Stack created<\/pre>\n<p>&nbsp;<\/p>\n<p>The installation will take a while, consider having a coffee \ud83d\ude09<\/p>\n<h1>Post-Install<\/h1>\n<p>Once the installation is done, a few modifications are necessary to finish the setup. First, \u00a0ssh to your master node. To find its IP address, either use the OpenStack Dashboard Horizon or the CLI:<\/p>\n<pre># heat output-show ${STACK_ID} master_floating_ips\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>On the master node, edit<strong> \/etc\/origin\/master\/master-config.yaml<\/strong> with the editor of your choice. Replace the following values with your\u00a0your domain:<\/p>\n<pre>* masterPublicURL\r\n* assetPublicURL\r\n* publicURL\r\n* corsAllowedOrigins\r\n* subdomain<\/pre>\n<p>Note that some values have multiple occurrences in the file. Below are example values for our domain openshift3.cloudcomplab.ch:<\/p>\n<pre>assetConfig:\r\n  masterPublicURL: https:\/\/master.openshift3.cloudcomplab.ch:8443\r\n  publicURL: https:\/\/master.openshift3.cloudcomplab.ch:8443\/console\/\r\noauthConfig:\r\n  assetPublicURL: https:\/\/master.openshift3.cloudcomplab.ch:8443\/console\/\r\ncorsAllowedOrigins:\r\n - master.openshift3.cloudcomplab.ch\r\n - openshift3.cloudcomplab.ch\r\n - 160.85.4.68\r\nroutingConfig:\r\n subdomain: \"apps.openshift3.cloudcomplab.ch\"<\/pre>\n<p>Next,\u00a0we are going to replace all occurrences of\u00a0<strong>opsv3-master-0.novalocal<\/strong>\u00a0to our masters domain name in a couple of files:<\/p>\n<pre>\/etc\/origin\/master\/admin.kubeconfig\r\n\/etc\/origin\/master\/openshift-master.kubeconfig\r\n\/etc\/origin\/master\/openshift-registry.kubeconfig\r\n\/etc\/origin\/master\/openshift-router.kubeconfig<\/pre>\n<p>Please note that the novalocal name might be slightly different in your installation depending on the name you specified by the installer.<\/p>\n<h1>Create the Docker Registry<\/h1>\n<p>Next, we create a local docker registry. This is easily accomplished with a single command as seen below. The <em>oadm<\/em> command is used for the administration features of OpenShift 3.<\/p>\n<pre>oadm registry --config=\/etc\/origin\/master\/admin.kubeconfig \\\r\n--credentials=\/etc\/origin\/master\/openshift-registry.kubeconfig<\/pre>\n<p>&nbsp;<\/p>\n<h1>Create the Service Router<\/h1>\n<p>Creating the service router is a little more work. We will work with the <em>oc<\/em> command, which handles the basic user interactions with OpenShift 3 on your command line. First we create a new service account:<\/p>\n<pre class=\"nowrap\">echo '{\"kind\":\"ServiceAccount\",\"apiVersion\":\"v1\",\"metadata\":{\"name\":\"router\"}}' | oc create -f -<\/pre>\n<p><span style=\"font-weight: 300;background-color: #ffffff\">Next, we add the created service account to the privileged users:<\/span><\/p>\n<pre>oc edit scc privileged<\/pre>\n<p>This opens a file in your $EDITOR. Add the following line under users:<\/p>\n<pre>users:\r\n- system:serviceaccount:default:router<\/pre>\n<p>Now we are ready to create the service router:<\/p>\n<pre>oadm router service-router --replicas=4 --credentials=\/etc\/origin\/master\/openshift-router.kubeconfig --service-account=router<\/pre>\n<p>Note that we specified 4\u00a0replicas. This matches the amount of compute-nodes\u00a0we specified in the installer plus the infrastructure node that also serves as a compute node. This way, a service router is deployed on each node. In the past we experienced problems with the service router dying and getting rescheduled to a different node. This way, OpenShift will keep a service router on every node at any time.<\/p>\n<p>To verify that each node has a service router, use something along these lines:<\/p>\n<pre># oc get pods | grep service-router-1 | while read pod trash ; do oc describe pods ${pod} | grep 'Node:\\|^Name:' ; done\r\nName: service-router-1-2lzm2\r\nNode: 192.168.113.5\/192.168.113.5\r\nName: service-router-1-hx767\r\nNode: 192.168.113.6\/192.168.113.6\r\nName: service-router-1-ra2um\r\nNode: 192.168.113.7\/192.168.113.7\r\nName: service-router-1-z6qys\r\nNode: 192.168.113.3\/192.168.113.3<\/pre>\n<h1>DNS setup<\/h1>\n<p>Lastly, we create the necessary DNS records. This will differ depending on\u00a0your DNS setup. In our case, we use <a href=\"https:\/\/www.cloudflare.com\">CloudFlare<\/a>\u00a0as our DNS service, below is an image of the relevant DNS records created:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9157\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\" alt=\"Screen Shot 2015-11-05 at 11.37.40\" width=\"535\" height=\"270\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png 535w, https:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40-300x151.png 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40-500x252.png 500w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><\/a><\/p>\n<p>As you can see, there is an A record for the master as well as a wildcard A record for the subdomain that points to all our compute nodes.<\/p>\n<h1>Take OpenShift for a spin!<\/h1>\n<p>Now your initial OpenShift setup is complete. As further steps, you might want to <a href=\"https:\/\/docs.openshift.com\/enterprise\/3.0\/admin_guide\/configuring_authentication.html\">configure authentication<\/a>\u00a0or try out one of the <a href=\"https:\/\/github.com\/openshift\/nodejs-ex\">examples<\/a>.<\/p>\n<h1><\/h1>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post we will describe the necessary steps\u00a0to get an installation of OpenShift Origin v3 up and running on OpenStack. OpenShift Origin v3 offers a ton of features over its predecessor we covered over a year ago. Most notably is the support for Docker containers and the usage of Kubernetes.<\/p>\n","protected":false},"author":163,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"features":[],"class_list":["post-9052","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Installing OpenShift Origin v3 on OpenStack - Service Engineering (ICCLab &amp; SPLab)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Installing OpenShift Origin v3 on OpenStack\" \/>\n<meta property=\"og:description\" content=\"In this blog post we will describe the necessary steps\u00a0to get an installation of OpenShift Origin v3 up and running on OpenStack. OpenShift Origin v3 offers a ton of features over its predecessor we covered over a year ago. Most notably is the support for Docker containers and the usage of Kubernetes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-05T14:08:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-11-05T16:16:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\" \/>\n<meta name=\"author\" content=\"Michael Erne\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Erne\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\"},\"author\":{\"name\":\"Michael Erne\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/df902139508f138bb44a5cdc7641e762\"},\"headline\":\"Installing OpenShift Origin v3 on OpenStack\",\"datePublished\":\"2015-11-05T14:08:46+00:00\",\"dateModified\":\"2015-11-05T16:16:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\"},\"wordCount\":699,\"commentCount\":10,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\",\"articleSection\":[\"*.*\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\",\"name\":\"Installing OpenShift Origin v3 on OpenStack - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\",\"datePublished\":\"2015-11-05T14:08:46+00:00\",\"dateModified\":\"2015-11-05T16:16:00+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/df902139508f138bb44a5cdc7641e762\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage\",\"url\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\",\"contentUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Installing OpenShift Origin v3 on OpenStack\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/df902139508f138bb44a5cdc7641e762\",\"name\":\"Michael Erne\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/d5302c9f51c99673b7fce48118450863055aa694b7035caa1b7df5e6399eabd7?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d5302c9f51c99673b7fce48118450863055aa694b7035caa1b7df5e6399eabd7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d5302c9f51c99673b7fce48118450863055aa694b7035caa1b7df5e6399eabd7?s=96&d=mm&r=g\",\"caption\":\"Michael Erne\"},\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/ernm\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Installing OpenShift Origin v3 on OpenStack - Service Engineering (ICCLab &amp; SPLab)","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:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/","og_locale":"en_US","og_type":"article","og_title":"Installing OpenShift Origin v3 on OpenStack","og_description":"In this blog post we will describe the necessary steps\u00a0to get an installation of OpenShift Origin v3 up and running on OpenStack. OpenShift Origin v3 offers a ton of features over its predecessor we covered over a year ago. Most notably is the support for Docker containers and the usage of Kubernetes.","og_url":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2015-11-05T14:08:46+00:00","article_modified_time":"2015-11-05T16:16:00+00:00","og_image":[{"url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png","type":"","width":"","height":""}],"author":"Michael Erne","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michael Erne","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/"},"author":{"name":"Michael Erne","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/df902139508f138bb44a5cdc7641e762"},"headline":"Installing OpenShift Origin v3 on OpenStack","datePublished":"2015-11-05T14:08:46+00:00","dateModified":"2015-11-05T16:16:00+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/"},"wordCount":699,"commentCount":10,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png","articleSection":["*.*"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/","url":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/","name":"Installing OpenShift Origin v3 on OpenStack - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png","datePublished":"2015-11-05T14:08:46+00:00","dateModified":"2015-11-05T16:16:00+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/df902139508f138bb44a5cdc7641e762"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#primaryimage","url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png","contentUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2015\/11\/Screen-Shot-2015-11-05-at-11.37.40.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/installing-openshift-origin-v3-on-openstack\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"Installing OpenShift Origin v3 on OpenStack"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/df902139508f138bb44a5cdc7641e762","name":"Michael Erne","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d5302c9f51c99673b7fce48118450863055aa694b7035caa1b7df5e6399eabd7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d5302c9f51c99673b7fce48118450863055aa694b7035caa1b7df5e6399eabd7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d5302c9f51c99673b7fce48118450863055aa694b7035caa1b7df5e6399eabd7?s=96&d=mm&r=g","caption":"Michael Erne"},"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/ernm\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/9052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/163"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=9052"}],"version-history":[{"count":10,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/9052\/revisions"}],"predecessor-version":[{"id":9165,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/9052\/revisions\/9165"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=9052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=9052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=9052"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=9052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}