Skip to content

Future: promote cluster-targeting config from local to core when hosted clusters land #2

Description

@kreneskyp

Context

In the StR-005 / FR-020 core plugin schema (branch `feat/shared-config-secrets`), we deliberately kept cluster-targeting settings (cluster context, kindClusterName, internal/external base domains) inside `packages/local` rather than promoting them to the `core` plugin schema.

Rationale: today `local` is the only "cluster" the CLI talks to (a local kind cluster). Putting a `core.cluster.context` setting in the schema now would be speculative — there's no hosted alternative to switch to.

Trigger

This issue should be picked up when hosted Agent IX clusters land and `ix up ` (or any other command) needs to ask "local or hosted?" The right answer at that point is to promote a small set of cluster-context settings from `local` to `core` so every plugin can read them through one canonical place.

Likely scope (when triggered)

  • Promote `cluster.context` (or equivalent name) into `core` schema. Values include:
    • `local` (kind cluster — current default)
    • `hosted-` (hosted Agent IX clusters when they exist)
    • User-named contexts pointing at arbitrary kubeconfig contexts
  • Decide what stays in `local` (kind-specific: `kindClusterName`, `internalBaseDomain`, `externalBaseDomain`) vs what moves to `core` (`cluster.context`, possibly `cluster.namespace`).
  • Ensure cross-plugin readers (`local`, `elements`, future hosted plugin) all read context from the same place.
  • Migration path: existing `local` users have implicit `local` context; explicit `core.cluster.context` set on first command of v0.x+1.

Out of scope

  • Multi-cluster commands (`ix --cluster=hosted up `) — that's a CLI flag/UX concern, not a schema concern; can be added independently.
  • Kubeconfig path overrides — those are already env-driven (`KUBECONFIG`); no need for ix-cli to own them.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions