55 "fmt"
66 "os"
77 "os/exec"
8+ "path"
89 "regexp"
910 "strconv"
1011 "strings"
@@ -191,6 +192,11 @@ func (ki *KubeImage) nodeCommands() []string {
191192 return append ([]string {"get" , "nodes" , "-o" , nodeTemplate }, kubecfg ... )
192193}
193194
195+ func (ki * KubeImage ) recordImageSize (image string , size int ) {
196+ ki .imageSize [image ] = size
197+ ki .imageSize [path .Base (image )] = size
198+ }
199+
194200func (ki * KubeImage ) execNodeCommand () {
195201 process := exec .Command ("kubectl" , ki .nodeCommands ()... )
196202 bs , err := process .CombinedOutput ()
@@ -202,17 +208,29 @@ func (ki *KubeImage) execNodeCommand() {
202208 for _ , line := range stringSplit (string (bs ), "\n " ) {
203209 items := stringSplit (line , "," )
204210 switch len (items ) {
211+ case 2 :
212+ size , err := strconv .Atoi (items [1 ])
213+ if err != nil {
214+ continue
215+ }
216+
217+ ki .recordImageSize (items [0 ], size )
218+ parts := strings .Split (items [0 ], ":" )
219+ if len (parts ) == 2 && parts [1 ] == "latest" {
220+ ki .recordImageSize (parts [0 ], size )
221+ }
222+
205223 case 3 :
206224 size , err := strconv .Atoi (items [2 ])
207225 if err != nil {
208226 continue
209227 }
210228
211- ki .imageSize [ items [0 ]] = size
212- ki .imageSize [ items [1 ]] = size
229+ ki .recordImageSize ( items [0 ], size )
230+ ki .recordImageSize ( items [1 ], size )
213231 parts := strings .Split (items [1 ], ":" )
214232 if len (parts ) == 2 && parts [1 ] == "latest" {
215- ki .imageSize [ parts [0 ]] = size
233+ ki .recordImageSize ( parts [0 ], size )
216234 }
217235 }
218236 }
0 commit comments