Run arbitrary code in a remote Kubernetes cluster, stream logs and download artefacts. It works, but its usefulness is questionable. This project is mostly a playground for new infrastructure, system design and data processing ideas.
demo.mp4
Some feature ideas to implement in the future.
- Push logs and status changes to Kafka
- New web socket service to notify clients of new logs and status changes
- Separate service to save log data to Cassandra (Go) via the API
- Separate service to check how much time each job is executing (status)
- Authentication with Algorand (send token to auth, get a session)
- Users
- Projects page
- Subscribe to projects and list projects the user subscribed to
- Last builds (all, subscribed) like Twitter
- Runs, log lines/bytes, run duration, run status (funnel)
- Kafka Streams/Flink for analytics
- Dashboard
- Integration tests with third party services in Kubernetes
- Docker build and push in Github Actions
- Deploy to Kubernetes from Github Actions/flux/argo