-
Story
-
Resolution: Done
-
Undefined
-
None
-
8
-
False
-
False
-
SECFLOWOTL-21 - Persistent Volumes for Shipwright Builds
-
Undefined
-
-
Sprint 214, Sprint 216, Sprint 217, Sprint 218
User Story
As a build strategy author
I want to declare volumes that are used in my build steps
So that I can share information across build steps
As a developer
I want to use persistent volumes with my build strategies
So that I can cache information between build runs
Acceptance Criteria
- Strategy authors can declare volumes in their build strategies
- Builds use volumes if the build strategy supports it
- Developers can override the volume source if the build strategy supports it (ex - use PVCs)
- Samples are updated to no longer use the emptyDir approach (some samples are tested in CI, others aren't)
- CI testing verifies the following scenarios:
- BuildStrategy has a volume that can have an override (replace emptyDir with PVC)
- BuildStrategy has a volume that can't have an override (must use emptyDir)
Docs Impact
Upstream documentation only. We will need the following:
1. Release note announcing that the implicit creation of emptyDir volumes has been removed.
2. Update API godoc describing the new behavior.
3. Update build strategy and Build/BuildRun reference docs in GitHub describing the new API (with usage examples).
QE impact
None - upstream work only
PX Impact
None - upstream work only
Notes
There is a lot of interdependent work here that will need to land in one "big" PR. Ideas on how to ensure the PR is on track:
1. Check core implementation - works with unit tests
2. Check updates to samples to get e2e tests happy
3. Check updates to docs (in PR or in a separate PR)
4. Check updates to samples not tested in CI (separate PR)
SHIP-0022 documents the implementation ... as of Nov 3, PR https://github.com/shipwright-io/community/pull/23 is tagged for merge, but giving some tagged community members 1 more day for comments before merging
Open Questions
- "The volumes will declare a default source for the underlying filesystem" ..... would like to clarify what is meant / intended there exactly? Build strategy declares the default volume source for the PodSepc, for example declare the volume to use `emtpyDir` by default. The intent is that in a Build or BuildRun the volume source can be changed to use another volume source type, such as a PersistentVolumeClaim.
- Implicit emptyDir volumes - this capability was deprecated in v0.7.0 (or v0.8.0), was removed.