Skip to content

Instantly share code, notes, and snippets.

@cnunciato
Created February 2, 2024 01:08
Show Gist options
  • Save cnunciato/6481c53db22536697eca001ebcc3688b to your computer and use it in GitHub Desktop.
Save cnunciato/6481c53db22536697eca001ebcc3688b to your computer and use it in GitHub Desktop.
#!/bin/bash
tokens=(
aws:lambda/function:Function
aws:s3/bucket:Bucket
aws:iam/role:Role
aws:ec2/instance:Instance
aws:rds/instance:Instance
aws:ec2/securityGroup:SecurityGroup
aws:ec2/vpc:Vpc
aws:alb/loadBalancer:LoadBalancer
aws:cloudfront/distribution:Distribution
aws:ecs/taskDefinition:TaskDefinition
aws:route53/record:Record
aws:ec2/launchTemplate:LaunchTemplate
aws:rds/cluster:Cluster
aws:iam/policy:Policy
aws:eks/cluster:Cluster
aws:secretsmanager/secret:Secret
aws:ec2/subnet:Subnet
aws:dynamodb/table:Table
aws:ecs/service:Service
aws:acm/certificate:Certificate
aws:apigateway/restApi:RestApi
aws:autoscaling/group:Group
aws:iam/rolePolicyAttachment:RolePolicyAttachment
aws:lb/targetGroup:TargetGroup
aws:sqs/queue:Queue
aws:alb/listener:Listener
aws:eks/nodeGroup:NodeGroup
aws:ecs/cluster:Cluster
aws:s3/bucketPolicy:BucketPolicy
aws:cloudwatch/metricAlarm:MetricAlarm
aws:sns/topic:Topic
awsx:ecs:FargateService
awsx:ec2:Vpc
azure-native:storage:StorageAccount
azure-native:resources:ResourceGroup
azure-native:web:WebApp
azure-native:keyvault:Vault
gcp:storage/bucket:Bucket
gcp:serviceaccount/account:Account
gcp:container/cluster:Cluster
gcp:cloudrun/service:Service
gcp:compute/instance:Instance
kubernetes:helm.sh/v3:Chart
kubernetes:helm.sh/v3:Release
kubernetes:apps/v1:Deployment
kubernetes:networking.k8s.io/v1:Ingress
kubernetes:autoscaling/v2beta2:HorizontalPodAutoscaler
kubernetes:core/v1:Secret
kubernetes:yaml:ConfigFile
)
languages=(
typescript
# javascript https://github.com/pulumi/pulumi/issues/14632
python
go
csharp
java
yaml
)
pulumi logout && pulumi login --local
rm -rf examples && mkdir examples
export PATH="${HOME}/.pulumi-dev/bin:$PATH"
for i in "${!tokens[@]}"; do
token="${tokens[$i]}"
for language in "${languages[@]}"; do
provider=$(node -e "const token = '$token'; const split = token.split(/[:.\/]/); console.log(split.at(0).toLowerCase());")
namespace=$(node -e "const token = '$token'; const split = token.split(/[:.\/]/); console.log(split.at(1).toLowerCase());")
resource=$(node -e "const token = '$token'; const split = token.split(/[:.\/]/); console.log(split.at(-1).toLowerCase());")
name="${provider}-${namespace}-${resource}-${language}"
out="examples/${name}"
pulumi package example "$provider" "$token" --language "$language" --out "$out"
export PULUMI_CONFIG_PASSPHRASE=""
export AWS_REGION="us-west-2"
# pulumi -C "$out" stack init dev
# pulumi -C "$out" install
# pulumi -C "$out" preview --non-interactive
# pulumi -C "$out" stack rm dev --yes
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment