Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azohra/periscope-proxy
https://github.com/azohra/periscope-proxy
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/azohra/periscope-proxy
- Owner: azohra
- License: mit
- Created: 2019-08-21T19:19:47.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-08-21T19:45:40.000Z (over 5 years ago)
- Last Synced: 2023-05-16T06:25:06.279Z (over 1 year ago)
- Language: Go
- Size: 6.84 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Go Report](https://goreportcard.com/badge/github.com/azohra/periscope-proxy)](https://goreportcard.com/badge/github.com/azohra/periscope-proxy)
# Periscope Proxy
![icon](./assets/periscope.png)
## 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 chartMade with ❤️ in Toronto, Canada