@@ -184,6 +184,14 @@ func (w *executor) Apply(ctx context.Context) error {
184184 return fmt .Errorf ("config container runtime: %s" , err )
185185 }
186186
187+ requireImages := lo .Union (
188+ lo .Map (w .instance .ExtraRequireImages , func (e model.ExtraRequireImage , _ int ) string { return e .Name }),
189+ lo .Map (w .instance .PrecheckContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
190+ lo .Map (w .instance .InitContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
191+ lo .Map (w .instance .Containers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
192+ lo .Map (w .instance .PostContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
193+ lo .Map (w .instance .CleanContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
194+ )
187195 err = w .uploadContainerImages (ctx , append (append (w .instance .InitContainers , w .instance .Containers ... ), w .instance .PostContainers ... )... )
188196 if err != nil {
189197 return fmt .Errorf ("upload container images: %s" , err )
@@ -224,7 +232,15 @@ func (w *executor) Apply(ctx context.Context) error {
224232 return fmt .Errorf ("start post containers: %s" , err )
225233 }
226234
227- err = w .removeUnusedImages (ctx , w .instance .Containers ... )
235+ inuseImages := lo .Union (
236+ lo .Map (w .instance .ExtraRequireImages , func (e model.ExtraRequireImage , _ int ) string { return e .Name }),
237+ lo .Map (w .instance .PrecheckContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
238+ lo .Map (w .instance .InitContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
239+ lo .Map (w .instance .Containers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
240+ lo .Map (w .instance .PostContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
241+ lo .Map (w .instance .CleanContainers , func (c model.ContainerDefinition , _ int ) string { return c .Image }),
242+ )
243+ err = w .removeUnusedImages (ctx , inuseImages ... )
228244 if err != nil {
229245 return fmt .Errorf ("remove unused images: %s" , err )
230246 }
@@ -543,7 +559,7 @@ func (w *executor) removeAllInNamespace(ctx context.Context) error {
543559 return nil
544560}
545561
546- func (w * executor ) removeUnusedImages (ctx context.Context , exceptImagesInContainer ... model. ContainerDefinition ) error {
562+ func (w * executor ) removeUnusedImages (ctx context.Context , inuseImages ... string ) error {
547563 images , err := w .runtime .ListImages (ctx )
548564 if err != nil {
549565 return err
@@ -553,10 +569,7 @@ func (w *executor) removeUnusedImages(ctx context.Context, exceptImagesInContain
553569 for _ , i := range images {
554570 imageSet .Insert (i .Name )
555571 }
556-
557- for _ , c := range exceptImagesInContainer {
558- imageSet .Delete (c .Image )
559- }
572+ imageSet .Delete (inuseImages ... )
560573
561574 for _ , image := range imageSet .List () {
562575 w .Infof ("remove image %s from containerd" , image )
0 commit comments