feat: add --peers to controller for HA peer list and priority election

- myconf_t gains peers_cfg (xce_cluster_config_t) populated from --peers
- controller/main.c: parse --peers host:port,... via argp; ca_cert_path
  auto-derived from workdir/certs/xce.crt (no --ca-cert flag needed)
- cluster_init: derive my_priority from position in peers list (index 0 =
  primary); fall back to 0 when --peers not given (single-node mode)
This commit is contained in:
Rongsong Shen 2026-05-08 04:40:27 +00:00
parent d61f91b99c
commit 59597e105e
10 changed files with 8046 additions and 325 deletions

View file

@ -7,6 +7,7 @@
#include <tlog.h>
#include "clusterconfig.h"
#include "xce/cluster.h"
struct logging {
char* logdir;
@ -14,12 +15,13 @@ struct logging {
};
typedef struct {
cluster_config_t* cluster_config;
char* conffile;
char* certfile;
char* keyfile;
char* workdir; /* working directory for WAL/snapshot storage */
char* name; /* controller name (hostname by default) */
cluster_config_t* cluster_config;
char* conffile;
char* certfile;
char* keyfile;
char* workdir; /* working directory for WAL/snapshot storage */
char* name; /* controller name (hostname by default) */
xce_cluster_config_t peers_cfg; /* HA peer list parsed from --peers; count==0 = single-node */
} myconf_t;
extern cluster_config_t* get_default_conf(void*);