@@ -18,6 +18,7 @@ package deploy
1818
1919import (
2020 "fmt"
21+ "slices"
2122
2223 awsprovider "github.com/pulumi/pulumi-aws/sdk/v5/go/aws"
2324
@@ -35,24 +36,32 @@ type Domain struct {
3536 CertificateValidation * acm.CertificateValidation
3637}
3738
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 ) {
3948 var err error
40- res := & Domain {Name : domainName }
49+ res := & Domain {Name : args . DomainName }
4150
42- res .ZoneLookup , err = resources .GetZoneID (domainName )
51+ res .ZoneLookup , err = resources .GetZoneID (args . DomainName )
4352 if err != nil {
4453 return nil , err
4554 }
4655
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 )
4857 if err != nil {
4958 return nil , err
5059 }
5160
5261 defaultOptions := []pulumi.ResourceOption {pulumi .Parent (res )}
5362
5463 // 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" {
5665 useast1 , err := awsprovider .NewProvider (ctx , "us-east-1" , & awsprovider.ProviderArgs {
5766 Region : pulumi .String ("us-east-1" ),
5867 })
@@ -64,9 +73,14 @@ func (a *NitricAwsPulumiProvider) newPulumiDomainName(ctx *pulumi.Context, domai
6473 }
6574
6675 cert , err := acm .NewCertificate (ctx , fmt .Sprintf ("cert-%s" , a .StackId ), & acm.CertificateArgs {
67- DomainName : pulumi .String (domainName ),
76+ DomainName : pulumi .String (args . DomainName ),
6877 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+ )
7084 if err != nil {
7185 return nil , err
7286 }
@@ -89,7 +103,13 @@ func (a *NitricAwsPulumiProvider) newPulumiDomainName(ctx *pulumi.Context, domai
89103 },
90104 Ttl : pulumi .Int (10 * 60 ),
91105 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+ }... )
93113 if err != nil {
94114 return nil , err
95115 }
@@ -99,7 +119,14 @@ func (a *NitricAwsPulumiProvider) newPulumiDomainName(ctx *pulumi.Context, domai
99119 ValidationRecordFqdns : pulumi.StringArray {
100120 cdnRecord .Fqdn ,
101121 },
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+ )
103130 if err != nil {
104131 return nil , err
105132 }
0 commit comments