<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Amaresh Pelleti</title>
    <description>The latest articles on DEV Community by Amaresh Pelleti (@amareswer).</description>
    <link>https://dev.to/amareswer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3978481%2Fbef1aa2c-c07a-414a-bb88-ea788ca39ba2.jpg</url>
      <title>DEV Community: Amaresh Pelleti</title>
      <link>https://dev.to/amareswer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amareswer"/>
    <language>en</language>
    <item>
      <title>Microsoft Defender for Cloud Now Protects AWS RDS</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Fri, 24 Jul 2026 18:43:41 +0000</pubDate>
      <link>https://dev.to/amareswer/microsoft-defender-for-cloud-now-protects-aws-rds-4n0a</link>
      <guid>https://dev.to/amareswer/microsoft-defender-for-cloud-now-protects-aws-rds-4n0a</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/defender-for-cloud-aws-rds/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Microsoft Defender for Open-Source Relational Databases went generally available for AWS RDS on June 1, 2026, and billing started that same day. If you were running it in preview, nothing breaks — you keep the same protection. If you haven't touched it yet, this is the setup: which engines it covers, the exact portal steps, and the IAM permissions it needs on the AWS side.&lt;/p&gt;

&lt;p&gt;This matters specifically if you're running Azure as your primary security posture tool but keeping databases in AWS RDS — which is a more common split than it sounds, especially in shops that grew through acquisition or multi-cloud contracts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed for Defender for Cloud on AWS RDS
&lt;/h2&gt;

&lt;p&gt;Before June 1, this was a preview feature. Now it's GA, which in Microsoft's terms means billing is active and the feature is fully supported rather than best-effort. If you enabled it before the GA date, you keep receiving database threat protection and sensitive data discovery without doing anything — Microsoft carried preview users forward automatically.&lt;/p&gt;

&lt;p&gt;The plan detects and investigates unusual activity in your RDS databases: unexpected query patterns, suspicious login attempts, and access from anomalous locations. It also runs sensitive data discovery against your AWS account and feeds those findings into your broader security posture, a capability shared with Defender Cloud Security Posture Management (CSPM).&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Database Engines Are Covered
&lt;/h2&gt;

&lt;p&gt;Five RDS instance types are supported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aurora PostgreSQL&lt;/li&gt;
&lt;li&gt;Aurora MySQL&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;MariaDB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the full list — SQL Server and other proprietary engines on RDS aren't part of this specific plan. If you're running those, you're looking at a different Defender for Databases offering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites Before You Enable It
&lt;/h2&gt;

&lt;p&gt;Four things need to be true before you start:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You need an active Azure subscription.&lt;/li&gt;
&lt;li&gt;Defender for Cloud must already be enabled on that subscription.&lt;/li&gt;
&lt;li&gt;You need at least one AWS account already connected to Defender for Cloud, with the access and permissions that connection requires.&lt;/li&gt;
&lt;li&gt;Your RDS instances need to be in a supported region — this plan covers all public AWS regions except Tel Aviv, Milan, Jakarta, Spain, and Bahrain.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you haven't connected an AWS account to Defender for Cloud at all yet, do that first — it's a separate onboarding step from what's covered here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step: Enabling Defender for Cloud on AWS RDS
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Sign in to the &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure portal&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Microsoft Defender for Cloud&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Environment settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the relevant AWS account.&lt;/li&gt;
&lt;li&gt;Find the &lt;strong&gt;Databases&lt;/strong&gt; plan and select &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Toggle &lt;strong&gt;open-source relational databases&lt;/strong&gt; to &lt;strong&gt;On&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Configure access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the deployment method section, select &lt;strong&gt;Download&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Follow the instructions to update the CloudFormation stack in your AWS account — this creates or updates the template with the permissions Defender needs.&lt;/li&gt;
&lt;li&gt;Confirm the checkbox that the CloudFormation template was updated in your AWS environment.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review and generate&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review the summary and select &lt;strong&gt;Update&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Turning the plan on also enables sensitive data discovery for RDS resources automatically — it's a shared feature with Defender CSPM, so you don't configure it separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Defender Changes in Your RDS Parameter Groups
&lt;/h2&gt;

&lt;p&gt;This is the part that catches people off guard: enabling the plan doesn't just add a monitoring agent, it modifies parameter and option group settings on your actual RDS instances so Defender can consume audit logs. You don't set these manually — Defender configures them for you — but you should know what's changing before you flip the toggle.&lt;/p&gt;

&lt;p&gt;For PostgreSQL and Aurora PostgreSQL, Defender sets &lt;code&gt;log_connections&lt;/code&gt; and &lt;code&gt;log_disconnections&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt;. For Aurora MySQL cluster parameter groups, it turns on &lt;code&gt;server_audit_logging&lt;/code&gt; and expands &lt;code&gt;server_audit_events&lt;/code&gt; to include &lt;code&gt;CONNECT&lt;/code&gt; and &lt;code&gt;QUERY&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;MySQL and MariaDB use an option group instead, built around &lt;code&gt;MARIADB_AUDIT_PLUGIN&lt;/code&gt;. Defender expands &lt;code&gt;SERVER_AUDIT_EVENTS&lt;/code&gt; to include &lt;code&gt;CONNECT&lt;/code&gt; and adds &lt;code&gt;rdsadmin&lt;/code&gt; to the excluded users list so its own service account doesn't get logged as suspicious activity.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Important:&lt;/strong&gt; &lt;code&gt;MARIADB_AUDIT_PLUGIN&lt;/code&gt; only works on MariaDB 10.2 and later, MySQL 8.0.25 and later, and all MySQL 5.7 versions. If you're running something older, the plan can't fully instrument that instance. You'll likely also need to reboot affected instances for parameter changes to take effect — plan that maintenance window before you enable this in production, not after.&lt;/p&gt;

&lt;p&gt;If you're using the default parameter group, Defender doesn't modify it directly — it creates a new group prefixed &lt;code&gt;defenderfordatabases*&lt;/code&gt; and applies it instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Required AWS Permissions for Defender for Cloud on RDS
&lt;/h2&gt;

&lt;p&gt;The CloudFormation stack creates a role called &lt;code&gt;DefenderForCloud-DataThreatProtectionDB&lt;/code&gt; with a specific, scoped set of RDS permissions — not broad admin access. The role can describe and modify parameter groups, option groups, and DB instances/clusters, tag resources, and download log file portions. It cannot delete databases, modify security groups, or touch IAM itself.&lt;/p&gt;

&lt;p&gt;If your security team reviews IAM changes before they land — and they should — this is a reasonable role to point them at. It's purpose-built for exactly what the plan needs: reading and writing audit-related configuration, not general database administration.&lt;/p&gt;

&lt;p&gt;For the exact permission list and current pricing, check the &lt;a href="https://learn.microsoft.com/en-us/azure/defender-for-cloud/enable-defender-for-databases-aws" rel="noopener noreferrer"&gt;official setup guide&lt;/a&gt; and the &lt;a href="https://azure.microsoft.com/en-us/pricing/details/defender-for-cloud/" rel="noopener noreferrer"&gt;Defender for Cloud pricing page&lt;/a&gt; — Microsoft updates both directly rather than through this kind of write-up, so they're the source of truth for anything billing-related.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I need to do anything if I already had this enabled in preview?&lt;/strong&gt;&lt;br&gt;
A: No. Preview users carried forward automatically on June 1, 2026, and continue receiving protection without re-enabling anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does this cover Amazon Aurora specifically, or just standard RDS?&lt;/strong&gt;&lt;br&gt;
A: Both Aurora PostgreSQL and Aurora MySQL are covered, alongside standard PostgreSQL, MySQL, and MariaDB instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Will enabling this require downtime on my RDS instances?&lt;/strong&gt;&lt;br&gt;
A: Possibly. Parameter group changes to static parameters don't take effect until the instance reboots, so plan a maintenance window rather than enabling this against production without notice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I disable it later without losing other Defender CSPM features?&lt;/strong&gt;&lt;br&gt;
A: Yes. Disabling open-source relational database protection just toggles that specific plan off in Environment settings — it doesn't affect other Defender for Cloud plans on the same AWS account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defender for Open-Source Relational Databases on AWS RDS went GA June 1, 2026; preview users carried forward automatically&lt;/li&gt;
&lt;li&gt;Covers Aurora PostgreSQL, Aurora MySQL, PostgreSQL, MySQL, and MariaDB — not SQL Server or other proprietary engines&lt;/li&gt;
&lt;li&gt;Setup is entirely in the Azure portal, but requires updating a CloudFormation stack in your AWS account&lt;/li&gt;
&lt;li&gt;Enabling it modifies RDS parameter/option groups to enable audit logging — some instances need a reboot&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;DefenderForCloud-DataThreatProtectionDB&lt;/code&gt; role is scoped to audit configuration, not general database admin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check your RDS engine version against the &lt;code&gt;MARIADB_AUDIT_PLUGIN&lt;/code&gt; compatibility requirements before you enable this — an unsupported engine version means partial coverage without an obvious warning.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>aws</category>
      <category>cloudsecurity</category>
      <category>rds</category>
    </item>
    <item>
      <title>GPT-5.6 Explained: Sol, Terra, and Luna Pricing</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Fri, 24 Jul 2026 18:43:00 +0000</pubDate>
      <link>https://dev.to/amareswer/gpt-56-explained-sol-terra-and-luna-pricing-1m6j</link>
      <guid>https://dev.to/amareswer/gpt-56-explained-sol-terra-and-luna-pricing-1m6j</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/gpt-5-6-explained/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;GPT-5.6 launched publicly on July 9, 2026, after a limited preview to trusted partners on June 26. It ships as three separate models instead of one — Sol, Terra, and Luna — priced and positioned differently enough that picking the wrong one for your workload is an easy way to overpay.&lt;/p&gt;

&lt;p&gt;Here's what each tier is actually for, the exact per-token pricing, and how OpenAI's own benchmark claims stack up against Anthropic's Fable 5.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is GPT-5.6
&lt;/h2&gt;

&lt;p&gt;It's OpenAI's next model family after GPT-5.5, split into three tiers instead of a single flagship release. Sol is the top tier — OpenAI calls it its "workhorse" and "best coding model yet," built for complex reasoning, coding, and agentic workflows. Terra sits in the middle. Luna is the fastest and cheapest of the three.&lt;/p&gt;

&lt;p&gt;The staggered rollout — limited preview June 26, public release July 9 — was reportedly tied to U.S. government review requirements before wider availability, rather than a technical readiness issue on OpenAI's end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sol, Terra, and Luna: The Three GPT-5.6 Variants
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sol&lt;/strong&gt; is positioned as the model for serious work: enterprise tasks, coding, scientific research, and security work. OpenAI also calls it its "strongest cybersecurity model yet," citing use in threat modeling, code review, patching, and blue-teaming. Sol is also described as the operating agent behind ChatGPT Work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terra&lt;/strong&gt; is the middle tier — according to OpenAI, it's competitive with the previous GPT-5.5 flagship while costing about half as much. If your workload doesn't need Sol's coding-specific strength, Terra is the tier to default to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Luna&lt;/strong&gt; is the fastest and most budget-friendly of the three, aimed at high-volume, cost-sensitive use rather than complex reasoning tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Sol Compares to Claude Fable 5
&lt;/h2&gt;

&lt;p&gt;OpenAI's specific claim, per Sam Altman: Sol is 54% more token-efficient on coding tasks than its predecessor. Independently, on the Artificial Analysis Coding Agent Index, Sol scored 80 — 2.8 points ahead of Anthropic's Fable 5 — while using less than half the output tokens and costing roughly one-third less for a comparable task.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; Benchmark scores from any single index are a snapshot, not a guarantee of real-world performance on your specific codebase. Treat the Coding Agent Index number as a starting point for evaluation, not a replacement for testing Sol against your own &lt;a href="https://devtoolhub.com/ai-coding-trends-and-tools-2025/" rel="noopener noreferrer"&gt;AI coding workflow&lt;/a&gt; before switching.&lt;/p&gt;

&lt;h2&gt;
  
  
  GPT-5.6 Pricing
&lt;/h2&gt;

&lt;p&gt;Pricing is per million tokens, and the spread between tiers is significant:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sol&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terra&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Luna&lt;/td&gt;
&lt;td&gt;$1.00&lt;/td&gt;
&lt;td&gt;$6.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sol costs five times more per input token than Luna, and the output cost gap is even wider. If you're running high-volume, low-complexity tasks — classification, simple extraction, short-form generation — Luna's pricing makes it the obvious default rather than reaching for Sol by habit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed From GPT-5.5
&lt;/h2&gt;

