hyperweb-io / hyperweb-io/starship

spike: seperate out each validator to its own StatefulSet

Open
#301 2 comments 0 reactions 0 assignees View on GitHub
spike
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.