compat.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package util
  2. import (
  3. v1 "k8s.io/api/core/v1"
  4. )
  5. // See https://kubernetes.io/docs/reference/labels-annotations-taints/
  6. func GetRegion(labels map[string]string) (string, bool) {
  7. if _, ok := labels[v1.LabelTopologyRegion]; ok { // Label as of 1.17
  8. return labels[v1.LabelTopologyRegion], true
  9. } else if _, ok := labels[v1.LabelZoneRegion]; ok { // deprecated label
  10. return labels[v1.LabelZoneRegion], true
  11. } else {
  12. return "", false
  13. }
  14. }
  15. func GetInstanceType(labels map[string]string) (string, bool) {
  16. if _, ok := labels[v1.LabelInstanceType]; ok {
  17. return labels[v1.LabelInstanceType], true
  18. } else if _, ok := labels["node.kubernetes.io/instance-type"]; ok {
  19. return labels["node.kubernetes.io/instance-type"], true
  20. } else {
  21. return "", false
  22. }
  23. }
  24. func GetOperatingSystem(labels map[string]string) (string, bool) {
  25. if _, ok := labels[v1.LabelOSStable]; ok {
  26. return labels[v1.LabelOSStable], true
  27. } else if _, ok := labels["beta.kubernetes.io/os"]; ok {
  28. return labels["beta.kubernetes.io/os"], true
  29. } else {
  30. return "", false
  31. }
  32. }