@catladder/cli 0.0.0-waitfor-deploy-31ebcf14 → 0.0.0-yarn-cache-a697966f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/CONTRIBUTING.md +17 -12
  2. package/README.md +19 -12
  3. package/bin/catenv +1 -1
  4. package/bin/catenv-dev +3 -0
  5. package/bin/catladder +1 -1
  6. package/bin/catladder-dev +3 -0
  7. package/dist/apps/catenv/catenv.d.ts +2 -4
  8. package/dist/apps/catenv/catenv.js +12 -89
  9. package/dist/apps/catenv/catenv.js.map +1 -1
  10. package/dist/apps/catenv/printVariables.d.ts +3 -0
  11. package/dist/apps/catenv/printVariables.js +115 -0
  12. package/dist/apps/catenv/printVariables.js.map +1 -0
  13. package/dist/apps/catenv/types.d.ts +5 -0
  14. package/dist/apps/catenv/types.js +3 -0
  15. package/dist/apps/catenv/types.js.map +1 -0
  16. package/dist/apps/catenv/utils.d.ts +12 -0
  17. package/dist/apps/catenv/utils.js +108 -0
  18. package/dist/apps/catenv/utils.js.map +1 -0
  19. package/dist/apps/catenv/writeDotEnvFiles.d.ts +3 -0
  20. package/dist/apps/catenv/writeDotEnvFiles.js +94 -0
  21. package/dist/apps/catenv/writeDotEnvFiles.js.map +1 -0
  22. package/dist/apps/catenv/writeEnvDTs.d.ts +3 -0
  23. package/dist/apps/catenv/writeEnvDTs.js +114 -0
  24. package/dist/apps/catenv/writeEnvDTs.js.map +1 -0
  25. package/dist/apps/cli/cli.js +4 -2
  26. package/dist/apps/cli/cli.js.map +1 -1
  27. package/dist/apps/cli/commands/{project/commandCopyDB.d.ts → cloudSQL/commandRestoreDb.d.ts} +1 -1
  28. package/dist/apps/cli/commands/cloudSQL/commandRestoreDb.js +185 -0
  29. package/dist/apps/cli/commands/cloudSQL/commandRestoreDb.js.map +1 -0
  30. package/dist/apps/cli/commands/cloudSQL/index.d.ts +3 -0
  31. package/dist/apps/cli/commands/cloudSQL/index.js +50 -0
  32. package/dist/apps/cli/commands/cloudSQL/index.js.map +1 -0
  33. package/dist/apps/cli/commands/general/index.d.ts +1 -1
  34. package/dist/apps/cli/commands/general/index.js +11 -11
  35. package/dist/apps/cli/commands/general/index.js.map +1 -1
  36. package/dist/apps/cli/commands/general/portForward.d.ts +1 -1
  37. package/dist/apps/cli/commands/general/portForward.js +3 -3
  38. package/dist/apps/cli/commands/general/portForward.js.map +1 -1
  39. package/dist/apps/cli/commands/mongodb/index.d.ts +1 -1
  40. package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.d.ts +1 -1
  41. package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.js +2 -1
  42. package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.js.map +1 -1
  43. package/dist/apps/cli/commands/mongodb/projectMongoGetShell.d.ts +1 -1
  44. package/dist/apps/cli/commands/mongodb/projectMongoPortForward.d.ts +1 -1
  45. package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js +27 -11
  46. package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js.map +1 -1
  47. package/dist/apps/cli/commands/mongodb/utils/index.js +16 -4
  48. package/dist/apps/cli/commands/mongodb/utils/index.js.map +1 -1
  49. package/dist/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.d.ts +3 -0
  50. package/dist/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js +189 -0
  51. package/dist/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js.map +1 -0
  52. package/dist/apps/cli/commands/project/commandCloudSqlProxy.d.ts +1 -1
  53. package/dist/apps/cli/commands/project/commandCloudSqlProxy.js +89 -62
  54. package/dist/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
  55. package/dist/apps/cli/commands/project/commandConfigSecrets.d.ts +2 -1
  56. package/dist/apps/cli/commands/project/commandConfigSecrets.js +71 -57
  57. package/dist/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
  58. package/dist/apps/cli/commands/project/commandDeletePods.d.ts +1 -1
  59. package/dist/apps/cli/commands/project/commandDeletePods.js +2 -1
  60. package/dist/apps/cli/commands/project/commandDeletePods.js.map +1 -1
  61. package/dist/apps/cli/commands/project/commandDeleteProject.d.ts +1 -1
  62. package/dist/apps/cli/commands/project/commandEnvVars.d.ts +1 -1
  63. package/dist/apps/cli/commands/project/commandEnvVars.js +1 -1
  64. package/dist/apps/cli/commands/project/commandEnvVars.js.map +1 -1
  65. package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.d.ts +1 -1
  66. package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.js +1 -1
  67. package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.js.map +1 -1
  68. package/dist/apps/cli/commands/project/commandGetShell.d.ts +1 -1
  69. package/dist/apps/cli/commands/project/commandGetShell.js +10 -6
  70. package/dist/apps/cli/commands/project/commandGetShell.js.map +1 -1
  71. package/dist/apps/cli/commands/project/commandGitlabCi.d.ts +1 -1
  72. package/dist/apps/cli/commands/project/commandGitlabCi.js.map +1 -1
  73. package/dist/apps/cli/commands/project/commandInitProject.old.d.ts +1 -1
  74. package/dist/apps/cli/commands/project/commandListPods.d.ts +1 -1
  75. package/dist/apps/cli/commands/project/commandListPods.js +2 -2
  76. package/dist/apps/cli/commands/project/commandListPods.js.map +1 -1
  77. package/dist/apps/cli/commands/project/commandMigrateHelm3.d.ts +1 -1
  78. package/dist/apps/cli/commands/project/commandMigrateHelm3.js +1 -2
  79. package/dist/apps/cli/commands/project/commandMigrateHelm3.js.map +1 -1
  80. package/dist/apps/cli/commands/project/commandNamespace.d.ts +1 -1
  81. package/dist/apps/cli/commands/project/commandOpenCostDashboard.d.ts +1 -1
  82. package/dist/apps/cli/commands/project/commandOpenCostDashboard.js +2 -2
  83. package/dist/apps/cli/commands/project/commandOpenCostDashboard.js.map +1 -1
  84. package/dist/apps/cli/commands/project/commandOpenDashboard.d.ts +1 -1
  85. package/dist/apps/cli/commands/project/commandOpenDashboard.js +19 -20
  86. package/dist/apps/cli/commands/project/commandOpenDashboard.js.map +1 -1
  87. package/dist/apps/cli/commands/project/commandOpenEnv.d.ts +1 -1
  88. package/dist/apps/cli/commands/project/commandOpenGit.d.ts +1 -1
  89. package/dist/apps/cli/commands/project/commandOpenGit.js +2 -7
  90. package/dist/apps/cli/commands/project/commandOpenGit.js.map +1 -1
  91. package/dist/apps/cli/commands/project/commandOpenGrafana.d.ts +1 -1
  92. package/dist/apps/cli/commands/project/commandOpenGrafana.js +2 -2
  93. package/dist/apps/cli/commands/project/commandOpenGrafana.js.map +1 -1
  94. package/dist/apps/cli/commands/project/commandOpenGrafanaPod.d.ts +1 -1
  95. package/dist/apps/cli/commands/project/commandOpenGrafanaPod.js +4 -3
  96. package/dist/apps/cli/commands/project/commandOpenGrafanaPod.js.map +1 -1
  97. package/dist/apps/cli/commands/project/commandOpenLogs.d.ts +1 -1
  98. package/dist/apps/cli/commands/project/commandOpenLogs.js +7 -20
  99. package/dist/apps/cli/commands/project/commandOpenLogs.js.map +1 -1
  100. package/dist/apps/cli/commands/project/commandPauseProject.d.ts +1 -1
  101. package/dist/apps/cli/commands/project/commandPortForward.d.ts +1 -1
  102. package/dist/apps/cli/commands/project/commandPortForward.js +98 -36
  103. package/dist/apps/cli/commands/project/commandPortForward.js.map +1 -1
  104. package/dist/apps/cli/commands/project/commandSecretsClearBackups.d.ts +5 -0
  105. package/dist/apps/cli/commands/project/commandSecretsClearBackups.js +90 -0
  106. package/dist/apps/cli/commands/project/commandSecretsClearBackups.js.map +1 -0
  107. package/dist/apps/cli/commands/project/commandSetup.d.ts +1 -1
  108. package/dist/apps/cli/commands/project/commandTriggerCronjob.d.ts +1 -1
  109. package/dist/apps/cli/commands/project/commandTriggerCronjob.js.map +1 -1
  110. package/dist/apps/cli/commands/project/index.d.ts +1 -1
  111. package/dist/apps/cli/commands/project/index.js +4 -2
  112. package/dist/apps/cli/commands/project/index.js.map +1 -1
  113. package/dist/apps/cli/commands/project/setup/index.d.ts +1 -1
  114. package/dist/apps/cli/commands/project/setup/index.js +11 -7
  115. package/dist/apps/cli/commands/project/setup/index.js.map +1 -1
  116. package/dist/apps/cli/commands/project/setup/setupAccessTokens.d.ts +1 -1
  117. package/dist/apps/cli/commands/project/setup/setupAccessTokens.js +5 -4
  118. package/dist/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
  119. package/dist/apps/cli/commands/project/setup/setupCloudRun.d.ts +3 -0
  120. package/dist/apps/cli/commands/project/setup/setupCloudRun.js +118 -0
  121. package/dist/apps/cli/commands/project/setup/setupCloudRun.js.map +1 -0
  122. package/dist/apps/cli/commands/project/setup/setupContext.d.ts +2 -2
  123. package/dist/apps/cli/commands/project/setup/setupContext.js +10 -3
  124. package/dist/apps/cli/commands/project/setup/setupContext.js.map +1 -1
  125. package/dist/apps/cli/commands/project/setup/setupKubernetes.d.ts +2 -2
  126. package/dist/apps/cli/commands/project/setup/setupKubernetes.js +25 -18
  127. package/dist/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
  128. package/dist/apps/cli/commands/project/setup/setupTopic.d.ts +2 -0
  129. package/dist/apps/cli/commands/project/setup/setupTopic.js +69 -0
  130. package/dist/apps/cli/commands/project/setup/setupTopic.js.map +1 -0
  131. package/dist/apps/cli/commands/project/utils/ensureNamespace.d.ts +1 -1
  132. package/dist/apps/cli/commands/project/utils/ensureNamespace.js.map +1 -1
  133. package/dist/apps/cli/commands/project/utils/showProjectBanner.d.ts +1 -1
  134. package/dist/apps/cli/commands/theStuffThatReallyMatters/index.d.ts +1 -1
  135. package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js +1 -1
  136. package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js.map +1 -1
  137. package/dist/apps/cli/config/writeConfig.d.ts +2 -2
  138. package/dist/apps/cli/verify/index.d.ts +1 -1
  139. package/dist/apps/cli/verify/migration/fromv2.d.ts +1 -1
  140. package/dist/apps/cli/verify/migration/fromv2.js +2 -0
  141. package/dist/apps/cli/verify/migration/fromv2.js.map +1 -1
  142. package/dist/apps/cli/verify/migration/migrateSecrets.d.ts +3 -3
  143. package/dist/apps/cli/verify/migration/migrateSecrets.js +6 -3
  144. package/dist/apps/cli/verify/migration/migrateSecrets.js.map +1 -1
  145. package/dist/apps/cli/verify/migration/oldGitlabCi.d.ts +1 -1
  146. package/dist/apps/cli/verify/migration/oldGitlabCi.js +1 -1
  147. package/dist/apps/cli/verify/migration/oldGitlabCi.js.map +1 -1
  148. package/dist/bundles/catenv/index.js +46611 -0
  149. package/dist/bundles/catenv/xdg-open +1066 -0
  150. package/dist/bundles/cli/clipboard_i686.exe +0 -0
  151. package/dist/bundles/cli/clipboard_x86_64.exe +0 -0
  152. package/dist/bundles/cli/exec-child.js +39 -0
  153. package/dist/bundles/cli/index.js +363653 -0
  154. package/dist/bundles/cli/xdg-open +1066 -0
  155. package/dist/bundles/cli/xsel +0 -0
  156. package/dist/catenv.js +2 -4
  157. package/dist/catenv.js.map +1 -1
  158. package/dist/cli.js +0 -7
  159. package/dist/cli.js.map +1 -1
  160. package/dist/config/constants.d.ts +0 -1
  161. package/dist/config/constants.js +1 -2
  162. package/dist/config/constants.js.map +1 -1
  163. package/dist/config/getProjectConfig.d.ts +10 -10
  164. package/dist/config/getProjectConfig.js +77 -23
  165. package/dist/config/getProjectConfig.js.map +1 -1
  166. package/dist/config/parseChoice.d.ts +4 -0
  167. package/dist/config/parseChoice.js +9 -0
  168. package/dist/config/parseChoice.js.map +1 -0
  169. package/dist/gcloud/artifactsRegistry.d.ts +5 -0
  170. package/dist/gcloud/artifactsRegistry.js +59 -0
  171. package/dist/gcloud/artifactsRegistry.js.map +1 -0
  172. package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.d.ts +2 -0
  173. package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js +67 -0
  174. package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js.map +1 -0
  175. package/dist/gcloud/cloudRun/openCloudRunDashboards.d.ts +3 -0
  176. package/dist/gcloud/cloudRun/openCloudRunDashboards.js +62 -0
  177. package/dist/gcloud/cloudRun/openCloudRunDashboards.js.map +1 -0
  178. package/dist/gcloud/cloudSql/copyDb.d.ts +12 -0
  179. package/dist/gcloud/cloudSql/copyDb.js +64 -0
  180. package/dist/gcloud/cloudSql/copyDb.js.map +1 -0
  181. package/dist/gcloud/cloudSql/startProxy.d.ts +10 -0
  182. package/dist/gcloud/cloudSql/startProxy.js +121 -0
  183. package/dist/gcloud/cloudSql/startProxy.js.map +1 -0
  184. package/dist/gcloud/enableServices.d.ts +3 -0
  185. package/dist/gcloud/enableServices.js +63 -0
  186. package/dist/gcloud/enableServices.js.map +1 -0
  187. package/dist/gcloud/openDashboard.d.ts +2 -0
  188. package/dist/{apps/cli/commands/shared/index.js → gcloud/openDashboard.js} +23 -27
  189. package/dist/gcloud/openDashboard.js.map +1 -0
  190. package/dist/gcloud/serviceAccounts.d.ts +12 -0
  191. package/dist/gcloud/serviceAccounts.js +144 -0
  192. package/dist/gcloud/serviceAccounts.js.map +1 -0
  193. package/dist/kubernetes/index.d.ts +3 -0
  194. package/dist/kubernetes/index.js +88 -0
  195. package/dist/kubernetes/index.js.map +1 -0
  196. package/dist/kubernetes/openKubernetesDashboards.d.ts +4 -0
  197. package/dist/kubernetes/openKubernetesDashboards.js +94 -0
  198. package/dist/kubernetes/openKubernetesDashboards.js.map +1 -0
  199. package/dist/kubernetes/portForward.d.ts +1 -0
  200. package/dist/kubernetes/portForward.js +55 -0
  201. package/dist/kubernetes/portForward.js.map +1 -0
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/dist/utils/cluster.js +3 -8
  204. package/dist/utils/cluster.js.map +1 -1
  205. package/dist/utils/gitlab.d.ts +8 -6
  206. package/dist/utils/gitlab.js +165 -46
  207. package/dist/utils/gitlab.js.map +1 -1
  208. package/dist/utils/passwordstore/index.d.ts +0 -1
  209. package/dist/utils/passwordstore/index.js +1 -64
  210. package/dist/utils/passwordstore/index.js.map +1 -1
  211. package/dist/utils/portForwards.d.ts +12 -0
  212. package/dist/utils/{portForward.js → portForwards.js} +20 -16
  213. package/dist/utils/portForwards.js.map +1 -0
  214. package/dist/utils/projects/index.d.ts +0 -3
  215. package/dist/utils/projects/index.js +3 -53
  216. package/dist/utils/projects/index.js.map +1 -1
  217. package/package.json +73 -22
  218. package/scripts/bundle +4 -0
  219. package/src/apps/catenv/catenv.ts +11 -62
  220. package/src/apps/catenv/printVariables.ts +58 -0
  221. package/src/apps/catenv/types.ts +6 -0
  222. package/src/apps/catenv/utils.ts +49 -0
  223. package/src/apps/catenv/writeDotEnvFiles.ts +44 -0
  224. package/src/apps/catenv/writeEnvDTs.ts +71 -0
  225. package/src/apps/cli/cli.ts +3 -1
  226. package/src/apps/cli/commands/cloudSQL/commandRestoreDb.ts +136 -0
  227. package/src/apps/cli/commands/cloudSQL/index.ts +8 -0
  228. package/src/apps/cli/commands/general/index.ts +11 -8
  229. package/src/apps/cli/commands/general/portForward.ts +4 -4
  230. package/src/apps/cli/commands/mongodb/index.ts +1 -1
  231. package/src/apps/cli/commands/mongodb/projectMongoDestroyMember.ts +3 -5
  232. package/src/apps/cli/commands/mongodb/projectMongoGetShell.ts +1 -1
  233. package/src/apps/cli/commands/mongodb/projectMongoPortForward.ts +21 -3
  234. package/src/apps/cli/commands/mongodb/utils/index.ts +19 -11
  235. package/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.ts +175 -0
  236. package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +106 -55
  237. package/src/apps/cli/commands/project/commandConfigSecrets.ts +49 -35
  238. package/src/apps/cli/commands/project/commandDeletePods.ts +3 -5
  239. package/src/apps/cli/commands/project/commandDeleteProject.ts +1 -1
  240. package/src/apps/cli/commands/project/commandEnvVars.ts +6 -3
  241. package/src/apps/cli/commands/project/commandGetMyTotalWorktime.ts +2 -2
  242. package/src/apps/cli/commands/project/commandGetShell.ts +10 -9
  243. package/src/apps/cli/commands/project/commandGitlabCi.ts +2 -1
  244. package/src/apps/cli/commands/project/commandInitProject.old.ts +1 -1
  245. package/src/apps/cli/commands/project/commandListPods.ts +2 -2
  246. package/src/apps/cli/commands/project/commandMigrateHelm3.ts +4 -3
  247. package/src/apps/cli/commands/project/commandNamespace.ts +1 -1
  248. package/src/apps/cli/commands/project/commandOpenCostDashboard.ts +3 -3
  249. package/src/apps/cli/commands/project/commandOpenDashboard.ts +12 -32
  250. package/src/apps/cli/commands/project/commandOpenEnv.ts +1 -1
  251. package/src/apps/cli/commands/project/commandOpenGit.ts +3 -3
  252. package/src/apps/cli/commands/project/commandOpenGrafana.ts +3 -3
  253. package/src/apps/cli/commands/project/commandOpenGrafanaPod.ts +5 -7
  254. package/src/apps/cli/commands/project/commandOpenLogs.ts +4 -35
  255. package/src/apps/cli/commands/project/commandPauseProject.ts +1 -1
  256. package/src/apps/cli/commands/project/commandPortForward.ts +75 -34
  257. package/src/apps/cli/commands/project/commandSecretsClearBackups.ts +27 -0
  258. package/src/apps/cli/commands/project/commandSetup.ts +1 -1
  259. package/src/apps/cli/commands/project/commandTriggerCronjob.ts +3 -2
  260. package/src/apps/cli/commands/project/index.ts +6 -3
  261. package/src/apps/cli/commands/project/setup/index.ts +3 -1
  262. package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +23 -11
  263. package/src/apps/cli/commands/project/setup/setupCloudRun.ts +84 -0
  264. package/src/apps/cli/commands/project/setup/setupContext.ts +9 -2
  265. package/src/apps/cli/commands/project/setup/setupKubernetes.ts +56 -28
  266. package/src/apps/cli/commands/project/setup/setupTopic.ts +22 -0
  267. package/src/apps/cli/commands/project/utils/ensureNamespace.ts +4 -2
  268. package/src/apps/cli/commands/project/utils/showProjectBanner.ts +1 -1
  269. package/src/apps/cli/commands/theStuffThatReallyMatters/index.ts +2 -2
  270. package/src/apps/cli/config/writeConfig.ts +2 -2
  271. package/src/apps/cli/verify/index.ts +1 -1
  272. package/src/apps/cli/verify/migration/fromv2.ts +5 -7
  273. package/src/apps/cli/verify/migration/migrateSecrets.ts +15 -5
  274. package/src/apps/cli/verify/migration/oldGitlabCi.ts +2 -2
  275. package/src/catenv.ts +3 -4
  276. package/src/cli.ts +1 -7
  277. package/src/config/constants.ts +0 -2
  278. package/src/config/getProjectConfig.ts +71 -31
  279. package/src/config/parseChoice.ts +4 -0
  280. package/src/gcloud/artifactsRegistry.ts +16 -0
  281. package/src/gcloud/cloudRun/getCloudRunDomainSuffix.ts +35 -0
  282. package/src/gcloud/cloudRun/openCloudRunDashboards.ts +22 -0
  283. package/src/gcloud/cloudSql/copyDb.ts +57 -0
  284. package/src/gcloud/cloudSql/startProxy.ts +74 -0
  285. package/src/gcloud/enableServices.ts +14 -0
  286. package/src/gcloud/openDashboard.ts +19 -0
  287. package/src/gcloud/serviceAccounts.ts +101 -0
  288. package/src/kubernetes/index.ts +27 -0
  289. package/src/kubernetes/openKubernetesDashboards.ts +52 -0
  290. package/src/kubernetes/portForward.ts +15 -0
  291. package/src/types/child-process-promise.d.ts +37 -1
  292. package/src/utils/cluster.ts +3 -3
  293. package/src/utils/gitlab.ts +141 -30
  294. package/src/utils/passwordstore/index.ts +2 -30
  295. package/src/utils/{portForward.ts → portForwards.ts} +27 -22
  296. package/src/utils/projects/index.ts +3 -24
  297. package/tsconfig.json +1 -1
  298. package/dist/apps/cli/commands/project/commandCopyDB.js +0 -102
  299. package/dist/apps/cli/commands/project/commandCopyDB.js.map +0 -1
  300. package/dist/apps/cli/commands/shared/index.d.ts +0 -3
  301. package/dist/apps/cli/commands/shared/index.js.map +0 -1
  302. package/dist/utils/portForward.d.ts +0 -4
  303. package/dist/utils/portForward.js.map +0 -1
  304. package/src/apps/cli/commands/project/commandCopyDB.ts +0 -91
  305. package/src/apps/cli/commands/shared/index.ts +0 -36
