ManagedKubernetesArgs

data class ManagedKubernetesArgs(val addons: Output<List<ManagedKubernetesAddonArgs>>? = null, val apiAudiences: Output<List<String>>? = null, val availabilityZone: Output<String>? = null, val clientCert: Output<String>? = null, val clientKey: Output<String>? = null, val clusterCaCert: Output<String>? = null, val clusterDomain: Output<String>? = null, val clusterSpec: Output<String>? = null, val controlPlaneLogComponents: Output<List<String>>? = null, val controlPlaneLogProject: Output<String>? = null, val controlPlaneLogTtl: Output<String>? = null, val cpuPolicy: Output<String>? = null, val customSan: Output<String>? = null, val deletionProtection: Output<Boolean>? = null, val enableRrsa: Output<Boolean>? = null, val enableSsh: Output<Boolean>? = null, val encryptionProviderKey: Output<String>? = null, val excludeAutoscalerNodes: Output<Boolean>? = null, val imageId: Output<String>? = null, val installCloudMonitor: Output<Boolean>? = null, val isEnterpriseSecurityGroup: Output<Boolean>? = null, val keyName: Output<String>? = null, val kmsEncryptedPassword: Output<String>? = null, val kmsEncryptionContext: Output<Map<String, Any>>? = null, val kubeConfig: Output<String>? = null, val loadBalancerSpec: Output<String>? = null, val maintenanceWindow: Output<ManagedKubernetesMaintenanceWindowArgs>? = null, val name: Output<String>? = null, val namePrefix: Output<String>? = null, val newNatGateway: Output<Boolean>? = null, val nodeCidrMask: Output<Int>? = null, val nodeNameMode: Output<String>? = null, val nodePortRange: Output<String>? = null, val osType: Output<String>? = null, val password: Output<String>? = null, val platform: Output<String>? = null, val podCidr: Output<String>? = null, val podVswitchIds: Output<List<String>>? = null, val proxyMode: Output<String>? = null, val rdsInstances: Output<List<String>>? = null, val resourceGroupId: Output<String>? = null, val retainResources: Output<List<String>>? = null, val rrsaMetadata: Output<ManagedKubernetesRrsaMetadataArgs>? = null, val runtime: Output<ManagedKubernetesRuntimeArgs>? = null, val securityGroupId: Output<String>? = null, val serviceAccountIssuer: Output<String>? = null, val serviceCidr: Output<String>? = null, val slbInternetEnabled: Output<Boolean>? = null, val tags: Output<Map<String, Any>>? = null, val taints: Output<List<ManagedKubernetesTaintArgs>>? = null, val timezone: Output<String>? = null, val userCa: Output<String>? = null, val userData: Output<String>? = null, val version: Output<String>? = null, val workerAutoRenew: Output<Boolean>? = null, val workerAutoRenewPeriod: Output<Int>? = null, val workerDataDiskCategory: Output<String>? = null, val workerDataDiskSize: Output<Int>? = null, val workerDataDisks: Output<List<ManagedKubernetesWorkerDataDiskArgs>>? = null, val workerDiskCategory: Output<String>? = null, val workerDiskPerformanceLevel: Output<String>? = null, val workerDiskSize: Output<Int>? = null, val workerDiskSnapshotPolicyId: Output<String>? = null, val workerInstanceChargeType: Output<String>? = null, val workerInstanceTypes: Output<List<String>>? = null, val workerNumber: Output<Int>? = null, val workerPeriod: Output<Int>? = null, val workerPeriodUnit: Output<String>? = null, val workerVswitchIds: Output<List<String>>? = null) : ConvertibleToJava<ManagedKubernetesArgs>

This resource will help you to manage a ManagedKubernetes Cluster in Alibaba Cloud Kubernetes Service.

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. 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.

Import

Kubernetes managed cluster can be imported using the id, e.g. Then complete the main.tf accords to the result of pulumi preview.

$ pulumi import alicloud:cs/managedKubernetes:ManagedKubernetes main cluster_id

Constructors

Link copied to clipboard
fun ManagedKubernetesArgs(addons: Output<List<ManagedKubernetesAddonArgs>>? = null, apiAudiences: Output<List<String>>? = null, availabilityZone: Output<String>? = null, clientCert: Output<String>? = null, clientKey: Output<String>? = null, clusterCaCert: Output<String>? = null, clusterDomain: Output<String>? = null, clusterSpec: Output<String>? = null, controlPlaneLogComponents: Output<List<String>>? = null, controlPlaneLogProject: Output<String>? = null, controlPlaneLogTtl: Output<String>? = null, cpuPolicy: Output<String>? = null, customSan: Output<String>? = null, deletionProtection: Output<Boolean>? = null, enableRrsa: Output<Boolean>? = null, enableSsh: Output<Boolean>? = null, encryptionProviderKey: Output<String>? = null, excludeAutoscalerNodes: Output<Boolean>? = null, imageId: Output<String>? = null, installCloudMonitor: Output<Boolean>? = null, isEnterpriseSecurityGroup: Output<Boolean>? = null, keyName: Output<String>? = null, kmsEncryptedPassword: Output<String>? = null, kmsEncryptionContext: Output<Map<String, Any>>? = null, kubeConfig: Output<String>? = null, loadBalancerSpec: Output<String>? = null, maintenanceWindow: Output<ManagedKubernetesMaintenanceWindowArgs>? = null, name: Output<String>? = null, namePrefix: Output<String>? = null, newNatGateway: Output<Boolean>? = null, nodeCidrMask: Output<Int>? = null, nodeNameMode: Output<String>? = null, nodePortRange: Output<String>? = null, osType: Output<String>? = null, password: Output<String>? = null, platform: Output<String>? = null, podCidr: Output<String>? = null, podVswitchIds: Output<List<String>>? = null, proxyMode: Output<String>? = null, rdsInstances: Output<List<String>>? = null, resourceGroupId: Output<String>? = null, retainResources: Output<List<String>>? = null, rrsaMetadata: Output<ManagedKubernetesRrsaMetadataArgs>? = null, runtime: Output<ManagedKubernetesRuntimeArgs>? = null, securityGroupId: Output<String>? = null, serviceAccountIssuer: Output<String>? = null, serviceCidr: Output<String>? = null, slbInternetEnabled: Output<Boolean>? = null, tags: Output<Map<String, Any>>? = null, taints: Output<List<ManagedKubernetesTaintArgs>>? = null, timezone: Output<String>? = null, userCa: Output<String>? = null, userData: Output<String>? = null, version: Output<String>? = null, workerAutoRenew: Output<Boolean>? = null, workerAutoRenewPeriod: Output<Int>? = null, workerDataDiskCategory: Output<String>? = null, workerDataDiskSize: Output<Int>? = null, workerDataDisks: Output<List<ManagedKubernetesWorkerDataDiskArgs>>? = null, workerDiskCategory: Output<String>? = null, workerDiskPerformanceLevel: Output<String>? = null, workerDiskSize: Output<Int>? = null, workerDiskSnapshotPolicyId: Output<String>? = null, workerInstanceChargeType: Output<String>? = null, workerInstanceTypes: Output<List<String>>? = null, workerNumber: Output<Int>? = null, workerPeriod: Output<Int>? = null, workerPeriodUnit: Output<String>? = null, workerVswitchIds: Output<List<String>>? = null)

Functions

Link copied to clipboard
open override fun toJava(): ManagedKubernetesArgs

Properties

Link copied to clipboard
val addons: Output<List<ManagedKubernetesAddonArgs>>? = null

The addon you want to install in cluster. Detailed below.

Link copied to clipboard
val apiAudiences: Output<List<String>>? = null

A list of API audiences for Service Account Token Volume Projection. Set this to ["https://kubernetes&#46;default&#46;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.

Link copied to clipboard
val availabilityZone: Output<String>? = null

The Zone where new kubernetes cluster will be located. If it is not be specified, the vswitch_ids should be set, its value will be vswitch's zone.

Link copied to clipboard
val clientCert: Output<String>? = null

The path of client certificate, like ~/.kube/client-cert.pem.

Link copied to clipboard
val clientKey: Output<String>? = null

The path of client key, like ~/.kube/client-key.pem.

Link copied to clipboard
val clusterCaCert: Output<String>? = null

The path of cluster ca certificate, like ~/.kube/cluster-ca-cert.pem

Link copied to clipboard
val clusterDomain: Output<String>? = null

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.

Link copied to clipboard
val clusterSpec: Output<String>? = null

The cluster specifications of kubernetes cluster,which can be empty. Valid values:

Link copied to clipboard
val controlPlaneLogComponents: Output<List<String>>? = null

List of target components for which logs need to be collected. Supports apiserver, kcm and scheduler.

Link copied to clipboard
val controlPlaneLogProject: Output<String>? = null

Control plane log project. If this field is not set, a log service project named k8s-log-{ClusterID} will be automatically created.

Link copied to clipboard
val controlPlaneLogTtl: Output<String>? = null

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.

Link copied to clipboard
val cpuPolicy: Output<String>? = null

(Optional) Kubelet cpu policy. For Kubernetes 1.12.6 and later, its valid value is either static or none. Default to none.

Link copied to clipboard
val customSan: Output<String>? = null

Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).

Link copied to clipboard
val deletionProtection: Output<Boolean>? = null

Whether to enable cluster deletion protection.

Link copied to clipboard
val enableRrsa: Output<Boolean>? = null

Whether to enable cluster to support RRSA for 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.

Link copied to clipboard
val enableSsh: Output<Boolean>? = null

(Optional) Enable login to the node through SSH. Default to false.

Link copied to clipboard
val encryptionProviderKey: Output<String>? = null

The disk encryption key.

Link copied to clipboard
val excludeAutoscalerNodes: Output<Boolean>? = null

(Optional, Available in 1.88.0+) Exclude autoscaler nodes from worker_nodes. Default to false.

Link copied to clipboard
val imageId: Output<String>? = null

(Optional) Custom Image support. Must based on CentOS7 or AliyunLinux2.

Link copied to clipboard
val installCloudMonitor: Output<Boolean>? = null

(Optional) Install cloud monitor agent on ECS. Default is true in previous version. From provider version 1.208.0, the default value is false.

Link copied to clipboard
val isEnterpriseSecurityGroup: Output<Boolean>? = null

Enable to create advanced security group. default: false. See Advanced security group.

Link copied to clipboard
val keyName: Output<String>? = null

(Optional) The keypair of ssh login cluster node, you have to create it first. You have to specify one of password key_name kms_encrypted_password fields. From ersion 1.109.1, It is not necessary in the professional managed cluster.

Link copied to clipboard
val kmsEncryptedPassword: Output<String>? = null

(Optional, Available in 1.57.1+) An KMS encrypts password used to a cs kubernetes. You have to specify one of password key_name kms_encrypted_password fields.

Link copied to clipboard
val kmsEncryptionContext: Output<Map<String, Any>>? = null

(Optional, MapString, Available in 1.57.1+) An KMS encryption context used to decrypt kms_encrypted_password before creating or updating a cs kubernetes with kms_encrypted_password. See Encryption Context. It is valid when kms_encrypted_password is set.

Link copied to clipboard
val kubeConfig: Output<String>? = null

The path of kube config, like ~/.kube/config.

Link copied to clipboard
val loadBalancerSpec: Output<String>? = null

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.

Link copied to clipboard

The cluster maintenance window,effective only in the professional managed cluster. Managed node pool will use it. Detailed below.

Link copied to clipboard
val name: Output<String>? = null

This parameter specifies the name of the component.

Link copied to clipboard
val namePrefix: Output<String>? = null
Link copied to clipboard
val newNatGateway: Output<Boolean>? = null

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.

Link copied to clipboard
val nodeCidrMask: Output<Int>? = null

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

Link copied to clipboard
val nodeNameMode: Output<String>? = null

(Optional, Available in 1.88.0+) Each node name consists of a prefix, an IP substring, and a suffix, the input format is customized,<prefix>,IPSubStringLen,<suffix>. For example "customized,aliyun.com-,5,-test", if the node IP address is 192.168.59.176, the prefix is aliyun.com-, IP substring length is 5, and the suffix is -test, the node name will be aliyun.com-59176-test.

Link copied to clipboard
val nodePortRange: Output<String>? = null

(Optional, ForceNew, Available in 1.103.2+) The service port range of nodes, valid values: 30000 to 65535. Default to 30000-32767.

Link copied to clipboard
val osType: Output<String>? = null

(Optional, ForceNew, Available in 1.103.2+) The operating system of the nodes that run pods, its valid value is either Linux or Windows. Default to Linux.

Link copied to clipboard
val password: Output<String>? = null

(Optional, Sensitive) The password of ssh login cluster node. You have to specify one of password key_name kms_encrypted_password fields. From ersion 1.109.1, It is not necessary in the professional managed cluster.

Link copied to clipboard
val platform: Output<String>? = null

(Optional, ForceNew, Available in 1.103.2+) The architecture of the nodes that run pods, its valid value is either CentOS or AliyunLinux. Default to CentOS.

Link copied to clipboard
val podCidr: Output<String>? = null

Flannel Specific The CIDR block for the pod network when using Flannel.

Link copied to clipboard
val podVswitchIds: Output<List<String>>? = null

Terway Specific The vswitches for the pod network when using Terway.Be careful the pod_vswitch_ids can not equal to worker_vswitch_ids or master_vswitch_ids but must be in same availability zones.

Link copied to clipboard
val proxyMode: Output<String>? = null

Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.

Link copied to clipboard
val rdsInstances: Output<List<String>>? = null

(Optional, Available in 1.103.2+) RDS instance list, You can choose which RDS instances whitelist to add instances to.

Link copied to clipboard
val resourceGroupId: Output<String>? = null

The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.

Link copied to clipboard
val retainResources: Output<List<String>>? = null
Link copied to clipboard

