)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"5855bab6a39a5f9ebffd88df60c2adeb101a42fa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gabriele Cerami \u003cgcerami@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-13 14:50:51 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Crate testing environment for promoter server"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I5d20e6a713a2c417e2f293d000dba9f9a7468c59"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9fb8cfa7_066642c2","line":7,"updated":"2019-06-13 14:23:39.000000000","message":"Create","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"}],"specs/train/promoter-staging.rst":[{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"44895f32bc7328f72aac091661b4f21f538b0375","unresolved":false,"context_lines":[{"line_number":47,"context_line":"- This node will be configured by appling the role in"},{"line_number":48,"context_line":"  rdo-infra/ci-config/ci-config/infra-setup/role/promoter to it."},{"line_number":49,"context_line":"  But the role will need to be changed to skip the external volume creation, as"},{"line_number":50,"context_line":"  it will not be need nor available in nodepool"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"- After the node is configured the promoter code will need to be launched. As"},{"line_number":53,"context_line":"  the promoter it\u0027s currently installed as a service, we\u0027ll need to modify the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_ca86aa66","line":50,"updated":"2019-08-08 12:44:38.000000000","message":"needed","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"81df2c077b485a0450d6a8e21bb5901330ef25f2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  release file."},{"line_number":60,"context_line":"  (Alternative) use the service and wait for it to loop"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- The entry point will the in turn:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  - run the promoter logic itself in"},{"line_number":65,"context_line":"    ci-config/dlrnapi_promoter/dlrnapi_promoter.py"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_97671e52","line":62,"updated":"2019-06-24 07:33:44.000000000","message":"then (?)","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"8d61707ffc9e378aa7a0760cd0144d4f296c41eb","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    needed."},{"line_number":69,"context_line":"    A few unit tests exist in this part already. We may plan to improve the"},{"line_number":70,"context_line":"    coverage, but it\u0027s not in scope with the staging environment."},{"line_number":71,"context_line":"  - run the container pull/push in"},{"line_number":72,"context_line":"    ci-config/containers-push/containers-push.yaml"},{"line_number":73,"context_line":"    As the container namespace is desumed from the release with the formula"},{"line_number":74,"context_line":"    namespace: tripleo{{ lookup(\u0027env\u0027,\u0027RELEASE\u0027)  }}, a change will be needed to"},{"line_number":75,"context_line":"    separate the namespace from the release."},{"line_number":76,"context_line":"    (alternative) support a fake \"staging\" release."},{"line_number":77,"context_line":"    The list of containers to pull/push is generated from a fixed location in"},{"line_number":78,"context_line":"    tripleo-common. A change is needed to parametrize this location and"},{"line_number":79,"context_line":"    possibily get a local static list (that will contain just the testing"},{"line_number":80,"context_line":"    containers)"},{"line_number":81,"context_line":"    A small image will be used, possibile a helloworld. It doesn\u0027t need to be"},{"line_number":82,"context_line":"    tripleo related."},{"line_number":83,"context_line":"  - cloud image link update in ci-config/promote-images.sh. The script will need"},{"line_number":84,"context_line":"    to use a different namespace from promotion"},{"line_number":85,"context_line":"    We can use OPT_WEBROOT variable to use an alternative namespace."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_ffafba28","line":82,"range":{"start_line":71,"start_character":0,"end_line":82,"end_character":20},"updated":"2019-06-17 16:04:41.000000000","message":"Where is it going to push the container? A staging RDO Registry setup?","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"81df2c077b485a0450d6a8e21bb5901330ef25f2","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    needed."},{"line_number":69,"context_line":"    A few unit tests exist in this part already. We may plan to improve the"},{"line_number":70,"context_line":"    coverage, but it\u0027s not in scope with the staging environment."},{"line_number":71,"context_line":"  - run the container pull/push in"},{"line_number":72,"context_line":"    ci-config/containers-push/containers-push.yaml"},{"line_number":73,"context_line":"    As the container namespace is desumed from the release with the formula"},{"line_number":74,"context_line":"    namespace: tripleo{{ lookup(\u0027env\u0027,\u0027RELEASE\u0027)  }}, a change will be needed to"},{"line_number":75,"context_line":"    separate the namespace from the release."},{"line_number":76,"context_line":"    (alternative) support a fake \"staging\" release."},{"line_number":77,"context_line":"    The list of containers to pull/push is generated from a fixed location in"},{"line_number":78,"context_line":"    tripleo-common. A change is needed to parametrize this location and"},{"line_number":79,"context_line":"    possibily get a local static list (that will contain just the testing"},{"line_number":80,"context_line":"    containers)"},{"line_number":81,"context_line":"    A small image will be used, possibile a helloworld. It doesn\u0027t need to be"},{"line_number":82,"context_line":"    tripleo related."},{"line_number":83,"context_line":"  - cloud image link update in ci-config/promote-images.sh. The script will need"},{"line_number":84,"context_line":"    to use a different namespace from promotion"},{"line_number":85,"context_line":"    We can use OPT_WEBROOT variable to use an alternative namespace."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_7755ca4f","line":82,"range":{"start_line":71,"start_character":0,"end_line":82,"end_character":20},"in_reply_to":"9fb8cfa7_ffafba28","updated":"2019-06-24 07:33:44.000000000","message":"we could ideally have a staging registry if that doesn\u0027t cost too much to setup.\n\nor i believe we also discussed just using some special tag i.e. don\u0027t push containers as current-tripleo but with some fake tag we can create","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"44895f32bc7328f72aac091661b4f21f538b0375","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  EVERY script involved will have the logging checked and improved. Any error"},{"line_number":88,"context_line":"  should be specifically reported."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The workflow generally doesn\u0027t log in stdout, but in a static custom."},{"line_number":91,"context_line":"The job will need to collect this log at the end of the job."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_6a7bf67a","line":90,"updated":"2019-08-08 12:44:38.000000000","message":"Custom file","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"131c06c1979643a4d63dbf48559c762735d127f6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"- change in containers-push: decouple namespace from release"},{"line_number":101,"context_line":"- change in containers-push: add the option to get the list of containers for a"},{"line_number":102,"context_line":"  local list"},{"line_number":103,"context_line":"- change in promote-images.sh: use OPT_WEBROOT to change destination namespace."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Summary of the additional components needed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_c419f3d6","line":103,"updated":"2019-06-14 09:17:54.000000000","message":"- change in the promoter server: make docker manifest available. Current version in promoter server does not contain the manifest subcommand. Even after updating, docker manifest command is marked as experimental, and must be activated explicitly.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"fb4478519b420e3fd17c4b28564cd55ed21b232c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"- change in containers-push: decouple namespace from release"},{"line_number":101,"context_line":"- change in containers-push: add the option to get the list of containers for a"},{"line_number":102,"context_line":"  local list"},{"line_number":103,"context_line":"- change in promote-images.sh: use OPT_WEBROOT to change destination namespace."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Summary of the additional components needed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_64cfe728","line":103,"updated":"2019-06-14 09:26:12.000000000","message":"ugh, available version in centos extras is 1.13, dated 2017. We should apply this https://docs.docker.com/install/linux/docker-ce/centos/ to get a version with manifest command.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"5855bab6a39a5f9ebffd88df60c2adeb101a42fa","unresolved":false,"context_lines":[{"line_number":103,"context_line":"- change in promote-images.sh: use OPT_WEBROOT to change destination namespace."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Summary of the additional components needed."},{"line_number":107,"context_line":"--------------------------------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"- job in RDO sf named promoter-test, configured with semaphore to run a single"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_a65896f9","line":106,"updated":"2019-06-13 14:23:39.000000000","message":"The summaries sections could be moved to the \"Work items\" sections.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"8d61707ffc9e378aa7a0760cd0144d4f296c41eb","unresolved":false,"context_lines":[{"line_number":119,"context_line":"  - log collection"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"- new namespace \"staging\" in hub.docker.com"},{"line_number":122,"context_line":"- new namespace \"staging\" trunk.registry.rdoproject.org"},{"line_number":123,"context_line":"- change in promoter worflow: Fake SUCCESS vote to fake jobs in promotion"},{"line_number":124,"context_line":"  criteria"},{"line_number":125,"context_line":"- change in rdo registry: make a small image available for pulling. Possibily a"},{"line_number":126,"context_line":"  hello world."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Summary of the additional components needed later."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_df7bd6bb","line":126,"range":{"start_line":122,"start_character":0,"end_line":126,"end_character":14},"updated":"2019-06-17 16:04:41.000000000","message":"Aha, here it is.\n\nNote this will mean additional load on the RDO Registry, and a rogue/failed job could cause real downtime.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"bc7e795891db0f9a1538d61e95fe1985b5fcabd5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- change in promoter worflow: Fake SUCCESS vote to fake jobs in promotion"},{"line_number":124,"context_line":"  criteria"},{"line_number":125,"context_line":"- change in rdo registry: make a small image available for pulling. Possibily a"},{"line_number":126,"context_line":"  hello world."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Summary of the additional components needed later."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_f11a816d","line":126,"updated":"2019-06-18 09:46:06.000000000","message":"how a push could cause real downtime ? We are not expecting many changes in the promotion workflow after the initial period, and during the job, we plan to pull a couple (probably one per arch) of small images only.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"a66e1defab19e511570c49af8b2e4bd25a051b2e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- change in promoter worflow: Fake SUCCESS vote to fake jobs in promotion"},{"line_number":124,"context_line":"  criteria"},{"line_number":125,"context_line":"- change in rdo registry: make a small image available for pulling. Possibily a"},{"line_number":126,"context_line":"  hello world."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Summary of the additional components needed later."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_1f035775","line":126,"in_reply_to":"9fb8cfa7_f11a816d","updated":"2019-06-21 14:26:22.000000000","message":"My concern is that this could be used (intentionally or not) as a DoS tool for the RDO registry. Running multiple concurrent jobs or running a job that pushes several large images could be an issue.\n\nI have been researching the RDO Registry options, and there is currently no way to set up a proper quota. We can set a quota for the number of imagestreams [1], but that only limits the number of images with different name (e.g. centos, fedora, whatever). We could push as many images with the same tag as we wanted (centos:7.1, centos:7.2, centos:7.3...), so it is not an efficient way of setting up the quota. Also, there is no way to limit the amount of storage used by the imagestreams.\n\n[1] https://docs.openshift.com/container-platform/3.11/admin_guide/quota.html#sample-resource-quota-definitions","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"a0d74c7cdd232b976e83ba437a7f30a53cedaca8","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Summary of the additional components needed later."},{"line_number":130,"context_line":"--------------------------------------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"- Podman will replace docker in the containers pull role"},{"line_number":133,"context_line":"- Manifests will be used in containers pull role as a default, instead of"},{"line_number":134,"context_line":"  pushing directly the images. (so naming convetions will need to be revisited)"},{"line_number":135,"context_line":"- Make code reentrant, use timestamp to differentiate container and cloud"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_9646b2c0","line":132,"updated":"2019-06-17 08:22:00.000000000","message":"Podman doesn\u0027t have any equivalent to the manifest command.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"5855bab6a39a5f9ebffd88df60c2adeb101a42fa","unresolved":false,"context_lines":[{"line_number":133,"context_line":"- Manifests will be used in containers pull role as a default, instead of"},{"line_number":134,"context_line":"  pushing directly the images. (so naming convetions will need to be revisited)"},{"line_number":135,"context_line":"- Make code reentrant, use timestamp to differentiate container and cloud"},{"line_number":136,"context_line":"  images. - change in everything: verify correct logging."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Manifests handling in containers-push role"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_c65b4af3","line":136,"updated":"2019-06-13 14:23:39.000000000","message":"bullet point format","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"c9d5718a2526d5eeb2a6298b427a7fb3826782bb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Manifests handling in containers-push role"},{"line_number":140,"context_line":"------------------------------------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Manifests are the preferred solution for the upcoming addition of the ppc"},{"line_number":143,"context_line":"architecture images."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Manifests are meta-images, they are data that points semi-transparently to other"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_0a55bbfa","line":142,"range":{"start_line":142,"start_character":70,"end_line":142,"end_character":73},"updated":"2019-06-17 03:14:35.000000000","message":"Small nit can we try to use ppc64le and x86_64 .. or call out that those are explicitly the targets.\n\nx86 can include 32-bit systems and ppc is 32 and 64-bit systems running in either big or little endian.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"f970a4f0d5808707ed8db57446100565a0a3e1ba","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Manifests are the preferred solution for the upcoming addition of the ppc"},{"line_number":143,"context_line":"architecture images."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Manifests are meta-images, they are data that points semi-transparently to other"},{"line_number":146,"context_line":"images."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"To understand how the manifests work, you can consider this map:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_26ab4675","line":145,"updated":"2019-06-13 14:34:28.000000000","message":"point","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"131c06c1979643a4d63dbf48559c762735d127f6","unresolved":false,"context_lines":[{"line_number":163,"context_line":"The new worflow for the promoter will have to add the additional step of image"},{"line_number":164,"context_line":"creation:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"- change naming convention on the images to include the architecture"},{"line_number":167,"context_line":"- the old naming convetion will instead be used by the manifests"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_640cc793","line":166,"updated":"2019-06-14 09:17:54.000000000","message":"A manifest is an aggregation of heterogenuous images. The images referred by the manifest don\u0027t even need to share the same layers. THey can be different images, different names, different tags, different size. In my experiments, I created a manifest with a centos and a fedora image. THe images are not embedded in the manifest, the manifest contains just pointers. We could debate about naming conventions, but using architecture tag is not the preferred solution, that\u0027s why manifests exist to address the multi arch problem. Tags in docker work differently from any other concept of tag. An image can have only a single tag. If you retag an image, you create two images with same base image id but different digests. If we use architecture tag, we lose the ability to identify the version of the image as you can\u0027t put the dlrn_has and the arch tag on the same image, and there\u0027s no way to pull an image based on two tags e.g. you can\u0027t do something like \"docker pull image1:hash1:x86\"","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"a0d74c7cdd232b976e83ba437a7f30a53cedaca8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"The new worflow for the promoter will have to add the additional step of image"},{"line_number":164,"context_line":"creation:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"- change naming convention on the images to include the architecture"},{"line_number":167,"context_line":"- the old naming convetion will instead be used by the manifests"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_b643b6af","line":166,"updated":"2019-06-17 08:22:00.000000000","message":"Aaahhh, you\u0027re adding arch to the existing tag instead of the name. That makes sense. The only concern I have is that if we are using only underscores in-tags and between tags, it would not be easy to parse the tag in the future, but I understand the choice. Thanks for the explanation.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":9592,"name":"wes hayutin","email":"whayutin@redhat.com","username":"weshayutin"},"change_message_id":"71e47194fe7548895b6eb9625dc417f751d636ef","unresolved":false,"context_lines":[{"line_number":163,"context_line":"The new worflow for the promoter will have to add the additional step of image"},{"line_number":164,"context_line":"creation:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"- change naming convention on the images to include the architecture"},{"line_number":167,"context_line":"- the old naming convetion will instead be used by the manifests"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_d3822500","line":166,"range":{"start_line":166,"start_character":0,"end_line":166,"end_character":68},"updated":"2019-06-13 16:47:09.000000000","message":"to use manifests correctly it\u0027s my understanding that the names of the containers must be identical.  We will have to tag each container w/ the distro type, not change the name of the container","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"c9d5718a2526d5eeb2a6298b427a7fb3826782bb","unresolved":false,"context_lines":[{"line_number":163,"context_line":"The new worflow for the promoter will have to add the additional step of image"},{"line_number":164,"context_line":"creation:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"- change naming convention on the images to include the architecture"},{"line_number":167,"context_line":"- the old naming convetion will instead be used by the manifests"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_27bb1a73","line":166,"in_reply_to":"9fb8cfa7_640cc793","updated":"2019-06-17 03:14:35.000000000","message":"I think Jargon is confusing us.\n\nIn our development we used:\n\n${container}:${tag}_${arch} for the architecture specific image/layer and then ${container}:${tag} for the manifest itself.  This was to ensure that all layers \"included\"[1] in the manifest could be pushed to a remote registry and trivially referred to locally  You *could* pull fu:bar_x86_64 onto a ppc64le system ... it clearly wouldn\u0027t \"work\" but you could inspect it.\n\nWhat\u0027s critical is that the image presented as ${container}:${tag} on the \"final registry\" be the manifest image that works on both x86_64[2] and ppc64le\n\nWhich I *think* is what you\u0027re both describing but I want to be sure.\n\n\n[1] I know the manifest does not include the data but just the SHA references\n[2] Why docker used amd64 for this platform tag is beyond me :(","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"81df2c077b485a0450d6a8e21bb5901330ef25f2","unresolved":false,"context_lines":[{"line_number":163,"context_line":"The new worflow for the promoter will have to add the additional step of image"},{"line_number":164,"context_line":"creation:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"- change naming convention on the images to include the architecture"},{"line_number":167,"context_line":"- the old naming convetion will instead be used by the manifests"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_b7e90281","line":166,"in_reply_to":"9fb8cfa7_b643b6af","updated":"2019-06-24 07:33:44.000000000","message":"interesting thanks folks I now understand a little more about how the manifests work.\n\nso in the end the thing we currently have as the container i.e. name:tag will actually be the manifest and then when we pull the manifest will be resolved to the right arch for the system we\u0027re pulling on and fetch name:tag_arch\n\n@panda I think its hard coded as _ see https://review.opendev.org/#/c/663977/3/roles/build-containers/tasks/main.yaml","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"f970a4f0d5808707ed8db57446100565a0a3e1ba","unresolved":false,"context_lines":[{"line_number":164,"context_line":"creation:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"- change naming convention on the images to include the architecture"},{"line_number":167,"context_line":"- the old naming convetion will instead be used by the manifests"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_46a67aad","line":167,"updated":"2019-06-13 14:34:28.000000000","message":"convention","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"131c06c1979643a4d63dbf48559c762735d127f6","unresolved":false,"context_lines":[{"line_number":174,"context_line":"- push ppc images if present"},{"line_number":175,"context_line":"- amend ppc images to annotate \"arch: ppc\" if needed."},{"line_number":176,"context_line":"- for each container, create and push a manifest specifying the available images"},{"line_number":177,"context_line":"  as list, using the old naming convention."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"We are effectively swapping actuall images with manifest in a transparent way"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_840f7b86","line":177,"updated":"2019-06-14 09:17:54.000000000","message":"The sequence to create a manifests is:\n1) pull or create images locally\n2) push images to registry\n3) create manifest locally, pointing to images in registry\n4) push the manifest itself\n\ndocker manifest will complain in many cases:\n- All images referred from the manifest MUST come from the same registry\n- THe manifest itself MUST use the same registry of all its slave images.\n- you can\u0027t create manifests if the referred images are not present in the registry first.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":9592,"name":"wes hayutin","email":"whayutin@redhat.com","username":"weshayutin"},"change_message_id":"71e47194fe7548895b6eb9625dc417f751d636ef","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"On each run:"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"- pull x86 images"},{"line_number":172,"context_line":"- push x86 images"},{"line_number":173,"context_line":"- pull ppc images if present"},{"line_number":174,"context_line":"- push ppc images if present"},{"line_number":175,"context_line":"- amend ppc images to annotate \"arch: ppc\" if needed."},{"line_number":176,"context_line":"- for each container, create and push a manifest specifying the available images"},{"line_number":177,"context_line":"  as list, using the old naming convention."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"We are effectively swapping actuall images with manifest in a transparent way"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_93a58da4","line":177,"range":{"start_line":171,"start_character":0,"end_line":177,"end_character":43},"updated":"2019-06-13 16:47:09.000000000","message":"hrm...\nAFAICT... this should be...\n- pull x86 containers from rdo-registry (name, tagged x86-64)\n- pull ppc containers from rdo-registry (name, tagged ppc )\n- build the manifest\n- push containers to docker.io using the manifest.","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"8d61707ffc9e378aa7a0760cd0144d4f296c41eb","unresolved":false,"context_lines":[{"line_number":176,"context_line":"- for each container, create and push a manifest specifying the available images"},{"line_number":177,"context_line":"  as list, using the old naming convention."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"We are effectively swapping actuall images with manifest in a transparent way"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Summary of the bounduaries for the implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_5f3e06db","line":179,"range":{"start_line":179,"start_character":28,"end_line":179,"end_character":35},"updated":"2019-06-17 16:04:41.000000000","message":"typo: actual","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":10022,"name":"Gabriele Cerami","email":"gcerami@redhat.com","username":"panda"},"change_message_id":"f970a4f0d5808707ed8db57446100565a0a3e1ba","unresolved":false,"context_lines":[{"line_number":179,"context_line":"We are effectively swapping actuall images with manifest in a transparent way"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Summary of the bounduaries for the implementation"},{"line_number":183,"context_line":"-------------------------------------------------"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"- Molecule will not be used to test the roles"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_e6ba0ebf","line":182,"updated":"2019-06-13 14:34:28.000000000","message":"boundaries","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"8d61707ffc9e378aa7a0760cd0144d4f296c41eb","unresolved":false,"context_lines":[{"line_number":252,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"The job will be configured in RDO software factory, and will use"},{"line_number":255,"context_line":"standar toolchain"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_3f123264","line":255,"range":{"start_line":255,"start_character":0,"end_line":255,"end_character":7},"updated":"2019-06-17 16:04:41.000000000","message":"typo: standard","commit_id":"948ee2180abf1578f860a8ad159eb859b27cef39"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  the promoter it\u0027s currently installed as a service, we\u0027ll need to modify the"},{"line_number":54,"context_line":"  setup role to install the service, but disabling it."},{"line_number":55,"context_line":"  Our entry point will be the script in"},{"line_number":56,"context_line":"  ci-config/dlrnapi_promoter/dlrn-promoter.sh. WE WILL NOT COVER the service"},{"line_number":57,"context_line":"  configuration in this way"},{"line_number":58,"context_line":"  The entry point script will need to be modified to support fake release and"},{"line_number":59,"context_line":"  release file."},{"line_number":60,"context_line":"  (Alternative) use the service and wait for it to loop"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_1c558d1e","line":57,"range":{"start_line":56,"start_character":47,"end_line":57,"end_character":27},"updated":"2019-08-14 17:52:41.000000000","message":"what if the script is updated and service is not reloaded ?","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":107,"context_line":"- Change in promoter role: skip external volume configuration"},{"line_number":108,"context_line":"- Change in promoter role: install promoter service as disabled"},{"line_number":109,"context_line":"- change in promoter entry point: Inject fake release"},{"line_number":110,"context_line":"- change in containers-push: add the option to get the list of containers for a"},{"line_number":111,"context_line":"  local list"},{"line_number":112,"context_line":"- change in the promoter role: install docker-ce, as default docker version does"},{"line_number":113,"context_line":"  not contain the manifest experimental subcommands."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_3c008902","line":111,"range":{"start_line":110,"start_character":2,"end_line":111,"end_character":12},"updated":"2019-08-14 17:52:41.000000000","message":"this could be a conditional with \"environment: staging\" var defined, or something like that.","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":109,"context_line":"- change in promoter entry point: Inject fake release"},{"line_number":110,"context_line":"- change in containers-push: add the option to get the list of containers for a"},{"line_number":111,"context_line":"  local list"},{"line_number":112,"context_line":"- change in the promoter role: install docker-ce, as default docker version does"},{"line_number":113,"context_line":"  not contain the manifest experimental subcommands."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Summary of the additional components needed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_bc5c797d","line":113,"range":{"start_line":112,"start_character":0,"end_line":113,"end_character":52},"updated":"2019-08-14 17:52:41.000000000","message":"to use manifest commands, add this to ~/.docker/config.json:\n    \"experimental\": \"enabled\",","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"- new promotion name tripleo-ci-staging and tripleo-ci-staging-promoted for all"},{"line_number":132,"context_line":"  the external components involved"},{"line_number":133,"context_line":"  - tag name \"tripleo-ci-staging-promoted\" in hub.docker.com for promoted helloworld"},{"line_number":134,"context_line":"  - tag name in trunk.registry.rdoproject.org"},{"line_number":135,"context_line":"- change in promoter worflow: Fake SUCCESS vote to fake jobs in promotion"},{"line_number":136,"context_line":"  criteria"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_5c55454f","line":133,"range":{"start_line":133,"start_character":74,"end_line":133,"end_character":84},"updated":"2019-08-14 17:52:41.000000000","message":"hello-world","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":135,"context_line":"- change in promoter worflow: Fake SUCCESS vote to fake jobs in promotion"},{"line_number":136,"context_line":"  criteria"},{"line_number":137,"context_line":"- change in rdo registry: make a small image available for pulling. Possibily a"},{"line_number":138,"context_line":"  hello world."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Summary of the additional components needed later."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_3fe95be2","line":138,"range":{"start_line":138,"start_character":2,"end_line":138,"end_character":14},"updated":"2019-08-14 17:52:41.000000000","message":"hello-world","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":145,"context_line":"  manifest subcommand will be implemented."},{"line_number":146,"context_line":"- Manifests will be used in containers pull role as a default, instead of"},{"line_number":147,"context_line":"  pushing directly the images. (so naming convetions will need to be revisited)"},{"line_number":148,"context_line":"- Make code reentrant, use timestamp to differentiate container and cloud"},{"line_number":149,"context_line":"  images."},{"line_number":150,"context_line":"- change in everything: verify correct logging."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_ffa503b6","line":149,"range":{"start_line":148,"start_character":2,"end_line":149,"end_character":9},"updated":"2019-08-14 17:52:41.000000000","message":"a new image (w/ timestamp) per job run is overkill IMO","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"On each run:"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"- pull x86 images"},{"line_number":186,"context_line":"- push x86 images"},{"line_number":187,"context_line":"- pull ppc images if present"},{"line_number":188,"context_line":"- push ppc images if present"},{"line_number":189,"context_line":"- amend ppc images to annotate \"arch: ppc64le\" if needed."},{"line_number":190,"context_line":"- for each container, create and push a manifest specifying the available images"},{"line_number":191,"context_line":"  as list, using the old naming convention."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"We are effectively swapping actual images with manifest in a transparent way"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_bfb22be4","line":191,"range":{"start_line":185,"start_character":0,"end_line":191,"end_character":43},"updated":"2019-08-14 17:52:41.000000000","message":"these are post tasks after the normal workflow as I understand it. Please clarify.","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"},{"author":{"_account_id":8175,"name":"Rafael Folco","email":"rfolco@redhat.com","username":"rfolco"},"change_message_id":"f717a24e8ca3f46a7c192d9b7abfce65dd46e9b7","unresolved":false,"context_lines":[{"line_number":190,"context_line":"- for each container, create and push a manifest specifying the available images"},{"line_number":191,"context_line":"  as list, using the old naming convention."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"We are effectively swapping actual images with manifest in a transparent way"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Summary of the boundaries for the implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_1f733f50","line":193,"range":{"start_line":193,"start_character":0,"end_line":193,"end_character":76},"updated":"2019-08-14 17:52:41.000000000","message":"need to make sure once we switch to manifest, we no longer push images in the old tagging format. Otherwise we\u0027d mess up with manifest and multi-arch support.","commit_id":"0dceff702aaa6811b7f5a7dda2233c322b390211"}]}
