LinuxCommandLibrary

loft

Interact with Kubernetes clusters

TLDR

Install or upgrade Loft in the current Kubernetes cluster

$ loft start
copy

Authenticate to a remote Loft instance
$ loft login [https://loft.example.com]
copy

Create a virtual cluster with a specific space and cluster
$ loft create vcluster [vcluster_name] [[-s|--space]] [space_name] [[-c|--cluster]] [cluster_name]
copy

List all virtual clusters
$ loft list vclusters
copy

Switch context to a specific virtual cluster
$ loft use vcluster [vcluster_name]
copy

Delete a virtual cluster
$ loft delete vcluster [vcluster_name]
copy

Show the current Loft username
$ loft vars username
copy

Uninstall Loft from the cluster
$ loft uninstall
copy

SYNOPSIS

The loft command serves as the primary interface for the loft platform, allowing users to manage development environments, virtual clusters, and project resources. It follows a subcommand-based structure.

Syntax:
loft [global options] command [command options] [arguments]
loft command --help

Common Commands:
  loft login <server-url> [--access-key <key>]
  loft create space <space-name>
  loft use space <space-name>
  loft dev [options] [-- <command-to-run>]
  loft connect <vcluster-name> --port <local-port>:<remote-port>
  loft get [type] [name]
  loft delete [type] [name]

PARAMETERS

--context
    Specifies the loft context to use for the command, overriding the default or current context.

--kube-context
    Specifies the Kubernetes context to use for operations that directly interact with a Kubernetes cluster.

--server
    Overrides the configured loft server URL for the current command execution.

--output
    Sets the output format for data retrieval commands (e.g., json, yaml, table).

--log-level
    Configures the verbosity of log output (e.g., info, debug, warn, error).

--help, -h
    Displays help information for the command or subcommand.

DESCRIPTION

The loft command-line interface (CLI) is the primary tool for interacting with the loft platform, a Kubernetes-native framework designed to provide self-service access to development environments for engineering teams. It enables developers to quickly create, manage, and share isolated virtual clusters or spaces on demand, abstracting away complex Kubernetes configurations. This significantly accelerates development workflows by providing instant access to disposable, production-like environments, reducing infrastructure costs, and improving compliance through centralized management. loft helps to eliminate cluster sprawl, streamline developer onboarding, and facilitate team collaboration by allowing developers to spin up dedicated environments without requiring direct administrative access to the underlying Kubernetes cluster. It integrates seamlessly with existing CI/CD pipelines and developer tools, making it an essential component for modern cloud-native development.

CAVEATS

The loft CLI requires a running loft management server to function, as it primarily acts as a client for this platform. It is not a standalone Kubernetes cluster manager like kubectl but rather an orchestration layer designed to provide self-service environments on top of existing Kubernetes infrastructure. While it simplifies access and management of environments, certain advanced Kubernetes operations may still require direct kubectl usage. Its full capabilities are dependent on the features and configuration of the deployed loft platform.

CORE CONCEPTS

loft introduces several key concepts to facilitate its self-service capabilities:

  • Spaces: Isolated, multi-tenant environments within a Kubernetes cluster, providing a dedicated namespace or a virtual cluster for each team or project.
  • Virtual Clusters: Lightweight, high-performance Kubernetes clusters that run on top of an underlying host cluster, offering true isolation and administrative capabilities similar to a full cluster without the overhead.
  • Projects: A way to group spaces, virtual clusters, and users, enabling centralized management of access control and resource quotas across different environments.

HISTORY

The loft project emerged from the team behind devspace.sh, initially focusing on virtual clusters as a solution to provide isolated development environments within shared Kubernetes clusters. Over time, its scope expanded to become a comprehensive self-service platform for managing developer access, projects, and resources across multiple Kubernetes clusters. It is an actively developed open-source project, with a strong focus on simplifying Kubernetes for developers and enabling efficient team collaboration. Its development continues to be driven by the needs of cloud-native development workflows, aiming to bridge the gap between developers and complex Kubernetes infrastructure.

SEE ALSO

kubectl(1), helm(1), minikube(1)

Copied to clipboard