build agents from internal/meta when it pins their config
A rebuild's MetaSync resolves the head of the swarm's internal/meta once and records it; the prebuild and the swap build that flake instead of the hive's own, and a first deploy does the same in Create. hive-priv takes the commit as a validated meta_rev on UpdateContainer and CreateContainer and builds from its own forge URL (HIVE_PRIV_FORGE_URL). The head is used only when its flake lists the agent at the config commit the forge's main is at; otherwise, and when the repo has no commit or this hive has no core token file for nix's git, the hive renders locally as before. hive-c0re's and hive-priv's gitconfig now share the forge credential helper and rewrite the forge's https URLs to http, which hive-priv lacked.
This commit is contained in:
parent
22e2d30581
commit
7c0a622d41
19 changed files with 831 additions and 64 deletions
|
|
@ -235,12 +235,14 @@ pub async fn kill_container(name: &str) -> Result<()> {
|
|||
/// appending lines to `build_logs` or otherwise capturing the output.
|
||||
pub async fn update_container_streaming(
|
||||
name: &str,
|
||||
meta_rev: Option<&str>,
|
||||
on_line: impl FnMut(PrivStream, &str),
|
||||
) -> Result<()> {
|
||||
ok(call_streaming(
|
||||
&PrivRequest::UpdateContainer {
|
||||
name: name.to_owned(),
|
||||
stream: true,
|
||||
meta_rev: meta_rev.map(str::to_owned),
|
||||
},
|
||||
on_line,
|
||||
)
|
||||
|
|
@ -251,12 +253,14 @@ pub async fn update_container_streaming(
|
|||
/// arrive. Returns `Ok(())` on success.
|
||||
pub async fn create_container_streaming(
|
||||
name: &str,
|
||||
meta_rev: Option<&str>,
|
||||
on_line: impl FnMut(PrivStream, &str),
|
||||
) -> Result<()> {
|
||||
ok(call_streaming(
|
||||
&PrivRequest::CreateContainer {
|
||||
name: name.to_owned(),
|
||||
stream: true,
|
||||
meta_rev: meta_rev.map(str::to_owned),
|
||||
},
|
||||
on_line,
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue