|
@@ -148,6 +148,7 @@ type SharedServiceParams = {
|
|
|
type: ServiceType;
|
|
type: ServiceType;
|
|
|
canDelete: boolean;
|
|
canDelete: boolean;
|
|
|
expanded: boolean;
|
|
expanded: boolean;
|
|
|
|
|
+ smartOptimization: boolean;
|
|
|
cloudsql: CloudSql;
|
|
cloudsql: CloudSql;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -160,9 +161,10 @@ export type WebService = SharedServiceParams & Omit<WorkerService, 'type'> & {
|
|
|
const WebService = {
|
|
const WebService = {
|
|
|
default: (name: string, porterJson?: PorterJson): WebService => ({
|
|
default: (name: string, porterJson?: PorterJson): WebService => ({
|
|
|
name,
|
|
name,
|
|
|
|
|
+ smartOptimization: true,
|
|
|
expanded: true,
|
|
expanded: true,
|
|
|
- cpu: ServiceField.string('100', porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
- ram: ServiceField.string('256', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
|
|
|
|
+ cpu: ServiceField.string('187.5', porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
+ ram: ServiceField.string('384', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string('', porterJson?.apps?.[name]?.run),
|
|
startCommand: ServiceField.string('', porterJson?.apps?.[name]?.run),
|
|
|
type: 'web',
|
|
type: 'web',
|
|
|
replicas: ServiceField.string('1', porterJson?.apps?.[name]?.config?.replicaCount),
|
|
replicas: ServiceField.string('1', porterJson?.apps?.[name]?.config?.replicaCount),
|
|
@@ -211,6 +213,7 @@ const WebService = {
|
|
|
}),
|
|
}),
|
|
|
serialize: (service: WebService) => {
|
|
serialize: (service: WebService) => {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ smartOptimization: service.smartOptimization,
|
|
|
replicaCount: service.replicas.value,
|
|
replicaCount: service.replicas.value,
|
|
|
resources: {
|
|
resources: {
|
|
|
requests: {
|
|
requests: {
|
|
@@ -271,6 +274,7 @@ const WebService = {
|
|
|
return {
|
|
return {
|
|
|
name,
|
|
name,
|
|
|
expanded: false,
|
|
expanded: false,
|
|
|
|
|
+ smartOptimization: values.smartOptimization,
|
|
|
cpu: ServiceField.string(values.resources?.requests?.cpu?.replace('m', ''), porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
cpu: ServiceField.string(values.resources?.requests?.cpu?.replace('m', ''), porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
ram: ServiceField.string(values.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
ram: ServiceField.string(values.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string(values.container?.command ?? '', porterJson?.apps?.[name]?.run),
|
|
startCommand: ServiceField.string(values.container?.command ?? '', porterJson?.apps?.[name]?.run),
|
|
@@ -331,8 +335,9 @@ const WorkerService = {
|
|
|
default: (name: string, porterJson?: PorterJson): WorkerService => ({
|
|
default: (name: string, porterJson?: PorterJson): WorkerService => ({
|
|
|
name,
|
|
name,
|
|
|
expanded: true,
|
|
expanded: true,
|
|
|
- cpu: ServiceField.string('100', porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
- ram: ServiceField.string('256', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
|
|
|
|
+ smartOptimization: true,
|
|
|
|
|
+ cpu: ServiceField.string('187.5', porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
+ ram: ServiceField.string('384', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string('', porterJson?.apps?.[name]?.run),
|
|
startCommand: ServiceField.string('', porterJson?.apps?.[name]?.run),
|
|
|
type: 'worker',
|
|
type: 'worker',
|
|
|
replicas: ServiceField.string('1', porterJson?.apps?.[name]?.config?.replicaCount),
|
|
replicas: ServiceField.string('1', porterJson?.apps?.[name]?.config?.replicaCount),
|
|
@@ -376,12 +381,14 @@ const WorkerService = {
|
|
|
dbPort: service.cloudsql.dbPort.value,
|
|
dbPort: service.cloudsql.dbPort.value,
|
|
|
serviceAccountJSON: service.cloudsql.serviceAccountJSON.value,
|
|
serviceAccountJSON: service.cloudsql.serviceAccountJSON.value,
|
|
|
},
|
|
},
|
|
|
|
|
+ smartOptimization: service.smartOptimization,
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
deserialize: (name: string, values: any, porterJson?: PorterJson): WorkerService => {
|
|
deserialize: (name: string, values: any, porterJson?: PorterJson): WorkerService => {
|
|
|
return {
|
|
return {
|
|
|
name,
|
|
name,
|
|
|
expanded: false,
|
|
expanded: false,
|
|
|
|
|
+ smartOptimization: values.smartOptimization,
|
|
|
cpu: ServiceField.string(values.resources?.requests?.cpu?.replace('m', ''), porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
cpu: ServiceField.string(values.resources?.requests?.cpu?.replace('m', ''), porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
ram: ServiceField.string(values.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
ram: ServiceField.string(values.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string(values.container?.command ?? '', porterJson?.apps?.[name]?.run),
|
|
startCommand: ServiceField.string(values.container?.command ?? '', porterJson?.apps?.[name]?.run),
|
|
@@ -414,8 +421,9 @@ const JobService = {
|
|
|
default: (name: string, porterJson?: PorterJson): JobService => ({
|
|
default: (name: string, porterJson?: PorterJson): JobService => ({
|
|
|
name,
|
|
name,
|
|
|
expanded: true,
|
|
expanded: true,
|
|
|
- cpu: ServiceField.string('100', porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
- ram: ServiceField.string('256', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
|
|
|
|
+ smartOptimization: true,
|
|
|
|
|
+ cpu: ServiceField.string('187.', porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
+ ram: ServiceField.string('384', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string('', porterJson?.apps?.[name]?.run),
|
|
startCommand: ServiceField.string('', porterJson?.apps?.[name]?.run),
|
|
|
type: 'job',
|
|
type: 'job',
|
|
|
jobsExecuteConcurrently: ServiceField.boolean(false, porterJson?.apps?.[name]?.config?.allowConcurrent),
|
|
jobsExecuteConcurrently: ServiceField.boolean(false, porterJson?.apps?.[name]?.config?.allowConcurrent),
|
|
@@ -430,6 +438,7 @@ const JobService = {
|
|
|
}),
|
|
}),
|
|
|
serialize: (service: JobService) => {
|
|
serialize: (service: JobService) => {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ smartOptimization: service.smartOptimization,
|
|
|
allowConcurrent: service.jobsExecuteConcurrently.value,
|
|
allowConcurrent: service.jobsExecuteConcurrently.value,
|
|
|
container: {
|
|
container: {
|
|
|
command: service.startCommand.value,
|
|
command: service.startCommand.value,
|
|
@@ -457,6 +466,7 @@ const JobService = {
|
|
|
return {
|
|
return {
|
|
|
name,
|
|
name,
|
|
|
expanded: false,
|
|
expanded: false,
|
|
|
|
|
+ smartOptimization: values.smartOptimization,
|
|
|
cpu: ServiceField.string(values.resources?.requests?.cpu?.replace('m', ''), porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
cpu: ServiceField.string(values.resources?.requests?.cpu?.replace('m', ''), porterJson?.apps?.[name]?.config?.resources?.requests?.cpu ? porterJson?.apps?.[name]?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
ram: ServiceField.string(values.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
ram: ServiceField.string(values.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.apps?.[name]?.config?.resources?.requests?.memory ? porterJson?.apps?.[name]?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string(values.container?.command ?? '', porterJson?.apps?.[name]?.run),
|
|
startCommand: ServiceField.string(values.container?.command ?? '', porterJson?.apps?.[name]?.run),
|
|
@@ -481,8 +491,9 @@ const ReleaseService = {
|
|
|
default: (name: string, porterJson?: PorterJson): ReleaseService => ({
|
|
default: (name: string, porterJson?: PorterJson): ReleaseService => ({
|
|
|
name,
|
|
name,
|
|
|
expanded: true,
|
|
expanded: true,
|
|
|
- cpu: ServiceField.string('100', porterJson?.release?.config?.resources?.requests?.cpu ? porterJson?.release?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
- ram: ServiceField.string('256', porterJson?.release?.config?.resources?.requests?.memory ? porterJson?.release?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
|
|
|
|
+ smartOptimization: true,
|
|
|
|
|
+ cpu: ServiceField.string('187.5', porterJson?.release?.config?.resources?.requests?.cpu ? porterJson?.release?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
|
|
+ ram: ServiceField.string('384', porterJson?.release?.config?.resources?.requests?.memory ? porterJson?.release?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string('', porterJson?.release?.run),
|
|
startCommand: ServiceField.string('', porterJson?.release?.run),
|
|
|
type: 'release',
|
|
type: 'release',
|
|
|
canDelete: porterJson?.release == null,
|
|
canDelete: porterJson?.release == null,
|
|
@@ -496,6 +507,7 @@ const ReleaseService = {
|
|
|
|
|
|
|
|
serialize: (service: ReleaseService) => {
|
|
serialize: (service: ReleaseService) => {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ smartOptimization: service.smartOptimization,
|
|
|
container: {
|
|
container: {
|
|
|
command: service.startCommand.value,
|
|
command: service.startCommand.value,
|
|
|
},
|
|
},
|
|
@@ -519,6 +531,7 @@ const ReleaseService = {
|
|
|
return {
|
|
return {
|
|
|
name,
|
|
name,
|
|
|
expanded: false,
|
|
expanded: false,
|
|
|
|
|
+ smartOptimization: values.smartOptimization,
|
|
|
cpu: ServiceField.string(values?.resources?.requests?.cpu?.replace('m', ''), porterJson?.release?.config?.resources?.requests?.cpu ? porterJson?.release?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
cpu: ServiceField.string(values?.resources?.requests?.cpu?.replace('m', ''), porterJson?.release?.config?.resources?.requests?.cpu ? porterJson?.release?.config?.resources?.requests?.cpu.replace('m', '') : undefined),
|
|
|
ram: ServiceField.string(values?.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.release?.config?.resources?.requests?.memory ? porterJson?.release?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
ram: ServiceField.string(values?.resources?.requests?.memory?.replace('Mi', '') ?? '', porterJson?.release?.config?.resources?.requests?.memory ? porterJson?.release?.config?.resources?.requests?.memory.replace('Mi', '') : undefined),
|
|
|
startCommand: ServiceField.string(values?.container?.command ?? '', porterJson?.release?.run),
|
|
startCommand: ServiceField.string(values?.container?.command ?? '', porterJson?.release?.run),
|