Skip to main content

Compute Configuration

v2026-02-28 (draft)

Celerity applications can be composed of multiple compute resources that represent different interfaces for an application. These compute resources share common configuration specific to a deployment target that can be defined in the app deploy configuration file.

This document describes configuration that can be used to fine-tune the underlying compute resources for the celerity/api, celerity/consumer, celerity/schedule and celerity/workflow resource types.

The following configuration options can be set in the deployTarget.config object in the app deploy configuration file.

AWS Configuration Options

The following configuration options are specific to the aws target environment.

aws.compute.containerService

Determine the container service to use when deploying to the aws target environment.

Type

string

Deploy Targets

aws

Allowed Values

ecs | eks

Default Value

ecs

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.containerService": "eks"
}
}
}

aws.compute.launchType

Determine the launch type to use when deploying to the aws target environment.

Type

string

Deploy Targets

aws

Allowed Values

ec2 | fargate

Default Value

ec2

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.launchType": "fargate"
}
}
}

aws.compute.instanceType

Determine the instance type to use when deploying to the aws target environment. This is used for both ecs and eks container services when the launch type is ec2. Scaling behaviour for Celerity applications use the instance type as a part of the "launch template" to scale the underlying EC2 instances horizontally.

This will override the default instance type for the application that is derived from celerity/handler resources in the application blueprint.

Type

string

Deploy Targets

aws

Allowed Values

See AWS EC2 Instance Types to explore available instance types.

Default Value

The default instance type is determined by the compute needs of the application defined for the celerity/handler resources used in the application. If no compute needs are defined in the blueprint, the t3.small instance type will be used for development app environments and the t3.medium instance type will be used for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.instanceType": "t3.medium"
}
}
}

aws.compute.esc.minInstances

Determine the minimum number of instances to run for the ECS service when deploying to the aws target environment and the container service is ecs. This is used when the launch type is ec2.

Type

number

Deploy Targets

aws

Default Value

1

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.minInstances": 2
}
}
}

aws.compute.ecs.maxInstances

Determine the maximum number of instances to run for the ECS service when deploying to the aws target environment and the container service is ecs. This is used when the launch type is ec2.

Type

number

Deploy Targets

aws

Default Value

3 for development app environments and 6 for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.maxInstances": 5
}
}
}

aws.compute.ecs.scalePolicyType

Determine the scale policy type to use when deploying to the aws target environment and the container service is ecs. If the ECS deployment is backed by EC2 instances, the scale policy type will also apply to the EC2 instances. If you want to manage scaling tasks and instances separately, you can set the aws.compute.ecs.scalePolicyType to None and manage the scaling of tasks from a separate blueprint with provider-specific IaC, using the AWS console or another tool. For example, if you want to use custom metrics for predictive scaling, you'll want to switch off built-in auto-scaling and manage it separately.

Type

string

Deploy Targets

aws

Allowed Values

TargetTracking | StepScaling | PredictiveScaling | None

Default Value

TargetTracking

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.scalePolicyType": "StepScaling"
}
}
}

aws.compute.ecs.pScale.maxCapacityBreachBehavior

Determine the behaviour that should be applied if the forecast capacity approaches or exceeds the maximum capacity. This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling.

Type

string

Deploy Targets

aws

Allowed Values

HonorMaxCapacity | IncreaseMaxCapacity

Default Value

HonorMaxCapacity

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.maxCapacityBreachBehavior": "IncreaseMaxCapacity"
}
}
}

aws.compute.ecs.pScale.maxCapacityBuffer

Determine the size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10% buffer, such that if the forecast capacity os 50 and the maximum capacity is 40, then the effective maximum capacity will be 50 + 10% of 50 = 55.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling. This is required if aws.compute.ecs.pScale.maxCapacityBreachBehavior is set to IncreaseMaxCapacity and will not be used otherwise.

Type

number

Deploy Targets

aws

Minimum

0

Maximum

100

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.maxCapacityBuffer": 10
}
}
}

aws.compute.ecs.pScale.mode

The predictive scaling mode to use when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling.

Type

string

