{"id":35059,"date":"2019-02-22T14:05:53","date_gmt":"2019-02-22T21:05:53","guid":{"rendered":"http:\/\/devblogs.microsoft.com\/premier-developer\/?p=35059"},"modified":"2019-02-18T14:51:23","modified_gmt":"2019-02-18T21:51:23","slug":"why-you-should-consider-vs-code-for-your-kubernetes-docker-work-part-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/premier-developer\/why-you-should-consider-vs-code-for-your-kubernetes-docker-work-part-2\/","title":{"rendered":"Why you should consider VS Code for your Kubernetes\/Docker work &#8211; Part 2"},"content":{"rendered":"<p><span style=\"float: none;background-color: #ffffff;color: #333333;font-family: Segoe UI,'Segoe UI Web Regular','Segoe UI Regular WestEuropean','Segoe UI',Tahoma,Arial,Roboto,'Helvetica Neue',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size: 16.93px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px\">Premier Developer consultant <\/span><a href=\"https:\/\/www.linkedin.com\/in\/julienoudot\/\">Julien Oudot<\/a><span style=\"float: none;background-color: #ffffff;color: #333333;font-family: Segoe UI,'Segoe UI Web Regular','Segoe UI Regular WestEuropean','Segoe UI',Tahoma,Arial,Roboto,'Helvetica Neue',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size: 16.93px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-decoration: none;text-indent: 0px\"> spotlights how VS Code can help to deploy Container images stored into <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/container-registry\/\">Azure Container Registry (ACR)<\/a> and explores <em>kubectl explain<\/em> integration.<\/span><\/p>\n<hr \/>\n<p>In the last part: <a href=\"https:\/\/blogs.msdn.microsoft.com\/premier_developer\/2018\/12\/26\/why-you-should-consider-vs-code-for-your-kubernetes-docker-work\/\">Why you should consider VS Code for your Kubernetes\/Docker work<\/a>, we have seen how Visual Studio Code facilitates your work with Docker containers and Kubernetes clusters. In this follow up article, we will cover how it can help to deploy Container images stored into <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/container-registry\/\">Azure Container Registry (ACR)<\/a>. We will also cover the <strong>kubectl explain<\/strong> integration which is helpful to understand the structure of YAML files used to describe Kubernetes API objects.<\/p>\n<p>To complete the steps described below, you will need an Azure subscription with an AKS cluster already deployed. In the following example, RBAC has been disabled in the cluster. The following VS Code extensions are also required:<\/p>\n<ul>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=PeterJausovec.vscode-docker\">Docker<\/a><\/li>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools\">Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=redhat.vscode-yaml\">YAML Support by Red Hat<\/a><\/li>\n<li><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.azure-account\">Azure Account<\/a><\/li>\n<\/ul>\n<p>Although the previous part was demonstrated in a Linux environment, the current article has been written in a Windows context. But remember,\u00a0Visual Studio Code is a cross platform IDE, providing a consistent user experience on multiple platforms (Windows, Linux and Mac OS).<\/p>\n<p><strong>Creating Azure Container Registry<\/strong><\/p>\n<p>First open VS Code as Administrator and open the command palette as shown below.<\/p>\n<p><img decoding=\"async\" width=\"447\" height=\"674\" class=\"wp-image-35122\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-63.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-63.png 447w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-63-199x300.png 199w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/><\/p>\n<p>Enter <strong>Azure sign<\/strong> <strong>in<\/strong> the text box and select <strong>Azure sign in<\/strong>. It will open a browser and walk you through the sign in experience to authenticate the IDE.<\/p>\n<p><img decoding=\"async\" width=\"1290\" height=\"241\" class=\"wp-image-35123\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-64.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-64.png 1290w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-64-300x56.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-64-768x143.png 768w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-64-1024x191.png 1024w\" sizes=\"(max-width: 1290px) 100vw, 1290px\" \/><\/p>\n<p>Open the command palette again and enter <strong>Create <\/strong>in the text box. Then select <strong>Docker: Create Azure Registry<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"1220\" height=\"415\" class=\"wp-image-35124\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-65.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-65.png 1220w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-65-300x102.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-65-768x261.png 768w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-65-1024x348.png 1024w\" sizes=\"(max-width: 1220px) 100vw, 1220px\" \/><\/p>\n<p>You will need to choose your subscription (for billing purpose). For the resource group, click on <strong>create new resource group<\/strong> and select the location closest to you.<\/p>\n<p>Then, you will need to enter the Azure Container Registry name and location. At the end of these steps, you should see a notification saying that it has been successfully created (at the bottom right).<\/p>\n<p><img decoding=\"async\" width=\"566\" height=\"91\" class=\"wp-image-35125\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-66.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-66.png 566w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-66-300x48.png 300w\" sizes=\"(max-width: 566px) 100vw, 566px\" \/><\/p>\n<p>We have just deployed a private Docker Container registry in Azure from Visual Studio Code.<\/p>\n<p><strong>Connecting VS Code to ACR account and deploying to Kubernetes cluster<\/strong><\/p>\n<p>Similarly to the previous article, we need to authenticate VS Code to this private registry. To do this, we need to browse to our Container Registry environment in <a href=\"https:\/\/portal.azure.com\/\">portal.azure.com<\/a> and go to <strong>Access keys<\/strong> to find the credentials as shown below.<\/p>\n<p>Make sure that<strong> Admin user <\/strong>is enabled, take note of the <strong>Login server<\/strong>, <strong>Username<\/strong> and <strong>Password<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"880\" height=\"598\" class=\"wp-image-35127\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-67.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-67.png 880w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-67-300x204.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-67-768x522.png 768w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><\/p>\n<p>Open the <strong>Settings<\/strong> at the bottom left as shown below.<\/p>\n<p><img decoding=\"async\" width=\"273\" height=\"390\" class=\"wp-image-35128\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-68.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-68.png 273w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-68-210x300.png 210w\" sizes=\"(max-width: 273px) 100vw, 273px\" \/><\/p>\n<p>Search for <strong>vsdocker<\/strong> and override the Vsdocker: Image User with <strong>&lt;login_server&gt;\/&lt;user_name&gt;<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"1454\" height=\"614\" class=\"wp-image-35129\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-69.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-69.png 1454w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-69-300x127.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-69-768x324.png 768w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-69-1024x432.png 1024w\" sizes=\"(max-width: 1454px) 100vw, 1454px\" \/><\/p>\n<p>From the VS Code Terminal window, enter the command <strong>docker login<\/strong> <strong>&lt;login_server&gt;<\/strong> <strong>-u<\/strong> <strong>&lt;user_name&gt; <\/strong>as well as the password found above.<\/p>\n<p><img decoding=\"async\" width=\"461\" height=\"153\" class=\"wp-image-35130\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-70.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-70.png 461w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-70-300x100.png 300w\" sizes=\"(max-width: 461px) 100vw, 461px\" \/><\/p>\n<p>Open a simple <a href=\"https:\/\/github.com\/joudot\/nodejs\">nodejs project<\/a> and deploy to an existing AKS cluster. For more information about how to do this, refer to the <a href=\"https:\/\/blogs.msdn.microsoft.com\/premier_developer\/2018\/12\/26\/why-you-should-consider-vs-code-for-your-kubernetes-docker-work\/\">part 1<\/a> of this article. Note that you will need <strong>Docker for Windows<\/strong> in Linux mode if you are working from a Windows 10 machine.<\/p>\n<p>Once this is done, two notifications should be displayed at the bottom right.<\/p>\n<p><img decoding=\"async\" width=\"454\" height=\"101\" class=\"wp-image-35131\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-71.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-71.png 454w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-71-300x67.png 300w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><\/p>\n<p>If we look at the ACR environment in Azure, we can see the <strong>nodejs<\/strong> image that has been pushed in our private repository.<\/p>\n<p><img decoding=\"async\" width=\"1118\" height=\"541\" class=\"wp-image-35132\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-72.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-72.png 1118w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-72-300x145.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-72-768x372.png 768w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-72-1024x496.png 1024w\" sizes=\"(max-width: 1118px) 100vw, 1118px\" \/><\/p>\n<p>Although the deployment looks successful looking at the notifications, we missed one step to allow the AKS cluster to pull image stored in the ACR.<\/p>\n<p>In VS Code, click on the Kubernetes extension, then expand the cluster and click <strong>Workloads<\/strong> &#8211; <strong>Deployments<\/strong> \u2013 <strong>nodejs<\/strong>. You will be able to see what is deployed in your cluster. When expanding <strong>nodejs<\/strong>, you can see a red dot meaning that things did not go as expected.<\/p>\n<p>Right-click on the failing pod and click <strong>Describe<\/strong>. Scroll down and locate the message <strong>Failed to pull image \u2026 <\/strong>, as highlighted in red below. If you scroll to the right, you will see that the pull failed because the AKS cluster is unauthorized to pull the image stored in the Azure Container Registry. We need to create a secret.<\/p>\n<p><img decoding=\"async\" width=\"989\" height=\"518\" class=\"wp-image-35133\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-73.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-73.png 989w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-73-300x157.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-73-768x402.png 768w\" sizes=\"(max-width: 989px) 100vw, 989px\" \/><\/p>\n<p>To create a secret, open the VS Code Terminal and type the command<\/p>\n<p><strong>kubectl create secret docker-registry acr-auth &#8211;docker-server=https:\/\/&lt;acr_login_server&gt; &#8211;docker-username=&lt;acr_user_name&gt; &#8211;docker-password=&lt;acr_password&gt; &#8211;docker-email=&lt;any_mail&gt;<\/strong><\/p>\n<p>Note that the secret creation process might be different depending on the RBAC configuration of your cluster. See <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/container-registry\/container-registry-auth-aks#access-with-kubernetes-secret\">https:\/\/docs.microsoft.com\/en-us\/azure\/container-registry\/container-registry-auth-aks#access-with-kubernetes-secret <\/a> for more details.<\/p>\n<p>Although the secret is created, we need to make sure that its credentials will be used to download the image at deployment time. From the Kubernetes extension window, click on the <strong>nodejs<\/strong> deployment to see the YAML file describing the deployment.<\/p>\n<p><img decoding=\"async\" width=\"794\" height=\"560\" class=\"wp-image-35134\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-74.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-74.png 794w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-74-300x212.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-74-768x542.png 768w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><\/p>\n<p>After the containers section, update the file to add:<\/p>\n<p><strong>imagePullSecrets:<\/strong><\/p>\n<p><strong>name: acr-auth<\/strong><\/p>\n<p><img decoding=\"async\" width=\"792\" height=\"400\" class=\"wp-image-35135\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-75.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-75.png 792w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-75-300x152.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-75-768x388.png 768w\" sizes=\"(max-width: 792px) 100vw, 792px\" \/><\/p>\n<p>Finally, to update the deployment, open the command palette (control-shift + p), search for <strong>Apply<\/strong> and select <strong>Kubernetes: Apply<\/strong> and click <strong>Apply<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"870\" height=\"778\" class=\"wp-image-35136\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-76.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-76.png 870w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-76-300x268.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-76-768x687.png 768w\" sizes=\"(max-width: 870px) 100vw, 870px\" \/><\/p>\n<p>Now if you refresh the cluster\u2019s view, the <strong>nodejs<\/strong> pod should be healthy once the pull is complete.<\/p>\n<p><img decoding=\"async\" width=\"283\" height=\"227\" class=\"wp-image-35137\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-77.png\" \/><\/p>\n<p>If you want to expose this deployment to see outside, we need to create a service. See the <a href=\"https:\/\/blogs.msdn.microsoft.com\/premier_developer\/2018\/12\/26\/why-you-should-consider-vs-code-for-your-kubernetes-docker-work\/\">part 1<\/a> for instructions explaining how to do this.<\/p>\n<p><strong>Using Kubernetes Explain to understand YAML files<\/strong><\/p>\n<p>Another convenient feature part of the Kubernetes extension is the integration of the kubectl explain command. Open the command palette and enter <strong>explain<\/strong>. Then select <strong>Kubernetes Explain<\/strong>.<\/p>\n<p><img decoding=\"async\" width=\"1008\" height=\"116\" class=\"wp-image-35138\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-78.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-78.png 1008w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-78-300x35.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-78-768x88.png 768w\" sizes=\"(max-width: 1008px) 100vw, 1008px\" \/><\/p>\n<p>Now, hover over any field in the YAML file to see some documentation and clickable links to learn more about the field.<\/p>\n<p><img decoding=\"async\" width=\"1417\" height=\"865\" class=\"wp-image-35139\" src=\"http:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-79.png\" srcset=\"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-79.png 1417w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-79-300x183.png 300w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-79-768x469.png 768w, https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/02\/word-image-79-1024x625.png 1024w\" sizes=\"(max-width: 1417px) 100vw, 1417px\" \/><\/p>\n<p>To summarize the VS Code capabilities we have experimented, we have been able to deploy a private Azure Container Registry, deploy a Docker container to a managed Kubernetes cluster and learn more about the structure of the Kubernetes YAML files. We only had to leave the IDE to retrieve the ACR credentials from the Azure portal and verify that our container image was successfully pushed the private registry.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this follow up article, we will cover how it can help to deploy Container images stored into Azure Container Registry (ACR). We will also cover the kubectl explain integration which is helpful to understand the structure of YAML files used to describe Kubernetes API objects.<\/p>\n","protected":false},"author":582,"featured_media":35143,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[25,126,1],"tags":[24,97,2,254,92],"class_list":["post-35059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-kubernetes","category-permierdev","tag-azure","tag-azure-container-registry","tag-containers","tag-julien-oudot","tag-kubernetes"],"acf":[],"blog_post_summary":"<p>In this follow up article, we will cover how it can help to deploy Container images stored into Azure Container Registry (ACR). We will also cover the kubectl explain integration which is helpful to understand the structure of YAML files used to describe Kubernetes API objects.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/35059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/users\/582"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/comments?post=35059"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/35059\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media\/35143"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media?parent=35059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/categories?post=35059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/tags?post=35059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}