Region Instance Group Manager Args
The Google Compute Engine Regional Instance Group Manager API creates and manages pools of homogeneous Compute Engine virtual machine instances from a common instance template. To get more information about regionInstanceGroupManagers, see:
How-to Guides
Note: Use gcp.compute.InstanceGroupManager to create a zonal instance group manager.
Example Usage
With Top Level Instance Template (Google
Provider)
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.HealthCheck;
import com.pulumi.gcp.compute.HealthCheckArgs;
import com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;
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.RegionInstanceGroupManagerAllInstancesConfigArgs;
import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs;
import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAutoHealingPoliciesArgs;
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 autohealing = new HealthCheck("autohealing", HealthCheckArgs.builder()
.checkIntervalSec(5)
.timeoutSec(5)
.healthyThreshold(2)
.unhealthyThreshold(10)
.httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()
.requestPath("/healthz")
.port("8080")
.build())
.build());
var appserver = new RegionInstanceGroupManager("appserver", RegionInstanceGroupManagerArgs.builder()
.baseInstanceName("app")
.region("us-central1")
.distributionPolicyZones(
"us-central1-a",
"us-central1-f")
.versions(RegionInstanceGroupManagerVersionArgs.builder()
.instanceTemplate(google_compute_instance_template.appserver().self_link_unique())
.build())
.allInstancesConfig(RegionInstanceGroupManagerAllInstancesConfigArgs.builder()
.metadata(Map.of("metadata_key", "metadata_value"))
.labels(Map.of("label_key", "label_value"))
.build())
.targetPools(google_compute_target_pool.appserver().id())
.targetSize(2)
.namedPorts(RegionInstanceGroupManagerNamedPortArgs.builder()
.name("custom")
.port(8888)
.build())
.autoHealingPolicies(RegionInstanceGroupManagerAutoHealingPoliciesArgs.builder()
.healthCheck(autohealing.id())
.initialDelaySec(300)
.build())
.build());
}
}
With Multiple Versions
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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.RegionInstanceGroupManagerVersionTargetSizeArgs;
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 appserver = new RegionInstanceGroupManager("appserver", RegionInstanceGroupManagerArgs.builder()
.baseInstanceName("app")
.region("us-central1")
.targetSize(5)
.versions(
RegionInstanceGroupManagerVersionArgs.builder()
.instanceTemplate(google_compute_instance_template.appserver().self_link_unique())
.build(),
RegionInstanceGroupManagerVersionArgs.builder()
.instanceTemplate(google_compute_instance_template.appserver-canary().self_link_unique())
.targetSize(RegionInstanceGroupManagerVersionTargetSizeArgs.builder()
.fixed(1)
.build())
.build())
.build());
}
}
Import
Instance group managers can be imported using the name
, e.g.
$ pulumi import gcp:compute/regionInstanceGroupManager:RegionInstanceGroupManager appserver appserver-igm
Constructors
Functions
Properties
The autohealing policies for this managed instance group. You can specify only one value. Structure is documented below. For more information, see the official documentation.
The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
The shape to which the group converges either proactively or on resize events (depending on the value set in update_policy.0.instance_redistribution_type). For more information see the official documentation.
The distribution policy for this managed instance group. You can specify one or more values. For more information, see the official documentation.
Pagination behavior of the listManagedInstances
API method for this managed instance group. Valid values are: PAGELESS
, PAGINATED
. If PAGELESS
(default), Pagination is disabled for the group's listManagedInstances
API method. maxResults
and pageToken
query parameters are ignored and all instances are returned in a single response. If PAGINATED
, pagination is enabled, maxResults
and pageToken
query parameters are respected.
Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the official documentation. Proactive cross zone instance redistribution must be disabled before you can update stateful disks on existing instance group managers. This can be controlled via the update_policy
.
The update policy for this managed instance group. Structure is documented below. For more information, see the official documentation and API
When used with wait_for_instances
it specifies the status to wait for. When STABLE
is specified this resource will wait until the instances are stable before returning. When UPDATED
is set, it will wait for the version target to be reached and any per instance configs to be effective as well as all instances to be stable before returning. The possible values are STABLE
and UPDATED