Deploy Targets

aws

Allowed Values

ForecastOnly | ForecastAndScale

Default Value

ForecastOnly

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.mode": "ForecastAndScale"
}
}
}

aws.compute.ecs.pScale.loadMetric

The type of metric to use as the load metric for predictive scaling. This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling.

This is required for the PredictiveScaling scale policy type and will not be used otherwise.

Type

string

Deploy Targets

aws

Allowed Values

ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | ECSServiceCPUUtilization | ECSServiceMemoryUtilization | ECSServiceTotalCPUUtilization | ECSServiceTotalMemoryUtilization | ALBRequestCount | ALBRequestCountPerTarget | TotalALBRequestCount

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.loadMetric": "ECSServiceAverageCPUUtilization"
}
}
}

aws.compute.ecs.pScale.scalingMetric

The type of metric to use as the scaling metric for predictive scaling. This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling.

This is required for the PredictiveScaling scale policy type and will not be used otherwise.

Type

string

Deploy Targets

aws

Allowed Values

ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | ECSServiceCPUUtilization | ECSServiceMemoryUtilization | ECSServiceTotalCPUUtilization | ECSServiceTotalMemoryUtilization | ALBRequestCount | ALBRequestCountPerTarget | TotalALBRequestCount

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.scalingMetric": "ECSServiceAverageCPUUtilization"
}
}
}

aws.compute.ecs.pScale.targetValue

Specifies the target utilisation for the scaling metric. This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling.

This is required for the PredictiveScaling scale policy type and will not be used otherwise.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.targetValue": 50
}
}
}

aws.compute.ecs.pScale.schedulingBuffertime

The amount of time, in seconds, that the start time can be advanced. This value must be less than the forecast interval duration of 3600 seconds (60 minutes). This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is PredictiveScaling.

Type

number

Deploy Targets

aws

Default Value

300

Minimum

0

Maximum

3600

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.pScale.schedulingBuffertime": 500
}
}
}

aws.compute.ecs.tScale.disableScaleIn

Indicates whether the scale in by the target tracking scaling policy is disabled. If this is set to true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is TargetTracking.

Type

boolean

Deploy Targets

aws

Default Value

false

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.tScale.disableScaleIn": true
}
}
}

aws.compute.ecs.tScale.scaleInCooldown

The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For defaults, see the Define cooldown periods documentation.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is TargetTracking.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.tScale.scaleInCooldown": 120
}
}
}

aws.compute.ecs.tScale.scaleOutCooldown

The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For defaults, see the Define cooldown periods documentation.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is TargetTracking.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.tScale.scaleOutCooldown": 120
}
}
}

aws.compute.ecs.tScale.metric

The metric type to use for the target tracking scaling policy.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is TargetTracking.

Type

string

Deploy Targets

aws

Allowed Values

ALBRequestCountPerTarget | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization

Default Value

ECSServiceAverageCPUUtilization

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.tScale.metric": "ALBRequestCountPerTarget"
}
}
}

aws.compute.ecs.tScale.targetValue

The target value for the metric. This accepts floating point numbers but won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utlisation, then the target value is a percent value that represents how much of the CPU can be used before scaling out.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is TargetTracking.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.tScale.targetValue": 50
}
}
}

aws.compute.ecs.sScale.adjustmentType

Specifies whether the scalingAdjustment values in the stepAdjustments array are absolute numbers or precentages of the current capacity.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

string

Deploy Targets

aws

Allowed Values

ChangeInCapacity | ExactCapacity | PercentChangeInCapacity

Default Value

ChangeInCapacity

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.adjustmentType": "PercentChangeInCapacity"
}
}
}

aws.compute.ecs.sScale.cooldown

The amount of time, in seconds, to wait for a previous scaling activity to take effect. For more information, see the Define cooldown periods documentation.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

number

Deploy Targets

aws

Default Value

300

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.cooldown": 120
}
}
}

aws.compute.ecs.sScale.metricAggregationType

The aggregation type to use for the CloudWatch metrics.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

string

Deploy Targets

aws

Allowed Values

Average | Minimum | Maximum

Default Value

Average

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.metricAggregationType": "Maximum"
}
}
}

aws.compute.ecs.sScale.minAdjustmentMagnitude

The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For exmaple, suppose you create a step scaling policy to scale out an Amazon ECS service by 25% and you specify a minAdjustmentMagnitude of 2. If the service has 4 tasks and the scaling policy is triggerred, 25 percent of 4 is 1. However, because you specified a minAdjustmentMagnitude of 2, the service scales out by 2 tasks instead of 1.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.minAdjustmentMagnitude": 2
}
}
}

aws.compute.ecs.sScale.stepAdjustments.<index>.metricIntervalLowerBound

aws.compute.ecs.sScale.stepAdjustments is the namespace for a set of adjustments that enable you to scale based on the size of the alarm breach. At least one step adjustment is required if you are adding a new step scaling policy configuration.

This is the lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). An empty value means that there is no lower bound (negative infinity).

At least one upper or lower bound must be specified for each step adjustment.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.stepAdjustments.0.metricIntervalLowerBound": 0
}
}
}

aws.compute.ecs.sScale.stepAdjustments.<index>.metricIntervalUpperBound

The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). An empty value means that there is no upper bound (positive infinity).

At least one upper or lower bound must be specified for each step adjustment.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.stepAdjustments.0.metricIntervalUpperBound": 10
}
}
}

aws.compute.ecs.sScale.stepAdjustments.<index>.scalingAdjustment

The amount by which to scale. The adjustment is based on the value that was specified in the aws.compute.ecs.sScale.adjustmentType config entry (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.

This field is required for each step adjustment.

This is used when deploying to the aws target environment, the container service is ecs and the scale policy type is StepScaling.

Type

number

Deploy Targets

aws

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.ecs.sScale.stepAdjustments.0.scalingAdjustment": 2
}
}
}

aws.compute.eks.hpa.minReplicas

The minimum number of replicas of a pod that should be running at any time for the Kubernetes horizontal pod autoscaler. This is used when deploying to the aws target environment and the container service is eks.

Type

number

Deploy Targets

aws

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.hpa.minReplicas": 2
}
}
}

aws.compute.eks.hpa.maxReplicas

The maximum number of replicas of a pod that should be running at any time for the Kubernetes horizontal pod autoscaler. This is used when deploying to the aws target environment and the container service is eks.

Type

number

Deploy Targets

aws

Default Value

By default, this will be 3 for development app environments and 6 for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.hpa.maxReplicas": 5
}
}
}

aws.compute.eks.hpa.targetCPUUtilizationPercentage

The target CPU utilisation percentage for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If aws.compute.eks.hpa.targetCPUAverageValue is also set, this value will take precedence.

This is used when deploying to the aws target environment and the container service is eks.

Type

number

Deploy Targets

aws

Default Value

By default, this will be 50 (percent) for both development and production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.hpa.targetCPUUtilizationPercentage": 45
}
}
}

aws.compute.eks.hpa.targetCPUAverageValue

The target CPU exact average value for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If aws.compute.eks.hpa.targetCPUUtilizationPercentage is also set, this value will be ignored.

This is used when deploying to the aws target environment and the container service is eks.

Type

string

Deploy Targets

aws

Default Value

If not set, this will not be used, a utilisation percentage will be used instead.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.hpa.targetCPUAverageValue": "1000m"
}
}
}

aws.compute.eks.hpa.targetMemoryUtilizationPercentage

The target memory utilisation percentage for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application. If aws.compute.eks.hpa.targetMemoryAverageValue is also set, this value will take precedence.

This is used when deploying to the aws target environment and the container service is eks.

Type

number

Deploy Targets

aws

Default Value

By default, this will be 70 (percent) for both development and production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.hpa.targetMemoryUtilizationPercentage": 65
}
}
}

aws.compute.eks.hpa.targetMemoryAverageValue

The target memory exact average value for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application. If aws.compute.eks.hpa.targetMemoryUtilizationPercentage is also set, this value will be ignored.

This is used when deploying to the aws target environment and the container service is eks.

