func New()

in pkg/provider/k8s/k8s.go [74:102]


func New(ctx context.Context, config *clientcmdapi.Config) (*K8s, error) {
	var restConfig *rest.Config
	var err error
	if config == nil {
		restConfig, err = rest.InClusterConfig()
	} else {
		restConfig, err = clientcmd.NewDefaultClientConfig(*config, &clientcmd.ConfigOverrides{}).ClientConfig()
	}
	if err != nil {
		return nil, errors.Wrapf(err, "k8s config error")
	}

	clientset, err := kubernetes.NewForConfig(restConfig)
	if err != nil {
		return nil, errors.Wrapf(err, "k8s client error")
	}

	apiExtClientset, err := apiServerExtensionsClient.NewForConfig(restConfig)
	if err != nil {
		return nil, errors.Wrapf(err, "k8s api extensions client error")
	}

	return &K8s{
		ctx:            ctx,
		clt:            clientset,
		ApiExtClient:   apiExtClientset,
		DeploymentVars: make(map[string]string),
	}, nil
}