73 lines
1.3 KiB
TypeScript
73 lines
1.3 KiB
TypeScript
|
import * as plugins from '../plugins.js';
|
||
|
|
||
|
export interface IBareMetal {
|
||
|
id: string;
|
||
|
data: {
|
||
|
hostname: string;
|
||
|
|
||
|
/**
|
||
|
* IPMI management IP address
|
||
|
*/
|
||
|
ipmiAddress?: string;
|
||
|
|
||
|
/**
|
||
|
* Encrypted IPMI credentials
|
||
|
*/
|
||
|
ipmiCredentials?: {
|
||
|
username: string;
|
||
|
passwordEncrypted: string;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Primary network IP address
|
||
|
*/
|
||
|
primaryIp: string;
|
||
|
|
||
|
/**
|
||
|
* Provider of the physical server
|
||
|
*/
|
||
|
provider: 'hetzner' | 'aws' | 'digitalocean' | 'onpremise';
|
||
|
|
||
|
/**
|
||
|
* Data center or location
|
||
|
*/
|
||
|
location: string;
|
||
|
|
||
|
/**
|
||
|
* Hardware specifications
|
||
|
*/
|
||
|
specs: {
|
||
|
cpuModel: string;
|
||
|
cpuCores: number;
|
||
|
memoryGB: number;
|
||
|
storageGB: number;
|
||
|
storageType: 'ssd' | 'hdd' | 'nvme';
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Current power state
|
||
|
*/
|
||
|
powerState: 'on' | 'off' | 'unknown';
|
||
|
|
||
|
/**
|
||
|
* Operating system information
|
||
|
*/
|
||
|
osInfo: {
|
||
|
name: string;
|
||
|
version: string;
|
||
|
kernel?: string;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Array of ClusterNode IDs running on this hardware
|
||
|
*/
|
||
|
assignedNodeIds: string[];
|
||
|
|
||
|
/**
|
||
|
* Metadata for provider-specific information
|
||
|
*/
|
||
|
providerMetadata?: {
|
||
|
[key: string]: any;
|
||
|
};
|
||
|
};
|
||
|
}
|