Good morning, I've started to work with pulumi and...
# aws
m
Good morning, I've started to work with pulumi and typescript. I want to create an EKS cluster. I've seen this example https://www.pulumi.com/blog/easily-create-and-manage-aws-eks-kubernetes-clusters-with-pulumi/ and it worked fine except some minor issues. Now I wanted to customise the code a bit, but I got confused because there are several eks packages in the SDK There's eks.Cluster, aws.eks.Cluster and aws-native.eks.Cluster What is the difference between these - I've understood that aws-native is considered to be 'in-preview', but what about the other 2 - and which one should I use?
s
First, the difference between
aws.eks.Cluster
and `aws-native.eks.Cluster`: The former uses our AWS Classic provider, the latter uses the newer AWS Native provider. Between these two, I'd recommend the former (using the AWS Classic provider). Regarding `eks.Cluster`: This is what we call a multi-language component (MLC); that's a way to package up groups of resources and let other users use that package in their own programs. This component simplifies creating an EKS cluster, but it does so at the cost of some flexibility. Choosing between
aws.eks.Cluster
and
eks.Cluster
comes down to whether or not the relatively limited customization options of
eks.Cluster
give you enough flexibility to meet your specific requirements. If so, use `eks.Cluster`; if not, use
aws.eks.Cluster
. I hope this helps!
m
Yes, it helps a lot. I tried to find an explanation like this in the documentation, but didn't managed to. I assumed that at least one of these packages must be de-facto deprecated, but was confused when I saw that all github repos see regular updates
One follow up question: you think that aws-native is not stable enough for EKS, yet? I had seen a recommendation in the docs, that one should try aws-native for newly started projects already. Don't you agree with that? I don't want to start sth. in AWS classic and then a year later have to rewrite everything in aws-native, because aws classic becomes deprecated.
Also, is there even a 4th package - what is awsx about? Cf. https://github.com/pulumi/apps/blob/master/eks/index.ts#L16
s
There are no plans to deprecate AWS Classic, and---frankly---I don't see that ever happening. You see recommendations against AWS Native simply because (due to limitations on AWS' part) it doesn't have the same breadth of coverage as AWS Classic. AWSX is another component, like the EKS component. It provides some higher-level constructs to simplify certain things, like creating VPCs. Again, the choice between using or not using a component comes down to the tradeoff between simplicity versus flexibility. (The component is simpler but offers fewer configuration options.)