func()

in pkg/auth/auth.go [152:166]


func (c Config) GetCredential(podName, podNamespace, resource, aadEndpoint, tenantID, nmiPort string) (azcore.TokenCredential, error) {
	// use switch case to ensure only one of the identity modes is enabled
	switch {
	case c.UsePodIdentity:
		return getPodIdentityTokenCredential(podName, podNamespace, resource, tenantID, nmiPort)
	case c.UseVMManagedIdentity:
		return getManagedIdentityTokenCredential(c.UserAssignedIdentityID)
	case len(c.AADClientSecret) > 0 && len(c.AADClientID) > 0:
		return getServicePrincipalTokenCredential(c.AADClientID, c.AADClientSecret, aadEndpoint, tenantID)
	case len(c.WorkloadIdentityClientID) > 0 && len(c.WorkloadIdentityToken) > 0:
		return getWorkloadIdentityTokenCredential(c.WorkloadIdentityClientID, c.WorkloadIdentityToken, aadEndpoint, tenantID)
	default:
		return nil, fmt.Errorf("no identity mode is enabled")
	}
}