All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.alicloud.cs.ManagedKubernetes Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.cs;

import com.pulumi.alicloud.Utilities;
import com.pulumi.alicloud.cs.ManagedKubernetesArgs;
import com.pulumi.alicloud.cs.inputs.ManagedKubernetesState;
import com.pulumi.alicloud.cs.outputs.ManagedKubernetesAddon;
import com.pulumi.alicloud.cs.outputs.ManagedKubernetesCertificateAuthority;
import com.pulumi.alicloud.cs.outputs.ManagedKubernetesConnections;
import com.pulumi.alicloud.cs.outputs.ManagedKubernetesDeleteOption;
import com.pulumi.alicloud.cs.outputs.ManagedKubernetesMaintenanceWindow;
import com.pulumi.alicloud.cs.outputs.ManagedKubernetesRrsaMetadata;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * This resource will help you to manage a ManagedKubernetes Cluster in Alibaba Cloud Kubernetes Service.
 * 
 * > **NOTE:** Available since v1.26.0.
 * 
 * > **NOTE:** It is recommended to create a cluster with zero worker nodes, and then use a node pool to manage the cluster nodes.
 * 
 * > **NOTE:** Kubernetes cluster only supports VPC network and it can access internet while creating kubernetes cluster.
 * A Nat Gateway and configuring a SNAT for it can ensure one VPC network access internet. If there is no nat gateway in the
 * VPC, you can set `new_nat_gateway` to "true" to create one automatically.
 * 
 * > **NOTE:** Creating kubernetes cluster need to install several packages and it will cost about 15 minutes. Please be patient.
 * 
 * > **NOTE:** From version 1.9.4, the provider supports to download kube config, client certificate, client key and cluster ca certificate
 * after creating cluster successfully, and you can put them into the specified location, like '~/.kube/config'.
 * 
 * > **NOTE:** From version 1.20.0, the provider supports disabling internet load balancer for API Server by setting `false` to `slb_internet_enabled`.
 * 
 * > **NOTE:** If you want to manage Kubernetes, you can use Kubernetes Provider.
 * 
 * > **NOTE:** You need to activate several other products and confirm Authorization Policy used by Container Service before using this resource.
 * Please refer to the `Authorization management` and `Cluster management` sections in the [Document Center](https://www.alibabacloud.com/help/doc-detail/86488.htm).
 * 
 * > **NOTE:** From version 1.72.0, Some parameters have been removed from resource,You can check them below and re-import the cluster if necessary.
 * 
 * > **NOTE:** From version 1.120.0, Support for cluster migration from Standard cluster to professional.
 * 
 * > **NOTE:** From version 1.177.0, `runtime`,`enable_ssh`,`rds_instances`,`exclude_autoscaler_nodes`,`worker_number`,`worker_instance_types`,`password`,`key_name`,`kms_encrypted_password`,`kms_encryption_context`,`worker_instance_charge_type`,`worker_period`,`worker_period_unit`,`worker_auto_renew`,`worker_auto_renew_period`,`worker_disk_category`,`worker_disk_size`,`worker_data_disks`,`node_name_mode`,`node_port_range`,`os_type`,`platform`,`image_id`,`cpu_policy`,`user_data`,`taints`,`worker_disk_performance_level`,`worker_disk_snapshot_policy_id`,`install_cloud_monitor` are deprecated.
 * We Suggest you using resource **`alicloud.cs.NodePool`** to manage your cluster worker nodes.
 * 
 * > **NOTE:** From version 1.212.0, `runtime`,`enable_ssh`,`rds_instances`,`exclude_autoscaler_nodes`,`worker_number`,`worker_instance_types`,`password`,`key_name`,`kms_encrypted_password`,`kms_encryption_context`,`worker_instance_charge_type`,`worker_period`,`worker_period_unit`,`worker_auto_renew`,`worker_auto_renew_period`,`worker_disk_category`,`worker_disk_size`,`worker_data_disks`,`node_name_mode`,`node_port_range`,`os_type`,`platform`,`image_id`,`cpu_policy`,`user_data`,`taints`,`worker_disk_performance_level`,`worker_disk_snapshot_policy_id`,`install_cloud_monitor`,`kube_config`,`availability_zone` are removed.
 * Please use resource **`alicloud.cs.NodePool`** to manage your cluster worker nodes.
 * 
 * ## Import
 * 
 * Kubernetes managed cluster can be imported using the id, e.g. Then complete the main.tf accords to the result of `pulumi preview`.
 * 
 * ```sh
 * $ pulumi import alicloud:cs/managedKubernetes:ManagedKubernetes main cluster_id
 * ```
 * 
 */
@ResourceType(type="alicloud:cs/managedKubernetes:ManagedKubernetes")
public class ManagedKubernetes extends com.pulumi.resources.CustomResource {
    /**
     * The addon you want to install in cluster. See `addons` below. Only works for **Create** Operation, use resource cs_kubernetes_addon to manage addons if cluster is created.
     * 
     * *Network params*
     * 
     */
    @Export(name="addons", refs={List.class,ManagedKubernetesAddon.class}, tree="[0,1]")
    private Output> addons;

    /**
     * @return The addon you want to install in cluster. See `addons` below. Only works for **Create** Operation, use resource cs_kubernetes_addon to manage addons if cluster is created.
     * 
     * *Network params*
     * 
     */
    public Output>> addons() {
        return Codegen.optional(this.addons);
    }
    /**
     * A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `["https://kubernetes.default.svc"]` if you want to enable the Token Volume Projection feature (requires specifying `service_account_issuer` as well. From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.
     * 
     */
    @Export(name="apiAudiences", refs={List.class,String.class}, tree="[0,1]")
    private Output> apiAudiences;

    /**
     * @return A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `["https://kubernetes.default.svc"]` if you want to enable the Token Volume Projection feature (requires specifying `service_account_issuer` as well. From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.
     * 
     */
    public Output>> apiAudiences() {
        return Codegen.optional(this.apiAudiences);
    }
    /**
     * (Available since v1.105.0) Nested attribute containing certificate authority data for your cluster.
     * 
     */
    @Export(name="certificateAuthority", refs={ManagedKubernetesCertificateAuthority.class}, tree="[0]")
    private Output certificateAuthority;

    /**
     * @return (Available since v1.105.0) Nested attribute containing certificate authority data for your cluster.
     * 
     */
    public Output certificateAuthority() {
        return this.certificateAuthority;
    }
    /**
     * The path of client certificate, like `~/.kube/client-cert.pem`.
     * 
     */
    @Export(name="clientCert", refs={String.class}, tree="[0]")
    private Output clientCert;

    /**
     * @return The path of client certificate, like `~/.kube/client-cert.pem`.
     * 
     */
    public Output> clientCert() {
        return Codegen.optional(this.clientCert);
    }
    /**
     * The path of client key, like `~/.kube/client-key.pem`.
     * 
     */
    @Export(name="clientKey", refs={String.class}, tree="[0]")
    private Output clientKey;

    /**
     * @return The path of client key, like `~/.kube/client-key.pem`.
     * 
     */
    public Output> clientKey() {
        return Codegen.optional(this.clientKey);
    }
    /**
     * The path of cluster ca certificate, like `~/.kube/cluster-ca-cert.pem`
     * 
     * *Removed params*
     * 
     */
    @Export(name="clusterCaCert", refs={String.class}, tree="[0]")
    private Output clusterCaCert;

    /**
     * @return The path of cluster ca certificate, like `~/.kube/cluster-ca-cert.pem`
     * 
     * *Removed params*
     * 
     */
    public Output> clusterCaCert() {
        return Codegen.optional(this.clusterCaCert);
    }
    /**
     * Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.
     * 
     */
    @Export(name="clusterDomain", refs={String.class}, tree="[0]")
    private Output clusterDomain;

    /**
     * @return Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.
     * 
     */
    public Output> clusterDomain() {
        return Codegen.optional(this.clusterDomain);
    }
    /**
     * The cluster specifications of kubernetes cluster,which can be empty. Valid values:
     * * ack.standard : Standard managed clusters.
     * * ack.pro.small : Professional managed clusters.
     * 
     */
    @Export(name="clusterSpec", refs={String.class}, tree="[0]")
    private Output clusterSpec;

    /**
     * @return The cluster specifications of kubernetes cluster,which can be empty. Valid values:
     * * ack.standard : Standard managed clusters.
     * * ack.pro.small : Professional managed clusters.
     * 
     */
    public Output clusterSpec() {
        return this.clusterSpec;
    }
    /**
     * Map of kubernetes cluster connection information.
     * 
     */
    @Export(name="connections", refs={ManagedKubernetesConnections.class}, tree="[0]")
    private Output connections;

    /**
     * @return Map of kubernetes cluster connection information.
     * 
     */
    public Output connections() {
        return this.connections;
    }
    /**
     * List of target components for which logs need to be collected. Supports `apiserver`, `kcm`, `scheduler`, `ccm` and `controlplane-events`.
     * 
     */
    @Export(name="controlPlaneLogComponents", refs={List.class,String.class}, tree="[0,1]")
    private Output> controlPlaneLogComponents;

    /**
     * @return List of target components for which logs need to be collected. Supports `apiserver`, `kcm`, `scheduler`, `ccm` and `controlplane-events`.
     * 
     */
    public Output>> controlPlaneLogComponents() {
        return Codegen.optional(this.controlPlaneLogComponents);
    }
    /**
     * Control plane log project. If this field is not set, a log service project named k8s-log-{ClusterID} will be automatically created.
     * 
     */
    @Export(name="controlPlaneLogProject", refs={String.class}, tree="[0]")
    private Output controlPlaneLogProject;

    /**
     * @return Control plane log project. If this field is not set, a log service project named k8s-log-{ClusterID} will be automatically created.
     * 
     */
    public Output controlPlaneLogProject() {
        return this.controlPlaneLogProject;
    }
    /**
     * Control plane log retention duration (unit: day). Default `30`. If control plane logs are to be collected, `control_plane_log_ttl` and `control_plane_log_components` must be specified.
     * 
     */
    @Export(name="controlPlaneLogTtl", refs={String.class}, tree="[0]")
    private Output controlPlaneLogTtl;

    /**
     * @return Control plane log retention duration (unit: day). Default `30`. If control plane logs are to be collected, `control_plane_log_ttl` and `control_plane_log_components` must be specified.
     * 
     */
    public Output controlPlaneLogTtl() {
        return this.controlPlaneLogTtl;
    }
    /**
     * Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).
     * > **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.
     * 
     */
    @Export(name="customSan", refs={String.class}, tree="[0]")
    private Output customSan;

    /**
     * @return Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).
     * > **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.
     * 
     */
    public Output> customSan() {
        return Codegen.optional(this.customSan);
    }
    /**
     * Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See `delete_options` below.
     * 
     */
    @Export(name="deleteOptions", refs={List.class,ManagedKubernetesDeleteOption.class}, tree="[0,1]")
    private Output> deleteOptions;

    /**
     * @return Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See `delete_options` below.
     * 
     */
    public Output>> deleteOptions() {
        return Codegen.optional(this.deleteOptions);
    }
    /**
     * Whether to enable cluster deletion protection.
     * 
     */
    @Export(name="deletionProtection", refs={Boolean.class}, tree="[0]")
    private Output deletionProtection;

    /**
     * @return Whether to enable cluster deletion protection.
     * 
     */
    public Output> deletionProtection() {
        return Codegen.optional(this.deletionProtection);
    }
    /**
     * Whether to enable cluster to support RRSA for kubernetes version 1.22.3+. Default to `false`. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).
     * 
     */
    @Export(name="enableRrsa", refs={Boolean.class}, tree="[0]")
    private Output enableRrsa;

    /**
     * @return Whether to enable cluster to support RRSA for kubernetes version 1.22.3+. Default to `false`. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).
     * 
     */
    public Output> enableRrsa() {
        return Codegen.optional(this.enableRrsa);
    }
    /**
     * The disk encryption key.
     * 
     */
    @Export(name="encryptionProviderKey", refs={String.class}, tree="[0]")
    private Output encryptionProviderKey;

    /**
     * @return The disk encryption key.
     * 
     */
    public Output> encryptionProviderKey() {
        return Codegen.optional(this.encryptionProviderKey);
    }
    /**
     * Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).
     * 
     */
    @Export(name="isEnterpriseSecurityGroup", refs={Boolean.class}, tree="[0]")
    private Output isEnterpriseSecurityGroup;

    /**
     * @return Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).
     * 
     */
    public Output isEnterpriseSecurityGroup() {
        return this.isEnterpriseSecurityGroup;
    }
    /**
     * The cluster api server load balance instance specification, default `slb.s1.small`. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html).
     * 
     */
    @Export(name="loadBalancerSpec", refs={String.class}, tree="[0]")
    private Output loadBalancerSpec;

    /**
     * @return The cluster api server load balance instance specification, default `slb.s1.small`. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html).
     * 
     */
    public Output> loadBalancerSpec() {
        return Codegen.optional(this.loadBalancerSpec);
    }
    /**
     * The cluster maintenance window,effective only in the professional managed cluster. Managed node pool will use it. See `maintenance_window` below.
     * 
     */
    @Export(name="maintenanceWindow", refs={ManagedKubernetesMaintenanceWindow.class}, tree="[0]")
    private Output maintenanceWindow;

    /**
     * @return The cluster maintenance window,effective only in the professional managed cluster. Managed node pool will use it. See `maintenance_window` below.
     * 
     */
    public Output maintenanceWindow() {
        return this.maintenanceWindow;
    }
    /**
     * The kubernetes cluster's name. It is unique in one Alicloud account.
     * 
     */
    @Export(name="name", refs={String.class}, tree="[0]")
    private Output name;

    /**
     * @return The kubernetes cluster's name. It is unique in one Alicloud account.
     * 
     */
    public Output name() {
        return this.name;
    }
    @Export(name="namePrefix", refs={String.class}, tree="[0]")
    private Output namePrefix;

    public Output> namePrefix() {
        return Codegen.optional(this.namePrefix);
    }
    /**
     * The ID of nat gateway used to launch kubernetes cluster.
     * 
     */
    @Export(name="natGatewayId", refs={String.class}, tree="[0]")
    private Output natGatewayId;

    /**
     * @return The ID of nat gateway used to launch kubernetes cluster.
     * 
     */
    public Output natGatewayId() {
        return this.natGatewayId;
    }
    /**
     * Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice.
     * 
     */
    @Export(name="newNatGateway", refs={Boolean.class}, tree="[0]")
    private Output newNatGateway;

    /**
     * @return Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice.
     * 
     */
    public Output> newNatGateway() {
        return Codegen.optional(this.newNatGateway);
    }
    /**
     * The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24
     * 
     */
    @Export(name="nodeCidrMask", refs={Integer.class}, tree="[0]")
    private Output nodeCidrMask;

    /**
     * @return The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24
     * 
     */
    public Output> nodeCidrMask() {
        return Codegen.optional(this.nodeCidrMask);
    }
    /**
     * [Flannel Specific] The CIDR block for the pod network when using Flannel.
     * 
     */
    @Export(name="podCidr", refs={String.class}, tree="[0]")
    private Output podCidr;

    /**
     * @return [Flannel Specific] The CIDR block for the pod network when using Flannel.
     * 
     */
    public Output> podCidr() {
        return Codegen.optional(this.podCidr);
    }
    /**
     * [Terway Specific] The vswitches for the pod network when using Terway. It is recommended that `pod_vswitch_ids` is not belong to `worker_vswitch_ids` but must be in same availability zones.
     * 
     */
    @Export(name="podVswitchIds", refs={List.class,String.class}, tree="[0,1]")
    private Output> podVswitchIds;

    /**
     * @return [Terway Specific] The vswitches for the pod network when using Terway. It is recommended that `pod_vswitch_ids` is not belong to `worker_vswitch_ids` but must be in same availability zones.
     * 
     */
    public Output>> podVswitchIds() {
        return Codegen.optional(this.podVswitchIds);
    }
    /**
     * Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.
     * 
     */
    @Export(name="proxyMode", refs={String.class}, tree="[0]")
    private Output proxyMode;

    /**
     * @return Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.
     * 
     */
    public Output> proxyMode() {
        return Codegen.optional(this.proxyMode);
    }
    /**
     * The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.
     * 
     */
    @Export(name="resourceGroupId", refs={String.class}, tree="[0]")
    private Output resourceGroupId;

    /**
     * @return The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.
     * 
     */
    public Output resourceGroupId() {
        return this.resourceGroupId;
    }
    @Export(name="retainResources", refs={List.class,String.class}, tree="[0,1]")
    private Output> retainResources;

    public Output>> retainResources() {
        return Codegen.optional(this.retainResources);
    }
    /**
     * (Optional, Available since v1.185.0) Nested attribute containing RRSA related data for your cluster.
     * 
     */
    @Export(name="rrsaMetadata", refs={ManagedKubernetesRrsaMetadata.class}, tree="[0]")
    private Output rrsaMetadata;

    /**
     * @return (Optional, Available since v1.185.0) Nested attribute containing RRSA related data for your cluster.
     * 
     */
    public Output rrsaMetadata() {
        return this.rrsaMetadata;
    }
    /**
     * The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.
     * 
     */
    @Export(name="securityGroupId", refs={String.class}, tree="[0]")
    private Output securityGroupId;

    /**
     * @return The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.
     * 
     */
    public Output securityGroupId() {
        return this.securityGroupId;
    }
    /**
     * The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the `iss` field in the token payload. Set this to `"https://kubernetes.default.svc"` to enable the Token Volume Projection feature (requires specifying `api_audiences` as well). From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.
     * 
     */
    @Export(name="serviceAccountIssuer", refs={String.class}, tree="[0]")
    private Output serviceAccountIssuer;

    /**
     * @return The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the `iss` field in the token payload. Set this to `"https://kubernetes.default.svc"` to enable the Token Volume Projection feature (requires specifying `api_audiences` as well). From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.
     * 
     */
    public Output> serviceAccountIssuer() {
        return Codegen.optional(this.serviceAccountIssuer);
    }
    /**
     * The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.
     * 
     */
    @Export(name="serviceCidr", refs={String.class}, tree="[0]")
    private Output serviceCidr;

    /**
     * @return The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.
     * 
     */
    public Output> serviceCidr() {
        return Codegen.optional(this.serviceCidr);
    }
    /**
     * The ID of APIServer load balancer.
     * 
     */
    @Export(name="slbId", refs={String.class}, tree="[0]")
    private Output slbId;

    /**
     * @return The ID of APIServer load balancer.
     * 
     */
    public Output slbId() {
        return this.slbId;
    }
    /**
     * The public ip of load balancer.
     * 
     */
    @Export(name="slbInternet", refs={String.class}, tree="[0]")
    private Output slbInternet;

    /**
     * @return The public ip of load balancer.
     * 
     */
    public Output slbInternet() {
        return this.slbInternet;
    }
    /**
     * Whether to create internet load balancer for API Server. Default to true.
     * 
     * > **NOTE:** If you want to use `Terway` as CNI network plugin, You need to specify the `pod_vswitch_ids` field and addons with `terway-eniip`.
     * If you want to use `Flannel` as CNI network plugin, You need to specify the `pod_cidr` field and addons with `flannel`.
     * 
     * *Computed params*
     * 
     */
    @Export(name="slbInternetEnabled", refs={Boolean.class}, tree="[0]")
    private Output slbInternetEnabled;

    /**
     * @return Whether to create internet load balancer for API Server. Default to true.
     * 
     * > **NOTE:** If you want to use `Terway` as CNI network plugin, You need to specify the `pod_vswitch_ids` field and addons with `terway-eniip`.
     * If you want to use `Flannel` as CNI network plugin, You need to specify the `pod_cidr` field and addons with `flannel`.
     * 
     * *Computed params*
     * 
     */
    public Output> slbInternetEnabled() {
        return Codegen.optional(this.slbInternetEnabled);
    }
    /**
     * The ID of private load balancer where the current cluster master node is located.
     * 
     */
    @Export(name="slbIntranet", refs={String.class}, tree="[0]")
    private Output slbIntranet;

    /**
     * @return The ID of private load balancer where the current cluster master node is located.
     * 
     */
    public Output slbIntranet() {
        return this.slbIntranet;
    }
    /**
     * Default nil, A map of tags assigned to the kubernetes cluster and work nodes. See `tags` below.
     * 
     */
    @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]")
    private Output> tags;

    /**
     * @return Default nil, A map of tags assigned to the kubernetes cluster and work nodes. See `tags` below.
     * 
     */
    public Output>> tags() {
        return Codegen.optional(this.tags);
    }
    /**
     * When you create a cluster, set the time zones for the Master and Worker nodes. You can only change the managed node time zone if you create a cluster. Once the cluster is created, you can only change the time zone of the Worker node.
     * 
     */
    @Export(name="timezone", refs={String.class}, tree="[0]")
    private Output timezone;

    /**
     * @return When you create a cluster, set the time zones for the Master and Worker nodes. You can only change the managed node time zone if you create a cluster. Once the cluster is created, you can only change the time zone of the Worker node.
     * 
     */
    public Output> timezone() {
        return Codegen.optional(this.timezone);
    }
    /**
     * The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.
     * 
     */
    @Export(name="userCa", refs={String.class}, tree="[0]")
    private Output userCa;

    /**
     * @return The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.
     * 
     */
    public Output> userCa() {
        return Codegen.optional(this.userCa);
    }
    /**
     * Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.
     * 
     */
    @Export(name="version", refs={String.class}, tree="[0]")
    private Output version;

    /**
     * @return Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.
     * 
     */
    public Output version() {
        return this.version;
    }
    /**
     * The ID of VPC where the current cluster is located.
     * 
     */
    @Export(name="vpcId", refs={String.class}, tree="[0]")
    private Output vpcId;

    /**
     * @return The ID of VPC where the current cluster is located.
     * 
     */
    public Output vpcId() {
        return this.vpcId;
    }
    /**
     * The RamRole Name attached to worker node.
     * 
     */
    @Export(name="workerRamRoleName", refs={String.class}, tree="[0]")
    private Output workerRamRoleName;

    /**
     * @return The RamRole Name attached to worker node.
     * 
     */
    public Output workerRamRoleName() {
        return this.workerRamRoleName;
    }
    /**
     * The vswitches used by control plane.  See `worker_vswitch_ids` below.
     * 
     */
    @Export(name="workerVswitchIds", refs={List.class,String.class}, tree="[0,1]")
    private Output> workerVswitchIds;

    /**
     * @return The vswitches used by control plane.  See `worker_vswitch_ids` below.
     * 
     */
    public Output> workerVswitchIds() {
        return this.workerVswitchIds;
    }

    /**
     *
     * @param name The _unique_ name of the resulting resource.
     */
    public ManagedKubernetes(java.lang.String name) {
        this(name, ManagedKubernetesArgs.Empty);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     */
    public ManagedKubernetes(java.lang.String name, ManagedKubernetesArgs args) {
        this(name, args, null);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param options A bag of options that control this resource's behavior.
     */
    public ManagedKubernetes(java.lang.String name, ManagedKubernetesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("alicloud:cs/managedKubernetes:ManagedKubernetes", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
    }

    private ManagedKubernetes(java.lang.String name, Output id, @Nullable ManagedKubernetesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("alicloud:cs/managedKubernetes:ManagedKubernetes", name, state, makeResourceOptions(options, id), false);
    }

    private static ManagedKubernetesArgs makeArgs(ManagedKubernetesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        if (options != null && options.getUrn().isPresent()) {
            return null;
        }
        return args == null ? ManagedKubernetesArgs.Empty : args;
    }

    private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
        var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
            .version(Utilities.getVersion())
            .build();
        return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
    }

    /**
     * Get an existing Host 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
     * @param options Optional settings to control the behavior of the CustomResource.
     */
    public static ManagedKubernetes get(java.lang.String name, Output id, @Nullable ManagedKubernetesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        return new ManagedKubernetes(name, id, state, options);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy