internal/creds/creds.go (37 lines of code) (raw):

package creds import ( "fmt" "github.com/aws/eks-hybrid/internal/api" "github.com/aws/eks-hybrid/internal/tracker" ) type CredentialProvider string const ( SsmCredentialProvider CredentialProvider = "ssm" IamRolesAnywhereCredentialProvider CredentialProvider = "iam-ra" ) func GetCredentialProvider(credProcess string) (CredentialProvider, error) { switch credProcess { case string(SsmCredentialProvider): return SsmCredentialProvider, nil case string(IamRolesAnywhereCredentialProvider): return IamRolesAnywhereCredentialProvider, nil default: return "", fmt.Errorf("invalid credential process provided. Valid options are ssm and iam-ra") } } func GetCredentialProviderFromNodeConfig(nodeCfg *api.NodeConfig) (CredentialProvider, error) { if nodeCfg.IsSSM() { return SsmCredentialProvider, nil } else if nodeCfg.IsIAMRolesAnywhere() { return IamRolesAnywhereCredentialProvider, nil } return "", fmt.Errorf("no credential process provided in nodeConfig") } func GetCredentialProviderFromInstalledArtifacts(artifacts *tracker.InstalledArtifacts) (CredentialProvider, error) { if artifacts.Ssm { return SsmCredentialProvider, nil } else if artifacts.IamRolesAnywhere { return IamRolesAnywhereCredentialProvider, nil } return "", fmt.Errorf("no credential process found in installed artifacts") }