&lt;p&gt;The headline change isn't a single smarter model — it's three models, tiered explicitly by cost and capability instead of OpenAI picking one balance point for everyone. Terra matching GPT-5.5's capability at roughly half the price is the more interesting shift for most users than Sol's coding gains, since Terra is likely the tier most general ChatGPT and API usage defaults to.&lt;/p&gt;

&lt;p&gt;For teams already comparing &lt;a href="https://devtoolhub.com/ai-tool-comparison-chatgpt-perplexity-grok-gemini/" rel="noopener noreferrer"&gt;AI tool options&lt;/a&gt;, the three-tier pricing structure is closer to how &lt;a href="https://devtoolhub.com/best-open-source-llms-2025/" rel="noopener noreferrer"&gt;open-source LLMs&lt;/a&gt; are typically offered — pick your cost/capability point explicitly — than OpenAI's previous single-flagship approach.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Access to GPT-5.6
&lt;/h2&gt;

&lt;p&gt;GPT-5.6 is available through ChatGPT, Codex, and the OpenAI API as of the July 9 public release. Sol specifically powers ChatGPT Work as its operating agent, so if your organization is on that tier, you're likely already interacting with Sol rather than Terra or Luna by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Which GPT-5.6 model should I use for coding?&lt;/strong&gt;&lt;br&gt;
A: Sol. OpenAI built it specifically for complex reasoning and agentic coding work, and it's the tier benchmarked against Anthropic's Fable 5 for coding-agent performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is Terra worth using over Sol for general tasks?&lt;/strong&gt;&lt;br&gt;
A: For most non-coding use, yes — Terra is reported to match GPT-5.5's capability at about half the cost, which makes it the more efficient default for general-purpose work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Why was GPT-5.6 released in two stages?&lt;/strong&gt;&lt;br&gt;
A: A limited preview went to trusted partners on June 26, with the public release following on July 9 — reportedly due to government review requirements rather than a technical delay.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does GPT-5.6 replace GPT-5.5 in ChatGPT immediately?&lt;/strong&gt;&lt;br&gt;
A: It's available now through ChatGPT, Codex, and the API. OpenAI hasn't published a forced sunset date for GPT-5.5 access in the sources checked for this article.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPT-5.6 launched publicly July 9, 2026, after a June 26 limited preview&lt;/li&gt;
&lt;li&gt;Three tiers: Sol (flagship, coding/reasoning), Terra (balanced, ~half GPT-5.5's cost), Luna (fastest, cheapest)&lt;/li&gt;
&lt;li&gt;Sol scored 80 on the Artificial Analysis Coding Agent Index, 2.8 points ahead of Anthropic's Fable 5&lt;/li&gt;
&lt;li&gt;Pricing per million tokens: Sol $5/$30, Terra $2.50/$15, Luna $1/$6&lt;/li&gt;
&lt;li&gt;Available now via ChatGPT, Codex, and the OpenAI API; Sol powers ChatGPT Work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Match the tier to the task before you default to Sol for everything — Terra's price-to-capability ratio is the bigger practical shift in this release for most non-coding workloads.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>gpt56</category>
      <category>aimodels</category>
      <category>llm</category>
    </item>
    <item>
      <title>Terraform Helm Provider Migration: v3 Breaking Changes</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Fri, 24 Jul 2026 18:42:17 +0000</pubDate>
      <link>https://dev.to/amareswer/terraform-helm-provider-migration-v3-breaking-changes-3aeo</link>
      <guid>https://dev.to/amareswer/terraform-helm-provider-migration-v3-breaking-changes-3aeo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/terraform-helm-provider-migration/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If your &lt;code&gt;terraform plan&lt;/code&gt; started throwing schema errors after a routine provider update, you're probably looking at the Terraform Helm provider migration from v2 to v3. HashiCorp rewrote the provider on top of the Terraform Plugin Framework in v3.0.0, and it changed how you write &lt;code&gt;set&lt;/code&gt;, &lt;code&gt;kubernetes&lt;/code&gt;, and &lt;code&gt;registry&lt;/code&gt; configuration — not just internally, but in your actual &lt;code&gt;.tf&lt;/code&gt; files.&lt;/p&gt;

&lt;p&gt;The latest release is v3.2.0, published June 4, 2026. Here's exactly what changed, the before/after syntax, and the state upgrade errors people are hitting in the GitHub issue tracker.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Terraform Helm Provider Migration Changed
&lt;/h2&gt;

&lt;p&gt;Three things break when you jump from v2.x to v3.x:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;set&lt;/code&gt;, &lt;code&gt;set_list&lt;/code&gt;, and &lt;code&gt;set_sensitive&lt;/code&gt; inside &lt;code&gt;helm_release&lt;/code&gt; and &lt;code&gt;helm_template&lt;/code&gt; go from repeatable blocks to a single list attribute of nested objects.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;kubernetes&lt;/code&gt; block on the provider becomes a single object attribute (&lt;code&gt;kubernetes = { ... }&lt;/code&gt; instead of &lt;code&gt;kubernetes { ... }&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;registry&lt;/code&gt; block — which used to support multiple repeated blocks — becomes a &lt;code&gt;registries&lt;/code&gt; list attribute.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these are cosmetic. Terraform's plugin framework handles blocks and list-of-object attributes differently in state, which is why a straight version bump without touching your HCL will fail to plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why HashiCorp Migrated to the Plugin Framework
&lt;/h2&gt;

&lt;p&gt;The old provider ran on Terraform Plugin SDKv2, which HashiCorp has been retiring across its provider ecosystem in favor of the newer Plugin Framework. The framework uses Terraform Plugin Protocol Version 6, compatible with Terraform 1.0 and above, and gives providers more precise control over schema validation and state handling than SDKv2 allowed.&lt;/p&gt;

&lt;p&gt;For the Helm provider specifically, that meant converting the repeatable-block pattern (common in SDKv2-era providers) into list attributes, which the framework models more cleanly. It's the same category of change other HashiCorp providers have gone through — annoying for a version bump, but not unique to Helm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating set, set_list, and set_sensitive Blocks
&lt;/h2&gt;

&lt;p&gt;This is the change you'll hit in almost every &lt;code&gt;helm_release&lt;/code&gt; resource. Before v3, you wrote repeated &lt;code&gt;set&lt;/code&gt; blocks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"helm_release"&lt;/span&gt; &lt;span class="s2"&gt;"example"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;name&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-release"&lt;/span&gt;
  &lt;span class="nx"&gt;chart&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-chart"&lt;/span&gt;

  &lt;span class="nx"&gt;set&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;name&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"service.type"&lt;/span&gt;
    &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ClusterIP"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In v3, &lt;code&gt;set&lt;/code&gt; is a list of objects instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;resource&lt;/span&gt; &lt;span class="s2"&gt;"helm_release"&lt;/span&gt; &lt;span class="s2"&gt;"example"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;name&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-release"&lt;/span&gt;
  &lt;span class="nx"&gt;chart&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"my-chart"&lt;/span&gt;

  &lt;span class="nx"&gt;set&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;name&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"service.type"&lt;/span&gt;
      &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"ClusterIP"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same conversion applies to &lt;code&gt;set_list&lt;/code&gt; and &lt;code&gt;set_sensitive&lt;/code&gt; — both change from repeated blocks to list-of-object attributes, in both &lt;code&gt;helm_release&lt;/code&gt; resources and the &lt;code&gt;helm_template&lt;/code&gt; data source. If you have five &lt;code&gt;set&lt;/code&gt; blocks in a release today, they collapse into one &lt;code&gt;set = [...]&lt;/code&gt; attribute with five entries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating the kubernetes and registry Blocks
&lt;/h2&gt;

&lt;p&gt;The provider-level configuration changes too. &lt;code&gt;kubernetes&lt;/code&gt; goes from a block to a single object:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Before — v2.x&lt;/span&gt;
&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"helm"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;kubernetes&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;config_path&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"~/.kube/config"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="c1"&gt;# After — v3.x&lt;/span&gt;
&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"helm"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;kubernetes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;config_path&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"~/.kube/config"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;registry&lt;/code&gt; is the trickier one, because it wasn't just a block-to-object change — it also went from singular to plural, since the provider supports multiple registries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Before — v2.x&lt;/span&gt;
&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"helm"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;registry&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;url&lt;/span&gt;      &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"oci://localhost:5000"&lt;/span&gt;
    &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"username"&lt;/span&gt;
    &lt;span class="nx"&gt;password&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"password"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="c1"&gt;# After — v3.x&lt;/span&gt;
&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"helm"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;registries&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;url&lt;/span&gt;      &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"oci://localhost:5000"&lt;/span&gt;
      &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"username"&lt;/span&gt;
      &lt;span class="nx"&gt;password&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"password"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you had multiple &lt;code&gt;registry&lt;/code&gt; blocks before, they all move into the same &lt;code&gt;registries&lt;/code&gt; list, one object per entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  State Upgrade Errors During the Terraform Helm Provider Migration
&lt;/h2&gt;

&lt;p&gt;Two issues show up repeatedly in the &lt;a href="https://github.com/hashicorp/terraform-provider-helm/issues/1722" rel="noopener noreferrer"&gt;terraform-provider-helm GitHub tracker&lt;/a&gt;. The first: existing state written under v2.x sometimes isn't read correctly after upgrading to v3, because the state upgrader doesn't always cleanly translate the old block-based schema into the new object/list schema. The second, tracked separately, is the provider failing to upgrade resource state to v3 at all in certain configurations.&lt;/p&gt;

&lt;p&gt;HashiCorp shipped a hotfix in v3.0.1 (the same day as v3.0.0) specifically for a state upgrader bug affecting the &lt;code&gt;values&lt;/code&gt; attribute type — so if you hit an error mentioning &lt;code&gt;values&lt;/code&gt;, make sure you're on at least v3.0.1, not v3.0.0.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; Run &lt;code&gt;terraform plan&lt;/code&gt; in a non-production workspace first after the upgrade. If the plan shows unexpected diffs on resources you didn't touch, that's usually the state upgrader mismatch, not a real infrastructure drift. Don't apply until the plan is clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should You Run the Terraform Helm Provider Migration Now
&lt;/h2&gt;

&lt;p&gt;If you're still pinned to a 2.x version, there's no forced deadline, but 2.x isn't getting new features — the changelog shows all active development going into 3.x since mid-2025. The safer path is a deliberate migration rather than an accidental one: pin your provider version explicitly, do the HCL rewrite in a branch, and test the plan against a non-production state before rolling it into your main branch.&lt;/p&gt;

&lt;p&gt;If you've already been through a &lt;a href="https://devtoolhub.com/helm-4-migration-guide/" rel="noopener noreferrer"&gt;Helm 4 migration&lt;/a&gt; on the chart side, this is a smaller lift by comparison — it's syntax, not runtime behavior. The version history since 3.0.0 has been mostly bug fixes and small additive features, not further breaking changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;v3.0.0&lt;/strong&gt; (June 18, 2025) — the breaking migration itself&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v3.0.1&lt;/strong&gt; (June 18, 2025) — state upgrader hotfix for &lt;code&gt;values&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v3.0.2&lt;/strong&gt; (June 23, 2025) — fixed plan errors on version specs, postrender execution, sensitive value redaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v3.1.0&lt;/strong&gt; (Oct 27, 2025) — added &lt;code&gt;qps&lt;/code&gt;, &lt;code&gt;resources&lt;/code&gt;, &lt;code&gt;set_wo&lt;/code&gt;, &lt;code&gt;take_ownership&lt;/code&gt;, configurable operation timeouts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v3.1.1&lt;/strong&gt; (Nov 17, 2025) — fixed an "inconsistent result after apply" error&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v3.1.2&lt;/strong&gt; (May 21, 2026) — Windows OCI chart fix, dependency updates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v3.2.0&lt;/strong&gt; (June 4, 2026) — added a &lt;code&gt;linux/s390x&lt;/code&gt; build target for IBM Z platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing after 3.0.x changes your HCL syntax again — once you've done the initial migration, later upgrades are safe minor bumps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I have to migrate to Terraform Helm provider v3?&lt;/strong&gt;&lt;br&gt;
A: Not immediately, but v2.x isn't receiving new features. If you're managing &lt;a href="https://devtoolhub.com/mastering-kubernetes-deployments-with-helm-a-beginners-guide/" rel="noopener noreferrer"&gt;Helm deployments&lt;/a&gt; long-term, plan the migration on your own schedule rather than waiting for a forced upgrade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: My set blocks are gone after upgrading — did I lose configuration?&lt;/strong&gt;&lt;br&gt;
A: No, but you need to rewrite them as a &lt;code&gt;set = [...]&lt;/code&gt; list attribute. The provider won't auto-convert &lt;code&gt;set { }&lt;/code&gt; blocks in your &lt;code&gt;.tf&lt;/code&gt; files — that part is manual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What Terraform version does v3 require?&lt;/strong&gt;&lt;br&gt;
A: 1.0 and above, since it runs on Terraform Plugin Protocol Version 6.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: I'm getting a "values" attribute error after upgrading — what's wrong?&lt;/strong&gt;&lt;br&gt;
A: You're likely on v3.0.0 exactly. Upgrade to at least v3.0.1, which shipped a same-day hotfix for this state upgrader issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform Helm provider v3.0.0 (June 18, 2025) rewrote the provider on the Plugin Framework, requiring Terraform 1.0+&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;set&lt;/code&gt;, &lt;code&gt;set_list&lt;/code&gt;, and &lt;code&gt;set_sensitive&lt;/code&gt; change from repeated blocks to a single list-of-objects attribute&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;kubernetes&lt;/code&gt; becomes an object attribute; &lt;code&gt;registry&lt;/code&gt; becomes a plural &lt;code&gt;registries&lt;/code&gt; list&lt;/li&gt;
&lt;li&gt;State upgrade errors are common — check GitHub issues #1722 and #1698 if resources don't read correctly post-upgrade&lt;/li&gt;
&lt;li&gt;Latest version is v3.2.0 (June 4, 2026); no further HCL syntax changes since the 3.0.0 migration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pin your provider version explicitly before you touch anything, then do the HCL rewrite in a branch you can &lt;code&gt;terraform plan&lt;/code&gt; against before merging.&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>helm</category>
      <category>iac</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Anthropic Academy: Free Claude Courses and Certificates</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Fri, 24 Jul 2026 18:41:33 +0000</pubDate>
      <link>https://dev.to/amareswer/anthropic-academy-free-claude-courses-and-certificates-22ki</link>
      <guid>https://dev.to/amareswer/anthropic-academy-free-claude-courses-and-certificates-22ki</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/anthropic-academy-free-claude-courses/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anthropic Academy launched in March 2026 with 13 free, self-paced courses split across three tracks — no-code AI Fluency, developer-focused API and Claude Code training, and cloud platform integration for Bedrock and Vertex AI. The catalog keeps growing; Claude Code in Action and Introduction to Cowork are among the newest additions on the platform today.&lt;/p&gt;

&lt;p&gt;Every course is free, requires only an email to sign up, and issues a certificate on completion. Here's what's actually in each track and where to start depending on whether you write code or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Anthropic Academy
&lt;/h2&gt;

&lt;p&gt;It's Anthropic's own training platform, hosted on Skilljar at anthropic.skilljar.com, separate from Anthropic's product documentation. Where the docs tell you how a feature works, the Academy walks you through using it — structured lessons, hands-on exercises, and a graded assessment at the end of each course.&lt;/p&gt;

&lt;p&gt;The Academy is organized into three tracks, and Anthropic is explicit about who each one is for. You don't need programming experience for the first track. You do for the second and third.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Learning Tracks Inside Anthropic Academy
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;For Everyone (6 courses, no coding required):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude 101&lt;/li&gt;
&lt;li&gt;AI Fluency: Framework &amp;amp; Foundations&lt;/li&gt;
&lt;li&gt;AI Fluency for Students&lt;/li&gt;
&lt;li&gt;AI Fluency for Educators&lt;/li&gt;
&lt;li&gt;Teaching AI Fluency&lt;/li&gt;
&lt;li&gt;AI Fluency for Nonprofits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Developers: API &amp;amp; Integration (4 courses, Python or CLI experience needed):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building with the Claude API&lt;/li&gt;
&lt;li&gt;Claude Code in Action&lt;/li&gt;
&lt;li&gt;Introduction to Agent Skills&lt;/li&gt;
&lt;li&gt;Introduction to MCP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cloud Platform Integration (2 courses):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude with Amazon Bedrock&lt;/li&gt;
&lt;li&gt;Claude with Google Vertex AI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's 12 of the original 13 — the count has moved since launch as Anthropic adds new material.&lt;/p&gt;

&lt;h2&gt;
  
  
  For Everyone: No-Code AI Fluency Courses
&lt;/h2&gt;

&lt;p&gt;This track is aimed at managers, students, educators, and anyone who wants to understand what Claude actually does without writing a line of code. Claude 101 is the starting point Anthropic recommends for this group — it covers the fundamentals of prompting and using Claude responsibly, not the API.&lt;/p&gt;

&lt;p&gt;The AI Fluency courses go deeper into a specific framework (Anthropic calls it the "4D framework") for collaborating with AI tools effectively and ethically, rather than treating them as a black box you type questions into. If you're evaluating &lt;a href="https://devtoolhub.com/free-ai-courses-online-2025/" rel="noopener noreferrer"&gt;other free AI courses&lt;/a&gt; alongside this one, the AI Fluency track is closer to a workplace-skills course than a technical tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  For Developers: API, MCP, and Claude Code Courses
&lt;/h2&gt;

&lt;p&gt;This is the track worth your time if you're actually building something. Building with the Claude API covers integration basics. Claude Code in Action goes further — it's built around real usage patterns rather than just &lt;a href="https://devtoolhub.com/claude-code-quick-start-guide/" rel="noopener noreferrer"&gt;getting started with Claude Code&lt;/a&gt; for the first time.&lt;/p&gt;

&lt;p&gt;Introduction to MCP and Introduction to Agent Skills round out the developer track. If you've been reading about &lt;a href="https://devtoolhub.com/mcp-model-context-protocol-guide/" rel="noopener noreferrer"&gt;how MCP works&lt;/a&gt; but haven't set one up yourself, this course is a more structured path than piecing it together from docs. Same goes for &lt;a href="https://devtoolhub.com/claude-ai-agent-skills/" rel="noopener noreferrer"&gt;Claude's Agent Skills&lt;/a&gt; — the course walks through building one rather than just explaining the concept.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; Anthropic scopes this track to people with Python or CLI experience. If you're coming from the no-code track, Claude 101 and Building with the Claude API is a reasonable bridge before jumping into Claude Code in Action.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Platform Courses: Bedrock and Vertex AI
&lt;/h2&gt;

&lt;p&gt;These two courses exist because a meaningful share of Claude usage happens through a cloud provider's managed API rather than Anthropic's own API directly. If your organization standardizes on AWS or Google Cloud for procurement and compliance reasons, these courses cover the platform-specific setup and quirks that the general API course doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anthropic Academy vs. the Coursera AI Fluency Courses
&lt;/h2&gt;

&lt;p&gt;Separately from the Skilljar-hosted Academy, Anthropic launched five AI Fluency courses on Coursera on May 28, 2026, co-taught with Professors Rick Dakan and Joseph Feller, who developed the AI Fluency framework the courses are built on. These are listed as Community Impact courses on Coursera — free, and aimed at the same non-technical audience as the Academy's "For Everyone" track, but distributed through Coursera's platform instead of Anthropic's own.&lt;/p&gt;

&lt;p&gt;The five Coursera courses are AI Fluency: Framework and Foundations, AI Fluency for Educators, Teaching AI Fluency, AI Fluency for Students, and AI Fluency for Nonprofits — the same course names that also appear in the Academy's no-code track. If you already have a Coursera account and prefer that platform's interface, the content overlaps enough that it doesn't matter which one you pick.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Get Started with Anthropic Academy
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://www.anthropic.com/learn" rel="noopener noreferrer"&gt;anthropic.com/learn&lt;/a&gt; and click through to the course catalog, or go directly to anthropic.skilljar.com. Sign up with an email — no payment method required at any point.&lt;/p&gt;

&lt;p&gt;If you're non-technical, start with Claude 101. If you're a developer who already uses Claude day to day, skip straight to Claude Code in Action or Introduction to MCP rather than starting from the beginner track — the courses aren't sequenced to require completing earlier ones first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Is Anthropic Academy actually free, or is there a paid tier?&lt;/strong&gt;&lt;br&gt;
A: Every course is free. You need an email to register, but no payment method is required anywhere in the signup flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I need a Claude subscription to take these courses?&lt;/strong&gt;&lt;br&gt;
A: For the no-code AI Fluency track, no — those courses focus on concepts and prompting practice. The developer track assumes you can access the Claude API, which has its own separate pricing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What's the difference between Anthropic Academy and the Coursera courses?&lt;/strong&gt;&lt;br&gt;
A: They're two different distribution channels for overlapping content. The Academy (on Skilljar) has the full 13+ course catalog including developer and cloud tracks. The five Coursera courses are specifically the AI Fluency track, co-taught with academic partners.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I get a real certificate?&lt;/strong&gt;&lt;br&gt;
A: Yes — each course issues a certificate on completion of the final assessment, which Anthropic and third-party writeups describe as suitable for adding to a LinkedIn profile or resume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic Academy launched March 2026 with 13 free courses across three tracks: no-code, developer, and cloud platform&lt;/li&gt;
&lt;li&gt;The no-code track (Claude 101, AI Fluency courses) requires no programming experience&lt;/li&gt;
&lt;li&gt;The developer track covers the Claude API, Claude Code, MCP, and Agent Skills — Python/CLI experience expected&lt;/li&gt;
&lt;li&gt;A separate set of five AI Fluency courses launched on Coursera on May 28, 2026, co-taught with academic partners&lt;/li&gt;
&lt;li&gt;Every course is free with a certificate on completion; sign up at anthropic.com/learn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're a developer, skip the intro track and start with Claude Code in Action or Introduction to MCP — you don't need to complete earlier courses first.&lt;/p&gt;

</description>
      <category>anthropic</category>
      <category>claude</category>
      <category>aicourses</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Kubernetes 1.36: What's New and What Breaks</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Fri, 24 Jul 2026 18:39:13 +0000</pubDate>
      <link>https://dev.to/amareswer/kubernetes-136-whats-new-and-what-breaks-1i11</link>
      <guid>https://dev.to/amareswer/kubernetes-136-whats-new-and-what-breaks-1i11</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/kubernetes-1-36-new-features/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kubernetes 1.36 shipped on April 22, 2026, and it's a security-and-hardware release more than a feature release. Eighteen enhancements graduated to stable, 25 moved to beta, and the two changes most teams will actually notice are User Namespaces going GA and Mutating Admission Policies replacing a chunk of what you used to need a webhook for.&lt;/p&gt;

&lt;p&gt;Amazon EKS and EKS Distro added support for 1.36 on June 2, 2026, so if you're on AWS you can upgrade now. Here's what changed, what's deprecated, and what to check before you touch a production cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's New in Kubernetes 1.36
&lt;/h2&gt;

&lt;p&gt;The release is codenamed ハル (Haru) — spring, clear skies. Of the 18 features that reached stable, most fall into two buckets: security isolation and Dynamic Resource Allocation (DRA) for GPU and specialized hardware. Here's the short list of what matters operationally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security and isolation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Namespaces for pods — stable&lt;/li&gt;
&lt;li&gt;Fine-Grained Kubelet API Authorization — stable&lt;/li&gt;
&lt;li&gt;API for External Signing of Service Account Tokens — stable&lt;/li&gt;
&lt;li&gt;Mutating Admission Policies — stable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Storage and performance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speed up Recursive SELinux Label Change — stable&lt;/li&gt;
&lt;li&gt;VolumeGroupSnapshot — stable&lt;/li&gt;
&lt;li&gt;OCI VolumeSource — stable&lt;/li&gt;
&lt;li&gt;PSI (Pressure Stall Information) support via cgroupv2 — stable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hardware and DRA:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Device Taints &amp;amp; Tolerations for DRA — stable&lt;/li&gt;
&lt;li&gt;DRAAdminAccess for ResourceClaims — stable&lt;/li&gt;
&lt;li&gt;Partitionable Devices — stable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not the full list of 18, but it's the set with day-to-day impact. The rest are DRA refinements most teams won't touch unless they're running GPU workloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  User Namespaces and Fine-Grained Kubelet Authorization Reach Stable
&lt;/h2&gt;

&lt;p&gt;User Namespaces is the headline change. It maps the root user inside a container to an unprivileged user on the host node. So a process that thinks it's root inside the container has no elevated privileges outside it. This has been in alpha or beta since 1.25 — it's now safe to turn on by default for new workloads without waiting on more bug fixes.&lt;/p&gt;

&lt;p&gt;Fine-Grained Kubelet API Authorization is the other stable feature worth checking. Before this, RBAC rules for the kubelet API were coarse — you either had access to the node's endpoints or you didn't. Now you can scope permissions down to specific paths like &lt;code&gt;nodes/configz&lt;/code&gt;, &lt;code&gt;nodes/healthz&lt;/code&gt;, and &lt;code&gt;nodes/pods&lt;/code&gt; individually. If you've been granting broad node-level access to monitoring or debugging tools because there wasn't a narrower option, this changes that. You can &lt;a href="https://devtoolhub.com/kubernetes-rbac-tutorial/" rel="noopener noreferrer"&gt;tighten your RBAC configuration&lt;/a&gt; around exactly what each tool needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mutating Admission Policies Replace Simple Webhooks
&lt;/h2&gt;

&lt;p&gt;This is the change most platform teams will actually use. Mutating Admission Policies let you define mutations — like injecting a sidecar, adding a label, or setting a default resource limit — directly as a Kubernetes object using CEL (Common Expression Language), instead of standing up and maintaining a mutating webhook.&lt;/p&gt;

&lt;p&gt;The practical upside: no more running a webhook deployment, managing its TLS certs, and worrying about what happens to admission if that pod goes down. The policy lives in the API server's own admission chain.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; This doesn't replace every use case for webhooks. Complex mutation logic that needs external API calls or stateful lookups still needs a webhook. Mutating Admission Policies work well for anything you can express as a CEL expression against the object being admitted — sidecar injection, label defaulting, resource limit defaults.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Moving to Beta in Kubernetes 1.36
&lt;/h2&gt;

&lt;p&gt;The 25 beta graduations are a mixed bag, but a few change daily workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In-Place Pod-Level Resources Vertical Scaling&lt;/strong&gt; — beta. You can now adjust a pod's CPU and memory without restarting it, extended from container-level scaling that landed earlier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;kuberc&lt;/strong&gt; — beta, enabled by default. This splits kubectl user preferences (aliases, defaults) from cluster connection config in your kubeconfig. If you've ever had a teammate's personal kubectl aliases accidentally end up in a shared kubeconfig file, this is the fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constrained Impersonation&lt;/strong&gt; — beta. Impersonation now requires both &lt;code&gt;impersonate&lt;/code&gt; and a new &lt;code&gt;impersonate-on&lt;/code&gt; permission, so a user with impersonate rights can't impersonate into arbitrary identities without an explicit grant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node Declared Features&lt;/strong&gt; — beta. Nodes now report which feature-gated capabilities they actually support, so the scheduler can filter on it instead of guessing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these are breaking on their own, but kuberc being on by default means your kubeconfig files may start behaving differently the moment you upgrade kubectl to a 1.36-compatible version.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Kubernetes 1.36 Deprecates and Removes
&lt;/h2&gt;

&lt;p&gt;Two changes here are worth flagging before you upgrade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;.spec.externalIPs&lt;/code&gt; on Services is deprecated.&lt;/strong&gt; It's being phased out over the next several releases, not removed outright in 1.36. The reason is CVE-2020-8554, a known man-in-the-middle risk where arbitrary external IPs can be claimed on a Service. If you're using externalIPs anywhere, &lt;a href="https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release/" rel="noopener noreferrer"&gt;the release notes&lt;/a&gt; point you toward LoadBalancer services, NodePort, or the Gateway API as replacements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The &lt;code&gt;gitRepo&lt;/code&gt; volume driver is being removed.&lt;/strong&gt; It's been deprecated since 1.11, so this shouldn't surprise anyone still paying attention, but it will break any manifest that still references it.&lt;/p&gt;

&lt;p&gt;Neither of these is new to 1.36 specifically — they're continuations of deprecation timelines that started earlier. What is specific to this window: Ingress NGINX officially retired on March 24, 2026, with no further releases or security patches. If you haven't already moved off it, &lt;a href="https://devtoolhub.com/ingress-nginx-retirement-migration-guide/" rel="noopener noreferrer"&gt;the migration path to Gateway API&lt;/a&gt; is worth doing before you touch your 1.36 upgrade, not during it. Combining two migrations at once makes rollback harder if something goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upgrading to Kubernetes 1.36
&lt;/h2&gt;

&lt;p&gt;If you're running self-managed clusters, this is a standard kubeadm upgrade — check your CNI and CSI driver compatibility matrices first, since 1.36 introduced schema changes for &lt;code&gt;resources&lt;/code&gt; and DRA-related CRDs that older third-party controllers may not handle.&lt;/p&gt;

&lt;p&gt;If you're on EKS, Amazon added 1.36 support on June 2, 2026, across all AWS regions including GovCloud. You can upgrade through the EKS console, &lt;code&gt;eksctl&lt;/code&gt;, or your existing IaC pipeline. AWS specifically recommends running EKS cluster insights before you kick off the upgrade — it flags compatibility issues with deprecated APIs or add-ons ahead of time instead of surfacing them mid-upgrade.&lt;/p&gt;

&lt;p&gt;Before you upgrade anything with active traffic, confirm your &lt;a href="https://devtoolhub.com/kubernetes-resource-requests-and-limits-full-guide/" rel="noopener noreferrer"&gt;resource requests and limits&lt;/a&gt; are still accurate. Pod-level vertical scaling moving to beta means some autoscalers may start behaving differently once they detect the new API is available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Is Kubernetes 1.36 a breaking release?&lt;/strong&gt;&lt;br&gt;
A: Not dramatically. The deprecations (&lt;code&gt;externalIPs&lt;/code&gt;, &lt;code&gt;gitRepo&lt;/code&gt; volumes) are phased, not immediate removals. The bigger operational risk is combining this upgrade with an overdue Ingress NGINX migration — do those separately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I need to enable User Namespaces manually?&lt;/strong&gt;&lt;br&gt;
A: Yes. It's stable, meaning it's supported and safe to use, but it's not on by default for existing workloads. You opt in per-pod via the pod spec.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: When does EKS support Kubernetes 1.36?&lt;/strong&gt;&lt;br&gt;
A: Since June 2, 2026, across all AWS regions where EKS is available, including GovCloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What replaces Ingress NGINX now that it's retired?&lt;/strong&gt;&lt;br&gt;
A: The Kubernetes project recommends the Gateway API as the long-term replacement, with Envoy Gateway, Istio Gateway, Traefik, and Kong Gateway as common implementations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes 1.36 released April 22, 2026, with 18 features graduating to stable and 25 to beta&lt;/li&gt;
&lt;li&gt;User Namespaces and Mutating Admission Policies are the two changes most teams will use immediately&lt;/li&gt;
&lt;li&gt;Fine-Grained Kubelet API Authorization lets you scope node access down to specific endpoints&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.spec.externalIPs&lt;/code&gt; is being phased out over several releases due to CVE-2020-8554&lt;/li&gt;
&lt;li&gt;EKS supports 1.36 as of June 2, 2026 — upgrade via console, eksctl, or IaC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run &lt;code&gt;kubectl version&lt;/code&gt; and check it against your CNI/CSI vendor's 1.36 compatibility notes before you schedule the upgrade — that's the step most teams skip and regret.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>k8s136</category>
      <category>devops</category>
      <category>clusterupgrade</category>
    </item>
    <item>
      <title>GitHub Copilot AI Credits: How Usage-Based Billing Works</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Wed, 22 Jul 2026 10:11:13 +0000</pubDate>
      <link>https://dev.to/amareswer/github-copilot-ai-credits-how-usage-based-billing-works-4h9i</link>
      <guid>https://dev.to/amareswer/github-copilot-ai-credits-how-usage-based-billing-works-4h9i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/github-copilot-ai-credits/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your Copilot bill works differently now. On June 1, 2026, GitHub moved every Copilot plan from premium requests to usage-based billing, and GitHub Copilot AI Credits became the meter that decides how much model usage you get each month. The subscription prices didn't change — what you get for them did.&lt;/p&gt;

&lt;p&gt;If you use Copilot Chat, the CLI, or the coding agent daily, this affects you directly. Here's what changed, what each plan now includes, and how to keep the bill predictable.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-13-github-copilot-ai-credits-featured.png | alt: "github copilot ai credits usage-based billing meter across Copilot plans"]&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Credits Replace Premium Requests
&lt;/h2&gt;

&lt;p&gt;The old model gave you a monthly pool of Premium Request Units, where each interaction with a premium model cost a fixed number of requests. That's gone. Under &lt;a href="https://github.blog/news-insights/company-news/github-copilot-is-moving-to-usage-based-billing/" rel="noopener noreferrer"&gt;usage-based billing&lt;/a&gt;, Copilot now bills by actual token consumption — input, output, and cached tokens — at the published API rate for each model.&lt;/p&gt;

&lt;p&gt;One AI credit equals $0.01 USD. So a $10 Copilot Pro plan carries 1,000 base credits of model usage.&lt;/p&gt;

&lt;p&gt;Two things disappeared along with premium requests. First, the fallback experience: Copilot no longer drops you to a lower-cost model when you run out of quota. When your credits are gone, you either buy more, upgrade, or wait for the monthly reset. Second, the fixed per-request cost — a short chat message and a long agentic session used to cost the same premium request. Now they don't, because billing follows tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Copilot AI Credits by Plan
&lt;/h2&gt;

&lt;p&gt;Subscription prices stayed the same, and a new Max tier was added at the top:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Base credits&lt;/th&gt;
&lt;th&gt;Flex allotment&lt;/th&gt;
&lt;th&gt;Total monthly&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Copilot Pro&lt;/td&gt;
&lt;td&gt;$10/month&lt;/td&gt;
&lt;td&gt;1,000&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;1,500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copilot Pro+&lt;/td&gt;
&lt;td&gt;$39/month&lt;/td&gt;
&lt;td&gt;3,900&lt;/td&gt;
&lt;td&gt;3,100&lt;/td&gt;
&lt;td&gt;7,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copilot Max&lt;/td&gt;
&lt;td&gt;$100/month&lt;/td&gt;
&lt;td&gt;10,000&lt;/td&gt;
&lt;td&gt;10,000&lt;/td&gt;
&lt;td&gt;20,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copilot Business&lt;/td&gt;
&lt;td&gt;$19/user/month&lt;/td&gt;
&lt;td&gt;$19 in credits&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;pooled per org&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copilot Enterprise&lt;/td&gt;
&lt;td&gt;$39/user/month&lt;/td&gt;
&lt;td&gt;$39 in credits&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;pooled per org&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The flex allotment is extra headroom on top of your base credits — Pro effectively gets $15 worth of model usage for its $10 price. Business and Enterprise credits pool across all users in the organization, so a heavy user can draw from what a light user doesn't touch.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; Business and Enterprise plans get promotional credits through August 2026 — $30/month for Business and $70/month for Enterprise instead of the standard $19 and $39. If your team's usage looks fine right now, re-check it in September when the promo ends.&lt;/p&gt;

&lt;p&gt;The Free plan includes 2,000 code completions and a small credit allowance, with model access through auto model selection only. Student accounts keep unlimited completions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Consumes AI Credits (and What Stays Unlimited)
&lt;/h2&gt;

&lt;p&gt;Code completions and next edit suggestions remain unlimited on every paid plan. They don't touch your credits at all. If your Copilot usage is mostly tab-completion while you type, this whole change barely affects you.&lt;/p&gt;

&lt;p&gt;Credits are consumed by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copilot Chat&lt;/strong&gt; — every conversation, scaled by length and model choice&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copilot CLI&lt;/strong&gt; and the cloud coding agent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot Spaces and Spark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third-party coding agents&lt;/strong&gt; running through your Copilot subscription&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copilot code review&lt;/strong&gt; — which burns both AI credits and GitHub Actions minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one surprises people. Automated code review on a busy repo is a recurring cost on two meters at once, so check both if you've wired it into every pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Token-Based Billing Actually Works
&lt;/h2&gt;

&lt;p&gt;Because billing follows tokens, the same feature can cost very different amounts depending on how you use it. Three factors drive the number:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation length.&lt;/strong&gt; Each message in a chat re-sends context. Long-running conversations consume more input tokens per message, so ten short chats cost less than one marathon session covering the same questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agentic features.&lt;/strong&gt; The coding agent makes multiple model calls per task — planning, editing, verifying. A single "fix this issue" instruction can fan out into dozens of calls. In practice, agentic workflows are where credits drain fastest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model selection.&lt;/strong&gt; Frontier models bill at higher API rates than smaller ones. Paid plans get a 10% discount on model costs when you use auto model selection instead of pinning a specific model.&lt;/p&gt;

&lt;p&gt;Unused credits don't roll over. Your allowance resets to the full monthly amount at 00:00 UTC on the first day of each calendar month, and whatever you didn't use is forfeited.&lt;/p&gt;

&lt;h2&gt;
  
  
  Annual Plans Keep the Old Pricing — For Now
&lt;/h2&gt;

&lt;p&gt;Monthly Pro and Pro+ subscribers were migrated automatically on June 1, 2026. Annual subscribers weren't. If you're on an annual plan, you stay on premium request pricing until your plan expires — but GitHub raised the model multipliers for annual holdouts on the same date, so the old pricing isn't quite what it used to be.&lt;/p&gt;

&lt;p&gt;When an annual plan expires, the account transitions to the Free tier with the option to upgrade back into a usage-based plan. There's no path to renewing into premium requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keeping Your Copilot Bill Predictable
&lt;/h2&gt;

&lt;p&gt;When your included credits run out mid-month, you have three options: upgrade to a higher plan (you're charged only the price difference), set a budget for additional usage, or wait for the reset. Additional usage is billed at $0.01 per credit and can be capped — once you hit the cap, Copilot's premium features pause until you pay for consumed credits or the month rolls over.&lt;/p&gt;

&lt;p&gt;For organizations, &lt;a href="https://docs.github.com/en/copilot/concepts/billing/usage-based-billing-for-individuals" rel="noopener noreferrer"&gt;the billing docs&lt;/a&gt; cover budget controls at the enterprise, cost center, and individual user level, plus the choice to allow or block overage spending entirely. Set these before rollout, not after the first surprising invoice.&lt;/p&gt;

&lt;p&gt;Three habits that stretch a credit allowance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use auto model selection unless you have a real reason to pin a model — the 10% discount adds up&lt;/li&gt;
&lt;li&gt;Start new chats instead of continuing long conversations — shorter context means fewer input tokens&lt;/li&gt;
&lt;li&gt;Reserve agentic workflows for tasks that justify the fan-out, and lean on unlimited completions for routine coding&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the math stops working for your usage pattern, it's worth comparing against &lt;a href="https://devtoolhub.com/github-copilot-alternatives-2025/" rel="noopener noreferrer"&gt;Copilot alternatives&lt;/a&gt; or a dedicated agentic tool — the &lt;a href="https://devtoolhub.com/claude-code-cli-vs-codex/" rel="noopener noreferrer"&gt;Claude Code vs Codex comparison&lt;/a&gt; covers the two most common candidates. And if you're staying, the &lt;a href="https://devtoolhub.com/github-copilot-tips-tricks-2025/" rel="noopener noreferrer"&gt;Copilot tips and tricks guide&lt;/a&gt; helps you get more out of the features that are still unlimited.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-13-github-copilot-ai-credits-diagram.png | alt: "token metering flow splitting into included credits, overage budget, and unlimited completions lane"]&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Did GitHub Copilot prices increase in 2026?&lt;/strong&gt;&lt;br&gt;
A: The subscription prices stayed the same — Pro is $10, Pro+ is $39, Business is $19/user, Enterprise is $39/user. What changed is the metering: premium requests were replaced by AI credits billed on token consumption. A new Copilot Max tier was also added at $100/month with 20,000 total credits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do code completions use GitHub Copilot AI credits?&lt;/strong&gt;&lt;br&gt;
A: No. Code completions and next edit suggestions are unlimited on all paid plans and never consume credits. Only chat, CLI, agents, Spaces, Spark, and code review draw from your credit allowance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What happens when my AI credits run out?&lt;/strong&gt;&lt;br&gt;
A: Premium features pause unless you've set a budget for additional usage. You can upgrade plans (paying only the difference), buy additional usage at $0.01 per credit up to your budget cap, or wait for the monthly reset on the first of the month at 00:00 UTC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do unused Copilot AI credits roll over to the next month?&lt;/strong&gt;&lt;br&gt;
A: No. Unused credits are forfeited and your allowance resets to the full monthly amount on the first day of each calendar month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: I'm on an annual Copilot plan — am I affected?&lt;/strong&gt;&lt;br&gt;
A: Not immediately. Annual subscribers keep premium request pricing until their plan expires, though model multipliers increased on June 1, 2026. After expiry, the account moves to the Free tier with the option to upgrade into a usage-based plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot AI Credits replaced premium requests on June 1, 2026 — billing now follows token consumption at each model's published API rate&lt;/li&gt;
&lt;li&gt;1 credit = $0.01; Pro gets 1,500 total monthly credits, Pro+ gets 7,000, the new $100 Max tier gets 20,000&lt;/li&gt;
&lt;li&gt;Code completions and next edit suggestions stay unlimited on all paid plans&lt;/li&gt;
&lt;li&gt;Auto model selection gives paid plans a 10% discount on model costs&lt;/li&gt;
&lt;li&gt;Business/Enterprise promo credits ($30/$70 per month) end in August 2026 — recheck team budgets in September&lt;/li&gt;
&lt;li&gt;Unused credits don't roll over; overage can be capped with a dollar budget&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check your projected usage in the Copilot billing dashboard before the promotional credits expire — that's the number that predicts your September invoice.&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>aitools</category>
      <category>pricing</category>
      <category>developertools</category>
    </item>
    <item>
      <title>Google Cloud Data Agent Kit: Build Pipelines from Your IDE Without the Boilerplate</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Mon, 20 Jul 2026 15:57:40 +0000</pubDate>
      <link>https://dev.to/amareswer/google-cloud-data-agent-kit-build-pipelines-from-your-ide-without-the-boilerplate-4gf</link>
      <guid>https://dev.to/amareswer/google-cloud-data-agent-kit-build-pipelines-from-your-ide-without-the-boilerplate-4gf</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/google-cloud-data-agent-kit/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Writing data pipeline code is repetitive. You pull raw files from Cloud Storage, figure out the schema, decide whether to push through BigQuery or Spark, write the SQL or PySpark, wire up the orchestration, add the governance checks — and repeat this for every new dataset. Most of that work is boilerplate that follows known patterns.&lt;/p&gt;

&lt;p&gt;Google Cloud Data Agent Kit is an open-source suite of AI skills, MCP tools, and IDE plugins that drops into VS Code and Claude Code to handle that boilerplate for you. You describe what you want to do with your data. The agents figure out the execution path.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-05-google-cloud-data-agent-kit-featured.png | alt: "google cloud data agent kit in VS Code IDE showing BigQuery pipeline generation with AI agents"]&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Google Cloud Data Agent Kit Actually Does
&lt;/h2&gt;

&lt;p&gt;The kit has four distinct layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agentic skills&lt;/strong&gt; — pre-codified workflows for the tasks you run repeatedly: query optimization, data validation, drift detection, ML model lifecycle management, and governance enforcement. These are the "skills" that agents draw on when you give them a goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP tools&lt;/strong&gt; — &lt;a href="https://devtoolhub.com/what-is-model-context-protocol-mcp-simplifying-ai-integration/" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; connections that give the agents secure, authenticated access to your cloud data services (BigQuery, AlloyDB, Spanner, GCS) without requiring you to copy credentials into your editor or manually configure connection strings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IDE plugins&lt;/strong&gt; — native integrations for VS Code, Claude Code, Gemini CLI, Codex, and Antigravity CLI. The plugin surfaces a Unified Data Hub — a single view of your data estate, including datasets, orchestration pipelines, and active jobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intelligent routing&lt;/strong&gt; — the agents automatically pick the right compute engine for each task. BigQuery handles SQL-native analytics and ELT. Spark handles custom Python transformations and distributed ML training. You don't configure this — the agent chooses based on what the task requires.&lt;/p&gt;

&lt;p&gt;The kit itself is in preview, but the two agents it packages are GA:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Engineering Agent&lt;/strong&gt; — builds pipeline transformations from natural language descriptions and enforces governance rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Science Agent&lt;/strong&gt; — manages the full model lifecycle from data wrangling through training, scaling across BigQuery Dataframes and Serverless Apache Spark&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installing Google Cloud Data Agent Kit in VS Code and Claude Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VS Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Extensions panel (Ctrl+Shift+X / Cmd+Shift+X)&lt;/li&gt;
&lt;li&gt;Search for "Google Cloud Data Agent Kit"&lt;/li&gt;
&lt;li&gt;Install and authenticate with your Google Cloud account&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Setup takes under a minute and configures the MCP connections automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://devtoolhub.com/claude-code-quick-start-guide/" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install via the Claude Code Plugin system. Once installed, Data Agent Kit's tools appear in Claude Code's available MCP tools, and you can invoke the Data Engineering Agent directly from the CLI.&lt;/p&gt;

&lt;p&gt;Both environments give you access to the same agents and MCP connections — the difference is UX. VS Code gives you the Unified Data Hub sidebar for browsing datasets. Claude Code gives you conversational access from the terminal.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; You need an active Google Cloud project with BigQuery API enabled. The agents authenticate with your existing &lt;code&gt;gcloud auth&lt;/code&gt; credentials — no separate service account setup required for initial testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Data Pipeline: What It Looks Like End to End
&lt;/h2&gt;

&lt;p&gt;A real example from the kit's starter pack: starting with raw files in Cloud Storage and ending with batch inference results in Cloud Spanner — without leaving the IDE.&lt;/p&gt;

&lt;p&gt;The Data Engineering Agent handled:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creating a Spark notebook for initial data ingestion&lt;/li&gt;
&lt;li&gt;Setting up Iceberg table management in BigQuery for the processed data&lt;/li&gt;
&lt;li&gt;Generating a dbt project for the transformation layer&lt;/li&gt;
&lt;li&gt;Wiring up an end-to-end orchestration pipeline&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Data Science Agent then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Trained a XGBoost model on the processed dataset&lt;/li&gt;
&lt;li&gt;Ran batch inference at scale&lt;/li&gt;
&lt;li&gt;Pushed results to Cloud Spanner&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each step was triggered through natural language in the IDE — "create a pipeline to ingest these GCS files into BigQuery with Iceberg table management" — not by writing the pipeline code manually.&lt;/p&gt;

&lt;p&gt;That doesn't mean zero code is involved. The agents generate code that you review and run. But the scaffolding, connection boilerplate, and orchestration wiring is generated rather than hand-written.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting to BigQuery, GCS, and Spanner via MCP
&lt;/h2&gt;

&lt;p&gt;The MCP layer is what makes the agents actually useful rather than just generating generic code. Because the agents connect directly to your cloud services, they can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inspect your actual dataset schemas before generating transformation code&lt;/li&gt;
&lt;li&gt;Validate that generated SQL runs against your real BigQuery tables&lt;/li&gt;
&lt;li&gt;Read GCS file metadata to determine the right ingestion approach&lt;/li&gt;
&lt;li&gt;Check existing orchestration jobs before creating new pipeline steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters because a generic AI assistant generating pipeline code doesn't know your actual schema or data. The MCP connection gives the agents context about your real data estate. For a deeper look at how MCP works, see &lt;a href="https://devtoolhub.com/what-is-model-context-protocol-mcp-simplifying-ai-integration/" rel="noopener noreferrer"&gt;what is Model Context Protocol&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For &lt;a href="https://devtoolhub.com/cloud-powerhouses-unveiled-gcp-azure-and-aws-data-management-showdown/" rel="noopener noreferrer"&gt;GCP data management compared to AWS and Azure&lt;/a&gt;, Data Agent Kit is a BigQuery-native integration — it works best in environments already invested in GCP data services.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-05-google-cloud-data-agent-kit-diagram.png | alt: "MCP architecture connecting VS Code to BigQuery, GCS, AlloyDB, and Spark via Data Agent Kit"]&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Use It and When to Write Pipeline Code Yourself
&lt;/h2&gt;

&lt;p&gt;Google Cloud Data Agent Kit is genuinely useful for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prototyping new pipelines&lt;/strong&gt; — instead of spending an hour setting up the scaffold before you can even test your logic, you describe the data flow and get working code in minutes. Then you refine it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repeated ad-hoc data exploration&lt;/strong&gt; — querying GCS files, visualizing dataset distributions, pulling quick stats without leaving your editor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Standard transformation patterns&lt;/strong&gt; — dbt project setup, Iceberg table management, standard ELT flows. These are well-understood patterns that the agents handle reliably.&lt;/p&gt;

&lt;p&gt;It's less useful for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Highly custom orchestration&lt;/strong&gt; — if your pipeline has unusual scheduling requirements, specific failure recovery logic, or dependencies across multiple data systems with complex ordering, the generated scaffolding becomes a starting point rather than a finished product.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance-critical workloads&lt;/strong&gt; — generated Spark code is correct but not always optimally tuned. You'll still need to profile and optimize queries that run at scale with strict SLA requirements.&lt;/p&gt;

&lt;p&gt;The honest framing: this is a tool that eliminates boilerplate, not business logic. The parts of pipeline engineering that require understanding of your specific data, compliance requirements, and performance constraints still require human judgment.&lt;/p&gt;

&lt;p&gt;Official documentation: &lt;a href="https://docs.cloud.google.com/data-cloud-extension" rel="noopener noreferrer"&gt;Google Cloud Data Agent Kit extension docs&lt;/a&gt; and the &lt;a href="https://cloud.google.com/blog/products/data-analytics/data-agent-kit-brings-data-skills-and-tools-to-your-ide-or-cli" rel="noopener noreferrer"&gt;GCP blog announcement&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Does Google Cloud Data Agent Kit work with non-GCP data sources?&lt;/strong&gt;&lt;br&gt;
A: The current version focuses on GCP services — BigQuery, AlloyDB, Spanner, GCS, and Serverless Apache Spark. The MCP tools are built specifically for GCP authentication and API patterns. Cross-cloud connections aren't supported in the current release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is the Data Agent Kit free to use?&lt;/strong&gt;&lt;br&gt;
A: The kit itself is open-source and free to install (currently in preview). You pay for the underlying GCP services (BigQuery queries, Spark compute, GCS storage) at standard GCP rates. There's no additional charge for the Data Engineering Agent or Data Science Agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I use it with Gemini CLI instead of VS Code?&lt;/strong&gt;&lt;br&gt;
A: Yes. The Data Agent Kit supports Gemini CLI, Claude Code, VS Code, Codex, and Antigravity CLI. The agents and MCP connections work the same across environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What happens to my data when the agents access it?&lt;/strong&gt;&lt;br&gt;
A: The MCP tools use your existing Google Cloud credentials and IAM permissions. The agents don't copy data to external systems — they read metadata and execute queries against your GCP services within the permissions of your authenticated account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does this replace dbt or Dataform for transformations?&lt;/strong&gt;&lt;br&gt;
A: No. The Data Engineering Agent can generate dbt projects as part of a pipeline setup, but it doesn't replace dbt as a transformation framework. It uses dbt for the parts where dbt is the right tool — the same way an experienced engineer would.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Cloud Data Agent Kit is an open-source suite of AI agents and MCP tools that integrates into VS Code and Claude Code&lt;/li&gt;
&lt;li&gt;Two GA agents: Data Engineering Agent (pipelines, transformations, governance) and Data Science Agent (model training, inference)&lt;/li&gt;
&lt;li&gt;MCP connections give agents real context about your actual schemas, datasets, and existing jobs — not just generic code generation&lt;/li&gt;
&lt;li&gt;Intelligent routing picks BigQuery for SQL analytics and Spark for Python/ML workloads automatically&lt;/li&gt;
&lt;li&gt;Best for prototyping, exploration, and standard transformation patterns — complex orchestration still needs manual refinement&lt;/li&gt;
&lt;li&gt;Free to install; you pay standard GCP rates for the underlying services&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>googlecloud</category>
      <category>cloud</category>
      <category>aitools</category>
      <category>devops</category>
    </item>
    <item>
      <title>Falco on Kubernetes: Runtime Security with eBPF</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Mon, 13 Jul 2026 21:17:36 +0000</pubDate>
      <link>https://dev.to/amareswer/falco-on-kubernetes-runtime-security-with-ebpf-4apm</link>
      <guid>https://dev.to/amareswer/falco-on-kubernetes-runtime-security-with-ebpf-4apm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/falco-kubernetes-runtime-security/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most Kubernetes security tools scan for misconfigurations — pods running as root, missing network policies, RBAC roles that are too permissive. Those checks matter, but they don't tell you what's actually happening at runtime. A container could be perfectly configured and still execute a reverse shell the moment a vulnerability gets exploited.&lt;/p&gt;

&lt;p&gt;Falco fills that gap. It runs as a DaemonSet and monitors kernel-level system calls from every container on your nodes using eBPF. When a process does something suspicious — spawns a shell inside a production pod, reads sensitive credential files, opens an outbound connection to an unexpected host — Falco fires an alert in real time.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-05-falco-kubernetes-runtime-security-featured.png | alt: "falco kubernetes runtime security architecture with eBPF kernel monitoring"]&lt;/p&gt;

