Skip to main content

Compute Configuration

Spec Version: v2025-10-01-draft
Ecosystem Compatibility: v1 (Preview)

blueprint transform: celerity-2025-10-01-draft

Ecosystem Compatibility
  • v1 (Preview): Multi-cloud deployments for containerised applications running in the Celerity runtime.

Read more about Celerity versions here.

🚀 Planned for v1 - Support for compute configuration is planned for v1, a subset of the configuration options will become available in future v0 evolutions. This document will be updated to reflect these changes.

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.