42 lines
		
	
	
		
			878 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			878 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as plugins from '../plugins.js';
 | |
| 
 | |
| import { type IDockerRegistryInfo } from '../data/docker.js';
 | |
| import type { IClusterNode } from './clusternode.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';
 | |
| 
 | |
|     /**
 | |
|      * Nodes that are part of the cluster
 | |
|      */
 | |
|     nodes: IClusterNode[];
 | |
| 
 | |
|     /**
 | |
|      * ACME info. This is used to get SSL certificates.
 | |
|      */
 | |
|     acmeInfo: {
 | |
|       serverAddress: string;
 | |
|       serverSecret: string;
 | |
|     };
 | |
| 
 | |
|     sshKeys: plugins.tsclass.network.ISshKey[];
 | |
|   };
 | |
| }
 |