🌳
pt0/deployF/k8sF/initialSetupF/regcacheF/regcacheGcAI.mts
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>()
11 const kubeResA = await getDockRegKubeResA({dockReg: regcacheName})
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)
17 }
18 }
19 console.log(`${kubeResA.length} deployments using this cache, ${activeImageRefs.size} active image refs`)
21 const apiHost = await resolveRegApiHost({host: regcacheHost, lanHost: regcacheLanHost, auth})
23 await sweepStaleRegManifests({apiHost, altHost: regcacheHost, activeImageRefs, auth})
26regcacheGc.cliDescript = 'evict cached manifests not referenced by any deployment (blobs reclaimed by zot inline gc)'