This commit is contained in:
keyhan
2026-04-05 15:22:01 +03:30
commit 33be1649c4
82 changed files with 23956 additions and 0 deletions
@@ -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;
}