@@ -18,6 +18,7 @@ package deploy
18
18
19
19
import (
20
20
"fmt"
21
+ "slices"
21
22
22
23
awsprovider "github.com/pulumi/pulumi-aws/sdk/v5/go/aws"
23
24
@@ -35,24 +36,32 @@ type Domain struct {
35
36
CertificateValidation * acm.CertificateValidation
36
37
}
37
38
38
- func (a * NitricAwsPulumiProvider ) newPulumiDomainName (ctx * pulumi.Context , domainName string ) (* Domain , error ) {
39
+ type domainArgs struct {
40
+ DomainName string
41
+ // Required for backwards compatibility with provider versions < 1.26.1
42
+ AliasName string
43
+ // If the domain is used for a CDN, it will be deployed in the us-east-1 region
44
+ IsCDNDomain bool
45
+ }
46
+
47
+ func (a * NitricAwsPulumiProvider ) newPulumiDomainName (ctx * pulumi.Context , args domainArgs ) (* Domain , error ) {
39
48
var err error
40
- res := & Domain {Name : domainName }
49
+ res := & Domain {Name : args . DomainName }
41
50
42
- res .ZoneLookup , err = resources .GetZoneID (domainName )
51
+ res .ZoneLookup , err = resources .GetZoneID (args . DomainName )
43
52
if err != nil {
44
53
return nil , err
45
54
}
46
55
47
- err = ctx .RegisterComponentResource ("nitric:api:DomainName" , fmt .Sprintf ("%s-%s" , domainName , a .StackId ), res )
56
+ err = ctx .RegisterComponentResource ("nitric:api:DomainName" , fmt .Sprintf ("%s-%s" , args . DomainName , a .StackId ), res )
48
57
if err != nil {
49
58
return nil , err
50
59
}
51
60
52
61
defaultOptions := []pulumi.ResourceOption {pulumi .Parent (res )}
53
62
54
63
// Create an AWS provider for the us-east-1 region as the acm certificates require being deployed in us-east-1 region
55
- if a .Region != "us-east-1" {
64
+ if args . IsCDNDomain && a .Region != "us-east-1" {
56
65
useast1 , err := awsprovider .NewProvider (ctx , "us-east-1" , & awsprovider.ProviderArgs {
57
66
Region : pulumi .String ("us-east-1" ),
58
67
})
@@ -64,9 +73,14 @@ func (a *NitricAwsPulumiProvider) newPulumiDomainName(ctx *pulumi.Context, domai
64
73
}
65
74
66
75
cert , err := acm .NewCertificate (ctx , fmt .Sprintf ("cert-%s" , a .StackId ), & acm.CertificateArgs {
67
- DomainName : pulumi .String (domainName ),
76
+ DomainName : pulumi .String (args . DomainName ),
68
77
ValidationMethod : pulumi .String ("DNS" ),
69
- }, defaultOptions ... )
78
+ },
79
+ slices .Concat (defaultOptions , []pulumi.ResourceOption {pulumi .Aliases ([]pulumi.Alias {
80
+ // Required for backwards compatibility with provider versions < 1.26.1
81
+ {Name : pulumi .String (fmt .Sprintf ("%s-%s-cert" , args .AliasName , args .DomainName ))},
82
+ })})... ,
83
+ )
70
84
if err != nil {
71
85
return nil , err
72
86
}
@@ -89,7 +103,13 @@ func (a *NitricAwsPulumiProvider) newPulumiDomainName(ctx *pulumi.Context, domai
89
103
},
90
104
Ttl : pulumi .Int (10 * 60 ),
91
105
ZoneId : pulumi .String (res .ZoneLookup .ZoneID ),
92
- }, []pulumi.ResourceOption {pulumi .Parent (res )}... )
106
+ }, []pulumi.ResourceOption {
107
+ pulumi .Parent (res ),
108
+ pulumi .Aliases ([]pulumi.Alias {
109
+ // Required for backwards compatibility with provider versions < 1.26.1
110
+ {Name : pulumi .String (fmt .Sprintf ("%s-%s-certvalidationdns" , args .AliasName , args .DomainName ))},
111
+ }),
112
+ }... )
93
113
if err != nil {
94
114
return nil , err
95
115
}
@@ -99,7 +119,14 @@ func (a *NitricAwsPulumiProvider) newPulumiDomainName(ctx *pulumi.Context, domai
99
119
ValidationRecordFqdns : pulumi.StringArray {
100
120
cdnRecord .Fqdn ,
101
121
},
102
- }, defaultOptions ... )
122
+ },
123
+ slices .Concat (defaultOptions , []pulumi.ResourceOption {
124
+ pulumi .Aliases ([]pulumi.Alias {
125
+ // Required for backwards compatibility with provider versions < 1.26.1
126
+ {Name : pulumi .String (fmt .Sprintf ("%s-%s-certvalidation" , args .AliasName , args .DomainName ))},
127
+ }),
128
+ })... ,
129
+ )
103
130
if err != nil {
104
131
return nil , err
105
132
}
0 commit comments