@catladder/cli 0.0.0-node16-ddfae617 → 0.0.0-prettier-cbceeed9
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.
- package/bin/catenv +1 -1
- package/bin/catenv-dev +3 -0
- package/bin/catladder +1 -1
- package/bin/catladder-dev +3 -0
- package/dist/apps/catenv/catenv.d.ts +4 -1
- package/dist/apps/catenv/catenv.js +28 -20
- package/dist/apps/catenv/catenv.js.map +1 -1
- package/dist/apps/cli/cli.js +4 -2
- package/dist/apps/cli/cli.js.map +1 -1
- package/dist/apps/cli/commands/{project/commandCopyDB.d.ts → cloudSQL/commandRestoreDb.d.ts} +1 -1
- package/dist/apps/cli/commands/cloudSQL/commandRestoreDb.js +192 -0
- package/dist/apps/cli/commands/cloudSQL/commandRestoreDb.js.map +1 -0
- package/dist/apps/cli/commands/cloudSQL/index.d.ts +3 -0
- package/dist/apps/cli/commands/cloudSQL/index.js +50 -0
- package/dist/apps/cli/commands/cloudSQL/index.js.map +1 -0
- package/dist/apps/cli/commands/general/index.d.ts +1 -1
- package/dist/apps/cli/commands/general/index.js +11 -11
- package/dist/apps/cli/commands/general/index.js.map +1 -1
- package/dist/apps/cli/commands/general/portForward.d.ts +1 -1
- package/dist/apps/cli/commands/general/portForward.js +3 -3
- package/dist/apps/cli/commands/general/portForward.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/index.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.js +2 -1
- package/dist/apps/cli/commands/mongodb/projectMongoDestroyMember.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoGetShell.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.d.ts +1 -1
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js +27 -11
- package/dist/apps/cli/commands/mongodb/projectMongoPortForward.js.map +1 -1
- package/dist/apps/cli/commands/mongodb/utils/index.js +16 -4
- package/dist/apps/cli/commands/mongodb/utils/index.js.map +1 -1
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js +109 -45
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
- package/dist/apps/cli/commands/project/commandConfigSecrets.d.ts +2 -1
- package/dist/apps/cli/commands/project/commandConfigSecrets.js +29 -51
- package/dist/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
- package/dist/apps/cli/commands/project/commandDeletePods.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandDeletePods.js +2 -1
- package/dist/apps/cli/commands/project/commandDeletePods.js.map +1 -1
- package/dist/apps/cli/commands/project/commandDeleteProject.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandEnvVars.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.js +1 -1
- package/dist/apps/cli/commands/project/commandGetMyTotalWorktime.js.map +1 -1
- package/dist/apps/cli/commands/project/commandGetShell.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGetShell.js +2 -1
- package/dist/apps/cli/commands/project/commandGetShell.js.map +1 -1
- package/dist/apps/cli/commands/project/commandGitlabCi.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandGitlabCi.js.map +1 -1
- package/dist/apps/cli/commands/project/commandInitProject.old.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandListPods.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandListPods.js +2 -2
- package/dist/apps/cli/commands/project/commandListPods.js.map +1 -1
- package/dist/apps/cli/commands/project/commandMigrateHelm3.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandMigrateHelm3.js +1 -2
- package/dist/apps/cli/commands/project/commandMigrateHelm3.js.map +1 -1
- package/dist/apps/cli/commands/project/commandNamespace.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenCostDashboard.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenCostDashboard.js +2 -2
- package/dist/apps/cli/commands/project/commandOpenCostDashboard.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenDashboard.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenDashboard.js +19 -20
- package/dist/apps/cli/commands/project/commandOpenDashboard.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenEnv.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGit.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGit.js +2 -7
- package/dist/apps/cli/commands/project/commandOpenGit.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafana.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafana.js +2 -2
- package/dist/apps/cli/commands/project/commandOpenGrafana.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafanaPod.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenGrafanaPod.js +4 -3
- package/dist/apps/cli/commands/project/commandOpenGrafanaPod.js.map +1 -1
- package/dist/apps/cli/commands/project/commandOpenLogs.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandOpenLogs.js +7 -20
- package/dist/apps/cli/commands/project/commandOpenLogs.js.map +1 -1
- package/dist/apps/cli/commands/project/commandPauseProject.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandPortForward.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandPortForward.js +98 -36
- package/dist/apps/cli/commands/project/commandPortForward.js.map +1 -1
- package/dist/apps/cli/commands/project/commandSecretsClearBackups.d.ts +5 -0
- package/dist/apps/cli/commands/project/commandSecretsClearBackups.js +90 -0
- package/dist/apps/cli/commands/project/commandSecretsClearBackups.js.map +1 -0
- package/dist/apps/cli/commands/project/commandSetup.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandTriggerCronjob.d.ts +1 -1
- package/dist/apps/cli/commands/project/commandTriggerCronjob.js.map +1 -1
- package/dist/apps/cli/commands/project/index.d.ts +1 -1
- package/dist/apps/cli/commands/project/index.js +2 -2
- package/dist/apps/cli/commands/project/index.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/index.d.ts +1 -1
- package/dist/apps/cli/commands/project/setup/index.js +11 -7
- package/dist/apps/cli/commands/project/setup/index.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.d.ts +1 -1
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js +5 -4
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupCloudRun.d.ts +3 -0
- package/dist/apps/cli/commands/project/setup/setupCloudRun.js +118 -0
- package/dist/apps/cli/commands/project/setup/setupCloudRun.js.map +1 -0
- package/dist/apps/cli/commands/project/setup/setupCloudSQL.d.ts +3 -0
- package/dist/apps/cli/commands/project/setup/setupCloudSQL.js +56 -0
- package/dist/apps/cli/commands/project/setup/setupCloudSQL.js.map +1 -0
- package/dist/apps/cli/commands/project/setup/setupContext.d.ts +2 -2
- package/dist/apps/cli/commands/project/setup/setupContext.js +17 -3
- package/dist/apps/cli/commands/project/setup/setupContext.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupKubernetes.d.ts +2 -2
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js +12 -16
- package/dist/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupTopic.d.ts +2 -0
- package/dist/apps/cli/commands/project/setup/setupTopic.js +69 -0
- package/dist/apps/cli/commands/project/setup/setupTopic.js.map +1 -0
- package/dist/apps/cli/commands/project/utils/ensureNamespace.d.ts +1 -1
- package/dist/apps/cli/commands/project/utils/ensureNamespace.js.map +1 -1
- package/dist/apps/cli/commands/project/utils/showProjectBanner.d.ts +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.d.ts +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js +1 -1
- package/dist/apps/cli/commands/theStuffThatReallyMatters/index.js.map +1 -1
- package/dist/apps/cli/config/writeConfig.d.ts +2 -2
- package/dist/apps/cli/verify/index.d.ts +1 -1
- package/dist/apps/cli/verify/migration/fromv2.d.ts +1 -1
- package/dist/apps/cli/verify/migration/fromv2.js +2 -0
- package/dist/apps/cli/verify/migration/fromv2.js.map +1 -1
- package/dist/apps/cli/verify/migration/migrateSecrets.d.ts +3 -3
- package/dist/apps/cli/verify/migration/migrateSecrets.js +4 -3
- package/dist/apps/cli/verify/migration/migrateSecrets.js.map +1 -1
- package/dist/apps/cli/verify/migration/oldGitlabCi.d.ts +1 -1
- package/dist/apps/cli/verify/migration/oldGitlabCi.js +1 -1
- package/dist/apps/cli/verify/migration/oldGitlabCi.js.map +1 -1
- package/dist/bundles/catenv/index.js +44895 -0
- package/dist/bundles/catenv/xdg-open +1066 -0
- package/dist/bundles/cli/clipboard_i686.exe +0 -0
- package/dist/bundles/cli/clipboard_x86_64.exe +0 -0
- package/dist/bundles/cli/exec-child.js +39 -0
- package/dist/bundles/cli/index.js +358730 -0
- package/dist/bundles/cli/xdg-open +1066 -0
- package/dist/bundles/cli/xsel +0 -0
- package/dist/catenv.js +3 -3
- package/dist/catenv.js.map +1 -1
- package/dist/cli.js +0 -7
- package/dist/cli.js.map +1 -1
- package/dist/config/constants.d.ts +0 -1
- package/dist/config/constants.js +1 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/config/getProjectConfig.d.ts +4 -7
- package/dist/config/getProjectConfig.js +21 -9
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/config/parseChoice.d.ts +4 -0
- package/dist/config/parseChoice.js +9 -0
- package/dist/config/parseChoice.js.map +1 -0
- package/dist/gcloud/artifactsRegistry.d.ts +5 -0
- package/dist/gcloud/artifactsRegistry.js +59 -0
- package/dist/gcloud/artifactsRegistry.js.map +1 -0
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.d.ts +2 -0
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js +67 -0
- package/dist/gcloud/cloudRun/getCloudRunDomainSuffix.js.map +1 -0
- package/dist/gcloud/cloudRun/openCloudRunDashboards.d.ts +3 -0
- package/dist/gcloud/cloudRun/openCloudRunDashboards.js +62 -0
- package/dist/gcloud/cloudRun/openCloudRunDashboards.js.map +1 -0
- package/dist/gcloud/enableServices.d.ts +3 -0
- package/dist/gcloud/enableServices.js +63 -0
- package/dist/gcloud/enableServices.js.map +1 -0
- package/dist/gcloud/openDashboard.d.ts +2 -0
- package/dist/{apps/cli/commands/shared/index.js → gcloud/openDashboard.js} +23 -27
- package/dist/gcloud/openDashboard.js.map +1 -0
- package/dist/gcloud/serviceAccounts.d.ts +12 -0
- package/dist/gcloud/serviceAccounts.js +144 -0
- package/dist/gcloud/serviceAccounts.js.map +1 -0
- package/dist/kubernetes/index.d.ts +3 -0
- package/dist/kubernetes/index.js +88 -0
- package/dist/kubernetes/index.js.map +1 -0
- package/dist/kubernetes/openKubernetesDashboards.d.ts +4 -0
- package/dist/kubernetes/openKubernetesDashboards.js +94 -0
- package/dist/kubernetes/openKubernetesDashboards.js.map +1 -0
- package/dist/kubernetes/portForward.d.ts +1 -0
- package/dist/kubernetes/portForward.js +55 -0
- package/dist/kubernetes/portForward.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/cluster.js +3 -8
- package/dist/utils/cluster.js.map +1 -1
- package/dist/utils/gitlab.d.ts +5 -3
- package/dist/utils/gitlab.js +165 -46
- package/dist/utils/gitlab.js.map +1 -1
- package/dist/utils/passwordstore/index.d.ts +0 -1
- package/dist/utils/passwordstore/index.js +1 -64
- package/dist/utils/passwordstore/index.js.map +1 -1
- package/dist/utils/portForwards.d.ts +12 -0
- package/dist/utils/{portForward.js → portForwards.js} +20 -16
- package/dist/utils/portForwards.js.map +1 -0
- package/dist/utils/projects/index.d.ts +0 -3
- package/dist/utils/projects/index.js +3 -53
- package/dist/utils/projects/index.js.map +1 -1
- package/package.json +24 -22
- package/scripts/bundle +4 -0
- package/src/apps/catenv/catenv.ts +15 -8
- package/src/apps/cli/cli.ts +3 -1
- package/src/apps/cli/commands/cloudSQL/commandRestoreDb.ts +169 -0
- package/src/apps/cli/commands/cloudSQL/index.ts +8 -0
- package/src/apps/cli/commands/general/index.ts +11 -8
- package/src/apps/cli/commands/general/portForward.ts +4 -4
- package/src/apps/cli/commands/mongodb/index.ts +1 -1
- package/src/apps/cli/commands/mongodb/projectMongoDestroyMember.ts +3 -5
- package/src/apps/cli/commands/mongodb/projectMongoGetShell.ts +1 -1
- package/src/apps/cli/commands/mongodb/projectMongoPortForward.ts +18 -3
- package/src/apps/cli/commands/mongodb/utils/index.ts +19 -11
- package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +110 -37
- package/src/apps/cli/commands/project/commandConfigSecrets.ts +12 -31
- package/src/apps/cli/commands/project/commandDeletePods.ts +3 -5
- package/src/apps/cli/commands/project/commandDeleteProject.ts +1 -1
- package/src/apps/cli/commands/project/commandEnvVars.ts +1 -1
- package/src/apps/cli/commands/project/commandGetMyTotalWorktime.ts +2 -2
- package/src/apps/cli/commands/project/commandGetShell.ts +3 -5
- package/src/apps/cli/commands/project/commandGitlabCi.ts +2 -1
- package/src/apps/cli/commands/project/commandInitProject.old.ts +1 -1
- package/src/apps/cli/commands/project/commandListPods.ts +2 -2
- package/src/apps/cli/commands/project/commandMigrateHelm3.ts +4 -3
- package/src/apps/cli/commands/project/commandNamespace.ts +1 -1
- package/src/apps/cli/commands/project/commandOpenCostDashboard.ts +3 -3
- package/src/apps/cli/commands/project/commandOpenDashboard.ts +12 -32
- package/src/apps/cli/commands/project/commandOpenEnv.ts +1 -1
- package/src/apps/cli/commands/project/commandOpenGit.ts +3 -3
- package/src/apps/cli/commands/project/commandOpenGrafana.ts +3 -3
- package/src/apps/cli/commands/project/commandOpenGrafanaPod.ts +5 -7
- package/src/apps/cli/commands/project/commandOpenLogs.ts +4 -35
- package/src/apps/cli/commands/project/commandPauseProject.ts +1 -1
- package/src/apps/cli/commands/project/commandPortForward.ts +75 -34
- package/src/apps/cli/commands/project/commandSecretsClearBackups.ts +27 -0
- package/src/apps/cli/commands/project/commandSetup.ts +1 -1
- package/src/apps/cli/commands/project/commandTriggerCronjob.ts +3 -2
- package/src/apps/cli/commands/project/index.ts +4 -3
- package/src/apps/cli/commands/project/setup/index.ts +3 -1
- package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +23 -11
- package/src/apps/cli/commands/project/setup/setupCloudRun.ts +84 -0
- package/src/apps/cli/commands/project/setup/setupCloudSQL.ts +22 -0
- package/src/apps/cli/commands/project/setup/setupContext.ts +12 -2
- package/src/apps/cli/commands/project/setup/setupKubernetes.ts +34 -27
- package/src/apps/cli/commands/project/setup/setupTopic.ts +22 -0
- package/src/apps/cli/commands/project/utils/ensureNamespace.ts +4 -2
- package/src/apps/cli/commands/project/utils/showProjectBanner.ts +1 -1
- package/src/apps/cli/commands/theStuffThatReallyMatters/index.ts +2 -2
- package/src/apps/cli/config/writeConfig.ts +2 -2
- package/src/apps/cli/verify/index.ts +1 -1
- package/src/apps/cli/verify/migration/fromv2.ts +5 -7
- package/src/apps/cli/verify/migration/migrateSecrets.ts +9 -4
- package/src/apps/cli/verify/migration/oldGitlabCi.ts +2 -2
- package/src/catenv.ts +6 -3
- package/src/cli.ts +1 -7
- package/src/config/constants.ts +0 -2
- package/src/config/getProjectConfig.ts +14 -12
- package/src/config/parseChoice.ts +4 -0
- package/src/gcloud/artifactsRegistry.ts +16 -0
- package/src/gcloud/cloudRun/getCloudRunDomainSuffix.ts +35 -0
- package/src/gcloud/cloudRun/openCloudRunDashboards.ts +22 -0
- package/src/gcloud/enableServices.ts +14 -0
- package/src/gcloud/openDashboard.ts +19 -0
- package/src/gcloud/serviceAccounts.ts +101 -0
- package/src/kubernetes/index.ts +27 -0
- package/src/kubernetes/openKubernetesDashboards.ts +52 -0
- package/src/kubernetes/portForward.ts +15 -0
- package/src/types/child-process-promise.d.ts +36 -1
- package/src/utils/cluster.ts +3 -3
- package/src/utils/gitlab.ts +137 -26
- package/src/utils/passwordstore/index.ts +2 -30
- package/src/utils/{portForward.ts → portForwards.ts} +27 -22
- package/src/utils/projects/index.ts +3 -24
- package/dist/apps/cli/commands/project/commandCopyDB.js +0 -102
- package/dist/apps/cli/commands/project/commandCopyDB.js.map +0 -1
- package/dist/apps/cli/commands/shared/index.d.ts +0 -3
- package/dist/apps/cli/commands/shared/index.js.map +0 -1
- package/dist/utils/portForward.d.ts +0 -4
- package/dist/utils/portForward.js.map +0 -1
- package/src/apps/cli/commands/project/commandCopyDB.ts +0 -91
- package/src/apps/cli/commands/shared/index.ts +0 -36
|
@@ -1,17 +1,23 @@
|
|
|
1
|
+
import type { Context } from "@catladder/pipeline";
|
|
1
2
|
import { isOfDeployType } from "@catladder/pipeline";
|
|
2
3
|
import { spawn } from "child-process-promise";
|
|
3
4
|
import { writeFile } from "fs-extra";
|
|
4
5
|
import { withFile } from "tmp-promise";
|
|
5
|
-
import Vorpal from "vorpal";
|
|
6
|
+
import type Vorpal from "vorpal";
|
|
6
7
|
import {
|
|
7
8
|
getEnvVars,
|
|
8
9
|
getGitlabVar,
|
|
9
10
|
getPipelineContextByChoice,
|
|
10
|
-
getProjectConfig,
|
|
11
11
|
parseChoice,
|
|
12
12
|
} from "../../../../config/getProjectConfig";
|
|
13
13
|
import { envAndComponents } from "./utils/autocompletions";
|
|
14
14
|
|
|
15
|
+
type ProxyInfo = {
|
|
16
|
+
instanceName: string;
|
|
17
|
+
DB_NAME: string;
|
|
18
|
+
DB_PASSWORD: string;
|
|
19
|
+
DB_USER: string;
|
|
20
|
+
};
|
|
15
21
|
export default async (vorpal: Vorpal) =>
|
|
16
22
|
vorpal
|
|
17
23
|
.command("project-cloud-sql-proxy <envComponent>", "proxy to cloud sql db")
|
|
@@ -19,9 +25,26 @@ export default async (vorpal: Vorpal) =>
|
|
|
19
25
|
.action(async function ({ envComponent }) {
|
|
20
26
|
const { env, componentName } = parseChoice(envComponent);
|
|
21
27
|
|
|
22
|
-
const
|
|
23
|
-
|
|
28
|
+
const context = await getPipelineContextByChoice(env, componentName);
|
|
29
|
+
let proxyInfo: ProxyInfo;
|
|
30
|
+
|
|
31
|
+
if (env === "review") {
|
|
32
|
+
vorpal.log(
|
|
33
|
+
"⚠️ connection string does not include mr information on review environments"
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
if (isOfDeployType(context.componentConfig.deploy, "kubernetes")) {
|
|
37
|
+
proxyInfo = await getProxyInfoForKubernetes(context);
|
|
38
|
+
} else if (
|
|
39
|
+
isOfDeployType(context.componentConfig.deploy, "google-cloudrun")
|
|
40
|
+
) {
|
|
41
|
+
proxyInfo = await getProxyInfoForCloudRun(context);
|
|
42
|
+
} else {
|
|
43
|
+
throw new Error("unsupported environment");
|
|
44
|
+
}
|
|
24
45
|
|
|
46
|
+
// skynet-164509:europe-west6:pvl-cyclomania-review=tcp:5432
|
|
47
|
+
const { DB_PASSWORD, DB_NAME, DB_USER, instanceName } = proxyInfo;
|
|
25
48
|
const { localPort } = await this.prompt({
|
|
26
49
|
type: "number",
|
|
27
50
|
name: "localPort",
|
|
@@ -29,35 +52,16 @@ export default async (vorpal: Vorpal) =>
|
|
|
29
52
|
message: "Local port: ",
|
|
30
53
|
});
|
|
31
54
|
|
|
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
55
|
this.log("");
|
|
40
|
-
this.log(`postgres-PW: ${
|
|
56
|
+
this.log(`postgres-PW: ${DB_PASSWORD}`);
|
|
41
57
|
this.log("");
|
|
42
58
|
this.log(
|
|
43
|
-
`POSTGRESQL_URL=postgresql
|
|
59
|
+
`POSTGRESQL_URL=postgresql://${DB_USER}:${DB_PASSWORD}@localhost:${localPort}/${DB_NAME}?schema=public`
|
|
44
60
|
);
|
|
45
61
|
this.log("");
|
|
46
62
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const projectId =
|
|
50
|
-
values?.cloudsql?.projectId ||
|
|
51
|
-
context.componentConfig.deploy.cluster?.projectId;
|
|
52
|
-
|
|
53
|
-
const defaultInstanceId = `${config.customerName}-${config.appName}-${env}`;
|
|
54
|
-
const instanceId = values?.cloudsql?.instanceId || defaultInstanceId;
|
|
55
|
-
|
|
56
|
-
const defaultRegion = "europe-west6"; // currently hardcoded
|
|
57
|
-
const region = values?.cloudsql?.region || defaultRegion;
|
|
58
|
-
|
|
59
|
-
const instanceName = `${projectId}:${region}:${instanceId}=tcp:${localPort}`;
|
|
60
|
-
|
|
63
|
+
// legacy, some projects have the cloudsqlProxyCredentials in the secrets
|
|
64
|
+
// actually it works without, if the current local shell user has access to the db through google cloud
|
|
61
65
|
const cloudsqlProxyCredentials = await getGitlabVar(
|
|
62
66
|
this,
|
|
63
67
|
env,
|
|
@@ -65,20 +69,20 @@ export default async (vorpal: Vorpal) =>
|
|
|
65
69
|
"cloudsqlProxyCredentials"
|
|
66
70
|
);
|
|
67
71
|
|
|
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
72
|
await withFile(async ({ path: tmpFilePath }) => {
|
|
77
|
-
|
|
73
|
+
if (cloudsqlProxyCredentials) {
|
|
74
|
+
await writeFile(tmpFilePath, cloudsqlProxyCredentials);
|
|
75
|
+
}
|
|
78
76
|
|
|
79
77
|
await spawn(
|
|
80
78
|
"cloud_sql_proxy",
|
|
81
|
-
[
|
|
79
|
+
[
|
|
80
|
+
"-instances",
|
|
81
|
+
`${instanceName}=tcp:${localPort}`,
|
|
82
|
+
...(cloudsqlProxyCredentials
|
|
83
|
+
? ["-credential_file", tmpFilePath]
|
|
84
|
+
: []),
|
|
85
|
+
],
|
|
82
86
|
{
|
|
83
87
|
stdio: "inherit",
|
|
84
88
|
shell: true,
|
|
@@ -86,3 +90,72 @@ export default async (vorpal: Vorpal) =>
|
|
|
86
90
|
);
|
|
87
91
|
});
|
|
88
92
|
});
|
|
93
|
+
|
|
94
|
+
const getProxyInfoForKubernetes = async (
|
|
95
|
+
context: Context
|
|
96
|
+
): Promise<ProxyInfo> => {
|
|
97
|
+
if (!isOfDeployType(context.componentConfig.deploy, "kubernetes")) {
|
|
98
|
+
throw new Error("unsupported");
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const envVars = await getEnvVars(
|
|
102
|
+
this,
|
|
103
|
+
context.environment.shortName,
|
|
104
|
+
context.componentName
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const DB_PASSWORD = envVars?.DB_PASSWORD || envVars?.POSTGRESQL_PASSWORD;
|
|
108
|
+
|
|
109
|
+
const DB_NAME = context.environment.envVars.KUBE_APP_NAME;
|
|
110
|
+
|
|
111
|
+
const values = context.componentConfig.deploy.values;
|
|
112
|
+
|
|
113
|
+
const projectId =
|
|
114
|
+
values?.cloudsql?.projectId ||
|
|
115
|
+
context.componentConfig.deploy.cluster?.projectId;
|
|
116
|
+
|
|
117
|
+
const defaultInstanceId = `${context.fullConfig.customerName}-${context.fullConfig.appName}-${context.environment.shortName}`;
|
|
118
|
+
const instanceId = values?.cloudsql?.instanceId || defaultInstanceId;
|
|
119
|
+
|
|
120
|
+
const defaultRegion = "europe-west6"; // currently hardcoded
|
|
121
|
+
const region = values?.cloudsql?.region || defaultRegion;
|
|
122
|
+
|
|
123
|
+
const instanceName = `${projectId}:${region}:${instanceId}`;
|
|
124
|
+
|
|
125
|
+
return {
|
|
126
|
+
instanceName,
|
|
127
|
+
DB_PASSWORD,
|
|
128
|
+
DB_NAME,
|
|
129
|
+
DB_USER: "postgres",
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
const getProxyInfoForCloudRun = async (
|
|
134
|
+
context: Context
|
|
135
|
+
): Promise<ProxyInfo> => {
|
|
136
|
+
if (
|
|
137
|
+
!isOfDeployType(context.componentConfig.deploy, "google-cloudrun") ||
|
|
138
|
+
!context.componentConfig.deploy.cloudSql
|
|
139
|
+
) {
|
|
140
|
+
throw new Error("unsupported");
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const envVars = await getEnvVars(
|
|
144
|
+
this,
|
|
145
|
+
context.environment.shortName,
|
|
146
|
+
context.componentName
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
const DB_PASSWORD = envVars?.DB_PASSWORD;
|
|
150
|
+
const DB_USER = envVars?.DB_USER;
|
|
151
|
+
|
|
152
|
+
const DB_NAME = context.environment.envVars.DB_NAME;
|
|
153
|
+
|
|
154
|
+
return {
|
|
155
|
+
instanceName:
|
|
156
|
+
context.componentConfig.deploy.cloudSql.instanceConnectionName,
|
|
157
|
+
DB_PASSWORD,
|
|
158
|
+
DB_NAME,
|
|
159
|
+
DB_USER,
|
|
160
|
+
};
|
|
161
|
+
};
|
|
@@ -1,19 +1,18 @@
|
|
|
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
|
|
5
|
-
import
|
|
5
|
+
import type { CommandInstance } from "vorpal";
|
|
6
|
+
import type Vorpal from "vorpal";
|
|
6
7
|
import {
|
|
7
8
|
getAllComponentsWithAllEnvsHierarchical,
|
|
8
9
|
getEnvironment,
|
|
9
10
|
getEnvVars,
|
|
10
|
-
getPipelineContextByChoice,
|
|
11
11
|
getProjectComponents,
|
|
12
12
|
parseChoice,
|
|
13
13
|
} from "../../../../config/getProjectConfig";
|
|
14
14
|
import { editAsFile } from "../../../../utils/editAsFile";
|
|
15
15
|
import { upsertAllVariables } from "../../../../utils/gitlab";
|
|
16
|
-
import { hasBitwarden, readPass } from "../../../../utils/passwordstore";
|
|
17
16
|
import { delay } from "../../../../utils/promise";
|
|
18
17
|
import { allEnvsAndAllComponents } from "./utils/autocompletions";
|
|
19
18
|
|
|
@@ -45,6 +44,7 @@ const resolveJson = (v: Vars) =>
|
|
|
45
44
|
];
|
|
46
45
|
})
|
|
47
46
|
);
|
|
47
|
+
|
|
48
48
|
const getEnvVarsToEdit = async (
|
|
49
49
|
instance: CommandInstance,
|
|
50
50
|
env: string,
|
|
@@ -54,7 +54,13 @@ const getEnvVarsToEdit = async (
|
|
|
54
54
|
|
|
55
55
|
const allEnvVars = await getEnvVars(instance, env, componentName);
|
|
56
56
|
return Object.fromEntries(
|
|
57
|
-
secretEnvVarKeys.map((key) =>
|
|
57
|
+
secretEnvVarKeys.map((key) => {
|
|
58
|
+
const value = allEnvVars[key];
|
|
59
|
+
// due to some quirky way to resolve these variables, unset variables have the $CL_ prefix, so we remove thouse here
|
|
60
|
+
const variableIsNotSet =
|
|
61
|
+
value === "$" + getSecretVarName(env, componentName, key);
|
|
62
|
+
return [key, variableIsNotSet ? "🚨 FILL ME" : value];
|
|
63
|
+
})
|
|
58
64
|
);
|
|
59
65
|
};
|
|
60
66
|
const doItFor = async (
|
|
@@ -148,32 +154,7 @@ const doItFor = async (
|
|
|
148
154
|
env,
|
|
149
155
|
componentName
|
|
150
156
|
);
|
|
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
|
-
}
|
|
157
|
+
instance.log("");
|
|
177
158
|
instance.log("✅ " + env + ":" + componentName);
|
|
178
159
|
}
|
|
179
160
|
}
|
|
@@ -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,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/
|
|
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 { getProjectPodNames } 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";
|
|
@@ -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
|
|
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 "../../../../
|
|
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
|
-
|
|
47
|
-
|
|
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,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 {
|
|
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
|
|
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
|
|
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 {
|
|
7
|
-
import { openGoogleCloudKubernetesDashboard } from "
|
|
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
|
|
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
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
import Vorpal from "vorpal";
|
|
2
|
-
import {
|
|
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
|
|
11
|
+
await exec("npx git-open");
|
|
12
12
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import open from "open";
|
|
2
|
-
import {
|
|
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
|
|
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 {
|
|
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
|
|
36
|
+
await startKubePortForward(
|
|
39
37
|
"deployment/kubecost-cost-analyzer",
|
|
40
38
|
GRAFANA_PROXY_LOCAL_PORT,
|
|
41
39
|
GRAFANA_PROXY_TARGET_PORT,
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import Vorpal from "vorpal";
|
|
1
|
+
import type Vorpal from "vorpal";
|
|
2
2
|
import {
|
|
3
3
|
getPipelineContextByChoice,
|
|
4
4
|
parseChoice,
|
|
5
5
|
} from "../../../../config/getProjectConfig";
|
|
6
|
-
import {
|
|
7
|
-
import { getProjectNamespace } from "../../../../utils/projects";
|
|
8
|
-
import { getGoogleAuthUserNumber } from "../../utils/getGoogleAuthUserNumber";
|
|
9
|
-
import { openGoogleCloudLogs } from "../shared";
|
|
6
|
+
import { openGoogleCloudLogs } from "../../../../kubernetes/openKubernetesDashboards";
|
|
10
7
|
import { envAndComponents } from "./utils/autocompletions";
|
|
11
|
-
import ensureCluster from "./utils/ensureCluster";
|
|
12
8
|
|
|
13
9
|
export default async (vorpal: Vorpal) =>
|
|
14
10
|
vorpal
|
|
@@ -19,34 +15,7 @@ export default async (vorpal: Vorpal) =>
|
|
|
19
15
|
.autocomplete(await envAndComponents())
|
|
20
16
|
.action(async function ({ envComponent }) {
|
|
21
17
|
const { env, componentName } = parseChoice(envComponent);
|
|
22
|
-
const
|
|
23
|
-
env,
|
|
24
|
-
componentName
|
|
25
|
-
);
|
|
18
|
+
const context = await getPipelineContextByChoice(env, componentName);
|
|
26
19
|
|
|
27
|
-
|
|
28
|
-
!componentConfig.deploy ||
|
|
29
|
-
componentConfig.deploy.type !== "kubernetes"
|
|
30
|
-
) {
|
|
31
|
-
throw new Error(
|
|
32
|
-
"only kubernetes deployments are supported at the moment"
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
!componentConfig.deploy.cluster ||
|
|
38
|
-
componentConfig.deploy.cluster.type !== "gcloud"
|
|
39
|
-
) {
|
|
40
|
-
throw new Error("no gcloud custer configured");
|
|
41
|
-
}
|
|
42
|
-
// currently only supports kubernetes
|
|
43
|
-
const namespace = environment.envVars.KUBE_NAMESPACE;
|
|
44
|
-
|
|
45
|
-
const authGoogleNumber = await getGoogleAuthUserNumber.call(this, vorpal);
|
|
46
|
-
|
|
47
|
-
await openGoogleCloudLogs(
|
|
48
|
-
componentConfig.deploy.cluster,
|
|
49
|
-
namespace,
|
|
50
|
-
authGoogleNumber
|
|
51
|
-
);
|
|
20
|
+
await openGoogleCloudLogs(this, context);
|
|
52
21
|
});
|