&lt;h2&gt;
  
  
  Falco on Kubernetes: What Runtime Security Actually Catches
&lt;/h2&gt;

&lt;p&gt;The default Falco ruleset covers the threats that show up most in real incident reports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shells spawned inside containers&lt;/strong&gt; — exec into a pod, reverse shell from a web app exploit, interactive session from compromised code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privilege escalation&lt;/strong&gt; — a process inside a container attempting to gain root access or modify privileged kernel settings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive file access&lt;/strong&gt; — reads from &lt;code&gt;/etc/shadow&lt;/code&gt;, &lt;code&gt;/root/.ssh/&lt;/code&gt;, or cloud credential files like &lt;code&gt;~/.aws/credentials&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unexpected outbound traffic&lt;/strong&gt; — connections to known crypto-mining pools, C2 servers, or external hosts outside your expected egress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Falco doesn't block any of this by default — it alerts on it. The threat detection is real-time because it happens at the kernel system call layer, not by periodically scanning container state.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Falco on Kubernetes with Helm
&lt;/h2&gt;

&lt;p&gt;Add the Falco Helm repository and update:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Basic installation into its own namespace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm &lt;span class="nb"&gt;install &lt;/span&gt;falco falcosecurity/falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--create-namespace&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--namespace&lt;/span&gt; falco
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, Helm deploys Falco as a DaemonSet — one pod per node — with the &lt;code&gt;driver.kind=auto&lt;/code&gt; setting, which selects the best available driver automatically.&lt;/p&gt;