Type

string

Deploy Targets

aws

Default Value

If not set, this will not be used, a utilisation percentage will be used instead.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.hpa.targetMemoryAverageValue": "2000Mi"
}
}
}

aws.compute.eks.clusterAutoscaler.minNodes

The minimum number of nodes in the node group for your application running on EKS. This is used when deploying to the aws target environment, the launch type is ec2 and the container service is eks.

Type

number

Deploy Targets

aws

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.clusterAutoscaler.minNodes": 3
}
}
}

aws.compute.eks.clusterAutoscaler.maxNodes

The maximum number of nodes in the node group for your application running on EKS. This is used when deploying to the aws target environment, the launch type is ec2 and the container service is eks.

Type

number

Deploy Targets

aws

Default Value

By default, this will be 3 for development app environments and 6 for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.clusterAutoscaler.maxNodes": 5
}
}
}

aws.compute.eks.podMemory

The amount of memory that can be used by a single pod running the application. This is used when deploying to the aws target environment and the container service is eks.

Type

string

Deploy Targets

aws

Default Value

If memory usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable memory limits for pods instead. If not set in the blueprint, by default, this will be 870Mi for development app environments and 1792Mi for production app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.podMemory": "2Gi"
}
}
}

aws.compute.eks.podCPU

The amount of CPU that can be used by a single pod running the application. This is used when deploying to the aws target environment and the container service is eks.

Type

string

Deploy Targets

aws

Default Value

If CPU usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable CPU limits for pods instead. If not set in the blueprint, by default, this will be 0.8 for both production and development app environments.

Example

{
"deployTarget": {
"name": "aws",
"appEnv": "production",
"config": {
"aws.compute.eks.podCPU": "1"
}
}
}

aws.compute.eks.apiserver

Details to connect to an existing Kubernetes cluster API server to deploy the application. TODO: Add more details and config options for connecting to an existing cluster after testing out deployments of Celerity applications to existing clusters.

Google Cloud Configuration Options

gcloud.compute.containerService

Determine the container service to use when deploying to the gcloud target environment.

Type

string

Deploy Targets

gcloud

Allowed Values

gke | cloudrun

Default Value

cloudrun

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.containerService": "gke"
}
}
}

gcloud.compute.cloudrun.instanceMemoryLimit

The maximum amount of memory that can be used by a single instance of the application running on Cloud Run. See Cloud Run Limits for more information on the combination of CPU and memory limits that can be set for Cloud Run.

Type

string

Deploy Targets

gcloud

Default Value

If memory usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable memory limits for instances instead. If not set in the blueprint, by default, this will be 1Gi for development app environments and 2Gi for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.cloudrun.instanceMemoryLimit": "2Gi"
}
}
}

gcloud.compute.cloudrun.instanceCPULimit

The maximum amount of CPU units that can be used by a single instance of the application running on Cloud Run. See Cloud Run Limits for more information on the combination of CPU and memory limits that can be set for Cloud Run.

Type

number

Deploy Targets

gcloud

Default Value

If CPU usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable CPU limits for instances instead. If not set in the blueprint, by default, this will be 0.5 for development app environments and 1 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.cloudrun.instanceCPULimit": 1
}
}
}

gcloud.compute.cloudrun.autoscaling.minScale

The minimum number of instances to run for the Knative autoscaler that runs under the hood for Cloud Run. This is the autoscaling.knative.dev/minScale annotation.

Type

number

Deploy Targets

gcloud

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.cloudrun.autoscaling.minScale": 2
}
}
}

gcloud.compute.cloudrun.autoscaling.maxScale

The maximum number of instances to run for the Knative autoscaler that runs under the hood for Cloud Run. This is the autoscaling.knative.dev/maxScale annotation.

Type

number

Deploy Targets

gcloud

Default Value

By default, this will be 3 for development app environments and 5 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.cloudrun.autoscaling.maxScale": 5
}
}
}

gcloud.compute.gke.mode

The mode to use when deploying to the gcloud target environment and the container service is gke. This determines whether the application will be deployed in standard or autopilot mode.

Type

