@@ -6,10 +6,10 @@ import (
66 "net/url"
77
88 "github.com/go-playground/validator/v10"
9- awsProvider "github.com/pulumi/pulumi-aws/sdk/v7 /go/aws"
10- "github.com/pulumi/pulumi-aws/sdk/v7 /go/aws/ec2"
11- "github.com/pulumi/pulumi-aws/sdk/v7 /go/aws/eks"
12- "github.com/pulumi/pulumi-aws/sdk/v7 /go/aws/iam"
9+ awsProvider "github.com/pulumi/pulumi-aws-native /sdk/go/aws"
10+ "github.com/pulumi/pulumi-aws-native /sdk/go/aws/ec2"
11+ "github.com/pulumi/pulumi-aws-native /sdk/go/aws/eks"
12+ "github.com/pulumi/pulumi-aws-native /sdk/go/aws/iam"
1313 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes"
1414 corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1"
1515 helmv3 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3"
@@ -181,7 +181,7 @@ func (r *eksRequest) deployer(ctx *pulumi.Context) error {
181181 // Create EKS Cluster
182182 eksCluster , err := eks .NewCluster (ctx , "eks-cluster" , & eks.ClusterArgs {
183183 RoleArn : eksRole .Arn ,
184- VpcConfig : & eks.ClusterVpcConfigArgs {
184+ ResourcesVpcConfig : & eks.ClusterResourcesVpcConfigArgs {
185185 PublicAccessCidrs : pulumi.StringArray {
186186 pulumi .String ("0.0.0.0/0" ),
187187 },
@@ -194,7 +194,7 @@ func (r *eksRequest) deployer(ctx *pulumi.Context) error {
194194 return err
195195 }
196196
197- kubeconfig := generateKubeconfig (eksCluster .Endpoint , eksCluster .CertificateAuthority . Data (). Elem () , eksCluster .Name )
197+ kubeconfig := generateKubeconfig (eksCluster .Endpoint , eksCluster .CertificateAuthorityData , eksCluster .Name . Elem () )
198198 // Create a Kubernetes provider instance
199199 k8sProvider , err := kubernetes .NewProvider (ctx , "k8sProvider" , & kubernetes.ProviderArgs {
200200 Kubeconfig : kubeconfig ,
@@ -203,15 +203,15 @@ func (r *eksRequest) deployer(ctx *pulumi.Context) error {
203203 return err
204204 }
205205
206- currentAws , err := awsProvider .GetCallerIdentity (ctx , & awsProvider. GetCallerIdentityArgs {}, nil )
206+ currentAws , err := awsProvider .GetAccountId (ctx )
207207 if err != nil {
208208 return err
209209 }
210210 accountId := currentAws .AccountId
211211
212- oidcIssuerUrl := eksCluster .Identities . Index ( pulumi . Int ( 0 )). Oidcs (). Index ( pulumi . Int ( 0 )). Issuer (). Elem ()
213- _ , err = iam .NewOpenIdConnectProvider (ctx , "my-oidc-provider" , & iam.OpenIdConnectProviderArgs {
214- ClientIdLists : pulumi.StringArray {
212+ oidcIssuerUrl := eksCluster .OpenIdConnectIssuerUrl
213+ _ , err = iam .NewOidcProvider (ctx , "my-oidc-provider" , & iam.OidcProviderArgs {
214+ ClientIdList : pulumi.StringArray {
215215 pulumi .String ("sts.amazonaws.com" ),
216216 },
217217 Url : oidcIssuerUrl ,
@@ -236,17 +236,17 @@ func (r *eksRequest) deployer(ctx *pulumi.Context) error {
236236 return err
237237 }
238238
239- nodeGroup0 , err := eks .NewNodeGroup (ctx , "node-group-0" , & eks.NodeGroupArgs {
240- ClusterName : eksCluster .Name ,
241- NodeGroupName : pulumi .String ("eks-nodegroup-0" ),
242- NodeRoleArn : nodeGroupRole .Arn ,
243- SubnetIds : subnetIds ,
239+ nodeGroup0 , err := eks .NewNodegroup (ctx , "node-group-0" , & eks.NodegroupArgs {
240+ ClusterName : eksCluster .Name . Elem () ,
241+ NodegroupName : pulumi .String ("eks-nodegroup-0" ),
242+ NodeRole : nodeGroupRole .Arn ,
243+ Subnets : subnetIds ,
244244 InstanceTypes : pulumi .StringArray (util .ArrayConvert (
245245 r .allocationData .InstanceTypes ,
246246 func (s string ) pulumi.StringInput {
247247 return pulumi .String (s )
248248 })),
249- ScalingConfig : & eks.NodeGroupScalingConfigArgs {
249+ ScalingConfig : & eks.NodegroupScalingConfigArgs {
250250 DesiredSize : pulumi .Int (* r .scalingDesiredSize ),
251251 MaxSize : pulumi .Int (* r .scalingMaxSize ),
252252 MinSize : pulumi .Int (* r .scalingMinSize ),
@@ -343,24 +343,20 @@ func (*eksRequest) createEksRole(ctx *pulumi.Context) (*iam.Role, error) {
343343 if err != nil {
344344 return nil , err
345345 }
346- eksRole , err := iam .NewRole (ctx , "eks-iam-eksRole" , & iam.RoleArgs {
347- AssumeRolePolicy : pulumi .String (eksRolePolicyJSON ),
348- })
349- if err != nil {
350- return nil , err
351- }
352346 eksPolicies := []string {
353347 "arn:aws:iam::aws:policy/AmazonEKSServicePolicy" ,
354348 "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy" ,
355349 }
356- for i , eksPolicy := range eksPolicies {
357- _ , err := iam .NewRolePolicyAttachment (ctx , fmt .Sprintf ("rpa-%d" , i ), & iam.RolePolicyAttachmentArgs {
358- PolicyArn : pulumi .String (eksPolicy ),
359- Role : eksRole .Name ,
360- })
361- if err != nil {
362- return nil , err
363- }
350+ eksRole , err := iam .NewRole (ctx , "eks-iam-eksRole" , & iam.RoleArgs {
351+ AssumeRolePolicyDocument : pulumi .String (eksRolePolicyJSON ),
352+ ManagedPolicyArns : pulumi .StringArray (util .ArrayConvert (
353+ eksPolicies ,
354+ func (s string ) pulumi.StringInput {
355+ return pulumi .String (s )
356+ })),
357+ })
358+ if err != nil {
359+ return nil , err
364360 }
365361 return eksRole , nil
366362}
@@ -381,35 +377,31 @@ func (*eksRequest) createNodeGroupRole(ctx *pulumi.Context) (*iam.Role, error) {
381377 if err != nil {
382378 return nil , err
383379 }
384- nodeGroupRole , err := iam .NewRole (ctx , "nodegroup-iam-role" , & iam.RoleArgs {
385- AssumeRolePolicy : pulumi .String (nodeGroupAssumeRolePolicyJSON ),
386- })
387- if err != nil {
388- return nil , err
389- }
390380 nodeGroupPolicies := []string {
391381 "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy" ,
392382 "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy" ,
393383 "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly" ,
394384 }
395- for i , nodeGroupPolicy := range nodeGroupPolicies {
396- _ , err := iam .NewRolePolicyAttachment (ctx , fmt .Sprintf ("ngpa-%d" , i ), & iam.RolePolicyAttachmentArgs {
397- Role : nodeGroupRole .Name ,
398- PolicyArn : pulumi .String (nodeGroupPolicy ),
399- }, pulumi .DependsOn ([]pulumi.Resource {nodeGroupRole }))
400- if err != nil {
401- return nil , err
402- }
385+ nodeGroupRole , err := iam .NewRole (ctx , "nodegroup-iam-role" , & iam.RoleArgs {
386+ AssumeRolePolicyDocument : pulumi .String (nodeGroupAssumeRolePolicyJSON ),
387+ ManagedPolicyArns : pulumi .StringArray (util .ArrayConvert (
388+ nodeGroupPolicies ,
389+ func (s string ) pulumi.StringInput {
390+ return pulumi .String (s )
391+ })),
392+ })
393+ if err != nil {
394+ return nil , err
403395 }
404396 return nodeGroupRole , nil
405397}
406398
407- func (r * eksRequest ) installAwsLoadBalancerController (ctx * pulumi.Context , oidcIssuerHostPath pulumi.StringOutput , accountId string , k8sProvider * kubernetes.Provider , eksCluster * eks.Cluster , vpc * ec2.Vpc , nodeGroup0 * eks.NodeGroup ) error {
399+ func (r * eksRequest ) installAwsLoadBalancerController (ctx * pulumi.Context , oidcIssuerHostPath pulumi.StringOutput , accountId string , k8sProvider * kubernetes.Provider , eksCluster * eks.Cluster , vpc * ec2.Vpc , nodeGroup0 * eks.Nodegroup ) error {
408400 policyDocumentJSON := getAwsLoadBalancerControllerIamPolicy ()
409401
410402 // Create IAM policy
411- albControllerPolicyAttachment , err := iam .NewPolicy (ctx , "loadBalancerControllerPolicy" , & iam.PolicyArgs {
412- Policy : pulumi .String (policyDocumentJSON ),
403+ albControllerPolicyAttachment , err := iam .NewManagedPolicy (ctx , "loadBalancerControllerPolicy" , & iam.ManagedPolicyArgs {
404+ PolicyDocument : pulumi .Any (policyDocumentJSON ),
413405 })
414406 if err != nil {
415407 return err
@@ -444,17 +436,11 @@ func (r *eksRequest) installAwsLoadBalancerController(ctx *pulumi.Context, oidcI
444436 }).(pulumi.StringOutput )
445437
446438 iamRole , err := iam .NewRole (ctx , "loadBalancerControllerRole" , & iam.RoleArgs {
447- NamePrefix : pulumi .String ("MaptLBCRole-" ),
448- AssumeRolePolicy : assumeRolePolicyJSON ,
449- })
450- if err != nil {
451- return err
452- }
453-
454- // Attach policy to role
455- _ , err = iam .NewRolePolicyAttachment (ctx , "loadBalancerControllerPolicyAttachment" , & iam.RolePolicyAttachmentArgs {
456- Role : iamRole .Name ,
457- PolicyArn : albControllerPolicyAttachment .Arn ,
439+ RoleName : pulumi .String ("MaptLBCRole" ),
440+ AssumeRolePolicyDocument : assumeRolePolicyJSON ,
441+ ManagedPolicyArns : pulumi.StringArray {
442+ albControllerPolicyAttachment .PolicyArn ,
443+ },
458444 })
459445 if err != nil {
460446 return err
@@ -529,15 +515,11 @@ func deployAddons(r *eksRequest, oidcIssuerHostPath pulumi.StringOutput, account
529515 }).(pulumi.StringOutput )
530516
531517 awsEbsCsiDriverRole , err := iam .NewRole (ctx , "AmazonEKS_EBS_CSI_DriverRole" , & iam.RoleArgs {
532- NamePrefix : pulumi .String ("MaptEBSCSIDriverRole-" ),
533- AssumeRolePolicy : assumeRolePolicyJSON ,
534- })
535- if err != nil {
536- return err
537- }
538- _ , err = iam .NewRolePolicyAttachment (ctx , "AmazonEBSCSIDriverPolicyAttachment" , & iam.RolePolicyAttachmentArgs {
539- PolicyArn : pulumi .String ("arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy" ),
540- Role : awsEbsCsiDriverRole .Name ,
518+ RoleName : pulumi .String ("MaptEBSCSIDriverRole" ),
519+ AssumeRolePolicyDocument : assumeRolePolicyJSON ,
520+ ManagedPolicyArns : pulumi.StringArray {
521+ pulumi .String ("arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy" ),
522+ },
541523 })
542524 if err != nil {
543525 return err
@@ -553,7 +535,7 @@ func deployAddons(r *eksRequest, oidcIssuerHostPath pulumi.StringOutput, account
553535 return err
554536 }
555537 _ , err = eks .NewAddon (ctx , addon , & eks.AddonArgs {
556- ClusterName : eksCluster .Name ,
538+ ClusterName : eksCluster .Name . Elem () ,
557539 AddonName : pulumi .String (addon ),
558540 ServiceAccountRoleArn : awsEbsCsiDriverRole .Arn ,
559541 ConfigurationValues : pulumi .String (configValues ),
@@ -564,7 +546,7 @@ func deployAddons(r *eksRequest, oidcIssuerHostPath pulumi.StringOutput, account
564546
565547 } else {
566548 _ , err := eks .NewAddon (ctx , addon , & eks.AddonArgs {
567- ClusterName : eksCluster .Name ,
549+ ClusterName : eksCluster .Name . Elem () ,
568550 AddonName : pulumi .String (addon ),
569551 }, pulumi .DeletedWith (eksCluster ))
570552 if err != nil {
0 commit comments