GoogleContainerTools / GoogleContainerTools/skaffold

Skaffold docker push does not stream progress

Open
#7,229 1 comment 0 reactions 0 assignees View on GitHub
area/ui kind/enhancement priority/p3
Dominant language
Go
Stars
15.9k
Forks
1.7k
Avg merge
3d 9h
Merged PRs (30d)
10

Description

When running `skaffold dev`, the docker push progress bar doesn't handle streaming updates. Instead, it incrementally outputs a new line whenever a layer's state changes.

### Expected behavior

`skaffold dev` implicit `docker push` shows streaming progress bar like an explicit docker push, e.g:
```
The push refers to repository [559031956274.dkr.ecr.us-east-1.amazonaws.com/cicd-test]
03a3fba932f5: Layer already exists
72667de3c117: Layer already exists
9256e6ae6b91: Pushing [=> ] 3.721MB/151MB
6208a2060f00: Layer already exists
84f0cb42ef7f: Layer already exists
b815dba036f7: Layer already exists
873680bbe0c1: Layer already exists
4314eadea369: Layer already exists
0a69ca1954c9: Layer already exists
996562dd026d: Waiting
23a4b35a343d: Waiting
13e8b36cbbec: Waiting
821bf6371720: Waiting
8d3476a52917: Waiting
40572195ea84: Waiting
024595e1462f: Waiting
```
Note the `Pushing` line and the fact that every layer is represented exactly once.

### Actual behavior

Skaffold's push looks like this:
```
The push refers to repository [559031956274.dkr.ecr.us-east-1.amazonaws.com/cicd-test]
03a3fba932f5: Preparing
72667de3c117: Preparing
9256e6ae6b91: Preparing
6208a2060f00: Preparing
84f0cb42ef7f: Preparing
b815dba036f7: Preparing
873680bbe0c1: Preparing
4314eadea369: Preparing
0a69ca1954c9: Preparing
996562dd026d: Preparing
23a4b35a343d: Preparing
13e8b36cbbec: Preparing
821bf6371720: Preparing
8d3476a52917: Preparing
40572195ea84: Preparing
024595e1462f: Preparing
4314eadea369: Waiting
0a69ca1954c9: Waiting
996562dd026d: Waiting
23a4b35a343d: Waiting
13e8b36cbbec: Waiting
821bf6371720: Waiting
8d3476a52917: Waiting
40572195ea84: Waiting
024595e1462f: Waiting
b815dba036f7: Waiting
873680bbe0c1: Waiting
72667de3c117: Layer already exists
6208a2060f00: Layer already exists
03a3fba932f5: Layer already exists
84f0cb42ef7f: Layer already exists
b815dba036f7: Layer already exists
4314eadea369: Layer already exists
873680bbe0c1: Layer already exists
0a69ca1954c9: Layer already exists
23a4b35a343d: Layer already exists
13e8b36cbbec: Layer already exists
996562dd026d: Layer already exists
```
Only preparing/waiting/layer exists/pushed is outputed, any layer state change is a new line, and there is no indication of progress. Output will hang if a layer is being pushed.

### Information

- Skaffold version: v1.37.0
- Operating system: Mac OS
- Installed via: skaffold.dev
- Contents of skaffold.yaml:

```yaml
apiVersion: skaffold/v2beta27
kind: Config
build:
platforms:
- linux/x86_64
artifacts:
- image: *.dkr.ecr.us-east-1.amazonaws.com/[service]
context: "[path-to-service]"
local:
useBuildkit: true
tagPolicy:
envTemplate:
template: [tag]
deploy:
statusCheckDeadlineSeconds: 600
kustomize:
paths:
- "[path-to-kustomization.yaml]"
```

### Steps to reproduce the behavior

1. skaffold dev --force=true -f skaffold.yaml

This might be the same as https://github.com/GoogleContainerTools/skaffold/issues/41, can't quite tell. Also, my colleagues report that this _used_ to work on previous skaffold versions -- haven't confirmed that myself.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.