-
Notifications
You must be signed in to change notification settings - Fork 638
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(docker): read only root filesystem support #11877
Conversation
Test Results 997 files ± 0 997 suites ±0 1h 42m 43s ⏱️ - 8m 30s Results for commit 6a876ba. ± Comparison against base commit ae6dbfc. This pull request removes 389 and adds 644 tests. Note that renamed tests count towards both.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! The main change I can see in k8s is that instead of mounting /tmp
to the overlay filesystem, it's now mounted in its own isolated filesystem.
I started a benchmark, though I don't really expect any performance difference, but just to be safe 👍
SetupDeployed to measurement-4311871032 camunda-platform:
zeebe:
image:
repository: gcr.io/zeebe-io/zeebe
tag: meg-11876-read-only-fs-benchmark-6a876ba
zeebe-gateway:
image:
repository: gcr.io/zeebe-io/zeebe
tag: meg-11876-read-only-fs-benchmark-6a876ba
global:
image:
tag: meg-11876-read-only-fs-benchmark-6a876ba Measurement beforeProcess Instance Execution Time: p99=2.389 p90=0.815 p50=0.226 Chaos injectionDeployed chaos network-latency-5 Measurement afterProcess Instance Execution Time: p99=3.756 p90=2.136 p50=0.824 DetailsSee https://github.com/camunda/zeebe/actions/runs/4311871032 |
bors r+ |
Build succeeded: |
Successfully created backport PR for |
Successfully created backport PR for |
Description
This declares
/tmp
as a VOLUME in the Dockerfile which makes sure this path is always backed by a volume. As of now spring(tomcat), rocksDb and zeebe itself (hot backup compression) write to/tmp
. Given that the hot backup could potentially write larger chunks of data to it I generally think a volume is a reasonable default.Given that now all directories written to are declared as volumes a read only root filesystem can be enabled without any further setup needed. A test is added to ensure this works going forward.
I would go for backporting this to previous stable versions for alignment and ease of use.
I also verified it works on k8s
Which previously failed with write permission errors.
Related issues
closes #11876
Not all items need to be done depending on the issue and the pull request.
Code changes:
backport stable/1.3
) to the PR, in case that fails you need to create backports manually.Testing: