gcp.compute.InstanceTemplate
Explore with Pulumi AI
Note: Global instance templates can be used in any region. To lower the impact of outages outside your region and gain data residency within your region, use google_compute_region_instance_template.
Manages a VM instance template resource within GCE. For more information see the official documentation and API.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.serviceaccount.Account("default", {
accountId: "service-account-id",
displayName: "Service Account",
});
const myImage = gcp.compute.getImage({
family: "debian-11",
project: "debian-cloud",
});
const foobar = new gcp.compute.Disk("foobar", {
name: "existing-disk",
image: myImage.then(myImage => myImage.selfLink),
size: 10,
type: "pd-ssd",
zone: "us-central1-a",
});
const dailyBackup = new gcp.compute.ResourcePolicy("daily_backup", {
name: "every-day-4am",
region: "us-central1",
snapshotSchedulePolicy: {
schedule: {
dailySchedule: {
daysInCycle: 1,
startTime: "04:00",
},
},
},
});
const defaultInstanceTemplate = new gcp.compute.InstanceTemplate("default", {
name: "appserver-template",
description: "This template is used to create app server instances.",
tags: [
"foo",
"bar",
],
labels: {
environment: "dev",
},
instanceDescription: "description assigned to instances",
machineType: "e2-medium",
canIpForward: false,
scheduling: {
automaticRestart: true,
onHostMaintenance: "MIGRATE",
},
disks: [
{
sourceImage: "debian-cloud/debian-11",
autoDelete: true,
boot: true,
resourcePolicies: dailyBackup.id,
},
{
source: foobar.name,
autoDelete: false,
boot: false,
},
],
networkInterfaces: [{
network: "default",
}],
metadata: {
foo: "bar",
},
serviceAccount: {
email: _default.email,
scopes: ["cloud-platform"],
},
});
import pulumi
import pulumi_gcp as gcp
default = gcp.serviceaccount.Account("default",
account_id="service-account-id",
display_name="Service Account")
my_image = gcp.compute.get_image(family="debian-11",
project="debian-cloud")
foobar = gcp.compute.Disk("foobar",
name="existing-disk",
image=my_image.self_link,
size=10,
type="pd-ssd",
zone="us-central1-a")
daily_backup = gcp.compute.ResourcePolicy("daily_backup",
name="every-day-4am",
region="us-central1",
snapshot_schedule_policy=gcp.compute.ResourcePolicySnapshotSchedulePolicyArgs(
schedule=gcp.compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs(
daily_schedule=gcp.compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs(
days_in_cycle=1,
start_time="04:00",
),
),
))
default_instance_template = gcp.compute.InstanceTemplate("default",
name="appserver-template",
description="This template is used to create app server instances.",
tags=[
"foo",
"bar",
],
labels={
"environment": "dev",
},
instance_description="description assigned to instances",
machine_type="e2-medium",
can_ip_forward=False,
scheduling=gcp.compute.InstanceTemplateSchedulingArgs(
automatic_restart=True,
on_host_maintenance="MIGRATE",
),
disks=[
gcp.compute.InstanceTemplateDiskArgs(
source_image="debian-cloud/debian-11",
auto_delete=True,
boot=True,
resource_policies=daily_backup.id,
),
gcp.compute.InstanceTemplateDiskArgs(
source=foobar.name,
auto_delete=False,
boot=False,
),
],
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
network="default",
)],
metadata={
"foo": "bar",
},
service_account=gcp.compute.InstanceTemplateServiceAccountArgs(
email=default.email,
scopes=["cloud-platform"],
))
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
AccountId: pulumi.String("service-account-id"),
DisplayName: pulumi.String("Service Account"),
})
if err != nil {
return err
}
myImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{
Family: pulumi.StringRef("debian-11"),
Project: pulumi.StringRef("debian-cloud"),
}, nil)
if err != nil {
return err
}
foobar, err := compute.NewDisk(ctx, "foobar", &compute.DiskArgs{
Name: pulumi.String("existing-disk"),
Image: pulumi.String(myImage.SelfLink),
Size: pulumi.Int(10),
Type: pulumi.String("pd-ssd"),
Zone: pulumi.String("us-central1-a"),
})
if err != nil {
return err
}
dailyBackup, err := compute.NewResourcePolicy(ctx, "daily_backup", &compute.ResourcePolicyArgs{
Name: pulumi.String("every-day-4am"),
Region: pulumi.String("us-central1"),
SnapshotSchedulePolicy: &compute.ResourcePolicySnapshotSchedulePolicyArgs{
Schedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{
DailySchedule: &compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{
DaysInCycle: pulumi.Int(1),
StartTime: pulumi.String("04:00"),
},
},
},
})
if err != nil {
return err
}
_, err = compute.NewInstanceTemplate(ctx, "default", &compute.InstanceTemplateArgs{
Name: pulumi.String("appserver-template"),
Description: pulumi.String("This template is used to create app server instances."),
Tags: pulumi.StringArray{
pulumi.String("foo"),
pulumi.String("bar"),
},
Labels: pulumi.StringMap{
"environment": pulumi.String("dev"),
},
InstanceDescription: pulumi.String("description assigned to instances"),
MachineType: pulumi.String("e2-medium"),
CanIpForward: pulumi.Bool(false),
Scheduling: &compute.InstanceTemplateSchedulingArgs{
AutomaticRestart: pulumi.Bool(true),
OnHostMaintenance: pulumi.String("MIGRATE"),
},
Disks: compute.InstanceTemplateDiskArray{
&compute.InstanceTemplateDiskArgs{
SourceImage: pulumi.String("debian-cloud/debian-11"),
AutoDelete: pulumi.Bool(true),
Boot: pulumi.Bool(true),
ResourcePolicies: dailyBackup.ID(),
},
&compute.InstanceTemplateDiskArgs{
Source: foobar.Name,
AutoDelete: pulumi.Bool(false),
Boot: pulumi.Bool(false),
},
},
NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
&compute.InstanceTemplateNetworkInterfaceArgs{
Network: pulumi.String("default"),
},
},
Metadata: pulumi.Map{
"foo": pulumi.Any("bar"),
},
ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
Email: _default.Email,
Scopes: pulumi.StringArray{
pulumi.String("cloud-platform"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @default = new Gcp.ServiceAccount.Account("default", new()
{
AccountId = "service-account-id",
DisplayName = "Service Account",
});
var myImage = Gcp.Compute.GetImage.Invoke(new()
{
Family = "debian-11",
Project = "debian-cloud",
});
var foobar = new Gcp.Compute.Disk("foobar", new()
{
Name = "existing-disk",
Image = myImage.Apply(getImageResult => getImageResult.SelfLink),
Size = 10,
Type = "pd-ssd",
Zone = "us-central1-a",
});
var dailyBackup = new Gcp.Compute.ResourcePolicy("daily_backup", new()
{
Name = "every-day-4am",
Region = "us-central1",
SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs
{
Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs
{
DailySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs
{
DaysInCycle = 1,
StartTime = "04:00",
},
},
},
});
var defaultInstanceTemplate = new Gcp.Compute.InstanceTemplate("default", new()
{
Name = "appserver-template",
Description = "This template is used to create app server instances.",
Tags = new[]
{
"foo",
"bar",
},
Labels =
{
{ "environment", "dev" },
},
InstanceDescription = "description assigned to instances",
MachineType = "e2-medium",
CanIpForward = false,
Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs
{
AutomaticRestart = true,
OnHostMaintenance = "MIGRATE",
},
Disks = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
{
SourceImage = "debian-cloud/debian-11",
AutoDelete = true,
Boot = true,
ResourcePolicies = dailyBackup.Id,
},
new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
{
Source = foobar.Name,
AutoDelete = false,
Boot = false,
},
},
NetworkInterfaces = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
{
Network = "default",
},
},
Metadata =
{
{ "foo", "bar" },
},
ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
{
Email = @default.Email,
Scopes = new[]
{
"cloud-platform",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.compute.ComputeFunctions;
import com.pulumi.gcp.compute.inputs.GetImageArgs;
import com.pulumi.gcp.compute.Disk;
import com.pulumi.gcp.compute.DiskArgs;
import com.pulumi.gcp.compute.ResourcePolicy;
import com.pulumi.gcp.compute.ResourcePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;
import com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs;
import com.pulumi.gcp.compute.InstanceTemplate;
import com.pulumi.gcp.compute.InstanceTemplateArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateSchedulingArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateDiskArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateNetworkInterfaceArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
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 default_ = new Account("default", AccountArgs.builder()
.accountId("service-account-id")
.displayName("Service Account")
.build());
final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()
.family("debian-11")
.project("debian-cloud")
.build());
var foobar = new Disk("foobar", DiskArgs.builder()
.name("existing-disk")
.image(myImage.applyValue(getImageResult -> getImageResult.selfLink()))
.size(10)
.type("pd-ssd")
.zone("us-central1-a")
.build());
var dailyBackup = new ResourcePolicy("dailyBackup", ResourcePolicyArgs.builder()
.name("every-day-4am")
.region("us-central1")
.snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()
.schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()
.dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()
.daysInCycle(1)
.startTime("04:00")
.build())
.build())
.build())
.build());
var defaultInstanceTemplate = new InstanceTemplate("defaultInstanceTemplate", InstanceTemplateArgs.builder()
.name("appserver-template")
.description("This template is used to create app server instances.")
.tags(
"foo",
"bar")
.labels(Map.of("environment", "dev"))
.instanceDescription("description assigned to instances")
.machineType("e2-medium")
.canIpForward(false)
.scheduling(InstanceTemplateSchedulingArgs.builder()
.automaticRestart(true)
.onHostMaintenance("MIGRATE")
.build())
.disks(
InstanceTemplateDiskArgs.builder()
.sourceImage("debian-cloud/debian-11")
.autoDelete(true)
.boot(true)
.resourcePolicies(dailyBackup.id())
.build(),
InstanceTemplateDiskArgs.builder()
.source(foobar.name())
.autoDelete(false)
.boot(false)
.build())
.networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
.network("default")
.build())
.metadata(Map.of("foo", "bar"))
.serviceAccount(InstanceTemplateServiceAccountArgs.builder()
.email(default_.email())
.scopes("cloud-platform")
.build())
.build());
}
}
resources:
default:
type: gcp:serviceaccount:Account
properties:
accountId: service-account-id
displayName: Service Account
defaultInstanceTemplate:
type: gcp:compute:InstanceTemplate
name: default
properties:
name: appserver-template
description: This template is used to create app server instances.
tags:
- foo
- bar
labels:
environment: dev
instanceDescription: description assigned to instances
machineType: e2-medium
canIpForward: false
scheduling:
automaticRestart: true
onHostMaintenance: MIGRATE
disks:
- sourceImage: debian-cloud/debian-11
autoDelete: true
boot: true
resourcePolicies: ${dailyBackup.id}
- source: ${foobar.name}
autoDelete: false
boot: false
networkInterfaces:
- network: default
metadata:
foo: bar
serviceAccount:
email: ${default.email}
scopes:
- cloud-platform
foobar:
type: gcp:compute:Disk
properties:
name: existing-disk
image: ${myImage.selfLink}
size: 10
type: pd-ssd
zone: us-central1-a
dailyBackup:
type: gcp:compute:ResourcePolicy
name: daily_backup
properties:
name: every-day-4am
region: us-central1
snapshotSchedulePolicy:
schedule:
dailySchedule:
daysInCycle: 1
startTime: 04:00
variables:
myImage:
fn::invoke:
Function: gcp:compute:getImage
Arguments:
family: debian-11
project: debian-cloud
Automatic Envoy Deployment
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const default = gcp.compute.getDefaultServiceAccount({});
const myImage = gcp.compute.getImage({
family: "debian-11",
project: "debian-cloud",
});
const foobar = new gcp.compute.InstanceTemplate("foobar", {
name: "appserver-template",
machineType: "e2-medium",
canIpForward: false,
tags: [
"foo",
"bar",
],
disks: [{
sourceImage: myImage.then(myImage => myImage.selfLink),
autoDelete: true,
boot: true,
}],
networkInterfaces: [{
network: "default",
}],
scheduling: {
preemptible: false,
automaticRestart: true,
},
metadata: {
"gce-software-declaration": `{
"softwareRecipes": [{
"name": "install-gce-service-proxy-agent",
"desired_state": "INSTALLED",
"installSteps": [{
"scriptRun": {
"script": "#! /bin/bash\\nZONE=(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\\nexport SERVICE_PROXY_AGENT_DIRECTORY=(mktemp -d)\\nsudo gsutil cp gs://gce-service-proxy-"ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "SERVICE_PROXY_AGENT_DIRECTORY"\\nsudo tar -xzf "SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "SERVICE_PROXY_AGENT_DIRECTORY"\\n"SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
}
}]
}]
}
`,
"gce-service-proxy": `{
"api-version": "0.2",
"proxy-spec": {
"proxy-port": 15001,
"network": "my-network",
"tracing": "ON",
"access-log": "/var/log/envoy/access.log"
}
"service": {
"serving-ports": [80, 81]
},
"labels": {
"app_name": "bookserver_app",
"app_version": "STABLE"
}
}
`,
"enable-guest-attributes": "true",
"enable-osconfig": "true",
},
serviceAccount: {
email: _default.then(_default => _default.email),
scopes: ["cloud-platform"],
},
labels: {
"gce-service-proxy": "on",
},
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.get_default_service_account()
my_image = gcp.compute.get_image(family="debian-11",
project="debian-cloud")
foobar = gcp.compute.InstanceTemplate("foobar",
name="appserver-template",
machine_type="e2-medium",
can_ip_forward=False,
tags=[
"foo",
"bar",
],
disks=[gcp.compute.InstanceTemplateDiskArgs(
source_image=my_image.self_link,
auto_delete=True,
boot=True,
)],
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
network="default",
)],
scheduling=gcp.compute.InstanceTemplateSchedulingArgs(
preemptible=False,
automatic_restart=True,
),
metadata={
"gce-software-declaration": """{
"softwareRecipes": [{
"name": "install-gce-service-proxy-agent",
"desired_state": "INSTALLED",
"installSteps": [{
"scriptRun": {
"script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
}
}]
}]
}
""",
"gce-service-proxy": """{
"api-version": "0.2",
"proxy-spec": {
"proxy-port": 15001,
"network": "my-network",
"tracing": "ON",
"access-log": "/var/log/envoy/access.log"
}
"service": {
"serving-ports": [80, 81]
},
"labels": {
"app_name": "bookserver_app",
"app_version": "STABLE"
}
}
""",
"enable-guest-attributes": "true",
"enable-osconfig": "true",
},
service_account=gcp.compute.InstanceTemplateServiceAccountArgs(
email=default.email,
scopes=["cloud-platform"],
),
labels={
"gce-service-proxy": "on",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := compute.GetDefaultServiceAccount(ctx, nil, nil)
if err != nil {
return err
}
myImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{
Family: pulumi.StringRef("debian-11"),
Project: pulumi.StringRef("debian-cloud"),
}, nil)
if err != nil {
return err
}
_, err = compute.NewInstanceTemplate(ctx, "foobar", &compute.InstanceTemplateArgs{
Name: pulumi.String("appserver-template"),
MachineType: pulumi.String("e2-medium"),
CanIpForward: pulumi.Bool(false),
Tags: pulumi.StringArray{
pulumi.String("foo"),
pulumi.String("bar"),
},
Disks: compute.InstanceTemplateDiskArray{
&compute.InstanceTemplateDiskArgs{
SourceImage: pulumi.String(myImage.SelfLink),
AutoDelete: pulumi.Bool(true),
Boot: pulumi.Bool(true),
},
},
NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
&compute.InstanceTemplateNetworkInterfaceArgs{
Network: pulumi.String("default"),
},
},
Scheduling: &compute.InstanceTemplateSchedulingArgs{
Preemptible: pulumi.Bool(false),
AutomaticRestart: pulumi.Bool(true),
},
Metadata: pulumi.Map{
"gce-software-declaration": pulumi.Any(`{
"softwareRecipes": [{
"name": "install-gce-service-proxy-agent",
"desired_state": "INSTALLED",
"installSteps": [{
"scriptRun": {
"script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
}
}]
}]
}
`),
"gce-service-proxy": pulumi.Any(`{
"api-version": "0.2",
"proxy-spec": {
"proxy-port": 15001,
"network": "my-network",
"tracing": "ON",
"access-log": "/var/log/envoy/access.log"
}
"service": {
"serving-ports": [80, 81]
},
"labels": {
"app_name": "bookserver_app",
"app_version": "STABLE"
}
}
`),
"enable-guest-attributes": pulumi.Any("true"),
"enable-osconfig": pulumi.Any("true"),
},
ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
Email: pulumi.String(_default.Email),
Scopes: pulumi.StringArray{
pulumi.String("cloud-platform"),
},
},
Labels: pulumi.StringMap{
"gce-service-proxy": pulumi.String("on"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @default = Gcp.Compute.GetDefaultServiceAccount.Invoke();
var myImage = Gcp.Compute.GetImage.Invoke(new()
{
Family = "debian-11",
Project = "debian-cloud",
});
var foobar = new Gcp.Compute.InstanceTemplate("foobar", new()
{
Name = "appserver-template",
MachineType = "e2-medium",
CanIpForward = false,
Tags = new[]
{
"foo",
"bar",
},
Disks = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
{
SourceImage = myImage.Apply(getImageResult => getImageResult.SelfLink),
AutoDelete = true,
Boot = true,
},
},
NetworkInterfaces = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
{
Network = "default",
},
},
Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs
{
Preemptible = false,
AutomaticRestart = true,
},
Metadata =
{
{ "gce-software-declaration", @"{
""softwareRecipes"": [{
""name"": ""install-gce-service-proxy-agent"",
""desired_state"": ""INSTALLED"",
""installSteps"": [{
""scriptRun"": {
""script"": ""#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp gs://gce-service-proxy-""$ZONE""/service-proxy-agent/releases/service-proxy-agent-0.2.tgz ""$SERVICE_PROXY_AGENT_DIRECTORY"" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz ""$SERVICE_PROXY_AGENT_DIRECTORY""\nsudo tar -xzf ""$SERVICE_PROXY_AGENT_DIRECTORY""/service-proxy-agent-0.2.tgz -C ""$SERVICE_PROXY_AGENT_DIRECTORY""\n""$SERVICE_PROXY_AGENT_DIRECTORY""/service-proxy-agent/service-proxy-agent-bootstrap.sh""
}
}]
}]
}
" },
{ "gce-service-proxy", @"{
""api-version"": ""0.2"",
""proxy-spec"": {
""proxy-port"": 15001,
""network"": ""my-network"",
""tracing"": ""ON"",
""access-log"": ""/var/log/envoy/access.log""
}
""service"": {
""serving-ports"": [80, 81]
},
""labels"": {
""app_name"": ""bookserver_app"",
""app_version"": ""STABLE""
}
}
" },
{ "enable-guest-attributes", "true" },
{ "enable-osconfig", "true" },
},
ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
{
Email = @default.Apply(@default => @default.Apply(getDefaultServiceAccountResult => getDefaultServiceAccountResult.Email)),
Scopes = new[]
{
"cloud-platform",
},
},
Labels =
{
{ "gce-service-proxy", "on" },
},
});
});
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.GetDefaultServiceAccountArgs;
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.InstanceTemplateSchedulingArgs;
import com.pulumi.gcp.compute.inputs.InstanceTemplateServiceAccountArgs;
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 default = ComputeFunctions.getDefaultServiceAccount();
final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()
.family("debian-11")
.project("debian-cloud")
.build());
var foobar = new InstanceTemplate("foobar", InstanceTemplateArgs.builder()
.name("appserver-template")
.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())
.scheduling(InstanceTemplateSchedulingArgs.builder()
.preemptible(false)
.automaticRestart(true)
.build())
.metadata(Map.ofEntries(
Map.entry("gce-software-declaration", """
{
"softwareRecipes": [{
"name": "install-gce-service-proxy-agent",
"desired_state": "INSTALLED",
"installSteps": [{
"scriptRun": {
"script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
}
}]
}]
}
"""),
Map.entry("gce-service-proxy", """
{
"api-version": "0.2",
"proxy-spec": {
"proxy-port": 15001,
"network": "my-network",
"tracing": "ON",
"access-log": "/var/log/envoy/access.log"
}
"service": {
"serving-ports": [80, 81]
},
"labels": {
"app_name": "bookserver_app",
"app_version": "STABLE"
}
}
"""),
Map.entry("enable-guest-attributes", "true"),
Map.entry("enable-osconfig", "true")
))
.serviceAccount(InstanceTemplateServiceAccountArgs.builder()
.email(default_.email())
.scopes("cloud-platform")
.build())
.labels(Map.of("gce-service-proxy", "on"))
.build());
}
}
resources:
foobar:
type: gcp:compute:InstanceTemplate
properties:
name: appserver-template
machineType: e2-medium
canIpForward: false
tags:
- foo
- bar
disks:
- sourceImage: ${myImage.selfLink}
autoDelete: true
boot: true
networkInterfaces:
- network: default
scheduling:
preemptible: false
automaticRestart: true
metadata:
gce-software-declaration: |
{
"softwareRecipes": [{
"name": "install-gce-service-proxy-agent",
"desired_state": "INSTALLED",
"installSteps": [{
"scriptRun": {
"script": "#! /bin/bash\nZONE=$(curl --silent http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut -d/ -f4 )\nexport SERVICE_PROXY_AGENT_DIRECTORY=$(mktemp -d)\nsudo gsutil cp gs://gce-service-proxy-"$ZONE"/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY" || sudo gsutil cp gs://gce-service-proxy/service-proxy-agent/releases/service-proxy-agent-0.2.tgz "$SERVICE_PROXY_AGENT_DIRECTORY"\nsudo tar -xzf "$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent-0.2.tgz -C "$SERVICE_PROXY_AGENT_DIRECTORY"\n"$SERVICE_PROXY_AGENT_DIRECTORY"/service-proxy-agent/service-proxy-agent-bootstrap.sh"
}
}]
}]
}
gce-service-proxy: |
{
"api-version": "0.2",
"proxy-spec": {
"proxy-port": 15001,
"network": "my-network",
"tracing": "ON",
"access-log": "/var/log/envoy/access.log"
}
"service": {
"serving-ports": [80, 81]
},
"labels": {
"app_name": "bookserver_app",
"app_version": "STABLE"
}
}
enable-guest-attributes: 'true'
enable-osconfig: 'true'
serviceAccount:
email: ${default.email}
scopes:
- cloud-platform
labels:
gce-service-proxy: on
variables:
default:
fn::invoke:
Function: gcp:compute:getDefaultServiceAccount
Arguments: {}
myImage:
fn::invoke:
Function: gcp:compute:getImage
Arguments:
family: debian-11
project: debian-cloud
Deploying the Latest Image
A common way to use instance templates and managed instance groups is to deploy the latest image in a family, usually the latest build of your application. There are two ways to do this in the provider, and they have their pros and cons. The difference ends up being in how “latest” is interpreted. You can either deploy the latest image available when the provider runs, or you can have each instance check what the latest image is when it’s being created, either as part of a scaling event or being rebuilt by the instance group manager.
If you’re not sure, we recommend deploying the latest image available when the provider runs,
because this means all the instances in your group will be based on the same image, always,
and means that no upgrades or changes to your instances happen outside of a pulumi up
.
You can achieve this by using the gcp.compute.Image
data source, which will retrieve the latest image on every pulumi apply
, and will update
the template to use that specific image:
data "google_compute_image" "my_image" {
family = "debian-11"
project = "debian-cloud"
}
resource "google_compute_instance_template" "instance_template" {
name_prefix = "instance-template-"
machine_type = "e2-medium"
region = "us-central1"
// boot disk
disk {
source_image = data.google_compute_image.my_image.self_link
}
}
To have instances update to the latest on every scaling event or instance re-creation, use the family as the image for the disk, and it will use GCP’s default behavior, setting the image for the template to the family:
resource "google_compute_instance_template" "instance_template" {
name_prefix = "instance-template-"
machine_type = "e2-medium"
region = "us-central1"
// boot disk
disk {
source_image = "debian-cloud/debian-11"
}
}
Create InstanceTemplate Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new InstanceTemplate(name: string, args: InstanceTemplateArgs, opts?: CustomResourceOptions);
@overload
def InstanceTemplate(resource_name: str,
args: InstanceTemplateArgs,
opts: Optional[ResourceOptions] = None)
@overload
def InstanceTemplate(resource_name: str,
opts: Optional[ResourceOptions] = None,
disks: Optional[Sequence[InstanceTemplateDiskArgs]] = None,
machine_type: Optional[str] = None,
min_cpu_platform: Optional[str] = None,
guest_accelerators: Optional[Sequence[InstanceTemplateGuestAcceleratorArgs]] = None,
name_prefix: Optional[str] = None,
enable_display: Optional[bool] = None,
network_interfaces: Optional[Sequence[InstanceTemplateNetworkInterfaceArgs]] = None,
instance_description: Optional[str] = None,
labels: Optional[Mapping[str, str]] = None,
network_performance_config: Optional[InstanceTemplateNetworkPerformanceConfigArgs] = None,
metadata: Optional[Mapping[str, Any]] = None,
metadata_startup_script: Optional[str] = None,
advanced_machine_features: Optional[InstanceTemplateAdvancedMachineFeaturesArgs] = None,
name: Optional[str] = None,
confidential_instance_config: Optional[InstanceTemplateConfidentialInstanceConfigArgs] = None,
description: Optional[str] = None,
can_ip_forward: Optional[bool] = None,
partner_metadata: Optional[Mapping[str, str]] = None,
project: Optional[str] = None,
region: Optional[str] = None,
reservation_affinity: Optional[InstanceTemplateReservationAffinityArgs] = None,
resource_manager_tags: Optional[Mapping[str, str]] = None,
resource_policies: Optional[str] = None,
scheduling: Optional[InstanceTemplateSchedulingArgs] = None,
service_account: Optional[InstanceTemplateServiceAccountArgs] = None,
shielded_instance_config: Optional[InstanceTemplateShieldedInstanceConfigArgs] = None,
tags: Optional[Sequence[str]] = None)
func NewInstanceTemplate(ctx *Context, name string, args InstanceTemplateArgs, opts ...ResourceOption) (*InstanceTemplate, error)
public InstanceTemplate(string name, InstanceTemplateArgs args, CustomResourceOptions? opts = null)
public InstanceTemplate(String name, InstanceTemplateArgs args)
public InstanceTemplate(String name, InstanceTemplateArgs args, CustomResourceOptions options)
type: gcp:compute:InstanceTemplate
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 InstanceTemplateArgs
- 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 InstanceTemplateArgs
- 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 InstanceTemplateArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args InstanceTemplateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args InstanceTemplateArgs
- 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 instanceTemplateResource = new Gcp.Compute.InstanceTemplate("instanceTemplateResource", new()
{
Disks = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateDiskArgs
{
AutoDelete = false,
Boot = false,
DeviceName = "string",
DiskEncryptionKey = new Gcp.Compute.Inputs.InstanceTemplateDiskDiskEncryptionKeyArgs
{
KmsKeySelfLink = "string",
},
DiskName = "string",
DiskSizeGb = 0,
DiskType = "string",
Interface = "string",
Labels =
{
{ "string", "string" },
},
Mode = "string",
ProvisionedIops = 0,
ResourceManagerTags =
{
{ "string", "string" },
},
ResourcePolicies = "string",
Source = "string",
SourceImage = "string",
SourceImageEncryptionKey = new Gcp.Compute.Inputs.InstanceTemplateDiskSourceImageEncryptionKeyArgs
{
KmsKeySelfLink = "string",
KmsKeyServiceAccount = "string",
},
SourceSnapshot = "string",
SourceSnapshotEncryptionKey = new Gcp.Compute.Inputs.InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs
{
KmsKeySelfLink = "string",
KmsKeyServiceAccount = "string",
},
Type = "string",
},
},
MachineType = "string",
MinCpuPlatform = "string",
GuestAccelerators = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateGuestAcceleratorArgs
{
Count = 0,
Type = "string",
},
},
NamePrefix = "string",
EnableDisplay = false,
NetworkInterfaces = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceArgs
{
AccessConfigs = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceAccessConfigArgs
{
NatIp = "string",
NetworkTier = "string",
PublicPtrDomainName = "string",
},
},
AliasIpRanges = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceAliasIpRangeArgs
{
IpCidrRange = "string",
SubnetworkRangeName = "string",
},
},
InternalIpv6PrefixLength = 0,
Ipv6AccessConfigs = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs
{
NetworkTier = "string",
ExternalIpv6 = "string",
ExternalIpv6PrefixLength = "string",
Name = "string",
PublicPtrDomainName = "string",
},
},
Ipv6AccessType = "string",
Ipv6Address = "string",
Name = "string",
Network = "string",
NetworkAttachment = "string",
NetworkIp = "string",
NicType = "string",
QueueCount = 0,
StackType = "string",
Subnetwork = "string",
SubnetworkProject = "string",
},
},
InstanceDescription = "string",
Labels =
{
{ "string", "string" },
},
NetworkPerformanceConfig = new Gcp.Compute.Inputs.InstanceTemplateNetworkPerformanceConfigArgs
{
TotalEgressBandwidthTier = "string",
},
Metadata =
{
{ "string", "any" },
},
MetadataStartupScript = "string",
AdvancedMachineFeatures = new Gcp.Compute.Inputs.InstanceTemplateAdvancedMachineFeaturesArgs
{
EnableNestedVirtualization = false,
ThreadsPerCore = 0,
VisibleCoreCount = 0,
},
Name = "string",
ConfidentialInstanceConfig = new Gcp.Compute.Inputs.InstanceTemplateConfidentialInstanceConfigArgs
{
ConfidentialInstanceType = "string",
EnableConfidentialCompute = false,
},
Description = "string",
CanIpForward = false,
PartnerMetadata =
{
{ "string", "string" },
},
Project = "string",
Region = "string",
ReservationAffinity = new Gcp.Compute.Inputs.InstanceTemplateReservationAffinityArgs
{
Type = "string",
SpecificReservation = new Gcp.Compute.Inputs.InstanceTemplateReservationAffinitySpecificReservationArgs
{
Key = "string",
Values = new[]
{
"string",
},
},
},
ResourceManagerTags =
{
{ "string", "string" },
},
ResourcePolicies = "string",
Scheduling = new Gcp.Compute.Inputs.InstanceTemplateSchedulingArgs
{
AutomaticRestart = false,
InstanceTerminationAction = "string",
LocalSsdRecoveryTimeouts = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs
{
Seconds = 0,
Nanos = 0,
},
},
MaintenanceInterval = "string",
MaxRunDuration = new Gcp.Compute.Inputs.InstanceTemplateSchedulingMaxRunDurationArgs
{
Seconds = 0,
Nanos = 0,
},
MinNodeCpus = 0,
NodeAffinities = new[]
{
new Gcp.Compute.Inputs.InstanceTemplateSchedulingNodeAffinityArgs
{
Key = "string",
Operator = "string",
Values = new[]
{
"string",
},
},
},
OnHostMaintenance = "string",
OnInstanceStopAction = new Gcp.Compute.Inputs.InstanceTemplateSchedulingOnInstanceStopActionArgs
{
DiscardLocalSsd = false,
},
Preemptible = false,
ProvisioningModel = "string",
},
ServiceAccount = new Gcp.Compute.Inputs.InstanceTemplateServiceAccountArgs
{
Scopes = new[]
{
"string",
},
Email = "string",
},
ShieldedInstanceConfig = new Gcp.Compute.Inputs.InstanceTemplateShieldedInstanceConfigArgs
{
EnableIntegrityMonitoring = false,
EnableSecureBoot = false,
EnableVtpm = false,
},
Tags = new[]
{
"string",
},
});
example, err := compute.NewInstanceTemplate(ctx, "instanceTemplateResource", &compute.InstanceTemplateArgs{
Disks: compute.InstanceTemplateDiskArray{
&compute.InstanceTemplateDiskArgs{
AutoDelete: pulumi.Bool(false),
Boot: pulumi.Bool(false),
DeviceName: pulumi.String("string"),
DiskEncryptionKey: &compute.InstanceTemplateDiskDiskEncryptionKeyArgs{
KmsKeySelfLink: pulumi.String("string"),
},
DiskName: pulumi.String("string"),
DiskSizeGb: pulumi.Int(0),
DiskType: pulumi.String("string"),
Interface: pulumi.String("string"),
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Mode: pulumi.String("string"),
ProvisionedIops: pulumi.Int(0),
ResourceManagerTags: pulumi.StringMap{
"string": pulumi.String("string"),
},
ResourcePolicies: pulumi.String("string"),
Source: pulumi.String("string"),
SourceImage: pulumi.String("string"),
SourceImageEncryptionKey: &compute.InstanceTemplateDiskSourceImageEncryptionKeyArgs{
KmsKeySelfLink: pulumi.String("string"),
KmsKeyServiceAccount: pulumi.String("string"),
},
SourceSnapshot: pulumi.String("string"),
SourceSnapshotEncryptionKey: &compute.InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs{
KmsKeySelfLink: pulumi.String("string"),
KmsKeyServiceAccount: pulumi.String("string"),
},
Type: pulumi.String("string"),
},
},
MachineType: pulumi.String("string"),
MinCpuPlatform: pulumi.String("string"),
GuestAccelerators: compute.InstanceTemplateGuestAcceleratorArray{
&compute.InstanceTemplateGuestAcceleratorArgs{
Count: pulumi.Int(0),
Type: pulumi.String("string"),
},
},
NamePrefix: pulumi.String("string"),
EnableDisplay: pulumi.Bool(false),
NetworkInterfaces: compute.InstanceTemplateNetworkInterfaceArray{
&compute.InstanceTemplateNetworkInterfaceArgs{
AccessConfigs: compute.InstanceTemplateNetworkInterfaceAccessConfigArray{
&compute.InstanceTemplateNetworkInterfaceAccessConfigArgs{
NatIp: pulumi.String("string"),
NetworkTier: pulumi.String("string"),
PublicPtrDomainName: pulumi.String("string"),
},
},
AliasIpRanges: compute.InstanceTemplateNetworkInterfaceAliasIpRangeArray{
&compute.InstanceTemplateNetworkInterfaceAliasIpRangeArgs{
IpCidrRange: pulumi.String("string"),
SubnetworkRangeName: pulumi.String("string"),
},
},
InternalIpv6PrefixLength: pulumi.Int(0),
Ipv6AccessConfigs: compute.InstanceTemplateNetworkInterfaceIpv6AccessConfigArray{
&compute.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs{
NetworkTier: pulumi.String("string"),
ExternalIpv6: pulumi.String("string"),
ExternalIpv6PrefixLength: pulumi.String("string"),
Name: pulumi.String("string"),
PublicPtrDomainName: pulumi.String("string"),
},
},
Ipv6AccessType: pulumi.String("string"),
Ipv6Address: pulumi.String("string"),
Name: pulumi.String("string"),
Network: pulumi.String("string"),
NetworkAttachment: pulumi.String("string"),
NetworkIp: pulumi.String("string"),
NicType: pulumi.String("string"),
QueueCount: pulumi.Int(0),
StackType: pulumi.String("string"),
Subnetwork: pulumi.String("string"),
SubnetworkProject: pulumi.String("string"),
},
},
InstanceDescription: pulumi.String("string"),
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
NetworkPerformanceConfig: &compute.InstanceTemplateNetworkPerformanceConfigArgs{
TotalEgressBandwidthTier: pulumi.String("string"),
},
Metadata: pulumi.Map{
"string": pulumi.Any("any"),
},
MetadataStartupScript: pulumi.String("string"),
AdvancedMachineFeatures: &compute.InstanceTemplateAdvancedMachineFeaturesArgs{
EnableNestedVirtualization: pulumi.Bool(false),
ThreadsPerCore: pulumi.Int(0),
VisibleCoreCount: pulumi.Int(0),
},
Name: pulumi.String("string"),
ConfidentialInstanceConfig: &compute.InstanceTemplateConfidentialInstanceConfigArgs{
ConfidentialInstanceType: pulumi.String("string"),
EnableConfidentialCompute: pulumi.Bool(false),
},
Description: pulumi.String("string"),
CanIpForward: pulumi.Bool(false),
PartnerMetadata: pulumi.StringMap{
"string": pulumi.String("string"),
},
Project: pulumi.String("string"),
Region: pulumi.String("string"),
ReservationAffinity: &compute.InstanceTemplateReservationAffinityArgs{
Type: pulumi.String("string"),
SpecificReservation: &compute.InstanceTemplateReservationAffinitySpecificReservationArgs{
Key: pulumi.String("string"),
Values: pulumi.StringArray{
pulumi.String("string"),
},
},
},
ResourceManagerTags: pulumi.StringMap{
"string": pulumi.String("string"),
},
ResourcePolicies: pulumi.String("string"),
Scheduling: &compute.InstanceTemplateSchedulingArgs{
AutomaticRestart: pulumi.Bool(false),
InstanceTerminationAction: pulumi.String("string"),
LocalSsdRecoveryTimeouts: compute.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArray{
&compute.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs{
Seconds: pulumi.Int(0),
Nanos: pulumi.Int(0),
},
},
MaintenanceInterval: pulumi.String("string"),
MaxRunDuration: &compute.InstanceTemplateSchedulingMaxRunDurationArgs{
Seconds: pulumi.Int(0),
Nanos: pulumi.Int(0),
},
MinNodeCpus: pulumi.Int(0),
NodeAffinities: compute.InstanceTemplateSchedulingNodeAffinityArray{
&compute.InstanceTemplateSchedulingNodeAffinityArgs{
Key: pulumi.String("string"),
Operator: pulumi.String("string"),
Values: pulumi.StringArray{
pulumi.String("string"),
},
},
},
OnHostMaintenance: pulumi.String("string"),
OnInstanceStopAction: &compute.InstanceTemplateSchedulingOnInstanceStopActionArgs{
DiscardLocalSsd: pulumi.Bool(false),
},
Preemptible: pulumi.Bool(false),
ProvisioningModel: pulumi.String("string"),
},
ServiceAccount: &compute.InstanceTemplateServiceAccountArgs{
Scopes: pulumi.StringArray{
pulumi.String("string"),
},
Email: pulumi.String("string"),
},
ShieldedInstanceConfig: &compute.InstanceTemplateShieldedInstanceConfigArgs{
EnableIntegrityMonitoring: pulumi.Bool(false),
EnableSecureBoot: pulumi.Bool(false),
EnableVtpm: pulumi.Bool(false),
},
Tags: pulumi.StringArray{
pulumi.String("string"),
},
})
var instanceTemplateResource = new InstanceTemplate("instanceTemplateResource", InstanceTemplateArgs.builder()
.disks(InstanceTemplateDiskArgs.builder()
.autoDelete(false)
.boot(false)
.deviceName("string")
.diskEncryptionKey(InstanceTemplateDiskDiskEncryptionKeyArgs.builder()
.kmsKeySelfLink("string")
.build())
.diskName("string")
.diskSizeGb(0)
.diskType("string")
.interface_("string")
.labels(Map.of("string", "string"))
.mode("string")
.provisionedIops(0)
.resourceManagerTags(Map.of("string", "string"))
.resourcePolicies("string")
.source("string")
.sourceImage("string")
.sourceImageEncryptionKey(InstanceTemplateDiskSourceImageEncryptionKeyArgs.builder()
.kmsKeySelfLink("string")
.kmsKeyServiceAccount("string")
.build())
.sourceSnapshot("string")
.sourceSnapshotEncryptionKey(InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs.builder()
.kmsKeySelfLink("string")
.kmsKeyServiceAccount("string")
.build())
.type("string")
.build())
.machineType("string")
.minCpuPlatform("string")
.guestAccelerators(InstanceTemplateGuestAcceleratorArgs.builder()
.count(0)
.type("string")
.build())
.namePrefix("string")
.enableDisplay(false)
.networkInterfaces(InstanceTemplateNetworkInterfaceArgs.builder()
.accessConfigs(InstanceTemplateNetworkInterfaceAccessConfigArgs.builder()
.natIp("string")
.networkTier("string")
.publicPtrDomainName("string")
.build())
.aliasIpRanges(InstanceTemplateNetworkInterfaceAliasIpRangeArgs.builder()
.ipCidrRange("string")
.subnetworkRangeName("string")
.build())
.internalIpv6PrefixLength(0)
.ipv6AccessConfigs(InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs.builder()
.networkTier("string")
.externalIpv6("string")
.externalIpv6PrefixLength("string")
.name("string")
.publicPtrDomainName("string")
.build())
.ipv6AccessType("string")
.ipv6Address("string")
.name("string")
.network("string")
.networkAttachment("string")
.networkIp("string")
.nicType("string")
.queueCount(0)
.stackType("string")
.subnetwork("string")
.subnetworkProject("string")
.build())
.instanceDescription("string")
.labels(Map.of("string", "string"))
.networkPerformanceConfig(InstanceTemplateNetworkPerformanceConfigArgs.builder()
.totalEgressBandwidthTier("string")
.build())
.metadata(Map.of("string", "any"))
.metadataStartupScript("string")
.advancedMachineFeatures(InstanceTemplateAdvancedMachineFeaturesArgs.builder()
.enableNestedVirtualization(false)
.threadsPerCore(0)
.visibleCoreCount(0)
.build())
.name("string")
.confidentialInstanceConfig(InstanceTemplateConfidentialInstanceConfigArgs.builder()
.confidentialInstanceType("string")
.enableConfidentialCompute(false)
.build())
.description("string")
.canIpForward(false)
.partnerMetadata(Map.of("string", "string"))
.project("string")
.region("string")
.reservationAffinity(InstanceTemplateReservationAffinityArgs.builder()
.type("string")
.specificReservation(InstanceTemplateReservationAffinitySpecificReservationArgs.builder()
.key("string")
.values("string")
.build())
.build())
.resourceManagerTags(Map.of("string", "string"))
.resourcePolicies("string")
.scheduling(InstanceTemplateSchedulingArgs.builder()
.automaticRestart(false)
.instanceTerminationAction("string")
.localSsdRecoveryTimeouts(InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs.builder()
.seconds(0)
.nanos(0)
.build())
.maintenanceInterval("string")
.maxRunDuration(InstanceTemplateSchedulingMaxRunDurationArgs.builder()
.seconds(0)
.nanos(0)
.build())
.minNodeCpus(0)
.nodeAffinities(InstanceTemplateSchedulingNodeAffinityArgs.builder()
.key("string")
.operator("string")
.values("string")
.build())
.onHostMaintenance("string")
.onInstanceStopAction(InstanceTemplateSchedulingOnInstanceStopActionArgs.builder()
.discardLocalSsd(false)
.build())
.preemptible(false)
.provisioningModel("string")
.build())
.serviceAccount(InstanceTemplateServiceAccountArgs.builder()
.scopes("string")
.email("string")
.build())
.shieldedInstanceConfig(InstanceTemplateShieldedInstanceConfigArgs.builder()
.enableIntegrityMonitoring(false)
.enableSecureBoot(false)
.enableVtpm(false)
.build())
.tags("string")
.build());
instance_template_resource = gcp.compute.InstanceTemplate("instanceTemplateResource",
disks=[gcp.compute.InstanceTemplateDiskArgs(
auto_delete=False,
boot=False,
device_name="string",
disk_encryption_key=gcp.compute.InstanceTemplateDiskDiskEncryptionKeyArgs(
kms_key_self_link="string",
),
disk_name="string",
disk_size_gb=0,
disk_type="string",
interface="string",
labels={
"string": "string",
},
mode="string",
provisioned_iops=0,
resource_manager_tags={
"string": "string",
},
resource_policies="string",
source="string",
source_image="string",
source_image_encryption_key=gcp.compute.InstanceTemplateDiskSourceImageEncryptionKeyArgs(
kms_key_self_link="string",
kms_key_service_account="string",
),
source_snapshot="string",
source_snapshot_encryption_key=gcp.compute.InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs(
kms_key_self_link="string",
kms_key_service_account="string",
),
type="string",
)],
machine_type="string",
min_cpu_platform="string",
guest_accelerators=[gcp.compute.InstanceTemplateGuestAcceleratorArgs(
count=0,
type="string",
)],
name_prefix="string",
enable_display=False,
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs(
nat_ip="string",
network_tier="string",
public_ptr_domain_name="string",
)],
alias_ip_ranges=[gcp.compute.InstanceTemplateNetworkInterfaceAliasIpRangeArgs(
ip_cidr_range="string",
subnetwork_range_name="string",
)],
internal_ipv6_prefix_length=0,
ipv6_access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs(
network_tier="string",
external_ipv6="string",
external_ipv6_prefix_length="string",
name="string",
public_ptr_domain_name="string",
)],
ipv6_access_type="string",
ipv6_address="string",
name="string",
network="string",
network_attachment="string",
network_ip="string",
nic_type="string",
queue_count=0,
stack_type="string",
subnetwork="string",
subnetwork_project="string",
)],
instance_description="string",
labels={
"string": "string",
},
network_performance_config=gcp.compute.InstanceTemplateNetworkPerformanceConfigArgs(
total_egress_bandwidth_tier="string",
),
metadata={
"string": "any",
},
metadata_startup_script="string",
advanced_machine_features=gcp.compute.InstanceTemplateAdvancedMachineFeaturesArgs(
enable_nested_virtualization=False,
threads_per_core=0,
visible_core_count=0,
),
name="string",
confidential_instance_config=gcp.compute.InstanceTemplateConfidentialInstanceConfigArgs(
confidential_instance_type="string",
enable_confidential_compute=False,
),
description="string",
can_ip_forward=False,
partner_metadata={
"string": "string",
},
project="string",
region="string",
reservation_affinity=gcp.compute.InstanceTemplateReservationAffinityArgs(
type="string",
specific_reservation=gcp.compute.InstanceTemplateReservationAffinitySpecificReservationArgs(
key="string",
values=["string"],
),
),
resource_manager_tags={
"string": "string",
},
resource_policies="string",
scheduling=gcp.compute.InstanceTemplateSchedulingArgs(
automatic_restart=False,
instance_termination_action="string",
local_ssd_recovery_timeouts=[gcp.compute.InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs(
seconds=0,
nanos=0,
)],
maintenance_interval="string",
max_run_duration=gcp.compute.InstanceTemplateSchedulingMaxRunDurationArgs(
seconds=0,
nanos=0,
),
min_node_cpus=0,
node_affinities=[gcp.compute.InstanceTemplateSchedulingNodeAffinityArgs(
key="string",
operator="string",
values=["string"],
)],
on_host_maintenance="string",
on_instance_stop_action=gcp.compute.InstanceTemplateSchedulingOnInstanceStopActionArgs(
discard_local_ssd=False,
),
preemptible=False,
provisioning_model="string",
),
service_account=gcp.compute.InstanceTemplateServiceAccountArgs(
scopes=["string"],
email="string",
),
shielded_instance_config=gcp.compute.InstanceTemplateShieldedInstanceConfigArgs(
enable_integrity_monitoring=False,
enable_secure_boot=False,
enable_vtpm=False,
),
tags=["string"])
const instanceTemplateResource = new gcp.compute.InstanceTemplate("instanceTemplateResource", {
disks: [{
autoDelete: false,
boot: false,
deviceName: "string",
diskEncryptionKey: {
kmsKeySelfLink: "string",
},
diskName: "string",
diskSizeGb: 0,
diskType: "string",
"interface": "string",
labels: {
string: "string",
},
mode: "string",
provisionedIops: 0,
resourceManagerTags: {
string: "string",
},
resourcePolicies: "string",
source: "string",
sourceImage: "string",
sourceImageEncryptionKey: {
kmsKeySelfLink: "string",
kmsKeyServiceAccount: "string",
},
sourceSnapshot: "string",
sourceSnapshotEncryptionKey: {
kmsKeySelfLink: "string",
kmsKeyServiceAccount: "string",
},
type: "string",
}],
machineType: "string",
minCpuPlatform: "string",
guestAccelerators: [{
count: 0,
type: "string",
}],
namePrefix: "string",
enableDisplay: false,
networkInterfaces: [{
accessConfigs: [{
natIp: "string",
networkTier: "string",
publicPtrDomainName: "string",
}],
aliasIpRanges: [{
ipCidrRange: "string",
subnetworkRangeName: "string",
}],
internalIpv6PrefixLength: 0,
ipv6AccessConfigs: [{
networkTier: "string",
externalIpv6: "string",
externalIpv6PrefixLength: "string",
name: "string",
publicPtrDomainName: "string",
}],
ipv6AccessType: "string",
ipv6Address: "string",
name: "string",
network: "string",
networkAttachment: "string",
networkIp: "string",
nicType: "string",
queueCount: 0,
stackType: "string",
subnetwork: "string",
subnetworkProject: "string",
}],
instanceDescription: "string",
labels: {
string: "string",
},
networkPerformanceConfig: {
totalEgressBandwidthTier: "string",
},
metadata: {
string: "any",
},
metadataStartupScript: "string",
advancedMachineFeatures: {
enableNestedVirtualization: false,
threadsPerCore: 0,
visibleCoreCount: 0,
},
name: "string",
confidentialInstanceConfig: {
confidentialInstanceType: "string",
enableConfidentialCompute: false,
},
description: "string",
canIpForward: false,
partnerMetadata: {
string: "string",
},
project: "string",
region: "string",
reservationAffinity: {
type: "string",
specificReservation: {
key: "string",
values: ["string"],
},
},
resourceManagerTags: {
string: "string",
},
resourcePolicies: "string",
scheduling: {
automaticRestart: false,
instanceTerminationAction: "string",
localSsdRecoveryTimeouts: [{
seconds: 0,
nanos: 0,
}],
maintenanceInterval: "string",
maxRunDuration: {
seconds: 0,
nanos: 0,
},
minNodeCpus: 0,
nodeAffinities: [{
key: "string",
operator: "string",
values: ["string"],
}],
onHostMaintenance: "string",
onInstanceStopAction: {
discardLocalSsd: false,
},
preemptible: false,
provisioningModel: "string",
},
serviceAccount: {
scopes: ["string"],
email: "string",
},
shieldedInstanceConfig: {
enableIntegrityMonitoring: false,
enableSecureBoot: false,
enableVtpm: false,
},
tags: ["string"],
});
type: gcp:compute:InstanceTemplate
properties:
advancedMachineFeatures:
enableNestedVirtualization: false
threadsPerCore: 0
visibleCoreCount: 0
canIpForward: false
confidentialInstanceConfig:
confidentialInstanceType: string
enableConfidentialCompute: false
description: string
disks:
- autoDelete: false
boot: false
deviceName: string
diskEncryptionKey:
kmsKeySelfLink: string
diskName: string
diskSizeGb: 0
diskType: string
interface: string
labels:
string: string
mode: string
provisionedIops: 0
resourceManagerTags:
string: string
resourcePolicies: string
source: string
sourceImage: string
sourceImageEncryptionKey:
kmsKeySelfLink: string
kmsKeyServiceAccount: string
sourceSnapshot: string
sourceSnapshotEncryptionKey:
kmsKeySelfLink: string
kmsKeyServiceAccount: string
type: string
enableDisplay: false
guestAccelerators:
- count: 0
type: string
instanceDescription: string
labels:
string: string
machineType: string
metadata:
string: any
metadataStartupScript: string
minCpuPlatform: string
name: string
namePrefix: string
networkInterfaces:
- accessConfigs:
- natIp: string
networkTier: string
publicPtrDomainName: string
aliasIpRanges:
- ipCidrRange: string
subnetworkRangeName: string
internalIpv6PrefixLength: 0
ipv6AccessConfigs:
- externalIpv6: string
externalIpv6PrefixLength: string
name: string
networkTier: string
publicPtrDomainName: string
ipv6AccessType: string
ipv6Address: string
name: string
network: string
networkAttachment: string
networkIp: string
nicType: string
queueCount: 0
stackType: string
subnetwork: string
subnetworkProject: string
networkPerformanceConfig:
totalEgressBandwidthTier: string
partnerMetadata:
string: string
project: string
region: string
reservationAffinity:
specificReservation:
key: string
values:
- string
type: string
resourceManagerTags:
string: string
resourcePolicies: string
scheduling:
automaticRestart: false
instanceTerminationAction: string
localSsdRecoveryTimeouts:
- nanos: 0
seconds: 0
maintenanceInterval: string
maxRunDuration:
nanos: 0
seconds: 0
minNodeCpus: 0
nodeAffinities:
- key: string
operator: string
values:
- string
onHostMaintenance: string
onInstanceStopAction:
discardLocalSsd: false
preemptible: false
provisioningModel: string
serviceAccount:
email: string
scopes:
- string
shieldedInstanceConfig:
enableIntegrityMonitoring: false
enableSecureBoot: false
enableVtpm: false
tags:
- string
InstanceTemplate Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The InstanceTemplate resource accepts the following input properties:
- Disks
List<Instance
Template Disk> - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- Machine
Type string The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- Advanced
Machine InstanceFeatures Template Advanced Machine Features - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- Can
Ip boolForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- Confidential
Instance InstanceConfig Template Confidential Instance Config - Enable Confidential Mode on this VM. Structure is documented below
- Description string
- A brief description of this resource.
- Enable
Display bool - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - Guest
Accelerators List<InstanceTemplate Guest Accelerator> - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- Instance
Description string - A brief description to use for instances created from this template.
- Labels Dictionary<string, string>
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- Metadata Dictionary<string, object>
- Metadata key/value pairs to make available from within instances created from this template.
- Metadata
Startup stringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- Min
Cpu stringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Network
Interfaces List<InstanceTemplate Network Interface> - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- Network
Performance InstanceConfig Template Network Performance Config - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - Partner
Metadata Dictionary<string, string> - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Region string
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - Reservation
Affinity InstanceTemplate Reservation Affinity - Specifies the reservations that this instance can consume from. Structure is documented below.
- Dictionary<string, string>
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- Resource
Policies string - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- Scheduling
Instance
Template Scheduling - The scheduling strategy to use. More details about this configuration option are detailed below.
- Service
Account InstanceTemplate Service Account - Service account to attach to the instance. Structure is documented below.
- Shielded
Instance InstanceConfig Template Shielded Instance Config - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - List<string>
- Tags to attach to the instance.
- Disks
[]Instance
Template Disk Args - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- Machine
Type string The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- Advanced
Machine InstanceFeatures Template Advanced Machine Features Args - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- Can
Ip boolForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- Confidential
Instance InstanceConfig Template Confidential Instance Config Args - Enable Confidential Mode on this VM. Structure is documented below
- Description string
- A brief description of this resource.
- Enable
Display bool - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - Guest
Accelerators []InstanceTemplate Guest Accelerator Args - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- Instance
Description string - A brief description to use for instances created from this template.
- Labels map[string]string
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- Metadata map[string]interface{}
- Metadata key/value pairs to make available from within instances created from this template.
- Metadata
Startup stringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- Min
Cpu stringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Network
Interfaces []InstanceTemplate Network Interface Args - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- Network
Performance InstanceConfig Template Network Performance Config Args - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - Partner
Metadata map[string]string - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Region string
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - Reservation
Affinity InstanceTemplate Reservation Affinity Args - Specifies the reservations that this instance can consume from. Structure is documented below.
- map[string]string
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- Resource
Policies string - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- Scheduling
Instance
Template Scheduling Args - The scheduling strategy to use. More details about this configuration option are detailed below.
- Service
Account InstanceTemplate Service Account Args - Service account to attach to the instance. Structure is documented below.
- Shielded
Instance InstanceConfig Template Shielded Instance Config Args - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - []string
- Tags to attach to the instance.
- disks
List<Instance
Template Disk> - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- machine
Type String The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- advanced
Machine InstanceFeatures Template Advanced Machine Features - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can
Ip BooleanForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential
Instance InstanceConfig Template Confidential Instance Config - Enable Confidential Mode on this VM. Structure is documented below
- description String
- A brief description of this resource.
- enable
Display Boolean - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest
Accelerators List<InstanceTemplate Guest Accelerator> - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance
Description String - A brief description to use for instances created from this template.
- labels Map<String,String>
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- metadata Map<String,Object>
- Metadata key/value pairs to make available from within instances created from this template.
- metadata
Startup StringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min
Cpu StringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network
Interfaces List<InstanceTemplate Network Interface> - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network
Performance InstanceConfig Template Network Performance Config - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner
Metadata Map<String,String> - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region String
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation
Affinity InstanceTemplate Reservation Affinity - Specifies the reservations that this instance can consume from. Structure is documented below.
- Map<String,String>
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies String - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling
Instance
Template Scheduling - The scheduling strategy to use. More details about this configuration option are detailed below.
- service
Account InstanceTemplate Service Account - Service account to attach to the instance. Structure is documented below.
- shielded
Instance InstanceConfig Template Shielded Instance Config - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - List<String>
- Tags to attach to the instance.
- disks
Instance
Template Disk[] - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- machine
Type string The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- advanced
Machine InstanceFeatures Template Advanced Machine Features - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can
Ip booleanForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential
Instance InstanceConfig Template Confidential Instance Config - Enable Confidential Mode on this VM. Structure is documented below
- description string
- A brief description of this resource.
- enable
Display boolean - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest
Accelerators InstanceTemplate Guest Accelerator[] - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance
Description string - A brief description to use for instances created from this template.
- labels {[key: string]: string}
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- metadata {[key: string]: any}
- Metadata key/value pairs to make available from within instances created from this template.
- metadata
Startup stringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min
Cpu stringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network
Interfaces InstanceTemplate Network Interface[] - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network
Performance InstanceConfig Template Network Performance Config - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner
Metadata {[key: string]: string} - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region string
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation
Affinity InstanceTemplate Reservation Affinity - Specifies the reservations that this instance can consume from. Structure is documented below.
- {[key: string]: string}
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies string - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling
Instance
Template Scheduling - The scheduling strategy to use. More details about this configuration option are detailed below.
- service
Account InstanceTemplate Service Account - Service account to attach to the instance. Structure is documented below.
- shielded
Instance InstanceConfig Template Shielded Instance Config - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - string[]
- Tags to attach to the instance.
- disks
Sequence[Instance
Template Disk Args] - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- machine_
type str The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- advanced_
machine_ Instancefeatures Template Advanced Machine Features Args - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can_
ip_ boolforward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential_
instance_ Instanceconfig Template Confidential Instance Config Args - Enable Confidential Mode on this VM. Structure is documented below
- description str
- A brief description of this resource.
- enable_
display bool - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest_
accelerators Sequence[InstanceTemplate Guest Accelerator Args] - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance_
description str - A brief description to use for instances created from this template.
- labels Mapping[str, str]
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- metadata Mapping[str, Any]
- Metadata key/value pairs to make available from within instances created from this template.
- metadata_
startup_ strscript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min_
cpu_ strplatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name str
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name_
prefix str - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network_
interfaces Sequence[InstanceTemplate Network Interface Args] - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network_
performance_ Instanceconfig Template Network Performance Config Args - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner_
metadata Mapping[str, str] - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region str
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation_
affinity InstanceTemplate Reservation Affinity Args - Specifies the reservations that this instance can consume from. Structure is documented below.
- Mapping[str, str]
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource_
policies str - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling
Instance
Template Scheduling Args - The scheduling strategy to use. More details about this configuration option are detailed below.
- service_
account InstanceTemplate Service Account Args - Service account to attach to the instance. Structure is documented below.
- shielded_
instance_ Instanceconfig Template Shielded Instance Config Args - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - Sequence[str]
- Tags to attach to the instance.
- disks List<Property Map>
- Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- machine
Type String The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- advanced
Machine Property MapFeatures - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can
Ip BooleanForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential
Instance Property MapConfig - Enable Confidential Mode on this VM. Structure is documented below
- description String
- A brief description of this resource.
- enable
Display Boolean - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest
Accelerators List<Property Map> - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance
Description String - A brief description to use for instances created from this template.
- labels Map<String>
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- metadata Map<Any>
- Metadata key/value pairs to make available from within instances created from this template.
- metadata
Startup StringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min
Cpu StringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network
Interfaces List<Property Map> - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network
Performance Property MapConfig - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner
Metadata Map<String> - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region String
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation
Affinity Property Map - Specifies the reservations that this instance can consume from. Structure is documented below.
- Map<String>
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies String - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling Property Map
- The scheduling strategy to use. More details about this configuration option are detailed below.
- service
Account Property Map - Service account to attach to the instance. Structure is documented below.
- shielded
Instance Property MapConfig - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - List<String>
- Tags to attach to the instance.
Outputs
All input properties are implicitly available as output properties. Additionally, the InstanceTemplate resource produces the following output properties:
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Metadata
Fingerprint string - The unique fingerprint of the metadata.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Self
Link string - The URI of the created resource.
- Self
Link stringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - string
- The unique fingerprint of the tags.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Metadata
Fingerprint string - The unique fingerprint of the metadata.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Self
Link string - The URI of the created resource.
- Self
Link stringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - string
- The unique fingerprint of the tags.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- metadata
Fingerprint String - The unique fingerprint of the metadata.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- self
Link String - The URI of the created resource.
- self
Link StringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - String
- The unique fingerprint of the tags.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- metadata
Fingerprint string - The unique fingerprint of the metadata.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- self
Link string - The URI of the created resource.
- self
Link stringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - string
- The unique fingerprint of the tags.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id str
- The provider-assigned unique ID for this managed resource.
- metadata_
fingerprint str - The unique fingerprint of the metadata.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- self_
link str - The URI of the created resource.
- self_
link_ strunique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - str
- The unique fingerprint of the tags.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- metadata
Fingerprint String - The unique fingerprint of the metadata.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- self
Link String - The URI of the created resource.
- self
Link StringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - String
- The unique fingerprint of the tags.
Look up Existing InstanceTemplate Resource
Get an existing InstanceTemplate 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?: InstanceTemplateState, opts?: CustomResourceOptions): InstanceTemplate
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
advanced_machine_features: Optional[InstanceTemplateAdvancedMachineFeaturesArgs] = None,
can_ip_forward: Optional[bool] = None,
confidential_instance_config: Optional[InstanceTemplateConfidentialInstanceConfigArgs] = None,
description: Optional[str] = None,
disks: Optional[Sequence[InstanceTemplateDiskArgs]] = None,
effective_labels: Optional[Mapping[str, str]] = None,
enable_display: Optional[bool] = None,
guest_accelerators: Optional[Sequence[InstanceTemplateGuestAcceleratorArgs]] = None,
instance_description: Optional[str] = None,
labels: Optional[Mapping[str, str]] = None,
machine_type: Optional[str] = None,
metadata: Optional[Mapping[str, Any]] = None,
metadata_fingerprint: Optional[str] = None,
metadata_startup_script: Optional[str] = None,
min_cpu_platform: Optional[str] = None,
name: Optional[str] = None,
name_prefix: Optional[str] = None,
network_interfaces: Optional[Sequence[InstanceTemplateNetworkInterfaceArgs]] = None,
network_performance_config: Optional[InstanceTemplateNetworkPerformanceConfigArgs] = None,
partner_metadata: Optional[Mapping[str, str]] = None,
project: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None,
region: Optional[str] = None,
reservation_affinity: Optional[InstanceTemplateReservationAffinityArgs] = None,
resource_manager_tags: Optional[Mapping[str, str]] = None,
resource_policies: Optional[str] = None,
scheduling: Optional[InstanceTemplateSchedulingArgs] = None,
self_link: Optional[str] = None,
self_link_unique: Optional[str] = None,
service_account: Optional[InstanceTemplateServiceAccountArgs] = None,
shielded_instance_config: Optional[InstanceTemplateShieldedInstanceConfigArgs] = None,
tags: Optional[Sequence[str]] = None,
tags_fingerprint: Optional[str] = None) -> InstanceTemplate
func GetInstanceTemplate(ctx *Context, name string, id IDInput, state *InstanceTemplateState, opts ...ResourceOption) (*InstanceTemplate, error)
public static InstanceTemplate Get(string name, Input<string> id, InstanceTemplateState? state, CustomResourceOptions? opts = null)
public static InstanceTemplate get(String name, Output<String> id, InstanceTemplateState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- 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.
- Advanced
Machine InstanceFeatures Template Advanced Machine Features - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- Can
Ip boolForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- Confidential
Instance InstanceConfig Template Confidential Instance Config - Enable Confidential Mode on this VM. Structure is documented below
- Description string
- A brief description of this resource.
- Disks
List<Instance
Template Disk> - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Enable
Display bool - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - Guest
Accelerators List<InstanceTemplate Guest Accelerator> - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- Instance
Description string - A brief description to use for instances created from this template.
- Labels Dictionary<string, string>
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- Machine
Type string The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- Metadata Dictionary<string, object>
- Metadata key/value pairs to make available from within instances created from this template.
- Metadata
Fingerprint string - The unique fingerprint of the metadata.
- Metadata
Startup stringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- Min
Cpu stringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Network
Interfaces List<InstanceTemplate Network Interface> - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- Network
Performance InstanceConfig Template Network Performance Config - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - Partner
Metadata Dictionary<string, string> - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Region string
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - Reservation
Affinity InstanceTemplate Reservation Affinity - Specifies the reservations that this instance can consume from. Structure is documented below.
- Dictionary<string, string>
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- Resource
Policies string - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- Scheduling
Instance
Template Scheduling - The scheduling strategy to use. More details about this configuration option are detailed below.
- Self
Link string - The URI of the created resource.
- Self
Link stringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - Service
Account InstanceTemplate Service Account - Service account to attach to the instance. Structure is documented below.
- Shielded
Instance InstanceConfig Template Shielded Instance Config - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - List<string>
- Tags to attach to the instance.
- string
- The unique fingerprint of the tags.
- Advanced
Machine InstanceFeatures Template Advanced Machine Features Args - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- Can
Ip boolForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- Confidential
Instance InstanceConfig Template Confidential Instance Config Args - Enable Confidential Mode on this VM. Structure is documented below
- Description string
- A brief description of this resource.
- Disks
[]Instance
Template Disk Args - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Enable
Display bool - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - Guest
Accelerators []InstanceTemplate Guest Accelerator Args - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- Instance
Description string - A brief description to use for instances created from this template.
- Labels map[string]string
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- Machine
Type string The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- Metadata map[string]interface{}
- Metadata key/value pairs to make available from within instances created from this template.
- Metadata
Fingerprint string - The unique fingerprint of the metadata.
- Metadata
Startup stringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- Min
Cpu stringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Network
Interfaces []InstanceTemplate Network Interface Args - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- Network
Performance InstanceConfig Template Network Performance Config Args - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - Partner
Metadata map[string]string - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Region string
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - Reservation
Affinity InstanceTemplate Reservation Affinity Args - Specifies the reservations that this instance can consume from. Structure is documented below.
- map[string]string
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- Resource
Policies string - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- Scheduling
Instance
Template Scheduling Args - The scheduling strategy to use. More details about this configuration option are detailed below.
- Self
Link string - The URI of the created resource.
- Self
Link stringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - Service
Account InstanceTemplate Service Account Args - Service account to attach to the instance. Structure is documented below.
- Shielded
Instance InstanceConfig Template Shielded Instance Config Args - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - []string
- Tags to attach to the instance.
- string
- The unique fingerprint of the tags.
- advanced
Machine InstanceFeatures Template Advanced Machine Features - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can
Ip BooleanForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential
Instance InstanceConfig Template Confidential Instance Config - Enable Confidential Mode on this VM. Structure is documented below
- description String
- A brief description of this resource.
- disks
List<Instance
Template Disk> - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enable
Display Boolean - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest
Accelerators List<InstanceTemplate Guest Accelerator> - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance
Description String - A brief description to use for instances created from this template.
- labels Map<String,String>
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- machine
Type String The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- metadata Map<String,Object>
- Metadata key/value pairs to make available from within instances created from this template.
- metadata
Fingerprint String - The unique fingerprint of the metadata.
- metadata
Startup StringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min
Cpu StringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network
Interfaces List<InstanceTemplate Network Interface> - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network
Performance InstanceConfig Template Network Performance Config - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner
Metadata Map<String,String> - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- region String
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation
Affinity InstanceTemplate Reservation Affinity - Specifies the reservations that this instance can consume from. Structure is documented below.
- Map<String,String>
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies String - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling
Instance
Template Scheduling - The scheduling strategy to use. More details about this configuration option are detailed below.
- self
Link String - The URI of the created resource.
- self
Link StringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - service
Account InstanceTemplate Service Account - Service account to attach to the instance. Structure is documented below.
- shielded
Instance InstanceConfig Template Shielded Instance Config - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - List<String>
- Tags to attach to the instance.
- String
- The unique fingerprint of the tags.
- advanced
Machine InstanceFeatures Template Advanced Machine Features - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can
Ip booleanForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential
Instance InstanceConfig Template Confidential Instance Config - Enable Confidential Mode on this VM. Structure is documented below
- description string
- A brief description of this resource.
- disks
Instance
Template Disk[] - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enable
Display boolean - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest
Accelerators InstanceTemplate Guest Accelerator[] - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance
Description string - A brief description to use for instances created from this template.
- labels {[key: string]: string}
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- machine
Type string The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- metadata {[key: string]: any}
- Metadata key/value pairs to make available from within instances created from this template.
- metadata
Fingerprint string - The unique fingerprint of the metadata.
- metadata
Startup stringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min
Cpu stringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network
Interfaces InstanceTemplate Network Interface[] - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network
Performance InstanceConfig Template Network Performance Config - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner
Metadata {[key: string]: string} - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- region string
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation
Affinity InstanceTemplate Reservation Affinity - Specifies the reservations that this instance can consume from. Structure is documented below.
- {[key: string]: string}
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies string - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling
Instance
Template Scheduling - The scheduling strategy to use. More details about this configuration option are detailed below.
- self
Link string - The URI of the created resource.
- self
Link stringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - service
Account InstanceTemplate Service Account - Service account to attach to the instance. Structure is documented below.
- shielded
Instance InstanceConfig Template Shielded Instance Config - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - string[]
- Tags to attach to the instance.
- string
- The unique fingerprint of the tags.
- advanced_
machine_ Instancefeatures Template Advanced Machine Features Args - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can_
ip_ boolforward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential_
instance_ Instanceconfig Template Confidential Instance Config Args - Enable Confidential Mode on this VM. Structure is documented below
- description str
- A brief description of this resource.
- disks
Sequence[Instance
Template Disk Args] - Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enable_
display bool - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest_
accelerators Sequence[InstanceTemplate Guest Accelerator Args] - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance_
description str - A brief description to use for instances created from this template.
- labels Mapping[str, str]
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- machine_
type str The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- metadata Mapping[str, Any]
- Metadata key/value pairs to make available from within instances created from this template.
- metadata_
fingerprint str - The unique fingerprint of the metadata.
- metadata_
startup_ strscript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min_
cpu_ strplatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name str
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name_
prefix str - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network_
interfaces Sequence[InstanceTemplate Network Interface Args] - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network_
performance_ Instanceconfig Template Network Performance Config Args - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner_
metadata Mapping[str, str] - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- region str
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation_
affinity InstanceTemplate Reservation Affinity Args - Specifies the reservations that this instance can consume from. Structure is documented below.
- Mapping[str, str]
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource_
policies str - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling
Instance
Template Scheduling Args - The scheduling strategy to use. More details about this configuration option are detailed below.
- self_
link str - The URI of the created resource.
- self_
link_ strunique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - service_
account InstanceTemplate Service Account Args - Service account to attach to the instance. Structure is documented below.
- shielded_
instance_ Instanceconfig Template Shielded Instance Config Args - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - Sequence[str]
- Tags to attach to the instance.
- str
- The unique fingerprint of the tags.
- advanced
Machine Property MapFeatures - Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below
- can
Ip BooleanForward - Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false.
- confidential
Instance Property MapConfig - Enable Confidential Mode on this VM. Structure is documented below
- description String
- A brief description of this resource.
- disks List<Property Map>
- Disks to attach to instances created from this template. This can be specified multiple times for multiple disks. Structure is documented below.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enable
Display Boolean - Enable Virtual Displays on this instance.
Note:
allow_stopping_for_update
must be set to true in order to update this field. - guest
Accelerators List<Property Map> - List of the type and count of accelerator cards attached to the instance. Structure documented below.
- instance
Description String - A brief description to use for instances created from this template.
- labels Map<String>
A set of key/value label pairs to assign to instances created from this template.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
- machine
Type String The machine type to create.
To create a machine with a custom type (such as extended memory), format the value like
custom-VCPUS-MEM_IN_MB
likecustom-6-20480
for 6 vCPU and 20GB of RAM.- metadata Map<Any>
- Metadata key/value pairs to make available from within instances created from this template.
- metadata
Fingerprint String - The unique fingerprint of the metadata.
- metadata
Startup StringScript - An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously.
- min
Cpu StringPlatform - Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
Intel Haswell
orIntel Skylake
. See the complete list here. - name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - network
Interfaces List<Property Map> - Networks to attach to instances created from this template. This can be specified multiple times for multiple networks. Structure is documented below.
- network
Performance Property MapConfig - (Optional, Configures network performance settings for the instance created from the
template. Structure is documented below. Note:
machine_type
must be a supported type, theimage
used must include theGVNIC
inguest-os-features
, andnetwork_interface.0.nic-type
must beGVNIC
in order for this setting to take effect. - partner
Metadata Map<String> - Beta key/value pair represents partner metadata assigned to instance template where key represent a defined namespace and value is a json string represent the entries associted with the namespace.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- region String
- An instance template is a global resource that is not
bound to a zone or a region. However, you can still specify some regional
resources in an instance template, which restricts the template to the
region where that resource resides. For example, a custom
subnetwork
resource is tied to a specific region. Defaults to the region of the Provider if no value is given. - reservation
Affinity Property Map - Specifies the reservations that this instance can consume from. Structure is documented below.
- Map<String>
- A set of key/value resource manager tag pairs to bind to the instances. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies String - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.
- scheduling Property Map
- The scheduling strategy to use. More details about this configuration option are detailed below.
- self
Link String - The URI of the created resource.
- self
Link StringUnique - A special URI of the created resource that uniquely identifies this instance template with the following format:
projects/{{project}}/global/instanceTemplates/{{name}}?uniqueId={{uniqueId}}
Referencing an instance template via this attribute prevents Time of Check to Time of Use attacks when the instance template resides in a shared/untrusted environment. - service
Account Property Map - Service account to attach to the instance. Structure is documented below.
- shielded
Instance Property MapConfig - Enable Shielded VM on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
Note:
shielded_instance_config
can only be used with boot images with shielded vm support. See the complete list here. - List<String>
- Tags to attach to the instance.
- String
- The unique fingerprint of the tags.
Supporting Types
InstanceTemplateAdvancedMachineFeatures, InstanceTemplateAdvancedMachineFeaturesArgs
- Enable
Nested boolVirtualization - Defines whether the instance should have nested virtualization enabled. Defaults to false.
- Threads
Per intCore - The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
- Visible
Core intCount - The number of physical cores to expose to an instance. visible cores info (VC).
- Enable
Nested boolVirtualization - Defines whether the instance should have nested virtualization enabled. Defaults to false.
- Threads
Per intCore - The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
- Visible
Core intCount - The number of physical cores to expose to an instance. visible cores info (VC).
- enable
Nested BooleanVirtualization - Defines whether the instance should have nested virtualization enabled. Defaults to false.
- threads
Per IntegerCore - The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
- visible
Core IntegerCount - The number of physical cores to expose to an instance. visible cores info (VC).
- enable
Nested booleanVirtualization - Defines whether the instance should have nested virtualization enabled. Defaults to false.
- threads
Per numberCore - The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
- visible
Core numberCount - The number of physical cores to expose to an instance. visible cores info (VC).
- enable_
nested_ boolvirtualization - Defines whether the instance should have nested virtualization enabled. Defaults to false.
- threads_
per_ intcore - The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
- visible_
core_ intcount - The number of physical cores to expose to an instance. visible cores info (VC).
- enable
Nested BooleanVirtualization - Defines whether the instance should have nested virtualization enabled. Defaults to false.
- threads
Per NumberCore - The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1.
- visible
Core NumberCount - The number of physical cores to expose to an instance. visible cores info (VC).
InstanceTemplateConfidentialInstanceConfig, InstanceTemplateConfidentialInstanceConfigArgs
- Confidential
Instance stringType - Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values:
SEV
,SEV_SNP
.on_host_maintenance
can be set to MIGRATE ifconfidential_instance_type
is set toSEV
andmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM. IfSEV_SNP
, currentlymin_cpu_platform
has to be set to"AMD Milan"
or this will fail to create the VM. - Enable
Confidential boolCompute - Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled,
on_host_maintenance
can be set to MIGRATE ifmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM.
- Confidential
Instance stringType - Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values:
SEV
,SEV_SNP
.on_host_maintenance
can be set to MIGRATE ifconfidential_instance_type
is set toSEV
andmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM. IfSEV_SNP
, currentlymin_cpu_platform
has to be set to"AMD Milan"
or this will fail to create the VM. - Enable
Confidential boolCompute - Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled,
on_host_maintenance
can be set to MIGRATE ifmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM.
- confidential
Instance StringType - Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values:
SEV
,SEV_SNP
.on_host_maintenance
can be set to MIGRATE ifconfidential_instance_type
is set toSEV
andmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM. IfSEV_SNP
, currentlymin_cpu_platform
has to be set to"AMD Milan"
or this will fail to create the VM. - enable
Confidential BooleanCompute - Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled,
on_host_maintenance
can be set to MIGRATE ifmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM.
- confidential
Instance stringType - Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values:
SEV
,SEV_SNP
.on_host_maintenance
can be set to MIGRATE ifconfidential_instance_type
is set toSEV
andmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM. IfSEV_SNP
, currentlymin_cpu_platform
has to be set to"AMD Milan"
or this will fail to create the VM. - enable
Confidential booleanCompute - Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled,
on_host_maintenance
can be set to MIGRATE ifmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM.
- confidential_
instance_ strtype - Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values:
SEV
,SEV_SNP
.on_host_maintenance
can be set to MIGRATE ifconfidential_instance_type
is set toSEV
andmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM. IfSEV_SNP
, currentlymin_cpu_platform
has to be set to"AMD Milan"
or this will fail to create the VM. - enable_
confidential_ boolcompute - Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled,
on_host_maintenance
can be set to MIGRATE ifmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM.
- confidential
Instance StringType - Defines the confidential computing technology the instance uses. SEV is an AMD feature. One of the following values:
SEV
,SEV_SNP
.on_host_maintenance
can be set to MIGRATE ifconfidential_instance_type
is set toSEV
andmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM. IfSEV_SNP
, currentlymin_cpu_platform
has to be set to"AMD Milan"
or this will fail to create the VM. - enable
Confidential BooleanCompute - Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled,
on_host_maintenance
can be set to MIGRATE ifmin_cpu_platform
is set to"AMD Milan"
. Otherwise,on_host_maintenance
has to be set to TERMINATE or this will fail to create the VM.
InstanceTemplateDisk, InstanceTemplateDiskArgs
- Auto
Delete bool - Whether or not the disk should be auto-deleted. This defaults to true.
- Boot bool
- Indicates that this is a boot disk.
- Device
Name string - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
- Disk
Encryption InstanceKey Template Disk Disk Encryption Key Encrypts or decrypts a disk using a customer-supplied encryption key.
If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.
If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.
If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.
Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.
- Disk
Name string - Name of the disk. When not provided, this defaults to the name of the instance.
- Disk
Size intGb - The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
- Disk
Type string - The GCE disk type. Such as
"pd-ssd"
,"local-ssd"
,"pd-balanced"
or"pd-standard"
,"hyperdisk-balanced"
,"hyperdisk-throughput"
or"hyperdisk-extreme"
. - Interface string
- Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
- Labels Dictionary<string, string>
- A set of ket/value label pairs to assign to disk created from this template
- Mode string
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
- Provisioned
Iops int - Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
- Dictionary<string, string>
- A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- Resource
Policies string - A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
- Source string
The name (not self_link) of the disk (such as those managed by
gcp.compute.Disk
) to attach.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- Source
Image string The image from which to initialize this disk. This can be one of: the image's
self_link
,projects/{project}/global/images/{image}
,projects/{project}/global/images/family/{family}
,global/images/{image}
,global/images/family/{family}
,family/{family}
,{project}/{family}
,{project}/{image}
,{family}
, or{image}
.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- Source
Image InstanceEncryption Key Template Disk Source Image Encryption Key The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.
- Source
Snapshot string The source snapshot to create this disk.
Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- Source
Snapshot InstanceEncryption Key Template Disk Source Snapshot Encryption Key - The customer-supplied encryption key of the source snapshot. Structure documented below.
- Type string
- The type of GCE disk, can be either
"SCRATCH"
or"PERSISTENT"
.
- Auto
Delete bool - Whether or not the disk should be auto-deleted. This defaults to true.
- Boot bool
- Indicates that this is a boot disk.
- Device
Name string - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
- Disk
Encryption InstanceKey Template Disk Disk Encryption Key Encrypts or decrypts a disk using a customer-supplied encryption key.
If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.
If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.
If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.
Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.
- Disk
Name string - Name of the disk. When not provided, this defaults to the name of the instance.
- Disk
Size intGb - The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
- Disk
Type string - The GCE disk type. Such as
"pd-ssd"
,"local-ssd"
,"pd-balanced"
or"pd-standard"
,"hyperdisk-balanced"
,"hyperdisk-throughput"
or"hyperdisk-extreme"
. - Interface string
- Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
- Labels map[string]string
- A set of ket/value label pairs to assign to disk created from this template
- Mode string
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
- Provisioned
Iops int - Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
- map[string]string
- A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- Resource
Policies string - A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
- Source string
The name (not self_link) of the disk (such as those managed by
gcp.compute.Disk
) to attach.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- Source
Image string The image from which to initialize this disk. This can be one of: the image's
self_link
,projects/{project}/global/images/{image}
,projects/{project}/global/images/family/{family}
,global/images/{image}
,global/images/family/{family}
,family/{family}
,{project}/{family}
,{project}/{image}
,{family}
, or{image}
.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- Source
Image InstanceEncryption Key Template Disk Source Image Encryption Key The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.
- Source
Snapshot string The source snapshot to create this disk.
Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- Source
Snapshot InstanceEncryption Key Template Disk Source Snapshot Encryption Key - The customer-supplied encryption key of the source snapshot. Structure documented below.
- Type string
- The type of GCE disk, can be either
"SCRATCH"
or"PERSISTENT"
.
- auto
Delete Boolean - Whether or not the disk should be auto-deleted. This defaults to true.
- boot Boolean
- Indicates that this is a boot disk.
- device
Name String - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
- disk
Encryption InstanceKey Template Disk Disk Encryption Key Encrypts or decrypts a disk using a customer-supplied encryption key.
If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.
If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.
If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.
Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.
- disk
Name String - Name of the disk. When not provided, this defaults to the name of the instance.
- disk
Size IntegerGb - The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
- disk
Type String - The GCE disk type. Such as
"pd-ssd"
,"local-ssd"
,"pd-balanced"
or"pd-standard"
,"hyperdisk-balanced"
,"hyperdisk-throughput"
or"hyperdisk-extreme"
. - interface_ String
- Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
- labels Map<String,String>
- A set of ket/value label pairs to assign to disk created from this template
- mode String
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
- provisioned
Iops Integer - Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
- Map<String,String>
- A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies String - A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
- source String
The name (not self_link) of the disk (such as those managed by
gcp.compute.Disk
) to attach.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Image String The image from which to initialize this disk. This can be one of: the image's
self_link
,projects/{project}/global/images/{image}
,projects/{project}/global/images/family/{family}
,global/images/{image}
,global/images/family/{family}
,family/{family}
,{project}/{family}
,{project}/{image}
,{family}
, or{image}
.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Image InstanceEncryption Key Template Disk Source Image Encryption Key The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.
- source
Snapshot String The source snapshot to create this disk.
Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Snapshot InstanceEncryption Key Template Disk Source Snapshot Encryption Key - The customer-supplied encryption key of the source snapshot. Structure documented below.
- type String
- The type of GCE disk, can be either
"SCRATCH"
or"PERSISTENT"
.
- auto
Delete boolean - Whether or not the disk should be auto-deleted. This defaults to true.
- boot boolean
- Indicates that this is a boot disk.
- device
Name string - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
- disk
Encryption InstanceKey Template Disk Disk Encryption Key Encrypts or decrypts a disk using a customer-supplied encryption key.
If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.
If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.
If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.
Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.
- disk
Name string - Name of the disk. When not provided, this defaults to the name of the instance.
- disk
Size numberGb - The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
- disk
Type string - The GCE disk type. Such as
"pd-ssd"
,"local-ssd"
,"pd-balanced"
or"pd-standard"
,"hyperdisk-balanced"
,"hyperdisk-throughput"
or"hyperdisk-extreme"
. - interface string
- Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
- labels {[key: string]: string}
- A set of ket/value label pairs to assign to disk created from this template
- mode string
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
- provisioned
Iops number - Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
- {[key: string]: string}
- A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies string - A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
- source string
The name (not self_link) of the disk (such as those managed by
gcp.compute.Disk
) to attach.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Image string The image from which to initialize this disk. This can be one of: the image's
self_link
,projects/{project}/global/images/{image}
,projects/{project}/global/images/family/{family}
,global/images/{image}
,global/images/family/{family}
,family/{family}
,{project}/{family}
,{project}/{image}
,{family}
, or{image}
.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Image InstanceEncryption Key Template Disk Source Image Encryption Key The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.
- source
Snapshot string The source snapshot to create this disk.
Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Snapshot InstanceEncryption Key Template Disk Source Snapshot Encryption Key - The customer-supplied encryption key of the source snapshot. Structure documented below.
- type string
- The type of GCE disk, can be either
"SCRATCH"
or"PERSISTENT"
.
- auto_
delete bool - Whether or not the disk should be auto-deleted. This defaults to true.
- boot bool
- Indicates that this is a boot disk.
- device_
name str - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
- disk_
encryption_ Instancekey Template Disk Disk Encryption Key Encrypts or decrypts a disk using a customer-supplied encryption key.
If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.
If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.
If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.
Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.
- disk_
name str - Name of the disk. When not provided, this defaults to the name of the instance.
- disk_
size_ intgb - The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
- disk_
type str - The GCE disk type. Such as
"pd-ssd"
,"local-ssd"
,"pd-balanced"
or"pd-standard"
,"hyperdisk-balanced"
,"hyperdisk-throughput"
or"hyperdisk-extreme"
. - interface str
- Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
- labels Mapping[str, str]
- A set of ket/value label pairs to assign to disk created from this template
- mode str
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
- provisioned_
iops int - Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
- Mapping[str, str]
- A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource_
policies str - A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
- source str
The name (not self_link) of the disk (such as those managed by
gcp.compute.Disk
) to attach.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source_
image str The image from which to initialize this disk. This can be one of: the image's
self_link
,projects/{project}/global/images/{image}
,projects/{project}/global/images/family/{family}
,global/images/{image}
,global/images/family/{family}
,family/{family}
,{project}/{family}
,{project}/{image}
,{family}
, or{image}
.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source_
image_ Instanceencryption_ key Template Disk Source Image Encryption Key The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.
- source_
snapshot str The source snapshot to create this disk.
Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source_
snapshot_ Instanceencryption_ key Template Disk Source Snapshot Encryption Key - The customer-supplied encryption key of the source snapshot. Structure documented below.
- type str
- The type of GCE disk, can be either
"SCRATCH"
or"PERSISTENT"
.
- auto
Delete Boolean - Whether or not the disk should be auto-deleted. This defaults to true.
- boot Boolean
- Indicates that this is a boot disk.
- device
Name String - A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.
- disk
Encryption Property MapKey Encrypts or decrypts a disk using a customer-supplied encryption key.
If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.
If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.
If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.
Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.
- disk
Name String - Name of the disk. When not provided, this defaults to the name of the instance.
- disk
Size NumberGb - The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be exactly 375GB.
- disk
Type String - The GCE disk type. Such as
"pd-ssd"
,"local-ssd"
,"pd-balanced"
or"pd-standard"
,"hyperdisk-balanced"
,"hyperdisk-throughput"
or"hyperdisk-extreme"
. - interface String
- Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI.
- labels Map<String>
- A set of ket/value label pairs to assign to disk created from this template
- mode String
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.
- provisioned
Iops Number - Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.
- Map<String>
- A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.
- resource
Policies String - A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
- source String
The name (not self_link) of the disk (such as those managed by
gcp.compute.Disk
) to attach.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Image String The image from which to initialize this disk. This can be one of: the image's
self_link
,projects/{project}/global/images/{image}
,projects/{project}/global/images/family/{family}
,global/images/{image}
,global/images/family/{family}
,family/{family}
,{project}/{family}
,{project}/{image}
,{family}
, or{image}
.Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Image Property MapEncryption Key The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure documented below.
- source
Snapshot String The source snapshot to create this disk.
Note: Either
source
,source_image
, orsource_snapshot
is required in a disk block unless the disk type islocal-ssd
. Check the API docs for details.- source
Snapshot Property MapEncryption Key - The customer-supplied encryption key of the source snapshot. Structure documented below.
- type String
- The type of GCE disk, can be either
"SCRATCH"
or"PERSISTENT"
.
InstanceTemplateDiskDiskEncryptionKey, InstanceTemplateDiskDiskEncryptionKeyArgs
- Kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS
- Kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS
- kms
Key StringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS
- kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS
- kms_
key_ strself_ link - The self link of the encryption key that is stored in Google Cloud KMS
- kms
Key StringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS
InstanceTemplateDiskSourceImageEncryptionKey, InstanceTemplateDiskSourceImageEncryptionKeyArgs
- Kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- Kms
Key stringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- Kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- Kms
Key stringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms
Key StringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms
Key StringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms
Key stringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms_
key_ strself_ link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms_
key_ strservice_ account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms
Key StringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms
Key StringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
InstanceTemplateDiskSourceSnapshotEncryptionKey, InstanceTemplateDiskSourceSnapshotEncryptionKeyArgs
- Kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- Kms
Key stringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- Kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- Kms
Key stringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms
Key StringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms
Key StringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms
Key stringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms
Key stringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms_
key_ strself_ link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms_
key_ strservice_ account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
- kms
Key StringSelf Link - The self link of the encryption key that is stored in Google Cloud KMS.
- kms
Key StringService Account - The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
InstanceTemplateGuestAccelerator, InstanceTemplateGuestAcceleratorArgs
InstanceTemplateNetworkInterface, InstanceTemplateNetworkInterfaceArgs
- Access
Configs List<InstanceTemplate Network Interface Access Config> - Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times. Structure documented below.
- Alias
Ip List<InstanceRanges Template Network Interface Alias Ip Range> - An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
- Internal
Ipv6Prefix intLength - The prefix length of the primary internal IPv6 range.
- Ipv6Access
Configs List<InstanceTemplate Network Interface Ipv6Access Config> - An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
- Ipv6Access
Type string - One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
- Ipv6Address string
- An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
- Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Network string
- The name or self_link of the network to attach this interface to.
Use
network
attribute for Legacy or Auto subnetted networks andsubnetwork
for custom subnetted networks. - Network
Attachment string - The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
- Network
Ip string - The private IP address to assign to the instance. If empty, the address will be automatically assigned.
- Nic
Type string - The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
- Queue
Count int - The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
- Stack
Type string - The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
- Subnetwork string
- the name of the subnetwork to attach this interface
to. The subnetwork must exist in the same
region
this instance will be created in. Eithernetwork
orsubnetwork
must be provided. - Subnetwork
Project string - The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
- Access
Configs []InstanceTemplate Network Interface Access Config - Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times. Structure documented below.
- Alias
Ip []InstanceRanges Template Network Interface Alias Ip Range - An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
- Internal
Ipv6Prefix intLength - The prefix length of the primary internal IPv6 range.
- Ipv6Access
Configs []InstanceTemplate Network Interface Ipv6Access Config - An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
- Ipv6Access
Type string - One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
- Ipv6Address string
- An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
- Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Network string
- The name or self_link of the network to attach this interface to.
Use
network
attribute for Legacy or Auto subnetted networks andsubnetwork
for custom subnetted networks. - Network
Attachment string - The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
- Network
Ip string - The private IP address to assign to the instance. If empty, the address will be automatically assigned.
- Nic
Type string - The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
- Queue
Count int - The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
- Stack
Type string - The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
- Subnetwork string
- the name of the subnetwork to attach this interface
to. The subnetwork must exist in the same
region
this instance will be created in. Eithernetwork
orsubnetwork
must be provided. - Subnetwork
Project string - The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
- access
Configs List<InstanceTemplate Network Interface Access Config> - Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times. Structure documented below.
- alias
Ip List<InstanceRanges Template Network Interface Alias Ip Range> - An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
- internal
Ipv6Prefix IntegerLength - The prefix length of the primary internal IPv6 range.
- ipv6Access
Configs List<InstanceTemplate Network Interface Ipv6Access Config> - An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
- ipv6Access
Type String - One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
- ipv6Address String
- An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
- name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- network String
- The name or self_link of the network to attach this interface to.
Use
network
attribute for Legacy or Auto subnetted networks andsubnetwork
for custom subnetted networks. - network
Attachment String - The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
- network
Ip String - The private IP address to assign to the instance. If empty, the address will be automatically assigned.
- nic
Type String - The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
- queue
Count Integer - The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
- stack
Type String - The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
- subnetwork String
- the name of the subnetwork to attach this interface
to. The subnetwork must exist in the same
region
this instance will be created in. Eithernetwork
orsubnetwork
must be provided. - subnetwork
Project String - The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
- access
Configs InstanceTemplate Network Interface Access Config[] - Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times. Structure documented below.
- alias
Ip InstanceRanges Template Network Interface Alias Ip Range[] - An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
- internal
Ipv6Prefix numberLength - The prefix length of the primary internal IPv6 range.
- ipv6Access
Configs InstanceTemplate Network Interface Ipv6Access Config[] - An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
- ipv6Access
Type string - One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
- ipv6Address string
- An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
- name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- network string
- The name or self_link of the network to attach this interface to.
Use
network
attribute for Legacy or Auto subnetted networks andsubnetwork
for custom subnetted networks. - network
Attachment string - The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
- network
Ip string - The private IP address to assign to the instance. If empty, the address will be automatically assigned.
- nic
Type string - The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
- queue
Count number - The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
- stack
Type string - The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
- subnetwork string
- the name of the subnetwork to attach this interface
to. The subnetwork must exist in the same
region
this instance will be created in. Eithernetwork
orsubnetwork
must be provided. - subnetwork
Project string - The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
- access_
configs Sequence[InstanceTemplate Network Interface Access Config] - Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times. Structure documented below.
- alias_
ip_ Sequence[Instanceranges Template Network Interface Alias Ip Range] - An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
- internal_
ipv6_ intprefix_ length - The prefix length of the primary internal IPv6 range.
- ipv6_
access_ Sequence[Instanceconfigs Template Network Interface Ipv6Access Config] - An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
- ipv6_
access_ strtype - One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
- ipv6_
address str - An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
- name str
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- network str
- The name or self_link of the network to attach this interface to.
Use
network
attribute for Legacy or Auto subnetted networks andsubnetwork
for custom subnetted networks. - network_
attachment str - The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
- network_
ip str - The private IP address to assign to the instance. If empty, the address will be automatically assigned.
- nic_
type str - The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
- queue_
count int - The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
- stack_
type str - The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
- subnetwork str
- the name of the subnetwork to attach this interface
to. The subnetwork must exist in the same
region
this instance will be created in. Eithernetwork
orsubnetwork
must be provided. - subnetwork_
project str - The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
- access
Configs List<Property Map> - Access configurations, i.e. IPs via which this instance can be accessed via the Internet. Omit to ensure that the instance is not accessible from the Internet (this means that ssh provisioners will not work unless you can send traffic to the instance's network (e.g. via tunnel or because it is running on another cloud instance on that network). This block can be repeated multiple times. Structure documented below.
- alias
Ip List<Property Map>Ranges - An array of alias IP ranges for this network interface. Can only be specified for network interfaces on subnet-mode networks. Structure documented below.
- internal
Ipv6Prefix NumberLength - The prefix length of the primary internal IPv6 range.
- ipv6Access
Configs List<Property Map> - An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Structure documented below.
- ipv6Access
Type String - One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.
- ipv6Address String
- An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
- name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- network String
- The name or self_link of the network to attach this interface to.
Use
network
attribute for Legacy or Auto subnetted networks andsubnetwork
for custom subnetted networks. - network
Attachment String - The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.
- network
Ip String - The private IP address to assign to the instance. If empty, the address will be automatically assigned.
- nic
Type String - The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.
- queue
Count Number - The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
- stack
Type String - The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.
- subnetwork String
- the name of the subnetwork to attach this interface
to. The subnetwork must exist in the same
region
this instance will be created in. Eithernetwork
orsubnetwork
must be provided. - subnetwork
Project String - The ID of the project in which the subnetwork belongs. If it is not provided, the provider project is used.
InstanceTemplateNetworkInterfaceAccessConfig, InstanceTemplateNetworkInterfaceAccessConfigArgs
- Nat
Ip string - The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
- Network
Tier string - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
- Public
Ptr stringDomain Name - The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
- Nat
Ip string - The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
- Network
Tier string - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
- Public
Ptr stringDomain Name - The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
- nat
Ip String - The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
- network
Tier String - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
- public
Ptr StringDomain Name - The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
- nat
Ip string - The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
- network
Tier string - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
- public
Ptr stringDomain Name - The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
- nat_
ip str - The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
- network_
tier str - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
- public_
ptr_ strdomain_ name - The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
- nat
Ip String - The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated.
- network
Tier String - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.
- public
Ptr StringDomain Name - The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.
InstanceTemplateNetworkInterfaceAliasIpRange, InstanceTemplateNetworkInterfaceAliasIpRangeArgs
- Ip
Cidr stringRange - The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
- Subnetwork
Range stringName - The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
- Ip
Cidr stringRange - The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
- Subnetwork
Range stringName - The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
- ip
Cidr StringRange - The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
- subnetwork
Range StringName - The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
- ip
Cidr stringRange - The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
- subnetwork
Range stringName - The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
- ip_
cidr_ strrange - The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
- subnetwork_
range_ strname - The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
- ip
Cidr StringRange - The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error.
- subnetwork
Range StringName - The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.
InstanceTemplateNetworkInterfaceIpv6AccessConfig, InstanceTemplateNetworkInterfaceIpv6AccessConfigArgs
- Network
Tier string - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
- External
Ipv6 string - The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
- External
Ipv6Prefix stringLength - The prefix length of the external IPv6 range.
- Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Public
Ptr stringDomain Name - The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
- Network
Tier string - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
- External
Ipv6 string - The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
- External
Ipv6Prefix stringLength - The prefix length of the external IPv6 range.
- Name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- Public
Ptr stringDomain Name - The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
- network
Tier String - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
- external
Ipv6 String - The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
- external
Ipv6Prefix StringLength - The prefix length of the external IPv6 range.
- name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- public
Ptr StringDomain Name - The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
- network
Tier string - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
- external
Ipv6 string - The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
- external
Ipv6Prefix stringLength - The prefix length of the external IPv6 range.
- name string
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- public
Ptr stringDomain Name - The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
- network_
tier str - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
- external_
ipv6 str - The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
- external_
ipv6_ strprefix_ length - The prefix length of the external IPv6 range.
- name str
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- public_
ptr_ strdomain_ name - The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
- network
Tier String - The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6
- external
Ipv6 String - The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.
- external
Ipv6Prefix StringLength - The prefix length of the external IPv6 range.
- name String
- The name of the instance template. If you leave this blank, the provider will auto-generate a unique name.
- public
Ptr StringDomain Name - The domain name to be used when creating DNSv6 records for the external IPv6 ranges.
InstanceTemplateNetworkPerformanceConfig, InstanceTemplateNetworkPerformanceConfigArgs
- Total
Egress stringBandwidth Tier - The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
- Total
Egress stringBandwidth Tier - The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
- total
Egress StringBandwidth Tier - The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
- total
Egress stringBandwidth Tier - The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
- total_
egress_ strbandwidth_ tier - The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
- total
Egress StringBandwidth Tier - The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT
InstanceTemplateReservationAffinity, InstanceTemplateReservationAffinityArgs
- Type string
- The type of reservation from which this instance can consume resources.
- Specific
Reservation InstanceTemplate Reservation Affinity Specific Reservation - Specifies the label selector for the reservation to use.. Structure is documented below.
- Type string
- The type of reservation from which this instance can consume resources.
- Specific
Reservation InstanceTemplate Reservation Affinity Specific Reservation - Specifies the label selector for the reservation to use.. Structure is documented below.
- type String
- The type of reservation from which this instance can consume resources.
- specific
Reservation InstanceTemplate Reservation Affinity Specific Reservation - Specifies the label selector for the reservation to use.. Structure is documented below.
- type string
- The type of reservation from which this instance can consume resources.
- specific
Reservation InstanceTemplate Reservation Affinity Specific Reservation - Specifies the label selector for the reservation to use.. Structure is documented below.
- type str
- The type of reservation from which this instance can consume resources.
- specific_
reservation InstanceTemplate Reservation Affinity Specific Reservation - Specifies the label selector for the reservation to use.. Structure is documented below.
- type String
- The type of reservation from which this instance can consume resources.
- specific
Reservation Property Map - Specifies the label selector for the reservation to use.. Structure is documented below.
InstanceTemplateReservationAffinitySpecificReservation, InstanceTemplateReservationAffinitySpecificReservationArgs
- Key string
- Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
- Values List<string>
- Corresponds to the label values of a reservation resource.
- key String
- Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
- values List<String>
- Corresponds to the label values of a reservation resource.
- key str
- Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
- values Sequence[str]
- Corresponds to the label values of a reservation resource.
- key String
- Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.
- values List<String>
- Corresponds to the label values of a reservation resource.
InstanceTemplateScheduling, InstanceTemplateSchedulingArgs
- Automatic
Restart bool - Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
- Instance
Termination stringAction - Describe the type of termination action for
SPOT
VM. Can beSTOP
orDELETE
. Read more on here - Local
Ssd List<InstanceRecovery Timeouts Template Scheduling Local Ssd Recovery Timeout> - Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
- Maintenance
Interval string - Specifies the frequency of planned maintenance events. The accepted values are:
PERIODIC
. - Max
Run InstanceDuration Template Scheduling Max Run Duration - The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in
instance_termination_action
. Structure is documented below. - Min
Node intCpus - Minimum number of cpus for the instance.
- Node
Affinities List<InstanceTemplate Scheduling Node Affinity> - Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
- On
Host stringMaintenance - Defines the maintenance behavior for this instance.
- On
Instance InstanceStop Action Template Scheduling On Instance Stop Action - Specifies the action to be performed when the instance is terminated using
max_run_duration
andSTOP
instance_termination_action
. Only supporttrue
discard_local_ssd
at this point. Structure is documented below. - Preemptible bool
- Allows instance to be preempted. This defaults to false. Read more on this here.
- Provisioning
Model string - Describe the type of preemptible VM. This field accepts the value
STANDARD
orSPOT
. If the value isSTANDARD
, there will be no discount. If this is set toSPOT
,preemptible
should betrue
andautomatic_restart
should befalse
. For more info aboutSPOT
, read here
- Automatic
Restart bool - Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
- Instance
Termination stringAction - Describe the type of termination action for
SPOT
VM. Can beSTOP
orDELETE
. Read more on here - Local
Ssd []InstanceRecovery Timeouts Template Scheduling Local Ssd Recovery Timeout - Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
- Maintenance
Interval string - Specifies the frequency of planned maintenance events. The accepted values are:
PERIODIC
. - Max
Run InstanceDuration Template Scheduling Max Run Duration - The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in
instance_termination_action
. Structure is documented below. - Min
Node intCpus - Minimum number of cpus for the instance.
- Node
Affinities []InstanceTemplate Scheduling Node Affinity - Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
- On
Host stringMaintenance - Defines the maintenance behavior for this instance.
- On
Instance InstanceStop Action Template Scheduling On Instance Stop Action - Specifies the action to be performed when the instance is terminated using
max_run_duration
andSTOP
instance_termination_action
. Only supporttrue
discard_local_ssd
at this point. Structure is documented below. - Preemptible bool
- Allows instance to be preempted. This defaults to false. Read more on this here.
- Provisioning
Model string - Describe the type of preemptible VM. This field accepts the value
STANDARD
orSPOT
. If the value isSTANDARD
, there will be no discount. If this is set toSPOT
,preemptible
should betrue
andautomatic_restart
should befalse
. For more info aboutSPOT
, read here
- automatic
Restart Boolean - Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
- instance
Termination StringAction - Describe the type of termination action for
SPOT
VM. Can beSTOP
orDELETE
. Read more on here - local
Ssd List<InstanceRecovery Timeouts Template Scheduling Local Ssd Recovery Timeout> - Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
- maintenance
Interval String - Specifies the frequency of planned maintenance events. The accepted values are:
PERIODIC
. - max
Run InstanceDuration Template Scheduling Max Run Duration - The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in
instance_termination_action
. Structure is documented below. - min
Node IntegerCpus - Minimum number of cpus for the instance.
- node
Affinities List<InstanceTemplate Scheduling Node Affinity> - Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
- on
Host StringMaintenance - Defines the maintenance behavior for this instance.
- on
Instance InstanceStop Action Template Scheduling On Instance Stop Action - Specifies the action to be performed when the instance is terminated using
max_run_duration
andSTOP
instance_termination_action
. Only supporttrue
discard_local_ssd
at this point. Structure is documented below. - preemptible Boolean
- Allows instance to be preempted. This defaults to false. Read more on this here.
- provisioning
Model String - Describe the type of preemptible VM. This field accepts the value
STANDARD
orSPOT
. If the value isSTANDARD
, there will be no discount. If this is set toSPOT
,preemptible
should betrue
andautomatic_restart
should befalse
. For more info aboutSPOT
, read here
- automatic
Restart boolean - Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
- instance
Termination stringAction - Describe the type of termination action for
SPOT
VM. Can beSTOP
orDELETE
. Read more on here - local
Ssd InstanceRecovery Timeouts Template Scheduling Local Ssd Recovery Timeout[] - Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
- maintenance
Interval string - Specifies the frequency of planned maintenance events. The accepted values are:
PERIODIC
. - max
Run InstanceDuration Template Scheduling Max Run Duration - The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in
instance_termination_action
. Structure is documented below. - min
Node numberCpus - Minimum number of cpus for the instance.
- node
Affinities InstanceTemplate Scheduling Node Affinity[] - Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
- on
Host stringMaintenance - Defines the maintenance behavior for this instance.
- on
Instance InstanceStop Action Template Scheduling On Instance Stop Action - Specifies the action to be performed when the instance is terminated using
max_run_duration
andSTOP
instance_termination_action
. Only supporttrue
discard_local_ssd
at this point. Structure is documented below. - preemptible boolean
- Allows instance to be preempted. This defaults to false. Read more on this here.
- provisioning
Model string - Describe the type of preemptible VM. This field accepts the value
STANDARD
orSPOT
. If the value isSTANDARD
, there will be no discount. If this is set toSPOT
,preemptible
should betrue
andautomatic_restart
should befalse
. For more info aboutSPOT
, read here
- automatic_
restart bool - Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
- instance_
termination_ straction - Describe the type of termination action for
SPOT
VM. Can beSTOP
orDELETE
. Read more on here - local_
ssd_ Sequence[Instancerecovery_ timeouts Template Scheduling Local Ssd Recovery Timeout] - Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
- maintenance_
interval str - Specifies the frequency of planned maintenance events. The accepted values are:
PERIODIC
. - max_
run_ Instanceduration Template Scheduling Max Run Duration - The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in
instance_termination_action
. Structure is documented below. - min_
node_ intcpus - Minimum number of cpus for the instance.
- node_
affinities Sequence[InstanceTemplate Scheduling Node Affinity] - Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
- on_
host_ strmaintenance - Defines the maintenance behavior for this instance.
- on_
instance_ Instancestop_ action Template Scheduling On Instance Stop Action - Specifies the action to be performed when the instance is terminated using
max_run_duration
andSTOP
instance_termination_action
. Only supporttrue
discard_local_ssd
at this point. Structure is documented below. - preemptible bool
- Allows instance to be preempted. This defaults to false. Read more on this here.
- provisioning_
model str - Describe the type of preemptible VM. This field accepts the value
STANDARD
orSPOT
. If the value isSTANDARD
, there will be no discount. If this is set toSPOT
,preemptible
should betrue
andautomatic_restart
should befalse
. For more info aboutSPOT
, read here
- automatic
Restart Boolean - Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). This defaults to true.
- instance
Termination StringAction - Describe the type of termination action for
SPOT
VM. Can beSTOP
orDELETE
. Read more on here - local
Ssd List<Property Map>Recovery Timeouts - Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour.
- maintenance
Interval String - Specifies the frequency of planned maintenance events. The accepted values are:
PERIODIC
. - max
Run Property MapDuration - The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in
instance_termination_action
. Structure is documented below. - min
Node NumberCpus - Minimum number of cpus for the instance.
- node
Affinities List<Property Map> - Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems. Read more on sole-tenant node creation here. Structure documented below.
- on
Host StringMaintenance - Defines the maintenance behavior for this instance.
- on
Instance Property MapStop Action - Specifies the action to be performed when the instance is terminated using
max_run_duration
andSTOP
instance_termination_action
. Only supporttrue
discard_local_ssd
at this point. Structure is documented below. - preemptible Boolean
- Allows instance to be preempted. This defaults to false. Read more on this here.
- provisioning
Model String - Describe the type of preemptible VM. This field accepts the value
STANDARD
orSPOT
. If the value isSTANDARD
, there will be no discount. If this is set toSPOT
,preemptible
should betrue
andautomatic_restart
should befalse
. For more info aboutSPOT
, read here
InstanceTemplateSchedulingLocalSsdRecoveryTimeout, InstanceTemplateSchedulingLocalSsdRecoveryTimeoutArgs
- Seconds int
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
- Nanos int
- Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
- Seconds int
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
- Nanos int
- Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
- seconds Integer
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
- nanos Integer
- Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
- seconds number
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
- nanos number
- Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
- seconds int
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
- nanos int
- Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
- seconds Number
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
- nanos Number
- Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
InstanceTemplateSchedulingMaxRunDuration, InstanceTemplateSchedulingMaxRunDurationArgs
- Seconds int
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
- Nanos int
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented with a 0
seconds
field and a positivenanos
field. Must be from 0 to 999,999,999 inclusive.
- Seconds int
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
- Nanos int
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented with a 0
seconds
field and a positivenanos
field. Must be from 0 to 999,999,999 inclusive.
- seconds Integer
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
- nanos Integer
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented with a 0
seconds
field and a positivenanos
field. Must be from 0 to 999,999,999 inclusive.
- seconds number
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
- nanos number
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented with a 0
seconds
field and a positivenanos
field. Must be from 0 to 999,999,999 inclusive.
- seconds int
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
- nanos int
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented with a 0
seconds
field and a positivenanos
field. Must be from 0 to 999,999,999 inclusive.
- seconds Number
- Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.
- nanos Number
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented with a 0
seconds
field and a positivenanos
field. Must be from 0 to 999,999,999 inclusive.
InstanceTemplateSchedulingNodeAffinity, InstanceTemplateSchedulingNodeAffinityArgs
InstanceTemplateSchedulingOnInstanceStopAction, InstanceTemplateSchedulingOnInstanceStopActionArgs
- Discard
Local boolSsd - Whether to discard local SSDs attached to the VM while terminating using
max_run_duration
. Only supportstrue
at this point.
- Discard
Local boolSsd - Whether to discard local SSDs attached to the VM while terminating using
max_run_duration
. Only supportstrue
at this point.
- discard
Local BooleanSsd - Whether to discard local SSDs attached to the VM while terminating using
max_run_duration
. Only supportstrue
at this point.
- discard
Local booleanSsd - Whether to discard local SSDs attached to the VM while terminating using
max_run_duration
. Only supportstrue
at this point.
- discard_
local_ boolssd - Whether to discard local SSDs attached to the VM while terminating using
max_run_duration
. Only supportstrue
at this point.
- discard
Local BooleanSsd - Whether to discard local SSDs attached to the VM while terminating using
max_run_duration
. Only supportstrue
at this point.
InstanceTemplateServiceAccount, InstanceTemplateServiceAccountArgs
- Scopes List<string>
A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the
cloud-platform
scope. See a complete list of scopes here.The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the
cloud-platform
scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.- Email string
- The service account e-mail address. If not given, the default Google Compute Engine service account is used.
- Scopes []string
A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the
cloud-platform
scope. See a complete list of scopes here.The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the
cloud-platform
scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.- Email string
- The service account e-mail address. If not given, the default Google Compute Engine service account is used.
- scopes List<String>
A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the
cloud-platform
scope. See a complete list of scopes here.The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the
cloud-platform
scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.- email String
- The service account e-mail address. If not given, the default Google Compute Engine service account is used.
- scopes string[]
A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the
cloud-platform
scope. See a complete list of scopes here.The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the
cloud-platform
scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.- email string
- The service account e-mail address. If not given, the default Google Compute Engine service account is used.
- scopes Sequence[str]
A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the
cloud-platform
scope. See a complete list of scopes here.The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the
cloud-platform
scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.- email str
- The service account e-mail address. If not given, the default Google Compute Engine service account is used.
- scopes List<String>
A list of service scopes. Both OAuth2 URLs and gcloud short names are supported. To allow full access to all Cloud APIs, use the
cloud-platform
scope. See a complete list of scopes here.The service accounts documentation explains that access scopes are the legacy method of specifying permissions for your instance. To follow best practices you should create a dedicated service account with the minimum permissions the VM requires. To use a dedicated service account this field should be configured as a list containing the
cloud-platform
scope. See Authenticate workloads using service accounts best practices and Best practices for using service accounts.- email String
- The service account e-mail address. If not given, the default Google Compute Engine service account is used.
InstanceTemplateShieldedInstanceConfig, InstanceTemplateShieldedInstanceConfigArgs
- Enable
Integrity boolMonitoring - Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.
- Enable
Secure boolBoot - Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
- Enable
Vtpm bool - Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.
- Enable
Integrity boolMonitoring - Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.
- Enable
Secure boolBoot - Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
- Enable
Vtpm bool - Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.
- enable
Integrity BooleanMonitoring - Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.
- enable
Secure BooleanBoot - Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
- enable
Vtpm Boolean - Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.
- enable
Integrity booleanMonitoring - Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.
- enable
Secure booleanBoot - Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
- enable
Vtpm boolean - Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.
- enable_
integrity_ boolmonitoring - Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.
- enable_
secure_ boolboot - Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
- enable_
vtpm bool - Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.
- enable
Integrity BooleanMonitoring - Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.
- enable
Secure BooleanBoot - Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.
- enable
Vtpm Boolean - Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.
Import
Instance templates can be imported using any of these accepted formats:
projects/{{project}}/global/instanceTemplates/{{name}}
{{project}}/{{name}}
{{name}}
When using the pulumi import
command, instance templates can be imported using one of the formats above. For example:
$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default projects/{{project}}/global/instanceTemplates/{{name}}
$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{project}}/{{name}}
$ pulumi import gcp:compute/instanceTemplate:InstanceTemplate default {{name}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-beta
Terraform Provider.