viya4-iac-aws icon indicating copy to clipboard operation
viya4-iac-aws copied to clipboard

feat: (IAC-1120) Add support for gp3

Open joshcoburn opened this issue 2 years ago • 3 comments

Add support for gp3

joshcoburn avatar Feb 10 '23 07:02 joshcoburn

gp3 volumes are available in all AWS commercial and gov cloud regions according to this AWS announcement.

dhoucgitter avatar Dec 05 '23 19:12 dhoucgitter

@dhoucgitter understood.. this feature request was more about ensuring that gp3 is a fully supported across the board option within the IAC. Further, it might be worth considering this as the default option across the board as well from a pricing/performance standpoint: see AWS article Migrate from gp2 to gp3 and save up to 20% on costs. However, I acknowledge this would be viewed as breaking change.

The EKS worker nodes currently support gp3 as is using tfvars: set os_disk_type parameter to gp3 and os_disk_iops parameter to min of 3000 within each node group.

The vms also currently support gp3 as is using tfvars: set os_disk_type to gp3 and os_disk_iops to min of 3000. Additionally if NFS is selected, the data_disk_type and data_disk_iops should also be set accordingly.

The only challenge I currently see, is the default_nodepool_os_disk_type .. there is currently a validation check that prohibits users from specifying gp3 disk without needing to modify the main variables.tf. So options here would be either expand the validation check to also include gp3 disk or get rid of the validation check altogether. Interestingly, none of the other disk type variables have a validation check implemented.

Other considerations outside the scope of IAC: EKS default storageclass is set to gp2 disk. SAS Viya utilizes this default storageclass for redis and opendistro PV. Additionally, viya4-monitoring uses default storageclass. So if gp3 disks across the board are desired, the default storageclass would also need to be updated to gp3.

joshcoburn avatar Dec 06 '23 16:12 joshcoburn

This requires PM review.

sayeun avatar Dec 07 '23 23:12 sayeun

In the interim of expanding the default_nodepool_os_disk_type validation check, you can bypass the default_nodepool_os_disk_type validation check by disabling creation of the default nodepool: set create_default_nodepool = false in tfvars.

In this case the default nodepool won't be created, and you are free to define the default nodepool in the node_pools section with gp3 OS disk.

joshcoburn avatar Feb 25 '25 17:02 joshcoburn

@joshcoburn, now that #326 has been merged, are you ok with closing this issue?

saschjmil avatar Mar 31 '25 21:03 saschjmil

@saschjmil There is arguably a second step to ensure gp3 is used across the board: creating the gp3 storageClass and setting this as the cluster default storageClass... however this would technically fit in the viya4-deployment baseline,install step. I'm happy to close this one and open a feature request for viya4-deployment that references this.

joshcoburn avatar Apr 01 '25 14:04 joshcoburn

@joshcoburn That sounds good to me. Thanks!

saschjmil avatar Apr 01 '25 17:04 saschjmil