Skip to content

Commit ce17e5c

Browse files
committed
chore: Migrate to aws native pulumi provider
the native provider is the recommended provider now, this allow to remove the dependecy on both providers (classic and native) and remove the aws cli as well Signed-off-by: Adrian Riobo <[email protected]>
1 parent f0caa49 commit ce17e5c

File tree

438 files changed

+151363
-52111
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

438 files changed

+151363
-52111
lines changed

.claude/settings.local.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(find:*)",
5+
"WebFetch(domain:github.com)",
6+
"WebFetch(domain:raw.githubusercontent.com)",
7+
"Bash(while read file)",
8+
"Bash(for:*)",
9+
"Bash(do)",
10+
"Bash(echo \"Updating $file\")",
11+
"Bash(sed:*)",
12+
"Bash(done)",
13+
"Bash(go build:*)",
14+
"Bash(go list:*)",
15+
"WebFetch(domain:www.pulumi.com)"
16+
],
17+
"deny": [],
18+
"ask": []
19+
}
20+
}

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ require (
2424
github.com/aws/aws-sdk-go-v2/service/s3 v1.88.5
2525
github.com/aws/aws-sdk-go-v2/service/sts v1.38.7
2626
github.com/pulumi/pulumi-aws-native/sdk v1.36.0
27-
github.com/pulumi/pulumi-aws/sdk/v7 v7.8.0
2827
github.com/pulumi/pulumi-awsx/sdk/v3 v3.0.0
2928
github.com/pulumi/pulumi-azure-native-sdk/authorization/v3 v3.8.0
3029
github.com/pulumi/pulumi-azure-native-sdk/compute/v3 v3.8.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,8 @@ github.com/pulumi/esc v0.18.0 h1:bbhRPord3GGb1xrzi9zGx+1nTRB6DOOsLbkFBEYCyMo=
292292
github.com/pulumi/esc v0.18.0/go.mod h1:Ny5pRVlRwdoVQvtUffTrwgXU91t+wcaAarvB2fRbnAc=
293293
github.com/pulumi/pulumi-aws-native/sdk v1.36.0 h1:2DL294PFa/CNuvNptAUC7TYHAY8gJ8i+SozBqcDsToQ=
294294
github.com/pulumi/pulumi-aws-native/sdk v1.36.0/go.mod h1:Jzds3Q+YZu9Kd6xLw/yDzAKbDcHlT2nV5tpVljqa9co=
295-
github.com/pulumi/pulumi-aws/sdk/v7 v7.8.0 h1:Wf9fZyegAWxxj5nuzrCU3/Q9FtWs9nBUygPimvnSYHY=
296-
github.com/pulumi/pulumi-aws/sdk/v7 v7.8.0/go.mod h1:4qpJdAOLlqT1l8uTAEc9RNhrRyh7DIw+XP6Fxo5YNdQ=
295+
github.com/pulumi/pulumi-aws/sdk/v7 v7.0.0 h1:xEp48UEBpCfbY1e0bAILQQljrU7J3+rzgpDlCYIdynk=
296+
github.com/pulumi/pulumi-aws/sdk/v7 v7.0.0/go.mod h1:+H62XwnzP7yBbBt+ytoZNwcZjdjCJA7tRP5zNdcDuMw=
297297
github.com/pulumi/pulumi-awsx/sdk/v3 v3.0.0 h1:Hm3E3CUVY9ynj/uByyDvKg5ORKCjfEbDKzbYvEnItfk=
298298
github.com/pulumi/pulumi-awsx/sdk/v3 v3.0.0/go.mod h1:MhFFQ7VuDIt6Tx6OlcF97Sb9FhvaNZhKaLqwp9GejMA=
299299
github.com/pulumi/pulumi-azure-native-sdk/authorization/v3 v3.8.0 h1:q6OTXLPujB8M6OajZgj0r4kkR+U1SmDohOy0gEBKUzM=

oci/Containerfile

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,18 @@ RUN unset VERSION \
1616
&& if [ "$TARGETARCH" = "arm64" ]; then export PULUMI_URL="${PULUMI_BASE_URL}-linux-arm64.tar.gz"; fi \
1717
&& echo ${PULUMI_URL} \
1818
&& curl -L ${PULUMI_URL} -o pulumicli.tar.gz \
19-
&& tar -xzvf pulumicli.tar.gz
19+
&& tar -xzvf pulumicli.tar.gz
2020

21-
# ubi 9.5-1732804088
22-
FROM registry.access.redhat.com/ubi9/ubi@sha256:dec374e05cc13ebbc0975c9f521f3db6942d27f8ccdf06b180160490eef8bdbc
21+
# ubi-minimal 9.6-1760515502
22+
FROM registry.access.redhat.com/ubi9-minimal@sha256:34880b64c07f28f64d95737f82f891516de9a3b43583f39970f7bf8e4cfa48b7
2323
ARG TARGETARCH
2424
LABEL org.opencontainers.image.authors="Redhat Developer"
2525

2626
COPY --from=builder /workspace/out/mapt /workspace/pulumi/pulumi /usr/local/bin/
2727

28-
ENV PULUMI_CONFIG_PASSPHRASE "passphrase"
28+
ENV PULUMI_CONFIG_PASSPHRASE "passphrase"
2929

30-
ENV AWS_SDK_LOAD_CONFIG=1 \
31-
AWS_CLI_VERSION=2.16.7 \
32-
AZ_CLI_VERSION=2.61.0 \
33-
ARCH_N=x86_64
34-
35-
# Pulumi plugins
36-
# renovate: datasource=github-releases depName=pulumi/pulumi-aws
37-
ARG PULUMI_AWS_VERSION=v7.8.0
30+
# Pulumi plugins for native providers and essential utilities
3831
# renovate: datasource=github-releases depName=pulumi/pulumi-awsx
3932
ARG PULUMI_AWSX_VERSION=v3.0.0
4033
# renovate: datasource=github-releases depName=pulumi/pulumi-azure-native
@@ -48,32 +41,18 @@ ARG PULUMI_RANDOM_VERSION=v4.18.4
4841
# renovate: datasource=github-releases depName=pulumi/pulumi-aws-native
4942
ARG PULUMI_AWS_NATIVE_VERSION=v1.36.0
5043

51-
ENV PULUMI_HOME "/opt/mapt/run"
44+
ENV PULUMI_HOME "/opt/mapt/run"
5245
WORKDIR ${PULUMI_HOME}
5346

5447
RUN mkdir -p /opt/mapt/run \
55-
&& if [ "$TARGETARCH" = "arm64" ]; then export ARCH_N=aarch64; fi \
56-
&& export AWS_CLI_URL="https://awscli.amazonaws.com/awscli-exe-linux-${ARCH_N}-${AWS_CLI_VERSION}.zip" \
57-
&& export AZ_CLI_RPM="https://packages.microsoft.com/rhel/9.0/prod/Packages/a/azure-cli-${AZ_CLI_VERSION}-1.el9.${ARCH_N}.rpm" \
58-
&& echo ${AWS_CLI_URL} ${AZ_CLI_RPM} \
59-
&& curl ${AWS_CLI_URL} -o awscliv2.zip \
60-
&& dnf install -y unzip \
61-
&& unzip -qq awscliv2.zip \
62-
&& ./aws/install \
63-
&& curl -L ${AZ_CLI_RPM} -o azure-cli.rpm \
64-
&& dnf install -y azure-cli.rpm \
65-
&& rm -rf aws awscliv2.zip azure-cli.rpm \
66-
&& dnf clean all \
67-
&& rm -rf /var/cache/yum \
68-
&& pulumi plugin install resource aws ${PULUMI_AWS_VERSION} \
6948
&& pulumi plugin install resource azure-native ${PULUMI_AZURE_NATIVE_VERSION} \
7049
&& pulumi plugin install resource command ${PULUMI_COMMAND_VERSION} \
7150
&& pulumi plugin install resource tls ${PULUMI_TLS_VERSION} \
7251
&& pulumi plugin install resource random ${PULUMI_RANDOM_VERSION} \
73-
&& pulumi plugin install resource awsx ${PULUMI_AWSX_VERSION} \
7452
&& pulumi plugin install resource aws-native ${PULUMI_AWS_NATIVE_VERSION} \
53+
&& pulumi plugin install resource awsx ${PULUMI_AWSX_VERSION} \
7554
&& chown -R 1001:0 /opt/mapt/run \
76-
&& chmod -R g=u /opt/mapt/run
55+
&& chmod -R ug+rwx /opt/mapt/run
7756

7857
USER 1001
7958
ENTRYPOINT ["mapt"]

pkg/provider/aws/action/eks/eks.go

Lines changed: 51 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {

pkg/provider/aws/action/fedora/fedora.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55

66
"github.com/go-playground/validator/v10"
7-
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2"
7+
"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ec2"
88
"github.com/pulumi/pulumi/sdk/v3/go/auto"
99
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
1010
"github.com/redhat-developer/mapt/pkg/integrations/cirrus"
@@ -179,7 +179,8 @@ func (r *fedoraRequest) deploy(ctx *pulumi.Context) error {
179179
fmt.Sprintf(amiRegex[*r.arch], *r.version),
180180
[]string{amiOwner},
181181
map[string]string{
182-
"architecture": *r.arch})
182+
"architecture": *r.arch},
183+
*r.allocationData.Region)
183184
if err != nil {
184185
return err
185186
}

pkg/provider/aws/action/kind/kind.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"regexp"
66

77
"github.com/go-playground/validator/v10"
8-
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2"
8+
"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ec2"
99
"github.com/pulumi/pulumi-tls/sdk/v5/go/tls"
1010
"github.com/pulumi/pulumi/sdk/v3/go/auto"
1111
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
@@ -149,7 +149,8 @@ func (r *kindRequest) deploy(ctx *pulumi.Context) error {
149149
ami, err := amiSVC.GetAMIByName(ctx,
150150
amiName(r.arch),
151151
[]string{amiOwner},
152-
map[string]string{"architecture": *r.arch})
152+
map[string]string{"architecture": *r.arch},
153+
*r.allocationData.Region)
153154
if err != nil {
154155
return err
155156
}

0 commit comments

Comments
 (0)