{"id":2542,"date":"2021-05-18T08:53:34","date_gmt":"2021-05-18T06:53:34","guid":{"rendered":"https:\/\/geko2.factoryfy.com\/harbor-private-docker-registry-in-kubernetes\/"},"modified":"2021-11-04T09:59:10","modified_gmt":"2021-11-04T08:59:10","slug":"harbor-private-registry-kubernetes","status":"publish","type":"post","link":"https:\/\/geko.cloud\/en\/harbor-private-registry-kubernetes\/","title":{"rendered":"Harbor: Private docker registry in Kubernetes"},"content":{"rendered":"<p><a href=\"https:\/\/geko.cloud\/en\/what-is-kubernetes\/\">Kubernetes<\/a> is a <strong>container orchestrator<\/strong> and therefore you need somewhere to <strong>store your container images<\/strong> for Kubernetes to pull them. There&#8217;s a wide variety of managed and unmanaged solutions to choose from this matter: cloud registry, dockerhub, private registry on a vm&#8230; or a private registry in <a href=\"https:\/\/geko.cloud\/en\/what-is-kubernetes\/\">Kubernetes<\/a>.<\/p>\n<p>Today we are going to cover the latter. A solution to deploy a <strong>registry inside Kubernetes<\/strong> itself: <strong>Harbor<\/strong>.<\/p>\n<h3>But what is Harbor?<\/h3>\n<p><strong>Harbor<\/strong> is open-source and is part of the <a href=\"https:\/\/cncf.io\/\">Cloud Native Computing Foundation<\/a>. It implements some basic functionalities like a role-based authentication (with <strong><a href=\"https:\/\/geko.cloud\/en\/install-grafana-ldap-kubernetes-helm\/\">support for LDAP<\/a><\/strong>) and also ships with some interesting more advanced features like the ability to upload and store<strong>\u00a0helm charts<\/strong>, perform vulnerability scans on the uploaded images, and much more.<\/p>\n<h3>Enough talk, I want a hands-on!<\/h3>\n<p>Let&#8217;s see how can we implement <strong>Harbor<\/strong> in our cluster. I assume you are meeting the following requirements:<\/p>\n<ul>\n<li>You have a working <b>k8s cluster<\/b> with ingress-controller. Minikube is acceptable.<\/li>\n<li>You have <b>helm<\/b> installed (read <b><a href=\"https:\/\/geko.cloud\/en\/install-grafana-ldap-kubernetes-helm\/\">how to install helm<\/a><\/b>)<\/li>\n<li>You have the <strong>docker<\/strong> client installed<\/li>\n<li>10 spare minutes \ud83d\ude09<\/li>\n<\/ul>\n<p><strong>IMPORTANT<\/strong>: You should have cert-manager installed in your cluster since Harbor requires to have a valid HTTPS certificate to login with docker from your terminal.<\/p>\n<h3>Installing Harbor<\/h3>\n<p>We are going to use the official helm chart for this part. To do this, you will need to add the harbor repo first:<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{\">helm repo add harbor https:\/\/helm.goharbor.io<\/pre>\n<\/div>\n<p>To customize your deployment you can create a new values.yaml file, replace it with your desired contents:<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{\">expose:\r\n  type: ingress\r\n  tls: \r\n    commonName: \"YOUR_CN\"\r\n  ingress:\r\n    hosts:\r\n      core: \"harbor.YOUR_DOMAIN\"\r\npersistence:\r\n  enabled: true\r\nexternalURL: \"https:\/\/harbor.YOUR_DOMAIN\"\r\nharborAdminPassword: admin<\/pre>\n<\/div>\n<p>Now create the namespace and deploy the chart. The values used for the deployment will vary depending on your needs:<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{\">kubectl create harbor-system\r\nhelm install --wait harbor --namespace harbor-system harbor\/harbor -f values.yaml<\/pre>\n<\/div>\n<p>After install finishes (can take up to 5 minutes) you can go to the domain using your web browser and log in to harbor with the admin username and the password you previously defined. Should end up on this screen:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4578\" src=\"https:\/\/geko2.factoryfy.com\/wp-content\/uploads\/harbor_main.png\" alt=\"Harbor main screen\" width=\"602\" height=\"413\" \/><\/p>\n<h3>Pushing your first image<\/h3>\n<p>First, you will need to login to the registry from your terminal by using the docker login command and entering your credentials:<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{\">docker login https:\/\/harbor.YOUR_DOMAIN<\/pre>\n<\/div>\n<p><em>*Note that in order to access harbor through this domain you must create the appropiate DNS entry in your DNS manager AND <strong>is mandatory<\/strong> to have a <strong>valid HTTPS certificate<\/strong><\/em><\/p>\n<p>Click the &#8220;NEW PROJECT&#8221; button and fill the inputs:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4579\" src=\"https:\/\/geko2.factoryfy.com\/wp-content\/uploads\/harbor_new_project.png\" alt=\"Harbor create new project\" width=\"473\" height=\"266\" \/><\/p>\n<p>After clicking OK you should be able to see your new project on the main screen.<\/p>\n<p>Now, let&#8217;s try to upload a new image to this project. Pull the official nginx image, tag it with your harbor\/project and push it:<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{\">docker pull nginx\r\ndocker tag nginx harbor.YOUR_DOMAIN\/myproject\/nginx:latest\r\ndocker push harbor.YOUR_DOMAIN\/myproject\/nginx:latest<\/pre>\n<\/div>\n<p>If everything went fine, you should see the nginx image inside the project you created in harbor:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4580\" src=\"https:\/\/geko2.factoryfy.com\/wp-content\/uploads\/harbor_new_image.png\" alt=\"Harbor new nginx image\" width=\"805\" height=\"125\" \/><\/p>\n<h3>What&#8217;s next?<\/h3>\n<p>You have deployed a new private Harbor registry and you already uploaded your first image.<\/p>\n<p>In the next post of this series, we will cover how to create the required credentials for your pods to be able to pull the images from your private Harbor and how to tell <a href=\"https:\/\/geko.cloud\/en\/what-is-kubernetes\/\">Kubernetes<\/a> when and how to use those credentials.<\/p>\n<hr \/>\n<p>I hope you&#8217;ve enjoyed this post and I encourage you to <a href=\"https:\/\/geko.cloud\/en\/blog\/labs\/\">check our blog for other posts<\/a> that you might find helpful. <a href=\"https:\/\/geko.cloud\/en\/contact\/\">Do not hesitate to contact us<\/a> if you would like us to help you on your projects.<\/p>\n<p>See you on the next post!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes is a container orchestrator and therefore you need somewhere to store your container images for Kubernetes to pull them. There&#8217;s a wide variety of managed and unmanaged solutions to choose from this matter: cloud registry, dockerhub, private registry on a vm&#8230; or a private registry in Kubernetes. Today we are going to cover the [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1927,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[67],"tags":[74,81,90],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Harbor: Private docker registry in Kubernetes - Geko Cloud<\/title>\n<meta name=\"description\" content=\"In our post we are talking about a solution for deploying a registry within Kubernetes itself: Harbor. Don&#039;t miss it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harbor: Private docker registry in Kubernetes - Geko Cloud\" \/>\n<meta property=\"og:description\" content=\"In our post we are talking about a solution for deploying a registry within Kubernetes itself: Harbor. Don&#039;t miss it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Geko Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-18T06:53:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-04T08:59:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"975\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Xavi Miranda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geko_cloud\" \/>\n<meta name=\"twitter:site\" content=\"@geko_cloud\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\"},\"author\":{\"name\":\"Xavi Miranda\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/d496fb33d6ad37fe134ef9fb225dc732\"},\"headline\":\"Harbor: Private docker registry in Kubernetes\",\"datePublished\":\"2021-05-18T06:53:34+00:00\",\"dateModified\":\"2021-11-04T08:59:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\"},\"wordCount\":538,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png\",\"keywords\":[\"Docker\",\"Harbor\",\"Kubernetes\"],\"articleSection\":[\"Labs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\",\"url\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\",\"name\":\"Harbor: Private docker registry in Kubernetes - Geko Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png\",\"datePublished\":\"2021-05-18T06:53:34+00:00\",\"dateModified\":\"2021-11-04T08:59:10+00:00\",\"description\":\"In our post we are talking about a solution for deploying a registry within Kubernetes itself: Harbor. Don't miss it.\",\"breadcrumb\":{\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png\",\"width\":975,\"height\":350,\"caption\":\"Harbor Kubernetes logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/geko.cloud\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Harbor: Private docker registry in Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/geko.cloud\/es\/#website\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"name\":\"Geko Cloud\",\"description\":\"Servicios de consultor\u00eda cloud y devops\",\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/geko.cloud\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/geko.cloud\/es\/#organization\",\"name\":\"Geko Cloud\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"width\":1650,\"height\":809,\"caption\":\"Geko Cloud\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/geko_cloud\",\"https:\/\/www.instagram.com\/gekocloud\/\",\"https:\/\/www.linkedin.com\/company\/gekocloud\",\"https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/d496fb33d6ad37fe134ef9fb225dc732\",\"name\":\"Xavi Miranda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/aa0e61120a4b0a629b0679d9e341758d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/aa0e61120a4b0a629b0679d9e341758d?s=96&d=mm&r=g\",\"caption\":\"Xavi Miranda\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Harbor: Private docker registry in Kubernetes - Geko Cloud","description":"In our post we are talking about a solution for deploying a registry within Kubernetes itself: Harbor. Don't miss it.","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:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"Harbor: Private docker registry in Kubernetes - Geko Cloud","og_description":"In our post we are talking about a solution for deploying a registry within Kubernetes itself: Harbor. Don't miss it.","og_url":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/","og_site_name":"Geko Cloud","article_published_time":"2021-05-18T06:53:34+00:00","article_modified_time":"2021-11-04T08:59:10+00:00","og_image":[{"width":975,"height":350,"url":"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png","type":"image\/png"}],"author":"Xavi Miranda","twitter_card":"summary_large_image","twitter_creator":"@geko_cloud","twitter_site":"@geko_cloud","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#article","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/"},"author":{"name":"Xavi Miranda","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/d496fb33d6ad37fe134ef9fb225dc732"},"headline":"Harbor: Private docker registry in Kubernetes","datePublished":"2021-05-18T06:53:34+00:00","dateModified":"2021-11-04T08:59:10+00:00","mainEntityOfPage":{"@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/"},"wordCount":538,"commentCount":0,"publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"image":{"@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png","keywords":["Docker","Harbor","Kubernetes"],"articleSection":["Labs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/","url":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/","name":"Harbor: Private docker registry in Kubernetes - Geko Cloud","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png","datePublished":"2021-05-18T06:53:34+00:00","dateModified":"2021-11-04T08:59:10+00:00","description":"In our post we are talking about a solution for deploying a registry within Kubernetes itself: Harbor. Don't miss it.","breadcrumb":{"@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#primaryimage","url":"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/harbor_in_kubernetes_part1.png","width":975,"height":350,"caption":"Harbor Kubernetes logo"},{"@type":"BreadcrumbList","@id":"https:\/\/geko.cloud\/es\/harbor-instalar-un-registry-privado-en-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/geko.cloud\/en\/"},{"@type":"ListItem","position":2,"name":"Harbor: Private docker registry in Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/geko.cloud\/es\/#website","url":"https:\/\/geko.cloud\/es\/","name":"Geko Cloud","description":"Servicios de consultor\u00eda cloud y devops","publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/geko.cloud\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/geko.cloud\/es\/#organization","name":"Geko Cloud","url":"https:\/\/geko.cloud\/es\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","width":1650,"height":809,"caption":"Geko Cloud"},"image":{"@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/geko_cloud","https:\/\/www.instagram.com\/gekocloud\/","https:\/\/www.linkedin.com\/company\/gekocloud","https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ"]},{"@type":"Person","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/d496fb33d6ad37fe134ef9fb225dc732","name":"Xavi Miranda","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/aa0e61120a4b0a629b0679d9e341758d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/aa0e61120a4b0a629b0679d9e341758d?s=96&d=mm&r=g","caption":"Xavi Miranda"}}]}},"_links":{"self":[{"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/posts\/2542"}],"collection":[{"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/comments?post=2542"}],"version-history":[{"count":3,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/posts\/2542\/revisions"}],"predecessor-version":[{"id":5284,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/posts\/2542\/revisions\/5284"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/media\/1927"}],"wp:attachment":[{"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/media?parent=2542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/categories?post=2542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geko.cloud\/en\/wp-json\/wp\/v2\/tags?post=2542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}