[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: imageChange build trigger's and the internal registry



+++ Ben Parees [18/02/15 18:47 -0500]:

----- Original Message -----
From: "Brenton Leanhardt" <bleanhar redhat com>
To: "Ben Parees" <bparees redhat com>
Cc: "Openshift Dev" <dev lists openshift redhat com>
Sent: Wednesday, February 18, 2015 6:42:46 PM
Subject: Re: imageChange build trigger's and the internal registry

+++ Ben Parees [18/02/15 18:13 -0500]:
>
>----- Original Message -----
>> From: "Brenton Leanhardt" <bleanhar redhat com>
>> To: "Ben Parees" <bparees redhat com>
>> Cc: "Openshift Dev" <dev lists openshift redhat com>
>> Sent: Wednesday, February 18, 2015 5:54:01 PM
>> Subject: Re: imageChange build trigger's and the internal registry
>>
>> +++ Ben Parees [18/02/15 16:43 -0500]:
>> >
>> >----- Original Message -----
>> >> From: "Brenton Leanhardt" <bleanhar redhat com>
>> >> To: "Ben Parees" <bparees redhat com>
>> >> Cc: "Openshift Dev" <dev lists openshift redhat com>
>> >> Sent: Wednesday, February 18, 2015 4:32:13 PM
>> >> Subject: Re: imageChange build trigger's and the internal registry
>> >>
>> >> +++ Brenton Leanhardt [18/02/15 16:22 -0500]:
>> >> >+++ Ben Parees [18/02/15 16:01 -0500]:
>> >> >>The lack of a BaseImage on your BuildConfig is part(all?) of the
>> >> >>problem.
>> >> >>the BaseImage field on a DockerBuildStrategy has to match to the
>> >> >>"image"
>> >> >>field on the image change trigger, and will be replaced with the pull
>> >> >>spec
>> >> >>computed from the imageRepo.
>> >> >
>> >> >I've attached my build config.  I _think_ I have the BaseImage wired
>> >> >up correctly but it's still not working.
>> >>
>> >> I see the FROM line being replaced with the BaseImage:
>> >> https://github.com/openshift/origin/blob/master/pkg/build/builder/docker.go#L157
>> >>
>> >> How is it supposed to know what registry to pull from though?
>> >
>> >that's all supposed to be ImageRepository magic...   by default it
>> >assumes
>> >the local docker-registry service i believe.  Otherwise you can specify
>> >the
>> >repository in the ImageRepo definition.
>>
>> I looked through the ImageChangeController code and I confirmed that
>> the build is being created correctly:
>>
>>  17:23:44.456478   55989 generate.go:34] Substituting
>>  172.30.17.215:5001/ose3/ose-base:211c76c5ba1506641425d5bfd56adb12f672cbf7203bf33b9ea5560b06f0d028
>>  for ose3/ose-base
>>
>> I can even 'docker pull' that image on my Node.  I'm confused I'm not
>> seeing that image url in my build log when it outputs the FROM line.
>> I'll keep digging in to this tomorrow.
>
>when you get a chance run "osc get build -n <namespace> <buildid> -o json"
>
>you should see the BaseImage field containing the substituted value, it
>would be good to confirm.

Yeah, I checked that too.  It has the correct 172.30.17.215:5001 url
in there.

hm, so the dockerfile isn't being rewritten correctly.  Any chance you have an old origin-docker-builder image that might be missing that logic?

As best I can tell my images are correct.  The docker-build image I'm running
was build from the Origin v0.3.1 tag.  Here's some interesting details:

1) You can see it's trying "FROM ose3/ose-base" which will obviously not work.
It did however use /tmp/docker-build257371041/images/ose/Dockerfile.

# osc build-logs
ddfe2250-b832-11e4-8ba2-fa163e2d6f31
2015-02-19T12:29:08.685088258Z Cloning into
'/tmp/docker-build257371041'...
2015-02-19T12:29:48.575781232Z Switched to a new branch 'osebuild'
2015-02-19T12:29:48.575858910Z Branch osebuild set up to track remote
branch osebuild from origin.
2015-02-19T12:29:48.577731042Z I0219 07:29:48.576760       1
tar.go:133] Adding to tar:
/tmp/docker-build257371041/images/ose/Dockerfile as Dockerfile
2015-02-19T12:29:48.577731042Z I0219 07:29:48.577027       1
tar.go:133] Adding to tar:
/tmp/docker-build257371041/images/ose/bin/.gitignore as bin/.gitignore
2015-02-19T12:29:48.669443494Z Step 0 : FROM ose3/ose-base
2015-02-19T12:29:48.669443494Z Pulling repository ose3/ose-base
2015-02-19T12:29:49.061959041Z 2015/02/19 07:29:49 Build error: Error:
image ose3/ose-base not found
2015-02-19T12:32:00.613154279Z Cloning into
'/tmp/docker-build339170468'...


