{"id":97895,"date":"2020-10-23T02:42:12","date_gmt":"2020-10-23T00:42:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd"},"modified":"2020-10-23T02:42:12","modified_gmt":"2020-10-23T00:42:12","slug":"kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","title":{"rendered":"How to Use HashiCorp Waypoint for Collaboration with GitLab CI\/CD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"How to Use HashiCorp Waypoint for Collaboration with GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/eb34af0fa0526faea00bbd79e281d0ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>HashiCorp has introduced a new project <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/\">Waypoint<\/a><\/noindex> to <noindex><a rel=\"nofollow\" href=\"https:\/\/digital.hashiconf.com\/login\">HashiCorp Digital<\/a><\/noindex>. It uses an HCL-based file to describe the build, delivery, and release of applications across various cloud platforms, from Kubernetes to AWS and Google Cloud Run. One could think of Waypoint as a combination of Terraform and Vagrant for outlining the process of building, delivering, and releasing your applications.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Staying true to itself, HashiCorp released Waypoint as open-source, complete with numerous examples. The level of orchestration is up to you; Waypoint comes as an executable that you can run directly on your laptop or from your chosen CI\/CD orchestration tool. The target for application deployment is also your choice, as Waypoint supports Kubernetes, Docker, Google Cloud Run, AWS ECS, and more.<\/p>\n<p><\/p>\n<p>After reading the stunning <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\">documentation<\/a><\/noindex> and magnificent <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hashicorp\/waypoint-examples\">examples<\/a><\/noindex> of applications provided by HashiCorp, we decided to take a closer look at orchestrating Waypoint with GitLab CI\/CD. To do this, we will take a simple Node.js application running on AWS ECS from the example repository.<\/p>\n<p><\/p>\n<p>After cloning the repository, let's look at the structure of the application that displays a single page:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"How to Use HashiCorp Waypoint for Collaboration with GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/231bd4112523a05be12f8b15bec2652d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>As you might have noticed, there is no Dockerfile in this project. They haven't been added in the example because they aren't needed at all, since Waypoint will take care of them for us. Let's take a closer look at the file <code>waypoint.hcl<\/code>, to understand what it will do:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">project = \"example-nodejs\"\n\napp \"example-nodejs\" {\n  labels = {\n    \"service\" = \"example-nodejs\",\n    \"env\" = \"dev\"\n  }\n\n  build {\n    use \"pack\" {}\n    registry {\n    use \"aws-ecr\" {\n        region = \"us-east-1\"\n        repository = \"waypoint-gitlab\"\n        tag = \"latest\"\n    }\n    }\n  }\n\n  deploy {\n    use \"aws-ecs\" {\n    region = \"us-east-1\"\n    memory = \"512\"\n    }\n  }\n}<\/code><\/pre>\n<p><\/p>\n<p>During the build stage, Waypoint uses Cloud Native Buildpacks (<noindex><a rel=\"nofollow\" href=\"https:\/\/buildpacks.io\/\">CNB<\/a><\/noindex>), to determine the programming language of the project and create a Docker image without using a Dockerfile. Essentially, this is the same technology used by GitLab in the <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/topics\/autodevops\/\">Auto DevOps<\/a><\/noindex> Auto Build step. It's nice to see that CNB from CNCF is gaining more traction among industry users.<\/p>\n<p><\/p>\n<p>Once the image is built, Waypoint will automatically push it to our AWS ECR registry, ready for delivery. After the build is complete, the delivery step uses <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/plugins\/aws-ecs\">the AWS ECS plugin<\/a><\/noindex> to deploy our application to our AWS account.<\/p>\n<p><\/p>\n<p>From my laptop \u2014 it's all straightforward. I set up Waypoint, which is already authenticated with my AWS account, and it 'just works.' But what if I want to go beyond my laptop? Or suddenly I want to automate this deployment as part of my overall CI\/CD pipeline, where my current integration tests, security tests, and others run? This is where GitLab CI\/CD comes into the story!<\/p>\n<p><\/p>\n<blockquote><p><strong>N.B.<\/strong> If you're just planning to implement CI\/CD or want to start applying best practices in building pipelines, check out the new course from Slyer. <noindex><a rel=\"nofollow\" href=\"https:\/\/slurm.io\/ci-cd?utm_source=habr&amp;utm_medium=promo&amp;utm_campaign=cicd-videocourse&amp;utm_content=post_22-20-2020&amp;utm_term=demkovich\">\u201cCI\/CD using GitLab CI\u201d<\/a><\/noindex>. It is currently available at a pre-order price. <\/p><\/blockquote>\n<p><\/p>\n<h2 id=\"waypoint-v-gitlab-cicd\">Waypoint in GitLab CI\/CD<\/h2>\n<p><\/p>\n<p>To orchestrate all this in GitLab CI\/CD, let's see what we need in our file. <code>.gitlab-ci.yml<\/code>:<\/p>\n<p><\/p>\n<ul>\n<li>First of all, we need a base image to run inside it. Waypoint works on any Linux distribution, it only requires Docker, so we can start with a generic Docker image.<\/li>\n<li>Next, we need to install Waypoint in this image. In the future, we can build <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/blog\/2019\/08\/28\/building-build-images\/\">a meta build image<\/a><\/noindex> and containerize this process for ourselves.<\/li>\n<li>Finally, we will run Waypoint commands.<\/li>\n<\/ul>\n<p><\/p>\n<p>What we\u2019ve outlined above is everything our pipeline will need to run the necessary scripts for deployment, but for deploying to AWS, we need one more thing: we must authenticate in our AWS account. In the Waypoint documentation <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\/roadmap\">there are plans<\/a><\/noindex> for authentication and authorization. HashiCorp also released an impressive project this week, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.boundaryproject.io\/\">Boundary<\/a><\/noindex>. But for now, we can simply handle authentication and authorization ourselves.<\/p>\n<p><\/p>\n<p>For GitLab CICD authentication in AWS, there are several options. The first option is to use the built-in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.vaultproject.io\/\">HashiCorp Vault<\/a><\/noindex>. This is suitable if your team is already using Vault to manage credentials. Another method, which is applicable if your team manages authorization through AWS IAM \u2014 ensure that the delivery tasks are executed through <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/runner\/\">GitLab Runner<\/a><\/noindex>, authorized to run the deployment through IAM. But if you just want to familiarize yourself with Waypoint and want to do it quickly, there's one last option \u2014 add your AWS API and Secret keys to <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/ci\/variables\/\">the GitLab CI\/CD environment variables.<\/a><\/noindex> <code>AWS_ACCESS_KEY_ID<\/code> and <code>AWS_SECRET_ACCESS_KEY<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"sobiraem-vse-vmeste\">Bringing it all together<\/h2>\n<p><\/p>\n<p>Once we sorted out authentication, we can begin! Our final <code>.gitlab-ci.yml<\/code> looks like this:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">waypoint:\n  image: docker:latest\n  stage: build\n  services:\n    - docker:dind\n  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`\n  variables:\n    WAYPOINT_VERSION: ''\n    WAYPOINT_SERVER_ADDR: ''\n    WAYPOINT_SERVER_TOKEN: ''\n    WAYPOINT_SERVER_TLS: '1'\n    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'\n  script:\n    - wget -q -O \/tmp\/waypoint.zip https:\/\/releases.hashicorp.com\/waypoint\/${WAYPOINT_VERSION}\/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip\n    - unzip -d \/usr\/local\/bin \/tmp\/waypoint.zip\n    - rm -rf \/tmp\/waypoint*\n    - waypoint init\n    - waypoint build\n    - waypoint deploy\n    - waypoint release<\/code><\/pre>\n<p><\/p>\n<p>You can see that we start with the image <code>docker:latest<\/code> and set up several environment variables required for Waypoint. In the section <code>script<\/code> we download the latest version of the Waypoint executable and install it in <code>\/usr\/local\/bin<\/code>. Since our runner is already authenticated with AWS, we then simply run <code>waypoint init<\/code>, <code>build<\/code>, <code>deploy<\/code> and <code>release<\/code>.<\/p>\n<p><\/p>\n<p>The build job output will show us the endpoint where we deployed the application:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"How to Use HashiCorp Waypoint for Collaboration with GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/be41d5e61b91bdfc1442f239fe99f013.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Waypoint is one of <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/solutions\/hashicorp\/\">the many solutions from HashiCorp<\/a><\/noindex>, which work excellently with GitLab. For example, in addition to deploying applications, we can orchestrate the underlying infrastructure using <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/user\/infrastructure\/\">Terraform in GitLab<\/a><\/noindex>. To standardize security in the SDLC, we can also integrate <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/ci\/examples\/authenticating-with-hashicorp-vault\/\">GitLab with Vault<\/a><\/noindex> to manage secrets and tokens in CI\/CD pipelines, providing a comprehensive solution for developers and administrators relying on secret management during development, testing, and production use.<\/p>\n<p><\/p>\n<p>The joint solutions developed by HashiCorp and GitLab help companies discover the best ways to develop applications, ensuring consistent management of delivery flows and infrastructure. Waypoint has taken another step in the right direction, and we look forward to the project's further development. You can learn more about Waypoint <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/\">here<\/a><\/noindex>, and it's also worth exploring <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\">documentation<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\/roadmap\">the project roadmap<\/a><\/noindex> . We have added our insights to <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\/automating-execution\/gitlab-cicd\">the GitLab CICD documentation<\/a><\/noindex>. If you want to try everything out yourself, you can take a fully functional example from <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/brendan-demo\/waypoint\">this repository<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Understanding CI\/CD principles, mastering the intricacies of working with GitLab CI, and starting to implement best practices can be achieved by taking the video course <noindex><a rel=\"nofollow\" href=\"https:\/\/slurm.io\/ci-cd?utm_source=habr&amp;utm_medium=promo&amp;utm_campaign=cicd-videocourse&amp;utm_content=post_22-20-2020&amp;utm_term=demkovich\">\u201cCI\/CD using GitLab CI\u201d<\/a><\/noindex>. Join us!<\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/524486\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>HashiCorp \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 Waypoint \u043d\u0430 HashiCorp Digital. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 HCL \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 Kubernetes \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f AWS \u0438 Google Cloud Run. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e Waypoint \u2014 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 Terraform \u0438 Vagrant \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97896,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97895","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HashiCorp Waypoint \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GitLab CI\/CD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-23T00:42:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-23T00:42:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47How to Use HashiCorp Waypoint for Collaboration with GitLab CI\/CD | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HashiCorp Waypoint \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GitLab CI\/CD | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-23T00:42:12+00:00","article:modified_time":"2020-10-23T00:42:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97895","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:11:01","updated":"2022-09-28 20:42:44","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/97895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=97895"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/97895\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/97896"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=97895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=97895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=97895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}