From dc6df69444ca8743908363f3340c1f7220700458 Mon Sep 17 00:00:00 2001 From: Irakli Tchitadze Date: Tue, 10 Oct 2023 19:14:46 -0400 Subject: [PATCH 1/2] Added support of optionally providing different captain base directory --- src/datastore/DataStore.ts | 8 +++++--- src/utils/CaptainConstants.ts | 8 ++++---- src/utils/CaptainInstaller.ts | 7 +++++++ src/utils/EnvVars.ts | 3 +++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/datastore/DataStore.ts b/src/datastore/DataStore.ts index 2c5fdba..f9b7203 100644 --- a/src/datastore/DataStore.ts +++ b/src/datastore/DataStore.ts @@ -35,9 +35,11 @@ const DEFAULT_NGINX_CAPTAIN_CONFIG = fs let DEFAULT_NGINX_CONFIG_FOR_APP_PATH = __dirname + '/../../template/server-block-conf.ejs' -if (fs.pathExistsSync('/captain/data/server-block-conf-override.ejs')) { - DEFAULT_NGINX_CONFIG_FOR_APP_PATH = - '/captain/data/server-block-conf-override.ejs' +const SERVER_BLOCK_CONF_OVERRIDE_PATH = + CaptainConstants.captainDataDirectory + '/server-block-conf-override.ejs' + +if (fs.pathExistsSync(SERVER_BLOCK_CONF_OVERRIDE_PATH)) { + DEFAULT_NGINX_CONFIG_FOR_APP_PATH = SERVER_BLOCK_CONF_OVERRIDE_PATH } const DEFAULT_NGINX_CONFIG_FOR_APP = fs diff --git a/src/utils/CaptainConstants.ts b/src/utils/CaptainConstants.ts index ba3abeb..12c976a 100644 --- a/src/utils/CaptainConstants.ts +++ b/src/utils/CaptainConstants.ts @@ -2,7 +2,7 @@ import fs = require('fs-extra') import path = require('path') import EnvVars from './EnvVars' -const CAPTAIN_BASE_DIRECTORY = '/captain' +const CAPTAIN_BASE_DIRECTORY = EnvVars.CAPTAIN_BASE_DIRECTORY ?? '/captain' const CAPTAIN_DATA_DIRECTORY = CAPTAIN_BASE_DIRECTORY + '/data' // data that sits here can be backed up const CAPTAIN_ROOT_DIRECTORY_TEMP = CAPTAIN_BASE_DIRECTORY + '/temp' const CAPTAIN_ROOT_DIRECTORY_GENERATED = CAPTAIN_BASE_DIRECTORY + '/generated' @@ -179,7 +179,7 @@ const data = { gitShaEnvVarKey: 'CAPROVER_GIT_COMMIT_SHA', } -function overrideFromFile(fileName: string) { +function overrideConfigFromFile(fileName: string) { const overridingValuesConfigs = fs.readJsonSync(fileName, { throws: false, }) @@ -198,9 +198,9 @@ function overrideFromFile(fileName: string) { } } -overrideFromFile(CONSTANT_FILE_OVERRIDE_BUILD) +overrideConfigFromFile(CONSTANT_FILE_OVERRIDE_BUILD) -overrideFromFile(CONSTANT_FILE_OVERRIDE_USER) +overrideConfigFromFile(CONSTANT_FILE_OVERRIDE_USER) if (data.isDebug) { const devDirectoryOnLocalMachine = fs diff --git a/src/utils/CaptainInstaller.ts b/src/utils/CaptainInstaller.ts index 6d89e1e..8381f3c 100644 --- a/src/utils/CaptainInstaller.ts +++ b/src/utils/CaptainInstaller.ts @@ -340,6 +340,13 @@ export function install() { }) } + if (EnvVar.CAPTAIN_BASE_DIRECTORY) { + env.push({ + key: EnvVar.keys.CAPTAIN_BASE_DIRECTORY, + value: EnvVar.CAPTAIN_BASE_DIRECTORY, + }) + } + const ports: IAppPort[] = [] let captainNameAndVersion = `${CaptainConstants.configs.publishedNameOnDockerHub}:${CaptainConstants.configs.version}` diff --git a/src/utils/EnvVars.ts b/src/utils/EnvVars.ts index 06e9f8d..c33d3dd 100644 --- a/src/utils/EnvVars.ts +++ b/src/utils/EnvVars.ts @@ -5,6 +5,7 @@ export default { DEFAULT_PASSWORD: 'DEFAULT_PASSWORD', IS_CAPTAIN_INSTANCE: 'IS_CAPTAIN_INSTANCE', DEMO_MODE_ADMIN_IP: 'DEMO_MODE_ADMIN_IP', + CAPTAIN_BASE_DIRECTORY: 'CAPTAIN_BASE_DIRECTORY', }, BY_PASS_PROXY_CHECK: process.env.BY_PASS_PROXY_CHECK, @@ -27,4 +28,6 @@ export default { CAPROVER_DISABLE_ANALYTICS: !!process.env.CAPROVER_DISABLE_ANALYTICS || !!process.env.DO_NOT_TRACK, + + CAPTAIN_BASE_DIRECTORY: process.env.CAPTAIN_BASE_DIRECTORY, } From 42d47a5b87773ff1cf0f3800b530314bd654a950 Mon Sep 17 00:00:00 2001 From: Irakli Tchitadze Date: Wed, 11 Oct 2023 13:17:36 -0400 Subject: [PATCH 2/2] Replacing double question mark with double pipe --- src/utils/CaptainConstants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/CaptainConstants.ts b/src/utils/CaptainConstants.ts index 12c976a..c365087 100644 --- a/src/utils/CaptainConstants.ts +++ b/src/utils/CaptainConstants.ts @@ -2,7 +2,7 @@ import fs = require('fs-extra') import path = require('path') import EnvVars from './EnvVars' -const CAPTAIN_BASE_DIRECTORY = EnvVars.CAPTAIN_BASE_DIRECTORY ?? '/captain' +const CAPTAIN_BASE_DIRECTORY = EnvVars.CAPTAIN_BASE_DIRECTORY || '/captain' const CAPTAIN_DATA_DIRECTORY = CAPTAIN_BASE_DIRECTORY + '/data' // data that sits here can be backed up const CAPTAIN_ROOT_DIRECTORY_TEMP = CAPTAIN_BASE_DIRECTORY + '/temp' const CAPTAIN_ROOT_DIRECTORY_GENERATED = CAPTAIN_BASE_DIRECTORY + '/generated'