github.com/Azure/aad-pod-identity@v1.8.17/pkg/utils/utils.go (about) 1 package utils 2 3 import ( 4 "fmt" 5 "os" 6 "regexp" 7 "strings" 8 ) 9 10 // RedactClientID redacts client id 11 func RedactClientID(clientID string) string { 12 return redact(clientID, "$1##### REDACTED #####$3") 13 } 14 15 func redact(src, repl string) string { 16 r, _ := regexp.Compile(`^(\S{4})(\S|\s)*(\S{4})$`) 17 return r.ReplaceAllString(src, repl) 18 } 19 20 // ValidateResourceID validates the resourceID is is of the format 21 // `/subscriptions/<subid>/resourcegroups/<resourcegroup>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<name>` 22 func ValidateResourceID(resourceID string) error { 23 isValid := regexp.MustCompile(`(?i)/subscriptions/(.+?)/resourcegroups/(.+?)/providers/Microsoft.ManagedIdentity/userAssignedIdentities/(.+)`).MatchString 24 if !isValid(resourceID) { 25 return fmt.Errorf("invalid resource id: %q, must match /subscriptions/<subid>/resourcegroups/<resourcegroup>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<name>", resourceID) 26 } 27 return nil 28 } 29 30 func IsKubenetCNI(kubeletConfig string) (bool, error) { 31 var isKubenet bool 32 // read the kubelet config 33 bytes, err := os.ReadFile(kubeletConfig) 34 if err != nil { 35 return isKubenet, err 36 } 37 return strings.Contains(string(bytes), "--network-plugin=kubenet"), nil 38 }