1. Packages
  2. ArgoCD
  3. API Docs
  4. Cluster
Argo CD v1.0.1 published on Friday, Feb 21, 2025 by Three141

argocd.Cluster

Explore with Pulumi AI

argocd logo
Argo CD v1.0.1 published on Friday, Feb 21, 2025 by Three141

    Manages clusters within ArgoCD.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as argocd from "@three14/pulumi-argocd";
    import * as aws from "@pulumi/aws";
    import * as gcp from "@pulumi/gcp";
    import * as kubernetes from "@pulumi/kubernetes";
    import * as std from "@pulumi/std";
    
    //# Bearer token Authentication
    const kubernetes = new argocd.Cluster("kubernetes", {
        server: "https://1.2.3.4:12345",
        config: {
            bearerToken: "eyJhbGciOiJSUzI...",
            tlsClientConfig: {
                caData: std.file({
                    input: "path/to/ca.pem",
                }).then(invoke => invoke.result),
            },
        },
    });
    //# GCP GKE cluster
    const cluster = gcp.container.getCluster({
        name: "cluster",
        location: "europe-west1",
    });
    const argocdManager = new kubernetes.core.v1.ServiceAccount("argocd_manager", {metadata: {
        name: "argocd-manager",
        namespace: "kube-system",
    }});
    const argocdManagerClusterRole = new kubernetes.rbac.v1.ClusterRole("argocd_manager", {
        metadata: {
            name: "argocd-manager-role",
        },
        rules: [
            {
                apiGroups: ["*"],
                resources: ["*"],
                verbs: ["*"],
            },
            {
                nonResourceUrls: ["*"],
                verbs: ["*"],
            },
        ],
    });
    const argocdManagerClusterRoleBinding = new kubernetes.rbac.v1.ClusterRoleBinding("argocd_manager", {
        metadata: {
            name: "argocd-manager-role-binding",
        },
        roleRef: {
            apiGroup: "rbac.authorization.k8s.io",
            kind: "ClusterRole",
            name: argocdManagerClusterRole.metadata.apply(metadata => metadata.name),
        },
        subjects: [{
            kind: "ServiceAccount",
            name: argocdManager.metadata.apply(metadata => metadata.name),
            namespace: argocdManager.metadata.apply(metadata => metadata.namespace),
        }],
    });
    const argocdManagerSecret = new kubernetes.core.v1.Secret("argocd_manager", {metadata: {
        name: argocdManager.defaultSecretName,
        namespace: argocdManager.metadata.apply(metadata => metadata.namespace),
    }});
    const gke = new argocd.Cluster("gke", {
        server: cluster.then(cluster => std.join({
            separator: "",
            input: [
                "https://%s",
                cluster.endpoint,
            ],
        })).then(invoke => invoke.result),
        name: "gke",
        config: {
            bearerToken: argocdManagerKubernetesSecret.data.token,
            tlsClientConfig: {
                caData: cluster.then(cluster => std.base64decode({
                    input: cluster.masterAuths?.[0]?.clusterCaCertificate,
                })).then(invoke => invoke.result),
            },
        },
    });
    //# AWS EKS cluster
    const clusterGetCluster = aws.eks.getCluster({
        name: "cluster",
    });
    const eks = new argocd.Cluster("eks", {
        server: clusterGetCluster.then(clusterGetCluster => std.join({
            separator: "",
            input: [
                "https://%s",
                clusterGetCluster.endpoint,
            ],
        })).then(invoke => invoke.result),
        name: "eks",
        namespaces: [
            "default",
            "optional",
        ],
        config: {
            awsAuthConfigs: [{
                clusterName: "myekscluster",
                roleArn: "arn:aws:iam::<123456789012>:role/<role-name>",
            }],
            tlsClientConfig: {
                caData: clusterGetCluster.then(clusterGetCluster => std.base64decode({
                    input: clusterGetCluster.certificateAuthorities?.[0]?.data,
                })).then(invoke => invoke.result),
            },
        },
    });
    
    import pulumi
    import pulumi_argocd as argocd
    import pulumi_aws as aws
    import pulumi_gcp as gcp
    import pulumi_kubernetes as kubernetes
    import pulumi_std as std
    
    ## Bearer token Authentication
    kubernetes = argocd.Cluster("kubernetes",
        server="https://1.2.3.4:12345",
        config={
            "bearer_token": "eyJhbGciOiJSUzI...",
            "tls_client_config": {
                "ca_data": std.file(input="path/to/ca.pem").result,
            },
        })
    ## GCP GKE cluster
    cluster = gcp.container.get_cluster(name="cluster",
        location="europe-west1")
    argocd_manager = kubernetes.core.v1.ServiceAccount("argocd_manager", metadata={
        "name": "argocd-manager",
        "namespace": "kube-system",
    })
    argocd_manager_cluster_role = kubernetes.rbac.v1.ClusterRole("argocd_manager",
        metadata={
            "name": "argocd-manager-role",
        },
        rules=[
            {
                "api_groups": ["*"],
                "resources": ["*"],
                "verbs": ["*"],
            },
            {
                "non_resource_urls": ["*"],
                "verbs": ["*"],
            },
        ])
    argocd_manager_cluster_role_binding = kubernetes.rbac.v1.ClusterRoleBinding("argocd_manager",
        metadata={
            "name": "argocd-manager-role-binding",
        },
        role_ref={
            "api_group": "rbac.authorization.k8s.io",
            "kind": "ClusterRole",
            "name": argocd_manager_cluster_role.metadata.name,
        },
        subjects=[{
            "kind": "ServiceAccount",
            "name": argocd_manager.metadata.name,
            "namespace": argocd_manager.metadata.namespace,
        }])
    argocd_manager_secret = kubernetes.core.v1.Secret("argocd_manager", metadata={
        "name": argocd_manager.default_secret_name,
        "namespace": argocd_manager.metadata.namespace,
    })
    gke = argocd.Cluster("gke",
        server=std.join(separator="",
            input=[
                "https://%s",
                cluster.endpoint,
            ]).result,
        name="gke",
        config={
            "bearer_token": argocd_manager_kubernetes_secret["data"]["token"],
            "tls_client_config": {
                "ca_data": std.base64decode(input=cluster.master_auths[0].cluster_ca_certificate).result,
            },
        })
    ## AWS EKS cluster
    cluster_get_cluster = aws.eks.get_cluster(name="cluster")
    eks = argocd.Cluster("eks",
        server=std.join(separator="",
            input=[
                "https://%s",
                cluster_get_cluster.endpoint,
            ]).result,
        name="eks",
        namespaces=[
            "default",
            "optional",
        ],
        config={
            "aws_auth_configs": [{
                "cluster_name": "myekscluster",
                "role_arn": "arn:aws:iam::<123456789012>:role/<role-name>",
            }],
            "tls_client_config": {
                "ca_data": std.base64decode(input=cluster_get_cluster.certificate_authorities[0].data).result,
            },
        })
    
    package main
    
    import (
    	"github.com/Three141/pulumi-argocd/sdk/go/argocd"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/container"
    	corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1"
    	metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1"
    	rbacv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/rbac/v1"
    	"github.com/pulumi/pulumi-std/sdk/go/std"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		invokeFile, err := std.File(ctx, &std.FileArgs{
    			Input: "path/to/ca.pem",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		// # Bearer token Authentication
    		_, err = argocd.NewCluster(ctx, "kubernetes", &argocd.ClusterArgs{
    			Server: pulumi.String("https://1.2.3.4:12345"),
    			Config: &argocd.ClusterConfigArgs{
    				BearerToken: pulumi.String("eyJhbGciOiJSUzI..."),
    				TlsClientConfig: &argocd.ClusterConfigTlsClientConfigArgs{
    					CaData: pulumi.String(invokeFile.Result),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # GCP GKE cluster
    		cluster, err := container.LookupCluster(ctx, &container.LookupClusterArgs{
    			Name:     "cluster",
    			Location: pulumi.StringRef("europe-west1"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		argocdManager, err := corev1.NewServiceAccount(ctx, "argocd_manager", &corev1.ServiceAccountArgs{
    			Metadata: &metav1.ObjectMetaArgs{
    				Name:      pulumi.String("argocd-manager"),
    				Namespace: pulumi.String("kube-system"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		argocdManagerClusterRole, err := rbacv1.NewClusterRole(ctx, "argocd_manager", &rbacv1.ClusterRoleArgs{
    			Metadata: &metav1.ObjectMetaArgs{
    				Name: pulumi.String("argocd-manager-role"),
    			},
    			Rules: rbacv1.PolicyRuleArray{
    				&rbacv1.PolicyRuleArgs{
    					ApiGroups: pulumi.StringArray{
    						pulumi.String("*"),
    					},
    					Resources: pulumi.StringArray{
    						pulumi.String("*"),
    					},
    					Verbs: pulumi.StringArray{
    						pulumi.String("*"),
    					},
    				},
    				&rbacv1.PolicyRuleArgs{
    					NonResourceUrls: pulumi.StringArray{
    						pulumi.String("*"),
    					},
    					Verbs: pulumi.StringArray{
    						pulumi.String("*"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = rbacv1.NewClusterRoleBinding(ctx, "argocd_manager", &rbacv1.ClusterRoleBindingArgs{
    			Metadata: &metav1.ObjectMetaArgs{
    				Name: pulumi.String("argocd-manager-role-binding"),
    			},
    			RoleRef: &rbacv1.RoleRefArgs{
    				ApiGroup: pulumi.String("rbac.authorization.k8s.io"),
    				Kind:     pulumi.String("ClusterRole"),
    				Name: argocdManagerClusterRole.Metadata.ApplyT(func(metadata metav1.ObjectMeta) (*string, error) {
    					return &metadata.Name, nil
    				}).(pulumi.StringPtrOutput),
    			},
    			Subjects: rbacv1.SubjectArray{
    				&rbacv1.SubjectArgs{
    					Kind: pulumi.String("ServiceAccount"),
    					Name: argocdManager.Metadata.ApplyT(func(metadata metav1.ObjectMeta) (*string, error) {
    						return &metadata.Name, nil
    					}).(pulumi.StringPtrOutput),
    					Namespace: argocdManager.Metadata.ApplyT(func(metadata metav1.ObjectMeta) (*string, error) {
    						return &metadata.Namespace, nil
    					}).(pulumi.StringPtrOutput),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = corev1.NewSecret(ctx, "argocd_manager", &corev1.SecretArgs{
    			Metadata: &metav1.ObjectMetaArgs{
    				Name: argocdManager.DefaultSecretName,
    				Namespace: argocdManager.Metadata.ApplyT(func(metadata metav1.ObjectMeta) (*string, error) {
    					return &metadata.Namespace, nil
    				}).(pulumi.StringPtrOutput),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		invokeJoin1, err := std.Join(ctx, &std.JoinArgs{
    			Separator: "",
    			Input: []interface{}{
    				"https://%s",
    				cluster.Endpoint,
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		invokeBase64decode2, err := std.Base64decode(ctx, &std.Base64decodeArgs{
    			Input: cluster.MasterAuths[0].ClusterCaCertificate,
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = argocd.NewCluster(ctx, "gke", &argocd.ClusterArgs{
    			Server: pulumi.String(invokeJoin1.Result),
    			Name:   pulumi.String("gke"),
    			Config: &argocd.ClusterConfigArgs{
    				BearerToken: pulumi.Any(argocdManagerKubernetesSecret.Data.Token),
    				TlsClientConfig: &argocd.ClusterConfigTlsClientConfigArgs{
    					CaData: pulumi.String(invokeBase64decode2.Result),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # AWS EKS cluster
    		clusterGetCluster, err := eks.LookupCluster(ctx, &eks.LookupClusterArgs{
    			Name: "cluster",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		invokeJoin3, err := std.Join(ctx, &std.JoinArgs{
    			Separator: "",
    			Input: []interface{}{
    				"https://%s",
    				clusterGetCluster.Endpoint,
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		invokeBase64decode4, err := std.Base64decode(ctx, &std.Base64decodeArgs{
    			Input: clusterGetCluster.CertificateAuthorities[0].Data,
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = argocd.NewCluster(ctx, "eks", &argocd.ClusterArgs{
    			Server: pulumi.String(invokeJoin3.Result),
    			Name:   pulumi.String("eks"),
    			Namespaces: pulumi.StringArray{
    				pulumi.String("default"),
    				pulumi.String("optional"),
    			},
    			Config: &argocd.ClusterConfigArgs{
    				AwsAuthConfigs: argocd.ClusterConfigAwsAuthConfigArray{
    					&argocd.ClusterConfigAwsAuthConfigArgs{
    						ClusterName: pulumi.String("myekscluster"),
    						RoleArn:     pulumi.String("arn:aws:iam::<123456789012>:role/<role-name>"),
    					},
    				},
    				TlsClientConfig: &argocd.ClusterConfigTlsClientConfigArgs{
    					CaData: pulumi.String(invokeBase64decode4.Result),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Argocd = Three14.Argocd;
    using Aws = Pulumi.Aws;
    using Gcp = Pulumi.Gcp;
    using Kubernetes = Pulumi.Kubernetes;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        //# Bearer token Authentication
        var kubernetes = new Argocd.Cluster("kubernetes", new()
        {
            Server = "https://1.2.3.4:12345",
            Config = new Argocd.Inputs.ClusterConfigArgs
            {
                BearerToken = "eyJhbGciOiJSUzI...",
                TlsClientConfig = new Argocd.Inputs.ClusterConfigTlsClientConfigArgs
                {
                    CaData = Std.File.Invoke(new()
                    {
                        Input = "path/to/ca.pem",
                    }).Apply(invoke => invoke.Result),
                },
            },
        });
    
        //# GCP GKE cluster
        var cluster = Gcp.Container.GetCluster.Invoke(new()
        {
            Name = "cluster",
            Location = "europe-west1",
        });
    
        var argocdManager = new Kubernetes.Core.V1.ServiceAccount("argocd_manager", new()
        {
            Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
            {
                Name = "argocd-manager",
                Namespace = "kube-system",
            },
        });
    
        var argocdManagerClusterRole = new Kubernetes.Rbac.V1.ClusterRole("argocd_manager", new()
        {
            Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
            {
                Name = "argocd-manager-role",
            },
            Rules = new[]
            {
                new Kubernetes.Types.Inputs.Rbac.V1.PolicyRuleArgs
                {
                    ApiGroups = new[]
                    {
                        "*",
                    },
                    Resources = new[]
                    {
                        "*",
                    },
                    Verbs = new[]
                    {
                        "*",
                    },
                },
                new Kubernetes.Types.Inputs.Rbac.V1.PolicyRuleArgs
                {
                    NonResourceUrls = new[]
                    {
                        "*",
                    },
                    Verbs = new[]
                    {
                        "*",
                    },
                },
            },
        });
    
        var argocdManagerClusterRoleBinding = new Kubernetes.Rbac.V1.ClusterRoleBinding("argocd_manager", new()
        {
            Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
            {
                Name = "argocd-manager-role-binding",
            },
            RoleRef = new Kubernetes.Types.Inputs.Rbac.V1.RoleRefArgs
            {
                ApiGroup = "rbac.authorization.k8s.io",
                Kind = "ClusterRole",
                Name = argocdManagerClusterRole.Metadata.Apply(metadata => metadata.Name),
            },
            Subjects = new[]
            {
                new Kubernetes.Types.Inputs.Rbac.V1.SubjectArgs
                {
                    Kind = "ServiceAccount",
                    Name = argocdManager.Metadata.Apply(metadata => metadata.Name),
                    Namespace = argocdManager.Metadata.Apply(metadata => metadata.Namespace),
                },
            },
        });
    
        var argocdManagerSecret = new Kubernetes.Core.V1.Secret("argocd_manager", new()
        {
            Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
            {
                Name = argocdManager.DefaultSecretName,
                Namespace = argocdManager.Metadata.Apply(metadata => metadata.Namespace),
            },
        });
    
        var gke = new Argocd.Cluster("gke", new()
        {
            Server = Std.Join.Invoke(new()
            {
                Separator = "",
                Input = new[]
                {
                    "https://%s",
                    cluster.Apply(getClusterResult => getClusterResult.Endpoint),
                },
            }).Apply(invoke => invoke.Result),
            Name = "gke",
            Config = new Argocd.Inputs.ClusterConfigArgs
            {
                BearerToken = argocdManagerKubernetesSecret.Data.Token,
                TlsClientConfig = new Argocd.Inputs.ClusterConfigTlsClientConfigArgs
                {
                    CaData = Std.Base64decode.Invoke(new()
                    {
                        Input = cluster.Apply(getClusterResult => getClusterResult.MasterAuths[0]?.ClusterCaCertificate),
                    }).Apply(invoke => invoke.Result),
                },
            },
        });
    
        //# AWS EKS cluster
        var clusterGetCluster = Aws.Eks.GetCluster.Invoke(new()
        {
            Name = "cluster",
        });
    
        var eks = new Argocd.Cluster("eks", new()
        {
            Server = Std.Join.Invoke(new()
            {
                Separator = "",
                Input = new[]
                {
                    "https://%s",
                    clusterGetCluster.Apply(getClusterResult => getClusterResult.Endpoint),
                },
            }).Apply(invoke => invoke.Result),
            Name = "eks",
            Namespaces = new[]
            {
                "default",
                "optional",
            },
            Config = new Argocd.Inputs.ClusterConfigArgs
            {
                AwsAuthConfigs = new[]
                {
                    new Argocd.Inputs.ClusterConfigAwsAuthConfigArgs
                    {
                        ClusterName = "myekscluster",
                        RoleArn = "arn:aws:iam::<123456789012>:role/<role-name>",
                    },
                },
                TlsClientConfig = new Argocd.Inputs.ClusterConfigTlsClientConfigArgs
                {
                    CaData = Std.Base64decode.Invoke(new()
                    {
                        Input = clusterGetCluster.Apply(getClusterResult => getClusterResult.CertificateAuthorities[0]?.Data),
                    }).Apply(invoke => invoke.Result),
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.argocd.Cluster;
    import com.pulumi.argocd.ClusterArgs;
    import com.pulumi.argocd.inputs.ClusterConfigArgs;
    import com.pulumi.argocd.inputs.ClusterConfigTlsClientConfigArgs;
    import com.pulumi.gcp.container.ContainerFunctions;
    import com.pulumi.gcp.container.inputs.GetClusterArgs;
    import com.pulumi.kubernetes.core_v1.ServiceAccount;
    import com.pulumi.kubernetes.core_v1.ServiceAccountArgs;
    import com.pulumi.kubernetes.meta_v1.inputs.ObjectMetaArgs;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.ClusterRole;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.ClusterRoleArgs;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.inputs.PolicyRuleArgs;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.ClusterRoleBinding;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.ClusterRoleBindingArgs;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.inputs.RoleRefArgs;
    import com.pulumi.kubernetes.rbac.authorization.k8s.io_v1.inputs.SubjectArgs;
    import com.pulumi.kubernetes.core_v1.Secret;
    import com.pulumi.kubernetes.core_v1.SecretArgs;
    import com.pulumi.aws.eks.EksFunctions;
    import com.pulumi.aws.eks.inputs.GetClusterArgs;
    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) {
            //# Bearer token Authentication
            var kubernetes = new Cluster("kubernetes", ClusterArgs.builder()
                .server("https://1.2.3.4:12345")
                .config(ClusterConfigArgs.builder()
                    .bearerToken("eyJhbGciOiJSUzI...")
                    .tlsClientConfig(ClusterConfigTlsClientConfigArgs.builder()
                        .caData(StdFunctions.file(FileArgs.builder()
                            .input("path/to/ca.pem")
                            .build()).result())
                        .build())
                    .build())
                .build());
    
            //# GCP GKE cluster
            final var cluster = ContainerFunctions.getCluster(GetClusterArgs.builder()
                .name("cluster")
                .location("europe-west1")
                .build());
    
            var argocdManager = new ServiceAccount("argocdManager", ServiceAccountArgs.builder()
                .metadata(ObjectMetaArgs.builder()
                    .name("argocd-manager")
                    .namespace("kube-system")
                    .build())
                .build());
    
            var argocdManagerClusterRole = new ClusterRole("argocdManagerClusterRole", ClusterRoleArgs.builder()
                .metadata(ObjectMetaArgs.builder()
                    .name("argocd-manager-role")
                    .build())
                .rules(            
                    PolicyRuleArgs.builder()
                        .apiGroups("*")
                        .resources("*")
                        .verbs("*")
                        .build(),
                    PolicyRuleArgs.builder()
                        .nonResourceUrls("*")
                        .verbs("*")
                        .build())
                .build());
    
            var argocdManagerClusterRoleBinding = new ClusterRoleBinding("argocdManagerClusterRoleBinding", ClusterRoleBindingArgs.builder()
                .metadata(ObjectMetaArgs.builder()
                    .name("argocd-manager-role-binding")
                    .build())
                .roleRef(RoleRefArgs.builder()
                    .apiGroup("rbac.authorization.k8s.io")
                    .kind("ClusterRole")
                    .name(argocdManagerClusterRole.metadata().applyValue(metadata -> metadata.name()))
                    .build())
                .subjects(SubjectArgs.builder()
                    .kind("ServiceAccount")
                    .name(argocdManager.metadata().applyValue(metadata -> metadata.name()))
                    .namespace(argocdManager.metadata().applyValue(metadata -> metadata.namespace()))
                    .build())
                .build());
    
            var argocdManagerSecret = new Secret("argocdManagerSecret", SecretArgs.builder()
                .metadata(ObjectMetaArgs.builder()
                    .name(argocdManager.defaultSecretName())
                    .namespace(argocdManager.metadata().applyValue(metadata -> metadata.namespace()))
                    .build())
                .build());
    
            var gke = new Cluster("gke", ClusterArgs.builder()
                .server(StdFunctions.join(JoinArgs.builder()
                    .separator("")
                    .input(                
                        "https://%s",
                        cluster.applyValue(getClusterResult -> getClusterResult.endpoint()))
                    .build()).result())
                .name("gke")
                .config(ClusterConfigArgs.builder()
                    .bearerToken(argocdManagerKubernetesSecret.data().token())
                    .tlsClientConfig(ClusterConfigTlsClientConfigArgs.builder()
                        .caData(StdFunctions.base64decode(Base64decodeArgs.builder()
                            .input(cluster.applyValue(getClusterResult -> getClusterResult.masterAuths()[0].clusterCaCertificate()))
                            .build()).result())
                        .build())
                    .build())
                .build());
    
            //# AWS EKS cluster
            final var clusterGetCluster = EksFunctions.getCluster(GetClusterArgs.builder()
                .name("cluster")
                .build());
    
            var eks = new Cluster("eks", ClusterArgs.builder()
                .server(StdFunctions.join(JoinArgs.builder()
                    .separator("")
                    .input(                
                        "https://%s",
                        clusterGetCluster.applyValue(getClusterResult -> getClusterResult.endpoint()))
                    .build()).result())
                .name("eks")
                .namespaces(            
                    "default",
                    "optional")
                .config(ClusterConfigArgs.builder()
                    .awsAuthConfigs(ClusterConfigAwsAuthConfigArgs.builder()
                        .clusterName("myekscluster")
                        .roleArn("arn:aws:iam::<123456789012>:role/<role-name>")
                        .build())
                    .tlsClientConfig(ClusterConfigTlsClientConfigArgs.builder()
                        .caData(StdFunctions.base64decode(Base64decodeArgs.builder()
                            .input(clusterGetCluster.applyValue(getClusterResult -> getClusterResult.certificateAuthorities()[0].data()))
                            .build()).result())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      ## Bearer token Authentication
      kubernetes:
        type: argocd:Cluster
        properties:
          server: https://1.2.3.4:12345
          config:
            bearerToken: eyJhbGciOiJSUzI...
            tlsClientConfig:
              caData:
                fn::invoke:
                  function: std:file
                  arguments:
                    input: path/to/ca.pem
                  return: result
      argocdManager:
        type: kubernetes:core/v1:ServiceAccount
        name: argocd_manager
        properties:
          metadata:
            name: argocd-manager
            namespace: kube-system
      argocdManagerClusterRole:
        type: kubernetes:rbac.authorization.k8s.io/v1:ClusterRole
        name: argocd_manager
        properties:
          metadata:
            name: argocd-manager-role
          rules:
            - apiGroups:
                - '*'
              resources:
                - '*'
              verbs:
                - '*'
            - nonResourceUrls:
                - '*'
              verbs:
                - '*'
      argocdManagerClusterRoleBinding:
        type: kubernetes:rbac.authorization.k8s.io/v1:ClusterRoleBinding
        name: argocd_manager
        properties:
          metadata:
            name: argocd-manager-role-binding
          roleRef:
            apiGroup: rbac.authorization.k8s.io
            kind: ClusterRole
            name: ${argocdManagerClusterRole.metadata.name}
          subjects:
            - kind: ServiceAccount
              name: ${argocdManager.metadata.name}
              namespace: ${argocdManager.metadata.namespace}
      argocdManagerSecret:
        type: kubernetes:core/v1:Secret
        name: argocd_manager
        properties:
          metadata:
            name: ${argocdManager.defaultSecretName}
            namespace: ${argocdManager.metadata.namespace}
      gke:
        type: argocd:Cluster
        properties:
          server:
            fn::invoke:
              function: std:join
              arguments:
                separator: ""
                input:
                  - https://%s
                  - ${cluster.endpoint}
              return: result
          name: gke
          config:
            bearerToken: ${argocdManagerKubernetesSecret.data.token}
            tlsClientConfig:
              caData:
                fn::invoke:
                  function: std:base64decode
                  arguments:
                    input: ${cluster.masterAuths[0].clusterCaCertificate}
                  return: result
      eks:
        type: argocd:Cluster
        properties:
          server:
            fn::invoke:
              function: std:join
              arguments:
                separator: ""
                input:
                  - https://%s
                  - ${clusterGetCluster.endpoint}
              return: result
          name: eks
          namespaces:
            - default
            - optional
          config:
            awsAuthConfigs:
              - clusterName: myekscluster
                roleArn: arn:aws:iam::<123456789012>:role/<role-name>
            tlsClientConfig:
              caData:
                fn::invoke:
                  function: std:base64decode
                  arguments:
                    input: ${clusterGetCluster.certificateAuthorities[0].data}
                  return: result
    variables:
      ## GCP GKE cluster
      cluster:
        fn::invoke:
          function: gcp:container:getCluster
          arguments:
            name: cluster
            location: europe-west1
      ## AWS EKS cluster
      clusterGetCluster:
        fn::invoke:
          function: aws:eks:getCluster
          arguments:
            name: cluster
    

    Create Cluster Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Cluster(name: string, args: ClusterArgs, opts?: CustomResourceOptions);
    @overload
    def Cluster(resource_name: str,
                args: ClusterArgs,
                opts: Optional[ResourceOptions] = None)
    
    @overload
    def Cluster(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                config: Optional[ClusterConfigArgs] = None,
                metadatas: Optional[Sequence[ClusterMetadataArgs]] = None,
                name: Optional[str] = None,
                namespaces: Optional[Sequence[str]] = None,
                project: Optional[str] = None,
                server: Optional[str] = None,
                shard: Optional[str] = None)
    func NewCluster(ctx *Context, name string, args ClusterArgs, opts ...ResourceOption) (*Cluster, error)
    public Cluster(string name, ClusterArgs args, CustomResourceOptions? opts = null)
    public Cluster(String name, ClusterArgs args)
    public Cluster(String name, ClusterArgs args, CustomResourceOptions options)
    
    type: argocd:Cluster
    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 ClusterArgs
    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 ClusterArgs
    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 ClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var clusterResource = new Argocd.Cluster("clusterResource", new()
    {
        Config = new Argocd.Inputs.ClusterConfigArgs
        {
            AwsAuthConfigs = new[]
            {
                new Argocd.Inputs.ClusterConfigAwsAuthConfigArgs
                {
                    ClusterName = "string",
                    RoleArn = "string",
                },
            },
            BearerToken = "string",
            ExecProviderConfig = new Argocd.Inputs.ClusterConfigExecProviderConfigArgs
            {
                ApiVersion = "string",
                Args = new[]
                {
                    "string",
                },
                Command = "string",
                Env = 
                {
                    { "string", "string" },
                },
                InstallHint = "string",
            },
            Password = "string",
            TlsClientConfig = new Argocd.Inputs.ClusterConfigTlsClientConfigArgs
            {
                CaData = "string",
                CertData = "string",
                Insecure = false,
                KeyData = "string",
                ServerName = "string",
            },
            Username = "string",
        },
        Metadatas = new[]
        {
            new Argocd.Inputs.ClusterMetadataArgs
            {
                Annotations = 
                {
                    { "string", "string" },
                },
                Labels = 
                {
                    { "string", "string" },
                },
            },
        },
        Name = "string",
        Namespaces = new[]
        {
            "string",
        },
        Project = "string",
        Server = "string",
        Shard = "string",
    });
    
    example, err := argocd.NewCluster(ctx, "clusterResource", &argocd.ClusterArgs{
    	Config: &argocd.ClusterConfigArgs{
    		AwsAuthConfigs: argocd.ClusterConfigAwsAuthConfigArray{
    			&argocd.ClusterConfigAwsAuthConfigArgs{
    				ClusterName: pulumi.String("string"),
    				RoleArn:     pulumi.String("string"),
    			},
    		},
    		BearerToken: pulumi.String("string"),
    		ExecProviderConfig: &argocd.ClusterConfigExecProviderConfigArgs{
    			ApiVersion: pulumi.String("string"),
    			Args: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Command: pulumi.String("string"),
    			Env: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			InstallHint: pulumi.String("string"),
    		},
    		Password: pulumi.String("string"),
    		TlsClientConfig: &argocd.ClusterConfigTlsClientConfigArgs{
    			CaData:     pulumi.String("string"),
    			CertData:   pulumi.String("string"),
    			Insecure:   pulumi.Bool(false),
    			KeyData:    pulumi.String("string"),
    			ServerName: pulumi.String("string"),
    		},
    		Username: pulumi.String("string"),
    	},
    	Metadatas: argocd.ClusterMetadataArray{
    		&argocd.ClusterMetadataArgs{
    			Annotations: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			Labels: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    		},
    	},
    	Name: pulumi.String("string"),
    	Namespaces: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Project: pulumi.String("string"),
    	Server:  pulumi.String("string"),
    	Shard:   pulumi.String("string"),
    })
    
    var clusterResource = new Cluster("clusterResource", ClusterArgs.builder()
        .config(ClusterConfigArgs.builder()
            .awsAuthConfigs(ClusterConfigAwsAuthConfigArgs.builder()
                .clusterName("string")
                .roleArn("string")
                .build())
            .bearerToken("string")
            .execProviderConfig(ClusterConfigExecProviderConfigArgs.builder()
                .apiVersion("string")
                .args("string")
                .command("string")
                .env(Map.of("string", "string"))
                .installHint("string")
                .build())
            .password("string")
            .tlsClientConfig(ClusterConfigTlsClientConfigArgs.builder()
                .caData("string")
                .certData("string")
                .insecure(false)
                .keyData("string")
                .serverName("string")
                .build())
            .username("string")
            .build())
        .metadatas(ClusterMetadataArgs.builder()
            .annotations(Map.of("string", "string"))
            .labels(Map.of("string", "string"))
            .build())
        .name("string")
        .namespaces("string")
        .project("string")
        .server("string")
        .shard("string")
        .build());
    
    cluster_resource = argocd.Cluster("clusterResource",
        config={
            "aws_auth_configs": [{
                "cluster_name": "string",
                "role_arn": "string",
            }],
            "bearer_token": "string",
            "exec_provider_config": {
                "api_version": "string",
                "args": ["string"],
                "command": "string",
                "env": {
                    "string": "string",
                },
                "install_hint": "string",
            },
            "password": "string",
            "tls_client_config": {
                "ca_data": "string",
                "cert_data": "string",
                "insecure": False,
                "key_data": "string",
                "server_name": "string",
            },
            "username": "string",
        },
        metadatas=[{
            "annotations": {
                "string": "string",
            },
            "labels": {
                "string": "string",
            },
        }],
        name="string",
        namespaces=["string"],
        project="string",
        server="string",
        shard="string")
    
    const clusterResource = new argocd.Cluster("clusterResource", {
        config: {
            awsAuthConfigs: [{
                clusterName: "string",
                roleArn: "string",
            }],
            bearerToken: "string",
            execProviderConfig: {
                apiVersion: "string",
                args: ["string"],
                command: "string",
                env: {
                    string: "string",
                },
                installHint: "string",
            },
            password: "string",
            tlsClientConfig: {
                caData: "string",
                certData: "string",
                insecure: false,
                keyData: "string",
                serverName: "string",
            },
            username: "string",
        },
        metadatas: [{
            annotations: {
                string: "string",
            },
            labels: {
                string: "string",
            },
        }],
        name: "string",
        namespaces: ["string"],
        project: "string",
        server: "string",
        shard: "string",
    });
    
    type: argocd:Cluster
    properties:
        config:
            awsAuthConfigs:
                - clusterName: string
                  roleArn: string
            bearerToken: string
            execProviderConfig:
                apiVersion: string
                args:
                    - string
                command: string
                env:
                    string: string
                installHint: string
            password: string
            tlsClientConfig:
                caData: string
                certData: string
                insecure: false
                keyData: string
                serverName: string
            username: string
        metadatas:
            - annotations:
                string: string
              labels:
                string: string
        name: string
        namespaces:
            - string
        project: string
        server: string
        shard: string
    

    Cluster 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 Cluster resource accepts the following input properties:

    Config Three14.Argocd.Inputs.ClusterConfig
    Cluster information for connecting to a cluster.
    Metadatas List<Three14.Argocd.Inputs.ClusterMetadata>
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    Name string
    Name of the cluster. If omitted, will use the server address.
    Namespaces List<string>
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    Project string
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    Server string
    Server is the API server URL of the Kubernetes cluster.
    Shard string
    Optional shard number. Calculated on the fly by the application controller if not specified.
    Config ClusterConfigArgs
    Cluster information for connecting to a cluster.
    Metadatas []ClusterMetadataArgs
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    Name string
    Name of the cluster. If omitted, will use the server address.
    Namespaces []string
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    Project string
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    Server string
    Server is the API server URL of the Kubernetes cluster.
    Shard string
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config ClusterConfig
    Cluster information for connecting to a cluster.
    metadatas List<ClusterMetadata>
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name String
    Name of the cluster. If omitted, will use the server address.
    namespaces List<String>
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project String
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server String
    Server is the API server URL of the Kubernetes cluster.
    shard String
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config ClusterConfig
    Cluster information for connecting to a cluster.
    metadatas ClusterMetadata[]
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name string
    Name of the cluster. If omitted, will use the server address.
    namespaces string[]
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project string
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server string
    Server is the API server URL of the Kubernetes cluster.
    shard string
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config ClusterConfigArgs
    Cluster information for connecting to a cluster.
    metadatas Sequence[ClusterMetadataArgs]
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name str
    Name of the cluster. If omitted, will use the server address.
    namespaces Sequence[str]
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project str
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server str
    Server is the API server URL of the Kubernetes cluster.
    shard str
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config Property Map
    Cluster information for connecting to a cluster.
    metadatas List<Property Map>
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name String
    Name of the cluster. If omitted, will use the server address.
    namespaces List<String>
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project String
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server String
    Server is the API server URL of the Kubernetes cluster.
    shard String
    Optional shard number. Calculated on the fly by the application controller if not specified.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Cluster resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Infos List<Three14.Argocd.Outputs.ClusterInfo>
    Information about cluster cache and state.
    Id string
    The provider-assigned unique ID for this managed resource.
    Infos []ClusterInfo
    Information about cluster cache and state.
    id String
    The provider-assigned unique ID for this managed resource.
    infos List<ClusterInfo>
    Information about cluster cache and state.
    id string
    The provider-assigned unique ID for this managed resource.
    infos ClusterInfo[]
    Information about cluster cache and state.
    id str
    The provider-assigned unique ID for this managed resource.
    infos Sequence[ClusterInfo]
    Information about cluster cache and state.
    id String
    The provider-assigned unique ID for this managed resource.
    infos List<Property Map>
    Information about cluster cache and state.

    Look up Existing Cluster Resource

    Get an existing Cluster 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?: ClusterState, opts?: CustomResourceOptions): Cluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            config: Optional[ClusterConfigArgs] = None,
            infos: Optional[Sequence[ClusterInfoArgs]] = None,
            metadatas: Optional[Sequence[ClusterMetadataArgs]] = None,
            name: Optional[str] = None,
            namespaces: Optional[Sequence[str]] = None,
            project: Optional[str] = None,
            server: Optional[str] = None,
            shard: Optional[str] = None) -> Cluster
    func GetCluster(ctx *Context, name string, id IDInput, state *ClusterState, opts ...ResourceOption) (*Cluster, error)
    public static Cluster Get(string name, Input<string> id, ClusterState? state, CustomResourceOptions? opts = null)
    public static Cluster get(String name, Output<String> id, ClusterState state, CustomResourceOptions options)
    resources:  _:    type: argocd:Cluster    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.
    The following state arguments are supported:
    Config Three14.Argocd.Inputs.ClusterConfig
    Cluster information for connecting to a cluster.
    Infos List<Three14.Argocd.Inputs.ClusterInfo>
    Information about cluster cache and state.
    Metadatas List<Three14.Argocd.Inputs.ClusterMetadata>
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    Name string
    Name of the cluster. If omitted, will use the server address.
    Namespaces List<string>
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    Project string
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    Server string
    Server is the API server URL of the Kubernetes cluster.
    Shard string
    Optional shard number. Calculated on the fly by the application controller if not specified.
    Config ClusterConfigArgs
    Cluster information for connecting to a cluster.
    Infos []ClusterInfoArgs
    Information about cluster cache and state.
    Metadatas []ClusterMetadataArgs
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    Name string
    Name of the cluster. If omitted, will use the server address.
    Namespaces []string
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    Project string
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    Server string
    Server is the API server URL of the Kubernetes cluster.
    Shard string
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config ClusterConfig
    Cluster information for connecting to a cluster.
    infos List<ClusterInfo>
    Information about cluster cache and state.
    metadatas List<ClusterMetadata>
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name String
    Name of the cluster. If omitted, will use the server address.
    namespaces List<String>
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project String
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server String
    Server is the API server URL of the Kubernetes cluster.
    shard String
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config ClusterConfig
    Cluster information for connecting to a cluster.
    infos ClusterInfo[]
    Information about cluster cache and state.
    metadatas ClusterMetadata[]
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name string
    Name of the cluster. If omitted, will use the server address.
    namespaces string[]
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project string
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server string
    Server is the API server URL of the Kubernetes cluster.
    shard string
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config ClusterConfigArgs
    Cluster information for connecting to a cluster.
    infos Sequence[ClusterInfoArgs]
    Information about cluster cache and state.
    metadatas Sequence[ClusterMetadataArgs]
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name str
    Name of the cluster. If omitted, will use the server address.
    namespaces Sequence[str]
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project str
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server str
    Server is the API server URL of the Kubernetes cluster.
    shard str
    Optional shard number. Calculated on the fly by the application controller if not specified.
    config Property Map
    Cluster information for connecting to a cluster.
    infos List<Property Map>
    Information about cluster cache and state.
    metadatas List<Property Map>
    Standard cluster secret's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
    name String
    Name of the cluster. If omitted, will use the server address.
    namespaces List<String>
    List of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list is not empty.
    project String
    Reference between project and cluster that allow you automatically to be added as item inside Destinations project entity. More info: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters.
    server String
    Server is the API server URL of the Kubernetes cluster.
    shard String
    Optional shard number. Calculated on the fly by the application controller if not specified.

    Supporting Types

    ClusterConfig, ClusterConfigArgs

    AwsAuthConfigs List<Three14.Argocd.Inputs.ClusterConfigAwsAuthConfig>
    BearerToken string
    Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
    ExecProviderConfig Three14.Argocd.Inputs.ClusterConfigExecProviderConfig
    Configuration for an exec provider used to call an external command to perform cluster authentication See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig.
    Password string
    Password for servers that require Basic authentication.
    TlsClientConfig Three14.Argocd.Inputs.ClusterConfigTlsClientConfig
    Settings to enable transport layer security when connecting to the cluster.
    Username string
    Username for servers that require Basic authentication.
    AwsAuthConfigs []ClusterConfigAwsAuthConfig
    BearerToken string
    Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
    ExecProviderConfig ClusterConfigExecProviderConfig
    Configuration for an exec provider used to call an external command to perform cluster authentication See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig.
    Password string
    Password for servers that require Basic authentication.
    TlsClientConfig ClusterConfigTlsClientConfig
    Settings to enable transport layer security when connecting to the cluster.
    Username string
    Username for servers that require Basic authentication.
    awsAuthConfigs List<ClusterConfigAwsAuthConfig>
    bearerToken String
    Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
    execProviderConfig ClusterConfigExecProviderConfig
    Configuration for an exec provider used to call an external command to perform cluster authentication See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig.
    password String
    Password for servers that require Basic authentication.
    tlsClientConfig ClusterConfigTlsClientConfig
    Settings to enable transport layer security when connecting to the cluster.
    username String
    Username for servers that require Basic authentication.
    awsAuthConfigs ClusterConfigAwsAuthConfig[]
    bearerToken string
    Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
    execProviderConfig ClusterConfigExecProviderConfig
    Configuration for an exec provider used to call an external command to perform cluster authentication See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig.
    password string
    Password for servers that require Basic authentication.
    tlsClientConfig ClusterConfigTlsClientConfig
    Settings to enable transport layer security when connecting to the cluster.
    username string
    Username for servers that require Basic authentication.
    aws_auth_configs Sequence[ClusterConfigAwsAuthConfig]
    bearer_token str
    Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
    exec_provider_config ClusterConfigExecProviderConfig
    Configuration for an exec provider used to call an external command to perform cluster authentication See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig.
    password str
    Password for servers that require Basic authentication.
    tls_client_config ClusterConfigTlsClientConfig
    Settings to enable transport layer security when connecting to the cluster.
    username str
    Username for servers that require Basic authentication.
    awsAuthConfigs List<Property Map>
    bearerToken String
    Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
    execProviderConfig Property Map
    Configuration for an exec provider used to call an external command to perform cluster authentication See: https://godoc.org/k8s.io/client-go/tools/clientcmd/api#ExecConfig.
    password String
    Password for servers that require Basic authentication.
    tlsClientConfig Property Map
    Settings to enable transport layer security when connecting to the cluster.
    username String
    Username for servers that require Basic authentication.

    ClusterConfigAwsAuthConfig, ClusterConfigAwsAuthConfigArgs

    ClusterName string
    AWS cluster name.
    RoleArn string
    IAM role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.
    ClusterName string
    AWS cluster name.
    RoleArn string
    IAM role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.
    clusterName String
    AWS cluster name.
    roleArn String
    IAM role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.
    clusterName string
    AWS cluster name.
    roleArn string
    IAM role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.
    cluster_name str
    AWS cluster name.
    role_arn str
    IAM role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.
    clusterName String
    AWS cluster name.
    roleArn String
    IAM role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.

    ClusterConfigExecProviderConfig, ClusterConfigExecProviderConfigArgs

    ApiVersion string
    Preferred input version of the ExecInfo
    Args List<string>
    Arguments to pass to the command when executing it
    Command string
    Command to execute
    Env Dictionary<string, string>
    Env defines additional environment variables to expose to the process. Passed as a map of strings
    InstallHint string
    This text is shown to the user when the executable doesn't seem to be present
    ApiVersion string
    Preferred input version of the ExecInfo
    Args []string
    Arguments to pass to the command when executing it
    Command string
    Command to execute
    Env map[string]string
    Env defines additional environment variables to expose to the process. Passed as a map of strings
    InstallHint string
    This text is shown to the user when the executable doesn't seem to be present
    apiVersion String
    Preferred input version of the ExecInfo
    args List<String>
    Arguments to pass to the command when executing it
    command String
    Command to execute
    env Map<String,String>
    Env defines additional environment variables to expose to the process. Passed as a map of strings
    installHint String
    This text is shown to the user when the executable doesn't seem to be present
    apiVersion string
    Preferred input version of the ExecInfo
    args string[]
    Arguments to pass to the command when executing it
    command string
    Command to execute
    env {[key: string]: string}
    Env defines additional environment variables to expose to the process. Passed as a map of strings
    installHint string
    This text is shown to the user when the executable doesn't seem to be present
    api_version str
    Preferred input version of the ExecInfo
    args Sequence[str]
    Arguments to pass to the command when executing it
    command str
    Command to execute
    env Mapping[str, str]
    Env defines additional environment variables to expose to the process. Passed as a map of strings
    install_hint str
    This text is shown to the user when the executable doesn't seem to be present
    apiVersion String
    Preferred input version of the ExecInfo
    args List<String>
    Arguments to pass to the command when executing it
    command String
    Command to execute
    env Map<String>
    Env defines additional environment variables to expose to the process. Passed as a map of strings
    installHint String
    This text is shown to the user when the executable doesn't seem to be present

    ClusterConfigTlsClientConfig, ClusterConfigTlsClientConfigArgs

    CaData string
    PEM-encoded bytes (typically read from a root certificates bundle).
    CertData string
    PEM-encoded bytes (typically read from a client certificate file).
    Insecure bool
    Whether server should be accessed without verifying the TLS certificate.
    KeyData string
    PEM-encoded bytes (typically read from a client certificate key file).
    ServerName string
    Name to pass to the server for SNI and used in the client to check server certificates against. If empty, the hostname used to contact the server is used.
    CaData string
    PEM-encoded bytes (typically read from a root certificates bundle).
    CertData string
    PEM-encoded bytes (typically read from a client certificate file).
    Insecure bool
    Whether server should be accessed without verifying the TLS certificate.
    KeyData string
    PEM-encoded bytes (typically read from a client certificate key file).
    ServerName string
    Name to pass to the server for SNI and used in the client to check server certificates against. If empty, the hostname used to contact the server is used.
    caData String
    PEM-encoded bytes (typically read from a root certificates bundle).
    certData String
    PEM-encoded bytes (typically read from a client certificate file).
    insecure Boolean
    Whether server should be accessed without verifying the TLS certificate.
    keyData String
    PEM-encoded bytes (typically read from a client certificate key file).
    serverName String
    Name to pass to the server for SNI and used in the client to check server certificates against. If empty, the hostname used to contact the server is used.
    caData string
    PEM-encoded bytes (typically read from a root certificates bundle).
    certData string
    PEM-encoded bytes (typically read from a client certificate file).
    insecure boolean
    Whether server should be accessed without verifying the TLS certificate.
    keyData string
    PEM-encoded bytes (typically read from a client certificate key file).
    serverName string
    Name to pass to the server for SNI and used in the client to check server certificates against. If empty, the hostname used to contact the server is used.
    ca_data str
    PEM-encoded bytes (typically read from a root certificates bundle).
    cert_data str
    PEM-encoded bytes (typically read from a client certificate file).
    insecure bool
    Whether server should be accessed without verifying the TLS certificate.
    key_data str
    PEM-encoded bytes (typically read from a client certificate key file).
    server_name str
    Name to pass to the server for SNI and used in the client to check server certificates against. If empty, the hostname used to contact the server is used.
    caData String
    PEM-encoded bytes (typically read from a root certificates bundle).
    certData String
    PEM-encoded bytes (typically read from a client certificate file).
    insecure Boolean
    Whether server should be accessed without verifying the TLS certificate.
    keyData String
    PEM-encoded bytes (typically read from a client certificate key file).
    serverName String
    Name to pass to the server for SNI and used in the client to check server certificates against. If empty, the hostname used to contact the server is used.

    ClusterInfo, ClusterInfoArgs

    ApplicationsCount string
    Number of applications managed by Argo CD on the cluster.
    ConnectionStates List<Three14.Argocd.Inputs.ClusterInfoConnectionState>
    Information about the connection to the cluster.
    ServerVersion string
    Kubernetes version of the cluster.
    ApplicationsCount string
    Number of applications managed by Argo CD on the cluster.
    ConnectionStates []ClusterInfoConnectionState
    Information about the connection to the cluster.
    ServerVersion string
    Kubernetes version of the cluster.
    applicationsCount String
    Number of applications managed by Argo CD on the cluster.
    connectionStates List<ClusterInfoConnectionState>
    Information about the connection to the cluster.
    serverVersion String
    Kubernetes version of the cluster.
    applicationsCount string
    Number of applications managed by Argo CD on the cluster.
    connectionStates ClusterInfoConnectionState[]
    Information about the connection to the cluster.
    serverVersion string
    Kubernetes version of the cluster.
    applications_count str
    Number of applications managed by Argo CD on the cluster.
    connection_states Sequence[ClusterInfoConnectionState]
    Information about the connection to the cluster.
    server_version str
    Kubernetes version of the cluster.
    applicationsCount String
    Number of applications managed by Argo CD on the cluster.
    connectionStates List<Property Map>
    Information about the connection to the cluster.
    serverVersion String
    Kubernetes version of the cluster.

    ClusterInfoConnectionState, ClusterInfoConnectionStateArgs

    Message string
    Human readable information about the connection status.
    Status string
    Current status indicator for the connection.
    Message string
    Human readable information about the connection status.
    Status string
    Current status indicator for the connection.
    message String
    Human readable information about the connection status.
    status String
    Current status indicator for the connection.
    message string
    Human readable information about the connection status.
    status string
    Current status indicator for the connection.
    message str
    Human readable information about the connection status.
    status str
    Current status indicator for the connection.
    message String
    Human readable information about the connection status.
    status String
    Current status indicator for the connection.

    ClusterMetadata, ClusterMetadataArgs

    Annotations Dictionary<string, string>
    An unstructured key value map stored with the cluster secret that may be used to store arbitrary metadata. More info: http://kubernetes.io/docs/user-guide/annotations
    Labels Dictionary<string, string>
    Map of string keys and values that can be used to organize and categorize (scope and select) the cluster secret. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
    Annotations map[string]string
    An unstructured key value map stored with the cluster secret that may be used to store arbitrary metadata. More info: http://kubernetes.io/docs/user-guide/annotations
    Labels map[string]string
    Map of string keys and values that can be used to organize and categorize (scope and select) the cluster secret. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
    annotations Map<String,String>
    An unstructured key value map stored with the cluster secret that may be used to store arbitrary metadata. More info: http://kubernetes.io/docs/user-guide/annotations
    labels Map<String,String>
    Map of string keys and values that can be used to organize and categorize (scope and select) the cluster secret. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
    annotations {[key: string]: string}
    An unstructured key value map stored with the cluster secret that may be used to store arbitrary metadata. More info: http://kubernetes.io/docs/user-guide/annotations
    labels {[key: string]: string}
    Map of string keys and values that can be used to organize and categorize (scope and select) the cluster secret. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
    annotations Mapping[str, str]
    An unstructured key value map stored with the cluster secret that may be used to store arbitrary metadata. More info: http://kubernetes.io/docs/user-guide/annotations
    labels Mapping[str, str]
    Map of string keys and values that can be used to organize and categorize (scope and select) the cluster secret. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
    annotations Map<String>
    An unstructured key value map stored with the cluster secret that may be used to store arbitrary metadata. More info: http://kubernetes.io/docs/user-guide/annotations
    labels Map<String>
    Map of string keys and values that can be used to organize and categorize (scope and select) the cluster secret. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

    Import

    Cluster credentials can be imported using the server URL.

    Example:

    $ pulumi import argocd:index/cluster:Cluster mycluster https://mycluster.io:443
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    argocd Three141/pulumi-argocd
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the argocd Terraform Provider.
    argocd logo
    Argo CD v1.0.1 published on Friday, Feb 21, 2025 by Three141