fix: docker-image would not build due to syntax mistake
All checks were successful
/ build (push) Successful in 5m25s

This commit is contained in:
Tamipes 2026-06-08 01:00:37 +02:00
parent fb52167fc2
commit 3f8fb4a01f
3 changed files with 28 additions and 25 deletions

View file

@ -5,11 +5,13 @@ dockerTools.buildLayeredImage {
contents = [ my-crate ]; contents = [ my-crate ];
config.Entrypoint = [ ("/bin/" + my-crate.pname) ]; config = {
Entrypoint = [ ("/bin/" + my-crate.pname) ];
Labels = { Labels = {
"org.opencontainers.image.title" = "Minecraft Ingress"; "org.opencontainers.image.title" = "Minecraft Ingress";
"org.opencontainers.image.source" = "https://git.tami.moe/tamipes/mc-ingress"; "org.opencontainers.image.source" = "https://git.tami.moe/tamipes/mc-ingress";
"org.opencontainers.image.vendor" = "Tamipes"; "org.opencontainers.image.vendor" = "Tamipes";
"org.opencontainers.image.version" = my-crate.version; "org.opencontainers.image.version" = my-crate.version;
}; };
};
} }

View file

@ -80,9 +80,6 @@ impl KubeCache {
async fn get_srv(&self, name: &str) -> Result<Service, kube::Error> { async fn get_srv(&self, name: &str) -> Result<Service, kube::Error> {
self.srv_api.get(name).await self.srv_api.get(name).await
} }
async fn list_deploys(&self) -> Vec<Arc<Deployment>> {
self.dep_cache.state()
}
async fn list_srvs(&self) -> ObjectList<Service> { async fn list_srvs(&self) -> ObjectList<Service> {
// let lp: ListParams = ListParams::default(); // let lp: ListParams = ListParams::default();
let lp: ListParams = ListParams::default().labels(MAIN_LABEL); let lp: ListParams = ListParams::default().labels(MAIN_LABEL);
@ -90,10 +87,7 @@ impl KubeCache {
} }
pub async fn query_dep(&self, addr: &str, port: &str) -> Option<Arc<Deployment>> { pub async fn query_dep(&self, addr: &str, port: &str) -> Option<Arc<Deployment>> {
let deploys = self.list_deploys().await; self.dep_cache.find(|x| filter_label_value(x, addr, port))
deploys
.into_iter()
.find(|x| filter_label_value(x.as_ref(), addr, port))
} }
pub async fn query_srv(&self, addr: &str, port: &str) -> Option<Service> { pub async fn query_srv(&self, addr: &str, port: &str) -> Option<Service> {

View file

@ -101,10 +101,10 @@ async fn main() {
tokio::select! { tokio::select! {
result = api_task => { result = api_task => {
tracing::error!("The api tokio:spawn'ed task run to completion, which should not happen!"); tracing::error!("The api tokio:spawn'ed task ran to completion, which should not happen!");
} }
result = conn_task => { result = conn_task => {
tracing::error!("The connection handling tokio:spawn'ed task run to completion, which should not happen!"); tracing::error!("The connection handling tokio:spawn'ed task ran to completion, which should not happen!");
} }
} }
} }
@ -171,8 +171,8 @@ where
let span = tracing::span!( let span = tracing::span!(
tracing::Level::INFO, tracing::Level::INFO,
"login_username_extract", "login_username_extract",
server_addr = handshake.get_server_address(), join_addr = handshake.get_server_address(),
server_port = handshake.server_port.get_value() join_port = handshake.server_port.get_value()
); );
let packet = Packet::parse(&mut client_stream) let packet = Packet::parse(&mut client_stream)
@ -195,7 +195,7 @@ where
Ok(()) Ok(())
} }
#[tracing::instrument(level = "info", fields(server_addr = handshake.get_server_address(),server_port = handshake.server_port.get_value()),skip(client_stream, handshake, api))] #[tracing::instrument(level = "info", fields(join_addr = handshake.get_server_address(),join_port = handshake.server_port.get_value()),skip(client_stream, handshake, api))]
async fn handle_status<T: MinecraftServerHandle>( async fn handle_status<T: MinecraftServerHandle>(
client_stream: &mut TcpStream, client_stream: &mut TcpStream,
handshake: &Handshake, handshake: &Handshake,
@ -212,7 +212,7 @@ where
))); )));
}; };
let server_addr = handshake.get_server_address(); let join_addr = handshake.get_server_address();
let mut status_struct = StatusStructNew::create(); let mut status_struct = StatusStructNew::create();
status_struct.version.protocol = handshake.protocol_version.get_int(); status_struct.version.protocol = handshake.protocol_version.get_int();
@ -229,7 +229,7 @@ where
status_struct.players.max = 0; status_struct.players.max = 0;
status_struct.players.online = 0; status_struct.players.online = 0;
status_struct.description.text = format!( status_struct.description.text = format!(
"Could not find §kserver§r: §f§o{server_addr}§r\nMinecraft Ingress - {BYE_MESSAGE}" "Could not find §kserver§r: §f§o{join_addr}§r\nMinecraft Ingress - {BYE_MESSAGE}"
); );
mc_server::complete_status_request(client_stream, status_struct) mc_server::complete_status_request(client_stream, status_struct)
@ -289,7 +289,7 @@ where
return mc_server::handle_ping(client_stream).await; return mc_server::handle_ping(client_stream).await;
} }
#[tracing::instrument(level = "info", fields(server_addr = handshake.get_server_address(),server_port = handshake.server_port.get_value(),username = login_start.name.get_value()),skip(client_stream, handshake, api, login_start))] #[tracing::instrument(level = "info", fields(join_addr = handshake.get_server_address(),join_port = handshake.server_port.get_value(),username = login_start.name.get_value()),skip(client_stream, handshake, api, login_start))]
async fn handle_login<T: MinecraftServerHandle>( async fn handle_login<T: MinecraftServerHandle>(
client_stream: &mut TcpStream, client_stream: &mut TcpStream,
handshake: &Handshake, handshake: &Handshake,
@ -304,13 +304,16 @@ where
&handshake.get_server_address(), &handshake.get_server_address(),
&handshake.server_port.get_value().to_string(), &handshake.server_port.get_value().to_string(),
) )
.await .await;
.map_err(|e| e.set_level(tracing::Level::WARN))?;
let status = server.query_status().await?; let status = match server.as_ref() {
Ok(x) => x.query_status().await?,
Err(e) => ServerDeploymentStatus::Unavailable(e.get_kind().to_string()),
};
tracing::debug!(msg = "server status", status = ?status); tracing::debug!(msg = "server status", status = ?status);
match status { match status {
ServerDeploymentStatus::Connectable(mut server_stream) => { ServerDeploymentStatus::Connectable(mut server_stream) => {
let server = server?;
api.start_watch(server.clone(), OFFLINE_TIMER).await?; api.start_watch(server.clone(), OFFLINE_TIMER).await?;
// referenced from: // referenced from:
@ -357,14 +360,18 @@ where
} }
} }
ServerDeploymentStatus::PodOk | ServerDeploymentStatus::Starting => { ServerDeploymentStatus::PodOk | ServerDeploymentStatus::Starting => {
tracing::info!(?status, "server is starting... disconnecting client");
mc_server::send_disconnect(client_stream, format!("[\"\",{{\"text\":\"The server is still starting up...\n wait a bit more please ^^\n\n\"}},{{\"text\":\"{BYE_MESSAGE}\"}}]").as_str()).await?; mc_server::send_disconnect(client_stream, format!("[\"\",{{\"text\":\"The server is still starting up...\n wait a bit more please ^^\n\n\"}},{{\"text\":\"{BYE_MESSAGE}\"}}]").as_str()).await?;
} }
ServerDeploymentStatus::Offline => { ServerDeploymentStatus::Offline => {
let server = server?;
server.start().await?; server.start().await?;
api.start_watch(server.clone(), OFFLINE_TIMER).await?; api.start_watch(server.clone(), OFFLINE_TIMER).await?;
mc_server::send_disconnect(client_stream, format!("[\"\",{{\"text\":\"Okayy, §2starting§r the server!\n\n\"}},{{\"text\":\"{BYE_MESSAGE}\"}}]").as_str()).await?; mc_server::send_disconnect(client_stream, format!("[\"\",{{\"text\":\"Okayy, §2starting§r the server!\n\n\"}},{{\"text\":\"{BYE_MESSAGE}\"}}]").as_str()).await?;
} }
ServerDeploymentStatus::Unavailable(_) => unreachable!(), ServerDeploymentStatus::Unavailable(_) => {
tracing::info!(?status, "tried connecting, droppping connection");
}
} }
Ok(()) Ok(())
} }