Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azohra/periscope
https://github.com/azohra/periscope
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/azohra/periscope
- Owner: azohra
- License: mit
- Created: 2019-08-21T19:18:54.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-08-21T19:47:35.000Z (over 5 years ago)
- Last Synced: 2023-05-16T06:25:06.333Z (over 1 year ago)
- Language: Go
- Size: 1.14 MB
- 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)](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 chartMade with ❤️ in Toronto, Canada