Skip to content

[raft] tanka deployment - #1923

Merged
the-glu merged 6 commits into
interuss:masterfrom
Orbitalize:raft_tanka_deployment
Nov 6, 2026
Merged

the-glu merged 6 commits into
interuss:masterfrom
Orbitalize:raft_tanka_deployment

Conversation

@marcadamsge

Copy link
Copy Markdown
Contributor

Tanka deployment for raft, changes made:

  • extracted the common cli parameters in a separate libsonnet (like in [raft] helm deployment #1808)
  • created a ingress libsonnet from the core-service.libsonnet so that it can be used also in the raft case
  • created a new raft.libsonnet for the raft deployment that follows the same mechanics as [raft] helm deployment #1808

Test case:

  1. rendering a test yugabyte deployment before and after that PR with "tk show" to check the generated manifest is not changed
  2. deployed locally to check it works on:
    • 2 k3s instance
    • each with 3 raft nodes

@marcadamsge

Copy link
Copy Markdown
Contributor Author

For reference, here are my local test configs:

Yugabyte:

local metadata = metadataBase {
  cloud_provider: 'minikube',
  namespace: 'test-yb',
  clusterName: 'test-yb',
  single_cluster: true,
  enableScd: true,
  enableScdGlobalLock: false,
  enableTimeBasedNotificationIndex: false,
  enableDssMetrics: false,
  enableMonitoring: false,
  datastore: 'yugabyte',
  locality: 'test-yb',
  yugabyte+: {
    image: 'interuss/yugabyte:2025.1.2.1-interuss',
    masterNodeIPs: ['10.10.10.1', '10.10.10.2', '10.10.10.3'],
    tserverNodeIPs: ['10.10.10.4', '10.10.10.5', '10.10.10.6'],
    placement: {
      cloud: 'minikube',
      region: 'local',
      zone: 'local-1',
    },
  },
  backend+: {
    ipName: '',
    image: 'interuss-local/dss:latest',
    imagePullPolicy: 'Never',
    pubKeys: ['/public-certs/auth2.pem'],
    hostname: 'test-yb.localhost',
  },
  schema_manager+: {
    enable: true,
    image: 'interuss-local/dss:latest',
    desired_rid_db_version: '1.0.1',
    desired_scd_db_version: '1.1.1',
    desired_aux_db_version: '1.1.0',
  },
};

test-raft-1:

local metadata = metadataBase {
  cloud_provider: 'minikube',
  namespace: 'test-raft-1',
  clusterName: 'test-raft-1',
  single_cluster: false,
  enableScd: true,
  enableScdGlobalLock: false,
  enableTimeBasedNotificationIndex: false,
  enableDssMetrics: false,
  enableMonitoring: false,
  datastore: 'raft',
  locality: 'test-raft-1',
  backend+: {
    ipName: '',
    image: 'interuss-local/dss:latest',
    imagePullPolicy: 'Never',
    cpuRequest: '1',
    memoryRequest: '2Gi',
    cpuLimit: '2',
    memoryLimit: '4Gi',
    pubKeys: ['/public-certs/auth2.pem'],
    hostname: 'cluster1.localhost',
    publicEndpoint: 'http://cluster1.localhost:8080',
  },
  raft: {
    nodes: [
      { id: 1, endpoint: 'dss-c1-n1.dss.internal:9000', ip: '172.30.0.200' },
      { id: 2, endpoint: 'dss-c1-n2.dss.internal:9000', ip: '172.30.0.201' },
      { id: 3, endpoint: 'dss-c1-n3.dss.internal:9000', ip: '172.30.0.202' },
    ],
    peers: [
      { id: 4, endpoint: 'dss-c2-n1.dss.internal:9000' },
      { id: 5, endpoint: 'dss-c2-n2.dss.internal:9000' },
      { id: 6, endpoint: 'dss-c2-n3.dss.internal:9000' },
    ],
    clusterID: 1,
    tlsSecret: 'dss-raft-tls',
    storage: { size: '10Gi', storageClass: '' },
  },
};

test-raft-2:

local metadata = metadataBase {
  cloud_provider: 'minikube',
  namespace: 'test-raft-2',
  clusterName: 'test-raft-2',
  single_cluster: false,
  enableScd: true,
  enableScdGlobalLock: false,
  enableTimeBasedNotificationIndex: false,
  enableDssMetrics: false,
  enableMonitoring: false,
  datastore: 'raft',
  locality: 'test-raft-2',
  backend+: {
    ipName: '',
    image: 'interuss-local/dss:latest',
    imagePullPolicy: 'Never',
    cpuRequest: '1',
    memoryRequest: '2Gi',
    cpuLimit: '2',
    memoryLimit: '4Gi',
    pubKeys: ['/public-certs/auth2.pem'],
    hostname: 'cluster2.localhost',
    publicEndpoint: 'http://cluster2.localhost:8081',
  },
  raft: {
    nodes: [
      { id: 4, endpoint: 'dss-c2-n1.dss.internal:9000', ip: '172.30.0.220' },
      { id: 5, endpoint: 'dss-c2-n2.dss.internal:9000', ip: '172.30.0.221' },
      { id: 6, endpoint: 'dss-c2-n3.dss.internal:9000', ip: '172.30.0.222' },
    ],
    peers: [
      { id: 1, endpoint: 'dss-c1-n1.dss.internal:9000' },
      { id: 2, endpoint: 'dss-c1-n2.dss.internal:9000' },
      { id: 3, endpoint: 'dss-c1-n3.dss.internal:9000' },
    ],
    clusterID: 1,
    tlsSecret: 'dss-raft-tls',
    storage: { size: '10Gi', storageClass: '' },
  },
};

Comment thread deploy/services/tanka/dss.libsonnet Resolved

@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.

LGTM, Tested in AWS and GKE (without TLS).

Thanks @marcadamsge !

Comment thread deploy/services/tanka/dss.libsonnet Resolved
Comment thread deploy/services/tanka/dss.libsonnet Resolved
Comment thread deploy/services/tanka/dss.libsonnet Resolved
@the-glu
the-glu merged commit 196e37a into interuss:master Nov 6, 2026
20 checks passed
@the-glu
the-glu deleted the raft_tanka_deployment branch November 6, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants