published on Wednesday, Mar 25, 2026 by tencentcloudstack
published on Wednesday, Mar 25, 2026 by tencentcloudstack
Provide a resource to configure addon that kubernetes comes with.
Example Usage
Update cluster-autoscaler addon
import * as pulumi from "@pulumi/pulumi";
import * as tencentcloud from "@pulumi/tencentcloud";
const example = new tencentcloud.KubernetesAddonConfig("example", {
clusterId: "cls-5yezvaxo",
addonName: "cluster-autoscaler",
rawValues: JSON.stringify({
autoDiscovery: {
labels: [{
"node.tke.cloud.tencent.com/autoscaling-enabled": "true",
}],
},
extraArgs: {
expander: "random",
"ignore-daemonsets-utilization": false,
"ignore-taint_1": "tke.cloud.tencent.com/direct-eni-unavailable",
"ignore-taint_2": "tke.cloud.tencent.com/eni-ip-unavailable",
"ignore-taint_3": "tke.cloud.tencent.com/uninitialized",
"ignore-taint_4": "tke.cloud.tencent.com/no-aia-ip",
"scale-down-unready-time": "20m0s",
"scale-down-utilization-threshold": 0.005,
"skip-nodes-with-local-storage": true,
"scale-down-delay-after-add": "10mm",
"scale-down-enabled": true,
"scale-down-unneeded-time": "10mm",
"skip-nodes-with-system-pods": true,
"max-empty-bulk-delete": 11,
"max-nodes-total": 5,
"max-total-unready-percentage": 33,
"ok-total-unready-count": 3,
},
image: {
repository: "ccr.ccs.tencentyun.com/tkeimages/cluster-autoscaler",
},
resources: {
limits: {
cpu: "2",
memory: "4Gi",
},
requests: {
cpu: "200m",
memory: "256Mi",
},
},
}),
});
import pulumi
import json
import pulumi_tencentcloud as tencentcloud
example = tencentcloud.KubernetesAddonConfig("example",
cluster_id="cls-5yezvaxo",
addon_name="cluster-autoscaler",
raw_values=json.dumps({
"autoDiscovery": {
"labels": [{
"node.tke.cloud.tencent.com/autoscaling-enabled": "true",
}],
},
"extraArgs": {
"expander": "random",
"ignore-daemonsets-utilization": False,
"ignore-taint_1": "tke.cloud.tencent.com/direct-eni-unavailable",
"ignore-taint_2": "tke.cloud.tencent.com/eni-ip-unavailable",
"ignore-taint_3": "tke.cloud.tencent.com/uninitialized",
"ignore-taint_4": "tke.cloud.tencent.com/no-aia-ip",
"scale-down-unready-time": "20m0s",
"scale-down-utilization-threshold": 0.005,
"skip-nodes-with-local-storage": True,
"scale-down-delay-after-add": "10mm",
"scale-down-enabled": True,
"scale-down-unneeded-time": "10mm",
"skip-nodes-with-system-pods": True,
"max-empty-bulk-delete": 11,
"max-nodes-total": 5,
"max-total-unready-percentage": 33,
"ok-total-unready-count": 3,
},
"image": {
"repository": "ccr.ccs.tencentyun.com/tkeimages/cluster-autoscaler",
},
"resources": {
"limits": {
"cpu": "2",
"memory": "4Gi",
},
"requests": {
"cpu": "200m",
"memory": "256Mi",
},
},
}))
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-terraform-provider/sdks/go/tencentcloud/tencentcloud"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal(map[string]interface{}{
"autoDiscovery": map[string]interface{}{
"labels": []map[string]interface{}{
map[string]interface{}{
"node.tke.cloud.tencent.com/autoscaling-enabled": "true",
},
},
},
"extraArgs": map[string]interface{}{
"expander": "random",
"ignore-daemonsets-utilization": false,
"ignore-taint_1": "tke.cloud.tencent.com/direct-eni-unavailable",
"ignore-taint_2": "tke.cloud.tencent.com/eni-ip-unavailable",
"ignore-taint_3": "tke.cloud.tencent.com/uninitialized",
"ignore-taint_4": "tke.cloud.tencent.com/no-aia-ip",
"scale-down-unready-time": "20m0s",
"scale-down-utilization-threshold": 0.005,
"skip-nodes-with-local-storage": true,
"scale-down-delay-after-add": "10mm",
"scale-down-enabled": true,
"scale-down-unneeded-time": "10mm",
"skip-nodes-with-system-pods": true,
"max-empty-bulk-delete": 11,
"max-nodes-total": 5,
"max-total-unready-percentage": 33,
"ok-total-unready-count": 3,
},
"image": map[string]interface{}{
"repository": "ccr.ccs.tencentyun.com/tkeimages/cluster-autoscaler",
},
"resources": map[string]interface{}{
"limits": map[string]interface{}{
"cpu": "2",
"memory": "4Gi",
},
"requests": map[string]interface{}{
"cpu": "200m",
"memory": "256Mi",
},
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = tencentcloud.NewKubernetesAddonConfig(ctx, "example", &tencentcloud.KubernetesAddonConfigArgs{
ClusterId: pulumi.String("cls-5yezvaxo"),
AddonName: pulumi.String("cluster-autoscaler"),
RawValues: pulumi.String(json0),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Tencentcloud = Pulumi.Tencentcloud;
return await Deployment.RunAsync(() =>
{
var example = new Tencentcloud.KubernetesAddonConfig("example", new()
{
ClusterId = "cls-5yezvaxo",
AddonName = "cluster-autoscaler",
RawValues = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["autoDiscovery"] = new Dictionary<string, object?>
{
["labels"] = new[]
{
new Dictionary<string, object?>
{
["node.tke.cloud.tencent.com/autoscaling-enabled"] = "true",
},
},
},
["extraArgs"] = new Dictionary<string, object?>
{
["expander"] = "random",
["ignore-daemonsets-utilization"] = false,
["ignore-taint_1"] = "tke.cloud.tencent.com/direct-eni-unavailable",
["ignore-taint_2"] = "tke.cloud.tencent.com/eni-ip-unavailable",
["ignore-taint_3"] = "tke.cloud.tencent.com/uninitialized",
["ignore-taint_4"] = "tke.cloud.tencent.com/no-aia-ip",
["scale-down-unready-time"] = "20m0s",
["scale-down-utilization-threshold"] = 0.005,
["skip-nodes-with-local-storage"] = true,
["scale-down-delay-after-add"] = "10mm",
["scale-down-enabled"] = true,
["scale-down-unneeded-time"] = "10mm",
["skip-nodes-with-system-pods"] = true,
["max-empty-bulk-delete"] = 11,
["max-nodes-total"] = 5,
["max-total-unready-percentage"] = 33,
["ok-total-unready-count"] = 3,
},
["image"] = new Dictionary<string, object?>
{
["repository"] = "ccr.ccs.tencentyun.com/tkeimages/cluster-autoscaler",
},
["resources"] = new Dictionary<string, object?>
{
["limits"] = new Dictionary<string, object?>
{
["cpu"] = "2",
["memory"] = "4Gi",
},
["requests"] = new Dictionary<string, object?>
{
["cpu"] = "200m",
["memory"] = "256Mi",
},
},
}),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.tencentcloud.KubernetesAddonConfig;
import com.pulumi.tencentcloud.KubernetesAddonConfigArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new KubernetesAddonConfig("example", KubernetesAddonConfigArgs.builder()
.clusterId("cls-5yezvaxo")
.addonName("cluster-autoscaler")
.rawValues(serializeJson(
jsonObject(
jsonProperty("autoDiscovery", jsonObject(
jsonProperty("labels", jsonArray(jsonObject(
jsonProperty("node.tke.cloud.tencent.com/autoscaling-enabled", "true")
)))
)),
jsonProperty("extraArgs", jsonObject(
jsonProperty("expander", "random"),
jsonProperty("ignore-daemonsets-utilization", false),
jsonProperty("ignore-taint_1", "tke.cloud.tencent.com/direct-eni-unavailable"),
jsonProperty("ignore-taint_2", "tke.cloud.tencent.com/eni-ip-unavailable"),
jsonProperty("ignore-taint_3", "tke.cloud.tencent.com/uninitialized"),
jsonProperty("ignore-taint_4", "tke.cloud.tencent.com/no-aia-ip"),
jsonProperty("scale-down-unready-time", "20m0s"),
jsonProperty("scale-down-utilization-threshold", 0.005),
jsonProperty("skip-nodes-with-local-storage", true),
jsonProperty("scale-down-delay-after-add", "10mm"),
jsonProperty("scale-down-enabled", true),
jsonProperty("scale-down-unneeded-time", "10mm"),
jsonProperty("skip-nodes-with-system-pods", true),
jsonProperty("max-empty-bulk-delete", 11),
jsonProperty("max-nodes-total", 5),
jsonProperty("max-total-unready-percentage", 33),
jsonProperty("ok-total-unready-count", 3)
)),
jsonProperty("image", jsonObject(
jsonProperty("repository", "ccr.ccs.tencentyun.com/tkeimages/cluster-autoscaler")
)),
jsonProperty("resources", jsonObject(
jsonProperty("limits", jsonObject(
jsonProperty("cpu", "2"),
jsonProperty("memory", "4Gi")
)),
jsonProperty("requests", jsonObject(
jsonProperty("cpu", "200m"),
jsonProperty("memory", "256Mi")
))
))
)))
.build());
}
}
resources:
example:
type: tencentcloud:KubernetesAddonConfig
properties:
clusterId: cls-5yezvaxo
addonName: cluster-autoscaler
rawValues:
fn::toJSON:
autoDiscovery:
labels:
- node.tke.cloud.tencent.com/autoscaling-enabled: 'true'
extraArgs:
expander: random
ignore-daemonsets-utilization: false
ignore-taint_1: tke.cloud.tencent.com/direct-eni-unavailable
ignore-taint_2: tke.cloud.tencent.com/eni-ip-unavailable
ignore-taint_3: tke.cloud.tencent.com/uninitialized
ignore-taint_4: tke.cloud.tencent.com/no-aia-ip
scale-down-unready-time: 20m0s
scale-down-utilization-threshold: 0.005
skip-nodes-with-local-storage: true
scale-down-delay-after-add: 10mm
scale-down-enabled: true
scale-down-unneeded-time: 10mm
skip-nodes-with-system-pods: true
max-empty-bulk-delete: 11
max-nodes-total: 5
max-total-unready-percentage: 33
ok-total-unready-count: 3
image:
repository: ccr.ccs.tencentyun.com/tkeimages/cluster-autoscaler
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 200m
memory: 256Mi
Create KubernetesAddonConfig Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new KubernetesAddonConfig(name: string, args: KubernetesAddonConfigArgs, opts?: CustomResourceOptions);@overload
def KubernetesAddonConfig(resource_name: str,
args: KubernetesAddonConfigArgs,
opts: Optional[ResourceOptions] = None)
@overload
def KubernetesAddonConfig(resource_name: str,
opts: Optional[ResourceOptions] = None,
addon_name: Optional[str] = None,
cluster_id: Optional[str] = None,
addon_version: Optional[str] = None,
kubernetes_addon_config_id: Optional[str] = None,
raw_values: Optional[str] = None)func NewKubernetesAddonConfig(ctx *Context, name string, args KubernetesAddonConfigArgs, opts ...ResourceOption) (*KubernetesAddonConfig, error)public KubernetesAddonConfig(string name, KubernetesAddonConfigArgs args, CustomResourceOptions? opts = null)
public KubernetesAddonConfig(String name, KubernetesAddonConfigArgs args)
public KubernetesAddonConfig(String name, KubernetesAddonConfigArgs args, CustomResourceOptions options)
type: tencentcloud:KubernetesAddonConfig
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 KubernetesAddonConfigArgs
- 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 KubernetesAddonConfigArgs
- 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 KubernetesAddonConfigArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args KubernetesAddonConfigArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args KubernetesAddonConfigArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
KubernetesAddonConfig 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 KubernetesAddonConfig resource accepts the following input properties:
- Addon
Name string - Name of addon.
- Cluster
Id string - ID of cluster.
- Addon
Version string - Version of addon.
- Kubernetes
Addon stringConfig Id - ID of the resource.
- Raw
Values string - Params of addon, base64 encoded json format.
- Addon
Name string - Name of addon.
- Cluster
Id string - ID of cluster.
- Addon
Version string - Version of addon.
- Kubernetes
Addon stringConfig Id - ID of the resource.
- Raw
Values string - Params of addon, base64 encoded json format.
- addon
Name String - Name of addon.
- cluster
Id String - ID of cluster.
- addon
Version String - Version of addon.
- kubernetes
Addon StringConfig Id - ID of the resource.
- raw
Values String - Params of addon, base64 encoded json format.
- addon
Name string - Name of addon.
- cluster
Id string - ID of cluster.
- addon
Version string - Version of addon.
- kubernetes
Addon stringConfig Id - ID of the resource.
- raw
Values string - Params of addon, base64 encoded json format.
- addon_
name str - Name of addon.
- cluster_
id str - ID of cluster.
- addon_
version str - Version of addon.
- kubernetes_
addon_ strconfig_ id - ID of the resource.
- raw_
values str - Params of addon, base64 encoded json format.
- addon
Name String - Name of addon.
- cluster
Id String - ID of cluster.
- addon
Version String - Version of addon.
- kubernetes
Addon StringConfig Id - ID of the resource.
- raw
Values String - Params of addon, base64 encoded json format.
Outputs
All input properties are implicitly available as output properties. Additionally, the KubernetesAddonConfig resource produces the following output properties:
Look up Existing KubernetesAddonConfig Resource
Get an existing KubernetesAddonConfig 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?: KubernetesAddonConfigState, opts?: CustomResourceOptions): KubernetesAddonConfig@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
addon_name: Optional[str] = None,
addon_version: Optional[str] = None,
cluster_id: Optional[str] = None,
kubernetes_addon_config_id: Optional[str] = None,
phase: Optional[str] = None,
raw_values: Optional[str] = None,
reason: Optional[str] = None) -> KubernetesAddonConfigfunc GetKubernetesAddonConfig(ctx *Context, name string, id IDInput, state *KubernetesAddonConfigState, opts ...ResourceOption) (*KubernetesAddonConfig, error)public static KubernetesAddonConfig Get(string name, Input<string> id, KubernetesAddonConfigState? state, CustomResourceOptions? opts = null)public static KubernetesAddonConfig get(String name, Output<String> id, KubernetesAddonConfigState state, CustomResourceOptions options)resources: _: type: tencentcloud:KubernetesAddonConfig 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.
- Addon
Name string - Name of addon.
- Addon
Version string - Version of addon.
- Cluster
Id string - ID of cluster.
- Kubernetes
Addon stringConfig Id - ID of the resource.
- Phase string
- Status of addon.
- Raw
Values string - Params of addon, base64 encoded json format.
- Reason string
- Reason of addon failed.
- Addon
Name string - Name of addon.
- Addon
Version string - Version of addon.
- Cluster
Id string - ID of cluster.
- Kubernetes
Addon stringConfig Id - ID of the resource.
- Phase string
- Status of addon.
- Raw
Values string - Params of addon, base64 encoded json format.
- Reason string
- Reason of addon failed.
- addon
Name String - Name of addon.
- addon
Version String - Version of addon.
- cluster
Id String - ID of cluster.
- kubernetes
Addon StringConfig Id - ID of the resource.
- phase String
- Status of addon.
- raw
Values String - Params of addon, base64 encoded json format.
- reason String
- Reason of addon failed.
- addon
Name string - Name of addon.
- addon
Version string - Version of addon.
- cluster
Id string - ID of cluster.
- kubernetes
Addon stringConfig Id - ID of the resource.
- phase string
- Status of addon.
- raw
Values string - Params of addon, base64 encoded json format.
- reason string
- Reason of addon failed.
- addon_
name str - Name of addon.
- addon_
version str - Version of addon.
- cluster_
id str - ID of cluster.
- kubernetes_
addon_ strconfig_ id - ID of the resource.
- phase str
- Status of addon.
- raw_
values str - Params of addon, base64 encoded json format.
- reason str
- Reason of addon failed.
- addon
Name String - Name of addon.
- addon
Version String - Version of addon.
- cluster
Id String - ID of cluster.
- kubernetes
Addon StringConfig Id - ID of the resource.
- phase String
- Status of addon.
- raw
Values String - Params of addon, base64 encoded json format.
- reason String
- Reason of addon failed.
Import
kubernetes cluster addon config can be imported using the clusterId#addonName, e.g.
$ pulumi import tencentcloud:index/kubernetesAddonConfig:KubernetesAddonConfig example cls-5yezvaxo#cluster-autoscaler
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- tencentcloud tencentcloudstack/terraform-provider-tencentcloud
- License
- Notes
- This Pulumi package is based on the
tencentcloudTerraform Provider.
published on Wednesday, Mar 25, 2026 by tencentcloudstack
