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  }