[ 
https://issues.apache.org/jira/browse/GEODE-8353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bill Burcham updated GEODE-8353:
--------------------------------
    Summary: Replace Product SHA with Release Manager's Public Key ID in 
Dockerfile for Official Docker Image  (was: Replace Product SHA with Release 
Manager's Public Key in Dockerfile for Official Docker Image)

> Replace Product SHA with Release Manager's Public Key ID in Dockerfile for 
> Official Docker Image
> ------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-8353
>                 URL: https://issues.apache.org/jira/browse/GEODE-8353
>             Project: Geode
>          Issue Type: Bug
>            Reporter: Bill Burcham
>            Priority: Major
>
> Currently the {{Dockerfile}} for the official Geode Docker image contains a 
> product SHA. As a result, the source code of the {{Dockerfile}} used to 
> produce the official Docker image, for publication on Docker Hub, is not part 
> of the source code covered by the Geode product SHA. Instead, the 
> {{Dockerfile}} comes from the {{master}} branch.
> This presents a number of problems:
> 1. folks looking at the Geode source code do not see the correct 
> {{Dockerfile}} source unless they know to look for it on the {{master}} branch
> 2. the release process has extra steps to maintain the {{Dockerfile}} on the 
> master branch
> 3. inescapably, revisions to the the {{Dockerfile}} on the master branch 
> follow a linear progression whereas the sources of that file are following a 
> tree-structured one
> When this story is complete, Geode's official Docker image will not come from 
> the {{Dockerfile}} on the master branch. Instead, the {{Dockerfile}} on 
> {{develop}} and support branches, will contain the public key of the (a) 
> release manager instead of a product SHA. Verification will proceed like this 
> inside the {{Dockerfile}}:
> 1. download release manager's public key-cert from key server {{gpg 
> --keyserver some.apache.key.server --recv-keys 
> release-managers-key-id-from-dockerfile}}
> 2. download product checksums
> 3. download a signature for the checksums—signed by the release manager's 
> private key
> 4. download product distribution
> 5. validate checksums (2) with signature (3) {{gpg --batch --verify 
> signature-file downloaded-checkums-file}}
> 6. verify that locally-computed product checksums match downloaded ones
> If any of those steps fail, then the {{Dockerfile}} build fails.
> This is similar to the approach used in this {{Dockerfile}}: 
> https://hub.docker.com/_/consul
> Release manager instructions will be updated to reflect these structural and 
> procedural changes.
> There is one final validation step that cannot be done inside the Dockerfile, 
> and that is validating that the release manager's public key is trustworthy. 
> This is something that users of the official Geode Docker image would do:
> * validate authenticity of release manager's public key per: 
> https://www.apache.org/info/verification.html
> This last step is beyond the scope of this story. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to