&lt;p&gt;For most production clusters, you'll want to add Kubernetes metadata collection and Falcosidekick for alert routing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm &lt;span class="nb"&gt;install &lt;/span&gt;falco falcosecurity/falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--create-namespace&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--namespace&lt;/span&gt; falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; driver.kind&lt;span class="o"&gt;=&lt;/span&gt;modern_ebpf &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; collectors.kubernetes.enabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; falcosidekick.enabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This single command gets you: eBPF-based syscall monitoring, Kubernetes pod and namespace metadata enrichment in alerts, and Falcosidekick ready to route alerts to your notification channels.&lt;/p&gt;

&lt;h2&gt;
  
  
  eBPF vs Kernel Module: Choosing Your Driver
&lt;/h2&gt;

&lt;p&gt;Falco supports three driver options, and the choice has real operational consequences:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Driver&lt;/th&gt;
&lt;th&gt;How it works&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;modern_ebpf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CO-RE eBPF probe, no kernel headers needed&lt;/td&gt;
&lt;td&gt;Most production environments, kernel 5.8+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;kmod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Kernel module loaded at runtime&lt;/td&gt;
&lt;td&gt;Older kernels, bare metal with kernel header access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;auto&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Picks the best available driver&lt;/td&gt;
&lt;td&gt;Testing, heterogeneous node environments&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For most teams running Kubernetes 1.24+ on standard cloud providers (EKS, GKE, AKS), &lt;code&gt;modern_ebpf&lt;/code&gt; is the right choice. The CO-RE (Compile Once, Run Everywhere) approach means the probe adapts to different kernel structures at load time without recompilation — which eliminates the kernel header dependency that makes &lt;code&gt;kmod&lt;/code&gt; painful to operate.&lt;/p&gt;

