bored-table-20691
02/22/2022, 10:33 PMthousands-telephone-86052
02/22/2022, 10:42 PMname: eks_go_aws
runtime: go
description: eks stack using aws sdk instead of eks
bored-table-20691
02/22/2022, 10:44 PMthousands-telephone-86052
02/22/2022, 10:45 PM➜ eks_go_aws git:(feature/eks_go_aws) ✗ pulumi version
v3.24.1
bored-table-20691
02/22/2022, 10:46 PMthousands-telephone-86052
02/22/2022, 10:46 PMbored-table-20691
02/22/2022, 10:48 PMthousands-telephone-86052
02/22/2022, 10:48 PMbored-table-20691
02/22/2022, 10:48 PMthousands-telephone-86052
02/22/2022, 10:48 PMbored-table-20691
02/22/2022, 10:49 PMpulumi-eks
, not the the core AWS eks
packagethousands-telephone-86052
02/22/2022, 10:50 PM✗ ls /home/vikas/.pulumi/plugins/resource-eks-v0.37.1
node_modules package.json package-lock.json PulumiPlugin.yaml pulumi-resource-eks
➜ eks_go_aws git:(feature/eks_go_aws) ✗ pulumi up
Previewing update (eks-test):
Type Name Plan
+ pulumi:pulumi:Stack eks_go_aws-eks-test create
+ ├─ pulumi:providers:aws janus_test_east1 create
+ ├─ aws:eks:Cluster test-east1 create
+ ├─ aws:eks:NodeGroup default create
+ └─ aws:eks:NodeGroup observability create
Resources:
+ 5 to create
Do you want to perform this update? [Use arrows to move, enter to select, type to filter]
yes
> no
details
so the stack does not get more granular than "cluster" and "nodegroup"bored-table-20691
02/22/2022, 10:52 PMthousands-telephone-86052
02/22/2022, 10:52 PMbored-table-20691
02/22/2022, 10:53 PMpulumi-eks
(which will create many more ersources)thousands-telephone-86052
02/22/2022, 10:53 PMbored-table-20691
02/22/2022, 10:53 PMthousands-telephone-86052
02/22/2022, 10:53 PMbored-table-20691
02/22/2022, 10:55 PMcluster, err := eks.NewCluster(ctx, clusterName, &eks.ClusterArgs{
eks
look like?GetRole
is not really valid.LookupRole
to the best of my knowledge (in Go): https://www.pulumi.com/registry/packages/aws/api-docs/iam/getrole/aws
package’s eks
subpackage is not equivalent to pulumi-eks
(the latter wraps the former)thousands-telephone-86052
02/22/2022, 11:22 PMbored-table-20691
02/22/2022, 11:23 PMgetRole
is equivalent to Go’s LookupRole
(per docs)thousands-telephone-86052
02/22/2022, 11:37 PMLookupRoleResult
- which contains a string role ArnRole
. so
GetRole seems closer in that regard.bored-table-20691
02/23/2022, 10:15 AMthousands-telephone-86052
02/24/2022, 5:27 PMeksCluster.go|63 col 26 error| InvalidIfaceAssign: cannot use instanceRole (variable of type *iam.LookupRoleResult) as iam.RoleInput value in struct literal: missing method ElementType
bored-table-20691
02/24/2022, 5:36 PMNewEksCluster
in EKS takes a type union (I think it’s called pulumiIamRole
that I don’t know how it is defined), so it can handle a greater span of types. This is not possible in Go.thousands-telephone-86052
02/24/2022, 5:42 PMinstanceRole?: pulumi.Input<aws.iam.Role>;
/**
serviceRole?: pulumi.Input<aws.iam.Role>;
And in Go:
InstanceRole iam.RoleInput
ServiceRole iam.RoleInput
bored-table-20691
02/24/2022, 5:44 PMthousands-telephone-86052
02/24/2022, 5:44 PMbored-table-20691
02/24/2022, 5:46 PMthousands-telephone-86052
02/24/2022, 5:46 PMbored-table-20691
02/24/2022, 5:47 PMcluster, err := eks.NewCluster(ctx, "...", &eks.ClusterArgs{
VpcId: networkConfig.VPC.ID(),
PrivateSubnetIds: pulumi.ToStringArrayOutput(networkConfig.Subnets.PrivateSubnetIDs),
EnabledClusterLogTypes: pulumi.StringArray{
pulumi.String("api"),
pulumi.String("audit"),
pulumi.String("authenticator"),
},
SkipDefaultNodeGroup: pulumi.BoolPtr(true),
InstanceRoles: iam.RoleArray{
eksClusterInstanceRole,
},
NodeAssociatePublicIpAddress: pulumi.Bool(true),
Version: pulumi.String("1.20"),
UseDefaultVpcCni: pulumi.Bool(true),
CreateOidcProvider: pulumi.Bool(true),
ProviderCredentialOpts: eks.KubeconfigOptionsArgs{
RoleArn: pulumi.String(okeraCfg.Require("assume-role-arn")),
},
}, pulumi.Provider(awsProvider))
if err != nil {
return nil, err
}
eksClusterInstanceRole, err := createEKSClusterRole(ctx, awsProvider, "...")
thousands-telephone-86052
02/24/2022, 5:50 PMbored-table-20691
02/24/2022, 5:55 PMiam.GetRole
actually does in Go, and why it’s causing the panic you’re seeing (or at least, that’s the hunch on the panic cause).thousands-telephone-86052
02/25/2022, 1:00 AM