@pulumi/harness
Version: 
A Pulumi package for creating and managing Harness resources.
191 lines (190 loc) • 6.81 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Resource for ClusterOrchestrator Config.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as harness from "@pulumi/harness";
 *
 * const example = new harness.cluster.OrchestratorConfig("example", {
 *     orchestratorId: "orch-cvifpfl9rbg8neldj97g",
 *     distribution: {
 *         baseOndemandCapacity: 2,
 *         ondemandReplicaPercentage: 50,
 *         selector: "ALL",
 *         strategy: "CostOptimized",
 *     },
 *     binpacking: {
 *         podEviction: {
 *             threshold: {
 *                 cpu: 60,
 *                 memory: 80,
 *             },
 *         },
 *         disruption: {
 *             criteria: "WhenEmpty",
 *             delay: "10m",
 *             budgets: [
 *                 {
 *                     reasons: [
 *                         "Drifted",
 *                         "Underutilized",
 *                         "Empty",
 *                     ],
 *                     nodes: "20",
 *                 },
 *                 {
 *                     reasons: [
 *                         "Drifted",
 *                         "Empty",
 *                     ],
 *                     nodes: "1",
 *                     schedule: {
 *                         frequency: "@monthly",
 *                         duration: "10m",
 *                     },
 *                 },
 *             ],
 *         },
 *     },
 *     nodePreferences: {
 *         ttl: "Never",
 *         reverseFallbackInterval: "6h",
 *     },
 *     commitmentIntegration: {
 *         enabled: true,
 *         masterAccountId: "dummyAccountId",
 *     },
 *     replacementSchedule: {
 *         windowType: "Custom",
 *         appliesTo: {
 *             consolidation: true,
 *             harnessPodEviction: true,
 *             reverseFallback: true,
 *         },
 *         windowDetails: {
 *             days: [
 *                 "SUN",
 *                 "WED",
 *                 "SAT",
 *             ],
 *             timeZone: "Asia/Calcutta",
 *             allDay: false,
 *             startTime: "10:30",
 *             endTime: "11:30",
 *         },
 *     },
 * });
 * ```
 */
export declare class OrchestratorConfig extends pulumi.CustomResource {
    /**
     * Get an existing OrchestratorConfig resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: OrchestratorConfigState, opts?: pulumi.CustomResourceOptions): OrchestratorConfig;
    /**
     * Returns true if the given object is an instance of OrchestratorConfig.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is OrchestratorConfig;
    /**
     * Binpacking preferences for Cluster Orchestrator
     */
    readonly binpacking: pulumi.Output<outputs.cluster.OrchestratorConfigBinpacking | undefined>;
    /**
     * Commitment integration configuration for Cluster Orchestrator
     */
    readonly commitmentIntegration: pulumi.Output<outputs.cluster.OrchestratorConfigCommitmentIntegration | undefined>;
    /**
     * Spot and Ondemand Distribution Preferences for workload replicas
     */
    readonly distribution: pulumi.Output<outputs.cluster.OrchestratorConfigDistribution>;
    /**
     * Node preferences for Cluster Orchestrator
     */
    readonly nodePreferences: pulumi.Output<outputs.cluster.OrchestratorConfigNodePreferences | undefined>;
    /**
     * ID of the Cluster Orchestrator Object
     */
    readonly orchestratorId: pulumi.Output<string>;
    /**
     * Replacement schedule for Cluster Orchestrator
     */
    readonly replacementSchedule: pulumi.Output<outputs.cluster.OrchestratorConfigReplacementSchedule | undefined>;
    /**
     * Create a OrchestratorConfig resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: OrchestratorConfigArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering OrchestratorConfig resources.
 */
export interface OrchestratorConfigState {
    /**
     * Binpacking preferences for Cluster Orchestrator
     */
    binpacking?: pulumi.Input<inputs.cluster.OrchestratorConfigBinpacking>;
    /**
     * Commitment integration configuration for Cluster Orchestrator
     */
    commitmentIntegration?: pulumi.Input<inputs.cluster.OrchestratorConfigCommitmentIntegration>;
    /**
     * Spot and Ondemand Distribution Preferences for workload replicas
     */
    distribution?: pulumi.Input<inputs.cluster.OrchestratorConfigDistribution>;
    /**
     * Node preferences for Cluster Orchestrator
     */
    nodePreferences?: pulumi.Input<inputs.cluster.OrchestratorConfigNodePreferences>;
    /**
     * ID of the Cluster Orchestrator Object
     */
    orchestratorId?: pulumi.Input<string>;
    /**
     * Replacement schedule for Cluster Orchestrator
     */
    replacementSchedule?: pulumi.Input<inputs.cluster.OrchestratorConfigReplacementSchedule>;
}
/**
 * The set of arguments for constructing a OrchestratorConfig resource.
 */
export interface OrchestratorConfigArgs {
    /**
     * Binpacking preferences for Cluster Orchestrator
     */
    binpacking?: pulumi.Input<inputs.cluster.OrchestratorConfigBinpacking>;
    /**
     * Commitment integration configuration for Cluster Orchestrator
     */
    commitmentIntegration?: pulumi.Input<inputs.cluster.OrchestratorConfigCommitmentIntegration>;
    /**
     * Spot and Ondemand Distribution Preferences for workload replicas
     */
    distribution: pulumi.Input<inputs.cluster.OrchestratorConfigDistribution>;
    /**
     * Node preferences for Cluster Orchestrator
     */
    nodePreferences?: pulumi.Input<inputs.cluster.OrchestratorConfigNodePreferences>;
    /**
     * ID of the Cluster Orchestrator Object
     */
    orchestratorId: pulumi.Input<string>;
    /**
     * Replacement schedule for Cluster Orchestrator
     */
    replacementSchedule?: pulumi.Input<inputs.cluster.OrchestratorConfigReplacementSchedule>;
}