Skip to content

RAG could't start with the enabled readOnlyRootFilesystem: true #177

Description

@Shearwater1978

Name and Version

ai-dial-rag 0.42.0

What steps will reproduce the bug?

  1. Add this section in your values.yaml
    containerSecurityContext: readOnlyRootFilesystem: true
  2. Apply this changes

What is the expected behavior?

I expect the application to start and, during operation, to not use a read-only file system but instead utilize the /tmp directory, which is writable.

What do you see instead?

  1. I see that the application cannot start in Kubernetes.
    NAME READY STATUS RESTARTS AGE
    dial-rag-6b588cb8c4-lhbns 0/1 Error 1 (11s ago) 16s
  2. In the Pod I see this errors:
    2026-07-09 05:14:15,347 INFO [aidial_rag.log_config] [log_config.py:41] [trace_id=0 span_id=0 resource.service.name=dial-rag trace_sampled=False] - Log config: {"log_level":"INFO","log_level_override":{}} Traceback (most recent call last): File "/opt/venv/bin/uvicorn", line 8, in <module> sys.exit(main()) ^^^^^^ File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/uvicorn/main.py", line 410, in main run( File "/opt/venv/lib/python3.11/site-packages/uvicorn/main.py", line 578, in run server.run() File "/opt/venv/lib/python3.11/site-packages/uvicorn/server.py", line 61, in run return asyncio.run(self.serve(sockets=sockets)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/asyncio/runners.py", line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/uvicorn/server.py", line 68, in serve config.load() File "/opt/venv/lib/python3.11/site-packages/uvicorn/config.py", line 473, in load self.loaded_app = import_from_string(self.app) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/uvicorn/importer.py", line 21, in import_from_string module = importlib.import_module(module_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1204, in _gcd_import File "<frozen importlib._bootstrap>", line 1176, in _find_and_load File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/aidial_rag/main.py", line 12, in <module> from aidial_rag.app import create_app File "/aidial_rag/app.py", line 14, in <module> from langchain.schema import BaseRetriever, Document File "/opt/venv/lib/python3.11/site-packages/langchain/schema/__init__.py", line 22, in <module> from langchain_core.output_parsers import ( File "<frozen importlib._bootstrap>", line 1229, in _handle_fromlist File "/opt/venv/lib/python3.11/site-packages/langchain_core/output_parsers/__init__.py", line 92, in __getattr__ result = import_attr(attr_name, module_name, __spec__.parent) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/langchain_core/_import_utils.py", line 36, in import_attr module = import_module(f".{module_name}", package=package) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/langchain_core/output_parsers/base.py", line 18, in <module> from langchain_core.language_models import LanguageModelOutput File "<frozen importlib._bootstrap>", line 1229, in _handle_fromlist File "/opt/venv/lib/python3.11/site-packages/langchain_core/language_models/__init__.py", line 112, in __getattr__ result = import_attr(attr_name, module_name, __spec__.parent) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/langchain_core/_import_utils.py", line 36, in import_attr module = import_module(f".{module_name}", package=package) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/langchain_core/language_models/base.py", line 44, in <module> from transformers import GPT2TokenizerFast # type: ignore[import-not-found] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/transformers/__init__.py", line 27, in <module> from . import dependency_versions_check File "/opt/venv/lib/python3.11/site-packages/transformers/dependency_versions_check.py", line 16, in <module> from .utils.versions import require_version, require_version_core File "/opt/venv/lib/python3.11/site-packages/transformers/utils/__init__.py", line 24, in <module> from .args_doc import ( File "/opt/venv/lib/python3.11/site-packages/transformers/utils/args_doc.py", line 30, in <module> from .generic import ModelOutput File "/opt/venv/lib/python3.11/site-packages/transformers/utils/generic.py", line 46, in <module> import torch # noqa: F401 ^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/torch/__init__.py", line 2161, in <module> from torch import _VF as _VF, functional as functional # usort: skip ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/torch/functional.py", line 8, in <module> import torch.nn.functional as F File "/opt/venv/lib/python3.11/site-packages/torch/nn/__init__.py", line 8, in <module> from torch.nn.modules import * # usort: skip # noqa: F403 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/torch/nn/modules/__init__.py", line 1, in <module> from .module import Module # usort: skip ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/torch/nn/modules/module.py", line 17, in <module> from torch.utils._python_dispatch import is_traceable_wrapper_subclass File "/opt/venv/lib/python3.11/site-packages/torch/utils/__init__.py", line 8, in <module> from torch.utils import ( File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/__init__.py", line 1, in <module> from torch.utils.data.dataloader import ( File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 24, in <module> import torch.utils.data.graph_settings File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/graph_settings.py", line 8, in <module> from torch.utils.data.datapipes.iter.sharding import ( File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/datapipes/__init__.py", line 1, in <module> from torch.utils.data.datapipes import dataframe as dataframe, iter as iter, map as map File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/datapipes/dataframe/__init__.py", line 1, in <module> from torch.utils.data.datapipes.dataframe.dataframes import ( File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/datapipes/dataframe/dataframes.py", line 4, in <module> from torch.utils.data.datapipes._decorator import functional_datapipe File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/datapipes/_decorator.py", line 7, in <module> from torch.utils.data.datapipes.datapipe import IterDataPipe, MapDataPipe File "/opt/venv/lib/python3.11/site-packages/torch/utils/data/datapipes/datapipe.py", line 17, in <module> dill = import_dill() ^^^^^^^^^^^^^ File "/opt/venv/lib/python3.11/site-packages/torch/utils/_import_utils.py", line 31, in import_dill import dill File "/opt/venv/lib/python3.11/site-packages/dill/__init__.py", line 33, in <module> from .session import ( File "/opt/venv/lib/python3.11/site-packages/dill/session.py", line 36, in <module> TEMPDIR = pathlib.PurePath(tempfile.gettempdir()) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/tempfile.py", line 316, in gettempdir return _os.fsdecode(_gettempdir()) ^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/tempfile.py", line 309, in _gettempdir tempdir = _get_default_tempdir() ^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/tempfile.py", line 224, in _get_default_tempdir raise FileNotFoundError(_errno.ENOENT, FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions