hyperweb-io / hyperweb-io/starship
spike: seperate out each validator to its own StatefulSet
- Dominant language
- TypeScript
- Stars
- 77
- Forks
- 39
- PR merge metrics
- No merged PRs in 30d
Description
## Overview
With implementation of ingress, and routing traffic to individual pods of a StatefulSets is non trival, might require embeding `envoy` proxy with `istio`.
## Currently
Each chain is represented with 2 statefulsets:
* `genesis`: 1 replica
* `validator`: n replica
Number of validators exposed to users is a simple number that can be set. Internal routing of traffic to individual validator is based on the `headless` service for the validator and use: `validator-.validator.$NAMESPACE.svc.cluster.local`. But this is not available for simple ingress rules
## Proposal
An alternative to current approach of 1 statefulset, is to just have multiple statefuls per validator. This will add the overhead of many Statefulset, but will reduce the overhead of tricky networking to route traffic.
Additional benifits: Each validator will have its own service
## Alternatives
* CRDS: starting to look promissing, we can simplify our own overhead of services, statefulsets etc. Not sure what this will look like though
* Service mesh would need to integrated anyways for observability. It just might make sense to have a reverse proxy in place, then we could route traffic via the istion-ingress to individual pods of the stateful sets.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or entry points are named. Start by locating the current genesis and validator StatefulSet definitions, their headless service, and the ingress configuration; done would require an agreed implementation of the proposed per-validator StatefulSets or a decided alternative.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100