@@ -1,27 +1,55 @@
1
- import { isOfDeployType } from "@catladder/pipeline";
2
- import { spawn } from "child-process-promise";
3
- import { writeFile } from "fs-extra";
4
- import { withFile } from "tmp-promise";
5
- import Vorpal from "vorpal";
1
+ import type { Context } from "@catladder/pipeline";
6
2
  import {
7
- getEnvVars,
8
- getGitlabVar,
3
+ createKubernetesCloudsqlBaseValues,
4
+ isOfDeployType,
5
+ } from "@catladder/pipeline";
6
+ import type Vorpal from "vorpal";
7
+ import type { CommandInstance } from "vorpal";
8
+ import {
9
+ getEnvVarsResolved,
9
10
  getPipelineContextByChoice,
10
- getProjectConfig,
11
11
  parseChoice,
12
12
  } from "../../../../config/getProjectConfig";
13
13
  import { envAndComponents } from "./utils/autocompletions";
14
+ import { startCloudSqlProxyInCurrentShell } from "../../../../gcloud/cloudSql/startProxy";
14
15
 
16
+ type ProxyInfo = {
17
+ instanceName: string;
18
+ DB_NAME: string;
19
+ DB_PASSWORD: string;
20
+ DB_USER: string;
21
+ };
15
22
  export default async (vorpal: Vorpal) =>
