{"id":10203,"date":"2022-04-19T17:39:16","date_gmt":"2022-04-19T12:09:16","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=10203"},"modified":"2022-04-19T17:39:16","modified_gmt":"2022-04-19T12:09:16","slug":"a-savior-imperative-in-k8s","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2022\/04\/19\/a-savior-imperative-in-k8s\/","title":{"rendered":"A Savior &#8211; Imperative in K8s"},"content":{"rendered":"\n<p class=\"has-text-align-justify\">There are two basic ways to deploy to Kubernetes: Imperative acts as a command which is active and immediate, whereas declarative is passive, by writing manifest file and using kubectl apply.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Imperative?<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">The imperative command is the first mode of managing objects, to use CLI for CUD (Create, Update, Delete) objects on Kubernetes cluster without specifying on manifest file ahead of time. They are a blessing for Kubernetes application developers and administrators because they are very easy to remember and handy. According to K8s, it&#8217;s like a &#8216;Swiss Army Knife&#8221; of container orchestration and management.<\/p>\n\n\n\n<p class=\"has-text-align-justify\">Imperative commands can help in getting tasks done quickly, as well as generating definition file templates easily. It saves a considerable amount of time and prevents human errors.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Object Creation<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">Imperative commands and objects are created, managed\/modified using the CLI. As per&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/manage-kubernetes-objects\/imperative-command\/\" target=\"_blank\">kubernetes Documentation<\/a>, the&nbsp;<code>kubectl<\/code>&nbsp;tool supports creation commands driven by object type. These commands support more object types and are more explicit about their intent, but require users to know the type of objects they intend to create.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Creation of pods<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl run &lt;pod-name&gt; --image=&lt;image-name&gt;\n\ne.g. kubectl run nginx --image=nginx<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/a.png?w=974\" alt=\"\" class=\"wp-image-10489\" width=\"756\" height=\"164\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Creation of config maps (Literals)<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create cm &lt;configmap-name&gt; --from-literal=&lt;key&gt;=&lt;value&gt;\n\ne.g.\nkubectl create cm config.properties --from-literal=name=opstree<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/1.png?w=993\" alt=\"\" class=\"wp-image-10224\" width=\"756\" height=\"318\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Creation of Secrets (Literals)<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create secret generic &lt;secret-name&gt; --from-literal=&lt;key&gt;=&lt;value&gt;\n\ne.g.\nkubectl create secret generic usersecrets --from-literal=name=opstree<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/2.png?w=966\" alt=\"\" class=\"wp-image-10225\" width=\"756\" height=\"323\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Creation of Deployments<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create deployment &lt;deployment-name&gt; --image=&lt;image-name&gt;&nbsp;\nkubectl create deployment &lt;deployment-name&gt; --image=&lt;image-name&gt; --replicas=&lt;replica-count&gt;\n<\/code><\/pre>\n\n\n\n<pre id=\"block-fb4e68a9-44ad-489b-b624-dfe809ef257a\" class=\"wp-block-code\"><code>kubectl create deployment ubuntu --image=ubuntu --replicas=3<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/4.png?w=949\" alt=\"\" class=\"wp-image-10229\" width=\"756\" height=\"132\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Creation of service<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl expose deployment &lt;deployment-name&gt; --type=&lt;svc-type&gt; --port=&lt;port-number&gt; --target-port=&lt;target-port-number&gt; --name=&lt;svc-name&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>e.g.\nkubectl expose deployment nginx --type=ClusterIP --port=8080 --target-port=80 --name=nginx-clusterip-svc\nkubectl expose deployment ubuntu --type=NodePort --port=8080 --target-port=80 --name=nginx-nodeport-svc<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/04\/b.png?w=1024\" alt=\"\" class=\"wp-image-10491\" width=\"756\" height=\"132\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Modifying properties of an existing deployments<\/h6>\n\n\n\n<p>Commands for common update operations include :<\/p>\n\n\n\n<ul><li><code>scale<\/code>: Horizontally scales a controller to add or remove Pods by updating the replica count of the controller.<\/li><li><code>annotate<\/code>: Add or remove an annotation from an object.<\/li><li><code>label<\/code>: Add or remove a label from an object.<\/li><li><code>set<\/code>&nbsp;<code>&lt;field&gt;<\/code>: Set the aspect of an object.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl scale deployment &lt;deployment-name&gt; --replicas=&lt;new-replica-count&gt;\nkubectl set image deployment &lt;deployment-name&gt; &lt;name-of-container&gt;=&lt;new-image-name&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>e.g. \nkubectl scale deployment nginx --replicas=4<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/5.png?w=904\" alt=\"\" class=\"wp-image-10230\" width=\"756\" height=\"221\" \/><\/figure>\n\n\n\n<pre id=\"block-17ed4adf-ec00-4945-aeb4-125569cb6099\" class=\"wp-block-code\"><code>kubectl set image deployment ubuntu ubuntu=ubuntu:18.04<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/6.png?w=993\" alt=\"\" class=\"wp-image-10232\" width=\"756\" height=\"244\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Performing rollout on existing Deployment<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl rollout status deployment &lt;deployment-name&gt;\nkubectl rollout history deployment &lt;deployment-name&gt;\nkubectl rollout undo deployment &lt;deployment-name&gt; --to-revision=&lt;revision-number&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>e.g. \nkubectl rollout status deployment nginx\nkubectl rollout history deployment nginx\nkubectl rollout undo deployment nginx --to-revision=2<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/7-1.png?w=935\" alt=\"\" class=\"wp-image-10234\" width=\"756\" height=\"405\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Create role<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create role &lt;role-name&gt; --verb=&lt;list-of-verbs&gt; --resource=&lt;list-of-resource&gt;\nkubectl create clusterrole &lt;clusterrole-name&gt; --verb=&lt;list-of-verbs&gt; --resource=&lt;list-of-resource&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>e.g.\nkubectl create role dev --verb=get,list,watch --resource=pods,pods\/status<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/9-1.png?w=1024\" alt=\"\" class=\"wp-image-10237\" width=\"756\" height=\"105\" \/><\/figure>\n\n\n\n<pre id=\"block-f485fe81-1371-4a4c-8322-c202a809d468\" class=\"wp-block-code\"><code>kubectl create clusterrole qa --verb=get,list --resource=pods,services<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/10-1.png?w=1017\" alt=\"\" class=\"wp-image-10239\" width=\"756\" height=\"126\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Create role binding<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create rolebinding &lt;rolebinding-name&gt; --role=&lt;role-name&gt; --serviceaccount=&lt;namespace&gt;:&lt;serviceaccount-name&gt;\nkubectl create clusterrolebinding &lt;clusterrolebinding-name&gt; --clusterrole=&lt;role-name&gt; --serviceaccount=&lt;namespace&gt;:&lt;serviceaccount-name&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>e.g.\nkubectl create rolebinding devrole --role=dev --serviceaccount=default:opstree<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/12.png?w=1024\" alt=\"\" class=\"wp-image-10241\" width=\"756\" height=\"129\" \/><\/figure>\n\n\n\n<pre id=\"block-d6d13908-196e-4cf1-ae5d-0457ff42a4da\" class=\"wp-block-code\"><code>kubectl create clusterrolebinding qarb --clusterrole=qa --serviceaccount=default:opstree<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/03\/13.png?w=1024\" alt=\"\" class=\"wp-image-10243\" width=\"756\" height=\"126\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Summary:<\/h2>\n\n\n\n<p class=\"has-text-align-justify\">Hope you got the list of important imperative <code>kubectl<\/code> commands to communicate in HTTP REST API which is the dereliction stoner interface of the Kubernetes platform. The stylish way to learn all these <code>kubectl<\/code> commands is to try using them in the Kubernetes platform and find out the results driven by it. And if you guys have come across any more such imperative commands then do share with us in the comment box. <\/p>\n\n\n\n<p><br><strong style=\"font-weight:bold;\">Blog Pundit:<\/strong> <a href=\"https:\/\/opstree.com\/blog\/\/author\/deepakgupta97\/\"><strong>Deepak Gupta<\/strong><\/a> and <a rel=\"noreferrer noopener\" href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\"><strong>Sandeep Rawat<\/strong><\/a><\/p>\n\n\n\n<p><strong><a href=\"https:\/\/www.opstree.com\/contact-us?utm_source=blog&amp;utm_medium=wordpress+&amp;utm_campaign=A-Savior-Imperative-in-K8s\">Opstree<\/a><\/strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.opstree.com\/contact-us?utm_source=blog&amp;utm_medium=wordpress+&amp;utm_campaign=AWS-Elastic-Network-Interface\" target=\"_blank\"> <\/a>is an End to End DevOps solution provider<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.opstree.com\/contact-us\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT US<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Connect Us <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-social-links aligncenter is-content-justification-right is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\" target=\"_blank\" rel=\"noopener\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>There are two basic ways to deploy to Kubernetes: Imperative acts as a command which is active and immediate, whereas declarative is passive, by writing manifest file and using kubectl apply. Why Imperative? The imperative command is the first mode of managing objects, to use CLI for CUD (Create, Update, Delete) objects on Kubernetes cluster &hellip; <a href=\"https:\/\/opstree.com\/blog\/2022\/04\/19\/a-savior-imperative-in-k8s\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A Savior &#8211; Imperative in K8s&#8221;<\/span><\/a><\/p>\n","protected":false},"author":218528724,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[460,8681966,768739305,421790,32466874,768739309,343865,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-2Ez","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/10203"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/218528724"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=10203"}],"version-history":[{"count":24,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/10203\/revisions"}],"predecessor-version":[{"id":10522,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/10203\/revisions\/10522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=10203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=10203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=10203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}