(Optional, Available in v1.185.0+) Nested attribute containing RRSA related data for your cluster.

Link copied to clipboard

(Optional, Available in 1.103.2+) The runtime of containers. If you select another container runtime, see Comparison of Docker, containerd, and Sandboxed-Container. Detailed below.

Link copied to clipboard
val securityGroupId: Output<String>? = null

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.

Link copied to clipboard
val serviceAccountIssuer: Output<String>? = null

The issuer of the Service Account token for Service Account Token Volume Projection, 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.

Link copied to clipboard
val serviceCidr: Output<String>? = null

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.

Link copied to clipboard
val slbInternetEnabled: Output<Boolean>? = null

Whether to create internet load balancer for API Server. Default to true.

Link copied to clipboard
val tags: Output<Map<String, Any>>? = null

Default nil, A map of tags assigned to the kubernetes cluster and work nodes. Detailed below.

Link copied to clipboard
val taints: Output<List<ManagedKubernetesTaintArgs>>? = null

(Optional, Available in 1.103.2+) Taints ensure pods are not scheduled onto inappropriate nodes. One or more taints are applied to a node; this marks that the node should not accept any pods that do not tolerate the taints. For more information, see Taints and Tolerations. Detailed below.

Link copied to clipboard
val timezone: Output<String>? = null

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.

Link copied to clipboard
val userCa: Output<String>? = null

The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.

Link copied to clipboard
val userData: Output<String>? = null

(Optional, Available in 1.81.0+) Custom data that can execute on nodes. For more information, see Prepare user data.

Link copied to clipboard
val version: Output<String>? = null

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.

Link copied to clipboard
val workerAutoRenew: Output<Boolean>? = null

(Optional) Enable worker payment auto-renew, defaults to false.

Link copied to clipboard
val workerAutoRenewPeriod: Output<Int>? = null

Worker payment auto-renew period, it can be one of {1, 2, 3, 6, 12}.

Link copied to clipboard
val workerDataDiskCategory: Output<String>? = null

(Optional) The data disk category of worker, use worker_data_disks to instead it.

Link copied to clipboard

(Optional, Available in 1.91.0+) The data disk configurations of worker nodes, such as the disk type and disk size. Detailed below.

Link copied to clipboard
val workerDataDiskSize: Output<Int>? = null

(Optional) The data disk size of worker, use worker_data_disks to instead it.

Link copied to clipboard
val workerDiskCategory: Output<String>? = null

(Optional) The system disk category of worker node. Its valid value are cloud, cloud_ssd, cloud_essd and cloud_efficiency. Default to cloud_efficiency.

Link copied to clipboard
val workerDiskPerformanceLevel: Output<String>? = null

(Optional, Available in 1.120.0+) Worker node system disk performance level, when worker_disk_category values cloud_essd, the optional values are PL0, PL1, PL2 or PL3, but the specific performance level is related to the disk capacity. For more information, see Enhanced SSDs. Default is PL1.

Link copied to clipboard
val workerDiskSize: Output<Int>? = null

(Optional) The system disk size of worker node. Its valid value range 40~500 in GB.

Link copied to clipboard
val workerDiskSnapshotPolicyId: Output<String>? = null

(Optional, Available in 1.120.0+) Worker node system disk auto snapshot policy.

Link copied to clipboard
val workerInstanceChargeType: Output<String>? = null

(Optional) Worker payment type, its valid value is either or PostPaid or PrePaid. Defaults to PostPaid. If value is PrePaid, the files worker_period, worker_period_unit, worker_auto_renew and worker_auto_renew_period are required, default is PostPaid.

Link copied to clipboard
val workerInstanceTypes: Output<List<String>>? = null

(Optional) The instance type of worker node. Specify one type for single AZ Cluster, three types for MultiAZ Cluster. From version 1.109.1, It is not necessary in the professional managed cluster, but it is necessary in other types of clusters.

Link copied to clipboard
val workerNumber: Output<Int>? = null

(Optional) The worker node number of the kubernetes cluster. Default to 3. It is limited up to 50 and if you want to enlarge it, please apply white list or contact with us. From version 1.109.1, It is not necessary in the professional managed cluster, but it is necessary in other types of clusters.

Link copied to clipboard
val workerPeriod: Output<Int>? = null

(Optional) Worker payment period. The unit is Month. Its valid value is one of {1, 2, 3, 6, 12, 24, 36, 48, 60}.

Link copied to clipboard
val workerPeriodUnit: Output<String>? = null

(Optional) Worker payment period unit, the valid value is Month.

Link copied to clipboard
val workerVswitchIds: Output<List<String>>? = null

The vswitches used by control plane.