func NewProvider()

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)
	}
}