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,
            },
        },
    },
});
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,
            },
        },
    })
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
	})
}
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,
                },
            },
        },
    });
});
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());
    }
}
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
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 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 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 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 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 String
- The unique name of the resource.
- args 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",
    },
});
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"),
},
})
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());
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",
    })
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",
    },
});
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
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.
- AutoscalerPolicies stringJson 
- autoscaler policies JSON string to override current autoscaler settings
- AutoscalerSettings AutoscalerAutoscaler Settings 
- autoscaler policy definitions to override current autoscaler settings
- ClusterId string
- CAST AI cluster id
- Timeouts
AutoscalerTimeouts 
- AutoscalerId string
- The ID of this resource.
- AutoscalerPolicies stringJson 
- autoscaler policies JSON string to override current autoscaler settings
- AutoscalerSettings AutoscalerAutoscaler Settings Args 
- autoscaler policy definitions to override current autoscaler settings
- ClusterId string
- CAST AI cluster id
- Timeouts
AutoscalerTimeouts Args 
- autoscalerId String
- The ID of this resource.
- autoscalerPolicies StringJson 
- autoscaler policies JSON string to override current autoscaler settings
- autoscalerSettings AutoscalerAutoscaler Settings 
- autoscaler policy definitions to override current autoscaler settings
- clusterId String
- CAST AI cluster id
- timeouts
AutoscalerTimeouts 
- autoscalerId string
- The ID of this resource.
- autoscalerPolicies stringJson 
- autoscaler policies JSON string to override current autoscaler settings
- autoscalerSettings AutoscalerAutoscaler Settings 
- 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_ strjson 
- autoscaler policies JSON string to override current autoscaler settings
- autoscaler_settings AutoscalerAutoscaler Settings Args 
- autoscaler policy definitions to override current autoscaler settings
- cluster_id str
- CAST AI cluster id
- timeouts
AutoscalerTimeouts Args 
- autoscalerId String
- The ID of this resource.
- autoscalerPolicies StringJson 
- autoscaler policies JSON string to override current autoscaler settings
- 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) -> Autoscalerfunc 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
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- 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.
- AutoscalerId string
- The ID of this resource.
- AutoscalerPolicies string
- computed value to store full policies configuration
- AutoscalerPolicies stringJson 
- autoscaler policies JSON string to override current autoscaler settings
- AutoscalerSettings AutoscalerAutoscaler Settings 
- 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
- AutoscalerPolicies stringJson 
- autoscaler policies JSON string to override current autoscaler settings
- AutoscalerSettings AutoscalerAutoscaler Settings Args 
- autoscaler policy definitions to override current autoscaler settings
- ClusterId string
- CAST AI cluster id
- Timeouts
AutoscalerTimeouts Args 
- autoscalerId String
- The ID of this resource.
- autoscalerPolicies String
- computed value to store full policies configuration
- autoscalerPolicies StringJson 
- autoscaler policies JSON string to override current autoscaler settings
- autoscalerSettings AutoscalerAutoscaler Settings 
- 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
- autoscalerPolicies stringJson 
- autoscaler policies JSON string to override current autoscaler settings
- autoscalerSettings AutoscalerAutoscaler Settings 
- 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_ strjson 
- autoscaler policies JSON string to override current autoscaler settings
- autoscaler_settings AutoscalerAutoscaler Settings Args 
- autoscaler policy definitions to override current autoscaler settings
- cluster_id str
- CAST AI cluster id
- timeouts
AutoscalerTimeouts Args 
- autoscalerId String
- The ID of this resource.
- autoscalerPolicies String
- computed value to store full policies configuration
- autoscalerPolicies StringJson 
- autoscaler policies JSON string to override current autoscaler settings
- 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 AutoscalerAutoscaler Settings Cluster Limits 
- defines minimum and maximum amount of CPU the cluster can have.
- Enabled bool
- enable/disable autoscaler policies
- IsScoped boolMode 
- run autoscaler in scoped mode. Only marked pods and nodes will be considered.
- NodeDownscaler AutoscalerAutoscaler Settings Node Downscaler 
- node downscaler defines policies for removing nodes based on the configured conditions.
- NodeTemplates boolPartial Matching Enabled 
- marks whether partial matching should be used when deciding which custom node template to select.
- SpotInstances AutoscalerAutoscaler Settings Spot Instances 
- policy defining whether autoscaler can use spot instances for provisioning additional workloads.
- UnschedulablePods AutoscalerAutoscaler Settings Unschedulable Pods 
- policy defining autoscaler's behavior when unschedulable pods were detected.
- ClusterLimits AutoscalerAutoscaler Settings Cluster Limits 
- defines minimum and maximum amount of CPU the cluster can have.
- Enabled bool
- enable/disable autoscaler policies
- IsScoped boolMode 
- run autoscaler in scoped mode. Only marked pods and nodes will be considered.
- NodeDownscaler AutoscalerAutoscaler Settings Node Downscaler 
- node downscaler defines policies for removing nodes based on the configured conditions.
- NodeTemplates boolPartial Matching Enabled 
- marks whether partial matching should be used when deciding which custom node template to select.
- SpotInstances AutoscalerAutoscaler Settings Spot Instances 
- policy defining whether autoscaler can use spot instances for provisioning additional workloads.
- UnschedulablePods AutoscalerAutoscaler Settings Unschedulable Pods 
- policy defining autoscaler's behavior when unschedulable pods were detected.
- clusterLimits AutoscalerAutoscaler Settings Cluster Limits 
- defines minimum and maximum amount of CPU the cluster can have.
- enabled Boolean
- enable/disable autoscaler policies
- isScoped BooleanMode 
- run autoscaler in scoped mode. Only marked pods and nodes will be considered.
- nodeDownscaler AutoscalerAutoscaler Settings Node Downscaler 
- node downscaler defines policies for removing nodes based on the configured conditions.
- nodeTemplates BooleanPartial Matching Enabled 
- marks whether partial matching should be used when deciding which custom node template to select.
- spotInstances AutoscalerAutoscaler Settings Spot Instances 
- policy defining whether autoscaler can use spot instances for provisioning additional workloads.
- unschedulablePods AutoscalerAutoscaler Settings Unschedulable Pods 
- policy defining autoscaler's behavior when unschedulable pods were detected.
- clusterLimits AutoscalerAutoscaler Settings Cluster Limits 
- defines minimum and maximum amount of CPU the cluster can have.
- enabled boolean
- enable/disable autoscaler policies
- isScoped booleanMode 
- run autoscaler in scoped mode. Only marked pods and nodes will be considered.
- nodeDownscaler AutoscalerAutoscaler Settings Node Downscaler 
- node downscaler defines policies for removing nodes based on the configured conditions.
- nodeTemplates booleanPartial Matching Enabled 
- marks whether partial matching should be used when deciding which custom node template to select.
- spotInstances AutoscalerAutoscaler Settings Spot Instances 
- policy defining whether autoscaler can use spot instances for provisioning additional workloads.
- unschedulablePods AutoscalerAutoscaler Settings Unschedulable Pods 
- policy defining autoscaler's behavior when unschedulable pods were detected.
- cluster_limits AutoscalerAutoscaler Settings Cluster Limits 
- defines minimum and maximum amount of CPU the cluster can have.
- enabled bool
- enable/disable autoscaler policies
- is_scoped_ boolmode 
- run autoscaler in scoped mode. Only marked pods and nodes will be considered.
- node_downscaler AutoscalerAutoscaler Settings Node Downscaler 
- node downscaler defines policies for removing nodes based on the configured conditions.
- node_templates_ boolpartial_ matching_ enabled 
- marks whether partial matching should be used when deciding which custom node template to select.
- spot_instances AutoscalerAutoscaler Settings Spot Instances 
- policy defining whether autoscaler can use spot instances for provisioning additional workloads.
- unschedulable_pods AutoscalerAutoscaler Settings Unschedulable Pods 
- 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
- isScoped BooleanMode 
- 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.
- nodeTemplates BooleanPartial Matching Enabled 
- 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
AutoscalerAutoscaler Settings Cluster Limits Cpu 
- defines the minimum and maximum amount of CPUs for cluster's worker nodes.
- Enabled bool
- enable/disable cluster size limits policy.
- Cpu
AutoscalerAutoscaler Settings Cluster Limits Cpu 
- defines the minimum and maximum amount of CPUs for cluster's worker nodes.
- Enabled bool
- enable/disable cluster size limits policy.
- cpu
AutoscalerAutoscaler Settings Cluster Limits Cpu 
- defines the minimum and maximum amount of CPUs for cluster's worker nodes.
- enabled Boolean
- enable/disable cluster size limits policy.
- cpu
AutoscalerAutoscaler Settings Cluster Limits Cpu 
- defines the minimum and maximum amount of CPUs for cluster's worker nodes.
- enabled boolean
- enable/disable cluster size limits policy.
- cpu
AutoscalerAutoscaler Settings Cluster Limits Cpu 
- 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            
AutoscalerAutoscalerSettingsNodeDownscaler, AutoscalerAutoscalerSettingsNodeDownscalerArgs          
- EmptyNodes AutoscalerAutoscaler Settings Node Downscaler Empty Nodes 
- defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
- Enabled bool
- enable/disable node downscaler policy.
- Evictor
AutoscalerAutoscaler Settings Node Downscaler Evictor 
- 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 AutoscalerAutoscaler Settings Node Downscaler Empty Nodes 
- defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
- Enabled bool
- enable/disable node downscaler policy.
- Evictor
AutoscalerAutoscaler Settings Node Downscaler Evictor 
- 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 AutoscalerAutoscaler Settings Node Downscaler Empty Nodes 
- defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
- enabled Boolean
- enable/disable node downscaler policy.
- evictor
AutoscalerAutoscaler Settings Node Downscaler Evictor 
- 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 AutoscalerAutoscaler Settings Node Downscaler Empty Nodes 
- defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
- enabled boolean
- enable/disable node downscaler policy.
- evictor
AutoscalerAutoscaler Settings Node Downscaler Evictor 
- 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 AutoscalerAutoscaler Settings Node Downscaler Empty Nodes 
- defines whether Node Downscaler should opt in for removing empty worker nodes when possible.
- enabled bool
- enable/disable node downscaler policy.
- evictor
AutoscalerAutoscaler Settings Node Downscaler Evictor 
- 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.
- IgnorePod boolDisruption Budgets 
- if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
- NodeGrace doublePeriod Minutes 
- configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
- PodEviction stringFailure Back Off Interval 
- 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.
- IgnorePod boolDisruption Budgets 
- if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
- NodeGrace float64Period Minutes 
- configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
- PodEviction stringFailure Back Off Interval 
- 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.
- ignorePod BooleanDisruption Budgets 
- if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
- nodeGrace DoublePeriod Minutes 
- configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
- podEviction StringFailure Back Off Interval 
- 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.
- ignorePod booleanDisruption Budgets 
- if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
- nodeGrace numberPeriod Minutes 
- configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
- podEviction stringFailure Back Off Interval 
- 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_ booldisruption_ budgets 
- if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
- node_grace_ floatperiod_ minutes 
- 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_ strfailure_ back_ off_ interval 
- 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.
- ignorePod BooleanDisruption Budgets 
- if enabled then Evictor will attempt to evict pods that have pod disruption budgets configured.
- nodeGrace NumberPeriod Minutes 
- configure the node grace period which controls the duration which must pass after a node has been created before Evictor starts considering that node.
- podEviction StringFailure Back Off Interval 
- 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.
- MaxReclaim doubleRate 
- 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 AutoscalerAutoscaler Settings Spot Instances Spot Backups 
- policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
- SpotDiversity boolEnabled 
- enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
- SpotDiversity doublePrice Increase Limit 
- 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.
- SpotInterruption AutoscalerPredictions Autoscaler Settings Spot Instances Spot Interruption Predictions 
- configure the handling of SPOT interruption predictions.
- Enabled bool
- enable/disable spot instances policy.
- MaxReclaim float64Rate 
- 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 AutoscalerAutoscaler Settings Spot Instances Spot Backups 
- policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
- SpotDiversity boolEnabled 
- enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
- SpotDiversity float64Price Increase Limit 
- 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.
- SpotInterruption AutoscalerPredictions Autoscaler Settings Spot Instances Spot Interruption Predictions 
- configure the handling of SPOT interruption predictions.
- enabled Boolean
- enable/disable spot instances policy.
- maxReclaim DoubleRate 
- 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 AutoscalerAutoscaler Settings Spot Instances Spot Backups 
- policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
- spotDiversity BooleanEnabled 
- enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
- spotDiversity DoublePrice Increase Limit 
- 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.
- spotInterruption AutoscalerPredictions Autoscaler Settings Spot Instances Spot Interruption Predictions 
- configure the handling of SPOT interruption predictions.
- enabled boolean
- enable/disable spot instances policy.
- maxReclaim numberRate 
- 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 AutoscalerAutoscaler Settings Spot Instances Spot Backups 
- policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
- spotDiversity booleanEnabled 
- enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
- spotDiversity numberPrice Increase Limit 
- 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.
- spotInterruption AutoscalerPredictions Autoscaler Settings Spot Instances Spot Interruption Predictions 
- configure the handling of SPOT interruption predictions.
- enabled bool
- enable/disable spot instances policy.
- max_reclaim_ floatrate 
- 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 AutoscalerAutoscaler Settings Spot Instances Spot Backups 
- policy defining whether autoscaler can use spot backups instead of spot instances when spot instances are not available.
- spot_diversity_ boolenabled 
- enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
- spot_diversity_ floatprice_ increase_ limit 
- 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_ Autoscalerpredictions Autoscaler Settings Spot Instances Spot Interruption Predictions 
- configure the handling of SPOT interruption predictions.
- enabled Boolean
- enable/disable spot instances policy.
- maxReclaim NumberRate 
- 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.
- spotDiversity BooleanEnabled 
- enable/disable spot diversity policy. When enabled, autoscaler will try to balance between diverse and cost optimal instance types.
- spotDiversity NumberPrice Increase Limit 
- 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.
- spotInterruption Property MapPredictions 
- configure the handling of SPOT interruption predictions.
AutoscalerAutoscalerSettingsSpotInstancesSpotBackups, AutoscalerAutoscalerSettingsSpotInstancesSpotBackupsArgs              
- Enabled bool
- enable/disable spot backups policy.
- SpotBackup doubleRestore Rate Seconds 
- defines interval on how often spot backups restore to real spot should occur.
- Enabled bool
- enable/disable spot backups policy.
- SpotBackup float64Restore Rate Seconds 
- defines interval on how often spot backups restore to real spot should occur.
- enabled Boolean
- enable/disable spot backups policy.
- spotBackup DoubleRestore Rate Seconds 
- defines interval on how often spot backups restore to real spot should occur.
- enabled boolean
- enable/disable spot backups policy.
- spotBackup numberRestore Rate Seconds 
- defines interval on how often spot backups restore to real spot should occur.
- enabled bool
- enable/disable spot backups policy.
- spot_backup_ floatrestore_ rate_ seconds 
- defines interval on how often spot backups restore to real spot should occur.
- enabled Boolean
- enable/disable spot backups policy.
- spotBackup NumberRestore Rate Seconds 
- defines interval on how often spot backups restore to real spot should occur.
AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictions, AutoscalerAutoscalerSettingsSpotInstancesSpotInterruptionPredictionsArgs                
- Enabled bool
- enable/disable spot interruption predictions.
- SpotInterruption stringPredictions Type 
- define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
- Enabled bool
- enable/disable spot interruption predictions.
- SpotInterruption stringPredictions Type 
- define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
- enabled Boolean
- enable/disable spot interruption predictions.
- spotInterruption StringPredictions Type 
- define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
- enabled boolean
- enable/disable spot interruption predictions.
- spotInterruption stringPredictions Type 
- define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
- enabled bool
- enable/disable spot interruption predictions.
- spot_interruption_ strpredictions_ type 
- define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
- enabled Boolean
- enable/disable spot interruption predictions.
- spotInterruption StringPredictions Type 
- define the type of the spot interruption prediction to handle. Allowed values are AWSRebalanceRecommendations, CASTAIInterruptionPredictions.
AutoscalerAutoscalerSettingsUnschedulablePods, AutoscalerAutoscalerSettingsUnschedulablePodsArgs          
- CustomInstances boolEnabled 
- enable/disable custom instances policy.
- Enabled bool
- enable/disable unschedulable pods detection policy.
- Headroom
AutoscalerAutoscaler Settings Unschedulable Pods Headroom 
- additional headroom based on cluster's total available capacity for on-demand nodes.
- HeadroomSpot AutoscalerAutoscaler Settings Unschedulable Pods Headroom Spot 
- additional headroom based on cluster's total available capacity for spot nodes.
- NodeConstraints AutoscalerAutoscaler Settings Unschedulable Pods Node Constraints 
- defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
- PodPinner AutoscalerAutoscaler Settings Unschedulable Pods Pod Pinner 
- defines the Cast AI Pod Pinner components settings.
- CustomInstances boolEnabled 
- enable/disable custom instances policy.
- Enabled bool
- enable/disable unschedulable pods detection policy.
- Headroom
AutoscalerAutoscaler Settings Unschedulable Pods Headroom 
- additional headroom based on cluster's total available capacity for on-demand nodes.
- HeadroomSpot AutoscalerAutoscaler Settings Unschedulable Pods Headroom Spot 
- additional headroom based on cluster's total available capacity for spot nodes.
- NodeConstraints AutoscalerAutoscaler Settings Unschedulable Pods Node Constraints 
- defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
- PodPinner AutoscalerAutoscaler Settings Unschedulable Pods Pod Pinner 
- defines the Cast AI Pod Pinner components settings.
- customInstances BooleanEnabled 
- enable/disable custom instances policy.
- enabled Boolean
- enable/disable unschedulable pods detection policy.
- headroom
AutoscalerAutoscaler Settings Unschedulable Pods Headroom 
- additional headroom based on cluster's total available capacity for on-demand nodes.
- headroomSpot AutoscalerAutoscaler Settings Unschedulable Pods Headroom Spot 
- additional headroom based on cluster's total available capacity for spot nodes.
- nodeConstraints AutoscalerAutoscaler Settings Unschedulable Pods Node Constraints 
- defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
- podPinner AutoscalerAutoscaler Settings Unschedulable Pods Pod Pinner 
- defines the Cast AI Pod Pinner components settings.
- customInstances booleanEnabled 
- enable/disable custom instances policy.
- enabled boolean
- enable/disable unschedulable pods detection policy.
- headroom
AutoscalerAutoscaler Settings Unschedulable Pods Headroom 
- additional headroom based on cluster's total available capacity for on-demand nodes.
- headroomSpot AutoscalerAutoscaler Settings Unschedulable Pods Headroom Spot 
- additional headroom based on cluster's total available capacity for spot nodes.
- nodeConstraints AutoscalerAutoscaler Settings Unschedulable Pods Node Constraints 
- defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
- podPinner AutoscalerAutoscaler Settings Unschedulable Pods Pod Pinner 
- defines the Cast AI Pod Pinner components settings.
- custom_instances_ boolenabled 
- enable/disable custom instances policy.
- enabled bool
- enable/disable unschedulable pods detection policy.
- headroom
AutoscalerAutoscaler Settings Unschedulable Pods Headroom 
- additional headroom based on cluster's total available capacity for on-demand nodes.
- headroom_spot AutoscalerAutoscaler Settings Unschedulable Pods Headroom Spot 
- additional headroom based on cluster's total available capacity for spot nodes.
- node_constraints AutoscalerAutoscaler Settings Unschedulable Pods Node Constraints 
- defines the node constraints that will be applied when autoscaling with Unschedulable Pods policy.
- pod_pinner AutoscalerAutoscaler Settings Unschedulable Pods Pod Pinner 
- defines the Cast AI Pod Pinner components settings.
- customInstances BooleanEnabled 
- enable/disable custom instances policy.
- 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.
- MaxCpu doubleCores 
- defines max CPU cores for the node to pick.
- MaxRam doubleMib 
- defines max RAM in MiB for the node to pick.
- MinCpu doubleCores 
- defines min CPU cores for the node to pick.
- MinRam doubleMib 
- defines min RAM in MiB for the node to pick.
- Enabled bool
- enable/disable node constraints policy.
- MaxCpu float64Cores 
- defines max CPU cores for the node to pick.
- MaxRam float64Mib 
- defines max RAM in MiB for the node to pick.
- MinCpu float64Cores 
- defines min CPU cores for the node to pick.
- MinRam float64Mib 
- defines min RAM in MiB for the node to pick.
- enabled Boolean
- enable/disable node constraints policy.
- maxCpu DoubleCores 
- defines max CPU cores for the node to pick.
- maxRam DoubleMib 
- defines max RAM in MiB for the node to pick.
- minCpu DoubleCores 
- defines min CPU cores for the node to pick.
- minRam DoubleMib 
- defines min RAM in MiB for the node to pick.
- enabled boolean
- enable/disable node constraints policy.
- maxCpu numberCores 
- defines max CPU cores for the node to pick.
- maxRam numberMib 
- defines max RAM in MiB for the node to pick.
- minCpu numberCores 
- defines min CPU cores for the node to pick.
- minRam numberMib 
- defines min RAM in MiB for the node to pick.
- enabled bool
- enable/disable node constraints policy.
- max_cpu_ floatcores 
- defines max CPU cores for the node to pick.
- max_ram_ floatmib 
- defines max RAM in MiB for the node to pick.
- min_cpu_ floatcores 
- defines min CPU cores for the node to pick.
- min_ram_ floatmib 
- defines min RAM in MiB for the node to pick.
- enabled Boolean
- enable/disable node constraints policy.
- maxCpu NumberCores 
- defines max CPU cores for the node to pick.
- maxRam NumberMib 
- defines max RAM in MiB for the node to pick.
- minCpu NumberCores 
- defines min CPU cores for the node to pick.
- minRam NumberMib 
- 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    
Package Details
- Repository
- castai castai/terraform-provider-castai
- License
- Notes
- This Pulumi package is based on the castaiTerraform Provider.