🌳
pt0/deployF/k8sF/isKubeResF.mts
1import type { KubeResource } from './ctxF/klusterCtxF.mts'
3type PvcResource = KubeResource & { kind: 'PersistentVolumeClaim' }
4type CertResource = KubeResource & { kind: 'Certificate' }
5type DeploymentResource = KubeResource & { kind: 'Deployment' }
6type SecretResource = KubeResource & { kind: 'Secret', type?: string }
8export const isPvc = (res: KubeResource): res is PvcResource => res.kind === 'PersistentVolumeClaim'
9export const isCert = (res: KubeResource): res is CertResource => res.kind === 'Certificate'
10export const isKubeDeploy = (res: KubeResource): res is DeploymentResource => res.kind === 'Deployment'
12export const isDeleteSafeResource = (resource: KubeResource) => isCert(resource) || isPvc(resource) || resource.kind === 'PriorityClass'
14export const isSecret = (res: KubeResource): res is SecretResource => res.kind === 'Secret'
16export const isMutableRes = (res: KubeResource) => {
17 if (isSecret(res) && res.type === 'kubernetes.io/dockerconfigjson') return true
18 return false