argocd.Cluster
Explore with Pulumi AI
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. Cluster Config 
- Cluster information for connecting to a cluster.
- Metadatas
List<Three14.Argocd. Inputs. Cluster Metadata> 
- 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.
- string
- Optional shard number. Calculated on the fly by the application controller if not specified.
- Config
ClusterConfig Args 
- Cluster information for connecting to a cluster.
- Metadatas
[]ClusterMetadata Args 
- 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.
- 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.
- 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.
- string
- Optional shard number. Calculated on the fly by the application controller if not specified.
- config
ClusterConfig Args 
- Cluster information for connecting to a cluster.
- metadatas
Sequence[ClusterMetadata Args] 
- 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.
- 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.
- 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. Cluster Info> 
- 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) -> Clusterfunc 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.
- Config
Three14.Argocd. Inputs. Cluster Config 
- Cluster information for connecting to a cluster.
- Infos
List<Three14.Argocd. Inputs. Cluster Info> 
- Information about cluster cache and state.
- Metadatas
List<Three14.Argocd. Inputs. Cluster Metadata> 
- 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 Args 
- Cluster information for connecting to a cluster.
- Infos
[]ClusterInfo Args 
- Information about cluster cache and state.
- Metadatas
[]ClusterMetadata Args 
- 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
ClusterConfig Args 
- Cluster information for connecting to a cluster.
- infos
Sequence[ClusterInfo Args] 
- Information about cluster cache and state.
- metadatas
Sequence[ClusterMetadata Args] 
- 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    
- AwsAuth List<Three14.Configs Argocd. Inputs. Cluster Config Aws Auth Config> 
- BearerToken string
- Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
- ExecProvider Three14.Config Argocd. Inputs. Cluster Config Exec Provider Config 
- 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.
- TlsClient Three14.Config Argocd. Inputs. Cluster Config Tls Client Config 
- Settings to enable transport layer security when connecting to the cluster.
- Username string
- Username for servers that require Basic authentication.
- AwsAuth []ClusterConfigs Config Aws Auth Config 
- BearerToken string
- Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
- ExecProvider ClusterConfig Config Exec Provider Config 
- 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.
- TlsClient ClusterConfig Config Tls Client Config 
- Settings to enable transport layer security when connecting to the cluster.
- Username string
- Username for servers that require Basic authentication.
- awsAuth List<ClusterConfigs Config Aws Auth Config> 
- bearerToken String
- Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
- execProvider ClusterConfig Config Exec Provider Config 
- 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.
- tlsClient ClusterConfig Config Tls Client Config 
- Settings to enable transport layer security when connecting to the cluster.
- username String
- Username for servers that require Basic authentication.
- awsAuth ClusterConfigs Config Aws Auth Config[] 
- bearerToken string
- Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
- execProvider ClusterConfig Config Exec Provider Config 
- 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.
- tlsClient ClusterConfig Config Tls Client Config 
- Settings to enable transport layer security when connecting to the cluster.
- username string
- Username for servers that require Basic authentication.
- aws_auth_ Sequence[Clusterconfigs Config Aws Auth Config] 
- bearer_token str
- Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
- exec_provider_ Clusterconfig Config Exec Provider Config 
- 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_ Clusterconfig Config Tls Client Config 
- Settings to enable transport layer security when connecting to the cluster.
- username str
- Username for servers that require Basic authentication.
- awsAuth List<Property Map>Configs 
- bearerToken String
- Server requires Bearer authentication. The client will not attempt to use refresh tokens for an OAuth2 flow.
- execProvider Property MapConfig 
- 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.
- tlsClient Property MapConfig 
- 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. Cluster Info Connection State> 
- 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 []ClusterInfo Connection State 
- 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<ClusterInfo Connection State> 
- 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 ClusterInfo Connection State[] 
- 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[ClusterInfo Connection State] 
- 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        
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 argocdTerraform Provider.
