github.com/tilt-dev/tilt@v0.36.0/internal/k8s/kubeconfig.go (about)

     1  package k8s
     2  
     3  import (
     4  	"context"
     5  	"sync"
     6  
     7  	"k8s.io/apimachinery/pkg/types"
     8  
     9  	"github.com/tilt-dev/tilt/internal/k8s/kubeconfig"
    10  	"github.com/tilt-dev/tilt/internal/localexec"
    11  	"github.com/tilt-dev/tilt/pkg/logger"
    12  )
    13  
    14  func ProvideDefaultLocalKubeconfigPath(
    15  	globalCtx context.Context,
    16  	writer *kubeconfig.Writer,
    17  	apiConfigOrError APIConfigOrError) localexec.KubeconfigPathOnce {
    18  	apiConfig, err := apiConfigOrError.Config, apiConfigOrError.Error
    19  	if err != nil {
    20  		return func() string {
    21  			return ""
    22  		}
    23  	}
    24  
    25  	return sync.OnceValue(func() string {
    26  		path, err := writer.WriteFrozenKubeConfig(globalCtx, types.NamespacedName{
    27  			Name:      "default",
    28  			Namespace: "default",
    29  		}, apiConfig)
    30  		if err != nil {
    31  			logger.Get(globalCtx).Warnf("internal error generating kubeconfig: %v", err)
    32  			return ""
    33  		}
    34  		return path
    35  	})
    36  }