tree: cd6f4dc2cc2cb98ff0752a8eb1de4961fa7aa27b [path history] [tgz]
  1. build-skia/
  2. cpp/
  3. demo/
  4. go/
  5. modules/
  6. pages/
  7. source/
  8. .gitignore
  9. BUILD.bazel
  10. build_skia_image
  11. create-fiddle-sa.sh
  12. create-fiddler-pool.sh
  13. create-fiddler-sa.sh
  14. DESIGN.md
  15. fiddler_restart.sh
  16. Makefile
  17. PROD.md
  18. README.md
fiddlek/README.md

Fiddle

Allows trying out Skia code in the browser.

Running locally

In two different shells:

$ make run_local_fiddle

$ make run_local_fiddler

Fiddler uses scrap exchange, but only for scrap conversion. To test these functions a local scrapexchange will need to be started:

# In //scrap run:
$ PORT=:8010 PROM_PORT=:20001 make run-local-instance

Then visit http://localhost:8080

fiddler Deployment

The fiddler image is continuously deployed as new Skia commits come in. See documentation at docker_pushes_watcher/README.md.

If needed, fiddler may be manually deployed as so:

make push_fiddler_I_am_really_sure

Keep in mind that a deployed dirty image will prevent (by design) docker-pushes-watcher from automatically pushing new images. To determine if a fiddler push will be clean or dirty run the following:

make release-fiddle

To create a clean image make sure that the workspace is up-to-date with no modified files.

NOTE: One caveat is that the glibc version on the machine performing the push needs to be compatible with the version on the image being used by fiddle. After deployment make sure to run a test fiddle to ensure successful compilation on fiddle.

fiddle Deployment

fiddle must be manually deployed as so:

make push_fiddle

Node Pool

The fiddler-pool node pool is dedicated to running just fiddler pods. This was setup because fiddler latency was high for fiddle when run along with many other pods on 64 core nodes. To create a node pool that is dedicated to a certain kind of pod you need to label and taint all the nodes in the node pool, in this case with the same key,value pair:

reservedFor=fiddler

Using the same key/value pair isn't required, but it keeps it consistent.

Then add a tolerance to the pod description so it can run in the node-pool, and also add a nodeSelector so that the pods get scheduled into the pool.

spec:
  nodeSelector:
    reservedFor: fiddler
  tolerations:
    - key: "reservedFor"
      operator: "Equal"
      value: "fiddler"
      effect: "NoSchedule"