kubernetes / kubernetes/release

Reproducible builds for OpenBuildService

Open
#3,170 4 comments 0 reactions 0 assignees View on GitHub
area/release-eng kind/feature lifecycle/frozen priority/important-longterm sig/release
Dominant language
Go
Stars
504
Forks
556
Avg merge
18h 43m
Merged PRs (30d)
33

Description

Two invocations of `krel obs specs` command with the same parameters are going to provide different tarballs (i.e. with tarballs with different hashes). If we would push these tarballs to OBS, it would trigger the build process two times with different package revisions, even though it's building the same package and version.

OBS can detect this and avoid running the build process the second time if tarballs are identical (i.e. hashes are identical), but as that's not the case for us, it would trigger the build process two times. We should look into feasibility of having reproducible `krel obs specs` specs and tarballs to avoid this.

/sig release
/area release-eng
/kind feature
/priority important-longterm

Contributor guide

Open the contributing guide

Research direction

Start by reproducing two `krel obs specs` invocations with identical parameters and compare the resulting tarball hashes. Investigate which generated specs or tarball contents vary, then define reproducibility criteria that allow OBS to recognize identical packages. Done means repeated invocations produce identical tarballs and avoid duplicate OBS builds.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
build-system, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.