func NewPlatformService()

in pkg/service/platform/platform.go [48:79]


func NewPlatformService(platformType string, scheme *runtime.Scheme, k8sClient client.Client) (PlatformService, error) {
	config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
		clientcmd.NewDefaultClientConfigLoadingRules(),
		&clientcmd.ConfigOverrides{},
	)

	restConfig, err := config.ClientConfig()
	if err != nil {
		return nil, fmt.Errorf("failed to get rest configs for platform: %w", err)
	}

	switch strings.ToLower(platformType) {
	case OpenShiftPlatformType:
		platform := openshift.OpenshiftService{}

		if err := platform.Init(restConfig, scheme, k8sClient); err != nil {
			return nil, fmt.Errorf("failed to init Openshift platform: %w", err)
		}

		return &platform, nil
	case K8SPlatformType:
		platform := kubernetes.K8SService{}

		if err := platform.Init(restConfig, scheme, k8sClient); err != nil {
			return nil, fmt.Errorf(" failed to init Kubernetes platform: %w", err)
		}

		return &platform, nil
	default:
		return nil, errors.New("received unknown platform type")
	}
}