&lt;p&gt;To install with explicit modern eBPF:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm &lt;span class="nb"&gt;install &lt;/span&gt;falco falcosecurity/falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--create-namespace&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--namespace&lt;/span&gt; falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; driver.kind&lt;span class="o"&gt;=&lt;/span&gt;modern_ebpf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚠️ &lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;modern_ebpf&lt;/code&gt; requires kernel 5.8 or later. For older kernels, use &lt;code&gt;kmod&lt;/code&gt; or check the &lt;a href="https://falco.org/docs/" rel="noopener noreferrer"&gt;official Falco docs&lt;/a&gt; for minimum version requirements by driver type.&lt;/p&gt;

&lt;p&gt;Also verify your &lt;a href="https://devtoolhub.com/kubernetes-rbac-tutorial/" rel="noopener noreferrer"&gt;Kubernetes RBAC policies&lt;/a&gt; allow Falco's DaemonSet pods to run with the necessary Linux capabilities — specifically &lt;code&gt;SYS_PTRACE&lt;/code&gt; for eBPF-based drivers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding and Customizing Falco Rules
&lt;/h2&gt;

&lt;p&gt;Falco rules are YAML files. Each rule defines a condition (what to look for in the syscall stream), an output message format (what the alert says), and a priority level. The default ruleset covers common threats out of the box, and you can extend it with custom rules for your environment.&lt;/p&gt;

&lt;p&gt;Rules are loaded from &lt;code&gt;/etc/falco/&lt;/code&gt; inside the Falco pod. The main default ruleset lives in &lt;code&gt;falco_rules.yaml&lt;/code&gt;. You override rules or add new ones in &lt;code&gt;falco_rules.local.yaml&lt;/code&gt; — Falco loads local rules last, so they override defaults.&lt;/p&gt;

&lt;p&gt;Common starting points for custom rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restricting which namespaces are allowed to spawn processes outside the expected set&lt;/li&gt;
&lt;li&gt;Alerting when credentials files are accessed from specific pod labels&lt;/li&gt;
&lt;li&gt;Flagging network connections to unexpected IP ranges from production workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For exact condition field syntax and the full list of Falco fields (&lt;code&gt;proc.name&lt;/code&gt;, &lt;code&gt;container.image.repository&lt;/code&gt;, &lt;code&gt;fd.sport&lt;/code&gt;, etc.), see the &lt;a href="https://falco.org/docs/" rel="noopener noreferrer"&gt;official Falco documentation&lt;/a&gt;. The field reference is comprehensive and the conditions are readable once you know the namespace.&lt;/p&gt;

&lt;p&gt;For &lt;a href="https://devtoolhub.com/devsecops-automation-ci-cd-shift-left/" rel="noopener noreferrer"&gt;DevSecOps pipeline integration&lt;/a&gt;, Falco rules can be version-controlled and deployed via the same Helm chart upgrade path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Falco Alert Routing with Falcosidekick
&lt;/h2&gt;

&lt;p&gt;Falcosidekick is the standard companion service for routing Falco alerts. It sits between Falco's JSON event stream and your notification systems, with over 50 built-in integrations.&lt;/p&gt;

&lt;p&gt;When you enable Falcosidekick in the Helm install, it deploys alongside Falco and picks up the event stream automatically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm upgrade falco falcosecurity/falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--namespace&lt;/span&gt; falco &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; driver.kind&lt;span class="o"&gt;=&lt;/span&gt;modern_ebpf &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; falcosidekick.enabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; falcosidekick.config.slack.webhookurl&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://hooks.slack.com/services/YOUR/WEBHOOK/URL"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--set&lt;/span&gt; falcosidekick.config.pagerduty.routingKey&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"YOUR_ROUTING_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Falcosidekick supports Slack, PagerDuty, Elasticsearch, Splunk, Loki, Datadog, OpsGenie, and many more. You configure each integration through Helm values or a &lt;code&gt;falcosidekick.yaml&lt;/code&gt; config file.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-05-falco-kubernetes-runtime-security-diagram.png | alt: "falco alert routing flow from kernel layer through rules engine to Falcosidekick integrations"]&lt;/p&gt;

&lt;p&gt;For alert volume, Falco's priority levels (&lt;code&gt;CRITICAL&lt;/code&gt;, &lt;code&gt;ERROR&lt;/code&gt;, &lt;code&gt;WARNING&lt;/code&gt;, &lt;code&gt;NOTICE&lt;/code&gt;, &lt;code&gt;INFO&lt;/code&gt;, &lt;code&gt;DEBUG&lt;/code&gt;) let you route only high-priority alerts to PagerDuty while sending everything else to Elasticsearch for analysis.&lt;/p&gt;

