github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/cli/wire_gen.go (about)

     1  // Code generated by Wire. DO NOT EDIT.
     2  
     3  //go:generate go run github.com/google/wire/cmd/wire
     4  //go:build !wireinject
     5  // +build !wireinject
     6  
     7  package cli
     8  
     9  import (
    10  	"context"
    11  	"time"
    12  
    13  	"github.com/google/wire"
    14  	"github.com/jonboulle/clockwork"
    15  	"go.opentelemetry.io/otel/sdk/trace"
    16  	version2 "k8s.io/apimachinery/pkg/version"
    17  	"sigs.k8s.io/controller-runtime/pkg/client"
    18  
    19  	"github.com/tilt-dev/clusterid"
    20  	"github.com/tilt-dev/tilt/internal/analytics"
    21  	"github.com/tilt-dev/tilt/internal/build"
    22  	client2 "github.com/tilt-dev/tilt/internal/cli/client"
    23  	"github.com/tilt-dev/tilt/internal/cloud"
    24  	"github.com/tilt-dev/tilt/internal/cloud/cloudurl"
    25  	"github.com/tilt-dev/tilt/internal/containerupdate"
    26  	"github.com/tilt-dev/tilt/internal/controllers"
    27  	"github.com/tilt-dev/tilt/internal/controllers/core/cluster"
    28  	"github.com/tilt-dev/tilt/internal/controllers/core/cmd"
    29  	"github.com/tilt-dev/tilt/internal/controllers/core/cmdimage"
    30  	"github.com/tilt-dev/tilt/internal/controllers/core/configmap"
    31  	"github.com/tilt-dev/tilt/internal/controllers/core/dockercomposelogstream"
    32  	"github.com/tilt-dev/tilt/internal/controllers/core/dockercomposeservice"
    33  	"github.com/tilt-dev/tilt/internal/controllers/core/dockerimage"
    34  	"github.com/tilt-dev/tilt/internal/controllers/core/extension"
    35  	"github.com/tilt-dev/tilt/internal/controllers/core/extensionrepo"
    36  	"github.com/tilt-dev/tilt/internal/controllers/core/filewatch"
    37  	"github.com/tilt-dev/tilt/internal/controllers/core/filewatch/fsevent"
    38  	"github.com/tilt-dev/tilt/internal/controllers/core/imagemap"
    39  	"github.com/tilt-dev/tilt/internal/controllers/core/kubernetesapply"
    40  	"github.com/tilt-dev/tilt/internal/controllers/core/kubernetesdiscovery"
    41  	"github.com/tilt-dev/tilt/internal/controllers/core/liveupdate"
    42  	"github.com/tilt-dev/tilt/internal/controllers/core/podlogstream"
    43  	"github.com/tilt-dev/tilt/internal/controllers/core/portforward"
    44  	"github.com/tilt-dev/tilt/internal/controllers/core/session"
    45  	tiltfile2 "github.com/tilt-dev/tilt/internal/controllers/core/tiltfile"
    46  	"github.com/tilt-dev/tilt/internal/controllers/core/togglebutton"
    47  	"github.com/tilt-dev/tilt/internal/controllers/core/uibutton"
    48  	"github.com/tilt-dev/tilt/internal/controllers/core/uiresource"
    49  	"github.com/tilt-dev/tilt/internal/controllers/core/uisession"
    50  	"github.com/tilt-dev/tilt/internal/docker"
    51  	"github.com/tilt-dev/tilt/internal/dockercompose"
    52  	"github.com/tilt-dev/tilt/internal/dockerfile"
    53  	"github.com/tilt-dev/tilt/internal/engine"
    54  	analytics2 "github.com/tilt-dev/tilt/internal/engine/analytics"
    55  	"github.com/tilt-dev/tilt/internal/engine/buildcontrol"
    56  	"github.com/tilt-dev/tilt/internal/engine/configs"
    57  	"github.com/tilt-dev/tilt/internal/engine/dockerprune"
    58  	"github.com/tilt-dev/tilt/internal/engine/k8srollout"
    59  	"github.com/tilt-dev/tilt/internal/engine/k8swatch"
    60  	"github.com/tilt-dev/tilt/internal/engine/local"
    61  	session2 "github.com/tilt-dev/tilt/internal/engine/session"
    62  	"github.com/tilt-dev/tilt/internal/engine/telemetry"
    63  	uiresource2 "github.com/tilt-dev/tilt/internal/engine/uiresource"
    64  	uisession2 "github.com/tilt-dev/tilt/internal/engine/uisession"
    65  	"github.com/tilt-dev/tilt/internal/feature"
    66  	"github.com/tilt-dev/tilt/internal/git"
    67  	"github.com/tilt-dev/tilt/internal/hud"
    68  	"github.com/tilt-dev/tilt/internal/hud/prompt"
    69  	"github.com/tilt-dev/tilt/internal/hud/server"
    70  	"github.com/tilt-dev/tilt/internal/k8s"
    71  	"github.com/tilt-dev/tilt/internal/localexec"
    72  	"github.com/tilt-dev/tilt/internal/openurl"
    73  	"github.com/tilt-dev/tilt/internal/store"
    74  	"github.com/tilt-dev/tilt/internal/store/liveupdates"
    75  	"github.com/tilt-dev/tilt/internal/tiltfile"
    76  	"github.com/tilt-dev/tilt/internal/tiltfile/cisettings"
    77  	"github.com/tilt-dev/tilt/internal/tiltfile/config"
    78  	"github.com/tilt-dev/tilt/internal/tiltfile/k8scontext"
    79  	"github.com/tilt-dev/tilt/internal/tiltfile/tiltextension"
    80  	"github.com/tilt-dev/tilt/internal/tiltfile/version"
    81  	"github.com/tilt-dev/tilt/internal/token"
    82  	"github.com/tilt-dev/tilt/internal/tracer"
    83  	"github.com/tilt-dev/tilt/internal/xdg"
    84  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
    85  	"github.com/tilt-dev/tilt/pkg/logger"
    86  	"github.com/tilt-dev/tilt/pkg/model"
    87  	"github.com/tilt-dev/wmclient/pkg/dirs"
    88  
    89  	_ "embed"
    90  )
    91  
    92  // Injectors from wire.go:
    93  
    94  func wireTiltfileResult(ctx context.Context, analytics2 *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (cmdTiltfileResultDeps, error) {
    95  	k8sKubeContextOverride := ProvideKubeContextOverride()
    96  	k8sNamespaceOverride := ProvideNamespaceOverride()
    97  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
    98  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
    99  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   100  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   101  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   102  	plugin := k8scontext.NewPlugin(kubeContext, namespace, product)
   103  	tiltBuild := provideTiltInfo()
   104  	versionPlugin := version.NewPlugin(tiltBuild)
   105  	configPlugin := config.NewPlugin(subcommand)
   106  	deferredClient := controllers.ProvideDeferredClient()
   107  	reducer := _wireReducerValue
   108  	storeLogActionsFlag := provideLogActions()
   109  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
   110  	base := xdg.NewTiltDevBase()
   111  	reconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
   112  	if err != nil {
   113  		return cmdTiltfileResultDeps{}, err
   114  	}
   115  	scheme := v1alpha1.NewScheme()
   116  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, analytics2)
   117  	tiltextensionPlugin := tiltextension.NewPlugin(reconciler, extensionReconciler)
   118  	ciTimeoutFlag := provideCITimeoutFlag()
   119  	cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag)
   120  	realClientCreator := _wireRealClientCreatorValue
   121  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   122  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   123  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   124  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   125  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   126  	client := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   127  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient)
   128  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   129  	dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv)
   130  	webHost := provideWebHost()
   131  	webPort := provideWebPort()
   132  	env := localexec.DefaultEnv(webPort, webHost)
   133  	processExecer := localexec.NewProcessExecer(env)
   134  	defaults := _wireDefaultsValue
   135  	tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics2, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product)
   136  	cliCmdTiltfileResultDeps := newTiltfileResultDeps(tiltfileLoader)
   137  	return cliCmdTiltfileResultDeps, nil
   138  }
   139  
   140  var (
   141  	_wireReducerValue           = engine.UpperReducer
   142  	_wireRealClientCreatorValue = docker.RealClientCreator{}
   143  	_wireDefaultsValue          = feature.MainDefaults
   144  )
   145  
   146  func wireDockerPrune(ctx context.Context, analytics2 *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (dpDeps, error) {
   147  	realClientCreator := _wireRealClientCreatorValue
   148  	k8sKubeContextOverride := ProvideKubeContextOverride()
   149  	k8sNamespaceOverride := ProvideNamespaceOverride()
   150  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   151  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   152  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   153  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   154  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   155  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   156  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   157  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   158  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   159  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   160  	client := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   161  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient)
   162  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   163  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   164  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
   165  	if err != nil {
   166  		return dpDeps{}, err
   167  	}
   168  	compositeClient := docker.ProvideSwitchCli(clusterClient, localClient)
   169  	plugin := k8scontext.NewPlugin(kubeContext, namespace, product)
   170  	tiltBuild := provideTiltInfo()
   171  	versionPlugin := version.NewPlugin(tiltBuild)
   172  	configPlugin := config.NewPlugin(subcommand)
   173  	deferredClient := controllers.ProvideDeferredClient()
   174  	reducer := _wireReducerValue
   175  	storeLogActionsFlag := provideLogActions()
   176  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
   177  	base := xdg.NewTiltDevBase()
   178  	reconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
   179  	if err != nil {
   180  		return dpDeps{}, err
   181  	}
   182  	scheme := v1alpha1.NewScheme()
   183  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, analytics2)
   184  	tiltextensionPlugin := tiltextension.NewPlugin(reconciler, extensionReconciler)
   185  	ciTimeoutFlag := provideCITimeoutFlag()
   186  	cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag)
   187  	dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv)
   188  	webHost := provideWebHost()
   189  	webPort := provideWebPort()
   190  	env := localexec.DefaultEnv(webPort, webHost)
   191  	processExecer := localexec.NewProcessExecer(env)
   192  	defaults := _wireDefaultsValue
   193  	tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics2, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product)
   194  	cliDpDeps := newDPDeps(compositeClient, client, tiltfileLoader)
   195  	return cliDpDeps, nil
   196  }
   197  
   198  func wireCmdUp(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags analytics2.CmdTags, subcommand model.TiltSubcommand) (CmdUpDeps, error) {
   199  	reducer := _wireReducerValue
   200  	storeLogActionsFlag := provideLogActions()
   201  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
   202  	tiltDevDir, err := dirs.UseTiltDevDir()
   203  	if err != nil {
   204  		return CmdUpDeps{}, err
   205  	}
   206  	configAccess := server.ProvideConfigAccess(tiltDevDir)
   207  	webPort := provideWebPort()
   208  	apiServerName := model.ProvideAPIServerName(webPort)
   209  	webHost := provideWebHost()
   210  	webListener, err := server.ProvideWebListener(webHost, webPort)
   211  	if err != nil {
   212  		return CmdUpDeps{}, err
   213  	}
   214  	tiltBuild := provideTiltInfo()
   215  	connProvider := server.ProvideDefaultConnProvider()
   216  	bearerToken, err := server.NewBearerToken()
   217  	if err != nil {
   218  		return CmdUpDeps{}, err
   219  	}
   220  	base := xdg.NewTiltDevBase()
   221  	generatableKeyCert, err := server.ProvideKeyCert(apiServerName, webHost, webPort, base)
   222  	if err != nil {
   223  		return CmdUpDeps{}, err
   224  	}
   225  	apiServerPort, err := server.ProvideAPIServerPort()
   226  	if err != nil {
   227  		return CmdUpDeps{}, err
   228  	}
   229  	apiserverConfig, err := server.ProvideTiltServerOptions(ctx, tiltBuild, connProvider, bearerToken, generatableKeyCert, apiServerPort)
   230  	if err != nil {
   231  		return CmdUpDeps{}, err
   232  	}
   233  	webMode, err := provideWebMode(tiltBuild)
   234  	if err != nil {
   235  		return CmdUpDeps{}, err
   236  	}
   237  	webVersion := provideWebVersion(tiltBuild)
   238  	assetsServer, err := provideAssetServer(webMode, webVersion)
   239  	if err != nil {
   240  		return CmdUpDeps{}, err
   241  	}
   242  	websocketList := server.NewWebsocketList()
   243  	deferredClient := controllers.ProvideDeferredClient()
   244  	headsUpServer, err := server.ProvideHeadsUpServer(ctx, storeStore, assetsServer, analytics3, websocketList, deferredClient)
   245  	if err != nil {
   246  		return CmdUpDeps{}, err
   247  	}
   248  	webURL, err := provideWebURL(webHost, webPort)
   249  	if err != nil {
   250  		return CmdUpDeps{}, err
   251  	}
   252  	headsUpServerController := server.ProvideHeadsUpServerController(configAccess, apiServerName, webListener, apiserverConfig, headsUpServer, assetsServer, webURL)
   253  	scheme := v1alpha1.NewScheme()
   254  	uncachedObjects := controllers.ProvideUncachedObjects()
   255  	tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, deferredClient, uncachedObjects)
   256  	if err != nil {
   257  		return CmdUpDeps{}, err
   258  	}
   259  	watcherMaker := fsevent.ProvideWatcherMaker()
   260  	timerMaker := fsevent.ProvideTimerMaker()
   261  	clock := clockwork.NewRealClock()
   262  	controller := filewatch.NewController(deferredClient, storeStore, watcherMaker, timerMaker, scheme, clock)
   263  	env := localexec.DefaultEnv(webPort, webHost)
   264  	execer := cmd.ProvideExecer(env)
   265  	proberManager := cmd.ProvideProberManager()
   266  	cmdController := cmd.NewController(ctx, execer, proberManager, deferredClient, storeStore, clock, scheme)
   267  	k8sKubeContextOverride := ProvideKubeContextOverride()
   268  	k8sNamespaceOverride := ProvideNamespaceOverride()
   269  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   270  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   271  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   272  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   273  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   274  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   275  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   276  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   277  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   278  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   279  	client := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   280  	podSource := podlogstream.NewPodSource(ctx, client, scheme, clock)
   281  	podlogstreamController := podlogstream.NewController(ctx, deferredClient, scheme, storeStore, client, podSource, clock)
   282  	connectionManager := cluster.NewConnectionManager()
   283  	containerRestartDetector := kubernetesdiscovery.NewContainerRestartDetector()
   284  	reconciler := kubernetesdiscovery.NewReconciler(deferredClient, scheme, connectionManager, containerRestartDetector, storeStore)
   285  	processExecer := localexec.NewProcessExecer(env)
   286  	kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, client, scheme, storeStore, processExecer)
   287  	uisessionReconciler := uisession.NewReconciler(deferredClient, websocketList)
   288  	uiresourceReconciler := uiresource.NewReconciler(deferredClient, websocketList, storeStore)
   289  	uibuttonReconciler := uibutton.NewReconciler(deferredClient, websocketList, storeStore)
   290  	portforwardReconciler := portforward.NewReconciler(deferredClient, scheme, storeStore, connectionManager)
   291  	plugin := k8scontext.NewPlugin(kubeContext, namespace, product)
   292  	versionPlugin := version.NewPlugin(tiltBuild)
   293  	configPlugin := config.NewPlugin(subcommand)
   294  	extensionrepoReconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
   295  	if err != nil {
   296  		return CmdUpDeps{}, err
   297  	}
   298  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, analytics3)
   299  	tiltextensionPlugin := tiltextension.NewPlugin(extensionrepoReconciler, extensionReconciler)
   300  	ciTimeoutFlag := provideCITimeoutFlag()
   301  	cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag)
   302  	realClientCreator := _wireRealClientCreatorValue
   303  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient)
   304  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   305  	dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv)
   306  	defaults := _wireDefaultsValue
   307  	tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics3, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product)
   308  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   309  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
   310  	if err != nil {
   311  		return CmdUpDeps{}, err
   312  	}
   313  	compositeClient := docker.ProvideSwitchCli(clusterClient, localClient)
   314  	engineMode := _wireEngineModeValue
   315  	tiltfileReconciler := tiltfile2.NewReconciler(storeStore, tiltfileLoader, compositeClient, deferredClient, scheme, engineMode, k8sKubeContextOverride, k8sNamespaceOverride, ciTimeoutFlag)
   316  	togglebuttonReconciler := togglebutton.NewReconciler(deferredClient, scheme)
   317  	dockerUpdater := containerupdate.NewDockerUpdater(compositeClient)
   318  	execUpdater := containerupdate.NewExecUpdater(client)
   319  	liveupdatesUpdateModeFlag := provideUpdateModeFlag()
   320  	updateMode, err := liveupdates.ProvideUpdateMode(liveupdatesUpdateModeFlag, kubeContext, clusterEnv)
   321  	if err != nil {
   322  		return CmdUpDeps{}, err
   323  	}
   324  	liveupdateReconciler := liveupdate.NewReconciler(storeStore, dockerUpdater, execUpdater, updateMode, kubeContext, deferredClient, scheme)
   325  	configmapReconciler := configmap.NewReconciler(deferredClient, storeStore)
   326  	labels := _wireLabelsValue
   327  	dockerBuilder := build.NewDockerBuilder(compositeClient, labels)
   328  	buildClock := build.ProvideClock()
   329  	customBuilder := build.NewCustomBuilder(compositeClient, buildClock, cmdController)
   330  	kindLoader := build.NewKINDLoader()
   331  	imageBuilder := build.NewImageBuilder(dockerBuilder, customBuilder, kindLoader)
   332  	dockerimageReconciler := dockerimage.NewReconciler(deferredClient, storeStore, scheme, compositeClient, imageBuilder)
   333  	cmdimageReconciler := cmdimage.NewReconciler(deferredClient, storeStore, scheme, compositeClient, imageBuilder)
   334  	dockerClientFactory := _wireDockerClientFuncValue
   335  	kubernetesClientFactory := _wireKubernetesClientFuncValue
   336  	clusterReconciler := cluster.NewReconciler(ctx, deferredClient, storeStore, clock, connectionManager, localEnv, dockerClientFactory, kubernetesClientFactory, websocketList, base, apiServerName)
   337  	disableSubscriber := dockercomposeservice.NewDisableSubscriber(ctx, dockerComposeClient, clock)
   338  	dockercomposeserviceReconciler := dockercomposeservice.NewReconciler(deferredClient, dockerComposeClient, compositeClient, storeStore, scheme, disableSubscriber)
   339  	imagemapReconciler := imagemap.NewReconciler(deferredClient, storeStore)
   340  	dockercomposelogstreamReconciler := dockercomposelogstream.NewReconciler(deferredClient, storeStore, dockerComposeClient, compositeClient)
   341  	sessionReconciler := session.NewReconciler(deferredClient, storeStore, clock)
   342  	v := controllers.ProvideControllers(controller, cmdController, podlogstreamController, reconciler, kubernetesapplyReconciler, uisessionReconciler, uiresourceReconciler, uibuttonReconciler, portforwardReconciler, tiltfileReconciler, togglebuttonReconciler, extensionReconciler, extensionrepoReconciler, liveupdateReconciler, configmapReconciler, dockerimageReconciler, cmdimageReconciler, clusterReconciler, dockercomposeserviceReconciler, imagemapReconciler, dockercomposelogstreamReconciler, sessionReconciler)
   343  	controllerBuilder := controllers.NewControllerBuilder(tiltServerControllerManager, v)
   344  	v2 := provideClock()
   345  	renderer := hud.NewRenderer(v2)
   346  	openURL := _wireOpenURLValue
   347  	headsUpDisplay := hud.NewHud(renderer, webURL, analytics3, openURL)
   348  	stdout := hud.ProvideStdout()
   349  	incrementalPrinter := hud.NewIncrementalPrinter(stdout)
   350  	terminalStream := hud.NewTerminalStream(incrementalPrinter, storeStore)
   351  	openInput := _wireOpenInputValue
   352  	terminalPrompt := prompt.NewTerminalPrompt(analytics3, openInput, openURL, stdout, webHost, webURL)
   353  	serviceWatcher := k8swatch.NewServiceWatcher(connectionManager, namespace)
   354  	imageBuildAndDeployer := buildcontrol.NewImageBuildAndDeployer(dockerimageReconciler, cmdimageReconciler, imageBuilder, analytics3, buildClock, deferredClient, kubernetesapplyReconciler)
   355  	dockerComposeBuildAndDeployer := buildcontrol.NewDockerComposeBuildAndDeployer(dockerimageReconciler, cmdimageReconciler, imageBuilder, dockercomposeserviceReconciler, buildClock, deferredClient)
   356  	localTargetBuildAndDeployer := buildcontrol.NewLocalTargetBuildAndDeployer(buildClock, deferredClient, cmdController)
   357  	buildOrder := engine.DefaultBuildOrder(imageBuildAndDeployer, dockerComposeBuildAndDeployer, localTargetBuildAndDeployer, updateMode)
   358  	spanCollector := tracer.NewSpanCollector(ctx)
   359  	traceTracer := tracer.InitOpenTelemetry(spanCollector)
   360  	compositeBuildAndDeployer := engine.NewCompositeBuildAndDeployer(buildOrder, traceTracer)
   361  	buildController := engine.NewBuildController(compositeBuildAndDeployer)
   362  	configsController := configs.NewConfigsController(deferredClient)
   363  	triggerQueueSubscriber := configs.NewTriggerQueueSubscriber(deferredClient)
   364  	analyticsReporter := analytics2.ProvideAnalyticsReporter(analytics3, storeStore, client, product, defaults)
   365  	analyticsUpdater := analytics2.NewAnalyticsUpdater(analytics3, cmdTags, engineMode)
   366  	eventWatchManager := k8swatch.NewEventWatchManager(connectionManager, namespace)
   367  	httpClient := cloud.ProvideHttpClient()
   368  	cloudStatusManager := cloud.NewStatusManager(httpClient, clock)
   369  	dockerPruner := dockerprune.NewDockerPruner(compositeClient)
   370  	telemetryController := telemetry.NewController(buildClock, spanCollector)
   371  	serverController := local.NewServerController(deferredClient)
   372  	podMonitor := k8srollout.NewPodMonitor(clock)
   373  	sessionController := session2.NewController(sessionReconciler)
   374  	subscriber := uisession2.NewSubscriber(deferredClient)
   375  	uiresourceSubscriber := uiresource2.NewSubscriber(deferredClient)
   376  	v3 := engine.ProvideSubscribers(headsUpServerController, tiltServerControllerManager, controllerBuilder, headsUpDisplay, terminalStream, terminalPrompt, serviceWatcher, buildController, configsController, triggerQueueSubscriber, analyticsReporter, analyticsUpdater, eventWatchManager, cloudStatusManager, dockerPruner, telemetryController, serverController, podMonitor, sessionController, subscriber, uiresourceSubscriber)
   377  	upper, err := engine.NewUpper(ctx, storeStore, v3)
   378  	if err != nil {
   379  		return CmdUpDeps{}, err
   380  	}
   381  	tokenToken, err := token.GetOrCreateToken(tiltDevDir)
   382  	if err != nil {
   383  		return CmdUpDeps{}, err
   384  	}
   385  	address := cloudurl.ProvideAddress()
   386  	snapshotter := cloud.NewSnapshotter(storeStore, deferredClient)
   387  	cmdUpDeps := CmdUpDeps{
   388  		Upper:        upper,
   389  		TiltBuild:    tiltBuild,
   390  		Token:        tokenToken,
   391  		CloudAddress: address,
   392  		Prompt:       terminalPrompt,
   393  		Snapshotter:  snapshotter,
   394  	}
   395  	return cmdUpDeps, nil
   396  }
   397  
   398  var (
   399  	_wireEngineModeValue           = store.EngineModeUp
   400  	_wireLabelsValue               = dockerfile.Labels{}
   401  	_wireDockerClientFuncValue     = cluster.DockerClientFunc(cluster.DockerClientFromEnv)
   402  	_wireKubernetesClientFuncValue = cluster.KubernetesClientFunc(cluster.KubernetesClientFromEnv)
   403  	_wireOpenURLValue              = openurl.OpenURL(openurl.BrowserOpen)
   404  	_wireOpenInputValue            = prompt.OpenInput(prompt.TTYOpen)
   405  )
   406  
   407  func wireCmdCI(ctx context.Context, analytics3 *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (CmdCIDeps, error) {
   408  	reducer := _wireReducerValue
   409  	storeLogActionsFlag := provideLogActions()
   410  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
   411  	tiltDevDir, err := dirs.UseTiltDevDir()
   412  	if err != nil {
   413  		return CmdCIDeps{}, err
   414  	}
   415  	configAccess := server.ProvideConfigAccess(tiltDevDir)
   416  	webPort := provideWebPort()
   417  	apiServerName := model.ProvideAPIServerName(webPort)
   418  	webHost := provideWebHost()
   419  	webListener, err := server.ProvideWebListener(webHost, webPort)
   420  	if err != nil {
   421  		return CmdCIDeps{}, err
   422  	}
   423  	tiltBuild := provideTiltInfo()
   424  	connProvider := server.ProvideDefaultConnProvider()
   425  	bearerToken, err := server.NewBearerToken()
   426  	if err != nil {
   427  		return CmdCIDeps{}, err
   428  	}
   429  	base := xdg.NewTiltDevBase()
   430  	generatableKeyCert, err := server.ProvideKeyCert(apiServerName, webHost, webPort, base)
   431  	if err != nil {
   432  		return CmdCIDeps{}, err
   433  	}
   434  	apiServerPort, err := server.ProvideAPIServerPort()
   435  	if err != nil {
   436  		return CmdCIDeps{}, err
   437  	}
   438  	apiserverConfig, err := server.ProvideTiltServerOptions(ctx, tiltBuild, connProvider, bearerToken, generatableKeyCert, apiServerPort)
   439  	if err != nil {
   440  		return CmdCIDeps{}, err
   441  	}
   442  	webMode, err := provideWebMode(tiltBuild)
   443  	if err != nil {
   444  		return CmdCIDeps{}, err
   445  	}
   446  	webVersion := provideWebVersion(tiltBuild)
   447  	assetsServer, err := provideAssetServer(webMode, webVersion)
   448  	if err != nil {
   449  		return CmdCIDeps{}, err
   450  	}
   451  	websocketList := server.NewWebsocketList()
   452  	deferredClient := controllers.ProvideDeferredClient()
   453  	headsUpServer, err := server.ProvideHeadsUpServer(ctx, storeStore, assetsServer, analytics3, websocketList, deferredClient)
   454  	if err != nil {
   455  		return CmdCIDeps{}, err
   456  	}
   457  	webURL, err := provideWebURL(webHost, webPort)
   458  	if err != nil {
   459  		return CmdCIDeps{}, err
   460  	}
   461  	headsUpServerController := server.ProvideHeadsUpServerController(configAccess, apiServerName, webListener, apiserverConfig, headsUpServer, assetsServer, webURL)
   462  	scheme := v1alpha1.NewScheme()
   463  	uncachedObjects := controllers.ProvideUncachedObjects()
   464  	tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, deferredClient, uncachedObjects)
   465  	if err != nil {
   466  		return CmdCIDeps{}, err
   467  	}
   468  	watcherMaker := fsevent.ProvideWatcherMaker()
   469  	timerMaker := fsevent.ProvideTimerMaker()
   470  	clock := clockwork.NewRealClock()
   471  	controller := filewatch.NewController(deferredClient, storeStore, watcherMaker, timerMaker, scheme, clock)
   472  	env := localexec.DefaultEnv(webPort, webHost)
   473  	execer := cmd.ProvideExecer(env)
   474  	proberManager := cmd.ProvideProberManager()
   475  	cmdController := cmd.NewController(ctx, execer, proberManager, deferredClient, storeStore, clock, scheme)
   476  	k8sKubeContextOverride := ProvideKubeContextOverride()
   477  	k8sNamespaceOverride := ProvideNamespaceOverride()
   478  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   479  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   480  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   481  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   482  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   483  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   484  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   485  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   486  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   487  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   488  	client := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   489  	podSource := podlogstream.NewPodSource(ctx, client, scheme, clock)
   490  	podlogstreamController := podlogstream.NewController(ctx, deferredClient, scheme, storeStore, client, podSource, clock)
   491  	connectionManager := cluster.NewConnectionManager()
   492  	containerRestartDetector := kubernetesdiscovery.NewContainerRestartDetector()
   493  	reconciler := kubernetesdiscovery.NewReconciler(deferredClient, scheme, connectionManager, containerRestartDetector, storeStore)
   494  	processExecer := localexec.NewProcessExecer(env)
   495  	kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, client, scheme, storeStore, processExecer)
   496  	uisessionReconciler := uisession.NewReconciler(deferredClient, websocketList)
   497  	uiresourceReconciler := uiresource.NewReconciler(deferredClient, websocketList, storeStore)
   498  	uibuttonReconciler := uibutton.NewReconciler(deferredClient, websocketList, storeStore)
   499  	portforwardReconciler := portforward.NewReconciler(deferredClient, scheme, storeStore, connectionManager)
   500  	plugin := k8scontext.NewPlugin(kubeContext, namespace, product)
   501  	versionPlugin := version.NewPlugin(tiltBuild)
   502  	configPlugin := config.NewPlugin(subcommand)
   503  	extensionrepoReconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
   504  	if err != nil {
   505  		return CmdCIDeps{}, err
   506  	}
   507  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, analytics3)
   508  	tiltextensionPlugin := tiltextension.NewPlugin(extensionrepoReconciler, extensionReconciler)
   509  	ciTimeoutFlag := provideCITimeoutFlag()
   510  	cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag)
   511  	realClientCreator := _wireRealClientCreatorValue
   512  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient)
   513  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   514  	dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv)
   515  	defaults := _wireDefaultsValue
   516  	tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics3, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product)
   517  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   518  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
   519  	if err != nil {
   520  		return CmdCIDeps{}, err
   521  	}
   522  	compositeClient := docker.ProvideSwitchCli(clusterClient, localClient)
   523  	engineMode := _wireStoreEngineModeValue
   524  	tiltfileReconciler := tiltfile2.NewReconciler(storeStore, tiltfileLoader, compositeClient, deferredClient, scheme, engineMode, k8sKubeContextOverride, k8sNamespaceOverride, ciTimeoutFlag)
   525  	togglebuttonReconciler := togglebutton.NewReconciler(deferredClient, scheme)
   526  	dockerUpdater := containerupdate.NewDockerUpdater(compositeClient)
   527  	execUpdater := containerupdate.NewExecUpdater(client)
   528  	liveupdatesUpdateModeFlag := provideUpdateModeFlag()
   529  	updateMode, err := liveupdates.ProvideUpdateMode(liveupdatesUpdateModeFlag, kubeContext, clusterEnv)
   530  	if err != nil {
   531  		return CmdCIDeps{}, err
   532  	}
   533  	liveupdateReconciler := liveupdate.NewReconciler(storeStore, dockerUpdater, execUpdater, updateMode, kubeContext, deferredClient, scheme)
   534  	configmapReconciler := configmap.NewReconciler(deferredClient, storeStore)
   535  	labels := _wireLabelsValue
   536  	dockerBuilder := build.NewDockerBuilder(compositeClient, labels)
   537  	buildClock := build.ProvideClock()
   538  	customBuilder := build.NewCustomBuilder(compositeClient, buildClock, cmdController)
   539  	kindLoader := build.NewKINDLoader()
   540  	imageBuilder := build.NewImageBuilder(dockerBuilder, customBuilder, kindLoader)
   541  	dockerimageReconciler := dockerimage.NewReconciler(deferredClient, storeStore, scheme, compositeClient, imageBuilder)
   542  	cmdimageReconciler := cmdimage.NewReconciler(deferredClient, storeStore, scheme, compositeClient, imageBuilder)
   543  	dockerClientFactory := _wireDockerClientFuncValue
   544  	kubernetesClientFactory := _wireKubernetesClientFuncValue
   545  	clusterReconciler := cluster.NewReconciler(ctx, deferredClient, storeStore, clock, connectionManager, localEnv, dockerClientFactory, kubernetesClientFactory, websocketList, base, apiServerName)
   546  	disableSubscriber := dockercomposeservice.NewDisableSubscriber(ctx, dockerComposeClient, clock)
   547  	dockercomposeserviceReconciler := dockercomposeservice.NewReconciler(deferredClient, dockerComposeClient, compositeClient, storeStore, scheme, disableSubscriber)
   548  	imagemapReconciler := imagemap.NewReconciler(deferredClient, storeStore)
   549  	dockercomposelogstreamReconciler := dockercomposelogstream.NewReconciler(deferredClient, storeStore, dockerComposeClient, compositeClient)
   550  	sessionReconciler := session.NewReconciler(deferredClient, storeStore, clock)
   551  	v := controllers.ProvideControllers(controller, cmdController, podlogstreamController, reconciler, kubernetesapplyReconciler, uisessionReconciler, uiresourceReconciler, uibuttonReconciler, portforwardReconciler, tiltfileReconciler, togglebuttonReconciler, extensionReconciler, extensionrepoReconciler, liveupdateReconciler, configmapReconciler, dockerimageReconciler, cmdimageReconciler, clusterReconciler, dockercomposeserviceReconciler, imagemapReconciler, dockercomposelogstreamReconciler, sessionReconciler)
   552  	controllerBuilder := controllers.NewControllerBuilder(tiltServerControllerManager, v)
   553  	v2 := provideClock()
   554  	renderer := hud.NewRenderer(v2)
   555  	openURL := _wireOpenURLValue
   556  	headsUpDisplay := hud.NewHud(renderer, webURL, analytics3, openURL)
   557  	stdout := hud.ProvideStdout()
   558  	incrementalPrinter := hud.NewIncrementalPrinter(stdout)
   559  	terminalStream := hud.NewTerminalStream(incrementalPrinter, storeStore)
   560  	openInput := _wireOpenInputValue
   561  	terminalPrompt := prompt.NewTerminalPrompt(analytics3, openInput, openURL, stdout, webHost, webURL)
   562  	serviceWatcher := k8swatch.NewServiceWatcher(connectionManager, namespace)
   563  	imageBuildAndDeployer := buildcontrol.NewImageBuildAndDeployer(dockerimageReconciler, cmdimageReconciler, imageBuilder, analytics3, buildClock, deferredClient, kubernetesapplyReconciler)
   564  	dockerComposeBuildAndDeployer := buildcontrol.NewDockerComposeBuildAndDeployer(dockerimageReconciler, cmdimageReconciler, imageBuilder, dockercomposeserviceReconciler, buildClock, deferredClient)
   565  	localTargetBuildAndDeployer := buildcontrol.NewLocalTargetBuildAndDeployer(buildClock, deferredClient, cmdController)
   566  	buildOrder := engine.DefaultBuildOrder(imageBuildAndDeployer, dockerComposeBuildAndDeployer, localTargetBuildAndDeployer, updateMode)
   567  	spanCollector := tracer.NewSpanCollector(ctx)
   568  	traceTracer := tracer.InitOpenTelemetry(spanCollector)
   569  	compositeBuildAndDeployer := engine.NewCompositeBuildAndDeployer(buildOrder, traceTracer)
   570  	buildController := engine.NewBuildController(compositeBuildAndDeployer)
   571  	configsController := configs.NewConfigsController(deferredClient)
   572  	triggerQueueSubscriber := configs.NewTriggerQueueSubscriber(deferredClient)
   573  	analyticsReporter := analytics2.ProvideAnalyticsReporter(analytics3, storeStore, client, product, defaults)
   574  	cmdTags := _wireCmdTagsValue
   575  	analyticsUpdater := analytics2.NewAnalyticsUpdater(analytics3, cmdTags, engineMode)
   576  	eventWatchManager := k8swatch.NewEventWatchManager(connectionManager, namespace)
   577  	httpClient := cloud.ProvideHttpClient()
   578  	cloudStatusManager := cloud.NewStatusManager(httpClient, clock)
   579  	dockerPruner := dockerprune.NewDockerPruner(compositeClient)
   580  	telemetryController := telemetry.NewController(buildClock, spanCollector)
   581  	serverController := local.NewServerController(deferredClient)
   582  	podMonitor := k8srollout.NewPodMonitor(clock)
   583  	sessionController := session2.NewController(sessionReconciler)
   584  	subscriber := uisession2.NewSubscriber(deferredClient)
   585  	uiresourceSubscriber := uiresource2.NewSubscriber(deferredClient)
   586  	v3 := engine.ProvideSubscribers(headsUpServerController, tiltServerControllerManager, controllerBuilder, headsUpDisplay, terminalStream, terminalPrompt, serviceWatcher, buildController, configsController, triggerQueueSubscriber, analyticsReporter, analyticsUpdater, eventWatchManager, cloudStatusManager, dockerPruner, telemetryController, serverController, podMonitor, sessionController, subscriber, uiresourceSubscriber)
   587  	upper, err := engine.NewUpper(ctx, storeStore, v3)
   588  	if err != nil {
   589  		return CmdCIDeps{}, err
   590  	}
   591  	tokenToken, err := token.GetOrCreateToken(tiltDevDir)
   592  	if err != nil {
   593  		return CmdCIDeps{}, err
   594  	}
   595  	address := cloudurl.ProvideAddress()
   596  	snapshotter := cloud.NewSnapshotter(storeStore, deferredClient)
   597  	cmdCIDeps := CmdCIDeps{
   598  		Upper:        upper,
   599  		TiltBuild:    tiltBuild,
   600  		Token:        tokenToken,
   601  		CloudAddress: address,
   602  		Snapshotter:  snapshotter,
   603  	}
   604  	return cmdCIDeps, nil
   605  }
   606  
   607  var (
   608  	_wireStoreEngineModeValue = store.EngineModeCI
   609  	_wireCmdTagsValue         = analytics2.CmdTags(map[string]string{})
   610  )
   611  
   612  func wireCmdUpdog(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags analytics2.CmdTags, subcommand model.TiltSubcommand, objects []client.Object) (CmdUpdogDeps, error) {
   613  	reducer := _wireReducerValue
   614  	storeLogActionsFlag := provideLogActions()
   615  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
   616  	tiltDevDir, err := dirs.UseTiltDevDir()
   617  	if err != nil {
   618  		return CmdUpdogDeps{}, err
   619  	}
   620  	configAccess := server.ProvideConfigAccess(tiltDevDir)
   621  	webPort := provideWebPort()
   622  	apiServerName := model.ProvideAPIServerName(webPort)
   623  	webHost := provideWebHost()
   624  	webListener, err := server.ProvideWebListener(webHost, webPort)
   625  	if err != nil {
   626  		return CmdUpdogDeps{}, err
   627  	}
   628  	tiltBuild := provideTiltInfo()
   629  	connProvider := server.ProvideDefaultConnProvider()
   630  	bearerToken, err := server.NewBearerToken()
   631  	if err != nil {
   632  		return CmdUpdogDeps{}, err
   633  	}
   634  	base := xdg.NewTiltDevBase()
   635  	generatableKeyCert, err := server.ProvideKeyCert(apiServerName, webHost, webPort, base)
   636  	if err != nil {
   637  		return CmdUpdogDeps{}, err
   638  	}
   639  	apiServerPort, err := server.ProvideAPIServerPort()
   640  	if err != nil {
   641  		return CmdUpdogDeps{}, err
   642  	}
   643  	apiserverConfig, err := server.ProvideTiltServerOptions(ctx, tiltBuild, connProvider, bearerToken, generatableKeyCert, apiServerPort)
   644  	if err != nil {
   645  		return CmdUpdogDeps{}, err
   646  	}
   647  	webMode, err := provideWebMode(tiltBuild)
   648  	if err != nil {
   649  		return CmdUpdogDeps{}, err
   650  	}
   651  	webVersion := provideWebVersion(tiltBuild)
   652  	assetsServer, err := provideAssetServer(webMode, webVersion)
   653  	if err != nil {
   654  		return CmdUpdogDeps{}, err
   655  	}
   656  	websocketList := server.NewWebsocketList()
   657  	deferredClient := controllers.ProvideDeferredClient()
   658  	headsUpServer, err := server.ProvideHeadsUpServer(ctx, storeStore, assetsServer, analytics3, websocketList, deferredClient)
   659  	if err != nil {
   660  		return CmdUpdogDeps{}, err
   661  	}
   662  	webURL, err := provideWebURL(webHost, webPort)
   663  	if err != nil {
   664  		return CmdUpdogDeps{}, err
   665  	}
   666  	headsUpServerController := server.ProvideHeadsUpServerController(configAccess, apiServerName, webListener, apiserverConfig, headsUpServer, assetsServer, webURL)
   667  	scheme := v1alpha1.NewScheme()
   668  	uncachedObjects := controllers.ProvideUncachedObjects()
   669  	tiltServerControllerManager, err := controllers.NewTiltServerControllerManager(apiserverConfig, scheme, deferredClient, uncachedObjects)
   670  	if err != nil {
   671  		return CmdUpdogDeps{}, err
   672  	}
   673  	watcherMaker := fsevent.ProvideWatcherMaker()
   674  	timerMaker := fsevent.ProvideTimerMaker()
   675  	clock := clockwork.NewRealClock()
   676  	controller := filewatch.NewController(deferredClient, storeStore, watcherMaker, timerMaker, scheme, clock)
   677  	env := localexec.DefaultEnv(webPort, webHost)
   678  	execer := cmd.ProvideExecer(env)
   679  	proberManager := cmd.ProvideProberManager()
   680  	cmdController := cmd.NewController(ctx, execer, proberManager, deferredClient, storeStore, clock, scheme)
   681  	k8sKubeContextOverride := ProvideKubeContextOverride()
   682  	k8sNamespaceOverride := ProvideNamespaceOverride()
   683  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   684  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   685  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   686  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   687  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   688  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   689  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   690  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   691  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   692  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   693  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   694  	podSource := podlogstream.NewPodSource(ctx, k8sClient, scheme, clock)
   695  	podlogstreamController := podlogstream.NewController(ctx, deferredClient, scheme, storeStore, k8sClient, podSource, clock)
   696  	connectionManager := cluster.NewConnectionManager()
   697  	containerRestartDetector := kubernetesdiscovery.NewContainerRestartDetector()
   698  	reconciler := kubernetesdiscovery.NewReconciler(deferredClient, scheme, connectionManager, containerRestartDetector, storeStore)
   699  	processExecer := localexec.NewProcessExecer(env)
   700  	kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, k8sClient, scheme, storeStore, processExecer)
   701  	uisessionReconciler := uisession.NewReconciler(deferredClient, websocketList)
   702  	uiresourceReconciler := uiresource.NewReconciler(deferredClient, websocketList, storeStore)
   703  	uibuttonReconciler := uibutton.NewReconciler(deferredClient, websocketList, storeStore)
   704  	portforwardReconciler := portforward.NewReconciler(deferredClient, scheme, storeStore, connectionManager)
   705  	plugin := k8scontext.NewPlugin(kubeContext, namespace, product)
   706  	versionPlugin := version.NewPlugin(tiltBuild)
   707  	configPlugin := config.NewPlugin(subcommand)
   708  	extensionrepoReconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
   709  	if err != nil {
   710  		return CmdUpdogDeps{}, err
   711  	}
   712  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, analytics3)
   713  	tiltextensionPlugin := tiltextension.NewPlugin(extensionrepoReconciler, extensionReconciler)
   714  	ciTimeoutFlag := provideCITimeoutFlag()
   715  	cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag)
   716  	realClientCreator := _wireRealClientCreatorValue
   717  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient)
   718  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   719  	dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv)
   720  	defaults := _wireDefaultsValue
   721  	tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics3, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product)
   722  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   723  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
   724  	if err != nil {
   725  		return CmdUpdogDeps{}, err
   726  	}
   727  	compositeClient := docker.ProvideSwitchCli(clusterClient, localClient)
   728  	engineMode := _wireEngineModeValue2
   729  	tiltfileReconciler := tiltfile2.NewReconciler(storeStore, tiltfileLoader, compositeClient, deferredClient, scheme, engineMode, k8sKubeContextOverride, k8sNamespaceOverride, ciTimeoutFlag)
   730  	togglebuttonReconciler := togglebutton.NewReconciler(deferredClient, scheme)
   731  	dockerUpdater := containerupdate.NewDockerUpdater(compositeClient)
   732  	execUpdater := containerupdate.NewExecUpdater(k8sClient)
   733  	liveupdatesUpdateModeFlag := provideUpdateModeFlag()
   734  	updateMode, err := liveupdates.ProvideUpdateMode(liveupdatesUpdateModeFlag, kubeContext, clusterEnv)
   735  	if err != nil {
   736  		return CmdUpdogDeps{}, err
   737  	}
   738  	liveupdateReconciler := liveupdate.NewReconciler(storeStore, dockerUpdater, execUpdater, updateMode, kubeContext, deferredClient, scheme)
   739  	configmapReconciler := configmap.NewReconciler(deferredClient, storeStore)
   740  	labels := _wireLabelsValue
   741  	dockerBuilder := build.NewDockerBuilder(compositeClient, labels)
   742  	buildClock := build.ProvideClock()
   743  	customBuilder := build.NewCustomBuilder(compositeClient, buildClock, cmdController)
   744  	kindLoader := build.NewKINDLoader()
   745  	imageBuilder := build.NewImageBuilder(dockerBuilder, customBuilder, kindLoader)
   746  	dockerimageReconciler := dockerimage.NewReconciler(deferredClient, storeStore, scheme, compositeClient, imageBuilder)
   747  	cmdimageReconciler := cmdimage.NewReconciler(deferredClient, storeStore, scheme, compositeClient, imageBuilder)
   748  	dockerClientFactory := _wireDockerClientFuncValue
   749  	kubernetesClientFactory := _wireKubernetesClientFuncValue
   750  	clusterReconciler := cluster.NewReconciler(ctx, deferredClient, storeStore, clock, connectionManager, localEnv, dockerClientFactory, kubernetesClientFactory, websocketList, base, apiServerName)
   751  	disableSubscriber := dockercomposeservice.NewDisableSubscriber(ctx, dockerComposeClient, clock)
   752  	dockercomposeserviceReconciler := dockercomposeservice.NewReconciler(deferredClient, dockerComposeClient, compositeClient, storeStore, scheme, disableSubscriber)
   753  	imagemapReconciler := imagemap.NewReconciler(deferredClient, storeStore)
   754  	dockercomposelogstreamReconciler := dockercomposelogstream.NewReconciler(deferredClient, storeStore, dockerComposeClient, compositeClient)
   755  	sessionReconciler := session.NewReconciler(deferredClient, storeStore, clock)
   756  	v := controllers.ProvideControllers(controller, cmdController, podlogstreamController, reconciler, kubernetesapplyReconciler, uisessionReconciler, uiresourceReconciler, uibuttonReconciler, portforwardReconciler, tiltfileReconciler, togglebuttonReconciler, extensionReconciler, extensionrepoReconciler, liveupdateReconciler, configmapReconciler, dockerimageReconciler, cmdimageReconciler, clusterReconciler, dockercomposeserviceReconciler, imagemapReconciler, dockercomposelogstreamReconciler, sessionReconciler)
   757  	controllerBuilder := controllers.NewControllerBuilder(tiltServerControllerManager, v)
   758  	stdout := hud.ProvideStdout()
   759  	incrementalPrinter := hud.NewIncrementalPrinter(stdout)
   760  	terminalStream := hud.NewTerminalStream(incrementalPrinter, storeStore)
   761  	cliUpdogSubscriber := provideUpdogSubscriber(objects, deferredClient)
   762  	v2 := provideUpdogCmdSubscribers(headsUpServerController, tiltServerControllerManager, controllerBuilder, terminalStream, cliUpdogSubscriber)
   763  	upper, err := engine.NewUpper(ctx, storeStore, v2)
   764  	if err != nil {
   765  		return CmdUpdogDeps{}, err
   766  	}
   767  	tokenToken, err := token.GetOrCreateToken(tiltDevDir)
   768  	if err != nil {
   769  		return CmdUpdogDeps{}, err
   770  	}
   771  	address := cloudurl.ProvideAddress()
   772  	cmdUpdogDeps := CmdUpdogDeps{
   773  		Upper:        upper,
   774  		TiltBuild:    tiltBuild,
   775  		Token:        tokenToken,
   776  		CloudAddress: address,
   777  		Store:        storeStore,
   778  	}
   779  	return cmdUpdogDeps, nil
   780  }
   781  
   782  var (
   783  	_wireEngineModeValue2 = store.EngineModeCI
   784  )
   785  
   786  func wireKubeContext(ctx context.Context) (k8s.KubeContext, error) {
   787  	k8sKubeContextOverride := ProvideKubeContextOverride()
   788  	k8sNamespaceOverride := ProvideNamespaceOverride()
   789  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   790  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   791  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   792  	return kubeContext, nil
   793  }
   794  
   795  func wireEnv(ctx context.Context) (clusterid.Product, error) {
   796  	k8sKubeContextOverride := ProvideKubeContextOverride()
   797  	k8sNamespaceOverride := ProvideNamespaceOverride()
   798  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   799  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   800  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   801  	return product, nil
   802  }
   803  
   804  func wireNamespace(ctx context.Context) (k8s.Namespace, error) {
   805  	k8sKubeContextOverride := ProvideKubeContextOverride()
   806  	k8sNamespaceOverride := ProvideNamespaceOverride()
   807  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   808  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   809  	return namespace, nil
   810  }
   811  
   812  func wireClusterName(ctx context.Context) (k8s.ClusterName, error) {
   813  	k8sKubeContextOverride := ProvideKubeContextOverride()
   814  	k8sNamespaceOverride := ProvideNamespaceOverride()
   815  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   816  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   817  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   818  	return clusterName, nil
   819  }
   820  
   821  func wireK8sClient(ctx context.Context) (k8s.Client, error) {
   822  	k8sKubeContextOverride := ProvideKubeContextOverride()
   823  	k8sNamespaceOverride := ProvideNamespaceOverride()
   824  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   825  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   826  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   827  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   828  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   829  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   830  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   831  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   832  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   833  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   834  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   835  	return k8sClient, nil
   836  }
   837  
   838  func wireK8sVersion(ctx context.Context) (*version2.Info, error) {
   839  	k8sKubeContextOverride := ProvideKubeContextOverride()
   840  	k8sNamespaceOverride := ProvideNamespaceOverride()
   841  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   842  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   843  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   844  	info, err := k8s.ProvideServerVersion(clientsetOrError)
   845  	if err != nil {
   846  		return nil, err
   847  	}
   848  	return info, nil
   849  }
   850  
   851  func wireDockerClusterClient(ctx context.Context) (docker.ClusterClient, error) {
   852  	realClientCreator := _wireRealClientCreatorValue
   853  	k8sKubeContextOverride := ProvideKubeContextOverride()
   854  	k8sNamespaceOverride := ProvideNamespaceOverride()
   855  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   856  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   857  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   858  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   859  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   860  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   861  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   862  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   863  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   864  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   865  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   866  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient)
   867  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   868  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   869  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
   870  	if err != nil {
   871  		return nil, err
   872  	}
   873  	return clusterClient, nil
   874  }
   875  
   876  func wireDockerLocalClient(ctx context.Context) (docker.LocalClient, error) {
   877  	realClientCreator := _wireRealClientCreatorValue
   878  	k8sKubeContextOverride := ProvideKubeContextOverride()
   879  	k8sNamespaceOverride := ProvideNamespaceOverride()
   880  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   881  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   882  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   883  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   884  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   885  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   886  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   887  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   888  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   889  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   890  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   891  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient)
   892  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   893  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   894  	return localClient, nil
   895  }
   896  
   897  func wireDockerCompositeClient(ctx context.Context) (docker.CompositeClient, error) {
   898  	realClientCreator := _wireRealClientCreatorValue
   899  	k8sKubeContextOverride := ProvideKubeContextOverride()
   900  	k8sNamespaceOverride := ProvideNamespaceOverride()
   901  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   902  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   903  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   904  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   905  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   906  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   907  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   908  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   909  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   910  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   911  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   912  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient)
   913  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   914  	localClient := docker.ProvideLocalCli(ctx, localEnv)
   915  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
   916  	if err != nil {
   917  		return nil, err
   918  	}
   919  	compositeClient := docker.ProvideSwitchCli(clusterClient, localClient)
   920  	return compositeClient, nil
   921  }
   922  
   923  func wireDownDeps(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (DownDeps, error) {
   924  	k8sKubeContextOverride := ProvideKubeContextOverride()
   925  	k8sNamespaceOverride := ProvideNamespaceOverride()
   926  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   927  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   928  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   929  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   930  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   931  	plugin := k8scontext.NewPlugin(kubeContext, namespace, product)
   932  	tiltBuild := provideTiltInfo()
   933  	versionPlugin := version.NewPlugin(tiltBuild)
   934  	configPlugin := config.NewPlugin(subcommand)
   935  	deferredClient := controllers.ProvideDeferredClient()
   936  	reducer := _wireReducerValue
   937  	storeLogActionsFlag := provideLogActions()
   938  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
   939  	base := xdg.NewTiltDevBase()
   940  	reconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
   941  	if err != nil {
   942  		return DownDeps{}, err
   943  	}
   944  	scheme := v1alpha1.NewScheme()
   945  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, tiltAnalytics)
   946  	tiltextensionPlugin := tiltextension.NewPlugin(reconciler, extensionReconciler)
   947  	ciTimeoutFlag := provideCITimeoutFlag()
   948  	cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag)
   949  	realClientCreator := _wireRealClientCreatorValue
   950  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   951  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   952  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   953  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   954  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   955  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   956  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient)
   957  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   958  	dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv)
   959  	webHost := provideWebHost()
   960  	webPort := provideWebPort()
   961  	env := localexec.DefaultEnv(webPort, webHost)
   962  	processExecer := localexec.NewProcessExecer(env)
   963  	defaults := _wireDefaultsValue
   964  	tiltfileLoader := tiltfile.ProvideTiltfileLoader(tiltAnalytics, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product)
   965  	downDeps := ProvideDownDeps(tiltfileLoader, dockerComposeClient, k8sClient, processExecer)
   966  	return downDeps, nil
   967  }
   968  
   969  func wireLogsDeps(ctx context.Context, tiltAnalytics *analytics.TiltAnalytics, subcommand model.TiltSubcommand) (LogsDeps, error) {
   970  	webHost := provideWebHost()
   971  	webPort := provideWebPort()
   972  	webURL, err := provideWebURL(webHost, webPort)
   973  	if err != nil {
   974  		return LogsDeps{}, err
   975  	}
   976  	stdout := hud.ProvideStdout()
   977  	incrementalPrinter := hud.NewIncrementalPrinter(stdout)
   978  	logsDeps := ProvideLogsDeps(webURL, incrementalPrinter)
   979  	return logsDeps, nil
   980  }
   981  
   982  func wireDumpImageDeployRefDeps(ctx context.Context) (DumpImageDeployRefDeps, error) {
   983  	realClientCreator := _wireRealClientCreatorValue
   984  	k8sKubeContextOverride := ProvideKubeContextOverride()
   985  	k8sNamespaceOverride := ProvideNamespaceOverride()
   986  	clientConfig := k8s.ProvideClientConfig(k8sKubeContextOverride, k8sNamespaceOverride)
   987  	apiConfigOrError := k8s.ProvideAPIConfig(clientConfig, k8sKubeContextOverride, k8sNamespaceOverride)
   988  	kubeContext := k8s.ProvideKubeContext(apiConfigOrError)
   989  	product := k8s.ProvideClusterProduct(apiConfigOrError)
   990  	restConfigOrError := k8s.ProvideRESTConfig(clientConfig)
   991  	clientsetOrError := k8s.ProvideClientset(restConfigOrError)
   992  	portForwardClient := k8s.ProvidePortForwardClient(restConfigOrError, clientsetOrError)
   993  	clusterName := k8s.ProvideClusterName(apiConfigOrError)
   994  	namespace := k8s.ProvideConfigNamespace(clientConfig)
   995  	minikubeClient := k8s.ProvideMinikubeClient(kubeContext)
   996  	k8sClient := k8s.ProvideK8sClient(ctx, product, restConfigOrError, clientsetOrError, portForwardClient, kubeContext, clusterName, namespace, minikubeClient, apiConfigOrError, clientConfig)
   997  	clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient)
   998  	localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv)
   999  	localClient := docker.ProvideLocalCli(ctx, localEnv)
  1000  	clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient)
  1001  	if err != nil {
  1002  		return DumpImageDeployRefDeps{}, err
  1003  	}
  1004  	compositeClient := docker.ProvideSwitchCli(clusterClient, localClient)
  1005  	labels := _wireLabelsValue
  1006  	dockerBuilder := build.NewDockerBuilder(compositeClient, labels)
  1007  	dumpImageDeployRefDeps := DumpImageDeployRefDeps{
  1008  		DockerBuilder: dockerBuilder,
  1009  		DockerClient:  compositeClient,
  1010  	}
  1011  	return dumpImageDeployRefDeps, nil
  1012  }
  1013  
  1014  func wireAnalytics(l logger.Logger, cmdName model.TiltSubcommand) (*analytics.TiltAnalytics, error) {
  1015  	tiltBuild := provideTiltInfo()
  1016  	gitRemote := git.ProvideGitRemote()
  1017  	tiltAnalytics, err := newAnalytics(l, cmdName, tiltBuild, gitRemote)
  1018  	if err != nil {
  1019  		return nil, err
  1020  	}
  1021  	return tiltAnalytics, nil
  1022  }
  1023  
  1024  func wireClientGetter(ctx context.Context) (*client2.Getter, error) {
  1025  	tiltDevDir, err := dirs.UseTiltDevDir()
  1026  	if err != nil {
  1027  		return nil, err
  1028  	}
  1029  	webPort := provideWebPort()
  1030  	apiServerName := model.ProvideAPIServerName(webPort)
  1031  	configAccess := server.ProvideConfigAccess(tiltDevDir)
  1032  	tiltClientConfig, err := client2.ProvideClientConfig(apiServerName, configAccess)
  1033  	if err != nil {
  1034  		return nil, err
  1035  	}
  1036  	getter := client2.NewGetter(tiltDevDir, tiltClientConfig)
  1037  	return getter, nil
  1038  }
  1039  
  1040  func wireLsp(ctx context.Context, l logger.Logger, subcommand model.TiltSubcommand) (cmdLspDeps, error) {
  1041  	deferredClient := controllers.ProvideDeferredClient()
  1042  	reducer := _wireReducerValue
  1043  	storeLogActionsFlag := provideLogActions()
  1044  	storeStore := store.NewStore(reducer, storeLogActionsFlag)
  1045  	base := xdg.NewTiltDevBase()
  1046  	reconciler, err := extensionrepo.NewReconciler(deferredClient, storeStore, base)
  1047  	if err != nil {
  1048  		return cmdLspDeps{}, err
  1049  	}
  1050  	scheme := v1alpha1.NewScheme()
  1051  	tiltBuild := provideTiltInfo()
  1052  	gitRemote := git.ProvideGitRemote()
  1053  	tiltAnalytics, err := newAnalytics(l, subcommand, tiltBuild, gitRemote)
  1054  	if err != nil {
  1055  		return cmdLspDeps{}, err
  1056  	}
  1057  	extensionReconciler := extension.NewReconciler(deferredClient, scheme, tiltAnalytics)
  1058  	cliCmdLspDeps := newLspDeps(reconciler, extensionReconciler, tiltAnalytics)
  1059  	return cliCmdLspDeps, nil
  1060  }
  1061  
  1062  // wire.go:
  1063  
  1064  var K8sWireSet = wire.NewSet(k8s.ProvideClusterProduct, k8s.ProvideClusterName, k8s.ProvideKubeContext, k8s.ProvideAPIConfig, k8s.ProvideClientConfig, k8s.ProvideClientset, k8s.ProvideRESTConfig, k8s.ProvidePortForwardClient, k8s.ProvideConfigNamespace, k8s.ProvideServerVersion, k8s.ProvideK8sClient, ProvideKubeContextOverride,
  1065  	ProvideNamespaceOverride)
  1066  
  1067  var BaseWireSet = wire.NewSet(
  1068  	K8sWireSet, tiltfile.WireSet, git.ProvideGitRemote, localexec.DefaultEnv, localexec.NewProcessExecer, wire.Bind(new(localexec.Execer), new(*localexec.ProcessExecer)), docker.SwitchWireSet, dockercompose.NewDockerComposeClient, clockwork.NewRealClock, engine.DeployerWireSet, engine.NewBuildController, local.NewServerController, kubernetesdiscovery.NewContainerRestartDetector, k8swatch.NewServiceWatcher, k8swatch.NewEventWatchManager, uisession2.NewSubscriber, uiresource2.NewSubscriber, configs.NewConfigsController, configs.NewTriggerQueueSubscriber, telemetry.NewController, cloud.WireSet, cloudurl.ProvideAddress, k8srollout.NewPodMonitor, telemetry.NewStartTracker, session2.NewController, build.ProvideClock, provideClock, hud.WireSet, prompt.WireSet, wire.Value(openurl.OpenURL(openurl.BrowserOpen)), provideLogActions, store.NewStore, wire.Bind(new(store.RStore), new(*store.Store)), wire.Bind(new(store.Dispatcher), new(*store.Store)), dockerprune.NewDockerPruner, provideTiltInfo, engine.NewUpper, analytics2.NewAnalyticsUpdater, analytics2.ProvideAnalyticsReporter, provideUpdateModeFlag, fsevent.ProvideWatcherMaker, fsevent.ProvideTimerMaker, controllers.WireSet, provideCITimeoutFlag,
  1069  	provideWebVersion,
  1070  	provideWebMode,
  1071  	provideWebURL,
  1072  	provideWebPort,
  1073  	provideWebHost, server.WireSet, server.ProvideDefaultConnProvider, provideAssetServer, tracer.NewSpanCollector, wire.Bind(new(trace.SpanExporter), new(*tracer.SpanCollector)), wire.Bind(new(tracer.SpanSource), new(*tracer.SpanCollector)), dirs.UseTiltDevDir, xdg.NewTiltDevBase, token.GetOrCreateToken, build.NewKINDLoader, wire.Value(feature.MainDefaults),
  1074  )
  1075  
  1076  var CLIClientWireSet = wire.NewSet(
  1077  	BaseWireSet, client2.WireSet,
  1078  )
  1079  
  1080  var UpWireSet = wire.NewSet(
  1081  	BaseWireSet, engine.ProvideSubscribers,
  1082  )
  1083  
  1084  type CmdUpDeps struct {
  1085  	Upper        engine.Upper
  1086  	TiltBuild    model.TiltBuild
  1087  	Token        token.Token
  1088  	CloudAddress cloudurl.Address
  1089  	Prompt       *prompt.TerminalPrompt
  1090  	Snapshotter  *cloud.Snapshotter
  1091  }
  1092  
  1093  type CmdCIDeps struct {
  1094  	Upper        engine.Upper
  1095  	TiltBuild    model.TiltBuild
  1096  	Token        token.Token
  1097  	CloudAddress cloudurl.Address
  1098  	Snapshotter  *cloud.Snapshotter
  1099  }
  1100  
  1101  type CmdUpdogDeps struct {
  1102  	Upper        engine.Upper
  1103  	TiltBuild    model.TiltBuild
  1104  	Token        token.Token
  1105  	CloudAddress cloudurl.Address
  1106  	Store        *store.Store
  1107  }
  1108  
  1109  type DownDeps struct {
  1110  	tfl      tiltfile.TiltfileLoader
  1111  	dcClient dockercompose.DockerComposeClient
  1112  	kClient  k8s.Client
  1113  	execer   localexec.Execer
  1114  }
  1115  
  1116  func ProvideDownDeps(
  1117  	tfl tiltfile.TiltfileLoader,
  1118  	dcClient dockercompose.DockerComposeClient,
  1119  	kClient k8s.Client,
  1120  	execer localexec.Execer) DownDeps {
  1121  	return DownDeps{
  1122  		tfl:      tfl,
  1123  		dcClient: dcClient,
  1124  		kClient:  kClient,
  1125  		execer:   execer,
  1126  	}
  1127  }
  1128  
  1129  type LogsDeps struct {
  1130  	url     model.WebURL
  1131  	printer *hud.IncrementalPrinter
  1132  }
  1133  
  1134  func ProvideLogsDeps(u model.WebURL, p *hud.IncrementalPrinter) LogsDeps {
  1135  	return LogsDeps{
  1136  		url:     u,
  1137  		printer: p,
  1138  	}
  1139  }
  1140  
  1141  func provideClock() func() time.Time {
  1142  	return time.Now
  1143  }
  1144  
  1145  type DumpImageDeployRefDeps struct {
  1146  	DockerBuilder *build.DockerBuilder
  1147  	DockerClient  docker.Client
  1148  }
  1149  
  1150  func provideCITimeoutFlag() model.CITimeoutFlag {
  1151  	return model.CITimeoutFlag(ciTimeout)
  1152  }