in pkg/service/platform/platform.go [57:92]
func NewService(platformType string, scheme *runtime.Scheme) (PlatformService, error) {
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
clientcmd.NewDefaultClientConfigLoadingRules(),
&clientcmd.ConfigOverrides{},
)
restConfig, err := config.ClientConfig()
if err != nil {
return nil, errors.Wrap(helpers.LogErrorAndReturn(err), "Failed to get rest configs for platform")
}
platformType = strings.ToLower(platformType)
switch platformType {
case OpenShift:
platform := &openshift.OpenshiftService{}
if err = platform.Init(restConfig, scheme); err != nil {
return nil, errors.Wrap(helpers.LogErrorAndReturn(err), "Failed to init for Openshift platform")
}
return platform, nil
case Kubernetes:
platform := &k8s.K8SService{}
err = platform.Init(restConfig, scheme)
if err != nil {
return nil, errors.Wrap(err, "Failed to init for Kubernetes platform")
}
return platform, nil
case Test:
return nil, nil // for tests only. remove it when will fix platform.Init()
default:
return nil, fmt.Errorf("unknown platform type '%s'", platformType)
}
}