&lt;p&gt;This pairs well with existing &lt;a href="https://devtoolhub.com/cloud-security-best-practices/" rel="noopener noreferrer"&gt;cloud security monitoring&lt;/a&gt; — Falco covers the runtime layer that static config scanners miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Does Falco work on managed Kubernetes like EKS, GKE, or AKS?&lt;/strong&gt;&lt;br&gt;
A: Yes. All three managed providers support running Falco as a DaemonSet. On GKE, you'll need Container-Optimized OS nodes with the right kernel version for &lt;code&gt;modern_ebpf&lt;/code&gt;. EKS and AKS support it on Amazon Linux 2 and Ubuntu node pools respectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Will Falco slow down my Kubernetes workloads?&lt;/strong&gt;&lt;br&gt;
A: The modern eBPF driver has minimal overhead — typically 1-3% CPU on nodes under normal load. The syscall monitoring happens in the kernel, separate from your container processes. Heavy filtering of low-priority events through priority levels keeps the overhead manageable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does Falco block threats or only alert?&lt;/strong&gt;&lt;br&gt;
A: By default, Falco only alerts. For active response — killing a pod, triggering a network policy change — you pair Falco with a response engine. Falco's Kubernetes Response Engine project, or a custom Falcosidekick webhook handler, can trigger automated remediation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do I update Falco rules without redeploying the DaemonSet?&lt;/strong&gt;&lt;br&gt;
A: Use &lt;code&gt;falcoctl&lt;/code&gt; — the Falco artifact manager — to pull updated rules at runtime. This is the recommended approach for production: &lt;code&gt;falcoctl artifact install ruleset:falco-rules&lt;/code&gt; without a full Helm upgrade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I run Falco alongside other security tools like Trivy or kube-bench?&lt;/strong&gt;&lt;br&gt;
A: Yes, and you should. Falco covers runtime behavior. Trivy covers image vulnerabilities. kube-bench covers CIS benchmark compliance. These tools address different attack surfaces and complement each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Falco monitors kernel system calls via eBPF — it catches runtime threats that config scanners miss&lt;/li&gt;
&lt;li&gt;Install with Helm: &lt;code&gt;driver.kind=modern_ebpf&lt;/code&gt; is the right choice for kernel 5.8+ production clusters&lt;/li&gt;
&lt;li&gt;Enable &lt;code&gt;collectors.kubernetes.enabled=true&lt;/code&gt; to get pod/namespace context in every alert&lt;/li&gt;
&lt;li&gt;Falcosidekick routes alerts to 50+ integrations — Slack, PagerDuty, Elasticsearch — with a single Helm value&lt;/li&gt;
&lt;li&gt;Custom rules go in &lt;code&gt;falco_rules.local.yaml&lt;/code&gt; and load last, overriding defaults&lt;/li&gt;
&lt;li&gt;Falco alerts but doesn't block by default — pair it with a response engine for automated remediation&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kubernetes</category>
      <category>security</category>
      <category>devsecops</category>
      <category>falco</category>
    </item>
    <item>
      <title>Helm 4 Migration Guide: What Breaks and How to Fix It Before EOL</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Mon, 06 Jul 2026 15:47:40 +0000</pubDate>
      <link>https://dev.to/amareswer/helm-4-migration-guide-what-breaks-and-how-to-fix-it-before-eol-4p99</link>
      <guid>https://dev.to/amareswer/helm-4-migration-guide-what-breaks-and-how-to-fix-it-before-eol-4p99</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/helm-4-migration-guide/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Helm 4 shipped in November 2025. Eight months later, most teams are still running Helm 3 in production CI/CD because it works. But Helm 3's final feature release lands September 9, 2026, and security patches stop completely on February 10, 2027.&lt;/p&gt;

&lt;p&gt;This helm 4 migration is simpler than it looks. Your charts don't need rewriting — Helm 3 Chart API v2 charts are fully compatible with Helm 4. But the automation around Helm has four real breaking points that fail silently if you don't know where to look.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-05-helm-4-migration-guide-featured.png | alt: "helm 4 migration flow from Helm 3 to Helm 4 upgrade path"]&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Helm 4 Migration Matters Now
&lt;/h2&gt;

&lt;p&gt;The EOL timeline has three stages, and they matter differently based on your situation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;September 9, 2026&lt;/strong&gt; — Final Helm 3 feature release (limited to Kubernetes client library updates only after this date)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;February 10, 2027&lt;/strong&gt; — All security patches stop&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your organization runs regulated workloads with requirements around supported software, February 2027 is your hard deadline. But waiting until then means doing this migration under pressure, after 14 months of Helm 4 fixes shipped without you tracking them.&lt;/p&gt;

&lt;p&gt;The better path: upgrade now, before September, so you're on supported software when new Kubernetes releases land and need updated client libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Broke: The Four Real Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Post-renderers require plugin registration
&lt;/h3&gt;

&lt;p&gt;In Helm 3, you could pass any executable directly to &lt;code&gt;--post-renderer&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm &lt;span class="nb"&gt;install &lt;/span&gt;myapp ./chart &lt;span class="nt"&gt;--post-renderer&lt;/span&gt; ./scripts/mutate.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Helm 4 drops this. Post-renderers must now be registered as named Helm plugins and referenced by plugin name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm &lt;span class="nb"&gt;install &lt;/span&gt;myapp ./chart &lt;span class="nt"&gt;--post-renderer&lt;/span&gt; my-post-renderer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your pipeline calls &lt;code&gt;--post-renderer ./path/to/script.sh&lt;/code&gt;, it fails on Helm 4. The error message doesn't say "plugin required," so this is easy to miss in a quick smoke test.&lt;/p&gt;

&lt;p&gt;To wrap an existing script as a plugin, create a &lt;code&gt;plugin.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-post-renderer&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0.1.0"&lt;/span&gt;
&lt;span class="na"&gt;usage&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Custom&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;post-renderer"&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Mutation&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;script&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Helm&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;output"&lt;/span&gt;
&lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$HELM_PLUGIN_DIR/mutate.sh"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install it with &lt;code&gt;helm plugin install /path/to/plugin-dir&lt;/code&gt;, then update your pipeline to reference the plugin name instead of the script path.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Registry login requires domain names only
&lt;/h3&gt;

&lt;p&gt;Helm 3 accepted both forms:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm registry login https://registry.example.com  &lt;span class="c"&gt;# Helm 3: works&lt;/span&gt;
helm registry login registry.example.com          &lt;span class="c"&gt;# Helm 3: also works&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Helm 4 accepts domain names only — no protocol prefix:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm registry login registry.example.com   &lt;span class="c"&gt;# Helm 4: correct&lt;/span&gt;
helm registry login https://registry.example.com  &lt;span class="c"&gt;# Helm 4: fails&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check every CI/CD step that authenticates to a private OCI registry. The &lt;code&gt;HELM_EXPERIMENTAL_OCI=1&lt;/code&gt; environment variable is also gone — OCI is now stable and enabled by default, and setting that flag causes an error.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;code&gt;--atomic&lt;/code&gt; and &lt;code&gt;--force&lt;/code&gt; are renamed
&lt;/h3&gt;

&lt;p&gt;Two flags that appear constantly in production pipelines are deprecated in Helm 4:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Old flag&lt;/th&gt;
&lt;th&gt;New flag&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--atomic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--rollback-on-failure&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--force&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--force-replace&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The old flags still work in current Helm 4 releases but emit deprecation warnings. They become hard errors in a future minor version. If your pipeline treats warnings as failures — which many do — you'll hit breakage before that happens.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Go SDK import path (tool builders only)
&lt;/h3&gt;

&lt;p&gt;If you've built tooling that embeds Helm as a Go library, update your import from &lt;code&gt;helm.sh/helm/v3&lt;/code&gt; to &lt;code&gt;helm.sh/helm/v4&lt;/code&gt;. This only applies if you're writing code that imports Helm packages — not if you're using the CLI.&lt;/p&gt;

&lt;h2&gt;
  
  
  New Defaults That Will Catch You Off Guard
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Server-side apply for new installs
&lt;/h3&gt;

&lt;p&gt;Helm 4 uses server-side apply (SSA) for all new &lt;code&gt;helm install&lt;/code&gt; operations. SSA handles field ownership conflicts more cleanly than client-side apply, so this is the right default. But it changes behavior in ways that matter.&lt;/p&gt;

&lt;p&gt;For existing releases installed with Helm 3, Helm 4 retains client-side apply on upgrades. So you get SSA on new installs and client-side apply on upgrades of existing releases. To force SSA for an existing release, pass &lt;code&gt;--server-side&lt;/code&gt; explicitly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm upgrade myapp ./chart &lt;span class="nt"&gt;--server-side&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test this in staging first. SSA applies field management metadata that can surface ownership conflicts if other tools — ArgoCD, kubectl, Terraform — have also been managing those resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  kstatus changes what &lt;code&gt;--wait&lt;/code&gt; checks
&lt;/h3&gt;

&lt;p&gt;Helm 4's &lt;code&gt;--wait&lt;/code&gt; flag now uses kstatus for readiness detection instead of just checking pod status. kstatus requires the &lt;code&gt;watch&lt;/code&gt; verb on Kubernetes resources. If your Helm service account doesn't have &lt;code&gt;watch&lt;/code&gt;, &lt;code&gt;--wait&lt;/code&gt; fails immediately after you upgrade the binary.&lt;/p&gt;

&lt;p&gt;Before upgrading, check your &lt;a href="https://devtoolhub.com/kubernetes-rbac-tutorial/" rel="noopener noreferrer"&gt;Kubernetes RBAC configuration&lt;/a&gt; and ensure the Helm service account includes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;apiGroups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;verbs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;list"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;watch"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without &lt;code&gt;watch&lt;/code&gt;, the failure looks like a timeout at first glance, not a permissions error.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Install Helm 4
&lt;/h2&gt;

&lt;p&gt;Helm 4 and Helm 3 coexist on the same machine, so you can install Helm 4 and test before switching over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Via install script:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4
&lt;span class="nb"&gt;chmod &lt;/span&gt;700 get_helm.sh
./get_helm.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;macOS via Homebrew:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;helm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Debian/Ubuntu:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | gpg &lt;span class="nt"&gt;--dearmor&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; /usr/share/keyrings/helm.gpg &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"deb [signed-by=/usr/share/keyrings/helm.gpg] https://packages.buildkite.com/helm-linux/helm-debian/any/ any main"&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; /etc/apt/sources.list.d/helm-stable-debian.list
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;helm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Fedora/RHEL:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install &lt;/span&gt;helm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installation, run &lt;code&gt;helm version&lt;/code&gt; to confirm 4.x, then test your charts against a staging namespace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm &lt;span class="nb"&gt;install &lt;/span&gt;test-release ./your-chart &lt;span class="nt"&gt;--namespace&lt;/span&gt; staging &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Charts from &lt;a href="https://devtoolhub.com/mastering-kubernetes-deployments-with-helm-a-beginners-guide/" rel="noopener noreferrer"&gt;existing Helm 3 deployments&lt;/a&gt; work as-is in Helm 4. What you're testing is your pipeline scripts, not the chart files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixing Your CI/CD Scripts for Helm 4
&lt;/h2&gt;

&lt;p&gt;Go through every Helm call in your pipelines. For each one, check these specific patterns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Rename --atomic&lt;/span&gt;
helm upgrade myapp ./chart &lt;span class="nt"&gt;--atomic&lt;/span&gt;               &lt;span class="c"&gt;# OLD — warning now, hard error later&lt;/span&gt;
helm upgrade myapp ./chart &lt;span class="nt"&gt;--rollback-on-failure&lt;/span&gt;  &lt;span class="c"&gt;# NEW&lt;/span&gt;

&lt;span class="c"&gt;# Rename --force&lt;/span&gt;
helm upgrade myapp ./chart &lt;span class="nt"&gt;--force&lt;/span&gt;                &lt;span class="c"&gt;# OLD&lt;/span&gt;
helm upgrade myapp ./chart &lt;span class="nt"&gt;--force-replace&lt;/span&gt;        &lt;span class="c"&gt;# NEW&lt;/span&gt;

&lt;span class="c"&gt;# Fix registry login&lt;/span&gt;
helm registry login https://my-registry.io        &lt;span class="c"&gt;# OLD — fails in Helm 4&lt;/span&gt;
helm registry login my-registry.io               &lt;span class="c"&gt;# NEW&lt;/span&gt;

&lt;span class="c"&gt;# Remove the OCI experiment flag entirely&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HELM_EXPERIMENTAL_OCI&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1   &lt;span class="c"&gt;# Remove this line — setting it causes an error in Helm 4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For post-renderer scripts: wrap each one as a Helm plugin using the &lt;code&gt;plugin.yaml&lt;/code&gt; format above. The actual script content doesn't change — only how Helm references it.&lt;/p&gt;

&lt;p&gt;For a &lt;a href="https://devtoolhub.com/devsecops-automation-ci-cd-shift-left/" rel="noopener noreferrer"&gt;shift-left security pipeline&lt;/a&gt; that validates charts pre-deploy, check whether your static analysis tools (conftest, chart-testing) have released Helm 4 compatible versions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devtoolhub.com/helm-commands-templates-best-practices/" rel="noopener noreferrer"&gt;Helm templates and commands syntax&lt;/a&gt; is unchanged in Helm 4 — the template engine, values handling, and chart structure are all the same.&lt;/p&gt;

&lt;p&gt;[IMAGE: articles/images/2026-07-05-helm-4-migration-guide-diagram.png | alt: "CI/CD pipeline checklist diagram for upgrading to Helm 4"]&lt;/p&gt;

&lt;p&gt;For the official timeline, see the &lt;a href="https://helm.sh/blog/helm-v3-end-of-life/" rel="noopener noreferrer"&gt;Helm v3 End of Life announcement&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I need to rewrite my Helm charts for Helm 4?&lt;/strong&gt;&lt;br&gt;
A: No. Helm 3 Chart API v2 charts work with Helm 4 without changes. The helm 4 migration affects your CI/CD scripts and automation — not the chart files, templates, or values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Will existing Helm 3 releases break when I upgrade the Helm binary?&lt;/strong&gt;&lt;br&gt;
A: No. Helm 4 reads existing release history without issues. Upgrades of existing releases stay on client-side apply until you explicitly pass &lt;code&gt;--server-side&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What happens if I don't upgrade before September 9?&lt;/strong&gt;&lt;br&gt;
A: Helm 3 keeps working — it just won't receive Kubernetes client library updates after September 9. Security patches continue until February 10, 2027. The practical risk is that new Kubernetes API deprecations won't be handled in Helm 3 after that date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do I verify whether kstatus will break my --wait?&lt;/strong&gt;&lt;br&gt;
A: Run &lt;code&gt;kubectl auth can-i watch pods --as=system:serviceaccount:default:helm&lt;/code&gt; for your Helm service account. If it returns "no," add &lt;code&gt;watch&lt;/code&gt; to the cluster role before migrating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does Helm 4 change how classic chart repositories work?&lt;/strong&gt;&lt;br&gt;
A: No. HTTP chart repos work the same. OCI registry support is now stable and the default — you no longer need &lt;code&gt;HELM_EXPERIMENTAL_OCI=1&lt;/code&gt;, and setting it causes an error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Helm 3 final feature release: September 9, 2026. Security patches end February 10, 2027.&lt;/li&gt;
&lt;li&gt;Post-renderers must be Helm plugins — executable paths no longer work&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;helm registry login&lt;/code&gt; requires domain names only — drop &lt;code&gt;https://&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--atomic&lt;/code&gt; → &lt;code&gt;--rollback-on-failure&lt;/code&gt;, &lt;code&gt;--force&lt;/code&gt; → &lt;code&gt;--force-replace&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;kstatus for &lt;code&gt;--wait&lt;/code&gt; requires the &lt;code&gt;watch&lt;/code&gt; RBAC verb — check before migrating&lt;/li&gt;
&lt;li&gt;Charts need zero changes — this helm 4 migration is entirely in your CI/CD scripts&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>helm</category>
      <category>kubernetes</category>
      <category>devops</category>
      <category>iac</category>
    </item>
    <item>
      <title>PostgreSQL on Kubernetes — Complete Setup Guide with CloudNativePG</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Tue, 16 Jun 2026 01:13:22 +0000</pubDate>
      <link>https://dev.to/amareswer/postgresql-on-kubernetes-complete-setup-guide-with-cloudnativepg-4k9e</link>
      <guid>https://dev.to/amareswer/postgresql-on-kubernetes-complete-setup-guide-with-cloudnativepg-4k9e</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://devtoolhub.com/postgresql-on-kubernetes-cloudnativepg/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;, where I keep this guide updated as CloudNativePG evolves.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Running PostgreSQL in Kubernetes used to be a bad idea. StatefulSets were tricky, persistent volumes were unreliable, and failover meant data loss. Most teams defaulted to managed cloud databases and called it done.&lt;/p&gt;

&lt;p&gt;That calculus has changed. &lt;strong&gt;CloudNativePG&lt;/strong&gt; — the CNCF-listed PostgreSQL operator — handles high availability, automated failover, Point-in-Time Recovery, connection pooling, and streaming replication out of the box. In 2026 it's the production-grade way to run PostgreSQL on Kubernetes, and the gap between "self-hosted on K8s" and "managed cloud database" has narrowed significantly.&lt;/p&gt;

&lt;p&gt;This guide walks through a complete CloudNativePG setup — from operator install to production-ready cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the full guide covers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Why CloudNativePG over a plain StatefulSet&lt;/strong&gt; — what the operator actually does that raw StatefulSets can't&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installing the operator&lt;/strong&gt; — kubectl and the &lt;code&gt;kubectl-cnpg&lt;/code&gt; plugin&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploying a 3-instance HA cluster&lt;/strong&gt; — 1 primary + 2 standbys, with PostgreSQL tuning parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connecting your app&lt;/strong&gt; — read-write vs read-only services, port-forwarding for debugging&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backup and WAL archiving to S3&lt;/strong&gt; — ScheduledBackup, retention policies, verifying archiving works&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PgBouncer connection pooling&lt;/strong&gt; — the Pooler resource, transaction vs session mode&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RBAC and Network Policies&lt;/strong&gt; — locking down who can reach the database at the Kubernetes layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing failover&lt;/strong&gt; — how to simulate a primary failure and what to expect&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Point-in-Time Recovery&lt;/strong&gt; — restoring to an exact timestamp from WAL archives&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common mistakes and best practices&lt;/strong&gt; — storage sizing, pool mode, pg_hba.conf defaults, synchronous replication&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The one thing most guides skip
&lt;/h2&gt;

&lt;p&gt;WAL archiving must be configured &lt;strong&gt;before&lt;/strong&gt; you put data in the database — you can't retroactively enable PITR. Configure backups before your first application write.&lt;/p&gt;

&lt;h2&gt;
  
  
  So which setup should you use?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CloudNativePG on K8s&lt;/strong&gt; — right for teams with Kubernetes expertise who want full operational control, PITR, and custom PostgreSQL configuration without paying managed database prices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed PostgreSQL&lt;/strong&gt; (RDS, Cloud SQL, DigitalOcean Managed Databases) — still wins on operational simplicity. Zero operator to maintain, automatic failover handled for you.&lt;/p&gt;

&lt;p&gt;CloudNativePG narrows the gap significantly — but the right call depends on your team's tolerance for database operations.&lt;/p&gt;




&lt;p&gt;I keep the full step-by-step guide on DevToolHub, including all YAML manifests and kubectl commands: &lt;a href="https://devtoolhub.com/postgresql-on-kubernetes-cloudnativepg/" rel="noopener noreferrer"&gt;PostgreSQL on Kubernetes — Complete Setup Guide with CloudNativePG&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I write hands-on DevOps and Kubernetes guides at &lt;a href="https://devtoolhub.com" rel="noopener noreferrer"&gt;devtoolhub.com&lt;/a&gt;. Questions about your setup? Drop a comment.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>postgres</category>
      <category>devops</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>Ollama Cloud Free vs Pro — Usage Limits, Pricing &amp; What You Actually Get (2026)</title>
      <dc:creator>Amaresh Pelleti</dc:creator>
      <pubDate>Thu, 11 Jun 2026 00:39:50 +0000</pubDate>
      <link>https://dev.to/amareswer/ollama-cloud-free-vs-pro-usage-limits-pricing-what-you-actually-get-2026-3ieo</link>
      <guid>https://dev.to/amareswer/ollama-cloud-free-vs-pro-usage-limits-pricing-what-you-actually-get-2026-3ieo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published on &lt;a href="https://devtoolhub.com/ollama-cloud-free-vs-pro-limits-pricing-2026/" rel="noopener noreferrer"&gt;DevToolHub&lt;/a&gt;, where I keep this guide updated every time Ollama revises its limits.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ollama Cloud is one of the most searched topics in the local AI space right now — and the number one question is always the same: &lt;strong&gt;what do you actually get on the free tier, and is Pro worth paying for?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This guide covers the plan limits, how usage is actually measured (it's not tokens), and when upgrading makes sense. All data is pulled from the official Ollama pricing page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Ollama Cloud is
&lt;/h2&gt;

&lt;p&gt;Ollama Cloud is a managed inference service that runs large open-source models on Ollama's datacenter GPUs — no local GPU required. The key advantage: your existing local Ollama setup works identically with cloud models. No code rewrites, no new SDKs. Just point at a cloud model and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gpt-oss:120b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same CLI, same OpenAI-compatible API, different hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three tiers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Free&lt;/th&gt;
&lt;th&gt;Pro&lt;/th&gt;
&lt;th&gt;Max&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;$20/mo ($200/yr)&lt;/td&gt;
&lt;td&gt;$100/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud usage&lt;/td&gt;
&lt;td&gt;Base quota&lt;/td&gt;
&lt;td&gt;~50x Free&lt;/td&gt;
&lt;td&gt;Highest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Concurrent cloud models&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;3 at a time&lt;/td&gt;
&lt;td&gt;More &amp;lt;!-- CHECK exact number against your live post --&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model access&lt;/td&gt;
&lt;td&gt;Lighter cloud models&lt;/td&gt;
&lt;td&gt;Full catalog&lt;/td&gt;
&lt;td&gt;Full catalog + priority&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Running models on &lt;strong&gt;your own hardware is always unlimited&lt;/strong&gt; — the plans only govern cloud usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  How usage is actually measured (most posts get this wrong)
&lt;/h2&gt;

&lt;p&gt;Ollama doesn't cap you at a fixed number of tokens or requests. Usage reflects actual utilization of their cloud infrastructure — primarily &lt;strong&gt;GPU time&lt;/strong&gt;, which depends on model size and request duration. Two things follow from that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Limits reset on two clocks:&lt;/strong&gt; session limits reset every 5 hours, weekly limits reset every 7 days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heavier models burn quota faster.&lt;/strong&gt; Models are grouped into usage levels from level 1 (light models like &lt;code&gt;gpt-oss:20b&lt;/code&gt;) up to level 4 (extra-heavy models like &lt;code&gt;deepseek-v4-pro&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Practical tip:&lt;/strong&gt; on the Free tier, stick to level 1 and level 2 models to stretch your quota. Shorter prompts and prompts that share cached context also consume less.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concurrency and queueing
&lt;/h2&gt;

&lt;p&gt;Requests beyond your plan's concurrency limit are queued and processed when a slot opens. The queue itself has a fixed depth — if it's full, requests are rejected until a slot frees up. This is the main reason production agent workloads end up on Max: it's about sustained concurrent access, not just raw quota.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy
&lt;/h2&gt;

&lt;p&gt;Prompt and response data is never logged or trained on, and Ollama requires zero-data-retention policies from its hosting partners. Worth knowing if you're considering cloud inference for work data.&lt;/p&gt;

&lt;h2&gt;
  
  
  So which tier should you pick?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt; — genuinely useful for experimenting with large models you can't fit locally. Stay on level 1–2 models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro ($20/mo)&lt;/strong&gt; — the right call for daily engineering work. Full catalog, 3 concurrent cloud models, enough quota that most individual developers never hit the wall.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Max ($100/mo)&lt;/strong&gt; — for production agent and RAG workloads that need sustained, concurrent access to the heaviest models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you'd rather own the hardware: a &lt;a href="https://devtoolhub.com/run-ollama-on-digitalocean-droplet/" rel="noopener noreferrer"&gt;GPU droplet running self-hosted Ollama&lt;/a&gt; flips the economics once your usage is steady — I break down that setup separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  One warning
&lt;/h2&gt;

&lt;p&gt;Ollama has revised its cloud quotas more than once since launch. I keep the &lt;a href="https://devtoolhub.com/ollama-cloud-free-vs-pro-limits-pricing-2026/" rel="noopener noreferrer"&gt;original post on DevToolHub&lt;/a&gt; updated against the official pricing page every time the limits change — bookmark that one if you want current numbers.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I write hands-on DevOps and self-hosted AI guides at &lt;a href="https://devtoolhub.com/" rel="noopener noreferrer"&gt;devtoolhub.com&lt;/a&gt;. Questions about your specific workload? Drop a comment.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ollama</category>
      <category>ai</category>
      <category>llm</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
