init
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import {
|
||||
Entity,
|
||||
PrimaryGeneratedColumn,
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
UpdateDateColumn,
|
||||
} from 'typeorm';
|
||||
import { ClusterStatus } from '../../common/enums';
|
||||
|
||||
@Entity('clusters')
|
||||
export class Cluster {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@Column()
|
||||
name: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
description: string;
|
||||
|
||||
@Column({ type: 'enum', enum: ClusterStatus, default: ClusterStatus.ACTIVE })
|
||||
status: ClusterStatus;
|
||||
|
||||
@Column({ type: 'text' })
|
||||
kubeconfig: string; // Encrypted kubeconfig content
|
||||
|
||||
@Column()
|
||||
apiServer: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
region: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
provider: string; // e.g., 'aws', 'gcp', 'azure', 'bare-metal'
|
||||
|
||||
@Column({ default: false })
|
||||
isDefault: boolean;
|
||||
|
||||
// Resource quotas (cluster-level defaults for new namespaces)
|
||||
@Column({ default: '4' })
|
||||
defaultCpuLimit: string;
|
||||
|
||||
@Column({ default: '8Gi' })
|
||||
defaultMemoryLimit: string;
|
||||
|
||||
@Column({ default: 10 })
|
||||
maxAppsPerUser: number;
|
||||
|
||||
@Column({ type: 'jsonb', nullable: true })
|
||||
metadata: Record<string, any>;
|
||||
|
||||
@CreateDateColumn()
|
||||
createdAt: Date;
|
||||
|
||||
@UpdateDateColumn()
|
||||
updatedAt: Date;
|
||||
}
|
||||
Reference in New Issue
Block a user