We have /usage/vpc-networking which has general information, and /examples/reusing-iam-and-vpc/ which doesn't attempt to explains anything.
We also have examples/04-existing-vpc.yaml, but that's not on the website. It maybe a good idea to include examples/ on the website somehow.
We should create a more focused pages about IAM and VPC, and perhaps one that brings it all together.
Per /examples/reusing-iam-and-vpc/, we haven't documented securityGroups.{withLocal,withShared}.
Here is the context that we should incorporate in the docs:
securityGroups: {withShared: false}, which implies you will isolate the nodegroup from the rest of the clustersecurityGroups: {withLocal: false}, which implies you will isolate the nodegroup from the rest of the clustersecurityGroups: {withShared: false, withLocal: false} unless security groups must be managed outside of eksctl, in either cases you must specify all externally-managed security groups you want to use with securityGroups.attachIDs: []; i.e. normally securityGroups.attachIDs: [] is used to add extra security groups, but when either withShared: false or withLocal: false set, it should include security groups that fulfil the functionality of local and shared SGs that is outlined aboveTL;DR: withShared: false or withLocal: false can be used to opt-out from built-in security groups, it's not recommended to use these settings unless you are required to control all of security groups externally.
Ah thank you for that ! Right know the documentation is really sparse, I have to use the config file schema, github issues and retro engineering to understand what i'm doing.
Your explanation is awesome @errordeveloper, this is exactly what I needed to use eksctl with networking managed by Terraform :) Thank you, I feel you should but that immediately into the docs !
Most helpful comment
Per
/examples/reusing-iam-and-vpc/, we haven't documentedsecurityGroups.{withLocal,withShared}.Here is the context that we should incorporate in the docs:
securityGroups: {withShared: false}, which implies you will isolate the nodegroup from the rest of the clustersecurityGroups: {withLocal: false}, which implies you will isolate the nodegroup from the rest of the clustersecurityGroups: {withShared: false, withLocal: false}unless security groups must be managed outside ofeksctl, in either cases you must specify all externally-managed security groups you want to use withsecurityGroups.attachIDs: []; i.e. normallysecurityGroups.attachIDs: []is used to add extra security groups, but when eitherwithShared: falseorwithLocal: falseset, it should include security groups that fulfil the functionality of local and shared SGs that is outlined aboveTL;DR:
withShared: falseorwithLocal: falsecan be used to opt-out from built-in security groups, it's not recommended to use these settings unless you are required to control all of security groups externally.