Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/azohra/periscope


https://github.com/azohra/periscope

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

[![Go Report](https://goreportcard.com/badge/github.com/azohra/periscope)](https://goreportcard.com/badge/github.com/azohra/periscope)

# Periscope

![icon](./assets/periscope.png)

## What is this?

Dynamic, on-demand docker-as-a service on any compatible K8S cluster with istio. Periscope currently serves as a **proof-of-concept**.

Deletion is not in place yet (Soon™). To delete the services/virtualservices/deployments generated by periscope, run:

`ID=[X-State-ID] && kubectl delete svc/periscope-mock-$ID deploy/periscope-mock-$ID virtualservice/periscope-mock-$ID`

where `[X-State-ID]` is the session you would like to destroy

## Example Payload:

```
{
"stateID": "helloworld",
"svcPort": 7950,
"images": [
{ "image":"gcr.io/williams-playground/bigwill/periscope_mockserver_opensource", "port":7950 },
{ "image":"gcr.io/williams-playground/bigwill/periscope_mockdb_opensource", "port":7990 }
]
}
```

## Requirements

* K8S 1.12+
* Istio
* GCR

## Instructions

### To Get
`go get github.com/azohra/periscope/...`

### To Build & Push
`./scripts/build.sh`

### To Install
`./scripts/install.sh`

### To Uninstall
`./scripts/uninstall.sh`

## Todo
* Open-source GCR image
* State management + Disaster recovery
* 2-way websocket between periscope and periscope-proxy
* Graceful k8s SIGTERM
* Real-time state
* Support websocket traffic
* HTTPS + WSS with istio
* Helm chart

Made with ❤️ in Toronto, Canada