func (_ *IAMRole) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *IAMRole) error { policy, err := t.AddFile("aws_iam_role", *e.Name, "policy", e.RolePolicyDocument) if err != nil { return fmt.Errorf("error rendering RolePolicyDocument: %v", err) } tf := &terraformIAMRole{ Name: e.Name, AssumeRolePolicy: policy, } return t.RenderResource("aws_iam_role", *e.Name, tf) }
func (_ *SSHKey) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *SSHKey) error { publicKey, err := t.AddFile("aws_key_pair", *e.Name, "public_key", e.PublicKey) if err != nil { return fmt.Errorf("error rendering PublicKey: %v", err) } tf := &terraformSSHKey{ Name: e.Name, PublicKey: publicKey, } return t.RenderResource("aws_key_pair", *e.Name, tf) }
func (_ *LaunchConfiguration) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *LaunchConfiguration) error { cloud := t.Cloud.(*awsup.AWSCloud) if e.ImageID == nil { return fi.RequiredField("ImageID") } image, err := cloud.ResolveImage(*e.ImageID) if err != nil { return err } tf := &terraformLaunchConfiguration{ NamePrefix: fi.String(*e.Name + "-"), ImageID: image.ImageId, InstanceType: e.InstanceType, } if e.SSHKey != nil { tf.KeyName = e.SSHKey.TerraformLink() } for _, sg := range e.SecurityGroups { tf.SecurityGroups = append(tf.SecurityGroups, sg.TerraformLink()) } tf.AssociatePublicIpAddress = e.AssociatePublicIP if e.BlockDeviceMappings != nil { tf.EphemeralBlockDevice = []*terraformBlockDevice{} for deviceName, bdm := range e.BlockDeviceMappings { tf.EphemeralBlockDevice = append(tf.EphemeralBlockDevice, &terraformBlockDevice{ VirtualName: bdm.VirtualName, DeviceName: fi.String(deviceName), }) } } if e.UserData != nil { tf.UserData, err = t.AddFile("aws_launch_configuration", *e.Name, "user_data", e.UserData) if err != nil { return err } } if e.IAMInstanceProfile != nil { tf.IAMInstanceProfile = e.IAMInstanceProfile.TerraformLink() } // So that we can update configurations tf.Lifecycle = &terraformLifecycle{CreateBeforeDestroy: fi.Bool(true)} return t.RenderResource("aws_launch_configuration", *e.Name, tf) }