dashboard icon indicating copy to clipboard operation
dashboard copied to clipboard

Gke provisioning

Open mantis-toboggan-md opened this issue 1 year ago • 0 comments

Summary

Fixes #8967 #10621

Occurred changes and/or fixed issues

Functionality should be on par with existing GKE provisioning in the Ember UI. Some Ember validation happens at same time: it's all form validation in this port. There are a handful of areas where I have deviated from Ember:

  • logging and monitoring services are hardcoded lists with two options, one of which is none: I'm using a checkbox instead of a dropdown.
  • node pool 'local ssd count/local ssd disks' is a GB input in Ember - this is inaccurate, the google ui describes the field as: "For every node in a node-pool, the number of local SSD disks are attached."
  • node pool preemptible is labeled as beta - it appears to be GA now https://cloud.google.com/kubernetes-engine/docs/how-to/preemptible-vms
  • node pool has only 1 thing under 'show advanced options' so I just got rid of the show advanced toggle - seems excessive
  • (autoscaling) node minimum is not configurable in Ember. The input component has a max value of...itself. The input is now validated so that the minimum number of nodes specified can't exceed the maximum number of nodes specified
  • Ember had two 'description' inputs - one for the norman cluster object and one for the GKE cluster. I combined them in the same way that the 'name' input actually sets a norman cluster name and gkeconfig name (aks and eks have the same thing with names)
  • image type options list is shorter and simpler - my ~excuses~ justification for this is detailed in inline comments
  • Ember UI had a section called 'config' with what appears to be entirely networking stuff, plus a kubernetes version dropdown. I did not care for this, particularly given that the networking stuff is the most complicated part of the form, and re-arranged the sections so that the k8s version dropdown appears with location and labels ('general stuff' I guess)
  • in the Ember location can't be changed once you start configuring the rest of the form...I allow it to be changed and re-fetch relevant GCP data when it does
  • unlike EKS and AKS I've left projectid/cloud credential un-changeable once the user starts configuring the rest of the cluster (more in line with the Ember UX). This is because the project id field is an input, while EKS/AKS are able to rely entirely on dropdowns...the ux where we just automatically verify the new cred selection and re-fetch any data from azure/aws does not work well here

Areas or cases that should be tested

  • GKE provisioning generally
  • editing clusters when the underlying GKE cluster was provisioned successfully - most fields can't be edited, though new node pools can be added/fully configured
  • editing clusters when GKE provisioning fails (one way to achieve this state consistently is to use one of the spoofed 'shared subnetwork' options) - the user should be able to edit gke config fields they otherwise wouldn't be able to
  • validation: the nodepool name validation, min/max node validation is the most deviant and probably worthy of double-checking
  • adding/removing nodepools on edit
  • adding cluster members on create or on edit
  • in Ember I see a request for GKE service accounts but I don't see them used anywhere in the UI so I left it out. if you see something say something.

Areas which could experience regressions

This PR is pretty self-contained and should not impact areas outside of GKE provisioning. There is a minor stylistic update to ArrayList so it matches KeyValue (both are used next to eachother in node pools and the difference in spacing was apparent, and ugly)

Screenshot/Video

Checklist

  • [x] The PR is linked to an issue and the linked issue has a Milestone, or no issue is needed
  • [x] The PR has a Milestone
  • [x] The PR template has been filled out
  • [x] The PR has been self reviewed
  • [x] The PR has a reviewer assigned
  • [x] The PR has automated tests or clear instructions for manual tests and the linked issue has appropriate QA labels, or tests are not needed
  • [x] The PR has reviewed with UX and tested in light and dark mode, or there are no UX changes

mantis-toboggan-md avatar May 14 '24 16:05 mantis-toboggan-md