<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.infraforge.agency</loc>
    <lastmod>2026-05-31T00:39:27.982Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-a-deleted-backup-lambda-kept-billing-9-400-ebs-snapshots</loc>
    <lastmod>2026-05-30T22:40:06.438Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-one-shared-terraform-module-made-every-pr-a-14-service-change</loc>
    <lastmod>2026-05-26T19:58:31.759Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-a-forgotten-rds-replica-added-8-600-to-one-aws-bill</loc>
    <lastmod>2026-05-25T13:32:18.124Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/init-container-cascade-when-every-kubectl-patch-reverts-in-10-seconds</loc>
    <lastmod>2026-05-24T06:51:10.850Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-terraform-apply-fails-when-plan-passes-the-map-any-trap</loc>
    <lastmod>2026-05-24T06:13:37.036Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/grafana-no-data-after-migration-7-reconcilers-we-had-to-kill-first</loc>
    <lastmod>2026-05-24T05:52:26.420Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/when-argocd-shows-healthy-but-keycloak-silently-strips-jwt-claims</loc>
    <lastmod>2026-05-22T23:33:32.048Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-a-terraform-apply-hangs-90-minutes-on-a-custom-provider-with-no-timeout</loc>
    <lastmod>2026-05-22T17:56:04.095Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/when-minio-deny-wins-cause-silent-upload-failure</loc>
    <lastmod>2026-05-21T02:28:42.687Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/argocd-drift-across-3-namespaces-after-a-jwt-hotfix-how-we-reconciled-without-breaking-auth</loc>
    <lastmod>2026-05-20T22:38:44.206Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/how-we-recovered-tfstate-after-force-unlock-raced-a-ci-apply</loc>
    <lastmod>2026-05-20T14:45:11.049Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/archive</loc>
    <lastmod>2026-05-31T00:39:27.982Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/recommendations</loc>
    <lastmod>2026-05-31T00:39:27.982Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>