diff --git a/README.rst b/README.rst index e805aa8..bb83e79 100644 --- a/README.rst +++ b/README.rst @@ -237,6 +237,8 @@ Postgresql/Superset settings - ``CAIRN_RUN_POSTGRESQL`` (default: ``true``): set to ``false`` to run your own Postgresql cluster separately from Cairn. Postgresql is the database that stores all data related to Superset, which is the Cairn frontend. - ``CAIRN_SUPERSET_LANGUAGE_CODE`` (default: ``"{{ LANGUAGE_CODE[:2] }}"``): 2-letter code of the default language for the Superset frontend. View the list of all supported languages `here `__. When different than "en", users will have the opportunity to switch from English to this language via a flag icon in the top-right corner. - ``CAIRN_SUPERSET_DOCKER_IMAGE`` (default: ``"{{ DOCKER_REGISTRY }}overhangio/cairn-superset:{{ CAIRN_VERSION }}"``): name of the Docker image that runs Postgresql. +- ``CAIRN_POSTGRESQL_HOST`` (default: ``"cairn-postgresql"``): Host address of the Postgresql database. +- ``CAIRN_POSTGRESQL_PORT`` (default: ``5432``): Postgresql port. - ``CAIRN_POSTGRESQL_DATABASE`` (default: ``"superset"``): name of the Postgresql database. - ``CAIRN_POSTGRESQL_USERNAME`` (default: ``"superset"``): Postgresql username. - ``CAIRN_POSTGRESQL_PASSWORD`` (default: ``"{{ 20|random_string }}"``): Postgresql password. diff --git a/changelog.d/20250314_131458_danyal.faheem_fix_external_postgres_dependency.md b/changelog.d/20250314_131458_danyal.faheem_fix_external_postgres_dependency.md new file mode 100644 index 0000000..66e5f3e --- /dev/null +++ b/changelog.d/20250314_131458_danyal.faheem_fix_external_postgres_dependency.md @@ -0,0 +1,3 @@ +- [Bugfix] Do not add cairn-postgresql as a dependency when CAIRN_RUN_POSTGRESQL is false. (by @Danyal-Faheem) +- [Bugfix] Add missing CAIRN_POSTGRESQL_HOST and CAIRN_POSTGRESQL_PORT settings to allow usage with external postgresql dbs. (by @Danyal-Faheem) +- [Bugfix] Do not manage cairn-clickhouse permissions CAIRN_RUN_CLICKHOUSE is false. (by @Danyal-Faheem) \ No newline at end of file diff --git a/tutorcairn/patches/local-docker-compose-jobs-services b/tutorcairn/patches/local-docker-compose-jobs-services index 407fe30..78fd5b7 100644 --- a/tutorcairn/patches/local-docker-compose-jobs-services +++ b/tutorcairn/patches/local-docker-compose-jobs-services @@ -23,7 +23,7 @@ cairn-superset-job: disable: true depends_on: {% if RUN_REDIS %}- redis{% endif %} - - cairn-postgresql + {% if CAIRN_RUN_POSTGRESQL %}- cairn-postgresql{% endif %} cairn-openedx-job: image: {{ DOCKER_IMAGE_OPENEDX }} environment: diff --git a/tutorcairn/patches/local-docker-compose-permissions-command b/tutorcairn/patches/local-docker-compose-permissions-command index e2443a0..14629aa 100644 --- a/tutorcairn/patches/local-docker-compose-permissions-command +++ b/tutorcairn/patches/local-docker-compose-permissions-command @@ -1,2 +1,2 @@ -setowner 1000 /data/cairn-clickhouse +{% if CAIRN_RUN_CLICKHOUSE %}setowner 1000 /data/cairn-clickhouse{% endif %} {% if CAIRN_RUN_POSTGRESQL %}setowner 70 /data/cairn-postgresql{% endif %} diff --git a/tutorcairn/patches/local-docker-compose-permissions-volumes b/tutorcairn/patches/local-docker-compose-permissions-volumes index 5a5f485..3f64dfc 100644 --- a/tutorcairn/patches/local-docker-compose-permissions-volumes +++ b/tutorcairn/patches/local-docker-compose-permissions-volumes @@ -1,2 +1,2 @@ -- ../../data/cairn/clickhouse:/data/cairn-clickhouse +{% if CAIRN_RUN_CLICKHOUSE %}- ../../data/cairn/clickhouse:/data/cairn-clickhouse{% endif %} {% if CAIRN_RUN_POSTGRESQL %}- ../../data/cairn/postgresql:/data/cairn-postgresql{% endif %} diff --git a/tutorcairn/patches/local-docker-compose-services b/tutorcairn/patches/local-docker-compose-services index 4e83ae1..5dc4493 100644 --- a/tutorcairn/patches/local-docker-compose-services +++ b/tutorcairn/patches/local-docker-compose-services @@ -42,7 +42,7 @@ cairn-superset: restart: unless-stopped depends_on: {% if RUN_REDIS %}- redis{% endif %} - - cairn-postgresql + {% if CAIRN_RUN_POSTGRESQL %}- cairn-postgresql{% endif %} cairn-superset-worker: image: {{ CAIRN_SUPERSET_DOCKER_IMAGE }} volumes: @@ -56,7 +56,7 @@ cairn-superset-worker: disable: true depends_on: {% if RUN_REDIS %}- redis{% endif %} - - cairn-postgresql + {% if CAIRN_RUN_POSTGRESQL %}- cairn-postgresql{% endif %} cairn-superset-worker-beat: image: {{ CAIRN_SUPERSET_DOCKER_IMAGE }} volumes: @@ -70,7 +70,7 @@ cairn-superset-worker-beat: disable: true depends_on: {% if RUN_REDIS %}- redis{% endif %} - - cairn-postgresql + {% if CAIRN_RUN_POSTGRESQL %}- cairn-postgresql{% endif %} {% if CAIRN_RUN_POSTGRESQL %} cairn-postgresql: image: docker.io/postgres:9.6-alpine diff --git a/tutorcairn/plugin.py b/tutorcairn/plugin.py index ab4af53..ee86673 100644 --- a/tutorcairn/plugin.py +++ b/tutorcairn/plugin.py @@ -34,6 +34,8 @@ config: t.Dict[str, t.Dict[str, t.Any]] = { "CLICKHOUSE_USERNAME": "openedx", # Superset/Postgresql "RUN_POSTGRESQL": True, + "POSTGRESQL_HOST": "cairn-postgresql", + "POSTGRESQL_PORT": "5432", "POSTGRESQL_DATABASE": "superset", "POSTGRESQL_USERNAME": "superset", "SUPERSET_DOCKER_IMAGE": "{{ DOCKER_REGISTRY }}overhangio/cairn-superset:{{ CAIRN_VERSION }}", diff --git a/tutorcairn/templates/cairn/apps/superset/superset_config.py b/tutorcairn/templates/cairn/apps/superset/superset_config.py index 27e4df0..b895542 100644 --- a/tutorcairn/templates/cairn/apps/superset/superset_config.py +++ b/tutorcairn/templates/cairn/apps/superset/superset_config.py @@ -11,7 +11,7 @@ from superset.cairn import sso as cairn_sso # https://superset.apache.org/docs/installation/configuring-superset SECRET_KEY = "{{ CAIRN_SUPERSET_SECRET_KEY }}" -SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://{{ CAIRN_POSTGRESQL_USERNAME }}:{{ CAIRN_POSTGRESQL_PASSWORD }}@cairn-postgresql/{{ CAIRN_POSTGRESQL_DATABASE }}" +SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://{{ CAIRN_POSTGRESQL_USERNAME }}:{{ CAIRN_POSTGRESQL_PASSWORD }}@{{ CAIRN_POSTGRESQL_HOST }}:{{ CAIRN_POSTGRESQL_PORT }}/{{ CAIRN_POSTGRESQL_DATABASE }}" # Caddy is running behind a proxy: Superset needs to handle x-forwarded-* headers # https://flask.palletsprojects.com/en/latest/deploying/proxy_fix/