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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions