@@ -224,7 +224,14 @@ func (w *executor) Apply(ctx context.Context) error {
224224 return fmt .Errorf ("start post containers: %s" , err )
225225 }
226226
227- err = w .removeUnusedImages (ctx , w .instance .Containers ... )
227+ inuseImages := lo .Union (
228+ lo .Map (w .instance .PrecheckContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
229+ lo .Map (w .instance .InitContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
230+ lo .Map (w .instance .Containers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
231+ lo .Map (w .instance .PostContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
232+ lo .Map (w .instance .CleanContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
233+ )
234+ err = w .removeUnusedImages (ctx , inuseImages ... )
228235 if err != nil {
229236 return fmt .Errorf ("remove unused images: %s" , err )
230237 }
@@ -543,7 +550,7 @@ func (w *executor) removeAllInNamespace(ctx context.Context) error {
543550 return nil
544551}
545552
546- func (w * executor ) removeUnusedImages (ctx context.Context , exceptImagesInContainer ... model. ContainerDefinition ) error {
553+ func (w * executor ) removeUnusedImages (ctx context.Context , inuseImages ... string ) error {
547554 images , err := w .runtime .ListImages (ctx )
548555 if err != nil {
549556 return err
@@ -553,10 +560,7 @@ func (w *executor) removeUnusedImages(ctx context.Context, exceptImagesInContain
553560 for _ , i := range images {
554561 imageSet .Insert (i .Name )
555562 }
556-
557- for _ , c := range exceptImagesInContainer {
558- imageSet .Delete (c .Image )
559- }
563+ imageSet .Delete (inuseImages ... )
560564
561565 for _ , image := range imageSet .List () {
562566 w .Infof ("remove image %s from containerd" , image )
0 commit comments