sparse-intern-71089
12/22/2020, 1:54 PMcool-fireman-90027
12/22/2020, 3:43 PMprehistoric-kite-30979
12/22/2020, 3:57 PMgentle-diamond-70147
12/22/2020, 4:45 PMprehistoric-kite-30979
12/22/2020, 4:54 PMvar err error
role.base, err = iam.NewRole(ctx, role.name, &iam.RoleArgs{
NamePrefix: pulumi.String(role.name),
AssumeRolePolicy: cfg.AssumeRolePolicy,
}, pulumi.Parent(role))
if err != nil {
return nil, err
}
attachedPolicies := cfg.PolicyArns.ToStringArrayOutput().ApplyStringArray(
func(v interface{}) ([]string, error) {
res := make([]string, 0)
for _, policy := range v.([]string) {
rpaName := fmt.Sprintf("%v-%v", role.name, policyName(policy))
_, err := iam.NewRolePolicyAttachment(ctx, rpaName, &iam.RolePolicyAttachmentArgs{
PolicyArn: pulumi.String(policy),
Role: role.base.Name,
}, pulumi.Parent(role))
if err != nil {
return nil, err
}
res = append(res, rpaName)
}
return res, nil
},
)
return role, ctx.RegisterResourceOutputs(role, pulumi.Map{"AttachedPolicies": attachedPolicies})
prehistoric-kite-30979
12/22/2020, 4:54 PMprehistoric-kite-30979
12/22/2020, 4:55 PMprehistoric-kite-30979
12/22/2020, 4:56 PMgentle-diamond-70147
12/22/2020, 5:05 PMprehistoric-kite-30979
12/23/2020, 10:57 AMprehistoric-kite-30979
12/23/2020, 10:58 AMrole, err := setupNodeGroupRole(ctx, cfg.clusterName, cfg.Name, cluster)
...
_, err = eks.NewNodeGroup(ctx, cfg.Name, &eks.NodeGroupArgs{
...
}, pulumi.Parent(cluster), pulumi.DependsOn([]pulumi.Resource{role, cluster}))
prehistoric-kite-30979
12/23/2020, 11:00 AMtype Role struct {
pulumi.ResourceState
name string
base *iam.Role
}
func NewRole(ctx *pulumi.Context, cfg Config, parent pulumi.Resource) (*Role, error) {
role := &Role{name: fmt.Sprintf("%v-%v", cfg.Target, cfg.Use)}
if err := ctx.RegisterComponentResource(typeName, role.name, role, pulumi.Parent(parent)); err != nil {
return nil, err
}
...
role.base, err = iam.NewRole(ctx, role.name, &iam.RoleArgs{
...
attachedPolicies := cfg.PolicyArns.ToStringArrayOutput().ApplyStringArray(
func(v interface{}) ([]string, error) {
res := make([]string, 0)
for _, policy := range v.([]string) {
rpaName := fmt.Sprintf("%v-%v", role.name, policyName(policy))
_, err := iam.NewRolePolicyAttachment(ctx, rpaName, &iam.RolePolicyAttachmentArgs{
PolicyArn: pulumi.String(policy),
Role: role.base.Name,
}, pulumi.Parent(role))
if err != nil {
return nil, err
}
res = append(res, rpaName)
}
return res, nil
},
)
return role, ctx.RegisterResourceOutputs(role, pulumi.Map{"AttachedPolicies": attachedPolicies})
}