1. Packages
  2. Alibaba Cloud Provider
  3. API Docs
  4. cs
  5. getKubernetesAddonMetadata
Alibaba Cloud v3.85.0 published on Tuesday, Sep 9, 2025 by Pulumi

alicloud.cs.getKubernetesAddonMetadata

Explore with Pulumi AI

alicloud logo
Alibaba Cloud v3.85.0 published on Tuesday, Sep 9, 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 dictionary

    The following arguments are supported:

    ClusterId string
    The id of kubernetes cluster.
    Name string
    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 string
    The version of the cluster addon.
    ClusterId string
    The id of kubernetes cluster.
    Name string
    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 string
    The version of the cluster addon.
    clusterId String
    The id of kubernetes cluster.
    name String
    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 String
    The version of the cluster addon.
    clusterId string
    The id of kubernetes cluster.
    name string
    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 string
    The version of the cluster addon.
    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.
    clusterId String
    The id of kubernetes cluster.
    name String
    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 String
    The version of the cluster addon.

    getKubernetesAddonMetadata Result

    The following output properties are available:

    ClusterId string
    ConfigSchema 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
    ClusterId string
    ConfigSchema 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
    clusterId String
    configSchema 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
    clusterId string
    configSchema 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
    clusterId String
    configSchema 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 alicloud Terraform Provider.
    alicloud logo
    Alibaba Cloud v3.85.0 published on Tuesday, Sep 9, 2025 by Pulumi