🌳
pt0/deployF/getVolumesForSecretsF.mts
4import * as _ from 'lodash-es'
13export const getVolumesForSecrets = ({secretNames, envConf, cluster_name, name, action, appRoot}: {
14 secretNames: string[], envConf?: Record<string, string>, cluster_name: string,
15 name: string, action: string, appRoot?: string,
16}) => {
17 const promises: Promise<unknown>[] = []
19 secretNames = _.without(secretNames, disabledSecret)
21 assertDefined(cluster_name)
23 const secretResources: any[] = []
24 const secrets = secretNames.map((secretName) => {
25 const kubeSecretName = secretNameToK8sResName(secretName)
26 const volName = secretNameToK8sVolName(secretName)
27 if (isApplyishAction(action)) secretResources.push(secretFileTemplate({name: secretName as any}))
28 return {kubeSecretName, volName, secretName}
29 })
30 if (secretResources.length) {
31 promises.push(resourcesAction({resources: secretResources as any, action, cluster_name}))
32 }
34 const secretsMountRoot = appRoot || dockerApproot
35 const volumeMounts: {name: string, mountPath: string, subPath?: string}[] = secrets.map(({secretName, volName}) => ({
36 name: volName,
37 mountPath: [`${secretsMountRoot}/${secretsRelDir}`, secretName].join('/'),
38 subPath: secretName,
39 }))
40 const volumes: any[] = secrets.map(({volName, kubeSecretName}) => ({
41 name: volName,
42 secret: {
43 secretName: kubeSecretName,
44 defaultMode: 256,
45 }
46 }))
48 let envConfS = ''
49 if (envConf) {
50 const kubeName = ['kube-envconf', name].join('-')
51 envConfS = JSON.stringify(envConf, null, 2)
52 const envConfSec = secretTemplate({name: kubeName, secretsH: {envConfS}})
54 promises.push(res1Action({action, cluster_name, resource: envConfSec}))
55 volumes.push({
56 name: kubeName,
57 secret: {
58 secretName: kubeName,
59 }
60 })
61 volumeMounts.push({
62 name: kubeName,
63 mountPath: `${dockerApproot}/data/envConf.json`,
64 subPath: 'envConfS'
65 })
66 }
67 if (cluster_name == 'minik') {
68 const hostMountName = 'host-mount'
69 volumes.push({
70 name: hostMountName,
71 hostPath: {
72 path: prodPtDiskDir
73 }
74 })
75 volumeMounts.push({
76 mountPath: prodPtDiskDir as string, name: hostMountName
77 })
78 }
80 return {volumes, volumeMounts, promises, envConfHash: calcHash(envConfS)}