string

Deploy Targets

gcloud

Allowed Values

standard | autopilot

Default Value

standard

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.mode": "autopilot"
}
}
}

gcloud.compute.gke.autoscaling.minNodesPerZone

The minimum number of nodes per zone to use when deploying to the gcloud target environment, the container service is gke and the mode is standard.

When deploying to a production app environment, there will be 2 zones used for the application, so this value will be multiplied by 2 to determine the minimum number of total nodes for the application.

When deploying to a development app environment, there will be 1 zone used for the application, so this value will be used as the minimum number of total nodes for the application.

Type

number

Deploy Targets

gcloud

Default Value

1

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.autoscaling.minNodesPerZone": 2
}
}
}

gcloud.compute.gke.autoscaling.maxNodesPerZone

The maximum number of nodes per zone to use when deploying to the gcloud target environment, the container service is gke and the mode is standard.

When deploying to a production app environment, there will be 2 zones used for the application, so this value will be multiplied by 2 to determine the maximum number of total nodes for the application.

When deploying to a development app environment, there will be 1 zone used for the application, so this value will be used as the maximum number of total nodes for the application.

Type

number

Deploy Targets

gcloud

Default Value

3

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.autoscaling.maxNodesPerZone": 5
}
}
}

gcloud.compute.gke.machineType

The machine type to use when deploying to the gcloud target environment, the container service is gke and the mode is standard.

Type

string

Deploy Targets

gcloud

Default Value

If not set and the machine type can not be derived from the application handlers, the default machine type will be n2-highcpu-2 for development app environments and n2-highcpu-4 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.machineType": "n4-standard-4"
}
}
}

gcloud.compute.gke.podMemory

The amount of memory that can be used by a single pod running the application. This is used when deploying to the gcloud target environment and the container service is gke.

Type

string

Deploy Targets

gcloud

Default Value

If memory usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable memory limits for pods instead. If not set in the blueprint, by default, this will be 870Mi for development app environments and 1792Mi for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.podMemory": "2Gi"
}
}
}

gcloud.compute.gke.podCPU

The amount of CPU that can be used by a single pod running the application. This is used when deploying to the gcloud target environment and the container service is gke.

Type

string

Deploy Targets

gcloud

Default Value

If CPU usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable CPU limits for pods instead. If not set in the blueprint, by default, this will be 0.8 for development app environments and 1.6 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.podCPU": "1"
}
}
}

gcloud.compute.gke.hpa.minReplicas

The minimum number of replicas of a pod that should be running at any time for the Kubernetes horizontal pod autoscaler. This is used when deploying to the gcloud target environment and the container service is gke.

Type

number

Deploy Targets

gcloud

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.hpa.minReplicas": 2
}
}
}

gcloud.compute.gke.hpa.maxReplicas

The maximum number of replicas of a pod that should be running at any time for the Kubernetes horizontal pod autoscaler. This is used when deploying to the gcloud target environment and the container service is gke.

Type

number

Deploy Targets

gcloud

Default Value

By default, this will be 3 for development app environments and 6 for production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.hpa.maxReplicas": 5
}
}
}

gcloud.compute.gke.hpa.targetCPUUtilizationPercentage

The target CPU utilisation percentage for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If gcloud.compute.gke.hpa.targetCPUAverageValue is also set, this value will take precedence.

This is used when deploying to the gcloud target environment and the container service is gke.

Type

number

Deploy Targets

gcloud

Default Value

By default, this will be 50 (percent) for both development and production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.hpa.targetCPUUtilizationPercentage": 45
}
}
}

gcloud.compute.gke.hpa.targetCPUAverageValue

The target CPU exact average value for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If gcloud.compute.gke.hpa.targetCPUUtilizationPercentage is also set, this value will be ignored.

This is used when deploying to the gcloud target environment and the container service is gke.

Type

string

Deploy Targets

gcloud

Default Value

If not set, this will not be used, a utilisation percentage will be used instead.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.hpa.targetCPUAverageValue": "1000m"
}
}
}

gcloud.compute.gke.hpa.targetMemoryUtilizationPercentage

The target memory utilisation percentage for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If gcloud.compute.gke.hpa.targetMemoryAverageValue is also set, this value will take precedence.

This is used when deploying to the gcloud target environment and the container service is gke.

Type

number

Deploy Targets

gcloud

Default Value

By default, this will be 70 (percent) for both development and production app environments.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.hpa.targetMemoryUtilizationPercentage": 65
}
}
}

gcloud.compute.gke.hpa.targetMemoryAverageValue

The target memory exact average value for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If gcloud.compute.gke.hpa.targetMemoryUtilizationPercentage is also set, this value will be ignored.

This is used when deploying to the gcloud target environment and the container service is gke.

Type

string

Deploy Targets

gcloud

Default Value

If not set, this will not be used, a utilisation percentage will be used instead.

Example

{
"deployTarget": {
"name": "gcloud",
"appEnv": "production",
"config": {
"gcloud.compute.gke.hpa.targetMemoryAverageValue": "2000Mi"
}
}
}

gcloud.compute.gke.apiserver

Details to connect to an existing Kubernetes cluster API server to deploy the application. TODO: Add more details and config options for connecting to an existing cluster after testing out deployments of Celerity applications to existing clusters.

Azure Configuration Options

azure.compute.containerService

Determine the container service to use when deploying to the azure target environment.

Type

string

Deploy Targets

azure

Allowed Values

containerApps | aks

Default Value

containerApps

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.containerService": "aks"
}
}
}

azure.compute.containerApps.minReplicas

The minimum number of replicas per revision to use when deploying to the azure target environment and the container service is containerApps.

This only applies to Celerity applications that represent an service that is expected to be reached via HTTP requests (i.e. celerity/api and celerity/workflow applications).

Type

number

Deploy Targets

azure

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.containerApps.minReplicas": 2
}
}
}

azure.compute.containerApps.maxReplicas

The maximum number of replicas per revision to use when deploying to the azure target environment and the container service is containerApps.

This only applies to Celerity applications that represent an service that is expected to be reached via HTTP requests (i.e. celerity/api and celerity/workflow applications).

Type

number

Deploy Targets

azure

Default Value

By default, this will be 3 for development app environments and 5 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.containerApps.maxReplicas": 5
}
}
}

azure.compute.containerApps.cpu

The maximum amount of vCPU cores that can be used by a single instance of the application running on Container Apps. See Container Apps allocations for more information on the combination of CPU and memory allocations that can be set for Container Apps using the Consumption plan.

Type

number

Deploy Targets

azure

Default Value

If CPU usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable CPU limits for instances instead. If not set in the blueprint, by default, this will be 0.5 for development app environments and 1 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.containerApps.cpu": 1
}
}
}

azure.compute.containerApps.memory

The maximum amount of memory that can be used by a single instance of the application running on Container Apps. See Container Apps allocations for more information on the combination of CPU and memory allocations that can be set for Container Apps using the Consumption plan.

Type

string

Deploy Targets

azure

Default Value

If memory usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable memory limits for instances instead. If not set in the blueprint, by default, this will be 1Gi for development app environments and 2Gi for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.containerApps.memory": "2Gi"
}
}
}

azure.compute.aks.systemPoolInstanceType

The instance type to use for the system components running on the AKS cluster. This is used when deploying to the azure target environment and the container service is aks.

Type

string

Deploy Targets

azure

Default Value

By default, this will be Standard_D4d_v5 for both production and development app environments. See the minimum requirements for system Node Pools when choosing a custom instance type to use for the system components of your cluster.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.systemPoolInstanceType": "Standard_D4d_v5"
}
}
}

azure.compute.aks.appPoolInstanceType

The instance type to use for the application node pools running on the AKS cluster. This is used when deploying to the azure target environment and the container service is aks.

Type

string

Deploy Targets

azure

Default Value

By default, this will be Standard_D4ls_v6 for production app environments and Standard_D2ls_v6 for development app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.appPoolInstanceType": "Standard_D4d_v5"
}
}
}

azure.compute.aks.systemPoolMinNodes

