1import * as _ from 'lodash-es' 8export const regcacheGc = async ({regcacheHost, regcacheLanHost}: {regcacheHost: string, regcacheLanHost?: string}) => { 9 const {auth} = getCreds({dockreg_host: regcacheHost}) 10 const activeImageRefs = new Set<string>() 12 for (const res of kubeResA) { 13 const containers = _.get(res, 'containers', []) 14 for (const c of containers) { 15 const image: string = c.image || '' 16 if (image.includes(regcacheName)) activeImageRefs.add(image) 19 console.log(`${kubeResA.length} deployments using this cache, ${activeImageRefs.size} active image refs`) 21 const apiHost = await resolveRegApiHost({host: regcacheHost, lanHost: regcacheLanHost, auth}) 26regcacheGc.cliDescript = 'evict cached manifests not referenced by any deployment (blobs reclaimed by zot inline gc)'