From 0682c74e9d5083b43b3f83f8bb1ca747658d1455 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Tue, 7 Dec 2021 17:56:15 +0100 Subject: Watch multiple consul nodes --- src/main.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 9d710b2..4a0c0ec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,8 @@ #[macro_use] extern crate anyhow; +use structopt::StructOpt; + mod cert; mod cert_store; mod consul; @@ -11,15 +13,34 @@ mod reverse_proxy; use log::*; +#[derive(StructOpt, Debug)] +#[structopt(name = "tricot")] +struct Opt { + /// Address of consul server + #[structopt(long = "consul-addr", env = "TRICOT_CONSUL_HOST", default_value = "http://127.0.0.1:8500/")] + pub consul_addr: String, + + /// Prefix of Tricot's entries in Consul KV space + #[structopt(long = "consul-kv-prefix", env = "TRICOT_CONSUL_KV_PREFIX", default_value = "tricot/")] + pub consul_kv_prefix: String, + + /// Node name + #[structopt(long = "node-name", env = "TRICOT_NODE_NAME", default_value = "")] + pub node_name: String, +} + #[tokio::main(flavor = "multi_thread", worker_threads = 10)] async fn main() { if std::env::var("RUST_LOG").is_err() { std::env::set_var("RUST_LOG", "tricot=debug") } pretty_env_logger::init(); + + let opt = Opt::from_args(); + info!("Starting Tricot"); - let consul = consul::Consul::new("http://10.42.0.21:8500", "tricot/", "carcajou"); + let consul = consul::Consul::new(&opt.consul_addr, &opt.consul_kv_prefix, &opt.node_name); let mut rx_proxy_config = proxy_config::spawn_proxy_config_task(consul.clone()); let cert_store = cert_store::CertStore::new(consul.clone()); -- cgit v1.2.3