<?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-08-13T07:35:54.106Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/how-to-recover-pods-a-configmap-hook-race-left-with-empty-env</loc>
    <lastmod>2026-08-10T06:55:56.053Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/worker-drops-jobs-intermittently-startup-race-env-drift-schema-skew</loc>
    <lastmod>2026-08-10T03:50:33.936Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/how-a-missing-s3-gateway-endpoint-route-quadrupled-our-nat-bill</loc>
    <lastmod>2026-07-16T05:51:05.305Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/how-one-stuck-pdb-doubled-our-eks-autoscaler-bill-in-five-days</loc>
    <lastmod>2026-07-16T03:35:36.497Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/recovering-a-status-page-from-a-half-finished-schema-migration</loc>
    <lastmod>2026-07-13T18:07:15.332Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/internal-control-plane-cascade-recovery</loc>
    <lastmod>2026-07-13T18:09:59.262Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/when-a-validating-webhook-blocks-the-configmap-that-would-fix-it</loc>
    <lastmod>2026-07-13T18:08:21.095Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/argocd-cve-2022-24348-a-secret-leak-that-hid-in-log-volume</loc>
    <lastmod>2026-07-13T18:08:53.655Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-grafana-oncall-acknowledgments-hang-after-a-helm-upgrade-migration</loc>
    <lastmod>2026-07-13T18:06:09.999Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/why-a-deleted-backup-lambda-kept-billing-9-400-ebs-snapshots</loc>
    <lastmod>2026-07-13T18:14:02.826Z</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-07-13T18:12:11.451Z</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-07-13T18:13:28.461Z</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-07-13T18:10:33.570Z</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-07-13T18:11:38.405Z</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-07-13T18:09:26.567Z</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-07-13T18:05:34.584Z</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-07-13T18:12:47.860Z</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-07-13T18:06:42.754Z</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-07-13T18:07:48.292Z</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-07-13T18:11:05.138Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/archive</loc>
    <lastmod>2026-08-13T07:35:54.107Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.infraforge.agency/recommendations</loc>
    <lastmod>2026-08-13T07:35:54.107Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>