Merge pull request #13999 from Budibase/update-docker-compose-for-sqs

Release SQS for self-host users (single image, docker compose, Kubernetes)
This commit is contained in:
Sam Rose 2024-10-15 10:08:01 +01:00 committed by GitHub
commit b1fa4a2e8d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 39 additions and 39 deletions

View File

@ -42,14 +42,12 @@ spec:
{{ else }} {{ else }}
value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }} value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }}
{{ end }} {{ end }}
{{ if .Values.globals.sqs.enabled }}
- name: COUCH_DB_SQL_URL - name: COUCH_DB_SQL_URL
{{ if .Values.globals.sqs.url }} {{ if .Values.globals.sqs.url }}
value: {{ .Values.globals.sqs.url }} value: {{ .Values.globals.sqs.url | quote }}
{{ else }} {{ else }}
value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.globals.sqs.port }} value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.globals.sqs.port }}
{{ end }} {{ end }}
{{ end }}
{{ if .Values.services.couchdb.enabled }} {{ if .Values.services.couchdb.enabled }}
- name: COUCH_DB_USER - name: COUCH_DB_USER
valueFrom: valueFrom:

View File

@ -43,6 +43,12 @@ spec:
{{ else }} {{ else }}
value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }} value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }}
{{ end }} {{ end }}
- name: COUCH_DB_SQL_URL
{{ if .Values.globals.sqs.url }}
value: {{ .Values.globals.sqs.url | quote }}
{{ else }}
value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.globals.sqs.port }}
{{ end }}
{{ if .Values.services.couchdb.enabled }} {{ if .Values.services.couchdb.enabled }}
- name: COUCH_DB_USER - name: COUCH_DB_USER
valueFrom: valueFrom:

View File

@ -56,14 +56,12 @@ spec:
{{ else }} {{ else }}
value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }} value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }}
{{ end }} {{ end }}
{{ if .Values.globals.sqs.enabled }}
- name: COUCH_DB_SQL_URL - name: COUCH_DB_SQL_URL
{{ if .Values.globals.sqs.url }} {{ if .Values.globals.sqs.url }}
value: {{ .Values.globals.sqs.url }} value: {{ .Values.globals.sqs.url | quote }}
{{ else }} {{ else }}
value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.globals.sqs.port }} value: http://{{ .Release.Name }}-svc-couchdb:{{ .Values.globals.sqs.port }}
{{ end }} {{ end }}
{{ end }}
- name: API_ENCRYPTION_KEY - name: API_ENCRYPTION_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View File

@ -139,9 +139,6 @@ globals:
password: "" password: ""
sqs: sqs:
# -- Whether to use the CouchDB "structured query service" or not. This is disabled by
# default for now, but will become the default in a future release.
enabled: false
# @ignore # @ignore
url: "" url: ""
# @ignore # @ignore

View File

@ -5,7 +5,7 @@ version: "3"
services: services:
app-service: app-service:
restart: unless-stopped restart: unless-stopped
image: budibase.docker.scarf.sh/budibase/apps image: budibase/apps
container_name: bbapps container_name: bbapps
environment: environment:
SELF_HOSTED: 1 SELF_HOSTED: 1
@ -35,7 +35,7 @@ services:
worker-service: worker-service:
restart: unless-stopped restart: unless-stopped
image: budibase.docker.scarf.sh/budibase/worker image: budibase/worker
container_name: bbworker container_name: bbworker
environment: environment:
SELF_HOSTED: 1 SELF_HOSTED: 1
@ -97,7 +97,7 @@ services:
couchdb-service: couchdb-service:
restart: unless-stopped restart: unless-stopped
image: budibase/couchdb image: budibase/couchdb:v3.3.3-sqs-v2.1.1
environment: environment:
- COUCHDB_PASSWORD=${COUCH_DB_PASSWORD} - COUCHDB_PASSWORD=${COUCH_DB_PASSWORD}
- COUCHDB_USER=${COUCH_DB_USER} - COUCHDB_USER=${COUCH_DB_USER}

View File

@ -269,7 +269,7 @@ export class FlagSet<V extends Flag<any>, T extends { [key: string]: V }> {
export const flags = new FlagSet({ export const flags = new FlagSet({
DEFAULT_VALUES: Flag.boolean(env.isDev()), DEFAULT_VALUES: Flag.boolean(env.isDev()),
AUTOMATION_BRANCHING: Flag.boolean(env.isDev()), AUTOMATION_BRANCHING: Flag.boolean(env.isDev()),
SQS: Flag.boolean(env.isDev()), SQS: Flag.boolean(true),
[FeatureFlag.AI_CUSTOM_CONFIGS]: Flag.boolean(env.isDev()), [FeatureFlag.AI_CUSTOM_CONFIGS]: Flag.boolean(env.isDev()),
[FeatureFlag.ENRICHED_RELATIONSHIPS]: Flag.boolean(env.isDev()), [FeatureFlag.ENRICHED_RELATIONSHIPS]: Flag.boolean(env.isDev()),
[FeatureFlag.TABLES_DEFAULT_ADMIN]: Flag.boolean(env.isDev()), [FeatureFlag.TABLES_DEFAULT_ADMIN]: Flag.boolean(env.isDev()),

View File

@ -10,6 +10,7 @@ const schema = {
TEST_BOOLEAN: Flag.boolean(false), TEST_BOOLEAN: Flag.boolean(false),
TEST_STRING: Flag.string("default value"), TEST_STRING: Flag.string("default value"),
TEST_NUMBER: Flag.number(0), TEST_NUMBER: Flag.number(0),
TEST_BOOLEAN_DEFAULT_TRUE: Flag.boolean(true),
} }
const flags = new FlagSet(schema) const flags = new FlagSet(schema)
@ -123,6 +124,11 @@ describe("feature flags", () => {
}, },
expected: flags.defaults(), expected: flags.defaults(),
}, },
{
it: "should be possible to override a default true flag to false",
environmentFlags: "default:!TEST_BOOLEAN_DEFAULT_TRUE",
expected: { TEST_BOOLEAN_DEFAULT_TRUE: false },
},
])( ])(
"$it", "$it",
async ({ async ({

View File

@ -2,36 +2,31 @@
export let isMigrationDone export let isMigrationDone
export let onMigrationDone export let onMigrationDone
export let timeoutSeconds = 60 // 1 minute export let timeoutSeconds = 60 // 1 minute
export let minTimeSeconds = 3
const loadTime = Date.now()
const intervalMs = 1000
let timedOut = false let timedOut = false
let secondsWaited = 0
async function checkMigrationsFinished() { async function checkMigrationsFinished() {
setTimeout(async () => { let totalWaitMs = 0
// eslint-disable-next-line no-constant-condition
while (true) {
const waitForMs = 5000 + Math.random() * 5000
await new Promise(resolve => setTimeout(resolve, waitForMs))
totalWaitMs += waitForMs
const isMigrated = await isMigrationDone() const isMigrated = await isMigrationDone()
if (isMigrated) {
const timeoutMs = timeoutSeconds * 1000
if (!isMigrated || secondsWaited <= minTimeSeconds) {
if (loadTime + timeoutMs > Date.now()) {
secondsWaited += 1
return checkMigrationsFinished()
}
return migrationTimeout()
}
onMigrationDone() onMigrationDone()
}, intervalMs) return
}
if (totalWaitMs > timeoutSeconds * 1000) {
timedOut = true
return
}
}
} }
checkMigrationsFinished() checkMigrationsFinished()
function migrationTimeout() {
timedOut = true
}
</script> </script>
<div class="loading" class:timeout={timedOut}> <div class="loading" class:timeout={timedOut}>