[reconfigurator] clickhouse-admin SMF service with dropshot server#6304
Conversation
clickhouse-admin dropshot serverclickhouse-admin dropshot server
clickhouse-admin dropshot serverclickhouse-admin SMF service with dropshot server
| } | ||
|
|
||
| #[derive(Debug)] | ||
| pub struct Clickward { |
There was a problem hiding this comment.
I realise not all tasks will interact with Clickward's libraries (some sill use the clickhouse CLIs), but I like the name and can't think of anything better :)
andrewjstone
left a comment
There was a problem hiding this comment.
Looks great @karencfv! I'm super psyched to have this.
| Run { | ||
| /// Socket address for a running clickhouse server or keeper instance | ||
| #[clap(long, short = 'a', action)] | ||
| clickhouse_address: SocketAddrV6, |
There was a problem hiding this comment.
I'm not sure we're actually going to need this. The config will all come from nexus such that the only thing starting up will be clickhouse-admin. We can't actually run the server without the rest of the config, so probably no need to pass this in.
However, I'm also fine keeping it for now as it's used to test the only end point. We can remove that and the address endpoint when the time comes.
There was a problem hiding this comment.
Yeah, it's meant for testing for now. I've added a comment so it's clear that we should remove it later
| Self { clickhouse_address } | ||
| } | ||
|
|
||
| pub fn clickhouse_address( |
There was a problem hiding this comment.
We'll probably want to return the entire config struct instead, but this totally works for this PR.
| source.packages = [ | ||
| "clickhouse_svc.tar.gz", | ||
| "internal-dns-cli.tar.gz", | ||
| "omicron-clickhouse-admin.tar.gz", |
There was a problem hiding this comment.
I don't think we actually want to add it here. There's the new ClickhouseServer omicron zone where it should probably live, although we don't yet deploy that. Also fine to leave this for now and take it out later to help testing.
There was a problem hiding this comment.
Same as above it was meant for testing, left a comment to specify this :)
karencfv
left a comment
There was a problem hiding this comment.
Thanks for the review @andrewjstone!
| Run { | ||
| /// Socket address for a running clickhouse server or keeper instance | ||
| #[clap(long, short = 'a', action)] | ||
| clickhouse_address: SocketAddrV6, |
There was a problem hiding this comment.
Yeah, it's meant for testing for now. I've added a comment so it's clear that we should remove it later
| source.packages = [ | ||
| "clickhouse_svc.tar.gz", | ||
| "internal-dns-cli.tar.gz", | ||
| "omicron-clickhouse-admin.tar.gz", |
There was a problem hiding this comment.
Same as above it was meant for testing, left a comment to specify this :)
Overview
New SMF service in
clickhouseandclickhouse_keeperzones which runs a dropshot server. The API contains a single/node/addressendpoint to retrieve the node's listen address. Other endpoints will be added in future PRs.Purpose
This server will be used to manage ClickHouse server and Keeper nodes. For now it performs a single basic action to keep the size of this PR small, but this server will perform other actions like generating the XML config files, retrieving the state of the node etc.
Testing
I've deployed locally with the following results:
Related: #5999