Region Per Instance Config Args
data class RegionPerInstanceConfigArgs(val minimalAction: Output<String>? = null, val mostDisruptiveAllowedAction: Output<String>? = null, val name: Output<String>? = null, val preservedState: Output<RegionPerInstanceConfigPreservedStateArgs>? = null, val project: Output<String>? = null, val region: Output<String>? = null, val regionInstanceGroupManager: Output<String>? = null, val removeInstanceStateOnDestroy: Output<Boolean>? = null) : ConvertibleToJava<RegionPerInstanceConfigArgs>
A config defined for a single managed instance that belongs to an instance group manager. It preserves the instance name across instance group manager operations and can define stateful disks or metadata that are unique to the instance. This resource works with regional instance group managers. To get more information about RegionPerInstanceConfig, see:
How-to Guides
Example Usage
Stateful Rigm
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetImageArgs;
import com.pulumi.gcp.compute.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
import com.pulumi.gcp.compute.RegionInstanceGroupManager;
import com.pulumi.gcp.compute.RegionInstanceGroupManagerArgs;
import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerVersionArgs;
import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerUpdatePolicyArgs;
import com.pulumi.gcp.compute.Disk;
import com.pulumi.gcp.compute.DiskArgs;
import com.pulumi.gcp.compute.RegionPerInstanceConfig;
import com.pulumi.gcp.compute.RegionPerInstanceConfigArgs;
import com.pulumi.gcp.compute.inputs.RegionPerInstanceConfigPreservedStateArgs;
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 myImage = ComputeFunctions.getImage(GetImageArgs.builder()
.family("debian-11")
.project("debian-cloud")
.build());
var igm_basic = new InstanceTemplate("igm-basic", InstanceTemplateArgs.builder()
.machineType("e2-medium")
.canIpForward(false)
.tags(
"foo",
"bar")
.disks(InstanceTemplateDiskArgs.builder()
.sourceImage(myImage.applyValue(getImageResult -> getImageResult.selfLink()))
.autoDelete(true)
.boot(true)
.build())
.networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
.network("default")
.build())
.serviceAccount(InstanceTemplateServiceAccountArgs.builder()
.scopes(
"userinfo-email",
"compute-ro",
"storage-ro")
.build())
.build());
var rigm = new RegionInstanceGroupManager("rigm", RegionInstanceGroupManagerArgs.builder()
.description("Demo test instance group manager")
.versions(RegionInstanceGroupManagerVersionArgs.builder()
.name("prod")
.instanceTemplate(igm_basic.selfLink())
.build())
.updatePolicy(RegionInstanceGroupManagerUpdatePolicyArgs.builder()
.type("OPPORTUNISTIC")
.instanceRedistributionType("NONE")
.minimalAction("RESTART")
.build())
.baseInstanceName("rigm")
.region("us-central1")
.targetSize(2)
.build());
var default_ = new Disk("default", DiskArgs.builder()
.type("pd-ssd")
.zone("us-central1-a")
.image("debian-11-bullseye-v20220719")
.physicalBlockSizeBytes(4096)
.build());
var withDisk = new RegionPerInstanceConfig("withDisk", RegionPerInstanceConfigArgs.builder()
.region(google_compute_region_instance_group_manager.igm().region())
.regionInstanceGroupManager(rigm.name())
.preservedState(RegionPerInstanceConfigPreservedStateArgs.builder()
.metadata(Map.ofEntries(
Map.entry("foo", "bar"),
Map.entry("instance_template", igm_basic.selfLink())
))
.disks(RegionPerInstanceConfigPreservedStateDiskArgs.builder()
.deviceName("my-stateful-disk")
.source(default_.id())
.mode("READ_ONLY")
.build())
.build())
.build());
}
}
Content copied to clipboard
Import
RegionPerInstanceConfig can be imported using any of these accepted formats
$ pulumi import gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig default projects/{{project}}/regions/{{region}}/instanceGroupManagers/{{region_instance_group_manager}}/{{name}}
Content copied to clipboard
$ pulumi import gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig default {{project}}/{{region}}/{{region_instance_group_manager}}/{{name}}
Content copied to clipboard
$ pulumi import gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig default {{region}}/{{region_instance_group_manager}}/{{name}}
Content copied to clipboard
$ pulumi import gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig default {{region_instance_group_manager}}/{{name}}
Content copied to clipboard
Constructors
Link copied to clipboard
fun RegionPerInstanceConfigArgs(minimalAction: Output<String>? = null, mostDisruptiveAllowedAction: Output<String>? = null, name: Output<String>? = null, preservedState: Output<RegionPerInstanceConfigPreservedStateArgs>? = null, project: Output<String>? = null, region: Output<String>? = null, regionInstanceGroupManager: Output<String>? = null, removeInstanceStateOnDestroy: Output<Boolean>? = null)