Skip to content

Hand over agents to the estate path #658

Closed as not planned
Closed as not planned

Description

@ExtraToast

Parent

Rewrite the spec and the compiler in place, release 1.0.0, and hand over every Project

What to build

The agents Project leaves fleet-infra and is delivered from the estate repository, in the order #381 sets.

Add the estate's agents.project.yml from the agents example once it models what runs live. It stays in agents-system; the hermes-data, claude-credentials and codex-credentials claims must keep their live names.

The estate-side changes are recorded in the estate repository's HANDOVER.md.

Acceptance criteria

  • The render's diff against the Project's hand-written objects in fleet-infra is clean, or each difference is explained.
  • The Project's Reconcile Units report Ready.
  • A consumer-visible value checks out: hermes answers on its route, and kubernetes-mcp-server lists the cluster.
  • One change flips the handover ledger entry and deletes the hand-written objects, the descriptor and the drift-check entry.

Blocked by

Activity

  1. added
    type: choreMaintenance work without intended behavior change.
    area: platformPlatform, deployment, cluster, or runtime concern.
    priority: P1High; important and should be handled in the current iteration.
    status: blockedCannot move forward until an external dependency is resolved.
    on Oct 27, 2026
  2. ExtraToast commented on Oct 27, 2026

    @ExtraToast
    ContributorAuthor

    Resume here

  3. ExtraToast commented on Oct 29, 2026

    @ExtraToast
    ContributorAuthor

    #654 has landed (#698): the agents example now models what runs live. The estate's agents file copies spec/v1/examples/agents/ as it stands on main: hermes and kubernetes-mcp-server, with agents-api and agents-ui parked.

    Before this handover can run hermes and the MCP server as they run live, these RENDER-GAPS.md rows need deciding:

    The others (#694 grey-cloud host, #696 optional keys, #697 a host split by path) degrade it without stopping it.

    Two more things change with the example:

    • The worked Platform document admits agents/kubernetes-mcp-server in apiAccess.holders. A cluster-wide read is a privileged role, so it runs at the critical priority class.
    • hermes signs in against the estate's provider, not auth-api.
  4. ExtraToast commented on Oct 29, 2026

    @ExtraToast
    ContributorAuthor

    #380 is closed: delivery, _canary and _estate are on the 1.0 contract (evidence in #380 (comment)).

  5. ExtraToast commented on Oct 29, 2026

    @ExtraToast
    ContributorAuthor

    The agents handover is prepared: four draft pull requests, nothing merged. Validated and composed with deploy-kit 1.2.0, the version the estate's toolkit.yml pins; 1.3.0 renders the same objects plus two external-check ConfigMaps.

    In merge order:

    1. JorisJonkers-dev/fleet-infra#559: mark agents-system (both copies) and the claims hermes-data, claude-credentials and codex-credentials never to be pruned. Also set the three volumes to Retain by hand. Before the window.
    2. JorisJonkers-dev/fleet-infra#560: orphan the Project. apps-agents and apps-stateless mark everything they apply, and apps-agents stops pruning. In the window, step 1.
    3. JorisJonkers-dev/fleet-infra#561: drop the manifests and flux-system/apps-agents, whose name the estate's unit shares. hermes's routes move to apps-edge. Its NetworkPolicy moves to apps-stateless and stays enforced, now also admitting kubernetes-mcp-server-primary. In the window, step 2.
    4. feat: hand the agents Project over to the estate path estate#258: the estate file, the Platform additions, the ledger flip, and docs/runbooks/agents-handover.md with the full render-against-live diff. In the window, step 3, after the old hermes is scaled to 0.

    Each fleet-infra PR was test-merged with #531 and with mail's #546 to #549. The conflicts with #531 are mechanical, and each PR body lists them.

    Open blockers:

    • D1, a maintainer decision: which hermes config.yaml ships. The estate is public, so it carries a stand-in, and the seeded Asset overwrites the live config on every start. Unless the live file ships, hermes loses its model aliases, its provider_routing.only, its system prompt and four MCP servers. The live file holds no secret.
    • D4, memory: hermes's request rises from 1Gi to 3Gi. enschede-gtx-960m-1 fits it by 48Mi. The recommendation is to delete the retired auth-bootstrap pod first.
    • D2: the stale /opt/data/.env is moved aside after the flip.
    • D3: agents-api and agents-ui stay parked, as the example has them.
    • Signing in: the estate's Platform document names no sign-in provider, so hermes keeps signing in against auth-api as live, without the example's client block.
    • Before the flip: the utility handover (Hand over utility to the estate path #657); pre-check 6, which reads that /opt/data is owned by uid 10000, because local-path applies no fsGroup.
    • No Vault write is needed. Every key is optional, and the three that are used are present (key names only, from the synced Secret).
    • RENDER-GAPS A8 (A skills sync that fetches sources onto a Process's volume before it starts has no declaration #706) stays open: hermes runs with its bundled skills.
  6. ExtraToast commented on Oct 30, 2026

    @ExtraToast
    ContributorAuthor

    D1 is done: estate#258 now ships hermes's live config. platform/agents/config/hermes/config.yaml is fleet-infra's live config.yaml (the hermes-config ConfigMap on main at 38715a3, identical to the cluster's). The only change is its three @VAR@ markers, rewritten as ${GITHUB_PAT}, ${HINDSIGHT_API_TOKEN} and ${OVERLEAF_SESSION}.

    • No secret value: those three markers are its only credentials, and gitleaks finds nothing. Each of the three reaches hermes through env/hermes/base.env.
    • Revalidated on deploy-kit 1.3.0, after merging the estate's main:
      • CI validate: accepted (112 read);
      • the release matrix through Publish Fragment v0.38.0's pack.sh: every entry accepted;
      • a local composition: composed 20 artifacts, with the seeded ConfigMap hermes-config-yaml-868e18008f byte-identical to the file.
    • Two side effects, left as they are:
    • fleet-infra#559 is merged. fleet-infra#561 now has main merged in, with Record that a Project owns every object it delivers #555's edge-system admissions carried into the moved hermes policy.

    D4, the memory margin, stays open for the maintainer. All PRs remain drafts.

  7. removed
    status: blockedCannot move forward until an external dependency is resolved.
    on Oct 30, 2026
  8. ExtraToast commented on Oct 30, 2026

    @ExtraToast
    ContributorAuthor

    Not planned: agents is deprecated and will not be handed over (maintainer's decision, 2026-10-30). estate#265 takes it off the handover ledger; estate#258 and fleet-infra#560/#561 are closed. fleet-infra#559's prune marks and Retain volumes stay, and are harmless.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: platformPlatform, deployment, cluster, or runtime concern.priority: P1High; important and should be handled in the current iteration.type: choreMaintenance work without intended behavior change.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions