From fbb560da66bb9f7c25a070940154bbc2a3ed350d Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 22:14:58 +0530 Subject: [PATCH] feat: allow to configure resource limits and reservation with stack (#698) (#699) --- .../graphql/graphql_object_mapper.go | 24 ++++++++++++------- swiftwave_service/stack_parser/types.go | 19 +++++++++++++-- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/swiftwave_service/graphql/graphql_object_mapper.go b/swiftwave_service/graphql/graphql_object_mapper.go index af76ab112f..ede8f9501d 100644 --- a/swiftwave_service/graphql/graphql_object_mapper.go +++ b/swiftwave_service/graphql/graphql_object_mapper.go @@ -551,15 +551,21 @@ func stackToApplicationsInput(stackName string, record *stack_parser.Stack, db g image := service.Image replicas := service.Deploy.Replicas app := model.ApplicationInput{ - Name: serviceName, - EnvironmentVariables: environmentVariables, - PersistentVolumeBindings: persistentVolumeBindings, - Capabilities: service.CapAdd, - Sysctls: sysctls, - Dockerfile: nil, - BuildArgs: []*model.BuildArgInput{}, - DeploymentMode: model.DeploymentMode(service.Deploy.Mode), - Replicas: &replicas, + Name: serviceName, + EnvironmentVariables: environmentVariables, + PersistentVolumeBindings: persistentVolumeBindings, + Capabilities: service.CapAdd, + Sysctls: sysctls, + Dockerfile: nil, + BuildArgs: []*model.BuildArgInput{}, + DeploymentMode: model.DeploymentMode(service.Deploy.Mode), + Replicas: &replicas, + ResourceLimit: &model.ResourceLimitInput{ + MemoryMb: service.Deploy.Resources.Limits.MemoryMB, + }, + ReservedResource: &model.ReservedResourceInput{ + MemoryMb: service.Deploy.Resources.Reservations.MemoryMB, + }, UpstreamType: model.UpstreamTypeImage, DockerImage: &image, ImageRegistryCredentialID: nil, diff --git a/swiftwave_service/stack_parser/types.go b/swiftwave_service/stack_parser/types.go index 82a9c8488c..1acb8c5165 100644 --- a/swiftwave_service/stack_parser/types.go +++ b/swiftwave_service/stack_parser/types.go @@ -160,8 +160,23 @@ const ( ) type Deploy struct { - Mode DeploymentMode `yaml:"mode"` - Replicas uint `yaml:"replicas"` + Mode DeploymentMode `yaml:"mode"` + Replicas uint `yaml:"replicas"` + Resources Resources `yaml:"resources"` +} + +// Resources : Resources for the service +type Resources struct { + Limits ResourcesLimits `yaml:"limits"` + Reservations ResourcesReservations `yaml:"reservations"` +} + +type ResourcesLimits struct { + MemoryMB int `yaml:"memory"` +} + +type ResourcesReservations struct { + MemoryMB int `yaml:"memory"` } // Docs : Documentation for the stack