The minimum number of nodes in the system node pool for the AKS cluster. This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.systemPoolMinNodes": 2
}
}
}

azure.compute.aks.systemPoolMaxNodes

The maximum number of nodes in the system node pool for the AKS cluster. This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 2 for development app environments and 3 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.systemPoolMaxNodes": 3
}
}
}

azure.compute.aks.appPoolMinNodes

The minimum number of nodes in the application node pool for the AKS cluster. This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 1 for development app environments and 3 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.appPoolMinNodes": 3
}
}
}

azure.compute.aks.appPoolMaxNodes

The maximum number of nodes in the application node pool for the AKS cluster. This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 3 for development app environments and 6 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.appPoolMaxNodes": 5
}
}
}

azure.compute.aks.podMemory

The amount of memory that can be used by a single pod running the application. This is used when deploying to the azure target environment and the container service is aks.

Type

string

Deploy Targets

azure

Default Value

If memory usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable memory limits for pods instead. If not set in the blueprint, by default, this will be 870Mi for development app environments and 1792Mi for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.podMemory": "2Gi"
}
}
}

azure.compute.aks.podCPU

The amount of CPU that can be used by a single pod running the application. This is used when deploying to the azure target environment and the container service is aks.

Type

string

Deploy Targets

azure

Default Value

If CPU usage is set in the application blueprint for handlers in the application, these will be used to determine reasonable CPU limits for pods instead. If not set in the blueprint, by default, this will be 0.4 for development app environments and 0.8 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.podCPU": "1"
}
}
}

azure.compute.aks.hpa.minReplicas

The minimum number of replicas of a pod that should be running at any time for the Kubernetes horizontal pod autoscaler. This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 1 for development app environments and 2 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.hpa.minReplicas": 2
}
}
}

azure.compute.aks.hpa.maxReplicas

The maximum number of replicas of a pod that should be running at any time for the Kubernetes horizontal pod autoscaler. This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 6 for development app environments and 12 for production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.hpa.maxReplicas": 10
}
}
}

azure.compute.aks.hpa.targetCPUUtilizationPercentage

The target CPU utilisation percentage for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If azure.compute.aks.hpa.targetCPUAverageValue is also set, this value will take precedence.

This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 50 (percent) for both development and production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.hpa.targetCPUUtilizationPercentage": 45
}
}
}

azure.compute.aks.hpa.targetCPUAverageValue

The target CPU exact average value for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If azure.compute.aks.hpa.targetCPUUtilizationPercentage is also set, this value will be ignored.

This is used when deploying to the azure target environment and the container service is aks.

Type

string

Deploy Targets

azure

Default Value

If not set, this will not be used, a utilisation percentage will be used instead.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.hpa.targetCPUAverageValue": "1000m"
}
}
}

azure.compute.aks.hpa.targetMemoryUtilizationPercentage

The target memory utilisation percentage for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If azure.compute.aks.hpa.targetMemoryAverageValue is also set, this value will take precedence.

This is used when deploying to the azure target environment and the container service is aks.

Type

number

Deploy Targets

azure

Default Value

By default, this will be 70 (percent) for both development and production app environments.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.hpa.targetMemoryUtilizationPercentage": 65
}
}
}

azure.compute.aks.hpa.targetMemoryAverageValue

The target memory exact average value for the Kubernetes horizontal pod autoscaler. This will be used in forming the scaling policy for pods running the application.

If azure.compute.aks.hpa.targetMemoryUtilizationPercentage is also set, this value will be ignored.

This is used when deploying to the azure target environment and the container service is aks.

Type

string

Deploy Targets

azure

Default Value

If not set, this will not be used, a utilisation percentage will be used instead.

Example

{
"deployTarget": {
"name": "azure",
"appEnv": "production",
"config": {
"azure.compute.aks.hpa.targetMemoryAverageValue": "2000Mi"
}
}
}

azure.compute.aks.apiserver

Details to connect to an existing Kubernetes cluster API server to deploy the application. TODO: Add more details and config options for connecting to an existing cluster after testing out deployments of Celerity applications to existing clusters.