Skip to content

# Kubernetes: add node type and configuration #459

Description

@ArshSSandhu

Parent: #441

Summary

Add Kubernetes as a configurable Manager node type and persist the connection settings required by the Kubernetes provider.

This issue only establishes the Manager-side node configuration and provider dispatch. Actual Kubernetes API operations and workload management will be implemented in follow-up issues.

Scope

  • Add kubernetes as a valid nodeType.
  • Add Kubernetes node configuration fields:
    • kubeconfigPath
    • kubeContext
    • kubeNamespace
  • Default kubeNamespace to default.
  • Add a backwards-compatible Sequelize migration.
  • Update node create/update validation.
  • Update Node.hasApiAccess().
  • Update Node.provisionableWhere().
  • Add Kubernetes dispatch in Node.api().
  • Add a minimal KubernetesApi provider skeleton.
  • Update node serialization.
  • Update OpenAPI.
  • Update client TypeScript types.
  • Update node create/edit UI.
  • Add tests for configuration and provider dispatch.

Security

  • Do not expose kubeconfig contents through API responses.
  • Do not log Kubernetes credentials, certificates, or tokens.
  • TLS verification should remain enabled by default.

Acceptance criteria

  • kubernetes is accepted as a node type.
  • Kubernetes configuration can be persisted.
  • Existing Proxmox, Docker, and Dummy nodes remain compatible.
  • Invalid Kubernetes configuration returns a useful 4xx error.
  • Node.api() dispatches Kubernetes nodes to KubernetesApi.
  • hasApiAccess() supports Kubernetes.
  • provisionableWhere() supports Kubernetes.
  • OpenAPI is updated.
  • Client types are updated.
  • Node create/edit UI supports Kubernetes.
  • Tests cover the new validation and dispatch behavior.

Out of scope

  • Connecting to the Kubernetes API
  • Cluster discovery
  • Deployment creation
  • Workload lifecycle
  • Reconfiguration
  • Kubernetes Services, Ingress, or storage

Activity

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions