1. Packages
  2. CAST AI
  3. API Docs
  4. RebalancingSchedule
CAST AI v7.73.2 published on Wednesday, Oct 29, 2025 by CAST AI

castai.RebalancingSchedule

Get Started
castai logo
CAST AI v7.73.2 published on Wednesday, Oct 29, 2025 by CAST AI

    Create RebalancingSchedule Resource

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

    Constructor syntax

    new RebalancingSchedule(name: string, args: RebalancingScheduleArgs, opts?: CustomResourceOptions);
    @overload
    def RebalancingSchedule(resource_name: str,
                            args: RebalancingScheduleArgs,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def RebalancingSchedule(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            launch_configuration: Optional[_rebalancing.RebalancingScheduleLaunchConfigurationArgs] = None,
                            schedule: Optional[_rebalancing.RebalancingScheduleScheduleArgs] = None,
                            trigger_conditions: Optional[_rebalancing.RebalancingScheduleTriggerConditionsArgs] = None,
                            name: Optional[str] = None)
    func NewRebalancingSchedule(ctx *Context, name string, args RebalancingScheduleArgs, opts ...ResourceOption) (*RebalancingSchedule, error)
    public RebalancingSchedule(string name, RebalancingScheduleArgs args, CustomResourceOptions? opts = null)
    public RebalancingSchedule(String name, RebalancingScheduleArgs args)
    public RebalancingSchedule(String name, RebalancingScheduleArgs args, CustomResourceOptions options)
    
    type: castai:rebalancing:RebalancingSchedule
    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 RebalancingScheduleArgs
    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 RebalancingScheduleArgs
    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 RebalancingScheduleArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args RebalancingScheduleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args RebalancingScheduleArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    RebalancingSchedule 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 RebalancingSchedule resource accepts the following input properties:

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing RebalancingSchedule Resource

    Get an existing RebalancingSchedule 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?: RebalancingScheduleState, opts?: CustomResourceOptions): RebalancingSchedule
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            launch_configuration: Optional[_rebalancing.RebalancingScheduleLaunchConfigurationArgs] = None,
            name: Optional[str] = None,
            schedule: Optional[_rebalancing.RebalancingScheduleScheduleArgs] = None,
            trigger_conditions: Optional[_rebalancing.RebalancingScheduleTriggerConditionsArgs] = None) -> RebalancingSchedule
    func GetRebalancingSchedule(ctx *Context, name string, id IDInput, state *RebalancingScheduleState, opts ...ResourceOption) (*RebalancingSchedule, error)
    public static RebalancingSchedule Get(string name, Input<string> id, RebalancingScheduleState? state, CustomResourceOptions? opts = null)
    public static RebalancingSchedule get(String name, Output<String> id, RebalancingScheduleState state, CustomResourceOptions options)
    resources:  _:    type: castai:rebalancing:RebalancingSchedule    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.
    The following state arguments are supported:

    Supporting Types

    RebalancingScheduleLaunchConfiguration, RebalancingScheduleLaunchConfigurationArgs

    AggressiveMode bool
    When enabled rebalancing will also consider problematic pods (pods without controller, job pods, pods with removal-disabled annotation) as not-problematic.
    AggressiveModeConfig Pulumi.CastAI.Rebalancing.Inputs.RebalancingScheduleLaunchConfigurationAggressiveModeConfig
    Advanced configuration for aggressive rebalancing mode.
    ExecutionConditions Pulumi.CastAI.Rebalancing.Inputs.RebalancingScheduleLaunchConfigurationExecutionConditions
    KeepDrainTimeoutNodes bool
    Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a rebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.
    NodeTtlSeconds int
    Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.
    NumTargetedNodes int
    Maximum number of nodes that will be selected for rebalancing.
    RebalancingMinNodes int
    Minimum number of nodes that should be kept in the cluster after rebalancing.
    Selector string
    Node selector in JSON format.
    TargetNodeSelectionAlgorithm string
    Defines the algorithm used to select the target nodes for rebalancing.
    AggressiveMode bool
    When enabled rebalancing will also consider problematic pods (pods without controller, job pods, pods with removal-disabled annotation) as not-problematic.
    AggressiveModeConfig RebalancingScheduleLaunchConfigurationAggressiveModeConfig
    Advanced configuration for aggressive rebalancing mode.
    ExecutionConditions RebalancingScheduleLaunchConfigurationExecutionConditions
    KeepDrainTimeoutNodes bool
    Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a rebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.
    NodeTtlSeconds int
    Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.
    NumTargetedNodes int
    Maximum number of nodes that will be selected for rebalancing.
    RebalancingMinNodes int
    Minimum number of nodes that should be kept in the cluster after rebalancing.
    Selector string
    Node selector in JSON format.
    TargetNodeSelectionAlgorithm string
    Defines the algorithm used to select the target nodes for rebalancing.
    aggressiveMode Boolean
    When enabled rebalancing will also consider problematic pods (pods without controller, job pods, pods with removal-disabled annotation) as not-problematic.
    aggressiveModeConfig RebalancingScheduleLaunchConfigurationAggressiveModeConfig
    Advanced configuration for aggressive rebalancing mode.
    executionConditions RebalancingScheduleLaunchConfigurationExecutionConditions
    keepDrainTimeoutNodes Boolean
    Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a rebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.
    nodeTtlSeconds Integer
    Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.
    numTargetedNodes Integer
    Maximum number of nodes that will be selected for rebalancing.
    rebalancingMinNodes Integer
    Minimum number of nodes that should be kept in the cluster after rebalancing.
    selector String
    Node selector in JSON format.
    targetNodeSelectionAlgorithm String
    Defines the algorithm used to select the target nodes for rebalancing.
    aggressiveMode boolean
    When enabled rebalancing will also consider problematic pods (pods without controller, job pods, pods with removal-disabled annotation) as not-problematic.
    aggressiveModeConfig rebalancingRebalancingScheduleLaunchConfigurationAggressiveModeConfig
    Advanced configuration for aggressive rebalancing mode.
    executionConditions rebalancingRebalancingScheduleLaunchConfigurationExecutionConditions
    keepDrainTimeoutNodes boolean
    Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a rebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.
    nodeTtlSeconds number
    Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.
    numTargetedNodes number
    Maximum number of nodes that will be selected for rebalancing.
    rebalancingMinNodes number
    Minimum number of nodes that should be kept in the cluster after rebalancing.
    selector string
    Node selector in JSON format.
    targetNodeSelectionAlgorithm string
    Defines the algorithm used to select the target nodes for rebalancing.
    aggressive_mode bool
    When enabled rebalancing will also consider problematic pods (pods without controller, job pods, pods with removal-disabled annotation) as not-problematic.
    aggressive_mode_config rebalancing.RebalancingScheduleLaunchConfigurationAggressiveModeConfig
    Advanced configuration for aggressive rebalancing mode.
    execution_conditions rebalancing.RebalancingScheduleLaunchConfigurationExecutionConditions
    keep_drain_timeout_nodes bool
    Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a rebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.
    node_ttl_seconds int
    Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.
    num_targeted_nodes int
    Maximum number of nodes that will be selected for rebalancing.
    rebalancing_min_nodes int
    Minimum number of nodes that should be kept in the cluster after rebalancing.
    selector str
    Node selector in JSON format.
    target_node_selection_algorithm str
    Defines the algorithm used to select the target nodes for rebalancing.
    aggressiveMode Boolean
    When enabled rebalancing will also consider problematic pods (pods without controller, job pods, pods with removal-disabled annotation) as not-problematic.
    aggressiveModeConfig Property Map
    Advanced configuration for aggressive rebalancing mode.
    executionConditions Property Map
    keepDrainTimeoutNodes Boolean
    Defines whether the nodes that failed to get drained until a predefined timeout, will be kept with a rebalancing.cast.ai/status=drain-failed annotation instead of forcefully drained.
    nodeTtlSeconds Number
    Specifies amount of time since node creation before the node is allowed to be considered for automated rebalancing.
    numTargetedNodes Number
    Maximum number of nodes that will be selected for rebalancing.
    rebalancingMinNodes Number
    Minimum number of nodes that should be kept in the cluster after rebalancing.
    selector String
    Node selector in JSON format.
    targetNodeSelectionAlgorithm String
    Defines the algorithm used to select the target nodes for rebalancing.

    RebalancingScheduleLaunchConfigurationAggressiveModeConfig, RebalancingScheduleLaunchConfigurationAggressiveModeConfigArgs

    IgnoreLocalPersistentVolumes bool
    Rebalance workloads that use local-path Persistent Volumes. THIS WILL RESULT IN DATA LOSS.
    IgnoreProblemJobPods bool
    Pods spawned by Jobs or CronJobs will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, pods spawned by Jobs or CronJobs will be terminated if the Rebalancer picks a node that runs them. As such, they are likely to lose their progress.
    IgnoreProblemPodsWithoutController bool
    Pods that don't have a controller (bare pods) will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods might not restart, since they have no controller to do it.
    IgnoreProblemRemovalDisabledPods bool
    Pods that are marked with "removal disabled" will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods will be evicted and disrupted.
    IgnoreLocalPersistentVolumes bool
    Rebalance workloads that use local-path Persistent Volumes. THIS WILL RESULT IN DATA LOSS.
    IgnoreProblemJobPods bool
    Pods spawned by Jobs or CronJobs will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, pods spawned by Jobs or CronJobs will be terminated if the Rebalancer picks a node that runs them. As such, they are likely to lose their progress.
    IgnoreProblemPodsWithoutController bool
    Pods that don't have a controller (bare pods) will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods might not restart, since they have no controller to do it.
    IgnoreProblemRemovalDisabledPods bool
    Pods that are marked with "removal disabled" will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods will be evicted and disrupted.
    ignoreLocalPersistentVolumes Boolean
    Rebalance workloads that use local-path Persistent Volumes. THIS WILL RESULT IN DATA LOSS.
    ignoreProblemJobPods Boolean
    Pods spawned by Jobs or CronJobs will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, pods spawned by Jobs or CronJobs will be terminated if the Rebalancer picks a node that runs them. As such, they are likely to lose their progress.
    ignoreProblemPodsWithoutController Boolean
    Pods that don't have a controller (bare pods) will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods might not restart, since they have no controller to do it.
    ignoreProblemRemovalDisabledPods Boolean
    Pods that are marked with "removal disabled" will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods will be evicted and disrupted.
    ignoreLocalPersistentVolumes boolean
    Rebalance workloads that use local-path Persistent Volumes. THIS WILL RESULT IN DATA LOSS.
    ignoreProblemJobPods boolean
    Pods spawned by Jobs or CronJobs will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, pods spawned by Jobs or CronJobs will be terminated if the Rebalancer picks a node that runs them. As such, they are likely to lose their progress.
    ignoreProblemPodsWithoutController boolean
    Pods that don't have a controller (bare pods) will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods might not restart, since they have no controller to do it.
    ignoreProblemRemovalDisabledPods boolean
    Pods that are marked with "removal disabled" will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods will be evicted and disrupted.
    ignore_local_persistent_volumes bool
    Rebalance workloads that use local-path Persistent Volumes. THIS WILL RESULT IN DATA LOSS.
    ignore_problem_job_pods bool
    Pods spawned by Jobs or CronJobs will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, pods spawned by Jobs or CronJobs will be terminated if the Rebalancer picks a node that runs them. As such, they are likely to lose their progress.
    ignore_problem_pods_without_controller bool
    Pods that don't have a controller (bare pods) will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods might not restart, since they have no controller to do it.
    ignore_problem_removal_disabled_pods bool
    Pods that are marked with "removal disabled" will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods will be evicted and disrupted.
    ignoreLocalPersistentVolumes Boolean
    Rebalance workloads that use local-path Persistent Volumes. THIS WILL RESULT IN DATA LOSS.
    ignoreProblemJobPods Boolean
    Pods spawned by Jobs or CronJobs will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, pods spawned by Jobs or CronJobs will be terminated if the Rebalancer picks a node that runs them. As such, they are likely to lose their progress.
    ignoreProblemPodsWithoutController Boolean
    Pods that don't have a controller (bare pods) will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods might not restart, since they have no controller to do it.
    ignoreProblemRemovalDisabledPods Boolean
    Pods that are marked with "removal disabled" will not prevent the Rebalancer from deleting a node on which they run. WARNING: When true, such pods will be evicted and disrupted.

    RebalancingScheduleLaunchConfigurationExecutionConditions, RebalancingScheduleLaunchConfigurationExecutionConditionsArgs

    Enabled bool
    Enables or disables the execution conditions.
    AchievedSavingsPercentage int
    The percentage of the predicted savings that must be achieved in order to fully execute the plan.If the savings are not achieved after creating the new nodes, the plan will fail and delete the created nodes.
    Enabled bool
    Enables or disables the execution conditions.
    AchievedSavingsPercentage int
    The percentage of the predicted savings that must be achieved in order to fully execute the plan.If the savings are not achieved after creating the new nodes, the plan will fail and delete the created nodes.
    enabled Boolean
    Enables or disables the execution conditions.
    achievedSavingsPercentage Integer
    The percentage of the predicted savings that must be achieved in order to fully execute the plan.If the savings are not achieved after creating the new nodes, the plan will fail and delete the created nodes.
    enabled boolean
    Enables or disables the execution conditions.
    achievedSavingsPercentage number
    The percentage of the predicted savings that must be achieved in order to fully execute the plan.If the savings are not achieved after creating the new nodes, the plan will fail and delete the created nodes.
    enabled bool
    Enables or disables the execution conditions.
    achieved_savings_percentage int
    The percentage of the predicted savings that must be achieved in order to fully execute the plan.If the savings are not achieved after creating the new nodes, the plan will fail and delete the created nodes.
    enabled Boolean
    Enables or disables the execution conditions.
    achievedSavingsPercentage Number
    The percentage of the predicted savings that must be achieved in order to fully execute the plan.If the savings are not achieved after creating the new nodes, the plan will fail and delete the created nodes.

    RebalancingScheduleSchedule, RebalancingScheduleScheduleArgs

    Cron string

    Cron expression defining when the schedule should trigger.

    The cron expression can optionally include the CRON_TZ variable at the beginning to specify the timezone in which the schedule should be interpreted.

    Example:

    CRON_TZ=America/New_York 0 12 * * ?
    

    In the example above, the CRON_TZ variable is set to "America/New_York" indicating that the cron expression should be interpreted in the Eastern Time (ET) timezone.

    To retrieve a list of available timezone values, you can use the following API endpoint:

    GET https://api.cast.ai/v1/time-zones

    When using the CRON_TZ variable, ensure that the specified timezone is valid and supported by checking the list of available timezones from the API endpoint. If the CRON_TZ variable is not specified, the cron expression will be interpreted in the UTC timezone.

    Cron string

    Cron expression defining when the schedule should trigger.

    The cron expression can optionally include the CRON_TZ variable at the beginning to specify the timezone in which the schedule should be interpreted.

    Example:

    CRON_TZ=America/New_York 0 12 * * ?
    

    In the example above, the CRON_TZ variable is set to "America/New_York" indicating that the cron expression should be interpreted in the Eastern Time (ET) timezone.

    To retrieve a list of available timezone values, you can use the following API endpoint:

    GET https://api.cast.ai/v1/time-zones

    When using the CRON_TZ variable, ensure that the specified timezone is valid and supported by checking the list of available timezones from the API endpoint. If the CRON_TZ variable is not specified, the cron expression will be interpreted in the UTC timezone.

    cron String

    Cron expression defining when the schedule should trigger.

    The cron expression can optionally include the CRON_TZ variable at the beginning to specify the timezone in which the schedule should be interpreted.

    Example:

    CRON_TZ=America/New_York 0 12 * * ?
    

    In the example above, the CRON_TZ variable is set to "America/New_York" indicating that the cron expression should be interpreted in the Eastern Time (ET) timezone.

    To retrieve a list of available timezone values, you can use the following API endpoint:

    GET https://api.cast.ai/v1/time-zones

    When using the CRON_TZ variable, ensure that the specified timezone is valid and supported by checking the list of available timezones from the API endpoint. If the CRON_TZ variable is not specified, the cron expression will be interpreted in the UTC timezone.

    cron string

    Cron expression defining when the schedule should trigger.

    The cron expression can optionally include the CRON_TZ variable at the beginning to specify the timezone in which the schedule should be interpreted.

    Example:

    CRON_TZ=America/New_York 0 12 * * ?
    

    In the example above, the CRON_TZ variable is set to "America/New_York" indicating that the cron expression should be interpreted in the Eastern Time (ET) timezone.

    To retrieve a list of available timezone values, you can use the following API endpoint:

    GET https://api.cast.ai/v1/time-zones

    When using the CRON_TZ variable, ensure that the specified timezone is valid and supported by checking the list of available timezones from the API endpoint. If the CRON_TZ variable is not specified, the cron expression will be interpreted in the UTC timezone.

    cron str

    Cron expression defining when the schedule should trigger.

    The cron expression can optionally include the CRON_TZ variable at the beginning to specify the timezone in which the schedule should be interpreted.

    Example:

    CRON_TZ=America/New_York 0 12 * * ?
    

    In the example above, the CRON_TZ variable is set to "America/New_York" indicating that the cron expression should be interpreted in the Eastern Time (ET) timezone.

    To retrieve a list of available timezone values, you can use the following API endpoint:

    GET https://api.cast.ai/v1/time-zones

    When using the CRON_TZ variable, ensure that the specified timezone is valid and supported by checking the list of available timezones from the API endpoint. If the CRON_TZ variable is not specified, the cron expression will be interpreted in the UTC timezone.

    cron String

    Cron expression defining when the schedule should trigger.

    The cron expression can optionally include the CRON_TZ variable at the beginning to specify the timezone in which the schedule should be interpreted.

    Example:

    CRON_TZ=America/New_York 0 12 * * ?
    

    In the example above, the CRON_TZ variable is set to "America/New_York" indicating that the cron expression should be interpreted in the Eastern Time (ET) timezone.

    To retrieve a list of available timezone values, you can use the following API endpoint:

    GET https://api.cast.ai/v1/time-zones

    When using the CRON_TZ variable, ensure that the specified timezone is valid and supported by checking the list of available timezones from the API endpoint. If the CRON_TZ variable is not specified, the cron expression will be interpreted in the UTC timezone.

    RebalancingScheduleTriggerConditions, RebalancingScheduleTriggerConditionsArgs

    SavingsPercentage double
    Defines the minimum percentage of savings expected.
    IgnoreSavings bool
    If true, the savings percentage will be ignored and the rebalancing will be triggered regardless of the savings percentage.
    SavingsPercentage float64
    Defines the minimum percentage of savings expected.
    IgnoreSavings bool
    If true, the savings percentage will be ignored and the rebalancing will be triggered regardless of the savings percentage.
    savingsPercentage Double
    Defines the minimum percentage of savings expected.
    ignoreSavings Boolean
    If true, the savings percentage will be ignored and the rebalancing will be triggered regardless of the savings percentage.
    savingsPercentage number
    Defines the minimum percentage of savings expected.
    ignoreSavings boolean
    If true, the savings percentage will be ignored and the rebalancing will be triggered regardless of the savings percentage.
    savings_percentage float
    Defines the minimum percentage of savings expected.
    ignore_savings bool
    If true, the savings percentage will be ignored and the rebalancing will be triggered regardless of the savings percentage.
    savingsPercentage Number
    Defines the minimum percentage of savings expected.
    ignoreSavings Boolean
    If true, the savings percentage will be ignored and the rebalancing will be triggered regardless of the savings percentage.

    Package Details

    Repository
    castai castai/pulumi-castai
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the castai Terraform Provider.
    castai logo
    CAST AI v7.73.2 published on Wednesday, Oct 29, 2025 by CAST AI
      Meet Neo: Your AI Platform Teammate