1. Packages
  2. Castai Provider
  3. API Docs
  4. Autoscaler
castai 7.45.0 published on Wednesday, Apr 16, 2025 by castai

castai.Autoscaler

Explore with Pulumi AI

CAST AI autoscaler resource to manage autoscaler settings

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as castai from "@pulumi/castai";

const castaiAutoscalerPolicy = new castai.Autoscaler("castaiAutoscalerPolicy", {
    clusterId: castai_eks_cluster.test.id,
    autoscalerSettings: {
        enabled: true,
        isScopedMode: false,
        nodeTemplatesPartialMatchingEnabled: false,
        unschedulablePods: {
            enabled: true,
        },
        clusterLimits: {
            enabled: true,
            cpu: {
                minCores: 1,
                maxCores: 10,
            },
        },
        nodeDownscaler: {
            enabled: true,
            emptyNodes: {
                enabled: true,
                delaySeconds: 90,
            },
            evictor: {
                enabled: true,
                dryRun: false,
                aggressiveMode: false,
                scopedMode: false,
                cycleInterval: "60s",
                nodeGracePeriodMinutes: 10,
                podEvictionFailureBackOffInterval: "30s",
                ignorePodDisruptionBudgets: false,
            },
        },
    },
});
Copy
import pulumi
import pulumi_castai as castai

castai_autoscaler_policy = castai.Autoscaler("castaiAutoscalerPolicy",
    cluster_id=castai_eks_cluster["test"]["id"],
    autoscaler_settings={
        "enabled": True,
        "is_scoped_mode": False,
        "node_templates_partial_matching_enabled": False,
        "unschedulable_pods": {
            "enabled": True,
        },
        "cluster_limits": {
            "enabled": True,
            "cpu": {
                "min_cores": 1,
                "max_cores": 10,
            },
        },
        "node_downscaler": {
            "enabled": True,
            "empty_nodes": {
                "enabled": True,
                "delay_seconds": 90,
            },
            "evictor": {
                "enabled": True,
                "dry_run": False,
                "aggressive_mode": False,
                "scoped_mode": False,
                "cycle_interval": "60s",
                "node_grace_period_minutes": 10,
                "pod_eviction_failure_back_off_interval": "30s",
                "ignore_pod_disruption_budgets": False,
            },
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-terraform-provider/sdks/go/castai/v7/castai"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := castai.NewAutoscaler(ctx, "castaiAutoscalerPolicy", &castai.AutoscalerArgs{
			ClusterId: pulumi.Any(castai_eks_cluster.Test.Id),
			AutoscalerSettings: &castai.AutoscalerAutoscalerSettingsArgs{
				Enabled:                             pulumi.Bool(true),
				IsScopedMode:                        pulumi.Bool(false),
				NodeTemplatesPartialMatchingEnabled: pulumi.Bool(false),
				UnschedulablePods: &castai.AutoscalerAutoscalerSettingsUnschedulablePodsArgs{
					Enabled: pulumi.Bool(true),
				},
				ClusterLimits: &castai.AutoscalerAutoscalerSettingsClusterLimitsArgs{
					Enabled: pulumi.Bool(true),
					Cpu: &castai.AutoscalerAutoscalerSettingsClusterLimitsCpuArgs{
						MinCores: pulumi.Float64(1),
						MaxCores: pulumi.Float64(10),
					},
				},
				NodeDownscaler: &castai.AutoscalerAutoscalerSettingsNodeDownscalerArgs{
					Enabled: pulumi.Bool(true),
					EmptyNodes: &castai.AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs{
						Enabled:      pulumi.Bool(true),
						DelaySeconds: pulumi.Float64(90),
					},
					Evictor: &castai.AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs{
						Enabled:                           pulumi.Bool(true),
						DryRun:                            pulumi.Bool(false),
						AggressiveMode:                    pulumi.Bool(false),
						ScopedMode:                        pulumi.Bool(false),
						CycleInterval:                     pulumi.String("60s"),
						NodeGracePeriodMinutes:            pulumi.Float64(10),
						PodEvictionFailureBackOffInterval: pulumi.String("30s"),
						IgnorePodDisruptionBudgets:        pulumi.Bool(false),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Castai = Pulumi.Castai;

return await Deployment.RunAsync(() => 
{
    var castaiAutoscalerPolicy = new Castai.Autoscaler("castaiAutoscalerPolicy", new()
    {
        ClusterId = castai_eks_cluster.Test.Id,
        AutoscalerSettings = new Castai.Inputs.AutoscalerAutoscalerSettingsArgs
        {
            Enabled = true,
            IsScopedMode = false,
            NodeTemplatesPartialMatchingEnabled = false,
            UnschedulablePods = new Castai.Inputs.AutoscalerAutoscalerSettingsUnschedulablePodsArgs
            {
                Enabled = true,
            },
            ClusterLimits = new Castai.Inputs.AutoscalerAutoscalerSettingsClusterLimitsArgs
            {
                Enabled = true,
                Cpu = new Castai.Inputs.AutoscalerAutoscalerSettingsClusterLimitsCpuArgs
                {
                    MinCores = 1,
                    MaxCores = 10,
                },
            },
            NodeDownscaler = new Castai.Inputs.AutoscalerAutoscalerSettingsNodeDownscalerArgs
            {
                Enabled = true,
                EmptyNodes = new Castai.Inputs.AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs
                {
                    Enabled = true,
                    DelaySeconds = 90,
                },
                Evictor = new Castai.Inputs.AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs
                {
                    Enabled = true,
                    DryRun = false,
                    AggressiveMode = false,
                    ScopedMode = false,
                    CycleInterval = "60s",
                    NodeGracePeriodMinutes = 10,
                    PodEvictionFailureBackOffInterval = "30s",
                    IgnorePodDisruptionBudgets = false,
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.castai.Autoscaler;
import com.pulumi.castai.AutoscalerArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsUnschedulablePodsArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsClusterLimitsArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsClusterLimitsCpuArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsNodeDownscalerArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs;
import com.pulumi.castai.inputs.AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var castaiAutoscalerPolicy = new Autoscaler("castaiAutoscalerPolicy", AutoscalerArgs.builder()
            .clusterId(castai_eks_cluster.test().id())
            .autoscalerSettings(AutoscalerAutoscalerSettingsArgs.builder()
                .enabled(true)
                .isScopedMode(false)
                .nodeTemplatesPartialMatchingEnabled(false)
                .unschedulablePods(AutoscalerAutoscalerSettingsUnschedulablePodsArgs.builder()
                    .enabled(true)
                    .build())
                .clusterLimits(AutoscalerAutoscalerSettingsClusterLimitsArgs.builder()
                    .enabled(true)
                    .cpu(AutoscalerAutoscalerSettingsClusterLimitsCpuArgs.builder()
                        .minCores(1)
                        .maxCores(10)
                        .build())
                    .build())
                .nodeDownscaler(AutoscalerAutoscalerSettingsNodeDownscalerArgs.builder()
                    .enabled(true)
                    .emptyNodes(AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs.builder()
                        .enabled(true)
                        .delaySeconds(90)
                        .build())
                    .evictor(AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs.builder()
                        .enabled(true)
                        .dryRun(false)
                        .aggressiveMode(false)
                        .scopedMode(false)
                        .cycleInterval("60s")
                        .nodeGracePeriodMinutes(10)
                        .podEvictionFailureBackOffInterval("30s")
                        .ignorePodDisruptionBudgets(false)
                        .build())
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  castaiAutoscalerPolicy:
    type: castai:Autoscaler
    properties:
      clusterId: ${castai_eks_cluster.test.id}
      autoscalerSettings:
        enabled: true
        isScopedMode: false
        nodeTemplatesPartialMatchingEnabled: false
        unschedulablePods:
          enabled: true
        clusterLimits:
          enabled: true
          cpu:
            minCores: 1
            maxCores: 10
        nodeDownscaler:
          enabled: true
          emptyNodes:
            enabled: true
            delaySeconds: 90
          evictor:
            enabled: true
            dryRun: false
            aggressiveMode: false
            scopedMode: false
            cycleInterval: 60s
            nodeGracePeriodMinutes: 10
            podEvictionFailureBackOffInterval: 30s
            ignorePodDisruptionBudgets: false
Copy

Create Autoscaler Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new Autoscaler(name: string, args?: AutoscalerArgs, opts?: CustomResourceOptions);
@overload
def Autoscaler(resource_name: str,
               args: Optional[AutoscalerArgs] = None,
               opts: Optional[ResourceOptions] = None)

@overload
def Autoscaler(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               autoscaler_id: Optional[str] = None,
               autoscaler_policies_json: Optional[str] = None,
               autoscaler_settings: Optional[AutoscalerAutoscalerSettingsArgs] = None,
               cluster_id: Optional[str] = None,
               timeouts: Optional[AutoscalerTimeoutsArgs] = None)
func NewAutoscaler(ctx *Context, name string, args *AutoscalerArgs, opts ...ResourceOption) (*Autoscaler, error)
public Autoscaler(string name, AutoscalerArgs? args = null, CustomResourceOptions? opts = null)
public Autoscaler(String name, AutoscalerArgs args)
public Autoscaler(String name, AutoscalerArgs args, CustomResourceOptions options)
type: castai:Autoscaler
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args AutoscalerArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args AutoscalerArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args AutoscalerArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args AutoscalerArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. AutoscalerArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var autoscalerResource = new Castai.Autoscaler("autoscalerResource", new()
{
    AutoscalerId = "string",
    AutoscalerSettings = new Castai.Inputs.AutoscalerAutoscalerSettingsArgs
    {
        ClusterLimits = new Castai.Inputs.AutoscalerAutoscalerSettingsClusterLimitsArgs
        {
            Cpu = new Castai.Inputs.AutoscalerAutoscalerSettingsClusterLimitsCpuArgs
            {
                MaxCores = 0,
                MinCores = 0,
            },
            Enabled = false,
        },
        Enabled = false,
        IsScopedMode = false,
        NodeDownscaler = new Castai.Inputs.AutoscalerAutoscalerSettingsNodeDownscalerArgs
        {
            EmptyNodes = new Castai.Inputs.AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs
            {
                DelaySeconds = 0,
                Enabled = false,
            },
            Enabled = false,
            Evictor = new Castai.Inputs.AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs
            {
                AggressiveMode = false,
                CycleInterval = "string",
                DryRun = false,
                Enabled = false,
                IgnorePodDisruptionBudgets = false,
                NodeGracePeriodMinutes = 0,
                PodEvictionFailureBackOffInterval = "string",
                ScopedMode = false,
            },
        },
        NodeTemplatesPartialMatchingEnabled = false,
        SpotInstances = new Castai.Inputs.AutoscalerAutoscalerSettingsSpotInstancesArgs
        {
            Enabled = false,
            MaxReclaimRate = 0,
            SpotBackups = new Castai.Inputs.AutoscalerAutoscalerSettingsSpotInstancesSpotBackupsArgs
            {
                Enabled = false,
                SpotBackupRestoreRateSeconds = 0,
            },
            SpotDiversityEnabled = false,
            SpotDiversityPriceIncreaseLimit = 0,
            SpotInterruptionPredictions = new Castai.Inputs.AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictionsArgs
            {
                Enabled = false,
                SpotInterruptionPredictionsType = "string",
            },
        },
        UnschedulablePods = new Castai.Inputs.AutoscalerAutoscalerSettingsUnschedulablePodsArgs
        {
            Enabled = false,
            Headroom = new Castai.Inputs.AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomArgs
            {
                CpuPercentage = 0,
                Enabled = false,
                MemoryPercentage = 0,
            },
            HeadroomSpot = new Castai.Inputs.AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpotArgs
            {
                CpuPercentage = 0,
                Enabled = false,
                MemoryPercentage = 0,
            },
            NodeConstraints = new Castai.Inputs.AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraintsArgs
            {
                Enabled = false,
                MaxCpuCores = 0,
                MaxRamMib = 0,
                MinCpuCores = 0,
                MinRamMib = 0,
            },
            PodPinner = new Castai.Inputs.AutoscalerAutoscalerSettingsUnschedulablePodsPodPinnerArgs
            {
                Enabled = false,
            },
        },
    },
    ClusterId = "string",
    Timeouts = new Castai.Inputs.AutoscalerTimeoutsArgs
    {
        Create = "string",
        Update = "string",
    },
});
Copy
example, err := castai.NewAutoscaler(ctx, "autoscalerResource", &castai.AutoscalerArgs{
AutoscalerId: pulumi.String("string"),
AutoscalerSettings: &.AutoscalerAutoscalerSettingsArgs{
ClusterLimits: &.AutoscalerAutoscalerSettingsClusterLimitsArgs{
Cpu: &.AutoscalerAutoscalerSettingsClusterLimitsCpuArgs{
MaxCores: pulumi.Float64(0),
MinCores: pulumi.Float64(0),
},
Enabled: pulumi.Bool(false),
},
Enabled: pulumi.Bool(false),
IsScopedMode: pulumi.Bool(false),
NodeDownscaler: &.AutoscalerAutoscalerSettingsNodeDownscalerArgs{
EmptyNodes: &.AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs{
DelaySeconds: pulumi.Float64(0),
Enabled: pulumi.Bool(false),
},
Enabled: pulumi.Bool(false),
Evictor: &.AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs{
AggressiveMode: pulumi.Bool(false),
CycleInterval: pulumi.String("string"),
DryRun: pulumi.Bool(false),
Enabled: pulumi.Bool(false),
IgnorePodDisruptionBudgets: pulumi.Bool(false),
NodeGracePeriodMinutes: pulumi.Float64(0),
PodEvictionFailureBackOffInterval: pulumi.String("string"),
ScopedMode: pulumi.Bool(false),
},
},
NodeTemplatesPartialMatchingEnabled: pulumi.Bool(false),
SpotInstances: &.AutoscalerAutoscalerSettingsSpotInstancesArgs{
Enabled: pulumi.Bool(false),
MaxReclaimRate: pulumi.Float64(0),
SpotBackups: &.AutoscalerAutoscalerSettingsSpotInstancesSpotBackupsArgs{
Enabled: pulumi.Bool(false),
SpotBackupRestoreRateSeconds: pulumi.Float64(0),
},
SpotDiversityEnabled: pulumi.Bool(false),
SpotDiversityPriceIncreaseLimit: pulumi.Float64(0),
SpotInterruptionPredictions: &.AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictionsArgs{
Enabled: pulumi.Bool(false),
SpotInterruptionPredictionsType: pulumi.String("string"),
},
},
UnschedulablePods: &.AutoscalerAutoscalerSettingsUnschedulablePodsArgs{
Enabled: pulumi.Bool(false),
Headroom: &.AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomArgs{
CpuPercentage: pulumi.Float64(0),
Enabled: pulumi.Bool(false),
MemoryPercentage: pulumi.Float64(0),
},
HeadroomSpot: &.AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpotArgs{
CpuPercentage: pulumi.Float64(0),
Enabled: pulumi.Bool(false),
MemoryPercentage: pulumi.Float64(0),
},
NodeConstraints: &.AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraintsArgs{
Enabled: pulumi.Bool(false),
MaxCpuCores: pulumi.Float64(0),
MaxRamMib: pulumi.Float64(0),
MinCpuCores: pulumi.Float64(0),
MinRamMib: pulumi.Float64(0),
},
PodPinner: &.AutoscalerAutoscalerSettingsUnschedulablePodsPodPinnerArgs{
Enabled: pulumi.Bool(false),
},
},
},
ClusterId: pulumi.String("string"),
Timeouts: &.AutoscalerTimeoutsArgs{
Create: pulumi.String("string"),
Update: pulumi.String("string"),
},
})
Copy
var autoscalerResource = new Autoscaler("autoscalerResource", AutoscalerArgs.builder()
    .autoscalerId("string")
    .autoscalerSettings(AutoscalerAutoscalerSettingsArgs.builder()
        .clusterLimits(AutoscalerAutoscalerSettingsClusterLimitsArgs.builder()
            .cpu(AutoscalerAutoscalerSettingsClusterLimitsCpuArgs.builder()
                .maxCores(0)
                .minCores(0)
                .build())
            .enabled(false)
            .build())
        .enabled(false)
        .isScopedMode(false)
        .nodeDownscaler(AutoscalerAutoscalerSettingsNodeDownscalerArgs.builder()
            .emptyNodes(AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs.builder()
                .delaySeconds(0)
                .enabled(false)
                .build())
            .enabled(false)
            .evictor(AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs.builder()
                .aggressiveMode(false)
                .cycleInterval("string")
                .dryRun(false)
                .enabled(false)
                .ignorePodDisruptionBudgets(false)
                .nodeGracePeriodMinutes(0)
                .podEvictionFailureBackOffInterval("string")
                .scopedMode(false)
                .build())
            .build())
        .nodeTemplatesPartialMatchingEnabled(false)
        .spotInstances(AutoscalerAutoscalerSettingsSpotInstancesArgs.builder()
            .enabled(false)
            .maxReclaimRate(0)
            .spotBackups(AutoscalerAutoscalerSettingsSpotInstancesSpotBackupsArgs.builder()
                .enabled(false)
                .spotBackupRestoreRateSeconds(0)
                .build())
            .spotDiversityEnabled(false)
            .spotDiversityPriceIncreaseLimit(0)
            .spotInterruptionPredictions(AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictionsArgs.builder()
                .enabled(false)
                .spotInterruptionPredictionsType("string")
                .build())
            .build())
        .unschedulablePods(AutoscalerAutoscalerSettingsUnschedulablePodsArgs.builder()
            .enabled(false)
            .headroom(AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomArgs.builder()
                .cpuPercentage(0)
                .enabled(false)
                .memoryPercentage(0)
                .build())
            .headroomSpot(AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpotArgs.builder()
                .cpuPercentage(0)
                .enabled(false)
                .memoryPercentage(0)
                .build())
            .nodeConstraints(AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraintsArgs.builder()
                .enabled(false)
                .maxCpuCores(0)
                .maxRamMib(0)
                .minCpuCores(0)
                .minRamMib(0)
                .build())
            .podPinner(AutoscalerAutoscalerSettingsUnschedulablePodsPodPinnerArgs.builder()
                .enabled(false)
                .build())
            .build())
        .build())
    .clusterId("string")
    .timeouts(AutoscalerTimeoutsArgs.builder()
        .create("string")
        .update("string")
        .build())
    .build());
Copy
autoscaler_resource = castai.Autoscaler("autoscalerResource",
    autoscaler_id="string",
    autoscaler_settings={
        "cluster_limits": {
            "cpu": {
                "max_cores": 0,
                "min_cores": 0,
            },
            "enabled": False,
        },
        "enabled": False,
        "is_scoped_mode": False,
        "node_downscaler": {
            "empty_nodes": {
                "delay_seconds": 0,
                "enabled": False,
            },
            "enabled": False,
            "evictor": {
                "aggressive_mode": False,
                "cycle_interval": "string",
                "dry_run": False,
                "enabled": False,
                "ignore_pod_disruption_budgets": False,
                "node_grace_period_minutes": 0,
                "pod_eviction_failure_back_off_interval": "string",
                "scoped_mode": False,
            },
        },
        "node_templates_partial_matching_enabled": False,
        "spot_instances": {
            "enabled": False,
            "max_reclaim_rate": 0,
            "spot_backups": {
                "enabled": False,
                "spot_backup_restore_rate_seconds": 0,
            },
            "spot_diversity_enabled": False,
            "spot_diversity_price_increase_limit": 0,
            "spot_interruption_predictions": {
                "enabled": False,
                "spot_interruption_predictions_type": "string",
            },
        },
        "unschedulable_pods": {
            "enabled": False,
            "headroom": {
                "cpu_percentage": 0,
                "enabled": False,
                "memory_percentage": 0,
            },
            "headroom_spot": {
                "cpu_percentage": 0,
                "enabled": False,
                "memory_percentage": 0,
            },
            "node_constraints": {
                "enabled": False,
                "max_cpu_cores": 0,
                "max_ram_mib": 0,
                "min_cpu_cores": 0,
                "min_ram_mib": 0,
            },
            "pod_pinner": {
                "enabled": False,
            },
        },
    },
    cluster_id="string",
    timeouts={
        "create": "string",
        "update": "string",
    })
Copy
const autoscalerResource = new castai.Autoscaler("autoscalerResource", {
    autoscalerId: "string",
    autoscalerSettings: {
        clusterLimits: {
            cpu: {
                maxCores: 0,
                minCores: 0,
            },
            enabled: false,
        },
        enabled: false,
        isScopedMode: false,
        nodeDownscaler: {
            emptyNodes: {
                delaySeconds: 0,
                enabled: false,
            },
            enabled: false,
            evictor: {
                aggressiveMode: false,
                cycleInterval: "string",
                dryRun: false,
                enabled: false,
                ignorePodDisruptionBudgets: false,
                nodeGracePeriodMinutes: 0,
                podEvictionFailureBackOffInterval: "string",
                scopedMode: false,
            },
        },
        nodeTemplatesPartialMatchingEnabled: false,
        spotInstances: {
            enabled: false,
            maxReclaimRate: 0,
            spotBackups: {
                enabled: false,
                spotBackupRestoreRateSeconds: 0,
            },
            spotDiversityEnabled: false,
            spotDiversityPriceIncreaseLimit: 0,
            spotInterruptionPredictions: {
                enabled: false,
                spotInterruptionPredictionsType: "string",
            },
        },
        unschedulablePods: {
            enabled: false,
            headroom: {
                cpuPercentage: 0,
                enabled: false,
                memoryPercentage: 0,
            },
            headroomSpot: {
                cpuPercentage: 0,
                enabled: false,
                memoryPercentage: 0,
            },
            nodeConstraints: {
                enabled: false,
                maxCpuCores: 0,
                maxRamMib: 0,
                minCpuCores: 0,
                minRamMib: 0,
            },
            podPinner: {
                enabled: false,
            },
        },
    },
    clusterId: "string",
    timeouts: {
        create: "string",
        update: "string",
    },
});
Copy
type: castai:Autoscaler
properties:
    autoscalerId: string
    autoscalerSettings:
        clusterLimits:
            cpu:
                maxCores: 0
                minCores: 0
            enabled: false
        enabled: false
        isScopedMode: false
        nodeDownscaler:
            emptyNodes:
                delaySeconds: 0
                enabled: false
            enabled: false
            evictor:
                aggressiveMode: false
                cycleInterval: string
                dryRun: false
                enabled: false
                ignorePodDisruptionBudgets: false
                nodeGracePeriodMinutes: 0
                podEvictionFailureBackOffInterval: string
                scopedMode: false
        nodeTemplatesPartialMatchingEnabled: false
        spotInstances:
            enabled: false
            maxReclaimRate: 0
            spotBackups:
                enabled: false
                spotBackupRestoreRateSeconds: 0
            spotDiversityEnabled: false
            spotDiversityPriceIncreaseLimit: 0
            spotInterruptionPredictions:
                enabled: false
                spotInterruptionPredictionsType: string
        unschedulablePods:
            enabled: false
            headroom:
                cpuPercentage: 0
                enabled: false
                memoryPercentage: 0
            headroomSpot:
                cpuPercentage: 0
                enabled: false
                memoryPercentage: 0
            nodeConstraints:
                enabled: false
                maxCpuCores: 0
                maxRamMib: 0
                minCpuCores: 0
                minRamMib: 0
            podPinner:
                enabled: false
    clusterId: string
    timeouts:
        create: string
        update: string
Copy

Autoscaler Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The Autoscaler resource accepts the following input properties:

AutoscalerId string
The ID of this resource.
AutoscalerPoliciesJson string
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

AutoscalerSettings AutoscalerAutoscalerSettings
autoscaler policy definitions to override current autoscaler settings
ClusterId string
CAST AI cluster id
Timeouts AutoscalerTimeouts
AutoscalerId string
The ID of this resource.
AutoscalerPoliciesJson string
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

AutoscalerSettings AutoscalerAutoscalerSettingsArgs
autoscaler policy definitions to override current autoscaler settings
ClusterId string
CAST AI cluster id
Timeouts AutoscalerTimeoutsArgs
autoscalerId String
The ID of this resource.
autoscalerPoliciesJson String
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscalerSettings AutoscalerAutoscalerSettings
autoscaler policy definitions to override current autoscaler settings
clusterId String
CAST AI cluster id
timeouts AutoscalerTimeouts
autoscalerId string
The ID of this resource.
autoscalerPoliciesJson string
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscalerSettings AutoscalerAutoscalerSettings
autoscaler policy definitions to override current autoscaler settings
clusterId string
CAST AI cluster id
timeouts AutoscalerTimeouts
autoscaler_id str
The ID of this resource.
autoscaler_policies_json str
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscaler_settings AutoscalerAutoscalerSettingsArgs
autoscaler policy definitions to override current autoscaler settings
cluster_id str
CAST AI cluster id
timeouts AutoscalerTimeoutsArgs
autoscalerId String
The ID of this resource.
autoscalerPoliciesJson String
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscalerSettings Property Map
autoscaler policy definitions to override current autoscaler settings
clusterId String
CAST AI cluster id
timeouts Property Map

Outputs

All input properties are implicitly available as output properties. Additionally, the Autoscaler resource produces the following output properties:

AutoscalerPolicies string
computed value to store full policies configuration
Id string
The provider-assigned unique ID for this managed resource.
AutoscalerPolicies string
computed value to store full policies configuration
Id string
The provider-assigned unique ID for this managed resource.
autoscalerPolicies String
computed value to store full policies configuration
id String
The provider-assigned unique ID for this managed resource.
autoscalerPolicies string
computed value to store full policies configuration
id string
The provider-assigned unique ID for this managed resource.
autoscaler_policies str
computed value to store full policies configuration
id str
The provider-assigned unique ID for this managed resource.
autoscalerPolicies String
computed value to store full policies configuration
id String
The provider-assigned unique ID for this managed resource.

Look up Existing Autoscaler Resource

Get an existing Autoscaler resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: AutoscalerState, opts?: CustomResourceOptions): Autoscaler
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        autoscaler_id: Optional[str] = None,
        autoscaler_policies: Optional[str] = None,
        autoscaler_policies_json: Optional[str] = None,
        autoscaler_settings: Optional[AutoscalerAutoscalerSettingsArgs] = None,
        cluster_id: Optional[str] = None,
        timeouts: Optional[AutoscalerTimeoutsArgs] = None) -> Autoscaler
func GetAutoscaler(ctx *Context, name string, id IDInput, state *AutoscalerState, opts ...ResourceOption) (*Autoscaler, error)
public static Autoscaler Get(string name, Input<string> id, AutoscalerState? state, CustomResourceOptions? opts = null)
public static Autoscaler get(String name, Output<String> id, AutoscalerState state, CustomResourceOptions options)
resources:  _:    type: castai:Autoscaler    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AutoscalerId string
The ID of this resource.
AutoscalerPolicies string
computed value to store full policies configuration
AutoscalerPoliciesJson string
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

AutoscalerSettings AutoscalerAutoscalerSettings
autoscaler policy definitions to override current autoscaler settings
ClusterId string
CAST AI cluster id
Timeouts AutoscalerTimeouts
AutoscalerId string
The ID of this resource.
AutoscalerPolicies string
computed value to store full policies configuration
AutoscalerPoliciesJson string
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

AutoscalerSettings AutoscalerAutoscalerSettingsArgs
autoscaler policy definitions to override current autoscaler settings
ClusterId string
CAST AI cluster id
Timeouts AutoscalerTimeoutsArgs
autoscalerId String
The ID of this resource.
autoscalerPolicies String
computed value to store full policies configuration
autoscalerPoliciesJson String
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscalerSettings AutoscalerAutoscalerSettings
autoscaler policy definitions to override current autoscaler settings
clusterId String
CAST AI cluster id
timeouts AutoscalerTimeouts
autoscalerId string
The ID of this resource.
autoscalerPolicies string
computed value to store full policies configuration
autoscalerPoliciesJson string
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscalerSettings AutoscalerAutoscalerSettings
autoscaler policy definitions to override current autoscaler settings
clusterId string
CAST AI cluster id
timeouts AutoscalerTimeouts
autoscaler_id str
The ID of this resource.
autoscaler_policies str
computed value to store full policies configuration
autoscaler_policies_json str
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscaler_settings AutoscalerAutoscalerSettingsArgs
autoscaler policy definitions to override current autoscaler settings
cluster_id str
CAST AI cluster id
timeouts AutoscalerTimeoutsArgs
autoscalerId String
The ID of this resource.
autoscalerPolicies String
computed value to store full policies configuration
autoscalerPoliciesJson String
autoscaler policies JSON string to override current autoscaler settings

Deprecated: Deprecated

autoscalerSettings Property Map
autoscaler policy definitions to override current autoscaler settings
clusterId String
CAST AI cluster id
timeouts Property Map

Supporting Types

AutoscalerAutoscalerSettings
, AutoscalerAutoscalerSettingsArgs

ClusterLimits AutoscalerAutoscalerSettingsClusterLimits
defines minimum and maximum amount of CPU the cluster can have.
Enabled bool
enable/disable autoscaler policies
IsScopedMode bool
run autoscaler in scoped mode. Only marked pods and nodes will be considered.
NodeDownscaler AutoscalerAutoscalerSettingsNodeDownscaler
node downscaler defines policies for removing nodes based on the configured conditions.
NodeTemplatesPartialMatchingEnabled bool
marks whether partial matching should be used when deciding which custom node template to select.
SpotInstances AutoscalerAutoscalerSettingsSpotInstances
policy defining whether autoscaler can use spot instances for provisioning additional workloads.
UnschedulablePods AutoscalerAutoscalerSettingsUnschedulablePods
policy defining autoscaler's behavior when unschedulable pods were detected.
ClusterLimits AutoscalerAutoscalerSettingsClusterLimits
defines minimum and maximum amount of CPU the cluster can have.
Enabled bool
enable/disable autoscaler policies
IsScopedMode bool
run autoscaler in scoped mode. Only marked pods and nodes will be considered.
NodeDownscaler AutoscalerAutoscalerSettingsNodeDownscaler
node downscaler defines policies for removing nodes based on the configured conditions.
NodeTemplatesPartialMatchingEnabled bool
marks whether partial matching should be used when deciding which custom node template to select.
SpotInstances AutoscalerAutoscalerSettingsSpotInstances
policy defining whether autoscaler can use spot instances for provisioning additional workloads.
UnschedulablePods AutoscalerAutoscalerSettingsUnschedulablePods
policy defining autoscaler's behavior when unschedulable pods were detected.
clusterLimits AutoscalerAutoscalerSettingsClusterLimits
defines minimum and maximum amount of CPU the cluster can have.
enabled Boolean
enable/disable autoscaler policies
isScopedMode Boolean
run autoscaler in scoped mode. Only marked pods and nodes will be considered.
nodeDownscaler AutoscalerAutoscalerSettingsNodeDownscaler
node downscaler defines policies for removing nodes based on the configured conditions.
nodeTemplatesPartialMatchingEnabled Boolean
marks whether partial matching should be used when deciding which custom node template to select.
spotInstances AutoscalerAutoscalerSettingsSpotInstances
policy defining whether autoscaler can use spot instances for provisioning additional workloads.
unschedulablePods AutoscalerAutoscalerSettingsUnschedulablePods
policy defining autoscaler's behavior when unschedulable pods were detected.
clusterLimits AutoscalerAutoscalerSettingsClusterLimits
defines minimum and maximum amount of CPU the cluster can have.
enabled boolean
enable/disable autoscaler policies
isScopedMode boolean
run autoscaler in scoped mode. Only marked pods and nodes will be considered.
nodeDownscaler AutoscalerAutoscalerSettingsNodeDownscaler
node downscaler defines policies for removing nodes based on the configured conditions.
nodeTemplatesPartialMatchingEnabled boolean
marks whether partial matching should be used when deciding which custom node template to select.
spotInstances AutoscalerAutoscalerSettingsSpotInstances
policy defining whether autoscaler can use spot instances for provisioning additional workloads.
unschedulablePods AutoscalerAutoscalerSettingsUnschedulablePods
policy defining autoscaler's behavior when unschedulable pods were detected.
cluster_limits AutoscalerAutoscalerSettingsClusterLimits
defines minimum and maximum amount of CPU the cluster can have.
enabled bool
enable/disable autoscaler policies
is_scoped_mode bool
run autoscaler in scoped mode. Only marked pods and nodes will be considered.
node_downscaler AutoscalerAutoscalerSettingsNodeDownscaler
node downscaler defines policies for removing nodes based on the configured conditions.
node_templates_partial_matching_enabled bool
marks whether partial matching should be used when deciding which custom node template to select.
spot_instances AutoscalerAutoscalerSettingsSpotInstances
policy defining whether autoscaler can use spot instances for provisioning additional workloads.
unschedulable_pods AutoscalerAutoscalerSettingsUnschedulablePods
policy defining autoscaler's behavior when unschedulable pods were detected.
clusterLimits Property Map
defines minimum and maximum amount of CPU the cluster can have.
enabled Boolean
enable/disable autoscaler policies
isScopedMode Boolean
run autoscaler in scoped mode. Only marked pods and nodes will be considered.
nodeDownscaler Property Map
node downscaler defines policies for removing nodes based on the configured conditions.
nodeTemplatesPartialMatchingEnabled Boolean
marks whether partial matching should be used when deciding which custom node template to select.
spotInstances Property Map
policy defining whether autoscaler can use spot instances for provisioning additional workloads.
unschedulablePods Property Map
policy defining autoscaler's behavior when unschedulable pods were detected.

AutoscalerAutoscalerSettingsClusterLimits
, AutoscalerAutoscalerSettingsClusterLimitsArgs

Cpu AutoscalerAutoscalerSettingsClusterLimitsCpu
defines the minimum and maximum amount of CPUs for cluster's worker nodes.
Enabled bool
enable/disable cluster size limits policy.
Cpu AutoscalerAutoscalerSettingsClusterLimitsCpu
defines the minimum and maximum amount of CPUs for cluster's worker nodes.
Enabled bool
enable/disable cluster size limits policy.
cpu AutoscalerAutoscalerSettingsClusterLimitsCpu
defines the minimum and maximum amount of CPUs for cluster's worker nodes.
enabled Boolean
enable/disable cluster size limits policy.
cpu AutoscalerAutoscalerSettingsClusterLimitsCpu
defines the minimum and maximum amount of CPUs for cluster's worker nodes.
enabled boolean
enable/disable cluster size limits policy.
cpu AutoscalerAutoscalerSettingsClusterLimitsCpu
defines the minimum and maximum amount of CPUs for cluster's worker nodes.
enabled bool
enable/disable cluster size limits policy.
cpu Property Map
defines the minimum and maximum amount of CPUs for cluster's worker nodes.
enabled Boolean
enable/disable cluster size limits policy.

AutoscalerAutoscalerSettingsClusterLimitsCpu
, AutoscalerAutoscalerSettingsClusterLimitsCpuArgs

MaxCores double
defines the maximum allowed amount of vCPUs in the whole cluster.
MinCores double
defines the minimum allowed amount of CPUs in the whole cluster.
MaxCores float64
defines the maximum allowed amount of vCPUs in the whole cluster.
MinCores float64
defines the minimum allowed amount of CPUs in the whole cluster.
maxCores Double
defines the maximum allowed amount of vCPUs in the whole cluster.
minCores Double
defines the minimum allowed amount of CPUs in the whole cluster.
maxCores number
defines the maximum allowed amount of vCPUs in the whole cluster.
minCores number
defines the minimum allowed amount of CPUs in the whole cluster.
max_cores float
defines the maximum allowed amount of vCPUs in the whole cluster.
min_cores float
defines the minimum allowed amount of CPUs in the whole cluster.
maxCores Number
defines the maximum allowed amount of vCPUs in the whole cluster.
minCores Number
defines the minimum allowed amount of CPUs in the whole cluster.

AutoscalerAutoscalerSettingsNodeDownscaler
, AutoscalerAutoscalerSettingsNodeDownscalerArgs

EmptyNodes AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodes
defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
Enabled bool
enable/disable node downscaler policy.
Evictor AutoscalerAutoscalerSettingsNodeDownscalerEvictor
defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for ways to compact them into fewer nodes, making nodes empty, which will be removed by the empty worker nodes policy.
EmptyNodes AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodes
defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
Enabled bool
enable/disable node downscaler policy.
Evictor AutoscalerAutoscalerSettingsNodeDownscalerEvictor
defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for ways to compact them into fewer nodes, making nodes empty, which will be removed by the empty worker nodes policy.
emptyNodes AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodes
defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
enabled Boolean
enable/disable node downscaler policy.
evictor AutoscalerAutoscalerSettingsNodeDownscalerEvictor
defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for ways to compact them into fewer nodes, making nodes empty, which will be removed by the empty worker nodes policy.
emptyNodes AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodes
defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
enabled boolean
enable/disable node downscaler policy.
evictor AutoscalerAutoscalerSettingsNodeDownscalerEvictor
defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for ways to compact them into fewer nodes, making nodes empty, which will be removed by the empty worker nodes policy.
empty_nodes AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodes
defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
enabled bool
enable/disable node downscaler policy.
evictor AutoscalerAutoscalerSettingsNodeDownscalerEvictor
defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for ways to compact them into fewer nodes, making nodes empty, which will be removed by the empty worker nodes policy.
emptyNodes Property Map
defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
enabled Boolean
enable/disable node downscaler policy.
evictor Property Map
defines the CAST AI Evictor component settings. Evictor watches the pods running in your cluster and looks for ways to compact them into fewer nodes, making nodes empty, which will be removed by the empty worker nodes policy.

AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodes
, AutoscalerAutoscalerSettingsNodeDownscalerEmptyNodesArgs

DelaySeconds double
period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of the downscaler.
Enabled bool
enable/disable the empty worker nodes policy.
DelaySeconds float64
period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of the downscaler.
Enabled bool
enable/disable the empty worker nodes policy.
delaySeconds Double
period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of the downscaler.
enabled Boolean
enable/disable the empty worker nodes policy.
delaySeconds number
period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of the downscaler.
enabled boolean
enable/disable the empty worker nodes policy.
delay_seconds float
period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of the downscaler.
enabled bool
enable/disable the empty worker nodes policy.
delaySeconds Number
period (in seconds) to wait before removing the node. Might be useful to control the aggressiveness of the downscaler.
enabled Boolean
enable/disable the empty worker nodes policy.

AutoscalerAutoscalerSettingsNodeDownscalerEvictor
, AutoscalerAutoscalerSettingsNodeDownscalerEvictorArgs

AggressiveMode bool
enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods. This mode will make the Evictor start considering application with just a single replica.
CycleInterval string
configure the interval duration between Evictor operations. This property can be used to lower or raise the frequency of the Evictor's find-and-drain operations.
DryRun bool
enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and preview the actions it would take.
Enabled bool
enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.
IgnorePodDisruptionBudgets bool
if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
NodeGracePeriodMinutes double
configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
PodEvictionFailureBackOffInterval string
configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt to evict it again after the amount of time specified here.
ScopedMode bool
enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain it to just the nodes which were created by CAST AI.
AggressiveMode bool
enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods. This mode will make the Evictor start considering application with just a single replica.
CycleInterval string
configure the interval duration between Evictor operations. This property can be used to lower or raise the frequency of the Evictor's find-and-drain operations.
DryRun bool
enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and preview the actions it would take.
Enabled bool
enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.
IgnorePodDisruptionBudgets bool
if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
NodeGracePeriodMinutes float64
configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
PodEvictionFailureBackOffInterval string
configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt to evict it again after the amount of time specified here.
ScopedMode bool
enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain it to just the nodes which were created by CAST AI.
aggressiveMode Boolean
enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods. This mode will make the Evictor start considering application with just a single replica.
cycleInterval String
configure the interval duration between Evictor operations. This property can be used to lower or raise the frequency of the Evictor's find-and-drain operations.
dryRun Boolean
enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and preview the actions it would take.
enabled Boolean
enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.
ignorePodDisruptionBudgets Boolean
if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
nodeGracePeriodMinutes Double
configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
podEvictionFailureBackOffInterval String
configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt to evict it again after the amount of time specified here.
scopedMode Boolean
enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain it to just the nodes which were created by CAST AI.
aggressiveMode boolean
enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods. This mode will make the Evictor start considering application with just a single replica.
cycleInterval string
configure the interval duration between Evictor operations. This property can be used to lower or raise the frequency of the Evictor's find-and-drain operations.
dryRun boolean
enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and preview the actions it would take.
enabled boolean
enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.
ignorePodDisruptionBudgets boolean
if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
nodeGracePeriodMinutes number
configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
podEvictionFailureBackOffInterval string
configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt to evict it again after the amount of time specified here.
scopedMode boolean
enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain it to just the nodes which were created by CAST AI.
aggressive_mode bool
enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods. This mode will make the Evictor start considering application with just a single replica.
cycle_interval str
configure the interval duration between Evictor operations. This property can be used to lower or raise the frequency of the Evictor's find-and-drain operations.
dry_run bool
enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and preview the actions it would take.
enabled bool
enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.
ignore_pod_disruption_budgets bool
if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
node_grace_period_minutes float
configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
pod_eviction_failure_back_off_interval str
configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt to evict it again after the amount of time specified here.
scoped_mode bool
enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain it to just the nodes which were created by CAST AI.
aggressiveMode Boolean
enable/disable aggressive mode. By default, Evictor does not target nodes that are running unreplicated pods. This mode will make the Evictor start considering application with just a single replica.
cycleInterval String
configure the interval duration between Evictor operations. This property can be used to lower or raise the frequency of the Evictor's find-and-drain operations.
dryRun Boolean
enable/disable dry-run. This property allows you to prevent the Evictor from carrying any operations out and preview the actions it would take.
enabled Boolean
enable/disable the Evictor policy. This will either install or uninstall the Evictor component in your cluster.
ignorePodDisruptionBudgets Boolean
if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
nodeGracePeriodMinutes Number
configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
podEvictionFailureBackOffInterval String
configure the pod eviction failure back off interval. If pod eviction fails then Evictor will attempt to evict it again after the amount of time specified here.
scopedMode Boolean
enable/disable scoped mode. By default, Evictor targets all nodes in the cluster. This mode will constrain it to just the nodes which were created by CAST AI.

AutoscalerAutoscalerSettingsSpotInstances
, AutoscalerAutoscalerSettingsSpotInstancesArgs

Enabled bool
enable/disable spot instances policy.
MaxReclaimRate double
max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or higher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.
SpotBackups AutoscalerAutoscalerSettingsSpotInstancesSpotBackups
policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
SpotDiversityEnabled bool
enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
SpotDiversityPriceIncreaseLimit double
allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.
SpotInterruptionPredictions AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions
configure the handling of SPOT interruption predictions.
Enabled bool
enable/disable spot instances policy.
MaxReclaimRate float64
max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or higher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.
SpotBackups AutoscalerAutoscalerSettingsSpotInstancesSpotBackups
policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
SpotDiversityEnabled bool
enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
SpotDiversityPriceIncreaseLimit float64
allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.
SpotInterruptionPredictions AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions
configure the handling of SPOT interruption predictions.
enabled Boolean
enable/disable spot instances policy.
maxReclaimRate Double
max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or higher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.
spotBackups AutoscalerAutoscalerSettingsSpotInstancesSpotBackups
policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
spotDiversityEnabled Boolean
enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
spotDiversityPriceIncreaseLimit Double
allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.
spotInterruptionPredictions AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions
configure the handling of SPOT interruption predictions.
enabled boolean
enable/disable spot instances policy.
maxReclaimRate number
max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or higher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.
spotBackups AutoscalerAutoscalerSettingsSpotInstancesSpotBackups
policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
spotDiversityEnabled boolean
enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
spotDiversityPriceIncreaseLimit number
allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.
spotInterruptionPredictions AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions
configure the handling of SPOT interruption predictions.
enabled bool
enable/disable spot instances policy.
max_reclaim_rate float
max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or higher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.
spot_backups AutoscalerAutoscalerSettingsSpotInstancesSpotBackups
policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
spot_diversity_enabled bool
enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
spot_diversity_price_increase_limit float
allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.
spot_interruption_predictions AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions
configure the handling of SPOT interruption predictions.
enabled Boolean
enable/disable spot instances policy.
maxReclaimRate Number
max allowed reclaim rate when choosing spot instance type. E.g. if the value is 10%, instance types having 10% or higher reclaim rate will not be considered. Set to zero to use all instance types regardless of reclaim rate.
spotBackups Property Map
policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
spotDiversityEnabled Boolean
enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
spotDiversityPriceIncreaseLimit Number
allowed node configuration price increase when diversifying instance types. E.g. if the value is 10%, then the overall price of diversified instance types can be 10% higher than the price of the optimal configuration.
spotInterruptionPredictions Property Map
configure the handling of SPOT interruption predictions.

AutoscalerAutoscalerSettingsSpotInstancesSpotBackups
, AutoscalerAutoscalerSettingsSpotInstancesSpotBackupsArgs

Enabled bool
enable/disable spot backups policy.
SpotBackupRestoreRateSeconds double
defines interval on how often spot backups restore to real spot should occur.
Enabled bool
enable/disable spot backups policy.
SpotBackupRestoreRateSeconds float64
defines interval on how often spot backups restore to real spot should occur.
enabled Boolean
enable/disable spot backups policy.
spotBackupRestoreRateSeconds Double
defines interval on how often spot backups restore to real spot should occur.
enabled boolean
enable/disable spot backups policy.
spotBackupRestoreRateSeconds number
defines interval on how often spot backups restore to real spot should occur.
enabled bool
enable/disable spot backups policy.
spot_backup_restore_rate_seconds float
defines interval on how often spot backups restore to real spot should occur.
enabled Boolean
enable/disable spot backups policy.
spotBackupRestoreRateSeconds Number
defines interval on how often spot backups restore to real spot should occur.

AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions
, AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictionsArgs

Enabled bool
enable/disable spot interruption predictions.
SpotInterruptionPredictionsType string
define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
Enabled bool
enable/disable spot interruption predictions.
SpotInterruptionPredictionsType string
define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
enabled Boolean
enable/disable spot interruption predictions.
spotInterruptionPredictionsType String
define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
enabled boolean
enable/disable spot interruption predictions.
spotInterruptionPredictionsType string
define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
enabled bool
enable/disable spot interruption predictions.
spot_interruption_predictions_type str
define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
enabled Boolean
enable/disable spot interruption predictions.
spotInterruptionPredictionsType String
define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.

AutoscalerAutoscalerSettingsUnschedulablePods
, AutoscalerAutoscalerSettingsUnschedulablePodsArgs

CustomInstancesEnabled bool
enable/disable custom instances policy.

Deprecated: Deprecated

Enabled bool
enable/disable unschedulable pods detection policy.
Headroom AutoscalerAutoscalerSettingsUnschedulablePodsHeadroom
additional headroom based on cluster's total available capacity for on-demand nodes.
HeadroomSpot AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpot
additional headroom based on cluster's total available capacity for spot nodes.
NodeConstraints AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraints
defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
PodPinner AutoscalerAutoscalerSettingsUnschedulablePodsPodPinner
defines the Cast AI Pod Pinner components settings.
CustomInstancesEnabled bool
enable/disable custom instances policy.

Deprecated: Deprecated

Enabled bool
enable/disable unschedulable pods detection policy.
Headroom AutoscalerAutoscalerSettingsUnschedulablePodsHeadroom
additional headroom based on cluster's total available capacity for on-demand nodes.
HeadroomSpot AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpot
additional headroom based on cluster's total available capacity for spot nodes.
NodeConstraints AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraints
defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
PodPinner AutoscalerAutoscalerSettingsUnschedulablePodsPodPinner
defines the Cast AI Pod Pinner components settings.
customInstancesEnabled Boolean
enable/disable custom instances policy.

Deprecated: Deprecated

enabled Boolean
enable/disable unschedulable pods detection policy.
headroom AutoscalerAutoscalerSettingsUnschedulablePodsHeadroom
additional headroom based on cluster's total available capacity for on-demand nodes.
headroomSpot AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpot
additional headroom based on cluster's total available capacity for spot nodes.
nodeConstraints AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraints
defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
podPinner AutoscalerAutoscalerSettingsUnschedulablePodsPodPinner
defines the Cast AI Pod Pinner components settings.
customInstancesEnabled boolean
enable/disable custom instances policy.

Deprecated: Deprecated

enabled boolean
enable/disable unschedulable pods detection policy.
headroom AutoscalerAutoscalerSettingsUnschedulablePodsHeadroom
additional headroom based on cluster's total available capacity for on-demand nodes.
headroomSpot AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpot
additional headroom based on cluster's total available capacity for spot nodes.
nodeConstraints AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraints
defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
podPinner AutoscalerAutoscalerSettingsUnschedulablePodsPodPinner
defines the Cast AI Pod Pinner components settings.
custom_instances_enabled bool
enable/disable custom instances policy.

Deprecated: Deprecated

enabled bool
enable/disable unschedulable pods detection policy.
headroom AutoscalerAutoscalerSettingsUnschedulablePodsHeadroom
additional headroom based on cluster's total available capacity for on-demand nodes.
headroom_spot AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpot
additional headroom based on cluster's total available capacity for spot nodes.
node_constraints AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraints
defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
pod_pinner AutoscalerAutoscalerSettingsUnschedulablePodsPodPinner
defines the Cast AI Pod Pinner components settings.
customInstancesEnabled Boolean
enable/disable custom instances policy.

Deprecated: Deprecated

enabled Boolean
enable/disable unschedulable pods detection policy.
headroom Property Map
additional headroom based on cluster's total available capacity for on-demand nodes.
headroomSpot Property Map
additional headroom based on cluster's total available capacity for spot nodes.
nodeConstraints Property Map
defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
podPinner Property Map
defines the Cast AI Pod Pinner components settings.

AutoscalerAutoscalerSettingsUnschedulablePodsHeadroom
, AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomArgs

CpuPercentage double
defines percentage of additional CPU capacity to be added.
Enabled bool
enable/disable headroom policy.
MemoryPercentage double
defines percentage of additional memory capacity to be added.
CpuPercentage float64
defines percentage of additional CPU capacity to be added.
Enabled bool
enable/disable headroom policy.
MemoryPercentage float64
defines percentage of additional memory capacity to be added.
cpuPercentage Double
defines percentage of additional CPU capacity to be added.
enabled Boolean
enable/disable headroom policy.
memoryPercentage Double
defines percentage of additional memory capacity to be added.
cpuPercentage number
defines percentage of additional CPU capacity to be added.
enabled boolean
enable/disable headroom policy.
memoryPercentage number
defines percentage of additional memory capacity to be added.
cpu_percentage float
defines percentage of additional CPU capacity to be added.
enabled bool
enable/disable headroom policy.
memory_percentage float
defines percentage of additional memory capacity to be added.
cpuPercentage Number
defines percentage of additional CPU capacity to be added.
enabled Boolean
enable/disable headroom policy.
memoryPercentage Number
defines percentage of additional memory capacity to be added.

AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpot
, AutoscalerAutoscalerSettingsUnschedulablePodsHeadroomSpotArgs

CpuPercentage double
defines percentage of additional CPU capacity to be added.
Enabled bool
enable/disable headroom_spot policy.
MemoryPercentage double
defines percentage of additional memory capacity to be added.
CpuPercentage float64
defines percentage of additional CPU capacity to be added.
Enabled bool
enable/disable headroom_spot policy.
MemoryPercentage float64
defines percentage of additional memory capacity to be added.
cpuPercentage Double
defines percentage of additional CPU capacity to be added.
enabled Boolean
enable/disable headroom_spot policy.
memoryPercentage Double
defines percentage of additional memory capacity to be added.
cpuPercentage number
defines percentage of additional CPU capacity to be added.
enabled boolean
enable/disable headroom_spot policy.
memoryPercentage number
defines percentage of additional memory capacity to be added.
cpu_percentage float
defines percentage of additional CPU capacity to be added.
enabled bool
enable/disable headroom_spot policy.
memory_percentage float
defines percentage of additional memory capacity to be added.
cpuPercentage Number
defines percentage of additional CPU capacity to be added.
enabled Boolean
enable/disable headroom_spot policy.
memoryPercentage Number
defines percentage of additional memory capacity to be added.

AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraints
, AutoscalerAutoscalerSettingsUnschedulablePodsNodeConstraintsArgs

Enabled bool
enable/disable node constraints policy.
MaxCpuCores double
defines max CPU cores for the node to pick.
MaxRamMib double
defines max RAM in MiB for the node to pick.
MinCpuCores double
defines min CPU cores for the node to pick.
MinRamMib double
defines min RAM in MiB for the node to pick.
Enabled bool
enable/disable node constraints policy.
MaxCpuCores float64
defines max CPU cores for the node to pick.
MaxRamMib float64
defines max RAM in MiB for the node to pick.
MinCpuCores float64
defines min CPU cores for the node to pick.
MinRamMib float64
defines min RAM in MiB for the node to pick.
enabled Boolean
enable/disable node constraints policy.
maxCpuCores Double
defines max CPU cores for the node to pick.
maxRamMib Double
defines max RAM in MiB for the node to pick.
minCpuCores Double
defines min CPU cores for the node to pick.
minRamMib Double
defines min RAM in MiB for the node to pick.
enabled boolean
enable/disable node constraints policy.
maxCpuCores number
defines max CPU cores for the node to pick.
maxRamMib number
defines max RAM in MiB for the node to pick.
minCpuCores number
defines min CPU cores for the node to pick.
minRamMib number
defines min RAM in MiB for the node to pick.
enabled bool
enable/disable node constraints policy.
max_cpu_cores float
defines max CPU cores for the node to pick.
max_ram_mib float
defines max RAM in MiB for the node to pick.
min_cpu_cores float
defines min CPU cores for the node to pick.
min_ram_mib float
defines min RAM in MiB for the node to pick.
enabled Boolean
enable/disable node constraints policy.
maxCpuCores Number
defines max CPU cores for the node to pick.
maxRamMib Number
defines max RAM in MiB for the node to pick.
minCpuCores Number
defines min CPU cores for the node to pick.
minRamMib Number
defines min RAM in MiB for the node to pick.

AutoscalerAutoscalerSettingsUnschedulablePodsPodPinner
, AutoscalerAutoscalerSettingsUnschedulablePodsPodPinnerArgs

Enabled bool
enable/disable the Pod Pinner component's automatic management in your cluster. Default: enabled.
Enabled bool
enable/disable the Pod Pinner component's automatic management in your cluster. Default: enabled.
enabled Boolean
enable/disable the Pod Pinner component's automatic management in your cluster. Default: enabled.
enabled boolean
enable/disable the Pod Pinner component's automatic management in your cluster. Default: enabled.
enabled bool
enable/disable the Pod Pinner component's automatic management in your cluster. Default: enabled.
enabled Boolean
enable/disable the Pod Pinner component's automatic management in your cluster. Default: enabled.

AutoscalerTimeouts
, AutoscalerTimeoutsArgs

Create string
Update string
Create string
Update string
create String
update String
create string
update string
create str
update str
create String
update String

Package Details

Repository
castai castai/terraform-provider-castai
License
Notes
This Pulumi package is based on the castai Terraform Provider.