@@ -30,6 +30,7 @@ import (
30
30
"github.com/GoogleContainerTools/skaffold/pkg/skaffold/color"
31
31
"github.com/GoogleContainerTools/skaffold/pkg/skaffold/config"
32
32
"github.com/GoogleContainerTools/skaffold/pkg/skaffold/docker"
33
+ "github.com/GoogleContainerTools/skaffold/pkg/skaffold/kubectl"
33
34
"github.com/GoogleContainerTools/skaffold/pkg/skaffold/schema/latest"
34
35
)
35
36
@@ -77,7 +78,7 @@ func (r *SkaffoldRunner) BuildAndTest(ctx context.Context, out io.Writer, artifa
77
78
78
79
// DeployAndLog deploys a list of already built artifacts and optionally show the logs.
79
80
func (r * SkaffoldRunner ) DeployAndLog (ctx context.Context , out io.Writer , artifacts []build.Artifact ) error {
80
- if ! r .runCtx .Opts .Tail {
81
+ if ! r .runCtx .Opts .Tail && ! r . runCtx . Opts . PortForward . Enabled {
81
82
return r .Deploy (ctx , out , artifacts )
82
83
}
83
84
@@ -87,19 +88,31 @@ func (r *SkaffoldRunner) DeployAndLog(ctx context.Context, out io.Writer, artifa
87
88
r .podSelector .Add (artifact .Tag )
88
89
}
89
90
90
- logger := r .newLoggerForImages (out , imageNames )
91
- defer logger .Stop ()
92
-
93
- // Logs should be retrieve up to just before the deploy
94
- logger .SetSince (time .Now ())
95
-
96
91
if err := r .Deploy (ctx , out , artifacts ); err != nil {
97
92
return err
98
93
}
99
94
100
- // Start printing the logs after deploy is finished
101
- if err := logger .Start (ctx ); err != nil {
102
- return errors .Wrap (err , "starting logger" )
95
+ if r .runCtx .Opts .Tail {
96
+ logger := r .newLoggerForImages (out , imageNames )
97
+ defer logger .Stop ()
98
+
99
+ // Logs should be retrieve up to just before the deploy
100
+ logger .SetSince (time .Now ())
101
+
102
+ // Start printing the logs after deploy is finished
103
+ if err := logger .Start (ctx ); err != nil {
104
+ return errors .Wrap (err , "starting logger" )
105
+ }
106
+ }
107
+
108
+ if r .runCtx .Opts .PortForward .Enabled {
109
+ kubectlCLI := kubectl .NewFromRunContext (r .runCtx )
110
+ r .createForwarder (out , kubectlCLI )
111
+ defer r .forwarderManager .Stop ()
112
+
113
+ if err := r .forwarderManager .Start (ctx ); err != nil {
114
+ logrus .Warnln ("Error starting port forwarding:" , err )
115
+ }
103
116
}
104
117
105
118
<- ctx .Done ()
0 commit comments