Issues creating nodegroup, Cryptic error message
See original GitHub issueExpected behavior
Successfully create a nodegroup attached to a cluster
Current behavior
Erroring with the following message:
error: program failed: marshaling properties: awaiting input property cluster: missing one or more required arguments
exit status 1
error: an unhandled error occurred: program exited with non-zero exit code: 1
Steps to reproduce
run pulumi up with the following code snippet:
cluster, err := eks.NewCluster(ctx, stack, &eks.ClusterArgs{
SkipDefaultNodeGroup: pulumi.Bool(true),
VpcId: pulumi.String(vpcId),
SubnetIds: pulumi.StringArray{
pulumi.String("subnet-<redacted>"),
pulumi.String("subnet-<redacted>"),
pulumi.String("subnet-<redacted>"),
},
ProviderCredentialOpts: &eks.KubeconfigOptionsArgs{
ProfileName: pulumi.String(awsProfileName),
},
EndpointPrivateAccess: pulumi.Bool(true),
EndpointPublicAccess: pulumi.Bool(false),
ClusterSecurityGroup: clusterSecurityGroup,
InstanceProfileName: instanceProfile.Name,
NodeAssociatePublicIpAddress: pulumi.Bool(false),
})
if err != nil {
return err
}
_, err = eks.NewNodeGroup(ctx, fmt.Sprintf("%s-%s",stack,"systemNg") , &eks.NodeGroupArgs{
Cluster: cluster.Core,
InstanceProfile: instanceProfile,
DesiredCapacity: pulumi.Int(1),
MinSize: pulumi.Int(1),
MaxSize: pulumi.Int(2),
InstanceType: pulumi.String("t2.medium"),
Labels: pulumi.StringMap{
"ondemand": pulumi.String("true"),
"nodegroup": pulumi.String("system"),
"zone": pulumi.String("default"),
},
NodeSubnetIds: pulumi.StringArray{
pulumi.String("subnet-<redacted>"), // same subnets as cluster
pulumi.String("subnet-<redacted>"),
pulumi.String("subnet-<redacted>"),
},
},pulumi.Parent(cluster))
Context (Environment)
It created the cluster succesfully, but failed with the obscure message posted above
Running on Mac Catalina Pulumi version 2.25.1 (Updated to 3.0.0 with the same results)
Iam resources and security groups created using pulumi-aws module
Full Preview and Output of pulumi up
β― pulumi up
Previewing update (andrew-dev)
View Live: https://app.pulumi.com/andrewhertog/proto-pulumi/andrew-dev/previews/1aa49f04-967c-459d-964e-982b74d926b8
Type Name Plan
+ pulumi:pulumi:Stack proto-pulumi-andrew-dev create
+ ββ aws:iam:Role ec2InstanceRole create
+ ββ aws:ec2:SecurityGroup andrew-dev-clusterSg create
+ ββ aws:iam:RolePolicyAttachment ec2InstanceRole-policy-2 create
+ ββ aws:iam:RolePolicyAttachment ec2InstanceRole-policy-1 create
+ ββ aws:iam:RolePolicyAttachment ec2InstanceRole-policy-0 create
+ ββ aws:iam:InstanceProfile andrew-dev-instanceProfile create
+ ββ eks:index:Cluster andrew-dev create
+ ββ eks:index:ServiceRole andrew-dev-instanceRole create
+ β ββ aws:iam:Role andrew-dev-instanceRole-role create
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-instanceRole-03516f97 create
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-instanceRole-3eb088f2 create
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-instanceRole-e1b295bd create
+ ββ eks:index:ServiceRole andrew-dev-eksRole create
+ β ββ aws:iam:Role andrew-dev-eksRole-role create
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-eksRole-90eb1c99 create
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-eksRole-4b490823 create
+ ββ aws:eks:Cluster andrew-dev-eksCluster create
+ pulumi:pulumi:Stack proto-pulumi-andrew-dev create
+ ββ pulumi:providers:kubernetes andrew-dev-provider create
+ ββ eks:index:VpcCni andrew-dev-vpc-cni create
+ ββ aws:ec2:SecurityGroup andrew-dev-nodeSecurityGroup create
+ ββ kubernetes:core/v1:ConfigMap andrew-dev-nodeAccess create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksNodeIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksNodeClusterIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksClusterIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksExtApiServerClusterIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksNodeInternetEgressRule create
+ ββ eks:index:NodeGroup andrew-dev-systemNg create
+ ββ eks:index:RandomSuffix andrew-dev-systemNg-cfnStackName create
+ ββ aws:ec2:SecurityGroup andrew-dev-systemNg-nodeSecurityGroup create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-systemNg-eksNodeInternetEgressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-systemNg-eksNodeIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-systemNg-eksExtApiServerClusterIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-systemNg-eksNodeClusterIngressRule create
+ ββ aws:ec2:SecurityGroupRule andrew-dev-systemNg-eksClusterIngressRule create
+ ββ aws:ec2:LaunchConfiguration andrew-dev-systemNg-nodeLaunchConfiguration create
+ ββ aws:cloudformation:Stack andrew-dev-systemNg-nodes create
Resources:
+ 38 to create
Do you want to perform this update? yes
Updating (andrew-dev)
View Live: https://app.pulumi.com/andrewhertog/proto-pulumi/andrew-dev/updates/15
Type Name Status Info
+ pulumi:pulumi:Stack proto-pulumi-andrew-dev creating..
+ pulumi:pulumi:Stack proto-pulumi-andrew-dev creating...
+ pulumi:pulumi:Stack proto-pulumi-andrew-dev creating..
+ ββ aws:iam:RolePolicyAttachment ec2InstanceRole-policy-0 created
+ ββ aws:iam:InstanceProfile andrew-dev-instanceProfile created
+ ββ aws:iam:RolePolicyAttachment ec2InstanceRole-policy-2 created
+ ββ aws:iam:RolePolicyAttachment ec2InstanceRole-policy-1 created
+ ββ eks:index:Cluster andrew-dev created
+ ββ eks:index:ServiceRole andrew-dev-instanceRole created
+ β ββ aws:iam:Role andrew-dev-instanceRole-role created
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-instanceRole-03516f97 created
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-instanceRole-3eb088f2 created
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-instanceRole-e1b295bd created
+ ββ eks:index:ServiceRole andrew-dev-eksRole created
+ β ββ aws:iam:Role andrew-dev-eksRole-role created
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-eksRole-90eb1c99 created
+ β ββ aws:iam:RolePolicyAttachment andrew-dev-eksRole-4b490823 created
+ ββ aws:eks:Cluster andrew-dev-eksCluster created
+ ββ aws:ec2:SecurityGroup andrew-dev-nodeSecurityGroup created
+ ββ eks:index:VpcCni andrew-dev-vpc-cni created
+ ββ pulumi:providers:kubernetes andrew-dev-provider created
+ ββ pulumi:providers:kubernetes andrew-dev-eks-k8s created
+ ββ kubernetes:core/v1:ConfigMap andrew-dev-nodeAccess created
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksNodeInternetEgressRule created
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksExtApiServerClusterIngressRule created
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksClusterIngressRule created
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksNodeIngressRule created
+ ββ aws:ec2:SecurityGroupRule andrew-dev-eksNodeClusterIngressRule created
Diagnostics:
pulumi:pulumi:Stack (proto-pulumi-andrew-dev):
error: program failed: marshaling properties: awaiting input property cluster: missing one or more required arguments
exit status 1
error: an unhandled error occurred: program exited with non-zero exit code: 1
Resources:
+ 28 created
Duration: 10m48s
Affected feature
Golang eks.NewNodeGroup is suspected to have the issue.
Issue Analytics
- State:
- Created 2 years ago
- Comments:13 (6 by maintainers)
Top Results From Across the Web
Resolve node group errors in an EKS cluster - Amazon AWS
I have issues with my managed node group in my Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Short description. You receive an error...
Read more >EKS Managed Node Groups, the good, the bad and the config
However I'll go into more detail on the Managed Node Group specifics ... for example we had some cryptic error messages from Terraform...
Read more >PE release notes - Puppet
Resolved issues. Upgrade failed with cryptic errors if agent_version was configured for your infrastructure pe_repo class. If you configured theΒ ...
Read more >Fields and Anonymous Attributes [Proposal] - Geometry Nodes ...
A sub-set of them could be created, on behalf of high level users, ... Not exposing the right attributes in nodegroups will create...
Read more >@pulumi/pulumi | Yarn - Package Manager
The Pulumi Node.js SDK lets you write cloud programs in JavaScript. Installation. Using npm: $ npm install --save @pulumi/pulumi. Using yarn:
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Sorry for the trouble and thanks for your patience, @andrewhertog and @universam1. Weβll take a closer look at this today and let you know.
https://github.com/pulumi/pulumi/pull/7158 fixes the underlying Go marshaling issues. Once thatβs merged, weβll need to regenerate the Go SDK for EKS and release a new version.
That change is sufficient to get managed node groups working (i.e. using
eks.NewManagedNodeGroup; see the example here: https://github.com/pulumi/pulumi-eks/issues/577#issuecomment-849879316).However, using the older
eks.NewNodeGroupyields a new error from inside the TypeScript implementation:cluster.Coreincludes theVpcCniresource, which is marshaled as a resource reference, and is used by theNodeGroupcomponent. The problem is we do not have a resource registration on the TypeScript side for theVpcCniresource, so when the resource reference is deserialized, instead of rehydrating an instance ofVpcCniresource, the deserializer falls back to the ID string of the resource, which cannot be used withdependsOn. The fix will involve adding a resource registration forVpcCni.