periscope-proxy

module
v0.0.0-...-da40363 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2019 License: MIT

README

Go Report

Periscope Proxy

icon

What is this?

Dynamic, on-demand docker-as-a service on any compatible K8S cluster with istio.

This is the proxy which can be used in subsitution for localhost docker. It is meant to be used in conjunction with https://github.com/azohra/periscope/. The proxy's job is to simply:

  • negotiate with your cluster to spin up images of your choice
  • tags local traffic with unique X-State-ID header that points to:
    • Service with exactly one Pod (with 1 or more containers)
  • forwards all local traffic on [PORT] to cluster

Use Cases:

  • ephemeral tasks where a docker image is needed but your vm (docker-in-docker) does not support nested virtualization (therefore no docker-in-docker).

Requirements

  • K8S 1.12+
  • Istio
  • GCR

Instructions

To Get

go get github.com/azohra/periscope-proxy/...

To Install

go install ./...

To Run

periscope-proxy port=[PORT] addr=[ADDR]

Todo

  • Makefile & install bin on go get (be better™)
  • 2-way websocket between periscope and periscope-proxy
    • Graceful k8s SIGTERM
    • Real-time state
    • Support websocket traffic
    • HTTPS + WSS traffic with istio
  • Helm chart

Made with ❤️ in Toronto, Canada

Directories

Path Synopsis
cmd
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL