Skip to content

Commit d68f5ba

Browse files
committed
fix: container selection & debug log
1 parent 8c04a1f commit d68f5ba

File tree

4 files changed

+29
-19
lines changed

4 files changed

+29
-19
lines changed

pkg/devspace/devpod/devpod.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package devpod
33
import (
44
"context"
55
"github.com/loft-sh/devspace/pkg/devspace/config/loader"
6+
"github.com/loft-sh/devspace/pkg/devspace/kubectl/selector"
67
"github.com/loft-sh/devspace/pkg/devspace/services/logs"
78
"github.com/loft-sh/devspace/pkg/devspace/services/terminal"
89
"github.com/loft-sh/devspace/pkg/util/log"
910
"github.com/loft-sh/devspace/pkg/util/tomb"
1011
"github.com/sirupsen/logrus"
11-
corev1 "k8s.io/api/core/v1"
1212
"os"
1313
syncpkg "sync"
1414

@@ -25,7 +25,7 @@ import (
2525
)
2626

2727
type devPod struct {
28-
selectedPod *corev1.Pod
28+
selectedPod *selector.SelectedPodContainer
2929

3030
m syncpkg.Mutex
3131

@@ -176,13 +176,14 @@ func (d *devPod) start(ctx *devspacecontext.Context, devPodConfig *latest.DevPod
176176
ApplyConfigParameter("", devPodConfig.LabelSelector, imageSelector, devPodConfig.Namespace, "").
177177
WithWaitingStrategy(targetselector.NewUntilNewestRunningWaitingStrategy(time.Millisecond * 500)).
178178
WithSkipInitContainers(true)
179-
d.selectedPod, err = targetselector.NewTargetSelector(options).SelectSinglePod(ctx.Context, ctx.KubeClient, ctx.Log)
179+
d.selectedPod, err = targetselector.NewTargetSelector(options).SelectSingleContainer(ctx.Context, ctx.KubeClient, ctx.Log)
180180
if err != nil {
181181
return false, errors.Wrap(err, "waiting for pod to become ready")
182182
}
183+
ctx.Log.Debugf("Selected pod:container %s:%s", d.selectedPod.Pod.Name, d.selectedPod.Container.Name)
183184

184185
// start sync and port forwarding
185-
err = d.startSyncAndPortForwarding(ctx, devPodConfig, newTargetSelector(d.selectedPod.Name, d.selectedPod.Namespace, parent), opts, parent)
186+
err = d.startSyncAndPortForwarding(ctx, devPodConfig, newTargetSelector(d.selectedPod.Pod.Name, d.selectedPod.Pod.Namespace, d.selectedPod.Container.Name, parent), opts, parent)
186187
if err != nil {
187188
return false, err
188189
}
@@ -204,7 +205,7 @@ func (d *devPod) startLogs(ctx *devspacecontext.Context, devPodConfig *latest.De
204205
}
205206

206207
parent.Go(func() error {
207-
return logs.StartLogs(ctx, devContainer, newTargetSelector(d.selectedPod.Name, d.selectedPod.Namespace, parent))
208+
return logs.StartLogs(ctx, devContainer, newTargetSelector(d.selectedPod.Pod.Name, d.selectedPod.Pod.Namespace, d.selectedPod.Container.Name, parent))
208209
})
209210

210211
return true
@@ -234,7 +235,7 @@ func (d *devPod) startTerminal(ctx *devspacecontext.Context, devContainer *lates
234235
// make sure the global log is silent
235236
before := log.GetBaseInstance().GetLevel()
236237
log.GetBaseInstance().SetLevel(logrus.PanicLevel)
237-
err := terminal.StartTerminal(ctx, devContainer, newTargetSelector(d.selectedPod.Name, d.selectedPod.Namespace, parent), os.Stdout, os.Stderr, os.Stdin, parent)
238+
err := terminal.StartTerminal(ctx, devContainer, newTargetSelector(d.selectedPod.Pod.Name, d.selectedPod.Pod.Namespace, d.selectedPod.Container.Name, parent), os.Stdout, os.Stderr, os.Stdin, parent)
238239
log.GetBaseInstance().SetLevel(before)
239240
if err != nil {
240241
return errors.Wrap(err, "error in terminal forwarding")

pkg/devspace/devpod/targetselector.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@ func (d DevPodLostConnection) Error() string {
1818
return "lost connection to pod"
1919
}
2020

21-
func newTargetSelector(pod, namespace string, parent *tomb.Tomb) targetselector.TargetSelector {
21+
func newTargetSelector(pod, namespace, defaultContainer string, parent *tomb.Tomb) targetselector.TargetSelector {
2222
return &targetSelector{
23-
pod: pod,
24-
namespace: namespace,
25-
parent: parent,
23+
pod: pod,
24+
namespace: namespace,
25+
defaultContainer: defaultContainer,
26+
parent: parent,
2627
}
2728
}
2829

2930
type targetSelector struct {
30-
pod string
31-
namespace string
32-
container string
31+
pod string
32+
namespace string
33+
defaultContainer string
34+
container string
3335

3436
// parent is killed if we cannot find the
3537
// pod anymore we are assigned to
@@ -46,21 +48,27 @@ func (t *targetSelector) SelectSinglePod(ctx context.Context, client kubectl.Cli
4648
}
4749

4850
func (t *targetSelector) SelectSingleContainer(ctx context.Context, client kubectl.Client, log log.Logger) (*selector.SelectedPodContainer, error) {
51+
container := t.container
52+
if t.container == "" {
53+
container = t.defaultContainer
54+
}
55+
4956
options := targetselector.NewEmptyOptions().
5057
WithPod(t.pod).
5158
WithNamespace(t.namespace).
52-
WithContainer(t.container).
59+
WithContainer(container).
5360
WithWaitingStrategy(newUntilNewestRunningWaitingStrategy(time.Millisecond*250, t.parent))
5461

5562
return targetselector.NewTargetSelector(options).SelectSingleContainer(ctx, client, log)
5663
}
5764

5865
func (t *targetSelector) WithContainer(container string) targetselector.TargetSelector {
5966
return &targetSelector{
60-
pod: t.pod,
61-
namespace: t.namespace,
62-
container: container,
63-
parent: t.parent,
67+
pod: t.pod,
68+
namespace: t.namespace,
69+
container: container,
70+
defaultContainer: t.defaultContainer,
71+
parent: t.parent,
6472
}
6573
}
6674

pkg/devspace/kubectl/copy.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
func (client *client) CopyFromReader(ctx context.Context, pod *k8sv1.Pod, container, containerPath string, reader io.Reader) error {
2222
_, stderr, err := client.ExecBuffered(ctx, pod, container, []string{"tar", "xzp", "-C", containerPath + "/."}, reader)
2323
if err != nil {
24+
2425
if stderr != nil {
2526
return errors.Errorf("error executing tar: %s: %v", string(stderr), err)
2627
}

pkg/util/log/log.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func PrintLogo() {
3131

3232
// StartFileLogging logs the output of the global logger to the file default.log
3333
func StartFileLogging() {
34-
defaultLog = NewUnionLogger(logrus.InfoLevel, defaultLog, GetFileLogger("default"))
34+
defaultLog = NewUnionLogger(defaultLog.GetLevel(), defaultLog, GetFileLogger("default"))
3535
OverrideRuntimeErrorHandler(false)
3636
}
3737

0 commit comments

Comments
 (0)