Kubernetes Cluster on Google, How to provision?

I am trying to create a test project with 3 nodes that need labels so the nodeAffinity I have set up in my kubernetes deployment script will know which nodes to provision my nodes too since I want 2 of the nodes to have a different machine type than the 3rd node. The 3rd node I also want an attached disk to store the SQL data into. I have gotten the whole system to work if I create the disk and the cluster manually in google cloud UI. But I am trying to get this same cluster created with Terraform.

My problem is with all the different items. I see this Example of creating a cluster which I have seen some tutorials use. Then I see some tutorials use This Example, but then again I see the most use this Example. It seem there are many ways to provision a cluster on GCP but none really go into detail on anything like labeling individual nodes, or setting the machine type for each node.

Is there documentation I missed some where or is this not possible and I would have to write a provisioner script of some kind to get that done.