CH-288 add support for RWX volumes - #862
Merged
Merged
Conversation
Member
|
This is going to be useful for neuroglass skeleton ingestion 👍 |
aranega
approved these changes
Aug 31, 2026
aranega
left a comment
Member
There was a problem hiding this comment.
@filippomc All looks good :) thanks a lot for the quick implementation!
aranega
approved these changes
Aug 31, 2026
aranega
left a comment
Member
There was a problem hiding this comment.
I reviewed the delta between the last version and my last acceptance, all looks good :)
Comment on lines
+21
to
+26
| import { | ||
| WriteFile200ResponseFromJSON, | ||
| WriteFile200ResponseToJSON, | ||
| WriteFileRequestFromJSON, | ||
| WriteFileRequestToJSON, | ||
| } from '../models/index'; |
| * Do not edit the class manually. | ||
| */ | ||
|
|
||
| import { mapValues } from '../runtime'; |
| * Do not edit the class manually. | ||
| */ | ||
|
|
||
| import { mapValues } from '../runtime'; |
| @@ -0,0 +1,113 @@ | |||
| from datetime import date, datetime # noqa: F401 | |||
| @@ -0,0 +1,113 @@ | |||
| from datetime import date, datetime # noqa: F401 | |||
|
|
|||
| from typing import List, Dict # noqa: F401 | |||
| @@ -0,0 +1,61 @@ | |||
| from datetime import date, datetime # noqa: F401 | |||
| @@ -0,0 +1,61 @@ | |||
| from datetime import date, datetime # noqa: F401 | |||
|
|
|||
| from typing import List, Dict # noqa: F401 | |||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes CH-288
Implemented solution
ReadWriteMany support at the application level, and a configurable storage class for every auto-created volume (
standardwas hardcoded in the templates).harness.deployment.volume.writeManyfalseharness.deployment.volume.storageClassstandardharness.database.storageClass-(default)nullomits itRecreatestrategy, and a statefulset keeps mounting the shared PVC instead of provisioning one per replica.volume_requires_affinityresolves ReadWriteMany from the application configuration, so a workflow mounting awriteManyapplication volume gets nousesvolumeaffinity, without needing the:rwxmarker (still honoured for claims no application declares).usenfs→ volumestorageClass→harness.deployment.storageClass→standardwhen the key is absent (values generated before this change render as today).usenfsis now legacy sugar forwriteMany+ the nfs provisioner class, and the nfs settings prevail:harness-deploymentwarns on collision (sets usenfs and storageClass efs-sc: the nfs server storage class prevails).Deployment update required (
alert:deployment): the database PVC previously emitted nostorageClassNameand now emitsstandard, which is immutable on an existing claim. Clusters whose default class isstandard(minikube, kind, GKE) are unaffected (no-op patch); on EKS/AKS setharness.database.storageClassto the cluster class or tonullbefore upgrading a release that already has a database volume, otherwisehelm upgradeis rejected. Same for flippingwriteManyor the storage class on a live volume: the claim must be recreated and the data is not migrated.How to test this PR
Manually, on an application with
harness.deployment.volume:writeMany: true→ the PVC isReadWriteManyand the Deployment has nostrategy: Recreateand noaffinity.storageClass: efs-scon the volume →storageClassName: efs-sc;harness.deployment.storageClass: nullwith no volume class → nostorageClassNameat all.usenfs: truetogether withstorageClass/writeMany: false→ the PVC gets the nfs class andReadWriteMany, andharness-deploymentlogs the collision warnings.harness.database.storageClass→standardby default on the database PVC,nullomits it.Sanity checks:
Breaking changes (select one):
breaking-changeand the migration procedure is well described abovePossible deployment updates issues (select one):
alert:deploymentbecause might need to delete stateful setsTest coverage (select one):
Documentation (select one):
Nice to have (if relevant):