{
  "id": "edge.25-04-03",
  "name": "edge.25-04-03",
  "summary": "Improves Argo Events and NATS messaging reliability, adds JetStream configuration options, enables single-platform Docker builds with skipping for existing images, and adds PostgreSQL recovery from alternate backup buckets.",
  "skip": false,
  "branch": "stable.25-04",
  "highlights": [
    "Event stream replication fixed in `kube_argo_event_bus` — events now properly replicated across all NATS servers",
    "Fixed NATS ACK bug that could prevent event publishing entirely",
    "New single-platform image support and skip-if-exists logic in `wf_dockerfile_build`",
    "New `min_node_cpu` input for `kube_karpenter_node_pools`"
  ],
  "changes": [
    {
      "id": "68526f69-504a-4519-8cff-6bcdae7e94bd",
      "type": "improvement",
      "summary": "[`wf_dockerfile_build`](/docs/edge/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build) now has faster retry logic for failed builds, and the retry count is configurable via `retry_max_attempts`.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "wf_dockerfile_build",
          "summary": "Faster retry logic and configurable retry_max_attempts added"
        }
      ]
    },
    {
      "id": "3e7fbb88-010f-4a45-b2aa-5efddc04a34f",
      "type": "addition",
      "summary": "Adds `min_node_cpu` to [`kube_karpenter_node_pools`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_karpenter_node_pools) to set a minimum CPU threshold for nodes.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_karpenter_node_pools",
          "summary": "New min_node_cpu input for minimum node CPU threshold"
        }
      ]
    },
    {
      "id": "148bb62c-461b-4424-9d90-165baed1736d",
      "type": "addition",
      "summary": "Provides the capability to configure many JetStream Stream settings in [`kube_argo_event_bus`](/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_argo_event_bus).",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_argo_event_bus",
          "summary": "New JetStream Stream configuration options available"
        }
      ]
    },
    {
      "id": "4613b2f3-3181-4d93-b9f0-bef375fb9574",
      "type": "addition",
      "summary": "Adds support for single-platform images in [`wf_dockerfile_build`](/docs/edge/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build).",
      "impacts": [
        {
          "type": "iac-module",
          "component": "wf_dockerfile_build",
          "summary": "Single-platform image builds now supported"
        }
      ]
    },
    {
      "id": "0499f62f-85bc-4212-9bbb-4af206ed3877",
      "type": "addition",
      "summary": "Adds support for restoring from an alternate backup bucket in [`kube_pg_cluster`](/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_pg_cluster).",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_pg_cluster",
          "summary": "Can now restore from an alternate backup bucket"
        }
      ]
    },
    {
      "id": "6455639d-2b4e-4f75-bdd9-20cbb02ef3ea",
      "type": "addition",
      "summary": "Adds support for unrestricted S3 presigned URLs in [`kube_sa_auth_aws`](/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_sa_auth_aws).",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_sa_auth_aws",
          "summary": "Unrestricted S3 presigned URL support added"
        }
      ]
    },
    {
      "id": "dd943ab1-8439-4064-9f25-a745b26da63d",
      "type": "fix",
      "summary": "Event streams in [`kube_argo_event_bus`](/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_argo_event_bus) are now properly replicated across all NATS servers.",
      "references": [
        {
          "type": "issue-report",
          "summary": "NATS event bus replication not working properly",
          "link": "https://github.com/Panfactum/stack/issues/309"
        }
      ],
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_argo_event_bus",
          "summary": "Event streams now properly replicated across all NATS servers"
        }
      ]
    },
    {
      "id": "8f844a31-b563-4138-8b69-7ab5272b9d44",
      "type": "fix",
      "summary": "Resolves issue in [`kube_nats`](/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_nats) that prevented ACKs from being sent when synchronously publishing events in some cases, which could result",
      "references": [
        {
          "type": "issue-report",
          "summary": "NATS ACK failures during synchronous event publishing",
          "link": "https://github.com/Panfactum/stack/issues/309"
        }
      ],
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_nats",
          "summary": "Fixed ACK bug that could block event publishing entirely"
        }
      ]
    },
    {
      "id": "eda6f1c4-e000-4ac0-8378-dcd78626ee13",
      "type": "fix",
      "summary": "Resolves issue in [`kube_argo`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_argo) that prevented resources controlled by Argo Events from being updated without a controller restart.",
      "references": [
        {
          "type": "issue-report",
          "summary": "Argo Events resources not updated without controller restart",
          "link": "https://github.com/Panfactum/stack/issues/308"
        }
      ],
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_argo",
          "summary": "Argo Events resources now update without controller restart"
        }
      ]
    },
    {
      "id": "f1ba5203-a6fd-4135-8dac-ee1a06c4a4da",
      "type": "fix",
      "summary": "Fixes the nix version check to account for the new version format provided by the Determinate Systems installer.",
      "references": [
        {
          "type": "issue-report",
          "summary": "Nix version check fails with Determinate Systems installer format",
          "link": "https://github.com/Panfactum/stack/issues/312"
        }
      ]
    },
    {
      "id": "554d0e27-d027-4c54-8c96-ac405fa7cd00",
      "type": "fix",
      "summary": "Fixes a problem in [`wf_dockerfile_build`](/docs/edge/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build) that caused the workflow to fail if the image already existed in the ECR repository.",
      "references": [
        {
          "type": "issue-report",
          "summary": "wf_dockerfile_build fails when image already exists in ECR",
          "link": "https://github.com/Panfactum/stack/issues/247"
        }
      ],
      "impacts": [
        {
          "type": "iac-module",
          "component": "wf_dockerfile_build",
          "summary": "Build now skipped when image already exists in ECR"
        }
      ]
    },
    {
      "id": "18b77526-8da1-4f59-98a6-6f3e03e98111",
      "type": "fix",
      "summary": "Velero backup logs are now available in the `velero` CLI.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_velero",
          "summary": "Backup logs now accessible via the velero CLI"
        }
      ]
    }
  ],
  "on_upgrade_path": true,
  "list_url": "/docs/changelog/edge.json",
  "llm_txt_url": "/docs/changelog/edge.25-04-03/llm.txt",
  "next": "/docs/changelog/edge.26-04-05.json",
  "prev": "/docs/changelog/edge.25-03-26.json"
}