Bug 1560659

Summary: [3.9] Binary build with --from-file not working
Product: OpenShift Container Platform Reporter: Ben Parees <bparees>
Component: BuildAssignee: Ben Parees <bparees>
Status: CLOSED ERRATA QA Contact: Wenjing Zheng <wzheng>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 3.9.0CC: aos-bugs, bparees, vwalek, wzheng
Target Milestone: ---   
Target Release: 3.9.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: Build pods use multiple containers. Binary builds need to specify which container to stream content into, and for custom builds the name of the container is different from non-custom builds. Consequence: When streaming binary content into a custom build, the expected container (git-clone) does not exist and the build fails. Fix: The logic for streaming binary content into a custom build pod will be changed to reference the correct container name (custom-build) Result: Binary content will successfully stream into the custom build container.
Story Points: ---
Clone Of: 1560608 Environment:
Last Closed: 2018-05-17 06:43:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1560608, 1560661    
Bug Blocks:    

Comment 1 Ben Parees 2018-03-26 17:52:54 UTC
PR: https://github.com/openshift/ose/pull/1162

Comment 3 Wenjing Zheng 2018-04-17 08:59:00 UTC
Have tested with ocp v3.9.22, met below error when do binary build for custom strategy:
$ oc start-build ruby-sample-build --from-file=ruby-hello-world.zip --follow --wait  --loglevel=5
Uploading file "ruby-hello-world.zip" as binary input for the build ...
build "ruby-sample-build-7" started
Could not access source url: 
F0417 16:58:01.171596   32348 helpers.go:119] error: the build wzheng2/ruby-sample-build-7 status is "Failed"
oc get builds -n wzheng2
NAME                  TYPE      FROM          STATUS                        STARTED             DURATION
ruby-sample-build-2   Custom    Binary        Failed (GenericBuildFailed)   About an hour ago   15s
ruby-sample-build-3   Custom    Binary        Failed (GenericBuildFailed)   About an hour ago   5s

Comment 4 Ben Parees 2018-04-17 14:07:55 UTC
Wenjing, what image did you use as your custom builder image?  

There is no source url because it's a binary build, so the logic in our sample custom builder which tries to access the source url will fail:  
https://github.com/openshift/origin/blob/master/images/builder/docker/custom-docker-builder/build.sh#L33

To do a binary build w/ a custom builder image, you need your custom builder's entrypoint script to do a "tar -xf -" to extract the incoming binary content (and then whatever logic you want to process the content).  You can't use the sample custom builder image.  I'm pretty sure we don't have any existing tests for this scenario.

Comment 5 Wenjing Zheng 2018-04-18 09:37:45 UTC
OK, I will build a custom builder image to verify this bug. Thx for the info!

Comment 6 Wenjing Zheng 2018-04-19 07:03:25 UTC
Verified with below steps on v3.9.22
1. Edit custom builder image Dockerfile like below:
#CMD ["/tmp/build.sh"]
ENTRYPOINT tar -xf -
2. docker build . -t custom-builder
3. Create a custom build with above customized builder image
4. git clone https://github.com/openshift/ruby-hello-world; tar -cf ruby-hello-world.tar.gz ruby-hello-world
5. $ oc start-build ruby-sample-build --from-file=ruby-hello-world.tar.gz --follow --wait  --loglevel=5
Uploading file "ruby-hello-world.tar.gz" as binary input for the build ...
build "ruby-sample-build-5" started


build "ruby-sample-build-5" will go completed at last.

Comment 8 Wenjing Zheng 2018-04-20 01:43:19 UTC
Per comment #6, have verified this bug.

Comment 11 errata-xmlrpc 2018-05-17 06:43:34 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:1566