diff --git a/charts/plane-enterprise/README.md b/charts/plane-enterprise/README.md index dd20e1e4..cb263395 100644 --- a/charts/plane-enterprise/README.md +++ b/charts/plane-enterprise/README.md @@ -191,10 +191,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.web.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.web.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.web.cpuRequest | 100m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.web.memoryRequest | 200Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| | services.web.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.web.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.web.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.web.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.web.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.web.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.web.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.web.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.web.image| artifacts.plane.so/makeplane/web-commercial | | This deployment needs a preconfigured docker image to function. Docker image name is provided by the owner and must not be changed for this deployment | | services.web.pullPolicy | Always | | Using this key, user can set the pull policy for the deployment of `web`. | | services.web.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service | @@ -209,10 +213,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.space.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.space.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.space.cpuRequest | 100m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.space.memoryRequest | 200Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| | services.space.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.space.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.space.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.space.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.space.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.space.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.space.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.space.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.space.image| artifacts.plane.so/makeplane/space-commercial | | This deployment needs a preconfigured docker image to function. Docker image name is provided by the owner and must not be changed for this deployment | | services.space.pullPolicy | Always | | Using this key, user can set the pull policy for the deployment of `space`. | | services.space.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service | @@ -227,10 +235,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.admin.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.admin.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.admin.cpuRequest | 100m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.admin.memoryRequest | 200Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| | services.admin.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.admin.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.admin.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.admin.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.admin.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.admin.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.admin.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.admin.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.admin.image| artifacts.plane.so/makeplane/admin-commercial | | This deployment needs a preconfigured docker image to function. Docker image name is provided by the owner and must not be changed for this deployment | | services.admin.pullPolicy | Always | | Using this key, user can set the pull policy for the deployment of `admin`. | | services.admin.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service | @@ -245,10 +257,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.live.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.live.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| -| services.live.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.live.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.live.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.live.cpuRequest | 500m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.live.memoryRequest | 1000Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| +| services.live.cpuLimit | 1000m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| +| services.live.memoryLimit | 2000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.live.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.live.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.live.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.live.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.live.image| artifacts.plane.so/makeplane/live-commercial | | This deployment needs a preconfigured docker image to function. Docker image name is provided by the owner and must not be changed for this deployment | | services.live.pullPolicy | Always | | Using this key, user can set the pull policy for the deployment of `live`. | | env.live_sentry_dsn | | | (optional) Live service deployment comes with some of the preconfigured integration. Sentry is one among those. Here user can set the Sentry provided DSN for this integration.| @@ -286,10 +302,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.api.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.api.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| -| services.api.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.api.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.api.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.api.cpuRequest | 1000m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.api.memoryRequest | 1000Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| +| services.api.cpuLimit | 2000m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| +| services.api.memoryLimit | 2000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.api.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.api.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.api.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.api.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.api.image| artifacts.plane.so/makeplane/backend-commercial | | This deployment needs a preconfigured docker image to function. Docker image name is provided by the owner and must not be changed for this deployment | | services.api.pullPolicy | Always | | Using this key, user can set the pull policy for the deployment of `api`. | | env.sentry_dsn | | | (optional) API service deployment comes with some of the preconfigured integration. Sentry is one among those. Here user can set the Sentry provided DSN for this integration.| @@ -307,10 +327,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.silo.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.silo.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| -| services.silo.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.silo.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.silo.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.silo.cpuRequest | 250m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.silo.memoryRequest | 1000Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| +| services.silo.cpuLimit | 1000m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| +| services.silo.memoryLimit | 2000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.silo.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.silo.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.silo.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.silo.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.silo.image| artifacts.plane.so/makeplane/silo-commercial | | This deployment needs a preconfigured docker image to function. Docker image name is provided by the owner and must not be changed for this deployment | | services.silo.pullPolicy | Always | | Using this key, user can set the pull policy for the deployment of `silo`. | | services.silo.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service | @@ -340,16 +364,19 @@ | env.silo_envs.hmac_secret_key | <random-32-bit-string> | | HMAC Secret Key | | env.silo_envs.aes_secret_key | "dsOdt7YrvxsTIFJ37pOaEVvLxN8KGBCr" | | AES Secret Key | - ### Worker Deployment | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.worker.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.worker.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| -| services.worker.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.worker.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.worker.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.worker.cpuRequest | 500m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.worker.memoryRequest | 2000Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| +| services.worker.cpuLimit | 1000m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| +| services.worker.memoryLimit | 4000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.worker.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.worker.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.worker.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.worker.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.worker.nodeSelector | {} | | This key allows you to set the node selector for the deployment of `worker`. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. | | services.worker.tolerations | [] | | This key allows you to set the tolerations for the deployment of `worker`. This is useful when you want to run the deployment on nodes with specific taints in your Kubernetes cluster. | | services.worker.affinity | {} | | This key allows you to set the affinity rules for the deployment of `worker`. This is useful when you want to control how pods are scheduled on nodes in your Kubernetes cluster. | @@ -361,10 +388,14 @@ | Setting | Default | Required | Description | |---|:---:|:---:|---| | services.beatworker.replicas | 1 | Yes | Kubernetes helps you with scaling up/down the deployments. You can run 1 or more pods for each deployment. This key helps you setting up number of replicas you want to run for this deployment. It must be >=1 | -| services.beatworker.memoryLimit | 1000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| -| services.beatworker.cpuLimit | 500m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| -| services.beatworker.memoryRequest | 50Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| -| services.beatworker.cpuRequest | 50m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.beatworker.cpuRequest | 500m | | Every deployment in kubernetes can be set to use minimum cpu they are allowed to use. This key sets the cpu request for this deployment to use.| +| services.beatworker.memoryRequest | 1000Mi | | Every deployment in kubernetes can be set to use minimum memory they are allowed to use. This key sets the memory request for this deployment to use.| +| services.beatworker.cpuLimit | 1000m | | Every deployment in kubernetes can be set to use maximum cpu they are allowed to use. This key sets the cpu limit for this deployment to use.| +| services.beatworker.memoryLimit | 2000Mi | | Every deployment in kubernetes can be set to use maximum memory they are allowed to use. This key sets the memory limit for this deployment to use.| +| services.beatworker.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.beatworker.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.beatworker.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.beatworker.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.beatworker.nodeSelector | {} | | This key allows you to set the node selector for the deployment of `beatworker`. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. | | services.beatworker.tolerations | [] | | This key allows you to set the tolerations for the deployment of `beatworker`. This is useful when you want to run the deployment on nodes with specific taints in your Kubernetes cluster. | | services.beatworker.affinity | {} | | This key allows you to set the affinity rules for the deployment of `beatworker`. This is useful when you want to control how pods are scheduled on nodes in your Kubernetes cluster. | @@ -377,10 +408,14 @@ |---|:---:|:---:|---| | services.email_service.enabled | false | | Set to `true` to enable the email service deployment | | services.email_service.replicas | 1 | | Number of replicas for the email service deployment | -| services.email_service.memoryLimit | 1000Mi | | Memory limit for the email service deployment | +| services.email_service.cpuRequest | 100m | | CPU request for the email service deployment | +| services.email_service.memoryRequest | 200Mi | | Memory request for the email service deployment | | services.email_service.cpuLimit | 500m | | CPU limit for the email service deployment | -| services.email_service.memoryRequest | 50Mi | | Memory request for the email service deployment | -| services.email_service.cpuRequest | 50m | | CPU request for the email service deployment | +| services.email_service.memoryLimit | 1000Mi | | Memory limit for the email service deployment | +| services.email_service.autoscaling.minReplicas | 1 | | Minimum number of replicas for the Horizontal Pod Autoscaler | +| services.email_service.autoscaling.maxReplicas | 5 | | Maximum number of replicas for the Horizontal Pod Autoscaler | +| services.email_service.autoscaling.targetCPUUtilizationPercentage | 90 | | Target CPU utilization percentage for the Horizontal Pod Autoscaler | +| services.email_service.autoscaling.targetMemoryUtilizationPercentage | 90 | | Target memory utilization percentage for the Horizontal Pod Autoscaler | | services.email_service.image | artifacts.plane.so/makeplane/email-commercial | | Docker image for the email service deployment | | services.email_service.pullPolicy | Always | | Image pull policy for the email service deployment | | services.email_service.nodeSelector | {} | | This key allows you to set the node selector for the deployment of `email_service`. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. | diff --git a/charts/plane-enterprise/questions.yml b/charts/plane-enterprise/questions.yml index 63bd2ae9..22055968 100644 --- a/charts/plane-enterprise/questions.yml +++ b/charts/plane-enterprise/questions.yml @@ -110,22 +110,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.web.memoryLimit - label: "Memory Limit" + - variable: services.web.cpuRequest + label: "CPU Request" type: string - default: 1000Mi + default: 100m + - variable: services.web.memoryRequest + label: "Memory Request" + type: string + default: 200Mi - variable: services.web.cpuLimit label: "CPU Limit" type: string default: 500m - - variable: services.web.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.web.cpuRequest - label: "CPU Request" + - variable: services.web.memoryLimit + label: "Memory Limit" type: string - default: 50m + default: 1000Mi + - variable: services.web.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.web.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.web.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.web.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.web.assign_cluster_ip label: "Assign Cluster IP" type: boolean @@ -145,22 +161,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.space.memoryLimit - label: "Memory Limit" + - variable: services.space.cpuRequest + label: "CPU Request" type: string - default: 1000Mi + default: 100m + - variable: services.space.memoryRequest + label: "Memory Request" + type: string + default: 200Mi - variable: services.space.cpuLimit label: "CPU Limit" type: string default: 500m - - variable: services.space.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.space.cpuRequest - label: "CPU Request" + - variable: services.space.memoryLimit + label: "Memory Limit" type: string - default: 50m + default: 1000Mi + - variable: services.space.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.space.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.space.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.space.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.space.assign_cluster_ip label: "Assign Cluster IP" type: boolean @@ -180,22 +212,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.admin.memoryLimit - label: "Memory Limit" + - variable: services.admin.cpuRequest + label: "CPU Request" type: string - default: 1000Mi + default: 100m + - variable: services.admin.memoryRequest + label: "Memory Request" + type: string + default: 200Mi - variable: services.admin.cpuLimit label: "CPU Limit" type: string default: 500m - - variable: services.admin.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.admin.cpuRequest - label: "CPU Request" + - variable: services.admin.memoryLimit + label: "Memory Limit" type: string - default: 50m + default: 1000Mi + - variable: services.admin.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.admin.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.admin.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.admin.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.admin.assign_cluster_ip label: "Assign Cluster IP" type: boolean @@ -215,22 +263,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.live.memoryLimit - label: "Memory Limit" - type: string - default: 1000Mi - - variable: services.live.cpuLimit - label: "CPU Limit" + - variable: services.live.cpuRequest + label: "CPU Request" type: string default: 500m - variable: services.live.memoryRequest label: "Memory Request" type: string - default: 50Mi - - variable: services.live.cpuRequest - label: "CPU Request" + default: 1000Mi + - variable: services.live.cpuLimit + label: "CPU Limit" type: string - default: 50m + default: 1000m + - variable: services.live.memoryLimit + label: "Memory Limit" + type: string + default: 2000Mi + - variable: services.live.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.live.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.live.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.live.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.live.assign_cluster_ip label: "Assign Cluster IP" type: boolean @@ -262,22 +326,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.silo.memoryLimit - label: "Memory Limit" + - variable: services.silo.cpuRequest + label: "CPU Request" + type: string + default: 250m + - variable: services.silo.memoryRequest + label: "Memory Request" type: string default: 1000Mi - variable: services.silo.cpuLimit label: "CPU Limit" type: string - default: 500m - - variable: services.silo.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.silo.cpuRequest - label: "CPU Request" + default: 1000m + - variable: services.silo.memoryLimit + label: "Memory Limit" type: string - default: 50m + default: 2000Mi + - variable: services.silo.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.silo.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.silo.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.silo.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.silo.assign_cluster_ip label: "Assign Cluster IP" type: boolean @@ -389,22 +469,6 @@ questions: default: "Always" group: "Monitor Setup" subquestions: - - variable: services.monitor.memoryLimit - label: "Memory Limit" - type: string - default: 1000Mi - - variable: services.monitor.cpuLimit - label: "CPU Limit" - type: string - default: 500m - - variable: services.monitor.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.monitor.cpuRequest - label: "CPU Request" - type: string - default: 50m - variable: services.monitor.volumeSize label: "Volume Size" type: string @@ -428,22 +492,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.api.memoryLimit - label: "Memory Limit" + - variable: services.api.cpuRequest + label: "CPU Request" + type: string + default: 1000m + - variable: services.api.memoryRequest + label: "Memory Request" type: string default: 1000Mi - variable: services.api.cpuLimit label: "CPU Limit" type: string - default: 500m - - variable: services.api.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.api.cpuRequest - label: "CPU Request" + default: 2000m + - variable: services.api.memoryLimit + label: "Memory Limit" type: string - default: 50m + default: 2000Mi + - variable: services.api.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.api.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.api.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.api.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.api.assign_cluster_ip label: "Assign Cluster IP" type: boolean @@ -476,44 +556,76 @@ questions: default: 1 group: "Worker Setup" subquestions: - - variable: services.worker.memoryLimit - label: "Memory Limit" - type: string - default: 1000Mi - - variable: services.worker.cpuLimit - label: "CPU Limit" + - variable: services.worker.cpuRequest + label: "CPU Request" type: string default: 500m - variable: services.worker.memoryRequest label: "Memory Request" type: string - default: 50Mi - - variable: services.worker.cpuRequest - label: "CPU Request" + default: 2000Mi + - variable: services.worker.cpuLimit + label: "CPU Limit" type: string - default: 50m + default: 1000m + - variable: services.worker.memoryLimit + label: "Memory Limit" + type: string + default: 4000Mi + - variable: services.worker.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.worker.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.worker.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.worker.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.beatworker.replicas label: "Default Replica Count" type: int default: 1 group: "Beat Worker Setup" subquestions: - - variable: services.beatworker.memoryLimit - label: "Memory Limit" - type: string - default: 1000Mi - - variable: services.beatworker.cpuLimit - label: "CPU Limit" + - variable: services.beatworker.cpuRequest + label: "CPU Request" type: string default: 500m - variable: services.beatworker.memoryRequest label: "Memory Request" type: string - default: 50Mi - - variable: services.beatworker.cpuRequest - label: "CPU Request" + default: 1000Mi + - variable: services.beatworker.cpuLimit + label: "CPU Limit" type: string - default: 50m + default: 1000m + - variable: services.beatworker.memoryLimit + label: "Memory Limit" + type: string + default: 2000Mi + - variable: services.beatworker.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.beatworker.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.beatworker.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.beatworker.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: services.email_service.enabled label: "Enable Email Service" type: boolean @@ -525,22 +637,38 @@ questions: label: "Default Replica Count" type: int default: 1 - - variable: services.email_service.memoryLimit - label: "Memory Limit" + - variable: services.email_service.cpuRequest + label: "CPU Request" type: string - default: 1000Mi + default: 100m + - variable: services.email_service.memoryRequest + label: "Memory Request" + type: string + default: 200Mi - variable: services.email_service.cpuLimit label: "CPU Limit" type: string default: 500m - - variable: services.email_service.memoryRequest - label: "Memory Request" - type: string - default: 50Mi - - variable: services.email_service.cpuRequest - label: "CPU Request" + - variable: services.email_service.memoryLimit + label: "Memory Limit" type: string - default: 50m + default: 1000Mi + - variable: services.email_service.autoscaling.minReplicas + label: "Minimum Replica Count" + type: int + default: 1 + - variable: services.email_service.autoscaling.maxReplicas + label: "Maximum Replica Count" + type: int + default: 5 + - variable: services.email_service.autoscaling.targetCPUUtilizationPercentage + label: "Target CPU Utilization Percentage" + type: int + default: 90 + - variable: services.email_service.autoscaling.targetMemoryUtilizationPercentage + label: "Target Memory Utilization Percentage" + type: int + default: 90 - variable: env.email_service_envs.smtp_domain label: "SMTP Domain" type: string diff --git a/charts/plane-enterprise/templates/_helpers.tpl b/charts/plane-enterprise/templates/_helpers.tpl index 20af43c9..51cacc7c 100644 --- a/charts/plane-enterprise/templates/_helpers.tpl +++ b/charts/plane-enterprise/templates/_helpers.tpl @@ -26,3 +26,12 @@ annotations: {{ toYaml . | nindent 4 }} {{- end }} {{- end }} + +{{- define "enable.hpa" -}} +{{- $metrics := lookup "rbac.authorization.k8s.io/v1" "ClusterRole" "" "system:metrics-server" }} +{{- if not $metrics }} +false +{{- else }} +true +{{- end }} +{{- end }} diff --git a/charts/plane-enterprise/templates/workloads/admin.deployment.yaml b/charts/plane-enterprise/templates/workloads/admin.deployment.yaml index 1825f8c3..b7eefc63 100644 --- a/charts/plane-enterprise/templates/workloads/admin.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/admin.deployment.yaml @@ -48,11 +48,11 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.admin.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.admin.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.admin.cpuRequest | default "100m" | quote }} + memory: {{ .Values.services.admin.memoryRequest | default "200Mi" | quote }} limits: - memory: {{ .Values.services.admin.memoryLimit | default "1000Mi" | quote }} cpu: {{ .Values.services.admin.cpuLimit | default "500m" | quote}} + memory: {{ .Values.services.admin.memoryLimit | default "1000Mi" | quote }} {{- if .Values.extraEnv }} env: {{- toYaml .Values.extraEnv | nindent 10 }} @@ -60,4 +60,41 @@ spec: {{- include "plane.podScheduling" .Values.services.admin }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-admin-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-admin-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-admin-wl + minReplicas: {{ .Values.services.admin.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.admin.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.admin.autoscaling.targetCPUUtilizationPercentage .Values.services.admin.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.admin.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.admin.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.admin.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.admin.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-enterprise/templates/workloads/api.deployment.yaml b/charts/plane-enterprise/templates/workloads/api.deployment.yaml index 44367aaf..18e0c327 100644 --- a/charts/plane-enterprise/templates/workloads/api.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/api.deployment.yaml @@ -57,11 +57,11 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.api.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.api.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.api.cpuRequest | default "1000m" | quote }} + memory: {{ .Values.services.api.memoryRequest | default "1000Mi" | quote }} limits: - memory: {{ .Values.services.api.memoryLimit | default "1000Mi" | quote }} - cpu: {{ .Values.services.api.cpuLimit | default "500m" | quote}} + cpu: {{ .Values.services.api.cpuLimit | default "2000m" | quote}} + memory: {{ .Values.services.api.memoryLimit | default "2000Mi" | quote }} {{- if and .Values.airgapped.enabled .Values.airgapped.s3SecretName .Values.airgapped.s3SecretKey }} volumeMounts: - name: s3-custom-ca @@ -140,4 +140,42 @@ spec: {{- include "plane.podScheduling" .Values.services.api }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account ---- \ No newline at end of file + +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-api-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-api-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-api-wl + minReplicas: {{ .Values.services.api.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.api.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.api.autoscaling.targetCPUUtilizationPercentage .Values.services.api.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.api.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.api.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.api.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.api.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} +--- diff --git a/charts/plane-enterprise/templates/workloads/beat-worker.deployment.yaml b/charts/plane-enterprise/templates/workloads/beat-worker.deployment.yaml index 5412ccb4..8b225067 100644 --- a/charts/plane-enterprise/templates/workloads/beat-worker.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/beat-worker.deployment.yaml @@ -25,11 +25,11 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.beatworker.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.beatworker.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.beatworker.cpuRequest | default "500m" | quote }} + memory: {{ .Values.services.beatworker.memoryRequest | default "1000Mi" | quote }} limits: - memory: {{ .Values.services.beatworker.memoryLimit | default "1000Mi" | quote }} - cpu: {{ .Values.services.beatworker.cpuLimit | default "500m" | quote}} + cpu: {{ .Values.services.beatworker.cpuLimit | default "1000m" | quote}} + memory: {{ .Values.services.beatworker.memoryLimit | default "2000Mi" | quote }} command: - ./bin/docker-entrypoint-beat.sh envFrom: @@ -55,4 +55,41 @@ spec: {{- include "plane.podScheduling" .Values.services.beatworker }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-beat-worker-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-beat-worker-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-beat-worker-wl + minReplicas: {{ .Values.services.beatworker.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.beatworker.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.beatworker.autoscaling.targetCPUUtilizationPercentage .Values.services.beatworker.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.beatworker.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.beatworker.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.beatworker.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.beatworker.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-enterprise/templates/workloads/email.deployment.yaml b/charts/plane-enterprise/templates/workloads/email.deployment.yaml index 9d4945c7..e5b043db 100644 --- a/charts/plane-enterprise/templates/workloads/email.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/email.deployment.yaml @@ -67,11 +67,11 @@ spec: failureThreshold: 3 resources: requests: - memory: {{ .Values.services.email_service.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.email_service.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.email_service.cpuRequest | default "100m" | quote }} + memory: {{ .Values.services.email_service.memoryRequest | default "200Mi" | quote }} limits: - memory: {{ .Values.services.email_service.memoryLimit | default "1000Mi" | quote }} cpu: {{ .Values.services.email_service.cpuLimit | default "500m" | quote}} + memory: {{ .Values.services.email_service.memoryLimit | default "1000Mi" | quote }} envFrom: - configMapRef: name: {{ .Release.Name }}-email-vars @@ -105,5 +105,43 @@ spec: {{- include "plane.podScheduling" .Values.services.email_service }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account + +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-email-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-email-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-email-app + minReplicas: {{ .Values.services.email_service.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.email_service.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.email_service.autoscaling.targetCPUUtilizationPercentage .Values.services.email_service.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.email_service.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.email_service.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.email_service.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.email_service.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- {{- end }} \ No newline at end of file diff --git a/charts/plane-enterprise/templates/workloads/live.deployment.yaml b/charts/plane-enterprise/templates/workloads/live.deployment.yaml index f44c0d1c..7dca7280 100644 --- a/charts/plane-enterprise/templates/workloads/live.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/live.deployment.yaml @@ -48,11 +48,11 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.live.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.live.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.live.cpuRequest | default "500m" | quote }} + memory: {{ .Values.services.live.memoryRequest | default "1000Mi" | quote }} limits: - memory: {{ .Values.services.live.memoryLimit | default "1000Mi" | quote }} - cpu: {{ .Values.services.live.cpuLimit | default "500m" | quote}} + cpu: {{ .Values.services.live.cpuLimit | default "1000m" | quote}} + memory: {{ .Values.services.live.memoryLimit | default "2000Mi" | quote }} envFrom: - configMapRef: name: {{ .Release.Name }}-live-vars @@ -68,3 +68,40 @@ spec: serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account --- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-live-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-live-wl + minReplicas: {{ .Values.services.live.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.live.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.live.autoscaling.targetCPUUtilizationPercentage .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.live.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.live.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.live.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.live.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} +--- diff --git a/charts/plane-enterprise/templates/workloads/silo.deployment.yaml b/charts/plane-enterprise/templates/workloads/silo.deployment.yaml index 0b7db6f3..373b5da2 100644 --- a/charts/plane-enterprise/templates/workloads/silo.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/silo.deployment.yaml @@ -71,11 +71,11 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.silo.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.silo.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.silo.cpuRequest | default "250m" | quote }} + memory: {{ .Values.services.silo.memoryRequest | default "1000Mi" | quote }} limits: - memory: {{ .Values.services.silo.memoryLimit | default "1000Mi" | quote }} - cpu: {{ .Values.services.silo.cpuLimit | default "500m" | quote}} + cpu: {{ .Values.services.silo.cpuLimit | default "1000m" | quote}} + memory: {{ .Values.services.silo.memoryLimit | default "2000Mi" | quote }} envFrom: - configMapRef: name: {{ .Release.Name }}-silo-vars @@ -90,5 +90,43 @@ spec: {{- include "plane.podScheduling" .Values.services.silo }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account + +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-silo-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-silo-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-silo-wl + minReplicas: {{ .Values.services.silo.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.silo.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.silo.autoscaling.targetCPUUtilizationPercentage .Values.services.silo.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.silo.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.silo.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.silo.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.silo.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- {{- end }} \ No newline at end of file diff --git a/charts/plane-enterprise/templates/workloads/space.deployment.yaml b/charts/plane-enterprise/templates/workloads/space.deployment.yaml index afed29b7..9243d572 100644 --- a/charts/plane-enterprise/templates/workloads/space.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/space.deployment.yaml @@ -48,9 +48,10 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.space.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.space.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.space.cpuRequest | default "100m" | quote }} + memory: {{ .Values.services.space.memoryRequest | default "200Mi" | quote }} limits: + cpu: {{ .Values.services.space.cpuLimit | default "500m" | quote}} memory: {{ .Values.services.space.memoryLimit | default "1000Mi" | quote }} cpu: {{ .Values.services.space.cpuLimit | default "500m" | quote}} {{- if .Values.extraEnv }} @@ -60,4 +61,41 @@ spec: {{- include "plane.podScheduling" .Values.services.space }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-space-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-space-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-space-wl + minReplicas: {{ .Values.services.space.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.space.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.space.autoscaling.targetCPUUtilizationPercentage .Values.services.space.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.space.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.space.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.space.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.space.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-enterprise/templates/workloads/web.deployment.yaml b/charts/plane-enterprise/templates/workloads/web.deployment.yaml index 4e6b0a24..e167dba3 100644 --- a/charts/plane-enterprise/templates/workloads/web.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/web.deployment.yaml @@ -48,9 +48,10 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.web.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.web.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.web.cpuRequest | default "100m" | quote }} + memory: {{ .Values.services.web.memoryRequest | default "200Mi" | quote }} limits: + cpu: {{ .Values.services.web.cpuLimit | default "500m" | quote}} memory: {{ .Values.services.web.memoryLimit | default "1000Mi" | quote }} cpu: {{ .Values.services.web.cpuLimit | default "500m" | quote}} {{- if .Values.extraEnv }} @@ -60,4 +61,41 @@ spec: {{- include "plane.podScheduling" .Values.services.web }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-web-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-web-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-web-wl + minReplicas: {{ .Values.services.web.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.web.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.web.autoscaling.targetCPUUtilizationPercentage .Values.services.web.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.web.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.web.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.web.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.web.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-enterprise/templates/workloads/worker.deployment.yaml b/charts/plane-enterprise/templates/workloads/worker.deployment.yaml index 8618c932..79710d51 100644 --- a/charts/plane-enterprise/templates/workloads/worker.deployment.yaml +++ b/charts/plane-enterprise/templates/workloads/worker.deployment.yaml @@ -25,11 +25,11 @@ spec: tty: true resources: requests: - memory: {{ .Values.services.worker.memoryRequest | default "50Mi" | quote }} - cpu: {{ .Values.services.worker.cpuRequest | default "50m" | quote }} + cpu: {{ .Values.services.worker.cpuRequest | default "500m" | quote }} + memory: {{ .Values.services.worker.memoryRequest | default "2000Mi" | quote }} limits: - memory: {{ .Values.services.worker.memoryLimit | default "1000Mi" | quote }} - cpu: {{ .Values.services.worker.cpuLimit | default "500m" | quote}} + cpu: {{ .Values.services.worker.cpuLimit | default "1000m" | quote}} + memory: {{ .Values.services.worker.memoryLimit | default "4000Mi" | quote }} command: - ./bin/docker-entrypoint-worker.sh envFrom: @@ -55,4 +55,41 @@ spec: {{- include "plane.podScheduling" .Values.services.worker }} serviceAccount: {{ .Release.Name }}-srv-account serviceAccountName: {{ .Release.Name }}-srv-account +--- +{{- if eq (include "enable.hpa" . | trim) "true" }} + +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Release.Name }}-worker-hpa + namespace: {{ .Release.Namespace }} + labels: + app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-worker-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ .Release.Name }}-worker-wl + minReplicas: {{ .Values.services.worker.autoscaling.minReplicas | default 1 }} + maxReplicas: {{ .Values.services.worker.autoscaling.maxReplicas | default 5 }} + {{- if or .Values.services.worker.autoscaling.targetCPUUtilizationPercentage .Values.services.worker.autoscaling.targetMemoryUtilizationPercentage }} + metrics: + {{- if .Values.services.worker.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.services.worker.autoscaling.targetCPUUtilizationPercentage | default 90 }} + {{- end }} + {{- if .Values.services.worker.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.services.worker.autoscaling.targetMemoryUtilizationPercentage | default 90 }} + {{- end }} + {{- end }} +{{- end }} --- \ No newline at end of file diff --git a/charts/plane-enterprise/values.yaml b/charts/plane-enterprise/values.yaml index cd44316c..dd5e91df 100644 --- a/charts/plane-enterprise/values.yaml +++ b/charts/plane-enterprise/values.yaml @@ -97,6 +97,7 @@ services: labels: {} annotations: {} + iframely: enabled: false replicas: 1 @@ -127,6 +128,12 @@ services: affinity: {} labels: {} annotations: {} + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 + monitor: memoryLimit: 1000Mi @@ -145,13 +152,18 @@ services: space: replicas: 1 - memoryLimit: 1000Mi + cpuRequest: 100m + memoryRequest: 200Mi cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + memoryLimit: 1000Mi image: artifacts.plane.so/makeplane/space-commercial pullPolicy: Always assign_cluster_ip: false + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {} @@ -160,13 +172,18 @@ services: admin: replicas: 1 - memoryLimit: 1000Mi + cpuRequest: 100m + memoryRequest: 200Mi cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + memoryLimit: 1000Mi image: artifacts.plane.so/makeplane/admin-commercial pullPolicy: Always assign_cluster_ip: false + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {} @@ -175,13 +192,18 @@ services: live: replicas: 1 - memoryLimit: 1000Mi - cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + cpuRequest: 500m + memoryRequest: 1000Mi + cpuLimit: 1000m + memoryLimit: 2000Mi image: artifacts.plane.so/makeplane/live-commercial pullPolicy: Always assign_cluster_ip: false + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {} @@ -190,13 +212,18 @@ services: api: replicas: 1 - memoryLimit: 1000Mi - cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + cpuRequest: 1000m + memoryRequest: 1000Mi + cpuLimit: 2000m + memoryLimit: 2000Mi image: artifacts.plane.so/makeplane/backend-commercial pullPolicy: Always assign_cluster_ip: false + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {} @@ -205,10 +232,16 @@ services: worker: replicas: 1 - memoryLimit: 1000Mi - cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + cpuRequest: 500m + memoryRequest: 2000Mi + cpuLimit: 1000m + memoryLimit: 4000Mi + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 + nodeSelector: {} tolerations: [] affinity: {} @@ -217,10 +250,15 @@ services: beatworker: replicas: 1 - memoryLimit: 1000Mi - cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + cpuRequest: 500m + memoryRequest: 1000Mi + cpuLimit: 1000m + memoryLimit: 2000Mi + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {} @@ -230,13 +268,18 @@ services: silo: enabled: true replicas: 1 - memoryLimit: 1000Mi - cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + cpuRequest: 250m + memoryRequest: 1000Mi + cpuLimit: 1000m + memoryLimit: 2000Mi image: artifacts.plane.so/makeplane/silo-commercial pullPolicy: Always assign_cluster_ip: false + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {} @@ -262,12 +305,17 @@ services: email_service: enabled: false replicas: 1 - memoryLimit: 1000Mi + cpuRequest: 100m + memoryRequest: 200Mi cpuLimit: 500m - memoryRequest: 50Mi - cpuRequest: 50m + memoryLimit: 1000Mi image: artifacts.plane.so/makeplane/email-commercial pullPolicy: Always + autoscaling: + minReplicas: 1 + maxReplicas: 5 + targetCPUUtilizationPercentage: 90 + targetMemoryUtilizationPercentage: 90 nodeSelector: {} tolerations: [] affinity: {}