Include tags for volume resource and ssh key for droplet

This commit is contained in:
srikiz 2023-01-18 14:31:59 +05:30
parent 0360e170ea
commit 9fd9c1e1ef
2 changed files with 14 additions and 3 deletions

View File

@ -239,6 +239,7 @@ func (_ *Droplet) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *D
Region: e.Region,
Name: e.Name,
Tags: e.Tags,
SSHKey: []string{fi.ValueOf(e.SSHKey)},
}
userData, err := fi.ResourceAsString(e.UserData)

View File

@ -132,16 +132,26 @@ func (_ *Volume) RenderDO(t *do.DOAPITarget, a, e, changes *Volume) error {
// terraformVolume represents the digitalocean_volume resource in terraform
// https://www.terraform.io/docs/providers/do/r/volume.html
type terraformVolume struct {
Name *string `cty:"name"`
SizeGB *int64 `cty:"size"`
Region *string `cty:"region"`
Name *string `cty:"name"`
SizeGB *int64 `cty:"size"`
Region *string `cty:"region"`
Tags []string `cty:"tags"`
}
func (_ *Volume) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *Volume) error {
tagArray := []string{}
for k, v := range e.Tags {
// DO tags don't accept =. Separate the key and value with an ":"
klog.V(10).Infof("DO - Join the volume tag - %s", fmt.Sprintf("%s:%s", k, v))
tagArray = append(tagArray, fmt.Sprintf("%s:%s", k, v))
}
tf := &terraformVolume{
Name: e.Name,
SizeGB: e.SizeGB,
Region: e.Region,
Tags: tagArray,
}
return t.RenderResource("digitalocean_volume", *e.Name, tf)
}