Merge pull request #8392 from Budibase/fix/startup

Startup fixes + remove bucket default names
This commit is contained in:
Rory Powell 2022-10-25 14:17:55 +01:00 committed by GitHub
commit 332f0eb52f
8 changed files with 25 additions and 12 deletions

View File

@ -79,11 +79,11 @@ spec:
- name: MINIO_URL
value: {{ .Values.services.objectStore.url }}
- name: PLUGIN_BUCKET_NAME
value: {{ .Values.services.objectStore.pluginBucketName | default "plugins" | quote }}
value: {{ .Values.services.objectStore.pluginBucketName | quote }}
- name: APPS_BUCKET_NAME
value: {{ .Values.services.objectStore.appsBucketName | default "apps" | quote }}
value: {{ .Values.services.objectStore.appsBucketName | quote }}
- name: GLOBAL_CLOUD_BUCKET_NAME
value: {{ .Values.services.objectStore.globalBucketName | default "global" | quote }}
value: {{ .Values.services.objectStore.globalBucketName | quote }}
- name: PORT
value: {{ .Values.services.apps.port | quote }}
{{ if .Values.services.worker.publicApiRateLimitPerSecond }}

View File

@ -78,11 +78,11 @@ spec:
- name: MINIO_URL
value: {{ .Values.services.objectStore.url }}
- name: PLUGIN_BUCKET_NAME
value: {{ .Values.services.objectStore.pluginBucketName | default "plugins" | quote }}
value: {{ .Values.services.objectStore.pluginBucketName | quote }}
- name: APPS_BUCKET_NAME
value: {{ .Values.services.objectStore.appsBucketName | default "apps" | quote }}
value: {{ .Values.services.objectStore.appsBucketName | quote }}
- name: GLOBAL_CLOUD_BUCKET_NAME
value: {{ .Values.services.objectStore.globalBucketName | default "global" | quote }}
value: {{ .Values.services.objectStore.globalBucketName | quote }}
- name: PORT
value: {{ .Values.services.worker.port | quote }}
- name: MULTI_TENANCY

View File

@ -55,7 +55,12 @@ export const doWithLock = async (opts: LockOptions, task: any) => {
let lock
try {
// aquire lock
let name: string = `${tenancy.getTenantId()}_${opts.name}`
let name: string
if (opts.systemLock) {
name = opts.name
} else {
name = `${tenancy.getTenantId()}_${opts.name}`
}
if (opts.nameSuffix) {
name = name + `_${opts.nameSuffix}`
}

View File

@ -122,7 +122,6 @@ module.exports = server.listen(env.PORT || 0, async () => {
eventEmitter.emitPort(env.PORT)
fileSystem.init()
await redis.init()
await initPro()
// run migrations on startup if not done via http
// not recommended in a clustered environment
@ -180,8 +179,11 @@ module.exports = server.listen(env.PORT || 0, async () => {
// check for version updates
await installation.checkInstallVersion()
// done last - this will never complete
await automations.init()
// done last - these will never complete
let promises = []
promises.push(automations.init())
promises.push(initPro())
await Promise.all(promises)
})
const shutdown = () => {

View File

@ -116,8 +116,8 @@ exports.externalTrigger = async function (
exports.rebootTrigger = async () => {
// reboot cron option is only available on the main thread at
// startup and only usable in self host
if (env.isInThread() || !env.SELF_HOSTED) {
// startup and only usable in self host and single tenant environments
if (env.isInThread() || !env.SELF_HOSTED || env.MULTI_TENANCY) {
return
}
// iterate through all production apps, find the reboot crons

View File

@ -97,6 +97,7 @@ const migrateWithLock = async (options?: MigrationOptions) => {
type: LockType.TRY_ONCE,
name: LockName.MIGRATIONS,
ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes
systemLock: true,
},
async () => {
await migrations.runMigrations(MIGRATIONS, options)

View File

@ -28,4 +28,8 @@ export interface LockOptions {
* The suffix to add to the lock name for additional uniqueness
*/
nameSuffix?: string
/**
* This is a system-wide lock - don't use tenancy in lock key
*/
systemLock?: boolean
}

View File

@ -53,6 +53,7 @@ const migrateWithLock = async (options?: MigrationOptions) => {
type: LockType.TRY_ONCE,
name: LockName.MIGRATIONS,
ttl: 1000 * 60 * 15, // auto expire the migration lock after 15 minutes
systemLock: true,
},
async () => {
await migrations.runMigrations(MIGRATIONS, options)