Skip to content

CC-8217 [wrangler] Apply application-level container changes when rollout_kind is "none"#14719

Open
Maximo-Guk wants to merge 1 commit into
mainfrom
fix/rollout-kind-none-allows-app-changes
Open

CC-8217 [wrangler] Apply application-level container changes when rollout_kind is "none"#14719
Maximo-Guk wants to merge 1 commit into
mainfrom
fix/rollout-kind-none-allows-app-changes

Conversation

@Maximo-Guk

@Maximo-Guk Maximo-Guk commented Jul 16, 2026

Copy link
Copy Markdown
Member

Previously, setting rollout_kind: "none" on a container skipped the application modify entirely, so application-level changes (e.g. max_instances, scheduling_policy, constraints) were silently dropped — despite being shown in the deploy diff. The containers team confirmed rollout_kind should only control rollouts.

With this change, both wrangler deploy and wrangler cloudchamber apply still call the application modify endpoint when rollout_kind is "none"; only the rollout creation is skipped, so existing instances keep running the current version until a rollout is triggered.

The --containers-rollout=none CLI flag is unaffected: it remains a separate escape hatch that skips the Docker build and container deploy entirely.


  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:
  • Public documentation
    • Cloudflare docs PR(s):
    • Documentation not necessary because: rollout_kind is a hidden config option (@hidden, not in the public JSON schema); the JSDoc on the config type has been updated to describe the new semantics.

A picture of a cute animal (not mandatory, but encouraged)

🤖 Generated with Claude Code


Open in Devin Review

…_kind is none

Previously rollout_kind: "none" skipped the application modify entirely,
silently dropping changes to max_instances, scheduling_policy, constraints,
etc. Now the application is still updated; only the rollout is skipped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-project-automation github-project-automation Bot moved this to Untriaged in workers-sdk Jul 16, 2026
@workers-devprod
workers-devprod requested review from a team and dario-piotrowicz and removed request for a team July 16, 2026 12:34
@workers-devprod

workers-devprod commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Codeowners approval required for this PR:

  • @cloudflare/wrangler
  • ✅ @cloudflare/cloudchamber
Show detailed file reviewers
  • .changeset/rollout-kind-none-app-changes.md: [@cloudflare/wrangler]
  • packages/workers-utils/src/config/environment.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/cloudchamber/apply.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/tests/containers/deploy.test.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/cloudchamber/apply.ts: [@cloudflare/wrangler]
  • packages/wrangler/src/containers/deploy.ts: [@cloudflare/wrangler]

@ask-bonk

ask-bonk Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Confirmed. When --containers-rollout=none is passed, deployContainers (line 726-729 guard) is never called, so deploy.ts:apply() is never reached. The CLI flag path is genuinely separate from the config rollout_kind: "none" path. The PR's claim holds.

I've thoroughly reviewed the logic:

  • deploy.ts and cloudchamber/apply.ts now always push/execute the modify action, gating only the rollout on rollout_kind !== "none".
  • Type unions (CreateApplicationRolloutRequest.kind | "none") are correctly narrowed before the rollout API call.
  • The diff.changes === 0 early-return still prevents needless modifies.
  • The --containers-rollout=none flag path is separate (skips container deploy entirely upstream), so it's unaffected.
  • Tests validate the modify body and the rollout-skip behavior.
  • Changeset is correct (patch, wrangler, no headers, describes user-facing impact).

No logic bugs, security issues, or backward-compatibility violations found.

LGTM

github run

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@pkg-pr-new

pkg-pr-new Bot commented Jul 16, 2026

Copy link
Copy Markdown
@cloudflare/autoconfig

npm i https://pkg.pr.new/@cloudflare/autoconfig@14719

@cloudflare/config

npm i https://pkg.pr.new/@cloudflare/config@14719

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@14719

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@14719

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@14719

miniflare

npm i https://pkg.pr.new/miniflare@14719

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@14719

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@14719

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@14719

@cloudflare/vitest-pool-workers

npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@14719

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@14719

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@14719

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@14719

wrangler

npm i https://pkg.pr.new/wrangler@14719

commit: f768a0c

@Maximo-Guk Maximo-Guk changed the title [wrangler] Apply application-level container changes when rollout_kind is "none" CC-8217 [wrangler] Apply application-level container changes when rollout_kind is "none" Jul 16, 2026
expect(std.stderr).toMatchInlineSnapshot(`""`);
});

test("can skip a simple existing application and create other", async ({

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm concerned this will be a breaking change. I believe there are currently active users that use rollout_kind = "none" to explicitly skip a container update entirely.

I think partial updates will need to be done through the API directly, or through a new path in wrangler, rather than modifying existing behavior.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The output of a wrangler deploy is confusing and should be updated.
There was a wip fix for the output that I forgot to push through and merge (#13757). Happy to also discuss offline what the best approach here would be.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @nikitassharma , I trust y'alls judgement on whatever path forward you want to take here. Feel free to adjust anything in this PR or close it entirely!

@github-project-automation github-project-automation Bot moved this from Untriaged to In Review in workers-sdk Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

4 participants