Ok. Out of curiosity, is there a way to add an arbitrary secret to SA and
mount it along with other secrets? Builder token seems to be mounted with
permissions that would allow me to retrieve it:

sh-4.2# ls -lH /var/run/secrets/kubernetes.io/serviceaccount/token
-rw-r--r--. 1 root 1000730000 897 Oct 13 11:46 /var/run/secrets/
kubernetes.io/serviceaccount/token
sh-4.2#

Thanks!

On Mon, Oct 12, 2020 at 11:39 AM Ben Parees <bpar...@redhat.com> wrote:

>
>
> On Mon, Oct 12, 2020 at 7:34 AM Russ Krichevskiy <
> russ.krichevs...@gmail.com> wrote:
>
>> Hello, I would like to retrieve secret value while running a script in
>> post-commit build hook. The end-goal here is to provide credentials to
>> command line utility during post-commit without exposing them in the build
>> log and not baking them into the output image. The secret is set as
>> described here:
>> https://docs.openshift.com/container-platform/4.5/builds/creating-build-inputs.html#builds-input-secrets-configmaps_creating-build-inputs
>>
>> Given this sample Dockerfile:
>>
>> FROM registry.redhat.io/ubi8-minimal
>> RUN microdnf update -y && rm -rf /var/cache/yum && microdnf clean all
>> USER 1001
>>
>> I get permission error as it seems that in post-commit build hook my
>> command runs as UID 1001 but the secret is mounted and owned by root:
>>
>> <SNIP>
>> STEP 6: FROM
>> 2aa7c2a5f044025caeb1c2d7b6b4a32d60e4ae3b4b81047029b2b1f3e4b7e5ab
>> STEP 7: RUN /bin/sh -ic 'whoami; ls -lH /var/run/secrets/
>> openshift.io/build/my-secret/super; cat /var/run/secrets/
>> openshift.io/build/my-secret/super'
>> sh: cannot set terminal process group (1): Inappropriate ioctl for device
>> sh: no job control in this shell
>> whoami: cannot find name for user ID 1001
>> -rw-------. 1 root root 6 Oct 12 00:57 /var/run/secrets/
>> openshift.io/build/my-secret/super
>>
>
> i'm actually surprised this even works, I didn't remember that we mounted
> your build-secrets into the container we launch for your post-commit hook
> execution.
>
> But since apparently we do, i do not believe we give you any way to
> control the mount permissions there, so you're likely a bit stuck.  I
> suspect you're going to have to move to a real CI pipeline flow for this
> (e.g. push your newly built image to a test tag, then run a deployment
> against the test tag that mounts the secrets and runs your tests, then if
> that succeeds, re-tag the image for prod or whatever)
>
>
>
>>
>> cat: /var/run/secrets/openshift.io/build/my-secret/super: Permission
>> denied
>> subprocess exited with status 1
>> subprocess exited with status 1
>> <SNIP>
>>
>> Ideally, I don't want to produce an image that runs as root. Are there
>> any suggestions on how to approach this or another way to provide sensitive
>> information in build hook?
>>
>> Thanks.
>>
>> _______________________________________________
>> users mailing list
>> users@lists.openshift.redhat.com
>> http://lists.openshift.redhat.com/openshiftmm/listinfo/users
>>
>
>
> --
> Ben Parees | OpenShift
>
>

-- 

*Russ Krichevskiy*

*Email: russ.krichevs...@gmail.com <russ.krichevs...@gmail.com>*

*Mobile: 401-369-9726*

*www.linkedin.com/in/russkrichevskiy*
<http://www.linkedin.com/in/russkrichevskiy/>
_______________________________________________
users mailing list
users@lists.openshift.redhat.com
http://lists.openshift.redhat.com/openshiftmm/listinfo/users

Reply via email to