Alibaba Cloud v3.88.1 published on Saturday, Nov 8, 2025 by Pulumi
Alibaba Cloud v3.88.1 published on Saturday, Nov 8, 2025 by Pulumi
This data source provides metadata of kubernetes cluster addons.
NOTE: Available in 1.166.0+.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as std from "@pulumi/std";
const config = new pulumi.Config();
const name = config.get("name") || "terraform-example";
const _default = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const defaultNetwork = new alicloud.vpc.Network("default", {
vpcName: name,
cidrBlock: "10.4.0.0/16",
});
const defaultSwitch = new alicloud.vpc.Switch("default", {
vswitchName: name,
cidrBlock: "10.4.0.0/24",
vpcId: defaultNetwork.id,
zoneId: _default.then(_default => _default.zones?.[0]?.id),
});
const defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes("default", {
namePrefix: name,
clusterSpec: "ack.pro.small",
workerVswitchIds: [defaultSwitch.id],
newNatGateway: false,
podCidr: std.cidrsubnet({
input: "10.0.0.0/8",
newbits: 8,
netnum: 36,
}).then(invoke => invoke.result),
serviceCidr: std.cidrsubnet({
input: "172.16.0.0/16",
newbits: 4,
netnum: 7,
}).then(invoke => invoke.result),
slbInternetEnabled: true,
});
const clusterId = defaultManagedKubernetes.id;
const defaultGetKubernetesAddonMetadata = alicloud.cs.getKubernetesAddonMetadataOutput({
clusterId: clusterId,
name: "nginx-ingress-controller",
version: "v1.1.2-aliyun.2",
});
export const addonConfigSchema = defaultGetKubernetesAddonMetadata.apply(defaultGetKubernetesAddonMetadata => defaultGetKubernetesAddonMetadata.configSchema);
import pulumi
import pulumi_alicloud as alicloud
import pulumi_std as std
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "terraform-example"
default = alicloud.get_zones(available_resource_creation="VSwitch")
default_network = alicloud.vpc.Network("default",
vpc_name=name,
cidr_block="10.4.0.0/16")
default_switch = alicloud.vpc.Switch("default",
vswitch_name=name,
cidr_block="10.4.0.0/24",
vpc_id=default_network.id,
zone_id=default.zones[0].id)
default_managed_kubernetes = alicloud.cs.ManagedKubernetes("default",
name_prefix=name,
cluster_spec="ack.pro.small",
worker_vswitch_ids=[default_switch.id],
new_nat_gateway=False,
pod_cidr=std.cidrsubnet(input="10.0.0.0/8",
newbits=8,
netnum=36).result,
service_cidr=std.cidrsubnet(input="172.16.0.0/16",
newbits=4,
netnum=7).result,
slb_internet_enabled=True)
cluster_id = default_managed_kubernetes.id
default_get_kubernetes_addon_metadata = alicloud.cs.get_kubernetes_addon_metadata_output(cluster_id=cluster_id,
name="nginx-ingress-controller",
version="v1.1.2-aliyun.2")
pulumi.export("addonConfigSchema", default_get_kubernetes_addon_metadata.config_schema)
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "terraform-example"
if param := cfg.Get("name"); param != "" {
name = param
}
_default, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
defaultNetwork, err := vpc.NewNetwork(ctx, "default", &vpc.NetworkArgs{
VpcName: pulumi.String(name),
CidrBlock: pulumi.String("10.4.0.0/16"),
})
if err != nil {
return err
}
defaultSwitch, err := vpc.NewSwitch(ctx, "default", &vpc.SwitchArgs{
VswitchName: pulumi.String(name),
CidrBlock: pulumi.String("10.4.0.0/24"),
VpcId: defaultNetwork.ID(),
ZoneId: pulumi.String(_default.Zones[0].Id),
})
if err != nil {
return err
}
invokeCidrsubnet, err := std.Cidrsubnet(ctx, &std.CidrsubnetArgs{
Input: "10.0.0.0/8",
Newbits: 8,
Netnum: 36,
}, nil)
if err != nil {
return err
}
invokeCidrsubnet1, err := std.Cidrsubnet(ctx, &std.CidrsubnetArgs{
Input: "172.16.0.0/16",
Newbits: 4,
Netnum: 7,
}, nil)
if err != nil {
return err
}
defaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, "default", &cs.ManagedKubernetesArgs{
NamePrefix: pulumi.String(name),
ClusterSpec: pulumi.String("ack.pro.small"),
WorkerVswitchIds: pulumi.StringArray{
defaultSwitch.ID(),
},
NewNatGateway: pulumi.Bool(false),
PodCidr: pulumi.String(invokeCidrsubnet.Result),
ServiceCidr: pulumi.String(invokeCidrsubnet1.Result),
SlbInternetEnabled: pulumi.Bool(true),
})
if err != nil {
return err
}
clusterId := defaultManagedKubernetes.ID()
defaultGetKubernetesAddonMetadata := cs.GetKubernetesAddonMetadataOutput(ctx, cs.GetKubernetesAddonMetadataOutputArgs{
ClusterId: pulumi.String(clusterId),
Name: pulumi.String("nginx-ingress-controller"),
Version: pulumi.String("v1.1.2-aliyun.2"),
}, nil)
ctx.Export("addonConfigSchema", defaultGetKubernetesAddonMetadata.ApplyT(func(defaultGetKubernetesAddonMetadata cs.GetKubernetesAddonMetadataResult) (*string, error) {
return &defaultGetKubernetesAddonMetadata.ConfigSchema, nil
}).(pulumi.StringPtrOutput))
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "terraform-example";
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var defaultNetwork = new AliCloud.Vpc.Network("default", new()
{
VpcName = name,
CidrBlock = "10.4.0.0/16",
});
var defaultSwitch = new AliCloud.Vpc.Switch("default", new()
{
VswitchName = name,
CidrBlock = "10.4.0.0/24",
VpcId = defaultNetwork.Id,
ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
});
var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes("default", new()
{
NamePrefix = name,
ClusterSpec = "ack.pro.small",
WorkerVswitchIds = new[]
{
defaultSwitch.Id,
},
NewNatGateway = false,
PodCidr = Std.Cidrsubnet.Invoke(new()
{
Input = "10.0.0.0/8",
Newbits = 8,
Netnum = 36,
}).Apply(invoke => invoke.Result),
ServiceCidr = Std.Cidrsubnet.Invoke(new()
{
Input = "172.16.0.0/16",
Newbits = 4,
Netnum = 7,
}).Apply(invoke => invoke.Result),
SlbInternetEnabled = true,
});
var clusterId = defaultManagedKubernetes.Id;
var defaultGetKubernetesAddonMetadata = AliCloud.CS.GetKubernetesAddonMetadata.Invoke(new()
{
ClusterId = clusterId,
Name = "nginx-ingress-controller",
Version = "v1.1.2-aliyun.2",
});
return new Dictionary<string, object?>
{
["addonConfigSchema"] = defaultGetKubernetesAddonMetadata.Apply(getKubernetesAddonMetadataResult => getKubernetesAddonMetadataResult.ConfigSchema),
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.cs.ManagedKubernetes;
import com.pulumi.alicloud.cs.ManagedKubernetesArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.CidrsubnetArgs;
import com.pulumi.alicloud.cs.CsFunctions;
import com.pulumi.alicloud.cs.inputs.GetKubernetesAddonMetadataArgs;
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) {
final var config = ctx.config();
final var name = config.get("name").orElse("terraform-example");
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("10.4.0.0/16")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("10.4.0.0/24")
.vpcId(defaultNetwork.id())
.zoneId(default_.zones()[0].id())
.build());
var defaultManagedKubernetes = new ManagedKubernetes("defaultManagedKubernetes", ManagedKubernetesArgs.builder()
.namePrefix(name)
.clusterSpec("ack.pro.small")
.workerVswitchIds(defaultSwitch.id())
.newNatGateway(false)
.podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()
.input("10.0.0.0/8")
.newbits(8)
.netnum(36)
.build()).result())
.serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()
.input("172.16.0.0/16")
.newbits(4)
.netnum(7)
.build()).result())
.slbInternetEnabled(true)
.build());
final var clusterId = defaultManagedKubernetes.id();
final var defaultGetKubernetesAddonMetadata = CsFunctions.getKubernetesAddonMetadata(GetKubernetesAddonMetadataArgs.builder()
.clusterId(clusterId)
.name("nginx-ingress-controller")
.version("v1.1.2-aliyun.2")
.build());
ctx.export("addonConfigSchema", defaultGetKubernetesAddonMetadata.applyValue(_defaultGetKubernetesAddonMetadata -> _defaultGetKubernetesAddonMetadata.configSchema()));
}
}
configuration:
name:
type: string
default: terraform-example
resources:
defaultNetwork:
type: alicloud:vpc:Network
name: default
properties:
vpcName: ${name}
cidrBlock: 10.4.0.0/16
defaultSwitch:
type: alicloud:vpc:Switch
name: default
properties:
vswitchName: ${name}
cidrBlock: 10.4.0.0/24
vpcId: ${defaultNetwork.id}
zoneId: ${default.zones[0].id}
defaultManagedKubernetes:
type: alicloud:cs:ManagedKubernetes
name: default
properties:
namePrefix: ${name}
clusterSpec: ack.pro.small
workerVswitchIds:
- ${defaultSwitch.id}
newNatGateway: false
podCidr:
fn::invoke:
function: std:cidrsubnet
arguments:
input: 10.0.0.0/8
newbits: 8
netnum: 36
return: result
serviceCidr:
fn::invoke:
function: std:cidrsubnet
arguments:
input: 172.16.0.0/16
newbits: 4
netnum: 7
return: result
slbInternetEnabled: true
variables:
default:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch
defaultGetKubernetesAddonMetadata:
fn::invoke:
function: alicloud:cs:getKubernetesAddonMetadata
arguments:
clusterId: ${clusterId}
name: nginx-ingress-controller
version: v1.1.2-aliyun.2
clusterId: ${defaultManagedKubernetes.id}
outputs:
# Output addon configuration that can be customized
addonConfigSchema: ${defaultGetKubernetesAddonMetadata.configSchema}
Using getKubernetesAddonMetadata
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getKubernetesAddonMetadata(args: GetKubernetesAddonMetadataArgs, opts?: InvokeOptions): Promise<GetKubernetesAddonMetadataResult>
function getKubernetesAddonMetadataOutput(args: GetKubernetesAddonMetadataOutputArgs, opts?: InvokeOptions): Output<GetKubernetesAddonMetadataResult>def get_kubernetes_addon_metadata(cluster_id: Optional[str] = None,
name: Optional[str] = None,
version: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetKubernetesAddonMetadataResult
def get_kubernetes_addon_metadata_output(cluster_id: Optional[pulumi.Input[str]] = None,
name: Optional[pulumi.Input[str]] = None,
version: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetKubernetesAddonMetadataResult]func GetKubernetesAddonMetadata(ctx *Context, args *GetKubernetesAddonMetadataArgs, opts ...InvokeOption) (*GetKubernetesAddonMetadataResult, error)
func GetKubernetesAddonMetadataOutput(ctx *Context, args *GetKubernetesAddonMetadataOutputArgs, opts ...InvokeOption) GetKubernetesAddonMetadataResultOutput> Note: This function is named GetKubernetesAddonMetadata in the Go SDK.
public static class GetKubernetesAddonMetadata
{
public static Task<GetKubernetesAddonMetadataResult> InvokeAsync(GetKubernetesAddonMetadataArgs args, InvokeOptions? opts = null)
public static Output<GetKubernetesAddonMetadataResult> Invoke(GetKubernetesAddonMetadataInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetKubernetesAddonMetadataResult> getKubernetesAddonMetadata(GetKubernetesAddonMetadataArgs args, InvokeOptions options)
public static Output<GetKubernetesAddonMetadataResult> getKubernetesAddonMetadata(GetKubernetesAddonMetadataArgs args, InvokeOptions options)
fn::invoke:
function: alicloud:cs/getKubernetesAddonMetadata:getKubernetesAddonMetadata
arguments:
# arguments dictionaryThe following arguments are supported:
- cluster_
id str - The id of kubernetes cluster.
- name str
- The name of the cluster addon. You can get a list of available addons that the cluster can install by using data source
alicloud.cs.getKubernetesAddons. - version str
- The version of the cluster addon.
getKubernetesAddonMetadata Result
The following output properties are available:
- Cluster
Id string - Config
Schema string - The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- Version string
- Cluster
Id string - Config
Schema string - The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- Version string
- cluster
Id String - config
Schema String - The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- version String
- cluster
Id string - config
Schema string - The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- version string
- cluster_
id str - config_
schema str - The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- version str
- cluster
Id String - config
Schema String - The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- version String
Package Details
- Repository
- Alibaba Cloud pulumi/pulumi-alicloud
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
alicloudTerraform Provider.
Alibaba Cloud v3.88.1 published on Saturday, Nov 8, 2025 by Pulumi
