pulumi-kubernetes-operator icon indicating copy to clipboard operation
pulumi-kubernetes-operator copied to clipboard

Cannot assign '{}' to 'aws:alb/ListenerDefaultAction:ListenerDefaultAction': type: Missing required property 'type'

Open devopsmash opened this issue 9 months ago • 3 comments

What happened?

I'm trying to create a new aws.alb.Listener in order to attach it to a new aws.alb.LoadBalancer and to reference the defaultActions to a new aws.lb.TargetGroup with this example (link) with YAML syntax and with the Pulumi Kubernetes Operator (link).

I was able to create the aws.alb.LoadBalancer & aws.lb.TargetGroup successfully, but when I tried to create the aws.alb.Listener and reference in the defaultActions (which is list of maps) the new targetGroupArn from my new aws.lb.TargetGroup I got the following error:

Warning  StackUpdateFailure   3s (x21 over 5h48m)  stack-controller  Failed to update Stack: failed to run update: exit status 255
code: 255
stdout: Updating (test-stack):
    pulumi:pulumi:Stack test-test-stack running
@ updating....
    pulumi:pulumi:Stack test-test-stack running ^[[31mError^[[0m: aws:alb/listener:Listener is not assignable from {defaultActions: List<{}>, loadBalancerArn: string, port: number, protocol: string}
    pulumi:pulumi:Stack test-test-stack running   on Pulumi.yaml line 79:
    pulumi:pulumi:Stack test-test-stack running   79:       ^[[1;4m- ^[[0m{}
    pulumi:pulumi:Stack test-test-stack running Cannot assign '{defaultActions: List<{}>, loadBalancerArn: string, port: number, protocol: string}' to 'aws:alb/listener:Listener':
    pulumi:pulumi:Stack test-test-stack running   defaultActions: Cannot assign 'List<{}>' to 'List<aws:alb/ListenerDefaultAction:ListenerDefaultAction>':
    pulumi:pulumi:Stack test-test-stack running     Cannot assign '{}' to 'aws:alb/ListenerDefaultAction:ListenerDefaultAction':
    pulumi:pulumi:Stack test-test-stack running       type: Missing required property 'type'
    pulumi:pulumi:Stack test-test-stack  7 messages
Diagnostics:
  pulumi:pulumi:Stack (test-test-stack):
    ^[[31mError^[[0m: aws:alb/listener:Listener is not assignable from {defaultActions: List<{}>, loadBalancerArn: string, port: number, protocol: string}
      on Pulumi.yaml line 79:
      79:       ^[[1;4m- ^[[0m{}
    Cannot assign '{defaultActions: List<{}>, loadBalancerArn: string, port: number, protocol: string}' to 'aws:alb/listener:Listener':
      defaultActions: Cannot assign 'List<{}>' to 'List<aws:alb/ListenerDefaultAction:ListenerDefaultAction>':
        Cannot assign '{}' to 'aws:alb/ListenerDefaultAction:ListenerDefaultAction':
          type: Missing required property 'type'

Example

apiVersion: pulumi.com/v1
kind: Program
metadata:
  name: test
program:
  variables:
    ProfileName: test-profile
    VPC: vpc-e4fb608f
  resources:
    alb:
      type: aws:alb:LoadBalancer
      properties:
        tags: 
          Name: test-lb
        name: testing
        subnets: 
          - subnet-eacf3697
          - subnet-939b18f8
    TG:
      type: aws:alb:TargetGroup
      properties:
        port: 80
        protocol: 'HTTP'
        vpcId: ${VPC} 

    testTargetGroupAttachment:
      type: aws:alb:TargetGroupAttachment
      properties:
        targetGroupArn: ${TG.arn}
        targetId: ${ec2.id}
        port: 80
      
    httpListener:
      type: aws:alb:Listener
      properties:
        loadBalancerArn: ${alb.arn}
        port: 80
        protocol: "HTTP"
        defaultActions: 
          - type: "forward"
            targetGroupArn: ${TG.arn}

Any chance that there is a problem when the pulumi k8s operator is trying to convert the list of maps with a variable inside?

Note: This not happens when I'm trying to run it driectly in my laptop, apperntly it happens only in the k8s operator.

devopsmash avatar Nov 21 '23 09:11 devopsmash