Skip to content

[Compute Separation][PR-M10+HB4A] Publish the dedicated compute Host artifact #11986

Description

Roadmap mapping

Field Value
Roadmap IDs PR roadmap milestone 10 + HB4A
Lane Host product artifact / image handoff
BYOC milestone M1
Parent #11965
Depends on HT8b
Blocks BYOC image build and internal BYOC #219
Pull request One PR

Why this PR exists

HT7 creates the Linux Azure.Functions.Host executable shell and static Client-composition entrypoint. HT8a/HT8b populate the Client graph and prove its lifecycle in tests. The beta stamp still needs an immutable, deployable compute Host artifact and a versioned image-input contract.

This PR turns the existing executable into a published, isolated, runnable artifact. It does not create or rename the executable, composition, or Program.

Source material

  • Incremental roadmap milestone 10, compute executable artifact.
  • ga-plan.md: standard/Client/WorkerProxy output isolation.
  • Roadmap HB4A and integration gates.
  • platform-control-apis.md, runtime pod composition.
  • HT7 Linux executable shell and HT8a/HT8b runtime behavior.
  • WorkerProxy executable/Dockerfile precedent and internal BYOC #219.

Current state

HT7 provides the Linux-only Azure.Functions.Host project, executable entrypoint, ClientWorkerComposition selection, solution wiring, and placeholder build/publish checks. HT8a/HT8b make that composition runnable in tests.

No official compute artifact, publish profile, CI publication, image-input contract, dependency/output isolation gate, or process/container smoke exists.

Proposed implementation

  1. Keep the existing Azure.Functions.Host project, executable name, Program, and Client composition; do not add another executable root.
  2. Preserve existing runtime configuration behavior; process-level smoke coverage is deferred to [Compute Separation] Add standalone Host and WorkerProxy artifact smoke tests #12028 rather than adding new runtime behavior to the artifact-publishing PR.
  3. Add official CI and a Linux compute publish profile/artifact.
  4. Add real publish-output and .deps.json tests:
    • compute contains Rpc.Client, shared Grpc/Script/Core, and the Client product;
    • compute excludes Rpc.Server local-process implementation, standard WebHost, bundled local workers, and WorkerProxy;
    • standard excludes Rpc.Client, Azure.Functions.Host, and WorkerProxy.
  5. Remove any HT7-only interim publish filtering once the Host references the final Hostable/Core layer directly.
  6. Add a container input layout and reviewed handoff document: publish directory, entrypoint, exact HT8b environment names/defaults/errors, M1 config opt-in, explicit secret-storage setting, ports, base/runtime requirements, and artifact SHA/digest identification.
  7. Track process/container smoke separately in [Compute Separation] Add standalone Host and WorkerProxy artifact smoke tests #12028; it is not a prerequisite for this artifact-publishing PR.

Ownership and lifecycle

Host owns artifact and input contract. Image owners own production image assembly, promotion, ACR, and pools. The existing Program owns only static composition selection; this PR does not re-express service ownership from HT8.

Tests and evidence

  • compute/standard publish file and deps inclusion/exclusion assertions;
  • reference direction: no Rpc.Server/standard WebHost in compute and no standard reference to Client product;
  • solution/analyzer and CI artifact publication;
  • attach both file lists, empty standard deps diff, and resulting artifact identifier for internal BYOC #219;
  • HT14 evidence.

Explicit exclusions

  • no new executable project, executable name, Program, or placeholder composition;
  • no ACR/pool/promotion pipeline or production image hardening;
  • no placeholder pools;
  • no auth/certificates;
  • no WorkerProxy sidecar packaging into this artifact;
  • no customer host.json/app mount/code download;
  • no link/capacity endpoints;
  • no standard publish behavior change;
  • no runtime topology flag;
  • no Aspire automation or post-M1 scope.

Acceptance criteria

  • the existing Azure.Functions.Host publishes through official CI as an isolated Linux artifact;
  • compute publish includes the documented entrypoint and has exact output isolation;
  • standard publish/deps is unchanged;
  • image owner accepts the versioned layout/environment/port/artifact contract;
  • CI publishes an immutable artifact identifier.

PR stop condition

Stop when the existing dedicated executable publishes an isolated artifact and the image-input contract is reviewed. Process/container smoke coverage is deferred to #12028 and does not block this issue. HT9, capacity publication, production image promotion, and stamp execution remain separate.

Deferred smoke coverage

Process/container smoke testing was split into #12028 for a future milestone (currently unmilestoned). That issue covers artifact-based Host/WorkerProxy startup, the external-worker HTTP flow, and bounded graceful shutdown/cleanup. It is not a BYOC-M1 artifact-publishing acceptance gate or a prerequisite for #12027. Existing unit tests remain unchanged; bundle-cache/fallback testing is covered elsewhere.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

compute-separationCompute separation / external worker support

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions