github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/engine/buildcontrol/wire.go (about)

     1  //go:build wireinject
     2  // +build wireinject
     3  
     4  // The build tag makes sure the stub is not built in the final build.
     5  
     6  package buildcontrol
     7  
     8  import (
     9  	"context"
    10  
    11  	"github.com/google/wire"
    12  	"github.com/jonboulle/clockwork"
    13  	ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
    14  
    15  	"github.com/tilt-dev/wmclient/pkg/dirs"
    16  
    17  	"github.com/tilt-dev/clusterid"
    18  	"github.com/tilt-dev/tilt/internal/analytics"
    19  	"github.com/tilt-dev/tilt/internal/build"
    20  	"github.com/tilt-dev/tilt/internal/containerupdate"
    21  	"github.com/tilt-dev/tilt/internal/controllers/core/cmd"
    22  	"github.com/tilt-dev/tilt/internal/controllers/core/cmdimage"
    23  	"github.com/tilt-dev/tilt/internal/controllers/core/dockercomposeservice"
    24  	"github.com/tilt-dev/tilt/internal/controllers/core/dockerimage"
    25  	"github.com/tilt-dev/tilt/internal/controllers/core/kubernetesapply"
    26  	"github.com/tilt-dev/tilt/internal/docker"
    27  	"github.com/tilt-dev/tilt/internal/dockercompose"
    28  	"github.com/tilt-dev/tilt/internal/dockerfile"
    29  	"github.com/tilt-dev/tilt/internal/k8s"
    30  	"github.com/tilt-dev/tilt/internal/localexec"
    31  	"github.com/tilt-dev/tilt/internal/store"
    32  	"github.com/tilt-dev/tilt/internal/store/liveupdates"
    33  	"github.com/tilt-dev/tilt/internal/tracer"
    34  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
    35  )
    36  
    37  var BaseWireSet = wire.NewSet(
    38  	// dockerImageBuilder ( = ImageBuilder)
    39  	wire.Value(dockerfile.Labels{}),
    40  
    41  	v1alpha1.NewScheme,
    42  	k8s.ProvideMinikubeClient,
    43  	build.NewDockerBuilder,
    44  	build.NewCustomBuilder,
    45  	wire.Bind(new(build.DockerKubeConnection), new(*build.DockerBuilder)),
    46  
    47  	// BuildOrder
    48  	NewDockerComposeBuildAndDeployer,
    49  	NewImageBuildAndDeployer,
    50  	NewLocalTargetBuildAndDeployer,
    51  	containerupdate.NewDockerUpdater,
    52  	containerupdate.NewExecUpdater,
    53  	build.NewImageBuilder,
    54  
    55  	tracer.InitOpenTelemetry,
    56  
    57  	liveupdates.ProvideUpdateMode,
    58  )
    59  
    60  func ProvideImageBuildAndDeployer(
    61  	ctx context.Context,
    62  	docker docker.Client,
    63  	kClient k8s.Client,
    64  	env clusterid.Product,
    65  	kubeContext k8s.KubeContext,
    66  	clusterEnv docker.ClusterEnv,
    67  	dir *dirs.TiltDevDir,
    68  	clock build.Clock,
    69  	clock2 clockwork.Clock,
    70  	kp build.KINDLoader,
    71  	analytics *analytics.TiltAnalytics,
    72  	ctrlclient ctrlclient.Client,
    73  	st store.RStore) (*ImageBuildAndDeployer, error) {
    74  	wire.Build(
    75  		BaseWireSet,
    76  		kubernetesapply.NewReconciler,
    77  		dockerimage.NewReconciler,
    78  		cmdimage.NewReconciler,
    79  		cmd.NewController,
    80  		localexec.EmptyEnv,
    81  		localexec.NewProcessExecer,
    82  		cmd.ProvideExecer,
    83  		wire.Bind(new(localexec.Execer), new(*localexec.ProcessExecer)),
    84  		cmd.NewFakeProberManager,
    85  		wire.Bind(new(cmd.ProberManager), new(*cmd.FakeProberManager)),
    86  	)
    87  
    88  	return nil, nil
    89  }
    90  
    91  func ProvideDockerComposeBuildAndDeployer(
    92  	ctx context.Context,
    93  	dcCli dockercompose.DockerComposeClient,
    94  	dCli docker.Client,
    95  	ctrlclient ctrlclient.Client,
    96  	st store.RStore,
    97  	clock clockwork.Clock,
    98  	dir *dirs.TiltDevDir) (*DockerComposeBuildAndDeployer, error) {
    99  	wire.Build(
   100  		BaseWireSet,
   101  		dockercomposeservice.WireSet,
   102  		build.ProvideClock,
   103  		build.NewKINDLoader,
   104  		dockerimage.NewReconciler,
   105  		cmdimage.NewReconciler,
   106  		cmd.NewController,
   107  		localexec.EmptyEnv,
   108  		cmd.ProvideExecer,
   109  		cmd.NewFakeProberManager,
   110  		wire.Bind(new(cmd.ProberManager), new(*cmd.FakeProberManager)),
   111  	)
   112  
   113  	return nil, nil
   114  }