Skip to content

[raft] helm deployment - #1808

Open
marcadamsge wants to merge 2 commits into
interuss:masterfrom
Orbitalize:raft_helm_deployment
Open

marcadamsge wants to merge 2 commits into
interuss:masterfrom
Orbitalize:raft_helm_deployment

Conversation

@marcadamsge

@marcadamsge marcadamsge commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Implements #1739 . Some design choices:

  • with raft the dss becomes statefulset (the state is not offloaded to another DB), we need a k8s statefulset. Instead of extending the current deployment, a new statefulset template is created
  • the eviction job is not created at the moment
  • rendering fails unless exactly one of cockroachdb.enabled / yugabyte.enabled / raft.enabled is true

Each pod's Raft node ID is derived at runtime from its statefulset ordinal (parsed from the pod name) plus raft.nodeIDBase.

This PR was tested by deploying the helm chart to a local k3s cluster.

Comment thread cmds/core-service/main.go Outdated
if err != nil {
return nil, stacktrace.Propagate(err, "failed to generate request seed")
}
metaCtx := random.NewContext(timestamp.WithRequestTimestamp(ctx, time.Now()), seed)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is out of scope of the PR, but I needed it to be able to test the deployment locally, otherwise the nodes failed to start up.
@MariemBaccari How are nodes suppose to get initialized? Should I split this into another PR or just remove it?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

random was removed in #1751. Are you on the latest version of upstream's master ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I'll try again from the latest master without that code

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works fine now locally in a k3s without these go changes, thanks 👍

@marcadamsge marcadamsge changed the title Raft helm deployment [raft] helm deployment Oct 22, 2026

@the-glu the-glu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only allow a local cluster to be run, correct? Do you plan to make it "clusteriable" with others clusters in a flowup PR ?

@@ -0,0 +1,160 @@
{{/* Exactly one datastore backend must be enabled */}}
{{- include "dss.validate-datastore" . -}}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't this be included at a more 'global' level instead of dss-raft to perform validation in a more general context ?

Comment thread deploy/services/helm-charts/dss/values.yaml
# See `core-service --help` (flags: raft_snapshot_catchup_entries,
# raft_snapshot_interval_entries, raft_tick_interval, raft_election_tick,
# raft_heartbeat_tick, raft_max_size_per_msg, raft_max_inflight_msgs).
tuning: {}

@the-glu the-glu Oct 22, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want to be generic there ? If I'm not wrong, all argument are explicit in general

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants