In our GCP project we are in the process of setting labels for resources to assist organization and cost management. This is about GCP labels as described here https://cloud.google.com/compute/docs/labeling-resources and not Kubernetes labels.
For standalone resources like instances, persistent disks and external IP addresses we simply set the labels. We have a Kubernetes/GKE cluster which we also labeled. But is seems that the cluster's labels are not inherited by the Kubernetes node instances and their disks automatically. And it seems we cannot put labels on the cluster's node pool. But we would also like to have labels on these resources because ultimately the instances and disks are what's billed. Now we are wondering what the best practice is in this case.
Is it safe to manually add labels on the compute instances which are managed by the cluster's node pool, and their persistent disks, or can this cause problems? If it's ok and if we add the labels, what happens if the node pool is replaced by a new pool and deleted? In that case the instances are automatically deleted and new ones created. Will the new instances and disks inherit the labels of the old instances or will the labels be lost?