docker addon: env var can be stored in the db

This commit is contained in:
Girish Ramakrishnan
2024-03-01 10:31:41 +01:00
parent 09ca67f408
commit b6162a3bef
+22 -12
View File
@@ -170,11 +170,11 @@ const ADDONS = {
clear: NOOP,
},
docker: {
setup: NOOP,
teardown: NOOP,
setup: setupDocker,
teardown: teardownDocker,
backup: NOOP,
restore: NOOP,
getDynamicEnvironment: getDynamicEnvironmentDocker,
getDynamicEnvironment: setupDocker, // can be removed in later release
clear: NOOP,
},
tls: {
@@ -823,8 +823,8 @@ async function getEnvironment(app) {
let env = {};
result.forEach(e => { env[e.name] = e.value; });
// get dynamic environment configs overwriting static ones
for (let addon in app.manifest.addons) {
// get environment configs which are dynamic e.g generated based on dashboard domain and are not stored in db
for (let addon in (app.manifest.addons || {})) {
const configs = await ADDONS[addon].getDynamicEnvironment(app, {});
if (configs) env = { ...env, ...configs };
}
@@ -1715,6 +1715,23 @@ async function teardownProxyAuth(app, options) {
await addonConfigs.unset(app.id, 'proxyauth');
}
async function setupDocker(app, options) {
assert.strictEqual(typeof app, 'object');
assert.strictEqual(typeof options, 'object');
debug('Setting up docker');
const env = [ { name: 'CLOUDRON_DOCKER_HOST', value: `tcp://172.18.0.1:${constants.DOCKER_PROXY_PORT}` } ];
await addonConfigs.set(app.id, 'docker', env);
}
async function teardownDocker(app, options) {
assert.strictEqual(typeof app, 'object');
assert.strictEqual(typeof options, 'object');
await addonConfigs.unset(app.id, 'docker');
}
async function startRedis(existingInfra) {
assert.strictEqual(typeof existingInfra, 'object');
@@ -1865,13 +1882,6 @@ async function restoreRedis(app, options) {
await pipeFileToRequest(dumpPath('redis', app.id), `http://${result.ip}:3000/restore?access_token=${result.token}`);
}
async function getDynamicEnvironmentDocker(app, options) {
assert.strictEqual(typeof app, 'object');
assert.strictEqual(typeof options, 'object');
return { CLOUDRON_DOCKER_HOST: `tcp://172.18.0.1:${constants.DOCKER_PROXY_PORT}` };
}
async function setupTls(app, options) {
assert.strictEqual(typeof app, 'object');
assert.strictEqual(typeof options, 'object');