1. Packages
  2. Gcore Provider
  3. API Docs
  4. AiCluster
gcore 0.22.0 published on Wednesday, Apr 30, 2025 by g-core

gcore.AiCluster

Explore with Pulumi AI

gcore logo
gcore 0.22.0 published on Wednesday, Apr 30, 2025 by g-core

    Represent GPU cluster

    Example Usage

    Prerequisite
    import * as pulumi from "@pulumi/pulumi";
    import * as gcore from "@pulumi/gcore";
    
    const project = gcore.getProject({
        name: "Default",
    });
    const region = gcore.getRegion({
        name: "Luxembourg-2",
    });
    const network = new gcore.Network("network", {
        type: "vlan",
        projectId: project.then(project => project.id),
        regionId: region.then(region => region.id),
    });
    const subnet = new gcore.Subnet("subnet", {
        cidr: "192.168.10.0/24",
        networkId: network.networkId,
        projectId: project.then(project => project.id),
        regionId: region.then(region => region.id),
    });
    const keypair = new gcore.Keypair("keypair", {
        projectId: project.then(project => project.id),
        sshkeyName: "my-keypair",
        publicKey: "ssh-ed25519 ...your public key... gcore@gcore.com",
    });
    
    import pulumi
    import pulumi_gcore as gcore
    
    project = gcore.get_project(name="Default")
    region = gcore.get_region(name="Luxembourg-2")
    network = gcore.Network("network",
        type="vlan",
        project_id=project.id,
        region_id=region.id)
    subnet = gcore.Subnet("subnet",
        cidr="192.168.10.0/24",
        network_id=network.network_id,
        project_id=project.id,
        region_id=region.id)
    keypair = gcore.Keypair("keypair",
        project_id=project.id,
        sshkey_name="my-keypair",
        public_key="ssh-ed25519 ...your public key... gcore@gcore.com")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/gcore"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		project, err := gcore.GetProject(ctx, &gcore.GetProjectArgs{
    			Name: "Default",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		region, err := gcore.GetRegion(ctx, &gcore.GetRegionArgs{
    			Name: "Luxembourg-2",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		network, err := gcore.NewNetwork(ctx, "network", &gcore.NetworkArgs{
    			Type:      pulumi.String("vlan"),
    			ProjectId: pulumi.String(project.Id),
    			RegionId:  pulumi.String(region.Id),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = gcore.NewSubnet(ctx, "subnet", &gcore.SubnetArgs{
    			Cidr:      pulumi.String("192.168.10.0/24"),
    			NetworkId: network.NetworkId,
    			ProjectId: pulumi.String(project.Id),
    			RegionId:  pulumi.String(region.Id),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = gcore.NewKeypair(ctx, "keypair", &gcore.KeypairArgs{
    			ProjectId:  pulumi.String(project.Id),
    			SshkeyName: pulumi.String("my-keypair"),
    			PublicKey:  pulumi.String("ssh-ed25519 ...your public key... gcore@gcore.com"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcore = Pulumi.Gcore;
    
    return await Deployment.RunAsync(() => 
    {
        var project = Gcore.GetProject.Invoke(new()
        {
            Name = "Default",
        });
    
        var region = Gcore.GetRegion.Invoke(new()
        {
            Name = "Luxembourg-2",
        });
    
        var network = new Gcore.Network("network", new()
        {
            Type = "vlan",
            ProjectId = project.Apply(getProjectResult => getProjectResult.Id),
            RegionId = region.Apply(getRegionResult => getRegionResult.Id),
        });
    
        var subnet = new Gcore.Subnet("subnet", new()
        {
            Cidr = "192.168.10.0/24",
            NetworkId = network.NetworkId,
            ProjectId = project.Apply(getProjectResult => getProjectResult.Id),
            RegionId = region.Apply(getRegionResult => getRegionResult.Id),
        });
    
        var keypair = new Gcore.Keypair("keypair", new()
        {
            ProjectId = project.Apply(getProjectResult => getProjectResult.Id),
            SshkeyName = "my-keypair",
            PublicKey = "ssh-ed25519 ...your public key... gcore@gcore.com",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcore.GcoreFunctions;
    import com.pulumi.gcore.inputs.GetProjectArgs;
    import com.pulumi.gcore.inputs.GetRegionArgs;
    import com.pulumi.gcore.Network;
    import com.pulumi.gcore.NetworkArgs;
    import com.pulumi.gcore.Subnet;
    import com.pulumi.gcore.SubnetArgs;
    import com.pulumi.gcore.Keypair;
    import com.pulumi.gcore.KeypairArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var project = GcoreFunctions.getProject(GetProjectArgs.builder()
                .name("Default")
                .build());
    
            final var region = GcoreFunctions.getRegion(GetRegionArgs.builder()
                .name("Luxembourg-2")
                .build());
    
            var network = new Network("network", NetworkArgs.builder()
                .type("vlan")
                .projectId(project.applyValue(getProjectResult -> getProjectResult.id()))
                .regionId(region.applyValue(getRegionResult -> getRegionResult.id()))
                .build());
    
            var subnet = new Subnet("subnet", SubnetArgs.builder()
                .cidr("192.168.10.0/24")
                .networkId(network.networkId())
                .projectId(project.applyValue(getProjectResult -> getProjectResult.id()))
                .regionId(region.applyValue(getRegionResult -> getRegionResult.id()))
                .build());
    
            var keypair = new Keypair("keypair", KeypairArgs.builder()
                .projectId(project.applyValue(getProjectResult -> getProjectResult.id()))
                .sshkeyName("my-keypair")
                .publicKey("ssh-ed25519 ...your public key... gcore@gcore.com")
                .build());
    
        }
    }
    
    resources:
      network:
        type: gcore:Network
        properties:
          type: vlan
          projectId: ${project.id}
          regionId: ${region.id}
      subnet:
        type: gcore:Subnet
        properties:
          cidr: 192.168.10.0/24
          networkId: ${network.networkId}
          projectId: ${project.id}
          regionId: ${region.id}
      keypair:
        type: gcore:Keypair
        properties:
          projectId: ${project.id}
          sshkeyName: my-keypair
          publicKey: ssh-ed25519 ...your public key... gcore@gcore.com
    variables:
      project:
        fn::invoke:
          function: gcore:getProject
          arguments:
            name: Default
      region:
        fn::invoke:
          function: gcore:getRegion
          arguments:
            name: Luxembourg-2
    

    Basic example

    Creating GPU cluster of one node with one public interface and metadata provided

    import * as pulumi from "@pulumi/pulumi";
    import * as gcore from "@pulumi/gcore";
    
    const gpuCluster = new gcore.AiCluster("gpuCluster", {
        flavor: "bm3-ai-1xlarge-h100-80-8",
        imageId: "37c4fa17-1f18-4904-95f2-dbf39d0318fe",
        clusterName: "my-gpu-cluster",
        keypairName: "my-keypair",
        instancesCount: 1,
        interfaces: [{
            type: "external",
        }],
        clusterMetadata: {
            "my-metadata-key": "my-metadata-value",
        },
        projectId: data.gcore_project.project.id,
        regionId: data.gcore_region.region.id,
    });
    
    import pulumi
    import pulumi_gcore as gcore
    
    gpu_cluster = gcore.AiCluster("gpuCluster",
        flavor="bm3-ai-1xlarge-h100-80-8",
        image_id="37c4fa17-1f18-4904-95f2-dbf39d0318fe",
        cluster_name="my-gpu-cluster",
        keypair_name="my-keypair",
        instances_count=1,
        interfaces=[{
            "type": "external",
        }],
        cluster_metadata={
            "my-metadata-key": "my-metadata-value",
        },
        project_id=data["gcore_project"]["project"]["id"],
        region_id=data["gcore_region"]["region"]["id"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/gcore"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gcore.NewAiCluster(ctx, "gpuCluster", &gcore.AiClusterArgs{
    			Flavor:         pulumi.String("bm3-ai-1xlarge-h100-80-8"),
    			ImageId:        pulumi.String("37c4fa17-1f18-4904-95f2-dbf39d0318fe"),
    			ClusterName:    pulumi.String("my-gpu-cluster"),
    			KeypairName:    pulumi.String("my-keypair"),
    			InstancesCount: pulumi.Float64(1),
    			Interfaces: gcore.AiClusterInterfaceArray{
    				&gcore.AiClusterInterfaceArgs{
    					Type: pulumi.String("external"),
    				},
    			},
    			ClusterMetadata: pulumi.StringMap{
    				"my-metadata-key": pulumi.String("my-metadata-value"),
    			},
    			ProjectId: pulumi.Any(data.Gcore_project.Project.Id),
    			RegionId:  pulumi.Any(data.Gcore_region.Region.Id),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcore = Pulumi.Gcore;
    
    return await Deployment.RunAsync(() => 
    {
        var gpuCluster = new Gcore.AiCluster("gpuCluster", new()
        {
            Flavor = "bm3-ai-1xlarge-h100-80-8",
            ImageId = "37c4fa17-1f18-4904-95f2-dbf39d0318fe",
            ClusterName = "my-gpu-cluster",
            KeypairName = "my-keypair",
            InstancesCount = 1,
            Interfaces = new[]
            {
                new Gcore.Inputs.AiClusterInterfaceArgs
                {
                    Type = "external",
                },
            },
            ClusterMetadata = 
            {
                { "my-metadata-key", "my-metadata-value" },
            },
            ProjectId = data.Gcore_project.Project.Id,
            RegionId = data.Gcore_region.Region.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcore.AiCluster;
    import com.pulumi.gcore.AiClusterArgs;
    import com.pulumi.gcore.inputs.AiClusterInterfaceArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var gpuCluster = new AiCluster("gpuCluster", AiClusterArgs.builder()
                .flavor("bm3-ai-1xlarge-h100-80-8")
                .imageId("37c4fa17-1f18-4904-95f2-dbf39d0318fe")
                .clusterName("my-gpu-cluster")
                .keypairName("my-keypair")
                .instancesCount(1)
                .interfaces(AiClusterInterfaceArgs.builder()
                    .type("external")
                    .build())
                .clusterMetadata(Map.of("my-metadata-key", "my-metadata-value"))
                .projectId(data.gcore_project().project().id())
                .regionId(data.gcore_region().region().id())
                .build());
    
        }
    }
    
    resources:
      gpuCluster:
        type: gcore:AiCluster
        properties:
          flavor: bm3-ai-1xlarge-h100-80-8
          imageId: 37c4fa17-1f18-4904-95f2-dbf39d0318fe
          clusterName: my-gpu-cluster
          keypairName: my-keypair
          instancesCount: 1
          interfaces:
            - type: external
          clusterMetadata:
            my-metadata-key: my-metadata-value
          projectId: ${data.gcore_project.project.id}
          regionId: ${data.gcore_region.region.id}
    

    Creating GPU cluster with two interfaces

    This example demonstrates how to create a baremetal GPU cluster with two network interfaces: one public and one private.

    import * as pulumi from "@pulumi/pulumi";
    import * as gcore from "@pulumi/gcore";
    
    const gpuCluster = new gcore.AiCluster("gpuCluster", {
        flavor: "bm3-ai-1xlarge-h100-80-8",
        imageId: "37c4fa17-1f18-4904-95f2-dbf39d0318fe",
        clusterName: "my-gpu-cluster",
        keypairName: "my-keypair",
        instancesCount: 1,
        interfaces: [
            {
                type: "external",
            },
            {
                type: "subnet",
                networkId: gcore_network.network.id,
                subnetId: gcore_subnet.subnet.id,
            },
        ],
        projectId: data.gcore_project.project.id,
        regionId: data.gcore_region.region.id,
    });
    
    import pulumi
    import pulumi_gcore as gcore
    
    gpu_cluster = gcore.AiCluster("gpuCluster",
        flavor="bm3-ai-1xlarge-h100-80-8",
        image_id="37c4fa17-1f18-4904-95f2-dbf39d0318fe",
        cluster_name="my-gpu-cluster",
        keypair_name="my-keypair",
        instances_count=1,
        interfaces=[
            {
                "type": "external",
            },
            {
                "type": "subnet",
                "network_id": gcore_network["network"]["id"],
                "subnet_id": gcore_subnet["subnet"]["id"],
            },
        ],
        project_id=data["gcore_project"]["project"]["id"],
        region_id=data["gcore_region"]["region"]["id"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/gcore/gcore"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gcore.NewAiCluster(ctx, "gpuCluster", &gcore.AiClusterArgs{
    			Flavor:         pulumi.String("bm3-ai-1xlarge-h100-80-8"),
    			ImageId:        pulumi.String("37c4fa17-1f18-4904-95f2-dbf39d0318fe"),
    			ClusterName:    pulumi.String("my-gpu-cluster"),
    			KeypairName:    pulumi.String("my-keypair"),
    			InstancesCount: pulumi.Float64(1),
    			Interfaces: gcore.AiClusterInterfaceArray{
    				&gcore.AiClusterInterfaceArgs{
    					Type: pulumi.String("external"),
    				},
    				&gcore.AiClusterInterfaceArgs{
    					Type:      pulumi.String("subnet"),
    					NetworkId: pulumi.Any(gcore_network.Network.Id),
    					SubnetId:  pulumi.Any(gcore_subnet.Subnet.Id),
    				},
    			},
    			ProjectId: pulumi.Any(data.Gcore_project.Project.Id),
    			RegionId:  pulumi.Any(data.Gcore_region.Region.Id),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcore = Pulumi.Gcore;
    
    return await Deployment.RunAsync(() => 
    {
        var gpuCluster = new Gcore.AiCluster("gpuCluster", new()
        {
            Flavor = "bm3-ai-1xlarge-h100-80-8",
            ImageId = "37c4fa17-1f18-4904-95f2-dbf39d0318fe",
            ClusterName = "my-gpu-cluster",
            KeypairName = "my-keypair",
            InstancesCount = 1,
            Interfaces = new[]
            {
                new Gcore.Inputs.AiClusterInterfaceArgs
                {
                    Type = "external",
                },
                new Gcore.Inputs.AiClusterInterfaceArgs
                {
                    Type = "subnet",
                    NetworkId = gcore_network.Network.Id,
                    SubnetId = gcore_subnet.Subnet.Id,
                },
            },
            ProjectId = data.Gcore_project.Project.Id,
            RegionId = data.Gcore_region.Region.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcore.AiCluster;
    import com.pulumi.gcore.AiClusterArgs;
    import com.pulumi.gcore.inputs.AiClusterInterfaceArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var gpuCluster = new AiCluster("gpuCluster", AiClusterArgs.builder()
                .flavor("bm3-ai-1xlarge-h100-80-8")
                .imageId("37c4fa17-1f18-4904-95f2-dbf39d0318fe")
                .clusterName("my-gpu-cluster")
                .keypairName("my-keypair")
                .instancesCount(1)
                .interfaces(            
                    AiClusterInterfaceArgs.builder()
                        .type("external")
                        .build(),
                    AiClusterInterfaceArgs.builder()
                        .type("subnet")
                        .networkId(gcore_network.network().id())
                        .subnetId(gcore_subnet.subnet().id())
                        .build())
                .projectId(data.gcore_project().project().id())
                .regionId(data.gcore_region().region().id())
                .build());
    
        }
    }
    
    resources:
      gpuCluster:
        type: gcore:AiCluster
        properties:
          flavor: bm3-ai-1xlarge-h100-80-8
          imageId: 37c4fa17-1f18-4904-95f2-dbf39d0318fe
          clusterName: my-gpu-cluster
          keypairName: my-keypair
          instancesCount: 1
          interfaces:
            - type: external
            - type: subnet
              networkId: ${gcore_network.network.id}
              subnetId: ${gcore_subnet.subnet.id}
          projectId: ${data.gcore_project.project.id}
          regionId: ${data.gcore_region.region.id}
    

    Create AiCluster Resource

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

    Constructor syntax

    new AiCluster(name: string, args: AiClusterArgs, opts?: CustomResourceOptions);
    @overload
    def AiCluster(resource_name: str,
                  args: AiClusterArgs,
                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def AiCluster(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  flavor: Optional[str] = None,
                  interfaces: Optional[Sequence[AiClusterInterfaceArgs]] = None,
                  cluster_name: Optional[str] = None,
                  image_id: Optional[str] = None,
                  keypair_name: Optional[str] = None,
                  project_name: Optional[str] = None,
                  instances_count: Optional[float] = None,
                  cluster_metadata: Optional[Mapping[str, str]] = None,
                  ai_cluster_id: Optional[str] = None,
                  password: Optional[str] = None,
                  project_id: Optional[float] = None,
                  cluster_status: Optional[str] = None,
                  region_id: Optional[float] = None,
                  region_name: Optional[str] = None,
                  security_groups: Optional[Sequence[AiClusterSecurityGroupArgs]] = None,
                  user_data: Optional[str] = None,
                  username: Optional[str] = None,
                  volumes: Optional[Sequence[AiClusterVolumeArgs]] = None)
    func NewAiCluster(ctx *Context, name string, args AiClusterArgs, opts ...ResourceOption) (*AiCluster, error)
    public AiCluster(string name, AiClusterArgs args, CustomResourceOptions? opts = null)
    public AiCluster(String name, AiClusterArgs args)
    public AiCluster(String name, AiClusterArgs args, CustomResourceOptions options)
    
    type: gcore:AiCluster
    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 AiClusterArgs
    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 AiClusterArgs
    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 AiClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AiClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AiClusterArgs
    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 aiClusterResource = new Gcore.AiCluster("aiClusterResource", new()
    {
        Flavor = "string",
        Interfaces = new[]
        {
            new Gcore.Inputs.AiClusterInterfaceArgs
            {
                NetworkId = "string",
                PortId = "string",
                SubnetId = "string",
                Type = "string",
            },
        },
        ClusterName = "string",
        ImageId = "string",
        KeypairName = "string",
        ProjectName = "string",
        InstancesCount = 0,
        ClusterMetadata = 
        {
            { "string", "string" },
        },
        AiClusterId = "string",
        Password = "string",
        ProjectId = 0,
        ClusterStatus = "string",
        RegionId = 0,
        RegionName = "string",
        SecurityGroups = new[]
        {
            new Gcore.Inputs.AiClusterSecurityGroupArgs
            {
                Id = "string",
            },
        },
        UserData = "string",
        Username = "string",
        Volumes = new[]
        {
            new Gcore.Inputs.AiClusterVolumeArgs
            {
                ImageId = "string",
                Attachments = new[]
                {
                    new Gcore.Inputs.AiClusterVolumeAttachmentArgs
                    {
                        AttachedAt = "string",
                        AttachmentId = "string",
                        Device = "string",
                        InstanceName = "string",
                        ServerId = "string",
                        VolumeId = "string",
                    },
                },
                CreatedAt = "string",
                CreatorTaskId = "string",
                Name = "string",
                Size = 0,
                Source = "string",
                Status = "string",
                UpdatedAt = "string",
                VolumeId = "string",
                VolumeImageMetadata = 
                {
                    { "string", "string" },
                },
                VolumeType = "string",
            },
        },
    });
    
    example, err := gcore.NewAiCluster(ctx, "aiClusterResource", &gcore.AiClusterArgs{
    	Flavor: pulumi.String("string"),
    	Interfaces: gcore.AiClusterInterfaceArray{
    		&gcore.AiClusterInterfaceArgs{
    			NetworkId: pulumi.String("string"),
    			PortId:    pulumi.String("string"),
    			SubnetId:  pulumi.String("string"),
    			Type:      pulumi.String("string"),
    		},
    	},
    	ClusterName:    pulumi.String("string"),
    	ImageId:        pulumi.String("string"),
    	KeypairName:    pulumi.String("string"),
    	ProjectName:    pulumi.String("string"),
    	InstancesCount: pulumi.Float64(0),
    	ClusterMetadata: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	AiClusterId:   pulumi.String("string"),
    	Password:      pulumi.String("string"),
    	ProjectId:     pulumi.Float64(0),
    	ClusterStatus: pulumi.String("string"),
    	RegionId:      pulumi.Float64(0),
    	RegionName:    pulumi.String("string"),
    	SecurityGroups: gcore.AiClusterSecurityGroupArray{
    		&gcore.AiClusterSecurityGroupArgs{
    			Id: pulumi.String("string"),
    		},
    	},
    	UserData: pulumi.String("string"),
    	Username: pulumi.String("string"),
    	Volumes: gcore.AiClusterVolumeArray{
    		&gcore.AiClusterVolumeArgs{
    			ImageId: pulumi.String("string"),
    			Attachments: gcore.AiClusterVolumeAttachmentArray{
    				&gcore.AiClusterVolumeAttachmentArgs{
    					AttachedAt:   pulumi.String("string"),
    					AttachmentId: pulumi.String("string"),
    					Device:       pulumi.String("string"),
    					InstanceName: pulumi.String("string"),
    					ServerId:     pulumi.String("string"),
    					VolumeId:     pulumi.String("string"),
    				},
    			},
    			CreatedAt:     pulumi.String("string"),
    			CreatorTaskId: pulumi.String("string"),
    			Name:          pulumi.String("string"),
    			Size:          pulumi.Float64(0),
    			Source:        pulumi.String("string"),
    			Status:        pulumi.String("string"),
    			UpdatedAt:     pulumi.String("string"),
    			VolumeId:      pulumi.String("string"),
    			VolumeImageMetadata: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			VolumeType: pulumi.String("string"),
    		},
    	},
    })
    
    var aiClusterResource = new AiCluster("aiClusterResource", AiClusterArgs.builder()
        .flavor("string")
        .interfaces(AiClusterInterfaceArgs.builder()
            .networkId("string")
            .portId("string")
            .subnetId("string")
            .type("string")
            .build())
        .clusterName("string")
        .imageId("string")
        .keypairName("string")
        .projectName("string")
        .instancesCount(0)
        .clusterMetadata(Map.of("string", "string"))
        .aiClusterId("string")
        .password("string")
        .projectId(0)
        .clusterStatus("string")
        .regionId(0)
        .regionName("string")
        .securityGroups(AiClusterSecurityGroupArgs.builder()
            .id("string")
            .build())
        .userData("string")
        .username("string")
        .volumes(AiClusterVolumeArgs.builder()
            .imageId("string")
            .attachments(AiClusterVolumeAttachmentArgs.builder()
                .attachedAt("string")
                .attachmentId("string")
                .device("string")
                .instanceName("string")
                .serverId("string")
                .volumeId("string")
                .build())
            .createdAt("string")
            .creatorTaskId("string")
            .name("string")
            .size(0)
            .source("string")
            .status("string")
            .updatedAt("string")
            .volumeId("string")
            .volumeImageMetadata(Map.of("string", "string"))
            .volumeType("string")
            .build())
        .build());
    
    ai_cluster_resource = gcore.AiCluster("aiClusterResource",
        flavor="string",
        interfaces=[{
            "network_id": "string",
            "port_id": "string",
            "subnet_id": "string",
            "type": "string",
        }],
        cluster_name="string",
        image_id="string",
        keypair_name="string",
        project_name="string",
        instances_count=0,
        cluster_metadata={
            "string": "string",
        },
        ai_cluster_id="string",
        password="string",
        project_id=0,
        cluster_status="string",
        region_id=0,
        region_name="string",
        security_groups=[{
            "id": "string",
        }],
        user_data="string",
        username="string",
        volumes=[{
            "image_id": "string",
            "attachments": [{
                "attached_at": "string",
                "attachment_id": "string",
                "device": "string",
                "instance_name": "string",
                "server_id": "string",
                "volume_id": "string",
            }],
            "created_at": "string",
            "creator_task_id": "string",
            "name": "string",
            "size": 0,
            "source": "string",
            "status": "string",
            "updated_at": "string",
            "volume_id": "string",
            "volume_image_metadata": {
                "string": "string",
            },
            "volume_type": "string",
        }])
    
    const aiClusterResource = new gcore.AiCluster("aiClusterResource", {
        flavor: "string",
        interfaces: [{
            networkId: "string",
            portId: "string",
            subnetId: "string",
            type: "string",
        }],
        clusterName: "string",
        imageId: "string",
        keypairName: "string",
        projectName: "string",
        instancesCount: 0,
        clusterMetadata: {
            string: "string",
        },
        aiClusterId: "string",
        password: "string",
        projectId: 0,
        clusterStatus: "string",
        regionId: 0,
        regionName: "string",
        securityGroups: [{
            id: "string",
        }],
        userData: "string",
        username: "string",
        volumes: [{
            imageId: "string",
            attachments: [{
                attachedAt: "string",
                attachmentId: "string",
                device: "string",
                instanceName: "string",
                serverId: "string",
                volumeId: "string",
            }],
            createdAt: "string",
            creatorTaskId: "string",
            name: "string",
            size: 0,
            source: "string",
            status: "string",
            updatedAt: "string",
            volumeId: "string",
            volumeImageMetadata: {
                string: "string",
            },
            volumeType: "string",
        }],
    });
    
    type: gcore:AiCluster
    properties:
        aiClusterId: string
        clusterMetadata:
            string: string
        clusterName: string
        clusterStatus: string
        flavor: string
        imageId: string
        instancesCount: 0
        interfaces:
            - networkId: string
              portId: string
              subnetId: string
              type: string
        keypairName: string
        password: string
        projectId: 0
        projectName: string
        regionId: 0
        regionName: string
        securityGroups:
            - id: string
        userData: string
        username: string
        volumes:
            - attachments:
                - attachedAt: string
                  attachmentId: string
                  device: string
                  instanceName: string
                  serverId: string
                  volumeId: string
              createdAt: string
              creatorTaskId: string
              imageId: string
              name: string
              size: 0
              source: string
              status: string
              updatedAt: string
              volumeId: string
              volumeImageMetadata:
                string: string
              volumeType: string
    

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

    ClusterName string
    GPU Cluster Name
    Flavor string
    Flavor ID (name)
    ImageId string
    Image ID
    Interfaces List<AiClusterInterface>
    Networks managed by user and associated with the cluster
    AiClusterId string
    The ID of this resource.
    ClusterMetadata Dictionary<string, string>
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    ClusterStatus string
    GPU Cluster status
    InstancesCount double
    Number of servers in the GPU cluster
    KeypairName string
    The name of the SSH keypair to use for the GPU servers
    Password string
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    ProjectId double
    Project ID, only one of projectid or projectname should be set
    ProjectName string
    Project name, only one of projectid or projectname should be set
    RegionId double
    Region ID, only one of regionid or regionname should be set
    RegionName string
    Region name, only one of regionid or regionname should be set
    SecurityGroups List<AiClusterSecurityGroup>
    Security groups attached to the cluster
    UserData string
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    Username string
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    Volumes List<AiClusterVolume>
    List of volumes attached to the cluster
    ClusterName string
    GPU Cluster Name
    Flavor string
    Flavor ID (name)
    ImageId string
    Image ID
    Interfaces []AiClusterInterfaceArgs
    Networks managed by user and associated with the cluster
    AiClusterId string
    The ID of this resource.
    ClusterMetadata map[string]string
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    ClusterStatus string
    GPU Cluster status
    InstancesCount float64
    Number of servers in the GPU cluster
    KeypairName string
    The name of the SSH keypair to use for the GPU servers
    Password string
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    ProjectId float64
    Project ID, only one of projectid or projectname should be set
    ProjectName string
    Project name, only one of projectid or projectname should be set
    RegionId float64
    Region ID, only one of regionid or regionname should be set
    RegionName string
    Region name, only one of regionid or regionname should be set
    SecurityGroups []AiClusterSecurityGroupArgs
    Security groups attached to the cluster
    UserData string
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    Username string
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    Volumes []AiClusterVolumeArgs
    List of volumes attached to the cluster
    clusterName String
    GPU Cluster Name
    flavor String
    Flavor ID (name)
    imageId String
    Image ID
    interfaces List<AiClusterInterface>
    Networks managed by user and associated with the cluster
    aiClusterId String
    The ID of this resource.
    clusterMetadata Map<String,String>
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    clusterStatus String
    GPU Cluster status
    instancesCount Double
    Number of servers in the GPU cluster
    keypairName String
    The name of the SSH keypair to use for the GPU servers
    password String
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    projectId Double
    Project ID, only one of projectid or projectname should be set
    projectName String
    Project name, only one of projectid or projectname should be set
    regionId Double
    Region ID, only one of regionid or regionname should be set
    regionName String
    Region name, only one of regionid or regionname should be set
    securityGroups List<AiClusterSecurityGroup>
    Security groups attached to the cluster
    userData String
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username String
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes List<AiClusterVolume>
    List of volumes attached to the cluster
    clusterName string
    GPU Cluster Name
    flavor string
    Flavor ID (name)
    imageId string
    Image ID
    interfaces AiClusterInterface[]
    Networks managed by user and associated with the cluster
    aiClusterId string
    The ID of this resource.
    clusterMetadata {[key: string]: string}
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    clusterStatus string
    GPU Cluster status
    instancesCount number
    Number of servers in the GPU cluster
    keypairName string
    The name of the SSH keypair to use for the GPU servers
    password string
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    projectId number
    Project ID, only one of projectid or projectname should be set
    projectName string
    Project name, only one of projectid or projectname should be set
    regionId number
    Region ID, only one of regionid or regionname should be set
    regionName string
    Region name, only one of regionid or regionname should be set
    securityGroups AiClusterSecurityGroup[]
    Security groups attached to the cluster
    userData string
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username string
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes AiClusterVolume[]
    List of volumes attached to the cluster
    cluster_name str
    GPU Cluster Name
    flavor str
    Flavor ID (name)
    image_id str
    Image ID
    interfaces Sequence[AiClusterInterfaceArgs]
    Networks managed by user and associated with the cluster
    ai_cluster_id str
    The ID of this resource.
    cluster_metadata Mapping[str, str]
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    cluster_status str
    GPU Cluster status
    instances_count float
    Number of servers in the GPU cluster
    keypair_name str
    The name of the SSH keypair to use for the GPU servers
    password str
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    project_id float
    Project ID, only one of projectid or projectname should be set
    project_name str
    Project name, only one of projectid or projectname should be set
    region_id float
    Region ID, only one of regionid or regionname should be set
    region_name str
    Region name, only one of regionid or regionname should be set
    security_groups Sequence[AiClusterSecurityGroupArgs]
    Security groups attached to the cluster
    user_data str
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username str
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes Sequence[AiClusterVolumeArgs]
    List of volumes attached to the cluster
    clusterName String
    GPU Cluster Name
    flavor String
    Flavor ID (name)
    imageId String
    Image ID
    interfaces List<Property Map>
    Networks managed by user and associated with the cluster
    aiClusterId String
    The ID of this resource.
    clusterMetadata Map<String>
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    clusterStatus String
    GPU Cluster status
    instancesCount Number
    Number of servers in the GPU cluster
    keypairName String
    The name of the SSH keypair to use for the GPU servers
    password String
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    projectId Number
    Project ID, only one of projectid or projectname should be set
    projectName String
    Project name, only one of projectid or projectname should be set
    regionId Number
    Region ID, only one of regionid or regionname should be set
    regionName String
    Region name, only one of regionid or regionname should be set
    securityGroups List<Property Map>
    Security groups attached to the cluster
    userData String
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username String
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes List<Property Map>
    List of volumes attached to the cluster

    Outputs

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

    CreatedAt string
    Datetime when the GPU cluster was created
    CreatorTaskId string
    Task that created this entity
    Id string
    The provider-assigned unique ID for this managed resource.
    ImageName string
    Image name
    PoplarServers List<AiClusterPoplarServer>
    GPU cluster servers list
    TaskId string
    Task ID associated with the cluster
    TaskStatus string
    Task status
    CreatedAt string
    Datetime when the GPU cluster was created
    CreatorTaskId string
    Task that created this entity
    Id string
    The provider-assigned unique ID for this managed resource.
    ImageName string
    Image name
    PoplarServers []AiClusterPoplarServer
    GPU cluster servers list
    TaskId string
    Task ID associated with the cluster
    TaskStatus string
    Task status
    createdAt String
    Datetime when the GPU cluster was created
    creatorTaskId String
    Task that created this entity
    id String
    The provider-assigned unique ID for this managed resource.
    imageName String
    Image name
    poplarServers List<AiClusterPoplarServer>
    GPU cluster servers list
    taskId String
    Task ID associated with the cluster
    taskStatus String
    Task status
    createdAt string
    Datetime when the GPU cluster was created
    creatorTaskId string
    Task that created this entity
    id string
    The provider-assigned unique ID for this managed resource.
    imageName string
    Image name
    poplarServers AiClusterPoplarServer[]
    GPU cluster servers list
    taskId string
    Task ID associated with the cluster
    taskStatus string
    Task status
    created_at str
    Datetime when the GPU cluster was created
    creator_task_id str
    Task that created this entity
    id str
    The provider-assigned unique ID for this managed resource.
    image_name str
    Image name
    poplar_servers Sequence[AiClusterPoplarServer]
    GPU cluster servers list
    task_id str
    Task ID associated with the cluster
    task_status str
    Task status
    createdAt String
    Datetime when the GPU cluster was created
    creatorTaskId String
    Task that created this entity
    id String
    The provider-assigned unique ID for this managed resource.
    imageName String
    Image name
    poplarServers List<Property Map>
    GPU cluster servers list
    taskId String
    Task ID associated with the cluster
    taskStatus String
    Task status

    Look up Existing AiCluster Resource

    Get an existing AiCluster 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?: AiClusterState, opts?: CustomResourceOptions): AiCluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            ai_cluster_id: Optional[str] = None,
            cluster_metadata: Optional[Mapping[str, str]] = None,
            cluster_name: Optional[str] = None,
            cluster_status: Optional[str] = None,
            created_at: Optional[str] = None,
            creator_task_id: Optional[str] = None,
            flavor: Optional[str] = None,
            image_id: Optional[str] = None,
            image_name: Optional[str] = None,
            instances_count: Optional[float] = None,
            interfaces: Optional[Sequence[AiClusterInterfaceArgs]] = None,
            keypair_name: Optional[str] = None,
            password: Optional[str] = None,
            poplar_servers: Optional[Sequence[AiClusterPoplarServerArgs]] = None,
            project_id: Optional[float] = None,
            project_name: Optional[str] = None,
            region_id: Optional[float] = None,
            region_name: Optional[str] = None,
            security_groups: Optional[Sequence[AiClusterSecurityGroupArgs]] = None,
            task_id: Optional[str] = None,
            task_status: Optional[str] = None,
            user_data: Optional[str] = None,
            username: Optional[str] = None,
            volumes: Optional[Sequence[AiClusterVolumeArgs]] = None) -> AiCluster
    func GetAiCluster(ctx *Context, name string, id IDInput, state *AiClusterState, opts ...ResourceOption) (*AiCluster, error)
    public static AiCluster Get(string name, Input<string> id, AiClusterState? state, CustomResourceOptions? opts = null)
    public static AiCluster get(String name, Output<String> id, AiClusterState state, CustomResourceOptions options)
    resources:  _:    type: gcore:AiCluster    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:
    AiClusterId string
    The ID of this resource.
    ClusterMetadata Dictionary<string, string>
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    ClusterName string
    GPU Cluster Name
    ClusterStatus string
    GPU Cluster status
    CreatedAt string
    Datetime when the GPU cluster was created
    CreatorTaskId string
    Task that created this entity
    Flavor string
    Flavor ID (name)
    ImageId string
    Image ID
    ImageName string
    Image name
    InstancesCount double
    Number of servers in the GPU cluster
    Interfaces List<AiClusterInterface>
    Networks managed by user and associated with the cluster
    KeypairName string
    The name of the SSH keypair to use for the GPU servers
    Password string
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    PoplarServers List<AiClusterPoplarServer>
    GPU cluster servers list
    ProjectId double
    Project ID, only one of projectid or projectname should be set
    ProjectName string
    Project name, only one of projectid or projectname should be set
    RegionId double
    Region ID, only one of regionid or regionname should be set
    RegionName string
    Region name, only one of regionid or regionname should be set
    SecurityGroups List<AiClusterSecurityGroup>
    Security groups attached to the cluster
    TaskId string
    Task ID associated with the cluster
    TaskStatus string
    Task status
    UserData string
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    Username string
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    Volumes List<AiClusterVolume>
    List of volumes attached to the cluster
    AiClusterId string
    The ID of this resource.
    ClusterMetadata map[string]string
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    ClusterName string
    GPU Cluster Name
    ClusterStatus string
    GPU Cluster status
    CreatedAt string
    Datetime when the GPU cluster was created
    CreatorTaskId string
    Task that created this entity
    Flavor string
    Flavor ID (name)
    ImageId string
    Image ID
    ImageName string
    Image name
    InstancesCount float64
    Number of servers in the GPU cluster
    Interfaces []AiClusterInterfaceArgs
    Networks managed by user and associated with the cluster
    KeypairName string
    The name of the SSH keypair to use for the GPU servers
    Password string
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    PoplarServers []AiClusterPoplarServerArgs
    GPU cluster servers list
    ProjectId float64
    Project ID, only one of projectid or projectname should be set
    ProjectName string
    Project name, only one of projectid or projectname should be set
    RegionId float64
    Region ID, only one of regionid or regionname should be set
    RegionName string
    Region name, only one of regionid or regionname should be set
    SecurityGroups []AiClusterSecurityGroupArgs
    Security groups attached to the cluster
    TaskId string
    Task ID associated with the cluster
    TaskStatus string
    Task status
    UserData string
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    Username string
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    Volumes []AiClusterVolumeArgs
    List of volumes attached to the cluster
    aiClusterId String
    The ID of this resource.
    clusterMetadata Map<String,String>
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    clusterName String
    GPU Cluster Name
    clusterStatus String
    GPU Cluster status
    createdAt String
    Datetime when the GPU cluster was created
    creatorTaskId String
    Task that created this entity
    flavor String
    Flavor ID (name)
    imageId String
    Image ID
    imageName String
    Image name
    instancesCount Double
    Number of servers in the GPU cluster
    interfaces List<AiClusterInterface>
    Networks managed by user and associated with the cluster
    keypairName String
    The name of the SSH keypair to use for the GPU servers
    password String
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    poplarServers List<AiClusterPoplarServer>
    GPU cluster servers list
    projectId Double
    Project ID, only one of projectid or projectname should be set
    projectName String
    Project name, only one of projectid or projectname should be set
    regionId Double
    Region ID, only one of regionid or regionname should be set
    regionName String
    Region name, only one of regionid or regionname should be set
    securityGroups List<AiClusterSecurityGroup>
    Security groups attached to the cluster
    taskId String
    Task ID associated with the cluster
    taskStatus String
    Task status
    userData String
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username String
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes List<AiClusterVolume>
    List of volumes attached to the cluster
    aiClusterId string
    The ID of this resource.
    clusterMetadata {[key: string]: string}
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    clusterName string
    GPU Cluster Name
    clusterStatus string
    GPU Cluster status
    createdAt string
    Datetime when the GPU cluster was created
    creatorTaskId string
    Task that created this entity
    flavor string
    Flavor ID (name)
    imageId string
    Image ID
    imageName string
    Image name
    instancesCount number
    Number of servers in the GPU cluster
    interfaces AiClusterInterface[]
    Networks managed by user and associated with the cluster
    keypairName string
    The name of the SSH keypair to use for the GPU servers
    password string
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    poplarServers AiClusterPoplarServer[]
    GPU cluster servers list
    projectId number
    Project ID, only one of projectid or projectname should be set
    projectName string
    Project name, only one of projectid or projectname should be set
    regionId number
    Region ID, only one of regionid or regionname should be set
    regionName string
    Region name, only one of regionid or regionname should be set
    securityGroups AiClusterSecurityGroup[]
    Security groups attached to the cluster
    taskId string
    Task ID associated with the cluster
    taskStatus string
    Task status
    userData string
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username string
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes AiClusterVolume[]
    List of volumes attached to the cluster
    ai_cluster_id str
    The ID of this resource.
    cluster_metadata Mapping[str, str]
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    cluster_name str
    GPU Cluster Name
    cluster_status str
    GPU Cluster status
    created_at str
    Datetime when the GPU cluster was created
    creator_task_id str
    Task that created this entity
    flavor str
    Flavor ID (name)
    image_id str
    Image ID
    image_name str
    Image name
    instances_count float
    Number of servers in the GPU cluster
    interfaces Sequence[AiClusterInterfaceArgs]
    Networks managed by user and associated with the cluster
    keypair_name str
    The name of the SSH keypair to use for the GPU servers
    password str
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    poplar_servers Sequence[AiClusterPoplarServerArgs]
    GPU cluster servers list
    project_id float
    Project ID, only one of projectid or projectname should be set
    project_name str
    Project name, only one of projectid or projectname should be set
    region_id float
    Region ID, only one of regionid or regionname should be set
    region_name str
    Region name, only one of regionid or regionname should be set
    security_groups Sequence[AiClusterSecurityGroupArgs]
    Security groups attached to the cluster
    task_id str
    Task ID associated with the cluster
    task_status str
    Task status
    user_data str
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username str
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes Sequence[AiClusterVolumeArgs]
    List of volumes attached to the cluster
    aiClusterId String
    The ID of this resource.
    clusterMetadata Map<String>
    A map of metadata items. Key-value pairs for GPU cluster metadata. Example: {'environment': 'production', 'owner': 'user'}
    clusterName String
    GPU Cluster Name
    clusterStatus String
    GPU Cluster status
    createdAt String
    Datetime when the GPU cluster was created
    creatorTaskId String
    Task that created this entity
    flavor String
    Flavor ID (name)
    imageId String
    Image ID
    imageName String
    Image name
    instancesCount Number
    Number of servers in the GPU cluster
    interfaces List<Property Map>
    Networks managed by user and associated with the cluster
    keypairName String
    The name of the SSH keypair to use for the GPU servers
    password String
    A password for servers in GPU cluster. This parameter is used to set a password for the Admin user on a Windows instance, a default user or a new user on a Linux instance
    poplarServers List<Property Map>
    GPU cluster servers list
    projectId Number
    Project ID, only one of projectid or projectname should be set
    projectName String
    Project name, only one of projectid or projectname should be set
    regionId Number
    Region ID, only one of regionid or regionname should be set
    regionName String
    Region name, only one of regionid or regionname should be set
    securityGroups List<Property Map>
    Security groups attached to the cluster
    taskId String
    Task ID associated with the cluster
    taskStatus String
    Task status
    userData String
    User data string in base64 format. This is passed to the instance at launch. For Linux instances, 'userdata' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'userdata'
    username String
    A name of a new user in the Linux instance. It may be passed with a 'password' parameter
    volumes List<Property Map>
    List of volumes attached to the cluster

    Supporting Types

    AiClusterInterface, AiClusterInterfaceArgs

    NetworkId string
    Network ID
    PortId string
    Network ID the subnet belongs to. Port will be plugged in this network
    SubnetId string
    Port is assigned to IP address from the subnet
    Type string
    Network type
    NetworkId string
    Network ID
    PortId string
    Network ID the subnet belongs to. Port will be plugged in this network
    SubnetId string
    Port is assigned to IP address from the subnet
    Type string
    Network type
    networkId String
    Network ID
    portId String
    Network ID the subnet belongs to. Port will be plugged in this network
    subnetId String
    Port is assigned to IP address from the subnet
    type String
    Network type
    networkId string
    Network ID
    portId string
    Network ID the subnet belongs to. Port will be plugged in this network
    subnetId string
    Port is assigned to IP address from the subnet
    type string
    Network type
    network_id str
    Network ID
    port_id str
    Network ID the subnet belongs to. Port will be plugged in this network
    subnet_id str
    Port is assigned to IP address from the subnet
    type str
    Network type
    networkId String
    Network ID
    portId String
    Network ID the subnet belongs to. Port will be plugged in this network
    subnetId String
    Port is assigned to IP address from the subnet
    type String
    Network type

    AiClusterPoplarServer, AiClusterPoplarServerArgs

    AiClusterPoplarServerAddress, AiClusterPoplarServerAddressArgs

    AiClusterPoplarServerAddressAddress, AiClusterPoplarServerAddressAddressArgs

    Addr string
    Type string
    Addr string
    Type string
    addr String
    type String
    addr string
    type string
    addr str
    type str
    addr String
    type String

    AiClusterPoplarServerSecurityGroup, AiClusterPoplarServerSecurityGroupArgs

    Name string
    Name string
    name String
    name string
    name str
    name String

    AiClusterPoplarServerVolume, AiClusterPoplarServerVolumeArgs

    deleteOnTermination Boolean
    id String
    deleteOnTermination boolean
    id string
    deleteOnTermination Boolean
    id String

    AiClusterSecurityGroup, AiClusterSecurityGroupArgs

    Id string
    Security group ID
    Id string
    Security group ID
    id String
    Security group ID
    id string
    Security group ID
    id str
    Security group ID
    id String
    Security group ID

    AiClusterVolume, AiClusterVolumeArgs

    ImageId string
    Volume ID. Mandatory if volume is pre-existing volume
    Attachments List<AiClusterVolumeAttachment>
    Attachment list
    CreatedAt string
    Datetime when the volume was created
    CreatorTaskId string
    Task that created this entity
    Name string
    Volume name
    Size double
    Volume size, GiB
    Source string
    Currently available only value
    Status string
    Volume status
    UpdatedAt string
    Datetime when the volume was last updated
    VolumeId string
    Volume ID
    VolumeImageMetadata Dictionary<string, string>
    Image information for volumes that were created from image
    VolumeType string
    Volume type
    ImageId string
    Volume ID. Mandatory if volume is pre-existing volume
    Attachments []AiClusterVolumeAttachment
    Attachment list
    CreatedAt string
    Datetime when the volume was created
    CreatorTaskId string
    Task that created this entity
    Name string
    Volume name
    Size float64
    Volume size, GiB
    Source string
    Currently available only value
    Status string
    Volume status
    UpdatedAt string
    Datetime when the volume was last updated
    VolumeId string
    Volume ID
    VolumeImageMetadata map[string]string
    Image information for volumes that were created from image
    VolumeType string
    Volume type
    imageId String
    Volume ID. Mandatory if volume is pre-existing volume
    attachments List<AiClusterVolumeAttachment>
    Attachment list
    createdAt String
    Datetime when the volume was created
    creatorTaskId String
    Task that created this entity
    name String
    Volume name
    size Double
    Volume size, GiB
    source String
    Currently available only value
    status String
    Volume status
    updatedAt String
    Datetime when the volume was last updated
    volumeId String
    Volume ID
    volumeImageMetadata Map<String,String>
    Image information for volumes that were created from image
    volumeType String
    Volume type
    imageId string
    Volume ID. Mandatory if volume is pre-existing volume
    attachments AiClusterVolumeAttachment[]
    Attachment list
    createdAt string
    Datetime when the volume was created
    creatorTaskId string
    Task that created this entity
    name string
    Volume name
    size number
    Volume size, GiB
    source string
    Currently available only value
    status string
    Volume status
    updatedAt string
    Datetime when the volume was last updated
    volumeId string
    Volume ID
    volumeImageMetadata {[key: string]: string}
    Image information for volumes that were created from image
    volumeType string
    Volume type
    image_id str
    Volume ID. Mandatory if volume is pre-existing volume
    attachments Sequence[AiClusterVolumeAttachment]
    Attachment list
    created_at str
    Datetime when the volume was created
    creator_task_id str
    Task that created this entity
    name str
    Volume name
    size float
    Volume size, GiB
    source str
    Currently available only value
    status str
    Volume status
    updated_at str
    Datetime when the volume was last updated
    volume_id str
    Volume ID
    volume_image_metadata Mapping[str, str]
    Image information for volumes that were created from image
    volume_type str
    Volume type
    imageId String
    Volume ID. Mandatory if volume is pre-existing volume
    attachments List<Property Map>
    Attachment list
    createdAt String
    Datetime when the volume was created
    creatorTaskId String
    Task that created this entity
    name String
    Volume name
    size Number
    Volume size, GiB
    source String
    Currently available only value
    status String
    Volume status
    updatedAt String
    Datetime when the volume was last updated
    volumeId String
    Volume ID
    volumeImageMetadata Map<String>
    Image information for volumes that were created from image
    volumeType String
    Volume type

    AiClusterVolumeAttachment, AiClusterVolumeAttachmentArgs

    AttachedAt string
    Attachment creation datetime
    AttachmentId string
    ID of attachment object
    Device string
    Block device name in guest
    InstanceName string
    Instance name (if attached and server name is known)
    ServerId string
    Instance ID
    VolumeId string
    Volume ID
    AttachedAt string
    Attachment creation datetime
    AttachmentId string
    ID of attachment object
    Device string
    Block device name in guest
    InstanceName string
    Instance name (if attached and server name is known)
    ServerId string
    Instance ID
    VolumeId string
    Volume ID
    attachedAt String
    Attachment creation datetime
    attachmentId String
    ID of attachment object
    device String
    Block device name in guest
    instanceName String
    Instance name (if attached and server name is known)
    serverId String
    Instance ID
    volumeId String
    Volume ID
    attachedAt string
    Attachment creation datetime
    attachmentId string
    ID of attachment object
    device string
    Block device name in guest
    instanceName string
    Instance name (if attached and server name is known)
    serverId string
    Instance ID
    volumeId string
    Volume ID
    attached_at str
    Attachment creation datetime
    attachment_id str
    ID of attachment object
    device str
    Block device name in guest
    instance_name str
    Instance name (if attached and server name is known)
    server_id str
    Instance ID
    volume_id str
    Volume ID
    attachedAt String
    Attachment creation datetime
    attachmentId String
    ID of attachment object
    device String
    Block device name in guest
    instanceName String
    Instance name (if attached and server name is known)
    serverId String
    Instance ID
    volumeId String
    Volume ID

    Import

    import using <project_id>:<region_id>:<cluster_id> format

    $ pulumi import gcore:index/aiCluster:AiCluster cluster1 1:6:447d2959-8ae0-4ca0-8d47-9f050a3637d7
    

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

    Package Details

    Repository
    gcore g-core/terraform-provider-gcore
    License
    Notes
    This Pulumi package is based on the gcore Terraform Provider.
    gcore logo
    gcore 0.22.0 published on Wednesday, Apr 30, 2025 by g-core