loft
Interact with Kubernetes clusters
TLDR
Install or upgrade Loft in the current Kubernetes cluster
Authenticate to a remote Loft instance
Create a virtual cluster with a specific space and cluster
List all virtual clusters
Switch context to a specific virtual cluster
Delete a virtual cluster
Show the current Loft username
Uninstall Loft from the cluster
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.