nanovms / ops

ops - build and run nanos unikernels
https://ops.city
MIT License
1.3k stars 132 forks source link

Always enable AWS EnaSupport, and use t3.micro AWS instance flavor by default #1378

Closed paulreimer closed 2 years ago

paulreimer commented 2 years ago

If I understand correctly, current nanos works with EnaSupport=true on both Nitro-based and non-Nitro-based instance types. Therefore, this PR removes the Nitro-instance detection mechanism and enables EnaSupport unconditionally.

paulreimer commented 2 years ago

I am new to nanos / ops; this might be a breaking change in some ways that I have not anticipated, and it is also not perfectly backwards compatible with previous nanos versions (for example, prior to https://github.com/nanovms/nanos/pull/1383).

Hopefully someone more experienced can evaluate whether this is a desirable change and guide me through the process — just trying to help in any way I can with this very cool project!

eyberg commented 2 years ago

the reason we look at instance types is that different instances have different requirements (network adapters (in this case ena), different architectures, etc.) - we do need to know what type of instance someone is deploying to in many cases,

as for ena itself we unfortunately can't turn that on for every instance type un-conditionally: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html#ena-requirements - what we can do is if a certain instance type supports it we could enable it by default