import * as plugins from '../plugins.js'; import { type IDockerRegistryInfo } from '../data/docker.js'; import type { IServer } from './server.js'; export interface ICluster { id: string; data: { name: string; /** * a cluster has a machine user that governs access rights. */ userId: string; /** * how can the cluster reach cloudly */ cloudlyUrl?: string; /** * Cluster setup mode - manual by default, or auto-provision with cloud provider */ setupMode?: 'manual' | 'hetzner' | 'aws' | 'digitalocean'; /** * what servers are expected to be part of the cluster */ servers: IServer[]; /** * ACME info. This is used to get SSL certificates. */ acmeInfo: { serverAddress: string; serverSecret: string; }; sshKeys: plugins.tsclass.network.ISshKey[]; }; }