compat.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 GetZone(labels map[string]string) (string, bool) {
  7. if _, ok := labels[v1.LabelTopologyZone]; ok { // Label as of 1.17
  8. return labels[v1.LabelTopologyZone], true
  9. } else if _, ok := labels[v1.LabelZoneFailureDomain]; ok { // deprecated label
  10. return labels[v1.LabelZoneFailureDomain], true
  11. } else {
  12. return "", false
  13. }
  14. }
  15. func GetRegion(labels map[string]string) (string, bool) {
  16. if _, ok := labels[v1.LabelTopologyRegion]; ok { // Label as of 1.17
  17. return labels[v1.LabelTopologyRegion], true
  18. } else if _, ok := labels[v1.LabelZoneRegion]; ok { // deprecated label
  19. return labels[v1.LabelZoneRegion], true
  20. } else {
  21. return "", false
  22. }
  23. }
  24. func GetInstanceType(labels map[string]string) (string, bool) {
  25. if _, ok := labels[v1.LabelInstanceType]; ok {
  26. return labels[v1.LabelInstanceType], true
  27. } else if _, ok := labels["node.kubernetes.io/instance-type"]; ok {
  28. return labels["node.kubernetes.io/instance-type"], true
  29. } else {
  30. return "", false
  31. }
  32. }
  33. func GetOperatingSystem(labels map[string]string) (string, bool) {
  34. if _, ok := labels[v1.LabelOSStable]; ok {
  35. return labels[v1.LabelOSStable], true
  36. } else if _, ok := labels["beta.kubernetes.io/os"]; ok {
  37. return labels["beta.kubernetes.io/os"], true
  38. } else {
  39. return "", false
  40. }
  41. }