import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "./types"; /** * Creates a Yandex Kubernetes Cluster. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as yandex from "@pulumi/yandex"; * * const zonalClusterResourceName = new yandex.KubernetesCluster("zonal_cluster_resource_name", { * description: "description", * kmsProvider: { * keyId: yandex_kms_symmetric_key_kms_key_resource_name.id, * }, * labels: { * my_key: "my_value", * my_other_key: "my_other_value", * }, * master: { * maintenancePolicy: { * autoUpgrade: true, * maintenanceWindows: [{ * duration: "3h", * startTime: "15:00", * }], * }, * publicIp: true, * securityGroupIds: [yandex_vpc_security_group_security_group_name.id], * version: "1.17", * zonal: { * subnetId: yandex_vpc_subnet_subnet_resource_name.id, * zone: yandex_vpc_subnet_subnet_resource_name.zone, * }, * }, * networkId: yandex_vpc_network_network_resource_name.id, * networkPolicyProvider: "CALICO", * nodeServiceAccountId: yandex_iam_service_account_node_service_account_resource_name.id, * releaseChannel: "RAPID", * serviceAccountId: yandex_iam_service_account_service_account_resource_name.id, * }); * ``` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as yandex from "@pulumi/yandex"; * * const regionalClusterResourceName = new yandex.KubernetesCluster("regional_cluster_resource_name", { * description: "description", * labels: { * my_key: "my_value", * my_other_key: "my_other_value", * }, * master: { * maintenancePolicy: { * autoUpgrade: true, * maintenanceWindows: [ * { * day: "monday", * duration: "3h", * startTime: "15:00", * }, * { * day: "friday", * duration: "4h30m", * startTime: "10:00", * }, * ], * }, * publicIp: true, * regional: { * locations: [ * { * subnetId: yandex_vpc_subnet_subnet_a_resource_name.id, * zone: yandex_vpc_subnet_subnet_a_resource_name.zone, * }, * { * subnetId: yandex_vpc_subnet_subnet_b_resource_name.id, * zone: yandex_vpc_subnet_subnet_b_resource_name.zone, * }, * { * subnetId: yandex_vpc_subnet_subnet_c_resource_name.id, * zone: yandex_vpc_subnet_subnet_c_resource_name.zone, * }, * ], * region: "ru-central1", * }, * version: "1.14", * }, * networkId: yandex_vpc_network_network_resource_name.id, * nodeServiceAccountId: yandex_iam_service_account_node_service_account_resource_name.id, * releaseChannel: "STABLE", * serviceAccountId: yandex_iam_service_account_service_account_resource_name.id, * }); * ``` * * ## Import * * A Managed Kubernetes cluster can be imported using the `id` of the resource, e.g. * * ```sh * $ pulumi import yandex:index/kubernetesCluster:KubernetesCluster default cluster_id * ``` */ export declare class KubernetesCluster extends pulumi.CustomResource { /** * Get an existing KubernetesCluster 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?: KubernetesClusterState, opts?: pulumi.CustomResourceOptions): KubernetesCluster; /** * Returns true if the given object is an instance of KubernetesCluster. 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 KubernetesCluster; /** * CIDR block. IP range for allocating pod addresses. * It should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be * set up for this CIDR blocks in node subnets. */ readonly clusterIpv4Range: pulumi.Output<string>; /** * Identical to clusterIpv4Range but for IPv6 protocol. */ readonly clusterIpv6Range: pulumi.Output<string>; /** * (Computed) The Kubernetes cluster creation timestamp. */ readonly createdAt: pulumi.Output<string>; /** * A description of the Kubernetes cluster. */ readonly description: pulumi.Output<string>; /** * The ID of the folder that the Kubernetes cluster belongs to. * If it is not provided, the default provider folder is used. */ readonly folderId: pulumi.Output<string>; /** * (Computed) Health of the Kubernetes cluster. */ readonly health: pulumi.Output<string>; /** * cluster KMS provider parameters. */ readonly kmsProvider: pulumi.Output<outputs.KubernetesClusterKmsProvider | undefined>; /** * A set of key/value label pairs to assign to the Kubernetes cluster. */ readonly labels: pulumi.Output<{ [key: string]: string; }>; /** * Log group where cluster stores cluster system logs, like audit, events, or controlplane logs. */ readonly logGroupId: pulumi.Output<string>; /** * Kubernetes master configuration options. The structure is documented below. */ readonly master: pulumi.Output<outputs.KubernetesClusterMaster>; /** * Name of a specific Kubernetes cluster. */ readonly name: pulumi.Output<string>; /** * The ID of the cluster network. */ readonly networkId: pulumi.Output<string>; /** * (Optional) Network Implementation options. The structure is documented below. */ readonly networkImplementation: pulumi.Output<outputs.KubernetesClusterNetworkImplementation | undefined>; /** * Network policy provider for the cluster. Possible values: `CALICO`. */ readonly networkPolicyProvider: pulumi.Output<string | undefined>; /** * Size of the masks that are assigned to each node in the cluster. Effectively limits maximum number of pods for each node. */ readonly nodeIpv4CidrMaskSize: pulumi.Output<number | undefined>; /** * Service account to be used by the worker nodes of the Kubernetes cluster * to access Container Registry or to push node logs and metrics. */ readonly nodeServiceAccountId: pulumi.Output<string>; /** * Cluster release channel. */ readonly releaseChannel: pulumi.Output<string>; /** * Service account to be used for provisioning Compute Cloud and VPC resources * for Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes * cluster will be located and on the folder where selected network resides. */ readonly serviceAccountId: pulumi.Output<string>; /** * CIDR block. IP range Kubernetes service Kubernetes cluster * IP addresses will be allocated from. It should not overlap with any subnet in the network * the Kubernetes cluster located in. */ readonly serviceIpv4Range: pulumi.Output<string>; /** * Identical to serviceIpv4Range but for IPv6 protocol. */ readonly serviceIpv6Range: pulumi.Output<string>; /** * (Computed)Status of the Kubernetes cluster. */ readonly status: pulumi.Output<string>; /** * Create a KubernetesCluster 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: KubernetesClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering KubernetesCluster resources. */ export interface KubernetesClusterState { /** * CIDR block. IP range for allocating pod addresses. * It should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be * set up for this CIDR blocks in node subnets. */ clusterIpv4Range?: pulumi.Input<string>; /** * Identical to clusterIpv4Range but for IPv6 protocol. */ clusterIpv6Range?: pulumi.Input<string>; /** * (Computed) The Kubernetes cluster creation timestamp. */ createdAt?: pulumi.Input<string>; /** * A description of the Kubernetes cluster. */ description?: pulumi.Input<string>; /** * The ID of the folder that the Kubernetes cluster belongs to. * If it is not provided, the default provider folder is used. */ folderId?: pulumi.Input<string>; /** * (Computed) Health of the Kubernetes cluster. */ health?: pulumi.Input<string>; /** * cluster KMS provider parameters. */ kmsProvider?: pulumi.Input<inputs.KubernetesClusterKmsProvider>; /** * A set of key/value label pairs to assign to the Kubernetes cluster. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Log group where cluster stores cluster system logs, like audit, events, or controlplane logs. */ logGroupId?: pulumi.Input<string>; /** * Kubernetes master configuration options. The structure is documented below. */ master?: pulumi.Input<inputs.KubernetesClusterMaster>; /** * Name of a specific Kubernetes cluster. */ name?: pulumi.Input<string>; /** * The ID of the cluster network. */ networkId?: pulumi.Input<string>; /** * (Optional) Network Implementation options. The structure is documented below. */ networkImplementation?: pulumi.Input<inputs.KubernetesClusterNetworkImplementation>; /** * Network policy provider for the cluster. Possible values: `CALICO`. */ networkPolicyProvider?: pulumi.Input<string>; /** * Size of the masks that are assigned to each node in the cluster. Effectively limits maximum number of pods for each node. */ nodeIpv4CidrMaskSize?: pulumi.Input<number>; /** * Service account to be used by the worker nodes of the Kubernetes cluster * to access Container Registry or to push node logs and metrics. */ nodeServiceAccountId?: pulumi.Input<string>; /** * Cluster release channel. */ releaseChannel?: pulumi.Input<string>; /** * Service account to be used for provisioning Compute Cloud and VPC resources * for Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes * cluster will be located and on the folder where selected network resides. */ serviceAccountId?: pulumi.Input<string>; /** * CIDR block. IP range Kubernetes service Kubernetes cluster * IP addresses will be allocated from. It should not overlap with any subnet in the network * the Kubernetes cluster located in. */ serviceIpv4Range?: pulumi.Input<string>; /** * Identical to serviceIpv4Range but for IPv6 protocol. */ serviceIpv6Range?: pulumi.Input<string>; /** * (Computed)Status of the Kubernetes cluster. */ status?: pulumi.Input<string>; } /** * The set of arguments for constructing a KubernetesCluster resource. */ export interface KubernetesClusterArgs { /** * CIDR block. IP range for allocating pod addresses. * It should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be * set up for this CIDR blocks in node subnets. */ clusterIpv4Range?: pulumi.Input<string>; /** * Identical to clusterIpv4Range but for IPv6 protocol. */ clusterIpv6Range?: pulumi.Input<string>; /** * A description of the Kubernetes cluster. */ description?: pulumi.Input<string>; /** * The ID of the folder that the Kubernetes cluster belongs to. * If it is not provided, the default provider folder is used. */ folderId?: pulumi.Input<string>; /** * cluster KMS provider parameters. */ kmsProvider?: pulumi.Input<inputs.KubernetesClusterKmsProvider>; /** * A set of key/value label pairs to assign to the Kubernetes cluster. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Kubernetes master configuration options. The structure is documented below. */ master: pulumi.Input<inputs.KubernetesClusterMaster>; /** * Name of a specific Kubernetes cluster. */ name?: pulumi.Input<string>; /** * The ID of the cluster network. */ networkId: pulumi.Input<string>; /** * (Optional) Network Implementation options. The structure is documented below. */ networkImplementation?: pulumi.Input<inputs.KubernetesClusterNetworkImplementation>; /** * Network policy provider for the cluster. Possible values: `CALICO`. */ networkPolicyProvider?: pulumi.Input<string>; /** * Size of the masks that are assigned to each node in the cluster. Effectively limits maximum number of pods for each node. */ nodeIpv4CidrMaskSize?: pulumi.Input<number>; /** * Service account to be used by the worker nodes of the Kubernetes cluster * to access Container Registry or to push node logs and metrics. */ nodeServiceAccountId: pulumi.Input<string>; /** * Cluster release channel. */ releaseChannel?: pulumi.Input<string>; /** * Service account to be used for provisioning Compute Cloud and VPC resources * for Kubernetes cluster. Selected service account should have `edit` role on the folder where the Kubernetes * cluster will be located and on the folder where selected network resides. */ serviceAccountId: pulumi.Input<string>; /** * CIDR block. IP range Kubernetes service Kubernetes cluster * IP addresses will be allocated from. It should not overlap with any subnet in the network * the Kubernetes cluster located in. */ serviceIpv4Range?: pulumi.Input<string>; /** * Identical to serviceIpv4Range but for IPv6 protocol. */ serviceIpv6Range?: pulumi.Input<string>; }