A unified backend service for storing scraps of code across all of Skia Infrastructure's services.
Skia Infrastructure currently has services that store scraps of code, such as https://shaders.skia.org. The term ‘scrap’ implies that the code can not stand on its own, such as the JSON that underlies SkSL shaders, or JS demos.
Scrap Exchange is a unified backend service that is constructed to make it easier to stand up such web UIs, and to also make linking top level web UIs together easier, for example, going from a particle ‘scrap’ on shaders.skia.org to complete C++ code on fiddle.skia.org, or complete JS code on jsfiddle.skia.org, that runs the shaders. The scrap service has the following features:
See http://go/scrap-exchange for more details.
Uses the skia-public-auth@skia-public.iam.gserviceaccount.com
service account, originally created in //infra/am
, to talk to the Chrome Infra Auth API.
We use the following buckets for each instance:
skia-public: gs://skia-public-scrap-exchange
Scrap Exchange is automatically built by a Louhi flow whenever a change merges anywhere in this repository. If this results in a new Docker image in gcr.io/skia-public/scrapexchange then Louhi will automatically update references in k8s-config whereby k8s-deployer will automatically deploy that new image. Deployment is fully automatic.
A Docker image can be manually pushed to GCR by running make push_I_am_really_sure
. In addition to pushing, this target will also update k8s-config references. This will prevent Louhi from updating future scrapexchange references in k8s-config. To re-enable updating, a manual change in k8s-config will need to be landed that returns the image reference from tag-style (e.g. gcr.io/skia-public/scrapexchange:{tagname}
) to digest style (e.g. cr.io/skia-public/scrapexchange@sha256:{digest}
).