2) If I check the json for the build I can see it has the correct baseImage.  I also saw the corresponding log entry in journalctl:

Feb 19 07:28:53 bleanhar-v3-02-17-master.os1.phx2.redhat.com openshift[55989]:
I0219 07:28:53.956463   55989 generate.go:34] Substituting
172.30.17.215:5001/ose3/ose-base:7880560543d799a0d9c4bf1e84a9fb869893d6edc1719bb9ea43af3fbe792756
for ose3/ose-base


# osc get -o json build ddfe2250-b832-11e4-8ba2-fa163e2d6f31
{ "kind": "Build",
   "apiVersion": "v1beta1",
   "metadata": {
       "name": "ddfe2250-b832-11e4-8ba2-fa163e2d6f31",
       "namespace": "ose3",
       "selfLink": "/osapi/v1beta1/builds/ddfe2250-b832-11e4-8ba2-fa163e2d6f31?namespace=ose3",
       "uid": "ddfe22b4-b832-11e4-8ba2-fa163e2d6f31",
       "resourceVersion": "9702",
       "creationTimestamp": "2015-02-19T07:28:54-05:00",
       "labels": {
           "buildconfig": "ose"
       }
   },
   "parameters": {
       "source": {
           "type": "Git",
           "git": {
               "uri": "http://<scrubbed>/git/users/bleanhar/ose",
               "ref": "osebuild"
           }
       },
       "strategy": {
           "type": "Docker",
           "dockerStrategy": {
               "contextDir": "images/ose",
               "noCache": true,
               "baseImage": "172.30.17.215:5001/ose3/ose-base:7880560543d799a0d9c4bf1e84a9fb869893d6edc1719bb9ea43af3fbe792756"
           }
       },
       "output": {
           "to": {
               "kind": "ImageRepository",
               "name": "ose"
           }
       }
   },
   "status": "Failed",
   "podName": "build-ddfe2250-b832-11e4-8ba2-fa163e2d6f31"

3) If I cat out the Dockerfile from inside the image I can see OpenShift is
indeed writing the ENV vars to it.  Somehow the FROM line isn't being replaced
though:

-bash-4.2# cat /tmp/docker-build257371041/images/ose/Dockerfile
#
# This is the official OpenShift Origin image. It has as its entrypoint the OpenShift
# all-in-one binary.
#
# The standard name for this image is openshift3_beta/ose
#
FROM ose3/ose-base

RUN yum install -y openshift && \
   yum clean all

RUN ln -s /usr/bin/openshift /usr/bin/openshift-deploy && \
   ln -s /usr/bin/openshift /usr/bin/openshift-experimental && \
   ln -s /usr/bin/openshift /usr/bin/openshift-docker-build && \
   ln -s /usr/bin/openshift /usr/bin/openshift-sti-build && \
   ln -s /usr/bin/openshift /usr/bin/openshift-router

ENV HOME /root
WORKDIR /var/lib/openshift
ENTRYPOINT ["/usr/bin/openshift"]
ENV OPENSHIFT_BUILD_REFERENCE osebuild
ENV OPENSHIFT_BUILD_NAME ddfe2250-b832-11e4-8ba2-fa163e2d6f31
ENV OPENSHIFT_BUILD_NAMESPACE ose3
ENV OPENSHIFT_BUILD_SOURCE http://<scrubbed>/git/users/bleanhar/ose




if you're in a position to do so, you might run hack/build-images.sh on your host because we currently are working through some issues w/ not always getting the right images pushed to dockerhub.  it's possible what's out there isn't correct.



