Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot use GP3 root volumes #1244

Closed
1 task
exavier-slf opened this issue Feb 16, 2021 · 10 comments
Closed
1 task

cannot use GP3 root volumes #1244

exavier-slf opened this issue Feb 16, 2021 · 10 comments

Comments

@exavier-slf
Copy link

I have issues

I'm submitting a...

  • bug report

What is the current behavior?

Launch configuration creates gp3 based volumes by default , cannot change volume type

If this is a bug, how to reproduce? Please include a code sample if relevant.

terraform apply errors out and says gp3 not a valid volume type and we cannot change the volume type from variables

Error: Error creating launch configuration: ValidationError: gp3 is invalid. Valid volume types are standard, io1, gp2, st1 and sc1.
status code: 400, request id: 53374bce-054f-4b8a-87be-e0f85ddbe98f

What's the expected behavior?

Are you able to fix this problem and submit a PR? Link here if you have already.

Environment details

  • Affected module version:
  • OS:
  • Terraform version:

Any other relevant info

@calvinbui
Copy link

calvinbui commented Feb 17, 2021

the default aws-ebs storage class doesn't support gp3

you have to use the new ebs csi: https://github.com/kubernetes-sigs/aws-ebs-csi-driver

related: aws/containers-roadmap#1187

EDIT: root volumes are supported by this module. PVs using GP3 are not.

@Justin-DynamicD
Copy link

Justin-DynamicD commented Feb 22, 2021

EDIT: Changing this comment ot reflect my disocveries.

I have a number of eks clusters deployed uing this module and have never had to set root_volume_type before. From looking at the state files, however, they are all using gp2 volumes.

Today I attempted a new cluster and got the same error as the above. It seems like at some point this module was modified to default to gp3 which is not supported if you are using it to deploy from scratch. You would have to deploy eks with this module, then deploy the driver updates, then redeploy the worker nodes.

Until the ebs csi is installed by default into the cluster, I don't think this module should default to gp3. It's asking for problems.

@Justin-DynamicD
Copy link

Here is the change made 25 days ago:
76537d1

Again, I think putting a constraint on the variable to allow gp3 is likely fine, but as-is this change breaks all example configs in this repo aand most deployments as terraform, by nature, is a deploy from scratch tool.

@rchenzheng
Copy link

I am also having the same issues, where does one go about fetching the new CSI? Is it on the newer versions of EKS?

@rchenzheng
Copy link

rchenzheng commented Feb 26, 2021

Here is the change made 25 days ago:
76537d1

Again, I think putting a constraint on the variable to allow gp3 is likely fine, but as-is this change breaks all example configs in this repo aand most deployments as terraform, by nature, is a deploy from scratch tool.

@Justin-DynamicD You can work around this by defining the root_volume_type in the worker_groups, however it does break deployment

Example:

  worker_groups = [
    {
      ...
      root_volume_type = "gp2"
    }

@Justin-DynamicD
Copy link

@rchenzheng you are of course correct: I can change the default to gp2 and things work. I guess my complaint/concern is right now I feel the module no longer has sane defaults, as the default values don't allow you to actually launch the workers. Someone running the basic example (without adding root_volume_type and runnign as-is) would have to

  1. terraform apply (fails to launch workers)
  2. use kubectl/helm to deploy latest ebs-csi driver
  3. rerun terraform apply (works)

That's just messy. I would propose that until gp3 support is included in the controller by default that the template should default to gp2 as well. At the end of the day, maybe this is just a nitpick, but to me a module should only require as few params as possible.

@rchenzheng
Copy link

rchenzheng commented Mar 1, 2021

@rchenzheng you are of course correct: I can change the default to gp2 and things work. I guess my complaint/concern is right now I feel the module no longer has sane defaults, as the default values don't allow you to actually launch the workers. Someone running the basic example (without adding root_volume_type and runnign as-is) would have to

  1. terraform apply (fails to launch workers)
  2. use kubectl/helm to deploy latest ebs-csi driver
  3. rerun terraform apply (works)

That's just messy. I would propose that until gp3 support is included in the controller by default that the template should default to gp2 as well. At the end of the day, maybe this is just a nitpick, but to me a module should only require as few params as possible.

I agree, the defaults break all current examples since the provider doesn't support gp3. Hence it should default to gp3.

@james-callahan
Copy link

Duplicate of #1205

@barryib
Copy link
Member

barryib commented May 28, 2021

Closing since we now use gp2 as default (for now).

@barryib barryib closed this as completed May 28, 2021
@github-actions
Copy link

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 21, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants