This commit is contained in:
@@ -71,9 +71,37 @@ export class LinkLauncherVersionSourceDto {
|
||||
}
|
||||
|
||||
|
||||
export class DeploymentResourceLimitsDto {
|
||||
@IsOptional()
|
||||
@Type(() => Number)
|
||||
@IsInt()
|
||||
replicas?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
cpuRequest?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
cpuLimit?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
memoryRequest?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
memoryLimit?: string;
|
||||
}
|
||||
|
||||
export class DeployLauncherBackendDto {
|
||||
@IsString()
|
||||
image!: string;
|
||||
|
||||
@IsOptional()
|
||||
@ValidateNested()
|
||||
@Type(() => DeploymentResourceLimitsDto)
|
||||
resources?: DeploymentResourceLimitsDto;
|
||||
}
|
||||
|
||||
export class CreateLauncherBuildJobDto {
|
||||
|
||||
@@ -362,6 +362,43 @@ export class LauncherService {
|
||||
'-n',
|
||||
namespace,
|
||||
]));
|
||||
|
||||
const resources = body.resources;
|
||||
if (resources?.replicas && resources.replicas > 0) {
|
||||
logs.push(`[scale] deployment/${deployment} replicas=${resources.replicas}`);
|
||||
appendOutput(logs, await this.kubectl([
|
||||
'scale',
|
||||
`deployment/${deployment}`,
|
||||
`--replicas=${resources.replicas}`,
|
||||
'-n',
|
||||
namespace,
|
||||
]));
|
||||
}
|
||||
|
||||
const requests = [
|
||||
resources?.cpuRequest ? `cpu=${resources.cpuRequest}` : null,
|
||||
resources?.memoryRequest ? `memory=${resources.memoryRequest}` : null,
|
||||
].filter(Boolean);
|
||||
const limits = [
|
||||
resources?.cpuLimit ? `cpu=${resources.cpuLimit}` : null,
|
||||
resources?.memoryLimit ? `memory=${resources.memoryLimit}` : null,
|
||||
].filter(Boolean);
|
||||
|
||||
if (requests.length || limits.length) {
|
||||
const args = [
|
||||
'set',
|
||||
'resources',
|
||||
`deployment/${deployment}`,
|
||||
`--containers=${container}`,
|
||||
...(requests.length ? [`--requests=${requests.join(',')}`] : []),
|
||||
...(limits.length ? [`--limits=${limits.join(',')}`] : []),
|
||||
'-n',
|
||||
namespace,
|
||||
];
|
||||
logs.push(`[resources] ${args.slice(3, -2).join(' ')}`);
|
||||
appendOutput(logs, await this.kubectl(args));
|
||||
}
|
||||
|
||||
logs.push(`[rollout] deployment/${deployment}`);
|
||||
appendOutput(logs, await this.kubectl([
|
||||
'rollout',
|
||||
|
||||
Reference in New Issue
Block a user