Repository navigation
fix(run): a dependency's root workload starts under the composition (lands fix/dependency-root-workload) - #1249
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lands the fixes stranded on
fix/dependency-root-workload(head560ed7aa, no PR, in no release) onto current main (v0.1.228,2eef4c82), so obin-ai/module-runtime can pin a CLI that both parsesinstallation_roleand admits an excluded root with its own workload identity.The three commits
0bb3c393fix(sdk): deliver resolved workspace groups to dependency sessions — cherry-picked cleanly (here589b13d5).GetConfigurationreturned onlyCODEFLY__ENVIRONMENTinProcessVariables, so a dependency SDK session (dependencies.WithDependencies) never received workspace configuration groups such asauthority/endpoint. It now carries the groups resolved by the sameWorkspaceConfigurationsFora running service uses, which keeps undeclared root credentials withheld.34223f47fix(run): admit dependency clients with their own workload identity — cherry-picked with conflicts resolved against main (herecbc7d847). An--exclude-rootroot that declaresmodule-identity: trueis now in the launcher's authority declaration set (LocalAuthorityServices), and its credential is projected and its signed manifest admitted at the dependency barrier. It is never marked Running and publishes no endpoint. The projection reaches the SDK throughGetConfiguration.ProcessVariables(DependencyProcessVariables) and reaches--output-env. Refresh ends on Stop/Shutdown.docs/orchestration.mdand theWorldstruct inflow.gokept both sides. Inexcluded_root_output_env.go, main's batched, validated output-env export (ValidateModuleArtifactDelivery→outputRecords→writeOutputRecords) is kept, and its override map is nowflow.DependencyProcessVariables(originService)instead of the hand-built copy. That is the one change the commit made to that function.cmd/run's privateworkloadTokenFileVariablein favour ofgitops.WorkloadTokenFileVariable, so the newTestExternalWorkloadIsAdmittedWithoutPublishingReadinessuses that constant. I amended it into the cherry-pick so every commit builds.560ed7aafix(gitops): deliver workload credential carrier for projected identities — skipped: already on main in another form. feat(delivery): a GitOps rollout delivers the signed pair through the composition interface #1240 (7b4ce84f) addedgitops.WorkloadTokenFileVariable. The render now handsCODEFLY__WORKLOAD_TOKEN_FILEto the authenticating container with the mount it projects, and allows exactly that one name/value pair (projectedTokenPathEntry,holdTokenPathToItsMount). The native run uses the same constant (cmd/run/launcher.go). The commit could not land as written anyway:130b3d169a9e, which is not on core's main (82 behind / 1 ahead of the v0.19.18 line this repo pins). That would dropinstallation_roleparsing.resources.WorkloadTokenFileKeyclassifier, which core main does not have.provided→continue). That conflicts with main's rule that the carrier only sits beside the render's ownidentity-tokenmount. It is a deployed-render question, not part of the native admission path. If it is still wanted, it needs its own change against main's design.Runtime admission lane: before and after
These runs use module-runtime PR #332's head (
2b0c095) andpython3 -I scripts/qualify-taskservice.py --suite admissionwithPOSTGRES_BINset to local PostgreSQL 17.49101ae), with both v0.1.228 and this branch, the lane fails before any CLI change matters. Authority'slocalhost refuses runtime's manifest:field installation_role not found in type solutionhost.Authority. The authority module at49101aepredatesinstallation_role, so module-runtime must also move itsqualification/admissionauthority pin. No CLI release fixes that.a61acf94(itslocalservice builds on core2aa2e9aa, which parsesinstallation_role). This was an uncommitted change in a throwaway worktree.go install github.com/codefly-dev/cli@2eef4c82): FAILED.TestLocalFixtureProfileAdmitsWithinItsClaimfails withauthority/endpoint is not configured: the composition names no authority for the runtime to ask. The SDK session got no workspace groups, which is the symptom in Release the dependency-root workload fixes (fix/dependency-root-workload) on a line that parses installation_role #1248.go build ./cmd/codeflyatcbc7d847): PASSED. All 18 required tests passed, includingTestLocalFixtureProfileAdmitsWithinItsClaim.Checks run
GOWORK=off GOTOOLCHAIN=auto go build ./...andgo test ./...across the whole repo: passed../pkg/web/go-grpc.golangci-lint run(v2.15.0 locally; CI pins v2.14.0) oncmd/run,pkg/orchestrationandpkg/web/go-grpc: 0 issues. A full./...run reports 3errcheckfindings incmd/terminal.go, which this PR does not touch. I did not fix them here, to keep this PR to the cherry-picks.Reuse
This reuses
Flow.WorkspaceConfigurationsFor(the running-service resolver), the launcher's existingproject/hostDelivery/admitSelectedadmission path, and main'sgitops.WorkloadTokenFileVariablecarrier. It adds no second mechanism.Classification
Fix at the owning place: the CLI's dependency-session configuration RPC and native-run admission.
Not verified
Closes #1248
🤖 Generated with Claude Code