* Add deployment mode to env shared with jobs * Add adaptive runners * Migrate postgres source to use adaptive runner * Add an array of specs in docker image spec definition * Add copyright * Parse docker image spec with specs list * Update spec yaml files * Pass in DEPLOYMENT_MODE to docker compose file * Revert "Parse docker image spec with specs list" This reverts commit8fe41dd3b7. * Revert changes in docker image spec * Read cloud specific spec files based on deployment mode * Revert "Update spec yaml files" This reverts commit059f326432. * Publish cloud spec file if necessary * Fix upload script * Move test files * Update docker compose file * Format code * Add comment about spec filename * Add unit tests * Remove redundant jdbc acceptance test When running `PostgresStrictEncryptJdbcSourceAcceptanceTest`, the `discover` method tests always fail because there are unexpected columns in the catalog: - `wakeup_at` - `last_visited_at` - `last_comment_at` These columns only exist in `PostgresJdbcSourceAcceptanceTest`. And this failure cannot be reproduced locally. The hypothesis is that when the JDBC unit tests are run on CI, they are run in parallel, and the same testcontainer is used for both tests. That's why the strict encrypt test can discover columns from the oridinary unit test. Given that the JDBC strict encrypt test is basically redundant, it is removed.
174 lines
6.8 KiB
YAML
174 lines
6.8 KiB
YAML
version: "3.7"
|
|
#https://github.com/compose-spec/compose-spec/blob/master/spec.md#using-extensions-as-fragments
|
|
x-logging: &default-logging
|
|
options:
|
|
max-size: "100m"
|
|
max-file: "5"
|
|
driver: json-file
|
|
services:
|
|
# hook in case we need to add init behavior
|
|
# every root service (no depends_on) should depend on init
|
|
init:
|
|
image: airbyte/init:${VERSION}
|
|
logging: *default-logging
|
|
container_name: init
|
|
command: /bin/sh -c "./scripts/create_mount_directories.sh /local_parent ${HACK_LOCAL_ROOT_PARENT} ${LOCAL_ROOT}"
|
|
environment:
|
|
- LOCAL_ROOT=${LOCAL_ROOT}
|
|
- HACK_LOCAL_ROOT_PARENT=${HACK_LOCAL_ROOT_PARENT}
|
|
volumes:
|
|
- ${HACK_LOCAL_ROOT_PARENT}:/local_parent
|
|
bootloader:
|
|
image: airbyte/bootloader:${VERSION}
|
|
logging: *default-logging
|
|
container_name: airbyte-bootloader
|
|
environment:
|
|
- AIRBYTE_VERSION=${VERSION}
|
|
- CONFIG_DATABASE_PASSWORD=${CONFIG_DATABASE_PASSWORD:-}
|
|
- CONFIG_DATABASE_URL=${CONFIG_DATABASE_URL:-}
|
|
- CONFIG_DATABASE_USER=${CONFIG_DATABASE_USER:-}
|
|
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- DATABASE_USER=${DATABASE_USER}
|
|
- LOG_LEVEL=${LOG_LEVEL}
|
|
- RUN_DATABASE_MIGRATION_ON_STARTUP=${RUN_DATABASE_MIGRATION_ON_STARTUP}
|
|
db:
|
|
image: airbyte/db:${VERSION}
|
|
logging: *default-logging
|
|
container_name: airbyte-db
|
|
restart: unless-stopped
|
|
environment:
|
|
- CONFIG_DATABASE_PASSWORD=${CONFIG_DATABASE_PASSWORD:-}
|
|
- CONFIG_DATABASE_URL=${CONFIG_DATABASE_URL:-}
|
|
- CONFIG_DATABASE_USER=${CONFIG_DATABASE_USER:-}
|
|
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- DATABASE_USER=${DATABASE_USER}
|
|
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
|
|
- POSTGRES_USER=${DATABASE_USER}
|
|
volumes:
|
|
- db:/var/lib/postgresql/data
|
|
worker:
|
|
image: airbyte/worker:${VERSION}
|
|
logging: *default-logging
|
|
container_name: airbyte-worker
|
|
restart: unless-stopped
|
|
environment:
|
|
- AIRBYTE_VERSION=${VERSION}
|
|
- AUTO_DISABLE_FAILING_CONNECTIONS=${AUTO_DISABLE_FAILING_CONNECTIONS}
|
|
- CONFIG_DATABASE_PASSWORD=${CONFIG_DATABASE_PASSWORD:-}
|
|
- CONFIG_DATABASE_URL=${CONFIG_DATABASE_URL:-}
|
|
- CONFIG_DATABASE_USER=${CONFIG_DATABASE_USER:-}
|
|
- CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION=${CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION:-}
|
|
- CONFIG_ROOT=${CONFIG_ROOT}
|
|
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- DATABASE_USER=${DATABASE_USER}
|
|
- DEPLOYMENT_MODE=${DEPLOYMENT_MODE}
|
|
- JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION=${JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION:-}
|
|
- JOB_MAIN_CONTAINER_CPU_LIMIT=${JOB_MAIN_CONTAINER_CPU_LIMIT}
|
|
- JOB_MAIN_CONTAINER_CPU_REQUEST=${JOB_MAIN_CONTAINER_CPU_REQUEST}
|
|
- JOB_MAIN_CONTAINER_MEMORY_LIMIT=${JOB_MAIN_CONTAINER_MEMORY_LIMIT}
|
|
- JOB_MAIN_CONTAINER_MEMORY_REQUEST=${JOB_MAIN_CONTAINER_MEMORY_REQUEST}
|
|
- LOCAL_DOCKER_MOUNT=${LOCAL_DOCKER_MOUNT}
|
|
- LOCAL_ROOT=${LOCAL_ROOT}
|
|
- LOG_LEVEL=${LOG_LEVEL}
|
|
- MAX_CHECK_WORKERS=${MAX_CHECK_WORKERS}
|
|
- MAX_DISCOVER_WORKERS=${MAX_DISCOVER_WORKERS}
|
|
- MAX_SPEC_WORKERS=${MAX_SPEC_WORKERS}
|
|
- MAX_SYNC_WORKERS=${MAX_SYNC_WORKERS}
|
|
- SECRET_PERSISTENCE=${SECRET_PERSISTENCE}
|
|
- SYNC_JOB_MAX_ATTEMPTS=${SYNC_JOB_MAX_ATTEMPTS}
|
|
- SYNC_JOB_MAX_TIMEOUT_DAYS=${SYNC_JOB_MAX_TIMEOUT_DAYS}
|
|
- TEMPORAL_HOST=${TEMPORAL_HOST}
|
|
- TRACKING_STRATEGY=${TRACKING_STRATEGY}
|
|
- WEBAPP_URL=${WEBAPP_URL}
|
|
- WORKER_ENVIRONMENT=${WORKER_ENVIRONMENT}
|
|
- WORKSPACE_DOCKER_MOUNT=${WORKSPACE_DOCKER_MOUNT}
|
|
- WORKSPACE_ROOT=${WORKSPACE_ROOT}
|
|
- METRIC_CLIENT=${METRIC_CLIENT}
|
|
- OTEL_COLLECTOR_ENDPOINT=${OTEL_COLLECTOR_ENDPOINT}
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- workspace:${WORKSPACE_ROOT}
|
|
- ${LOCAL_ROOT}:${LOCAL_ROOT}
|
|
server:
|
|
image: airbyte/server:${VERSION}
|
|
logging: *default-logging
|
|
container_name: airbyte-server
|
|
restart: unless-stopped
|
|
environment:
|
|
- AIRBYTE_ROLE=${AIRBYTE_ROLE:-}
|
|
- AIRBYTE_VERSION=${VERSION}
|
|
- CONFIG_DATABASE_PASSWORD=${CONFIG_DATABASE_PASSWORD:-}
|
|
- CONFIG_DATABASE_URL=${CONFIG_DATABASE_URL:-}
|
|
- CONFIG_DATABASE_USER=${CONFIG_DATABASE_USER:-}
|
|
- CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION=${CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION:-}
|
|
- CONFIG_ROOT=${CONFIG_ROOT}
|
|
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- DATABASE_USER=${DATABASE_USER}
|
|
- JOB_MAIN_CONTAINER_CPU_LIMIT=${JOB_MAIN_CONTAINER_CPU_LIMIT}
|
|
- JOB_MAIN_CONTAINER_CPU_REQUEST=${JOB_MAIN_CONTAINER_CPU_REQUEST}
|
|
- JOB_MAIN_CONTAINER_MEMORY_LIMIT=${JOB_MAIN_CONTAINER_MEMORY_LIMIT}
|
|
- JOB_MAIN_CONTAINER_MEMORY_REQUEST=${JOB_MAIN_CONTAINER_MEMORY_REQUEST}
|
|
- JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION=${JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION:-}
|
|
- LOG_LEVEL=${LOG_LEVEL}
|
|
- NEW_SCHEDULER=${NEW_SCHEDULER}
|
|
- SECRET_PERSISTENCE=${SECRET_PERSISTENCE}
|
|
- TEMPORAL_HOST=${TEMPORAL_HOST}
|
|
- TRACKING_STRATEGY=${TRACKING_STRATEGY}
|
|
- WEBAPP_URL=${WEBAPP_URL}
|
|
- WORKER_ENVIRONMENT=${WORKER_ENVIRONMENT}
|
|
- WORKSPACE_ROOT=${WORKSPACE_ROOT}
|
|
ports:
|
|
- 8001:8001
|
|
volumes:
|
|
- workspace:${WORKSPACE_ROOT}
|
|
- data:${CONFIG_ROOT}
|
|
- ${LOCAL_ROOT}:${LOCAL_ROOT}
|
|
webapp:
|
|
image: airbyte/webapp:${VERSION}
|
|
logging: *default-logging
|
|
container_name: airbyte-webapp
|
|
restart: unless-stopped
|
|
ports:
|
|
- 8000:80
|
|
environment:
|
|
- AIRBYTE_ROLE=${AIRBYTE_ROLE:-}
|
|
- AIRBYTE_VERSION=${VERSION}
|
|
- API_URL=${API_URL:-}
|
|
- FULLSTORY=${FULLSTORY:-}
|
|
- INTERNAL_API_HOST=${INTERNAL_API_HOST}
|
|
- IS_DEMO=${IS_DEMO:-}
|
|
- OPENREPLAY=${OPENREPLAY:-}
|
|
- PAPERCUPS_STORYTIME=${PAPERCUPS_STORYTIME:-}
|
|
- TRACKING_STRATEGY=${TRACKING_STRATEGY}
|
|
airbyte-temporal:
|
|
image: airbyte/temporal:${VERSION}
|
|
logging: *default-logging
|
|
container_name: airbyte-temporal
|
|
restart: unless-stopped
|
|
ports:
|
|
- 7233:7233
|
|
environment:
|
|
- DB=postgresql
|
|
- DB_PORT=${DATABASE_PORT}
|
|
- DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development.yaml
|
|
- LOG_LEVEL=${LOG_LEVEL}
|
|
- POSTGRES_PWD=${DATABASE_PASSWORD}
|
|
- POSTGRES_SEEDS=${DATABASE_HOST}
|
|
- POSTGRES_USER=${DATABASE_USER}
|
|
volumes:
|
|
- ./temporal/dynamicconfig:/etc/temporal/config/dynamicconfig
|
|
volumes:
|
|
workspace:
|
|
name: ${WORKSPACE_DOCKER_MOUNT}
|
|
# the data volume is only needed for backward compatibility; when users upgrade
|
|
# from an old Airbyte version that relies on file-based configs, the server needs
|
|
# to read this volume to copy their configs to the database
|
|
data:
|
|
name: ${DATA_DOCKER_MOUNT}
|
|
db:
|
|
name: ${DB_DOCKER_MOUNT}
|