16
23
  vorpal
17
24
  .command("project-cloud-sql-proxy <envComponent>", "proxy to cloud sql db")
18
25
  .autocomplete(await envAndComponents())
19
26
  .action(async function ({ envComponent }) {
20
27
  const { env, componentName } = parseChoice(envComponent);
28
+ if (!componentName) {
29
+ this.log("need componentName");
30
+ return;
31
+ }
21
32
 
22
- const config = await getProjectConfig();
23
- // skynet-164509:europe-west6:pvl-cyclomania-review=tcp:5432
33
+ const context = await getPipelineContextByChoice(env, componentName);
34
+ let proxyInfo: ProxyInfo;
35
+
36
+ if (env === "review") {
37
+ vorpal.log(
38
+ "⚠️ connection string does not include mr information on review environments"
39
+ );
40
+ }
41
+ if (isOfDeployType(context.componentConfig.deploy, "kubernetes")) {
42
+ proxyInfo = await getProxyInfoForKubernetes(this, context);
43
+ } else if (
44
+ isOfDeployType(context.componentConfig.deploy, "google-cloudrun")
45
+ ) {
46
+ proxyInfo = await getProxyInfoForCloudRun(this, context);
47
+ } else {
48
+ throw new Error("unsupported environment");
49
+ }
24
50
 
51
+ // skynet-164509:europe-west6:pvl-cyclomania-review=tcp:5432
52
+ const { DB_PASSWORD, DB_NAME, DB_USER, instanceName } = proxyInfo;
25
53
  const { localPort } = await this.prompt({
26
54
  type: "number",
27
55
  name: "localPort",
@@ -29,60 +57,83 @@ export default async (vorpal: Vorpal) =>
29
57
  message: "Local port: ",
30
58
  });
31
59
 
32
- const envVars = await getEnvVars(this, env, componentName);
33
- const POSTGRESQL_PASSWORD = envVars?.POSTGRESQL_PASSWORD;
34
-
35
- const context = await getPipelineContextByChoice(env, componentName);
36
- if (!isOfDeployType(context.componentConfig.deploy, "kubernetes")) {
37
- throw new Error("currently only supported for kubernetes deployment");
38
- }
39
60
  this.log("");
40
- this.log(`postgres-PW: ${POSTGRESQL_PASSWORD}`);
61
+ this.log(`postgres-PW: ${DB_PASSWORD}`);
62
+ this.log("");
63
+ this.log("connection strings:");
41
64
  this.log("");
42
65
  this.log(
43
- `POSTGRESQL_URL=postgresql://postgres:${POSTGRESQL_PASSWORD}@localhost:${localPort}/${context.environment.envVars.KUBE_APP_NAME}?schema=public`
66
+ `DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@localhost:${localPort}/${DB_NAME}?schema=public`
67
+ );
68
+ this.log("");
69
+ this.log(
70
+ `DATABASE_JDBC_URL=jdbc:postgresql://localhost:${localPort}/${DB_NAME}?schema=public&user=${DB_USER}&password=${DB_PASSWORD}`
44
71
  );
45
72
  this.log("");
46
73
 
47
- const values = context.componentConfig.deploy.values;
74
+ await startCloudSqlProxyInCurrentShell({
75
+ instanceName,
76
+ localPort,
77
+ });
78
+ });
48
79
 
