in clusterloader2/pkg/provider/provider.go [105:140]
func NewProvider(initOptions *InitOptions) (Provider, error) {
configs := parseConfigs(initOptions.ProviderConfigs)
if initOptions.KubemarkRootKubeConfigPath != "" {
configs[RootKubeConfigKey] = initOptions.KubemarkRootKubeConfigPath
}
switch initOptions.ProviderName {
case AKSName:
return NewAKSProvider(configs), nil
case AWSName:
return NewAWSProvider(configs), nil
case AutopilotName:
return NewAutopilotProvider(configs), nil
case EKSName:
return NewEKSProvider(configs), nil
case GCEName:
return NewGCEProvider(configs), nil
case GKEName:
return NewGKEProvider(configs), nil
case GKEKubemarkName:
return NewGKEKubemarkProvider(configs), nil
case KCPName:
return NewKCPProvider(configs), nil
case KindName:
return NewKindProvider(configs), nil
case KubemarkName:
return NewKubemarkProvider(configs), nil
case LocalName:
return NewLocalProvider(configs), nil
case SkeletonName:
return NewSkeletonProvider(configs), nil
case VsphereName:
return NewVsphereProvider(configs), nil
default:
return nil, fmt.Errorf("unsupported provider name: %s", initOptions.ProviderName)
}
}