Snapshot Backup Encryption
This PR adds the following functionality
- [ ] Break backup file blocks based on tenant boundaries
- [ ] Encrypt and decrypt the file blocks based on the correct encryption domain
- [ ] Connect with the EKP to fetch proper encryption keys during encryption/decryption
- [ ] Utilize TenantEntryCache to validate tenant prefixes so backup encryption can be done when tenant mode is disabled
Correctness tested using the following:
- [ ] 100k runs of all Backup workloads
- [ ] New workload that bulk loads several KV pairs across 3 tenants and proceeds with backup and restore
TODOs:
- [ ] Improve simulation testing (perhaps create a random number of tenants to load data onto)
- [ ] Currently we cannot use the TenantEntryCache when running regular Backup workloads since the cache will attempt to refresh on every miss (expensive as many backup tests don't use tenants) causing timeouts
Code-Reviewer Section
The general pull request guidelines can be found here.
Please check each of the following things and check all boxes before accepting a PR.
- [ ] The PR has a description, explaining both the problem and the solution.
- [ ] The description mentions which forms of testing were done and the testing seems reasonable.
- [ ] Every function/class/actor that was touched is reasonably well documented.
For Release-Branches
If this PR is made against a release-branch, please also check the following:
- [ ] This change/bugfix is a cherry-pick from the next younger branch (younger
release-branchormainif this is the youngest branch) - [ ] There is a good reason why this PR needs to go into a release branch and this reason is documented (either in the description above or in a linked GitHub issue)
Doxense CI Report for Windows 10
- Commit ID: c25e52daf153dd050b0fde7c98ed3dc20ab02bcf
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: c25e52daf153dd050b0fde7c98ed3dc20ab02bcf
- Duration 0:45:45
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: c25e52daf153dd050b0fde7c98ed3dc20ab02bcf
- Duration 1:09:02
- Result: :x: FAILED
- Error:
Error while executing command: if python3 -m joshua.joshua list --stopped | grep ${ENSEMBLE_ID} | grep -q 'pass=10[0-9][0-9][0-9]'; then echo PASS; else echo FAIL && exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 3db499d2f55e8d44722c07f4bc59ead632c80ff9
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: 3db499d2f55e8d44722c07f4bc59ead632c80ff9
- Duration 0:46:07
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 3db499d2f55e8d44722c07f4bc59ead632c80ff9
- Duration 1:13:06
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: c25e52daf153dd050b0fde7c98ed3dc20ab02bcf
- Duration 3:56:30
- Result: :x: FAILED
- Error:
Error while executing command: if $(grep -q -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log); then echo "TESTS FAILED SEE THESE LOGS:"; echo ; grep -l -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log; exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 3db499d2f55e8d44722c07f4bc59ead632c80ff9
- Duration 4:16:30
- Result: :x: FAILED
- Error:
Build has timed out. - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 574e306fc8555056956af0386ce18805b335a390
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 574e306fc8555056956af0386ce18805b335a390
- Duration 1:09:06
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 574e306fc8555056956af0386ce18805b335a390
- Duration 4:16:56
- Result: :x: FAILED
- Error:
Build has timed out. - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 27a22706f2c424a45d60fae070f23b3184041794
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 27a22706f2c424a45d60fae070f23b3184041794
- Duration 1:07:39
- Result: :x: FAILED
- Error:
Error while executing command: if python3 -m joshua.joshua list --stopped | grep ${ENSEMBLE_ID} | grep -q 'pass=10[0-9][0-9][0-9]'; then echo PASS; else echo FAIL && exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 8f5f4459e8fe3b1ed214b0dd29ff65b7c6125830
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 8f5f4459e8fe3b1ed214b0dd29ff65b7c6125830
- Duration 1:13:45
- Result: :x: FAILED
- Error:
Error while executing command: if python3 -m joshua.joshua list --stopped | grep ${ENSEMBLE_ID} | grep -q 'pass=10[0-9][0-9][0-9]'; then echo PASS; else echo FAIL && exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 92c2083a84bf71c9e928f4c96caeb5604b9ce699
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: 92c2083a84bf71c9e928f4c96caeb5604b9ce699
- Duration 0:46:25
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 92c2083a84bf71c9e928f4c96caeb5604b9ce699
- Duration 1:08:39
- Result: :x: FAILED
- Error:
Error while executing command: if python3 -m joshua.joshua list --stopped | grep ${ENSEMBLE_ID} | grep -q 'pass=10[0-9][0-9][0-9]'; then echo PASS; else echo FAIL && exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 27a22706f2c424a45d60fae070f23b3184041794
- Duration 4:16:35
- Result: :x: FAILED
- Error:
Build has timed out. - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 8f5f4459e8fe3b1ed214b0dd29ff65b7c6125830
- Duration 4:16:41
- Result: :x: FAILED
- Error:
Error while executing command: if $(grep -q -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log); then echo "TESTS FAILED SEE THESE LOGS:"; echo ; grep -l -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log; exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: 202b93578562217592299e17416d5d6262e65765
- Duration 0:46:59
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 92c2083a84bf71c9e928f4c96caeb5604b9ce699
- Duration 3:44:13
- Result: :x: FAILED
- Error:
Error while executing command: if $(grep -q -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log); then echo "TESTS FAILED SEE THESE LOGS:"; echo ; grep -l -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log; exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 202b93578562217592299e17416d5d6262e65765
- Duration 1:16:32
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 202b93578562217592299e17416d5d6262e65765
- Duration 2:45:43
- Result: :x: FAILED
- Error:
Error while executing command: if $(grep -q -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log); then echo "TESTS FAILED SEE THESE LOGS:"; echo ; grep -l -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log; exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 202b93578562217592299e17416d5d6262e65765
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: de0554cf91733a55f9a28482ed3c90a63ade4cb6
- Duration 0:50:15
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: de0554cf91733a55f9a28482ed3c90a63ade4cb6
- Duration 1:03:11
- Result: :x: FAILED
- Error:
Error while executing command: if python3 -m joshua.joshua list --stopped | grep ${ENSEMBLE_ID} | grep -q 'pass=10[0-9][0-9][0-9]'; then echo PASS; else echo FAIL && exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: a817794897f9ba746aa5e61a3a1c9f875a31ed8b
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: a817794897f9ba746aa5e61a3a1c9f875a31ed8b
- Duration 0:57:36
- Result: :x: FAILED
- Error:
Error while executing command: if python3 -m joshua.joshua list --stopped | grep ${ENSEMBLE_ID} | grep -q 'pass=10[0-9][0-9][0-9]'; then echo PASS; else echo FAIL && exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: de0554cf91733a55f9a28482ed3c90a63ade4cb6
- Duration 2:45:39
- Result: :x: FAILED
- Error:
Error while executing command: if $(grep -q -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log); then echo "TESTS FAILED SEE THESE LOGS:"; echo ; grep -l -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log; exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)