49
- const projectId =
50
- values?.cloudsql?.projectId ||
51
- context.componentConfig.deploy.cluster?.projectId;
80
+ const getProxyInfoForKubernetes = async (
81
+ vorpal: CommandInstance,
82
+ context: Context
83
+ ): Promise<ProxyInfo> => {
84
+ if (!isOfDeployType(context.componentConfig.deploy, "kubernetes")) {
85
+ throw new Error("unsupported");
86
+ }
52
87
 
53
- const defaultInstanceId = `${config.customerName}-${config.appName}-${env}`;
54
- const instanceId = values?.cloudsql?.instanceId || defaultInstanceId;
88
+ const envVars = await getEnvVarsResolved(
89
+ vorpal,
90
+ context.environment.shortName,
91
+ context.componentName
92
+ );
93
+ // bit hacky, would be nicer if we would also declare this through env vars
94
+ const cloudSqlValues = createKubernetesCloudsqlBaseValues(context);
55
95
 
56
- const defaultRegion = "europe-west6"; // currently hardcoded
57
- const region = values?.cloudsql?.region || defaultRegion;
96
+ const DB_PASSWORD = envVars?.DB_PASSWORD || envVars?.POSTGRESQL_PASSWORD;
58
97
 
59
- const instanceName = `${projectId}:${region}:${instanceId}=tcp:${localPort}`;
98
+ const DB_NAME = cloudSqlValues.cloudsql.fullDbName;
60
99
 
61
- const cloudsqlProxyCredentials = await getGitlabVar(
62
- this,
63
- env,
64
- componentName,
65
- "cloudsqlProxyCredentials"
66
- );
100
+ const instanceName = cloudSqlValues.cloudsql.instanceConnectionName;
67
101
 
68
- if (!cloudsqlProxyCredentials) {
69
- // we store cloudsqlProxyCredentials on gitlab, but its currently get pushed via bitwarden due to legacy reasons
70
- // this will be fixed with when https://git.panter.ch/catladder/catladder/-/merge_requests/32/ is merged
71
- this.log(
72
- "cloudsqlProxyCredentials env var missing in gitlab. Please contact gilde-ci-cd about that."
73
- );
74
- throw new Error("cloudsqlProxyCredentials missing in secrets");
75
- }
76
- await withFile(async ({ path: tmpFilePath }) => {
77
- await writeFile(tmpFilePath, cloudsqlProxyCredentials);
78
-
79
- await spawn(
80
- "cloud_sql_proxy",
81
- ["-instances", instanceName, "-credential_file", tmpFilePath],
82
- {
83
- stdio: "inherit",
84
- shell: true,
85
- }
86
- );
87
- });
88
- });
102
+ return {
103
+ instanceName,
104
+ DB_PASSWORD,
105
+ DB_NAME,
106
+ DB_USER: "postgres",
107
+ };
108
+ };
109
+
110
+ const getProxyInfoForCloudRun = async (
111
+ vorpal: CommandInstance,
112
+ context: Context
113
+ ): Promise<ProxyInfo> => {
114
+ if (
115
+ !isOfDeployType(context.componentConfig.deploy, "google-cloudrun") ||
116
+ !context.componentConfig.deploy.cloudSql
117
+ ) {
118
+ throw new Error("unsupported");
119
+ }
120
+
121
+ const envVars = await getEnvVarsResolved(
122
+ vorpal,
123
+ context.environment.shortName,
124
+ context.componentName
125
+ );
126
+
127
+ const DB_PASSWORD = envVars?.DB_PASSWORD;
128
+ const DB_USER = envVars?.DB_USER;
129
+
130
+ const DB_NAME = context.environment.envVars.DB_NAME;
131
+
132
+ return {
133
+ instanceName:
134
+ context.componentConfig.deploy.cloudSql.instanceConnectionName,
135
+ DB_PASSWORD,
136
+ DB_NAME,
137
+ DB_USER,
138
+ };
139
+ };
@@ -1,19 +1,19 @@
1
1
  /* eslint-disable no-constant-condition */
2
+ import { getSecretVarName } from "@catladder/pipeline";
2
3
  import { stripIndents } from "common-tags";
3
4
  import { difference } from "lodash";
4
- import Vorpal, { CommandInstance } from "vorpal";
5
- import { GOOGLE_CLOUD_SQL_PASS_PATH } from "../../../../config/constants";
5
+ import type { CommandInstance } from "vorpal";
6
+ import type Vorpal from "vorpal";
6
7
  import {
7
8
  getAllComponentsWithAllEnvsHierarchical,
8
9
  getEnvironment,
9
- getEnvVars,
10
- getPipelineContextByChoice,
10
+ getEnvVarsResolved,
11
+ getJobOnlyEnvVarsResolved,
11
12
  getProjectComponents,
12
13
  parseChoice,
13
14
  } from "../../../../config/getProjectConfig";
14
15
  import { editAsFile } from "../../../../utils/editAsFile";
15
16
  import { upsertAllVariables } from "../../../../utils/gitlab";
16
- import { hasBitwarden, readPass } from "../../../../utils/passwordstore";
17
17
  import { delay } from "../../../../utils/promise";
18
18
  import { allEnvsAndAllComponents } from "./utils/autocompletions";
19
19
 
@@ -45,16 +45,51 @@ const resolveJson = (v: Vars) =>
45
45
  ];
46
46
  })
47
47
  );
48
+
49
+ const getSecretEnvVarKeysToConfigure = async (
50
+ env: string,
51
+ componentName: string
52
+ ) => {
53
+ const { secretEnvVarKeys, jobOnlyVars } = await getEnvironment(
54
+ env,
55
+ componentName
56
+ );
57
+ return [
58
+ ...jobOnlyVars.build.secretEnvVarKeys,
59
+ ...jobOnlyVars.deploy.secretEnvVarKeys,
60
+ ...secretEnvVarKeys,
61
+ ]
62
+ .filter((k) => !k.hidden)
63
+ .map((k) => k.key);
64
+ };
48
65
  const getEnvVarsToEdit = async (
49
66
  instance: CommandInstance,
50
67
  env: string,
51
68
  componentName: string
52
69
  ) => {
53
- const { secretEnvVarKeys } = await getEnvironment(env, componentName);
70
+ const secretEnvVarKeys = await getSecretEnvVarKeysToConfigure(
71
+ env,
72
+ componentName
73
+ );
54
74
 
55
- const allEnvVars = await getEnvVars(instance, env, componentName);
75
+ const normalEnvVars = await getEnvVarsResolved(instance, env, componentName);
76
+ const jobOnlyEnvVars = await getJobOnlyEnvVarsResolved(
77
+ instance,
78
+ env,
79
+ componentName
80
+ );
81
+ const allEnvVars = {
82
+ ...normalEnvVars,
83
+ ...jobOnlyEnvVars,
84
+ };
56
85
  return Object.fromEntries(
57
- secretEnvVarKeys.map((key) => [key, allEnvVars[key]])
86
+ secretEnvVarKeys.map((key) => {
87
+ const value = allEnvVars[key];
88
+ // due to some quirky way to resolve these variables, unset variables have the $CL_ prefix, so we remove thouse here
89
+ const variableIsNotSet =
90
+ value === "$" + getSecretVarName(env, componentName, key);
91
+ return [key, variableIsNotSet ? "🚨 FILL ME" : value];
92
+ })
58
93
  );
59
94
  };
60
95
  const doItFor = async (
@@ -101,7 +136,11 @@ const doItFor = async (
101
136
  ? Object.keys(valuesToEdit[componentName][env])
102
137
  : [];
103
138
  // check whether newValues have the exact number of keys
104
- const { secretEnvVarKeys } = await getEnvironment(env, componentName);
139
+ const secretEnvVarKeys = await getSecretEnvVarKeysToConfigure(
140
+ env,
141
+ componentName
142
+ );
143
+
105
144
  const extranous = difference(usedKeys, secretEnvVarKeys);
106
145
  const missing = difference(secretEnvVarKeys, usedKeys);
107
146
 
@@ -148,32 +187,7 @@ const doItFor = async (
148
187
  env,
149
188
  componentName
150
189
  );
151
-
152
- if (hasBitwarden()) {
153
- // add cloud sql secret if needed.
154
- // TODO: this is legacy, in the future we want to have one service account per app
155
- try {
156
- const context = await getPipelineContextByChoice(env, componentName);
157
- if (
158
- context.componentConfig.deploy &&
159
- context.componentConfig.deploy.type === "kubernetes" &&
160
- context.componentConfig.deploy.values?.cloudsql?.enabled
161
- ) {
162
- await upsertAllVariables(
163
- instance,
164
- {
165
- cloudsqlProxyCredentials: await readPass(
166
- GOOGLE_CLOUD_SQL_PASS_PATH
167
- ),
168
- },
169
- env,
170
- componentName
171
- );
172
- }
173
- } catch (e) {
174
- // ignore atm
175
- }
176
- }
190
+ instance.log("");
177
191
  instance.log("✅ " + env + ":" + componentName);
178
192
  }
179
193
  }
@@ -1,11 +1,9 @@
1
- import Vorpal from "vorpal";
1
+ import type Vorpal from "vorpal";
2
2
  import { getk8sApi } from "../../../../k8sApi";
3
+ import { getProjectPodNames } from "../../../../kubernetes";
3
4
 
4
5
  import { logError } from "../../../../utils/log";
5
- import {
6
- getProjectNamespace,
7
- getProjectPodNames,
8
- } from "../../../../utils/projects";
6
+ import { getProjectNamespace } from "../../../../utils/projects";
9
7
  import { envAndComponents } from "./utils/autocompletions";
10
8
  import ensureCluster from "./utils/ensureCluster";
11
9
 
@@ -1,4 +1,4 @@
1
- import Vorpal from "vorpal";
1
+ import type Vorpal from "vorpal";
2
2
  import { exec } from "child-process-promise";
3
3
  import { getProjectNamespace } from "../../../../utils/projects";
4
4
  import { envAndComponents } from "./utils/autocompletions";
@@ -1,5 +1,8 @@
1
- import Vorpal from "vorpal";
2
- import { getEnvVars, parseChoice } from "../../../../config/getProjectConfig";
1
+ import type Vorpal from "vorpal";
2
+ import {
3
+ getEnvVarsResolved,
4
+ parseChoice,
5
+ } from "../../../../config/getProjectConfig";
3
6
  import { envAndComponents } from "./utils/autocompletions";
4
7
 
5
8
  export default async (vorpal: Vorpal) =>
@@ -8,7 +11,7 @@ export default async (vorpal: Vorpal) =>
8
11
  .autocomplete(await envAndComponents())
9
12
  .action(async function ({ envComponent }) {
10
13
  const { env, componentName } = parseChoice(envComponent);
11
- const envvars = await getEnvVars(this, env, componentName);
14
+ const envvars = await getEnvVarsResolved(this, env, componentName);
12
15
  Object.keys(envvars).forEach((key) =>
13
16
  this.log(`${key}: ${envvars[key]}`)
14
17
  );
@@ -1,5 +1,5 @@
1
1
  import { spawn } from "child-process-promise";
2
- import Vorpal from "vorpal";
2
+ import type Vorpal from "vorpal";
3
3
 
4
4
  export default async (vorpal: Vorpal) =>
5
5
  vorpal
@@ -8,7 +8,7 @@ export default async (vorpal: Vorpal) =>
8
8
  "show the total worktime that you spent on a project"
9
9
  )
10
10
  .action(async () => {
11
- await spawn("sh", ["-c", "curl -L http://bit.ly/10hA8iC | bash"], {
11
+ await spawn("sh", ["-c", "curl -s -L http://bit.ly/3VQEKNq | bash"], {
12
12
  stdio: ["pipe", "inherit", "pipe"],
13
13
  });
14
14
  });
@@ -1,9 +1,7 @@
1
- import Vorpal from "vorpal";
1
+ import type Vorpal from "vorpal";
2
+ import { getProjectPods } from "../../../../kubernetes";
2
3
  import { logError } from "../../../../utils/log";
3
- import {
4
- getProjectNamespace,
5
- getProjectPodNames,
6
- } from "../../../../utils/projects";
4
+ import { getProjectNamespace } from "../../../../utils/projects";
7
5
  import { getShell } from "../../../../utils/shell";
8
6
 
9
7
  import { envAndComponents } from "./utils/autocompletions";
@@ -19,15 +17,18 @@ export default async (vorpal: Vorpal) =>
19
17
  .action(async function ({ envComponent }) {
20
18
  await ensureCluster.call(this, envComponent);
21
19
  const namespace = await getProjectNamespace(envComponent);
22
- const podNames = await getProjectPodNames(envComponent);
23
- if (podNames.length === 0) {
24
- logError(this, "sorry, no pods found");
20
+ const pods = await getProjectPods(envComponent);
21
+ const runningPodNames = pods
22
+ .filter((p) => p.status.phase == "Running")
23
+ .map((r) => r.metadata.name);
24
+ if (runningPodNames.length === 0) {
25
+ logError(this, "sorry, no running pods found");
25
26
  return;
26
27
  }
27
28
  const { podName } = await this.prompt({
28
29
  type: "list",
29
30
  name: "podName",
30
- choices: podNames,
31
+ choices: runningPodNames,
31
32
  message: "Which pod? 🤔",
32
33
  });
33
34
 
@@ -1,7 +1,8 @@
1
1
  import { exec } from "child-process-promise";
2
2
  import { last } from "lodash";
3
3
  import open from "open";
4
- import Vorpal, { CommandInstance } from "vorpal";
4
+ import type { CommandInstance } from "vorpal";
5
+ import type Vorpal from "vorpal";
5
6
  import {
6
7
  doGitlabRequest,
7
8
  getGitlabToken,
@@ -2,7 +2,7 @@ import { readFile, writeFile } from "fs-extra";
2
2
  import { dump } from "js-yaml";
3
3
  import { mapKeys, snakeCase, toUpper } from "lodash";
4
4
  import path from "path";
5
- import Vorpal from "vorpal";
5
+ import type Vorpal from "vorpal";
6
6
  import { hasGitlabCiFile } from "../../../../utils/projects";
7
7
 
8
8
  const transformVar = (key: string) => toUpper(snakeCase(key));
@@ -1,7 +1,7 @@
1
1
  import { dump } from "js-yaml";
2
2
  import { pick } from "lodash";
3
- import Vorpal from "vorpal";
4
- import { getProjectPods } from "../../../../utils/projects";
3
+ import type Vorpal from "vorpal";
4
+ import { getProjectPods } from "../../../../kubernetes";
5
5
  import { envAndComponents } from "./utils/autocompletions";
6
6
  import ensureCluster from "./utils/ensureCluster";
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { exec } from "child-process-promise";
2
- import Vorpal from "vorpal";
2
+ import type Vorpal from "vorpal";
3
3
  import {
4
4
  getEnvironment,
5
5
  parseChoice,
@@ -43,8 +43,9 @@ export default async (vorpal: Vorpal) =>
43
43
  // ignore
44
44
  }
45
45
 
46
- const releaseName = (await getEnvironment(env, componentName)).envVars
47
- .RELEASE_NAME; // TODO: maybe its own function would be better
46
+ // we use the app full name as the release name
47
+ const releaseName = (await getEnvironment(env, componentName)).fullName;
48
+
48
49
  this.log(`helm release name: ${releaseName}`);
49
50
  this.log("");
50
51
  this.log("migrating now... 😼. This may take a moment");
@@ -1,4 +1,4 @@
1
- import Vorpal from "vorpal";
1
+ import type Vorpal from "vorpal";
2
2
  import { getProjectNamespace } from "../../../../utils/projects";
3
3
  import { envAndComponents } from "./utils/autocompletions";
4
4
 
@@ -1,11 +1,11 @@
1
1
  import open from "open";
2
- import Vorpal from "vorpal";
2
+ import type Vorpal from "vorpal";
3
3
  import {
4
4
  GRAFANA_PROXY_LOCAL_PORT,
5
5
  GRAFANA_PROXY_TARGET_PORT,
6
6
  } from "../../../../config/constants";
7
7
 
8
- import { startPortForward } from "../../../../utils/portForward";
8
+ import { startKubePortForward } from "../../../../kubernetes/portForward";
9
9
 
10
10
  import { getProjectNamespace } from "../../../../utils/projects";
11
11
 
@@ -22,7 +22,7 @@ export default async (vorpal: Vorpal) =>
22
22
  await ensureCluster.call(this, envComponent);
23
23
  const namespace = await getProjectNamespace(envComponent);
24
24
  const url = `http://localhost:${GRAFANA_PROXY_LOCAL_PORT}/namespace.html?name=${namespace}`;
25
- await startPortForward(
25
+ await startKubePortForward(
26
26
  "deployment/kubecost-cost-analyzer",
27
27
  GRAFANA_PROXY_LOCAL_PORT,
28
28
  GRAFANA_PROXY_TARGET_PORT,
@@ -1,48 +1,28 @@
1
- import Vorpal from "vorpal";
1
+ import { isOfDeployType } from "@catladder/pipeline";
2
+ import type Vorpal from "vorpal";
2
3
  import {
3
4
  getPipelineContextByChoice,
4
5
  parseChoice,
5
6
  } from "../../../../config/getProjectConfig";
6
- import { getGoogleAuthUserNumber } from "../../utils/getGoogleAuthUserNumber";
7
- import { openGoogleCloudKubernetesDashboard } from "../shared";
7
+ import { openGoogleCloudRunDashboard } from "../../../../gcloud/cloudRun/openCloudRunDashboards";
8
+ import { openGoogleCloudKubernetesDashboard } from "../../../../kubernetes/openKubernetesDashboards";
9
+
8
10
  import { envAndComponents } from "./utils/autocompletions";
11
+
9
12
  export default async (vorpal: Vorpal) =>
10
13
  vorpal
11
14
  .command(
12
15
  "project-open-dashboard <envComponent>",
13
- "open kubernetes dashboard on google"
16
+ "open an apps dashboard (kubernetes or cloudrun)"
14
17
  )
15
18
  .autocomplete(await envAndComponents())
16
19
  .action(async function ({ envComponent }) {
17
20
  const { env, componentName } = parseChoice(envComponent);
18
- const { componentConfig, environment } = await getPipelineContextByChoice(
19
- env,
20
- componentName
21
- );
22
-
23
- if (
24
- !componentConfig.deploy ||
25
- componentConfig.deploy.type !== "kubernetes"
26
- ) {
27
- throw new Error(
28
- "only kubernetes deployments are supported at the moment"
29
- );
21
+ const context = await getPipelineContextByChoice(env, componentName);
22
+ if (isOfDeployType(context.componentConfig.deploy, "kubernetes")) {
23
+ await openGoogleCloudKubernetesDashboard(this, context);
30
24
  }
31
-
32
- if (
33
- !componentConfig.deploy.cluster ||
34
- componentConfig.deploy.cluster.type !== "gcloud"
35
- ) {
36
- throw new Error("no gcloud custer configured");
25
+ if (isOfDeployType(context.componentConfig.deploy, "google-cloudrun")) {
26
+ await openGoogleCloudRunDashboard(this, context);
37
27
  }
38
- // currently only supports kubernetes
39
- const namespace = environment.envVars.KUBE_NAMESPACE;
40
-
41
- const authGoogleNumber = await getGoogleAuthUserNumber.call(this, vorpal);
42
-
43
- openGoogleCloudKubernetesDashboard(
44
- componentConfig.deploy.cluster,
45
- namespace,
46
- authGoogleNumber
47
- );
48
28
  });
@@ -1,5 +1,5 @@
1
1
  import open from "open";
2
- import Vorpal from "vorpal";
2
+ import type Vorpal from "vorpal";
3
3
  import {
4
4
  getEnvironment,
5
5
  parseChoice,
@@ -1,5 +1,5 @@
1
- import Vorpal from "vorpal";
2
- import { $ } from "zx";
1
+ import type Vorpal from "vorpal";
2
+ import { exec } from "child-process-promise";
3
3
 
4
4
  export default async (vorpal: Vorpal) =>
5
5
  vorpal
@@ -8,5 +8,5 @@ export default async (vorpal: Vorpal) =>
8
8
  "open the repo on gitlab / github in your browser"
9
9
  )
10
10
  .action(async () => {
11
- await $`npx git-open`;
11
+ await exec("npx git-open");
12
12
  });
@@ -1,6 +1,6 @@
1
1
  import open from "open";
2
- import { startPortForward } from "../../../../utils/portForward";
3
- import Vorpal from "vorpal";
2
+ import { startKubePortForward } from "../../../../kubernetes/portForward";
3
+ import type Vorpal from "vorpal";
4
4
  import {
5
5
  GRAFANA_PROXY_LOCAL_PORT,
6
6
  GRAFANA_PROXY_TARGET_PORT,
@@ -21,7 +21,7 @@ export default async (vorpal: Vorpal) =>
21
21
  await ensureCluster.call(this, envComponent);
22
22
  const namespace = await getProjectNamespace(envComponent);
23
23
  const url = `http://localhost:${GRAFANA_PROXY_LOCAL_PORT}/grafana/d/at-cost-analysis-namespace2/namespace-utilization-metrics?var-namespace=${namespace}`;
24
- await startPortForward(
24
+ await startKubePortForward(
25
25
  "deployment/kubecost-cost-analyzer",
26
26
  GRAFANA_PROXY_LOCAL_PORT,
27
27
  GRAFANA_PROXY_TARGET_PORT,
@@ -1,15 +1,13 @@
1
1
  import open from "open";
2
- import Vorpal from "vorpal";
2
+ import type Vorpal from "vorpal";
3
3
  import {
4
4
  GRAFANA_PROXY_LOCAL_PORT,
5
5
  GRAFANA_PROXY_TARGET_PORT,
6
6
  } from "../../../../config/constants";
7
+ import { getProjectPodNames } from "../../../../kubernetes";
7
8
  import { logError } from "../../../../utils/log";
8
- import { startPortForward } from "../../../../utils/portForward";
9
- import {
10
- getProjectNamespace,
11
- getProjectPodNames,
12
- } from "../../../../utils/projects";
9
+ import { startKubePortForward } from "../../../../kubernetes/portForward";
10
+ import { getProjectNamespace } from "../../../../utils/projects";
13
11
  import { envAndComponents } from "./utils/autocompletions";
14
12
  import ensureCluster from "./utils/ensureCluster";
15
13
 
@@ -35,7 +33,7 @@ export default async (vorpal: Vorpal) =>
35
33
  });
36
34
  const namespace = await getProjectNamespace(envComponent);
37
35
  const url = `http://localhost:${GRAFANA_PROXY_LOCAL_PORT}/grafana/d/at-cost-analysis-pod/pod-cost-and-utilization-metrics?var-namespace=${namespace}&var-pod=${podName}`;
38
- await startPortForward(
36
+ await startKubePortForward(
39
37
  "deployment/kubecost-cost-analyzer",
40
38
  GRAFANA_PROXY_LOCAL_PORT,
41
39
  GRAFANA_PROXY_TARGET_PORT,