pkg/token/options_ctor.go (49 lines of code) (raw):

package token import ( "os" "github.com/Azure/kubelogin/pkg/internal/env" "github.com/Azure/kubelogin/pkg/internal/token" ) // OptionsWithEnv loads options from environment variables. func OptionsWithEnv() *Options { // initial default values rv := &Options{ LoginMethod: os.Getenv(env.LoginMethod), TenantID: os.Getenv(env.AzureTenantID), ClientID: os.Getenv(env.KubeloginClientID), ClientSecret: os.Getenv(env.KubeloginClientSecret), ClientCert: os.Getenv(env.KubeloginClientCertificatePath), ClientCertPassword: os.Getenv(env.KubeloginClientCertificatePassword), AuthorityHost: os.Getenv(env.AzureAuthorityHost), FederatedTokenFile: os.Getenv(env.AzureFederatedTokenFile), } // azure variant overrides if v, ok := os.LookupEnv(env.AzureClientID); ok { rv.ClientID = v } if v, ok := os.LookupEnv(env.AzureClientSecret); ok { rv.ClientSecret = v } if v, ok := os.LookupEnv(env.AzureClientCertificatePath); ok { rv.ClientCert = v } if v, ok := os.LookupEnv(env.AzureClientCertificatePassword); ok { rv.ClientCertPassword = v } return rv } func (opts *Options) toInternalOptions() *token.Options { return &token.Options{ LoginMethod: opts.LoginMethod, Environment: opts.Environment, TenantID: opts.TenantID, ServerID: opts.ServerID, ClientID: opts.ClientID, ClientSecret: opts.ClientSecret, ClientCert: opts.ClientCert, ClientCertPassword: opts.ClientCertPassword, IsPoPTokenEnabled: opts.IsPoPTokenEnabled, PoPTokenClaims: opts.PoPTokenClaims, IdentityResourceID: opts.IdentityResourceID, AuthorityHost: opts.AuthorityHost, FederatedTokenFile: opts.FederatedTokenFile, UsePersistentCache: false, } }