diff --git a/internal/cli/wire_gen.go b/internal/cli/wire_gen.go index 69f33202a5..c45de6c8d6 100644 --- a/internal/cli/wire_gen.go +++ b/internal/cli/wire_gen.go @@ -8,14 +8,8 @@ package cli import ( "context" - "time" - "github.com/google/wire" "github.com/jonboulle/clockwork" - "go.opentelemetry.io/otel/sdk/trace" - version2 "k8s.io/apimachinery/pkg/version" - "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/tilt-dev/clusterid" "github.com/tilt-dev/tilt/internal/analytics" "github.com/tilt-dev/tilt/internal/build" @@ -85,7 +79,13 @@ import ( "github.com/tilt-dev/tilt/pkg/logger" "github.com/tilt-dev/tilt/pkg/model" "github.com/tilt-dev/wmclient/pkg/dirs" + "go.opentelemetry.io/otel/sdk/trace" + version2 "k8s.io/apimachinery/pkg/version" + "sigs.k8s.io/controller-runtime/pkg/client" + "time" +) +import ( _ "embed" ) @@ -282,19 +282,8 @@ func wireCmdUp(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags connectionManager := cluster.NewConnectionManager() containerRestartDetector := kubernetesdiscovery.NewContainerRestartDetector() reconciler := kubernetesdiscovery.NewReconciler(deferredClient, scheme, connectionManager, containerRestartDetector, storeStore) - realClientCreator := _wireRealClientCreatorValue - clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient) - localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv) - localClient := docker.ProvideLocalCli(ctx, localEnv) - clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient) - if err != nil { - return CmdUpDeps{}, err - } - compositeClient := docker.ProvideSwitchCli(clusterClient, localClient) - labels := _wireLabelsValue - dockerBuilder := build.NewDockerBuilder(compositeClient, labels) processExecer := localexec.NewProcessExecer(env) - kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, client, scheme, dockerBuilder, storeStore, processExecer) + kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, client, scheme, storeStore, processExecer) uisessionReconciler := uisession.NewReconciler(deferredClient, websocketList) uiresourceReconciler := uiresource.NewReconciler(deferredClient, websocketList, storeStore) uibuttonReconciler := uibutton.NewReconciler(deferredClient, websocketList, storeStore) @@ -310,9 +299,18 @@ func wireCmdUp(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags tiltextensionPlugin := tiltextension.NewPlugin(extensionrepoReconciler, extensionReconciler) ciTimeoutFlag := provideCITimeoutFlag() cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag) + realClientCreator := _wireRealClientCreatorValue + clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient) + localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv) dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv) defaults := _wireDefaultsValue tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics3, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product) + localClient := docker.ProvideLocalCli(ctx, localEnv) + clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient) + if err != nil { + return CmdUpDeps{}, err + } + compositeClient := docker.ProvideSwitchCli(clusterClient, localClient) engineMode := _wireEngineModeValue tiltfileReconciler := tiltfile2.NewReconciler(storeStore, tiltfileLoader, compositeClient, deferredClient, scheme, engineMode, k8sKubeContextOverride, k8sNamespaceOverride, ciTimeoutFlag) togglebuttonReconciler := togglebutton.NewReconciler(deferredClient, scheme) @@ -325,6 +323,8 @@ func wireCmdUp(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags } liveupdateReconciler := liveupdate.NewReconciler(storeStore, dockerUpdater, execUpdater, updateMode, kubeContext, deferredClient, scheme) configmapReconciler := configmap.NewReconciler(deferredClient, storeStore) + labels := _wireLabelsValue + dockerBuilder := build.NewDockerBuilder(compositeClient, labels) buildClock := build.ProvideClock() customBuilder := build.NewCustomBuilder(compositeClient, buildClock, cmdController) kindLoader := build.NewKINDLoader() @@ -396,8 +396,8 @@ func wireCmdUp(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdTags } var ( - _wireLabelsValue = dockerfile.Labels{} _wireEngineModeValue = store.EngineModeUp + _wireLabelsValue = dockerfile.Labels{} _wireDockerClientFuncValue = cluster.DockerClientFunc(cluster.DockerClientFromEnv) _wireKubernetesClientFuncValue = cluster.KubernetesClientFunc(cluster.KubernetesClientFromEnv) _wireOpenURLValue = openurl.OpenURL(openurl.BrowserOpen) @@ -491,19 +491,8 @@ func wireCmdCI(ctx context.Context, analytics3 *analytics.TiltAnalytics, subcomm connectionManager := cluster.NewConnectionManager() containerRestartDetector := kubernetesdiscovery.NewContainerRestartDetector() reconciler := kubernetesdiscovery.NewReconciler(deferredClient, scheme, connectionManager, containerRestartDetector, storeStore) - realClientCreator := _wireRealClientCreatorValue - clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient) - localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv) - localClient := docker.ProvideLocalCli(ctx, localEnv) - clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient) - if err != nil { - return CmdCIDeps{}, err - } - compositeClient := docker.ProvideSwitchCli(clusterClient, localClient) - labels := _wireLabelsValue - dockerBuilder := build.NewDockerBuilder(compositeClient, labels) processExecer := localexec.NewProcessExecer(env) - kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, client, scheme, dockerBuilder, storeStore, processExecer) + kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, client, scheme, storeStore, processExecer) uisessionReconciler := uisession.NewReconciler(deferredClient, websocketList) uiresourceReconciler := uiresource.NewReconciler(deferredClient, websocketList, storeStore) uibuttonReconciler := uibutton.NewReconciler(deferredClient, websocketList, storeStore) @@ -519,9 +508,18 @@ func wireCmdCI(ctx context.Context, analytics3 *analytics.TiltAnalytics, subcomm tiltextensionPlugin := tiltextension.NewPlugin(extensionrepoReconciler, extensionReconciler) ciTimeoutFlag := provideCITimeoutFlag() cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag) + realClientCreator := _wireRealClientCreatorValue + clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, client, minikubeClient) + localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv) dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv) defaults := _wireDefaultsValue tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics3, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product) + localClient := docker.ProvideLocalCli(ctx, localEnv) + clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient) + if err != nil { + return CmdCIDeps{}, err + } + compositeClient := docker.ProvideSwitchCli(clusterClient, localClient) engineMode := _wireStoreEngineModeValue tiltfileReconciler := tiltfile2.NewReconciler(storeStore, tiltfileLoader, compositeClient, deferredClient, scheme, engineMode, k8sKubeContextOverride, k8sNamespaceOverride, ciTimeoutFlag) togglebuttonReconciler := togglebutton.NewReconciler(deferredClient, scheme) @@ -534,6 +532,8 @@ func wireCmdCI(ctx context.Context, analytics3 *analytics.TiltAnalytics, subcomm } liveupdateReconciler := liveupdate.NewReconciler(storeStore, dockerUpdater, execUpdater, updateMode, kubeContext, deferredClient, scheme) configmapReconciler := configmap.NewReconciler(deferredClient, storeStore) + labels := _wireLabelsValue + dockerBuilder := build.NewDockerBuilder(compositeClient, labels) buildClock := build.ProvideClock() customBuilder := build.NewCustomBuilder(compositeClient, buildClock, cmdController) kindLoader := build.NewKINDLoader() @@ -696,19 +696,8 @@ func wireCmdUpdog(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdT connectionManager := cluster.NewConnectionManager() containerRestartDetector := kubernetesdiscovery.NewContainerRestartDetector() reconciler := kubernetesdiscovery.NewReconciler(deferredClient, scheme, connectionManager, containerRestartDetector, storeStore) - realClientCreator := _wireRealClientCreatorValue - clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient) - localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv) - localClient := docker.ProvideLocalCli(ctx, localEnv) - clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient) - if err != nil { - return CmdUpdogDeps{}, err - } - compositeClient := docker.ProvideSwitchCli(clusterClient, localClient) - labels := _wireLabelsValue - dockerBuilder := build.NewDockerBuilder(compositeClient, labels) processExecer := localexec.NewProcessExecer(env) - kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, k8sClient, scheme, dockerBuilder, storeStore, processExecer) + kubernetesapplyReconciler := kubernetesapply.NewReconciler(deferredClient, k8sClient, scheme, storeStore, processExecer) uisessionReconciler := uisession.NewReconciler(deferredClient, websocketList) uiresourceReconciler := uiresource.NewReconciler(deferredClient, websocketList, storeStore) uibuttonReconciler := uibutton.NewReconciler(deferredClient, websocketList, storeStore) @@ -724,9 +713,18 @@ func wireCmdUpdog(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdT tiltextensionPlugin := tiltextension.NewPlugin(extensionrepoReconciler, extensionReconciler) ciTimeoutFlag := provideCITimeoutFlag() cisettingsPlugin := cisettings.NewPlugin(ciTimeoutFlag) + realClientCreator := _wireRealClientCreatorValue + clusterEnv := docker.ProvideClusterEnv(ctx, realClientCreator, kubeContext, product, k8sClient, minikubeClient) + localEnv := docker.ProvideLocalEnv(ctx, realClientCreator, kubeContext, product, clusterEnv) dockerComposeClient := dockercompose.NewDockerComposeClient(localEnv) defaults := _wireDefaultsValue tiltfileLoader := tiltfile.ProvideTiltfileLoader(analytics3, plugin, versionPlugin, configPlugin, tiltextensionPlugin, cisettingsPlugin, dockerComposeClient, webHost, processExecer, defaults, product) + localClient := docker.ProvideLocalCli(ctx, localEnv) + clusterClient, err := docker.ProvideClusterCli(ctx, localEnv, clusterEnv, localClient) + if err != nil { + return CmdUpdogDeps{}, err + } + compositeClient := docker.ProvideSwitchCli(clusterClient, localClient) engineMode := _wireEngineModeValue2 tiltfileReconciler := tiltfile2.NewReconciler(storeStore, tiltfileLoader, compositeClient, deferredClient, scheme, engineMode, k8sKubeContextOverride, k8sNamespaceOverride, ciTimeoutFlag) togglebuttonReconciler := togglebutton.NewReconciler(deferredClient, scheme) @@ -739,6 +737,8 @@ func wireCmdUpdog(ctx context.Context, analytics3 *analytics.TiltAnalytics, cmdT } liveupdateReconciler := liveupdate.NewReconciler(storeStore, dockerUpdater, execUpdater, updateMode, kubeContext, deferredClient, scheme) configmapReconciler := configmap.NewReconciler(deferredClient, storeStore) + labels := _wireLabelsValue + dockerBuilder := build.NewDockerBuilder(compositeClient, labels) buildClock := build.ProvideClock() customBuilder := build.NewCustomBuilder(compositeClient, buildClock, cmdController) kindLoader := build.NewKINDLoader() diff --git a/internal/controllers/core/kubernetesapply/reconciler.go b/internal/controllers/core/kubernetesapply/reconciler.go index 8cb376c288..094a5baed6 100644 --- a/internal/controllers/core/kubernetesapply/reconciler.go +++ b/internal/controllers/core/kubernetesapply/reconciler.go @@ -21,7 +21,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/reconcile" - "github.com/tilt-dev/tilt/internal/build" "github.com/tilt-dev/tilt/internal/container" "github.com/tilt-dev/tilt/internal/controllers/apicmp" "github.com/tilt-dev/tilt/internal/controllers/apis/configmap" @@ -47,7 +46,6 @@ type deleteSpec struct { type Reconciler struct { st store.RStore - dkc build.DockerKubeConnection k8sClient k8s.Client ctrlClient ctrlclient.Client indexer *indexer.Indexer @@ -79,13 +77,12 @@ func (r *Reconciler) CreateBuilder(mgr ctrl.Manager) (*builder.Builder, error) { return b, nil } -func NewReconciler(ctrlClient ctrlclient.Client, k8sClient k8s.Client, scheme *runtime.Scheme, dkc build.DockerKubeConnection, st store.RStore, execer localexec.Execer) *Reconciler { +func NewReconciler(ctrlClient ctrlclient.Client, k8sClient k8s.Client, scheme *runtime.Scheme, st store.RStore, execer localexec.Execer) *Reconciler { return &Reconciler{ ctrlClient: ctrlClient, k8sClient: k8sClient, indexer: indexer.NewIndexer(scheme, indexKubernetesApply), execer: execer, - dkc: dkc, st: st, results: make(map[types.NamespacedName]*Result), requeuer: indexer.NewRequeuer(), @@ -500,10 +497,6 @@ func (r *Reconciler) createEntitiesToDeploy(ctx context.Context, // When working with a local k8s cluster, we set the pull policy to Never, // to ensure that k8s fails hard if the image is missing from docker. policy := v1.PullIfNotPresent - if r.dkc.WillBuildToKubeContext(k8s.KubeContext(r.k8sClient.APIConfig().CurrentContext)) { - policy = v1.PullNever - } - for _, imageMapName := range imageMapNames { imageMap := imageMaps[types.NamespacedName{Name: imageMapName}] imageMapSpec := imageMap.Spec diff --git a/internal/controllers/core/kubernetesapply/reconciler_test.go b/internal/controllers/core/kubernetesapply/reconciler_test.go index abb947eb07..a9fb97b10d 100644 --- a/internal/controllers/core/kubernetesapply/reconciler_test.go +++ b/internal/controllers/core/kubernetesapply/reconciler_test.go @@ -18,10 +18,8 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" "sigs.k8s.io/controller-runtime/pkg/reconcile" - "github.com/tilt-dev/tilt/internal/build" "github.com/tilt-dev/tilt/internal/controllers/fake" "github.com/tilt-dev/tilt/internal/docker" - "github.com/tilt-dev/tilt/internal/dockerfile" "github.com/tilt-dev/tilt/internal/k8s" "github.com/tilt-dev/tilt/internal/k8s/testyaml" "github.com/tilt-dev/tilt/internal/localexec" @@ -787,8 +785,7 @@ func newFixture(t *testing.T) *fixture { execer := localexec.NewFakeExecer(t) - db := build.NewDockerBuilder(dockerClient, dockerfile.Labels{}) - r := NewReconciler(cfb.Client, kClient, v1alpha1.NewScheme(), db, cfb.Store, execer) + r := NewReconciler(cfb.Client, kClient, v1alpha1.NewScheme(), cfb.Store, execer) f := &fixture{ ControllerFixture: cfb.Build(r), diff --git a/internal/engine/buildcontrol/wire_gen.go b/internal/engine/buildcontrol/wire_gen.go index d77d6f507b..e6c567a829 100644 --- a/internal/engine/buildcontrol/wire_gen.go +++ b/internal/engine/buildcontrol/wire_gen.go @@ -8,11 +8,8 @@ package buildcontrol import ( "context" - "github.com/google/wire" "github.com/jonboulle/clockwork" - "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/tilt-dev/clusterid" "github.com/tilt-dev/tilt/internal/analytics" "github.com/tilt-dev/tilt/internal/build" @@ -32,6 +29,7 @@ import ( "github.com/tilt-dev/tilt/internal/tracer" "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" "github.com/tilt-dev/wmclient/pkg/dirs" + "sigs.k8s.io/controller-runtime/pkg/client" ) // Injectors from wire.go: @@ -49,7 +47,7 @@ func ProvideImageBuildAndDeployer(ctx context.Context, docker2 docker.Client, kC reconciler := dockerimage.NewReconciler(ctrlclient, st, scheme, docker2, imageBuilder) cmdimageReconciler := cmdimage.NewReconciler(ctrlclient, st, scheme, docker2, imageBuilder) processExecer := localexec.NewProcessExecer(localexecEnv) - kubernetesapplyReconciler := kubernetesapply.NewReconciler(ctrlclient, kClient, scheme, dockerBuilder, st, processExecer) + kubernetesapplyReconciler := kubernetesapply.NewReconciler(ctrlclient, kClient, scheme, st, processExecer) imageBuildAndDeployer := NewImageBuildAndDeployer(reconciler, cmdimageReconciler, imageBuilder, analytics2, clock, ctrlclient, kubernetesapplyReconciler) return imageBuildAndDeployer, nil } diff --git a/internal/engine/upper_test.go b/internal/engine/upper_test.go index f3f2d78f7b..fe51073f19 100644 --- a/internal/engine/upper_test.go +++ b/internal/engine/upper_test.go @@ -3209,7 +3209,7 @@ func newTestFixture(t *testing.T, options ...fixtureOptions) *testFixture { wsl := server.NewWebsocketList() - kar := kubernetesapply.NewReconciler(cdc, kClient, sch, docker.Env{}, st, execer) + kar := kubernetesapply.NewReconciler(cdc, kClient, sch, st, execer) dcds := dockercomposeservice.NewDisableSubscriber(ctx, fakeDcc, clock) dcr := dockercomposeservice.NewReconciler(cdc, fakeDcc, dockerClient, st, sch, dcds) diff --git a/internal/engine/wire_gen.go b/internal/engine/wire_gen.go index 6fd01218f3..19e680a6c0 100644 --- a/internal/engine/wire_gen.go +++ b/internal/engine/wire_gen.go @@ -8,12 +8,8 @@ package engine import ( "context" - "github.com/google/wire" "github.com/jonboulle/clockwork" - "go.opentelemetry.io/otel/sdk/trace" - "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/tilt-dev/clusterid" "github.com/tilt-dev/tilt/internal/analytics" "github.com/tilt-dev/tilt/internal/build" @@ -34,6 +30,8 @@ import ( "github.com/tilt-dev/tilt/internal/tracer" "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" "github.com/tilt-dev/wmclient/pkg/dirs" + "go.opentelemetry.io/otel/sdk/trace" + "sigs.k8s.io/controller-runtime/pkg/client" ) // Injectors from wire.go: @@ -51,7 +49,7 @@ func provideFakeBuildAndDeployer(ctx context.Context, docker2 docker.Client, kCl imageBuilder := build.NewImageBuilder(dockerBuilder, customBuilder, kp) reconciler := dockerimage.NewReconciler(ctrlClient, st, scheme, docker2, imageBuilder) cmdimageReconciler := cmdimage.NewReconciler(ctrlClient, st, scheme, docker2, imageBuilder) - kubernetesapplyReconciler := kubernetesapply.NewReconciler(ctrlClient, kClient, scheme, dockerBuilder, st, execer) + kubernetesapplyReconciler := kubernetesapply.NewReconciler(ctrlClient, kClient, scheme, st, execer) imageBuildAndDeployer := buildcontrol.NewImageBuildAndDeployer(reconciler, cmdimageReconciler, imageBuilder, analytics2, clock, ctrlClient, kubernetesapplyReconciler) disableSubscriber := dockercomposeservice.NewDisableSubscriber(ctx, dcc, clockworkClock) dockercomposeserviceReconciler := dockercomposeservice.NewReconciler(ctrlClient, dcc, docker2, st, scheme, disableSubscriber)