Skip to main content
Version: 2.0 (Latest)

Connected Clusters in Loft

Loft can be run in a single cluster but it can also run in one cluster but users work with other clusters that are connected to Loft.

flowchart LR; CLI(Loft CLI / UI) --> Loft kubectl(kubectl, helm, ...) --> Loft Loft("<img src='/docs/media/loft-logo.svg' width='60' height='30' />") Loft -- uses --> ClusterAccess(Cluster Access) ClusterAccess --> ClusterA(Kubernetes Cluster A) ClusterAccess --> ClusterB(Kubernetes Cluster B) ClusterAccess --> ClusterC(Kubernetes Cluster ...) class Loft loft

Configuration

Metadata

Display Name

JSONPath in Cluster CRD:
 spec.displayName (type: string)

Kubernetes Name

JSONPath in Cluster CRD:
 metadata.name (type: string)

Description

JSONPath in Cluster CRD:
 spec.description (type: string)

Labels

JSONPath in Cluster CRD:
 metadata.labels (type: map[string]string)

Annotations

JSONPath in Cluster CRD:
 metadata.annotations (type: map[string]string)

Kube-Config

JSONPath in Cluster CRD:
 spec.config (type: SecretRef)

Default Templates

For Spaces

JSONPath in Cluster CRD:
 metadata.annotations["space.loft.sh/default-template"] (type: string)

For Virtual Clusters

JSONPath in Cluster CRD:
 metadata.annotations["virtualcluster.loft.sh/default-template"] (type: string)

Loft Agent

Ignore Agent

JSONPath in Cluster CRD:
 metadata.annotations["loft.sh/cluster-ignore-agent"] (type: string)

Agent Values

JSONPath in Cluster CRD:
 metadata.annotations["loft.sh/agent-values"] (type: string)

Direct Cluster Endpoint

JSONPath in Cluster CRD:
 metadata.annotations["loft.sh/direct-cluster-endpoint"] (type: string)

Insecure Endpoint

JSONPath in Cluster CRD:
 metadata.annotations["loft.sh/direct-cluster-endpoint-insecure"] (type: string)

CA Certificate

JSONPath in Cluster CRD:
 metadata.annotations["loft.sh/direct-cluster-endpoint-ca-data"] (type: string)

Access To Cluster

JSONPath in Cluster CRD:
 spec.access (type: Access[])

CRDs

Cluster

apiVersion
string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind
string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

object (io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta)

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

object (com.github.loft-sh.api.pkg.apis.management.v1.ClusterSpec)

ClusterSpec holds the specification

object (com.github.loft-sh.api.pkg.apis.management.v1.ClusterStatus)

ClusterStatus holds the status

{
  • "apiVersion": "string",
  • "kind": "string",
  • "metadata": {
    },
  • "spec": {
    },
  • "status": {
    }
}