mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-18 13:40:37 +00:00
compute: Add more neon ids to compute (#11366)
Pass more neon ids to compute_ctl. Expose them to postgres as neon extension GUCs: neon.project_id, neon.branch_id, neon.endpoint_id. This is the compute side PR, not yet supported by cplane.
This commit is contained in:
committed by
GitHub
parent
0122d97f95
commit
5063151271
@@ -523,11 +523,14 @@ impl ComputeNode {
|
|||||||
|
|
||||||
let pspec = compute_state.pspec.as_ref().expect("spec must be set");
|
let pspec = compute_state.pspec.as_ref().expect("spec must be set");
|
||||||
info!(
|
info!(
|
||||||
"starting compute for project {}, operation {}, tenant {}, timeline {}, features {:?}, spec.remote_extensions {:?}",
|
"starting compute for project {}, operation {}, tenant {}, timeline {}, project {}, branch {}, endpoint {}, features {:?}, spec.remote_extensions {:?}",
|
||||||
pspec.spec.cluster.cluster_id.as_deref().unwrap_or("None"),
|
pspec.spec.cluster.cluster_id.as_deref().unwrap_or("None"),
|
||||||
pspec.spec.operation_uuid.as_deref().unwrap_or("None"),
|
pspec.spec.operation_uuid.as_deref().unwrap_or("None"),
|
||||||
pspec.tenant_id,
|
pspec.tenant_id,
|
||||||
pspec.timeline_id,
|
pspec.timeline_id,
|
||||||
|
pspec.spec.project_id.as_deref().unwrap_or("None"),
|
||||||
|
pspec.spec.branch_id.as_deref().unwrap_or("None"),
|
||||||
|
pspec.spec.endpoint_id.as_deref().unwrap_or("None"),
|
||||||
pspec.spec.features,
|
pspec.spec.features,
|
||||||
pspec.spec.remote_extensions,
|
pspec.spec.remote_extensions,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -89,6 +89,15 @@ pub fn write_postgres_conf(
|
|||||||
escape_conf_value(&s.to_string())
|
escape_conf_value(&s.to_string())
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
|
if let Some(s) = &spec.project_id {
|
||||||
|
writeln!(file, "neon.project_id={}", escape_conf_value(s))?;
|
||||||
|
}
|
||||||
|
if let Some(s) = &spec.branch_id {
|
||||||
|
writeln!(file, "neon.branch_id={}", escape_conf_value(s))?;
|
||||||
|
}
|
||||||
|
if let Some(s) = &spec.endpoint_id {
|
||||||
|
writeln!(file, "neon.endpoint_id={}", escape_conf_value(s))?;
|
||||||
|
}
|
||||||
|
|
||||||
// tls
|
// tls
|
||||||
if let Some(tls_config) = tls_config {
|
if let Some(tls_config) = tls_config {
|
||||||
|
|||||||
@@ -658,6 +658,9 @@ impl Endpoint {
|
|||||||
delta_operations: None,
|
delta_operations: None,
|
||||||
tenant_id: Some(self.tenant_id),
|
tenant_id: Some(self.tenant_id),
|
||||||
timeline_id: Some(self.timeline_id),
|
timeline_id: Some(self.timeline_id),
|
||||||
|
project_id: None,
|
||||||
|
branch_id: None,
|
||||||
|
endpoint_id: Some(self.endpoint_id.clone()),
|
||||||
mode: self.mode,
|
mode: self.mode,
|
||||||
pageserver_connstring: Some(pageserver_connstring),
|
pageserver_connstring: Some(pageserver_connstring),
|
||||||
safekeepers_generation: safekeepers_generation.map(|g| g.into_inner()),
|
safekeepers_generation: safekeepers_generation.map(|g| g.into_inner()),
|
||||||
|
|||||||
@@ -104,6 +104,12 @@ pub struct ComputeSpec {
|
|||||||
pub timeline_id: Option<TimelineId>,
|
pub timeline_id: Option<TimelineId>,
|
||||||
pub pageserver_connstring: Option<String>,
|
pub pageserver_connstring: Option<String>,
|
||||||
|
|
||||||
|
// More neon ids that we expose to the compute_ctl
|
||||||
|
// and to postgres as neon extension GUCs.
|
||||||
|
pub project_id: Option<String>,
|
||||||
|
pub branch_id: Option<String>,
|
||||||
|
pub endpoint_id: Option<String>,
|
||||||
|
|
||||||
/// Safekeeper membership config generation. It is put in
|
/// Safekeeper membership config generation. It is put in
|
||||||
/// neon.safekeepers GUC and serves two purposes:
|
/// neon.safekeepers GUC and serves two purposes:
|
||||||
/// 1) Non zero value forces walproposer to use membership configurations.
|
/// 1) Non zero value forces walproposer to use membership configurations.
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ static const struct config_enum_entry neon_compute_modes[] = {
|
|||||||
/* GUCs */
|
/* GUCs */
|
||||||
char *neon_timeline;
|
char *neon_timeline;
|
||||||
char *neon_tenant;
|
char *neon_tenant;
|
||||||
|
char *neon_project_id;
|
||||||
|
char *neon_branch_id;
|
||||||
|
char *neon_endpoint_id;
|
||||||
int32 max_cluster_size;
|
int32 max_cluster_size;
|
||||||
char *page_server_connstring;
|
char *page_server_connstring;
|
||||||
char *neon_auth_token;
|
char *neon_auth_token;
|
||||||
@@ -1352,6 +1355,31 @@ pg_init_libpagestore(void)
|
|||||||
0, /* no flags required */
|
0, /* no flags required */
|
||||||
check_neon_id, NULL, NULL);
|
check_neon_id, NULL, NULL);
|
||||||
|
|
||||||
|
DefineCustomStringVariable("neon.project_id",
|
||||||
|
"Neon project_id the server is running on",
|
||||||
|
NULL,
|
||||||
|
&neon_project_id,
|
||||||
|
"",
|
||||||
|
PGC_POSTMASTER,
|
||||||
|
0, /* no flags required */
|
||||||
|
check_neon_id, NULL, NULL);
|
||||||
|
DefineCustomStringVariable("neon.branch_id",
|
||||||
|
"Neon branch_id the server is running on",
|
||||||
|
NULL,
|
||||||
|
&neon_branch_id,
|
||||||
|
"",
|
||||||
|
PGC_POSTMASTER,
|
||||||
|
0, /* no flags required */
|
||||||
|
check_neon_id, NULL, NULL);
|
||||||
|
DefineCustomStringVariable("neon.endpoint_id",
|
||||||
|
"Neon endpoint_id the server is running on",
|
||||||
|
NULL,
|
||||||
|
&neon_endpoint_id,
|
||||||
|
"",
|
||||||
|
PGC_POSTMASTER,
|
||||||
|
0, /* no flags required */
|
||||||
|
check_neon_id, NULL, NULL);
|
||||||
|
|
||||||
DefineCustomIntVariable("neon.stripe_size",
|
DefineCustomIntVariable("neon.stripe_size",
|
||||||
"sharding stripe size",
|
"sharding stripe size",
|
||||||
NULL,
|
NULL,
|
||||||
|
|||||||
Reference in New Issue
Block a user