pulumi / pulumi-awsx

AWS infrastructure best practices in component form!
https://www.pulumi.com/docs/guides/crosswalk/aws/
Apache License 2.0
218 stars 105 forks source link

Unable to deploy ALB to custom VPC #981

Open jimjoes opened 1 year ago

jimjoes commented 1 year ago

What happened?

The documentation here provides the following code:

const vpc = new awsx.ec2.Vpc("web-vpc", { ... });

// Creates an ALB associated with our custom VPC.
const alb = new awsx.lb.ApplicationLoadBalancer("web-traffic", { vpc });

However, the ApplicationLoadBalancerArgs type doesn't allow the vpc property:

Argument of type '{ vpc: awsx.ec2.Vpc; }' is not assignable to parameter of type 'ApplicationLoadBalancerArgs'.
  Object literal may only specify known properties, and 'vpc' does not exist in type 'ApplicationLoadBalancerArgs'.
Untitled 2

Expected Behavior

I should be able to specify a custom vpc to deploy a loadbalancer into.

Steps to reproduce

input the code as per the documentation.

Output of pulumi about

CLI
Version 3.38.0 Go Version go1.19 Go Compiler gc

Plugins NAME VERSION nodejs unknown

Host
OS darwin Version 12.5.1 Arch x86_64

Current Stack: dev

TYPE URN pulumi:pulumi:Stack urn:pulumi:dev::analytics-api::pulumi:pulumi:Stack::analytics-api-dev pulumi:providers:aws urn:pulumi:dev::analytics-api::pulumi:providers:aws::default_5_16_2 pulumi:providers:awsx urn:pulumi:dev::analytics-api::pulumi:providers:awsx::default_1_0_1 awsx:ecr:Repository urn:pulumi:dev::analytics-api::awsx:ecr:Repository::dev-authoring-tool-repository aws:ecr/repository:Repository urn:pulumi:dev::analytics-api::awsx:ecr:Repository$aws:ecr/repository:Repository::dev-authoring-tool-repository aws:ecr/lifecyclePolicy:LifecyclePolicy urn:pulumi:dev::analytics-api::awsx:ecr:Repository$aws:ecr/lifecyclePolicy:LifecyclePolicy::dev-authoring-tool-repository awsx:ec2:Vpc urn:pulumi:dev::analytics-api::awsx:ec2:Vpc::dev-authoring-tool-vpc pulumi:providers:pulumi urn:pulumi:dev::analytics-api::pulumi:providers:pulumi::default aws:ec2/vpc:Vpc urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc::dev-authoring-tool-vpc aws:ec2/subnet:Subnet urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet::dev-authoring-tool-vpc-private-3 aws:ec2/internetGateway:InternetGateway urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/internetGateway:InternetGateway::dev-authoring-tool-vpc aws:ec2/subnet:Subnet urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet::dev-authoring-tool-vpc-private-1 aws:ec2/subnet:Subnet urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet::dev-authoring-tool-vpc-private-2 aws:ec2/routeTable:RouteTable urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable::dev-authoring-tool-vpc-private-3 aws:ec2/routeTable:RouteTable urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable::dev-authoring-tool-vpc-private-1 aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/routeTableAssociation:RouteTableAssociation::dev-authoring-tool-vpc-private-3 aws:ec2/routeTable:RouteTable urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable::dev-authoring-tool-vpc-private-2 aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/routeTableAssociation:RouteTableAssociation::dev-authoring-tool-vpc-private-1 aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/routeTableAssociation:RouteTableAssociation::dev-authoring-tool-vpc-private-2 aws:efs/fileSystem:FileSystem urn:pulumi:dev::analytics-api::aws:efs/fileSystem:FileSystem::dev-authoring-tool-storage aws:efs/accessPoint:AccessPoint urn:pulumi:dev::analytics-api::aws:efs/accessPoint:AccessPoint::dev-authoring-tool-storage-access-point aws:ecs/cluster:Cluster urn:pulumi:dev::analytics-api::aws:ecs/cluster:Cluster::dev-authoring-tool-cluster aws:ec2/subnet:Subnet urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet::dev-authoring-tool-vpc-public-2 aws:ec2/subnet:Subnet urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet::dev-authoring-tool-vpc-public-3 aws:ec2/subnet:Subnet urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet::dev-authoring-tool-vpc-public-1 aws:ec2/routeTable:RouteTable urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable::dev-authoring-tool-vpc-public-2 aws:ec2/routeTable:RouteTable urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable::dev-authoring-tool-vpc-public-3 aws:ec2/routeTable:RouteTable urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable::dev-authoring-tool-vpc-public-1 aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/routeTableAssociation:RouteTableAssociation::dev-authoring-tool-vpc-public-3 aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/routeTableAssociation:RouteTableAssociation::dev-authoring-tool-vpc-public-2 aws:ec2/route:Route urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/route:Route::dev-authoring-tool-vpc-public-2 aws:ec2/route:Route urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/route:Route::dev-authoring-tool-vpc-public-1 aws:ec2/route:Route urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/route:Route::dev-authoring-tool-vpc-public-3 aws:ec2/routeTableAssociation:RouteTableAssociation urn:pulumi:dev::analytics-api::awsx:ec2:Vpc$aws:ec2/vpc:Vpc$aws:ec2/subnet:Subnet$aws:ec2/routeTable:RouteTable$aws:ec2/routeTableAssociation:RouteTableAssociation::dev-authoring-tool-vpc-public-1 awsx:ecr:Image urn:pulumi:dev::analytics-api::awsx:ecr:Image::dev-authoring-tool-img aws:ec2/securityGroup:SecurityGroup urn:pulumi:dev::analytics-api::aws:ec2/securityGroup:SecurityGroup::dev-authoring-tool-alb-security-group aws:ec2/securityGroup:SecurityGroup urn:pulumi:dev::analytics-api::aws:ec2/securityGroup:SecurityGroup::dev-authoring-tool-task-security-group aws:ec2/securityGroup:SecurityGroup urn:pulumi:dev::analytics-api::aws:ec2/securityGroup:SecurityGroup::dev-authoring-storage-security-group awsx:lb:ApplicationLoadBalancer urn:pulumi:dev::analytics-api::awsx:lb:ApplicationLoadBalancer::dev-authoring-tool-lb aws:lb/targetGroup:TargetGroup urn:pulumi:dev::analytics-api::awsx:lb:ApplicationLoadBalancer$aws:lb/targetGroup:TargetGroup::dev-authoring-tool-lb

Found no pending operations associated with dev

Backend
Name Jamess-MacBook-Pro-2.local URL file:///Users/jameshunter/src/theinnovatecrowd-platform/.pulumi/apps/authoring User jameshunter Organizations

Pulumi locates its logs in /var/folders/hh/h8crj51d24q7dbnk4bwpxwl00000gn/T/ by default warning: Failed to get information about the project runtime: unknown method About for service pulumirpc.LanguageRuntime warning: Failed to get information about the Pulumi program's dependencies: unknown method GetProgramDependencies for service pulumirpc.LanguageRuntime

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction. To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

squaremo commented 1 year ago

Absolutely right, that is not a field of ApplicationLoadBalancer. Oops! Thanks for pointing this out, we'll have to rework that section.

rveitch commented 1 year ago

Absolutely right, that is not a field of ApplicationLoadBalancer. Oops! Thanks for pointing this out, we'll have to rework that section.

Does that mean that custom VPC's are actually no longer supported, or is this implicitly handled via subnetIds?

evanrbowers commented 1 year ago

I'm also running into this issue. Specifying the subnetIds does not appear to work as it conflicts with the vpc being used.

Update: Looks like it does work on initial create. Had to pulumi down and then pulumi up to work.