-
Spike
-
Resolution: Done
-
Normal
-
None
-
builds-1.0
-
3
-
False
-
None
-
False
-
SECFLOWOTL-21 - Persistent Volumes for Shipwright Builds
-
Release Note Not Required
-
-
-
3
-
Pipeline Integrations #2260
Story (Required)
As a developer trying to improve the performance of my builds I want to use a persistent volume to cache dependencies between builds so less things are downloaded from the internet.
<Describes high level purpose and goal for this story. Answers the questions: Who is impacted, what is it and why do we need it? How does it improve the customer’s experience?>
Background (Required)
<Describes the context or background related to this story>
Builds currently need to download fresh copies of dependencies in each build (container image layers, .jar files, node_modules, etc.). We can speed this by using a persistent volume claim across builds.
Out of scope
<Defines what is not included in this story>
- s2i build strategy w/ cache
- buildpacks build strategy w/ cache
Approach (Required)
<Description of the general technical path on how to achieve the goal of the story. Include details like json schema, class definitions>
Spike - demo a Shipwright build where:
1. The buildah strategy is extended to declare a volume for container image layers: https://github.com/shipwright-io/build/blob/main/docs/buildstrategies.md#volumes-and-volumemounts
2. A PersistentVolumeClaim is created in a namespace (likely need 2-3Gi storage)
3. A Build is created which mounts the PersistentVolumeClaim https://github.com/shipwright-io/build/blob/main/docs/build.md#defining-volumes
4. Successive BuildRuns of the build in step 3. The first build should be slower than the second (and subsequent) builds.
Dependencies
<Describes what this story depends on. Dependent Stories and EPICs should be linked to the story.>
1. Shipwright support of PVC volumes in build strategies
Acceptance Criteria (Mandatory)
<Describe edge cases to consider when implementing the story and defining tests>
<Provides a required and minimum list of acceptance tests for this story. More is expected as the engineer implements this story>
- Video demo of using a PVC to cache dependencies in a build
- Submit follow up stories/tasks to support PVC volumes in our official build strategies.
INVEST Checklist
Dependencies identified
Blockers noted and expected delivery timelines set
Design is implementable
Acceptance criteria agreed upon
Story estimated
Legend
Unknown
Verified
Unsatisfied
Done Checklist
- Code is completed, reviewed, documented and checked in
- Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
- Continuous Delivery pipeline(s) is able to proceed with new code included
- Customer facing documentation, API docs etc. are produced/updated, reviewed and published
- Acceptance criteria are met