feat: add the volume to the Pulumi stack
This commit is contained in:
parent
d6d07a567a
commit
9ff85d3438
3 changed files with 27 additions and 5 deletions
2
config
2
config
|
@ -1 +1 @@
|
|||
Subproject commit bbb8123ffb9781d818da1bff92d92dd8a0bbe009
|
||||
Subproject commit 1804b71954a073f75daa95b20e5b35e50b4dd60a
|
|
@ -12,7 +12,6 @@ type platform struct {
|
|||
Instance instanceConfig `json:"instance"`
|
||||
Region string `json:"region"`
|
||||
Tags []string `json:"tags"`
|
||||
TempIP string `json:"tempIP"`
|
||||
Volumes []volumeConfig `json:"volumes"`
|
||||
}
|
||||
|
||||
|
|
29
main.go
29
main.go
|
@ -32,7 +32,7 @@ func infra(ctx *pulumi.Context) error {
|
|||
return fmt.Errorf("unable to manage the domain; %w", err)
|
||||
}
|
||||
|
||||
if err := records(ctx, p); err != nil {
|
||||
if err := records(ctx, p, instance.Instances[0].Ipv4s[0]); err != nil {
|
||||
return fmt.Errorf("unable to manage the domain records; %w", err)
|
||||
}
|
||||
|
||||
|
@ -40,6 +40,10 @@ func infra(ctx *pulumi.Context) error {
|
|||
return fmt.Errorf("unable to manage the firewall; %w", err)
|
||||
}
|
||||
|
||||
if err := volumes(ctx, p, instance.Instances[0].Id); err != nil {
|
||||
return fmt.Errorf("unable to manage the volumes; %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -79,7 +83,7 @@ func domain(ctx *pulumi.Context, cfg *platform) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func records(ctx *pulumi.Context, cfg *platform) error {
|
||||
func records(ctx *pulumi.Context, cfg *platform, instanceIPv4 string) error {
|
||||
domainName := cfg.Domain.Name
|
||||
|
||||
domainArgs := linode.LookupDomainArgs{
|
||||
|
@ -101,7 +105,7 @@ func records(ctx *pulumi.Context, cfg *platform) error {
|
|||
DomainId: pulumi.Int(domainID),
|
||||
Name: pulumi.String(r.Name),
|
||||
RecordType: pulumi.String(r.Type),
|
||||
Target: pulumi.String(cfg.TempIP),
|
||||
Target: pulumi.String(instanceIPv4),
|
||||
TtlSec: pulumi.Int(r.TtlSec),
|
||||
}
|
||||
|
||||
|
@ -148,3 +152,22 @@ func firewall(ctx *pulumi.Context, cfg *platform, instanceID int) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func volumes(ctx *pulumi.Context, cfg *platform, instanceID int) error {
|
||||
for _, v := range cfg.Volumes {
|
||||
args := linode.VolumeArgs{
|
||||
Label: pulumi.String(v.Label),
|
||||
LinodeId: pulumi.Int(instanceID),
|
||||
Region: pulumi.String(cfg.Region),
|
||||
Size: pulumi.Int(v.Size),
|
||||
Tags: pulumi.ToStringArray(cfg.Tags),
|
||||
}
|
||||
|
||||
_, err := linode.NewVolume(ctx, v.Label, &args, pulumi.Protect(true))
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to update volume; %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue