{"id":12191,"date":"2022-10-18T12:39:38","date_gmt":"2022-10-18T07:09:38","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=12191"},"modified":"2025-11-20T16:48:11","modified_gmt":"2025-11-20T11:18:11","slug":"understanding-ansible-helm-diff-plugin","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2022\/10\/18\/understanding-ansible-helm-diff-plugin\/","title":{"rendered":"Understanding the Ansible Helm Diff Plugin for Kubernetes Deployments"},"content":{"rendered":"\r\n<h2 data-start=\"180\" data-end=\"199\"><strong data-start=\"183\" data-end=\"199\">Introduction<\/strong><\/h2>\r\n<p class=\"has-text-align-justify\">Helm is one of the important tools for managing resources for Kubernetes. When we talk about large-scale helm manageability, there is a requirement for another tool through which we can manage helm deployments. There can be multiple options through which we can manage Helm but Ansible gives more flexibility to manage Helm deployments. Not only flexibility, but Ansible consists of many features and core Kubernetes modules through which we can manage Helm deployments.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">Having a large variety of <a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/collections\/kubernetes\/core\/index.html#modules\" target=\"_blank\" rel=\"noreferrer noopener\">Kubernetes<\/a> core modules, Ansible is not only for Helm deployments but also helps to manage Kubernetes and can be used to manipulate other kinds of commands.<!--more--><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/87334-11wwmybmcyniv96bgiqswlg.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h1 data-start=\"981\" data-end=\"1027\"><strong data-start=\"983\" data-end=\"1027\">What Is the Helm Diff Plugin in Ansible?<\/strong><\/h1>\r\n<p data-start=\"1029\" data-end=\"1189\">The <strong data-start=\"1033\" data-end=\"1053\">Helm diff plugin<\/strong> allows you to preview the changes between an existing Helm release and the modifications in your updated chart. When used with Ansible:<\/p>\r\n<ul data-start=\"1191\" data-end=\"1348\">\r\n<li data-start=\"1191\" data-end=\"1244\">\r\n<p data-start=\"1193\" data-end=\"1244\">It compares manifests before and after deployment<\/p>\r\n<\/li>\r\n<li data-start=\"1245\" data-end=\"1300\">\r\n<p data-start=\"1247\" data-end=\"1300\">It highlights added, removed, or modified resources<\/p>\r\n<\/li>\r\n<li data-start=\"1301\" data-end=\"1348\">\r\n<p data-start=\"1303\" data-end=\"1348\">It enables safer CI\/CD and <a href=\"https:\/\/opstree.com\/blog\/2024\/01\/04\/unraveling-the-differences-between-gitops-and-devops\/\" target=\"_blank\" rel=\"nofollow noopener\">GitOps workflows<\/a><\/p>\r\n<\/li>\r\n<\/ul>\r\n<h2 data-start=\"1463\" data-end=\"1514\"><strong data-start=\"1465\" data-end=\"1514\">Why Use Helm Diff for Kubernetes Deployments?<\/strong><\/h2>\r\n<p data-start=\"1516\" data-end=\"1648\">Anyone working with Kubernetes knows that a small configuration change can cause major issues. Helm diff helps eliminate such risks.<\/p>\r\n<h3 data-start=\"1650\" data-end=\"1670\"><strong data-start=\"1654\" data-end=\"1670\">Key Benefits<\/strong><\/h3>\r\n<ul>\r\n<li data-start=\"1673\" data-end=\"1716\">Detect unwanted or unexpected changes<\/li>\r\n<li data-start=\"1719\" data-end=\"1762\">Validate deployments before execution<\/li>\r\n<li data-start=\"1765\" data-end=\"1798\">Prevent configuration drift<\/li>\r\n<li data-start=\"1801\" data-end=\"1840\">Improve transparency across teams<\/li>\r\n<li data-start=\"1843\" data-end=\"1887\">Enhance <a href=\"https:\/\/opstree.com\/blog\/2023\/11\/01\/the-role-of-an-internal-devsecops-platform-in-the-digital-age\/\" target=\"_blank\" rel=\"nofollow noopener\">DevSecOps<\/a> and GitOps workflows<\/li>\r\n<\/ul>\r\n<p data-start=\"1889\" data-end=\"1979\">Instead of guessing what will change, Helm diff gives you a complete, color-coded view of:<\/p>\r\n<ul>\r\n<li data-start=\"1983\" data-end=\"1998\">New resources<\/li>\r\n<li data-start=\"2001\" data-end=\"2020\">Deleted resources<\/li>\r\n<li data-start=\"2023\" data-end=\"2045\">Modified YAML fields<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">When we talk about dry runs or validations, Ansible helps users to get the dry run &amp; validation but the only issue is that it only prints ok &amp; changed status which is not enough information about the deployments. The important thing about multiple helm deployments at once is that the user requires what are the things that are going to change for specific helm deployments. This will help the user to validate and check whether things are changing accordingly or not.<\/p>\r\n<p><strong>[ Also Read: <a href=\"https:\/\/opstree.com\/blog\/2025\/11\/15\/real-time-data-processing\/\" target=\"_blank\" rel=\"noopener\">Real-Time Data Processing<\/a> ]<\/strong><\/p>\r\n<h2 data-start=\"2115\" data-end=\"2168\"><strong data-start=\"2117\" data-end=\"2168\">How Ansible Enhances Helm Deployment Management<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">To set up this, we need to install the Helm plugin which will work with Ansible dry-run and check options and provide output.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">You can get Ansible role code in <a href=\"https:\/\/github.com\/b44rawat\" target=\"_blank\" rel=\"noreferrer noopener\">my GitHub<\/a> account which will consist of the code and command that this blog includes.<\/p>\r\n\r\n\r\n\r\n<h4>YAML INFORMATION<\/h4>\r\n\r\n\r\n\r\n<p>Below is the <code>main.yaml<\/code> which consists of information like<\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li>Helm diff plugin installation<\/li>\r\n\r\n\r\n\r\n<li>Add Helm chart repository<\/li>\r\n\r\n\r\n\r\n<li>Nginx controller setup<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Save the below block content inside the <code>main.yaml<\/code>file<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\">\r\n<div class=\"wp-block-embed__wrapper\">https:\/\/gist.github.com\/b44rawat\/f78b51130f4660580feab325fbdba7b5<\/div>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>The screenshot mentioned the values of any specific deployment things inside <code>main.yaml<\/code>\u00a0.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/a6d67-1hmveux7bljp3q11kprnftq.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">Once you create the YAML file, you need to use the below command to set up the initial state for the resources. Just make sure this is not a dry-run command. It will install the initial draft which will later use for idempotent and changes.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background has-medium-font-size\">ansible-playbook -i \/location\/to\/inventory main.yaml<\/pre>\r\n\r\n\r\n\r\n<p>OUTPUT:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/83ef8-192xomtazt-bgn9bvt4leeq.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p><strong>NOTE: This is not a dry run or a simple check. This will install resources in your Kubernetes cluster.<\/strong><\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">DRY RUN DEMONSTRATE<\/h4>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">As we created the initial part of the resources using Ansible. Now, we will dry-run the command to check what things are going to change using Ansible. As Ansible supports idempotent, it will print only ok once there are no changes occur.<\/p>\r\n\r\n\r\n\r\n<p>The below command will not show anything that is going to change as we didn\u2019t modify or add anything.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background has-medium-font-size\">ansible-playbook -i \/location\/to\/inventory main.yaml --check --diff<\/pre>\r\n\r\n\r\n\r\n<p>OUTPUT:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/84f95-1togsud6jqt_cctbyvfvvpq.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p><strong>NOTE:<\/strong> <code>kubernetes.core.helm_plugin<\/code> <strong>is not an idempotent as it will show<\/strong> <code>changed<\/code> <strong>status<\/strong><\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">DRY RUN VALIDATION<\/h4>\r\n\r\n\r\n\r\n<p>The Dry-run demonstration didn\u2019t show anything changed as there were no changes done by the user.<\/p>\r\n\r\n\r\n\r\n<p>Let\u2019s modify some changes, you can use the below <code>main.yaml<\/code> file with modified values<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\">\r\n<div class=\"wp-block-embed__wrapper\">https:\/\/gist.github.com\/b44rawat\/54b16b69069f818e720d9872c3b56e79<\/div>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Below are the values added to check for any changes<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/42d18-1t9i8dgpbtun0exkg0plz8w.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Now, once you use <code>ansible-playbook<\/code> command with dry-run options<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background has-medium-font-size\">ansible-playbook -i \/location\/to\/inventory main.yaml --check --diff<\/pre>\r\n\r\n\r\n\r\n<p>Once you run that command, you will get the changes that were added in your values.yaml file.<\/p>\r\n\r\n\r\n\r\n<p>OUTPUT:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/efc9a-1ovhbgybegocbwswkka00-w.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>It will show <code>+<\/code> &amp; <code>-<\/code> at the beginning of the line.<\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li><code>+<\/code>\u00a0: it will add that functionally from the deployment<\/li>\r\n\r\n\r\n\r\n<li><code>-<\/code>\u00a0: It will remove that functionality from the deployment<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/cfbc2-1ltcvhcpfavtbxi6ksosvaa.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">VALIDATION<\/h4>\r\n\r\n\r\n\r\n<p>Once you validate and checked all the required changes, you can use the below command to configure those changes.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-verse has-white-color has-dark-gray-background-color has-text-color has-background has-medium-font-size\">ansible-playbook -i \/location\/to\/inventory main.yaml<\/pre>\r\n\r\n\r\n\r\n<p>Once, you run that command, you can check the below command to ensure whether the values are modified or not.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted has-white-color has-dark-gray-background-color has-text-color has-background has-medium-font-size\">kubectl describe pods nginx-ingress-nginx-ingress-XXXXXXXXXX-XXXXX -n nginx-ingress<\/pre>\r\n\r\n\r\n\r\n<p><strong>OUTPUT:<\/strong><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2022\/10\/3287f-12jhodvw3yef-e_ngm4nhdq.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p><strong>NOTE: For different helm deployments, you need to check different resources. So, the validation method of the changes can be very different.<\/strong><\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">SUMMARY<\/h4>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">The Ansible helm diff will give users a glimpse of changes that will occur when any changes are applied. This will help to check exactly the modification part rather than having all information or no information.<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">One demerit of using helm diff is showing complete manifest information like deployment, service, CRDs, etc. This can be hectic for a user to visualize the changes.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">REFERENCES<\/h4>\r\n\r\n\r\n\r\n<ul>\r\n<li><a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/collections\/kubernetes\/core\/helm_module.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.ansible.com\/ansible\/latest\/collections\/kubernetes\/core\/helm_module.html<\/a><\/li>\r\n\r\n\r\n\r\n<li><a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/collections\/kubernetes\/core\/helm_plugin_module.html\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/docs.ansible.com\/ansible\/latest\/collections\/kubernetes\/core\/helm_plugin_module.html<\/a><\/li>\r\n\r\n\r\n\r\n<li><a href=\"https:\/\/docs.nginx.com\/nginx-ingress-controller\/installation\/installation-with-helm\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/docs.nginx.com\/nginx-ingress-controller\/installation\/installation-with-helm\/<\/a><\/li>\r\n\r\n\r\n\r\n<li><a href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\/tree\/v2.3.0\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/github.com\/nginxinc\/kubernetes-ingress\/tree\/v2.3.0<\/a><\/li>\r\n\r\n\r\n\r\n<li><a href=\"https:\/\/artifacthub.io\/packages\/helm\/nginx\/nginx-ingress\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/artifacthub.io\/packages\/helm\/nginx\/nginx-ingress<\/a><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"has-text-align-center\"><strong>Related Searches \u2013\u00a0<a href=\"https:\/\/opstree.com\/services\/database-and-data-engineering\/\" target=\"_blank\" rel=\"noopener\">Cloud Data Engineering Services<\/a> | <a href=\"https:\/\/opstree.com\/aws-partner\/\" target=\"_blank\" rel=\"noopener\">AWS Partner<\/a>\u00a0|\u00a0<a href=\"https:\/\/opstree.com\/services\/generative-ai-solutions\/\" target=\"_blank\" rel=\"noopener\">Generative AI Solutions<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center 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>\r\n\r\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>\r\n\r\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>\r\n\r\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>\r\n\r\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>\r\n","protected":false},"excerpt":{"rendered":"<p>Introduction Helm is one of the important tools for managing resources for Kubernetes. When we talk about large-scale helm manageability, there is a requirement for another tool through which we can manage helm deployments. There can be multiple options through which we can manage Helm but Ansible gives more flexibility to manage Helm deployments. Not &hellip; <a href=\"https:\/\/opstree.com\/blog\/2022\/10\/18\/understanding-ansible-helm-diff-plugin\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Understanding the Ansible Helm Diff Plugin for Kubernetes Deployments&#8221;<\/span><\/a><\/p>\n","protected":false},"author":192321000,"featured_media":29865,"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":[768739304,768739308,676319247,498519,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2022\/10\/Understanding-the-Ansible-Helm-Diff-Plugin-for-Kubernetes-Deployments.png","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-3aD","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/12191"}],"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\/192321000"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=12191"}],"version-history":[{"count":20,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/12191\/revisions"}],"predecessor-version":[{"id":29937,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/12191\/revisions\/29937"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29865"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=12191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=12191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=12191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}