>
>>
>> >
>> >
>> >>
>> >> >
>> >> >>
>> >> >>
>> >> >>Ben Parees | OpenShift
>> >> >>
>> >> >>----- Original Message -----
>> >> >>>From: "Brenton Leanhardt" <bleanhar redhat com>
>> >> >>>To: "Clayton Coleman" <ccoleman redhat com>
>> >> >>>Cc: "Openshift Dev" <dev lists openshift redhat com>
>> >> >>>Sent: Wednesday, February 18, 2015 3:35:56 PM
>> >> >>>Subject: Re: imageChange build trigger's and the internal registry
>> >> >>>
>> >> >>>+++ Clayton Coleman [18/02/15 15:30 -0500]:
>> >> >>>>Can you paste your build config?
>> >> >>>
>> >> >>>It was mostly created with 'ex generate' and I made some minor
>> >> >>>tweaks.
>> >> >>>Below the only changes I made were to remove the git url hostname:
>> >> >>>
>> >> >>># osc describe bc ose-base
>> >> >>>Name:                   ose-base
>> >> >>>Annotations:            <none>
>> >> >>>Created:                2015-02-18 15:03:39 -0500 EST
>> >> >>>Strategy:               Docker
>> >> >>>No Cache:               yes
>> >> >>>BaseImage:              <none>
>> >> >>>Source Type:            Git
>> >> >>>URL:
>> >> >>>http://<snipped>/git/users/bleanhar/ose
>> >> >>>Ref:                    osebuild
>> >> >>>Output to:              ose-base
>> >> >>>Output Spec:            <none>
>> >> >>>Webhook Github:
>> >> >>>localhost/osapi/v1beta1/buildConfigHooks/ose-base/DfI4Ka2eL5cwpZ-cus6A/github
>> >> >>>Webhook Generic:
>> >> >>>localhost/osapi/v1beta1/buildConfigHooks/ose-base/ydpu3GA0PGqFoG5a1Rqb/generic
>> >> >>>
>> >> >>># osc describe bc ose
>> >> >>>Name:                           ose
>> >> >>>Annotations:                    <none>
>> >> >>>Created:                        2015-02-18 15:04:05 -0500 EST
>> >> >>>Strategy:                       Docker
>> >> >>>No Cache:                       yes
>> >> >>>BaseImage:                      <none>
>> >> >>>Source Type:                    Git
>> >> >>>URL:
>> >> >>>http://<snipped>/git/users/bleanhar/ose
>> >> >>>Ref:                            osebuild
>> >> >>>Output to:                      ose
>> >> >>>Output Spec:                    <none>
>> >> >>>Webhook Generic:
>> >> >>>localhost/osapi/v1beta1/buildConfigHooks/ose/ydpu3GA0PGqFoG5a1Rqb/generic
>> >> >>>Webhook Github:
>> >> >>>localhost/osapi/v1beta1/buildConfigHooks/ose/DfI4Ka2eL5cwpZ-cus6A/github
>> >> >>>Image Repository Trigger:       ose-base
>> >> >>>- Tag:                          latest
>> >> >>>- Image:                        ose3/ose-base
>> >> >>>- LastTriggeredImageID:
>> >> >>>  0975d5a7c29c921838fcc56dd154b94dc895b79c8417f720d818767652dbf779
>> >> >>>
>> >> >>>>
>> >> >>>>
>> >> >>>>> On Feb 18, 2015, at 2:45 PM, Brenton Leanhardt
>> >> >>>>> <bleanhar redhat com>
>> >> >>>>> wrote:
>> >> >>>>>
>> >> >>>>> I have a working imageChange build trigger.  However, it seems
>> >> >>>>> like
>> >> >>>>> the resulting build is trying to pull from the docker hub:
>> >> >>>>>
>> >> >>>>> Build logs:
>> >> >>>>> 2015-02-18T19:35:59.534994177Z Step 0 : FROM ose3/ose-base
>> >> >>>>> 2015-02-18T19:35:59.534994177Z Pulling repository ose3/ose-base
>> >> >>>>> 2015-02-18T19:36:00.022455304Z 2015/02/18 14:36:00 Build error:
>> >> >>>>> Error:
>> >> >>>>> image ose3/ose-base not found
>> >> >>>>>
>> >> >>>>> Curling my registry directly shows the image is there:
>> >> >>>>>
>> >> >>>>> curl
>> >> >>>>> http://172.30.17.215:5001/v1/repositories/ose3/ose-base/tags/latest
>> >> >>>>> "8a864801852bcee8d120b4fe815b78cb41ba3632ffaa0edd0dd213558464f60b
>> >> >>>>>
>> >> >>>>> How is the resulting build supposed to find that image?
>> >> >>>>>
>> >> >>>>> --Brenton
>> >> >>>>>
>> >> >>>>> _______________________________________________
>> >> >>>>> dev mailing list
>> >> >>>>> dev lists openshift redhat com
>> >> >>>>> http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>> >> >>>
>> >> >>>_______________________________________________
>> >> >>>dev mailing list
>> >> >>>dev lists openshift redhat com
>> >> >>>http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>> >> >>>
>> >>
>> >>
>> >> >_______________________________________________
>> >> >dev mailing list
>> >> >dev lists openshift redhat com
>> >> >http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>> >>
>> >>
>>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]