mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-05 17:52:38 +00:00
Add labels to google_compute_instance_template (#515)
This commit is contained in:
parent
888df75f39
commit
e3ca8fbe59
|
@ -324,6 +324,14 @@ func resourceComputeInstanceTemplate() *schema.Resource {
|
|||
Type: schema.TypeString,
|
||||
Computed: true,
|
||||
},
|
||||
|
||||
"labels": &schema.Schema{
|
||||
Type: schema.TypeMap,
|
||||
Optional: true,
|
||||
ForceNew: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Set: schema.HashString,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -576,6 +584,9 @@ func resourceComputeInstanceTemplateCreate(d *schema.ResourceData, meta interfac
|
|||
instanceProperties.ServiceAccounts = serviceAccounts
|
||||
|
||||
instanceProperties.Tags = resourceInstanceTags(d)
|
||||
if _, ok := d.GetOk("labels"); ok {
|
||||
instanceProperties.Labels = expandLabels(d)
|
||||
}
|
||||
|
||||
var itName string
|
||||
if v, ok := d.GetOk("name"); ok {
|
||||
|
@ -743,6 +754,9 @@ func resourceComputeInstanceTemplateRead(d *schema.ResourceData, meta interface{
|
|||
return fmt.Errorf("Error setting tags_fingerprint: %s", err)
|
||||
}
|
||||
}
|
||||
if instanceTemplate.Properties.Labels != nil {
|
||||
d.Set("labels", instanceTemplate.Properties.Labels)
|
||||
}
|
||||
if err = d.Set("self_link", instanceTemplate.SelfLink); err != nil {
|
||||
return fmt.Errorf("Error setting self_link: %s", err)
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ func TestAccComputeInstanceTemplate_basic(t *testing.T) {
|
|||
testAccCheckComputeInstanceTemplateTag(&instanceTemplate, "foo"),
|
||||
testAccCheckComputeInstanceTemplateMetadata(&instanceTemplate, "foo", "bar"),
|
||||
testAccCheckComputeInstanceTemplateDisk(&instanceTemplate, "projects/debian-cloud/global/images/debian-8-jessie-v20160803", true, true),
|
||||
testAccCheckComputeInstanceTemplateContainsLabel(&instanceTemplate, "my_label", "foobar"),
|
||||
),
|
||||
},
|
||||
},
|
||||
|
@ -412,6 +413,19 @@ func testAccCheckComputeInstanceTemplateNetworkIP(n, networkIP string, instanceT
|
|||
}
|
||||
}
|
||||
|
||||
func testAccCheckComputeInstanceTemplateContainsLabel(instanceTemplate *compute.InstanceTemplate, key string, value string) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
v, ok := instanceTemplate.Properties.Labels[key]
|
||||
if !ok {
|
||||
return fmt.Errorf("Expected label with key '%s' not found", key)
|
||||
}
|
||||
if v != value {
|
||||
return fmt.Errorf("Incorrect label value for key '%s': expected '%s' but found '%s'", key, value, v)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
var testAccComputeInstanceTemplate_basic = fmt.Sprintf(`
|
||||
resource "google_compute_instance_template" "foobar" {
|
||||
name = "instancet-test-%s"
|
||||
|
@ -441,6 +455,10 @@ resource "google_compute_instance_template" "foobar" {
|
|||
service_account {
|
||||
scopes = ["userinfo-email", "compute-ro", "storage-ro"]
|
||||
}
|
||||
|
||||
labels {
|
||||
my_label = "foobar"
|
||||
}
|
||||
}`, acctest.RandString(10))
|
||||
|
||||
var testAccComputeInstanceTemplate_preemptible = fmt.Sprintf(`
|
||||
|
|
|
@ -24,6 +24,10 @@ resource "google_compute_instance_template" "default" {
|
|||
|
||||
tags = ["foo", "bar"]
|
||||
|
||||
labels = {
|
||||
environment = "dev"
|
||||
}
|
||||
|
||||
instance_description = "description assigned to instances"
|
||||
machine_type = "n1-standard-1"
|
||||
can_ip_forward = false
|
||||
|
@ -133,6 +137,9 @@ The following arguments are supported:
|
|||
* `instance_description` - (Optional) A brief description to use for instances
|
||||
created from this template.
|
||||
|
||||
* `labels` - (Optional) A set of key/value label pairs to assign to instances
|
||||
created from this template,
|
||||
|
||||
* `metadata` - (Optional) Metadata key/value pairs to make available from
|
||||
within instances created from this template.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user