Skip to content

Instantly share code, notes, and snippets.

@grampelberg
Created July 24, 2024 14:22
Show Gist options
  • Save grampelberg/bea42821fa4fe1fe88ee48c8262339b3 to your computer and use it in GitHub Desktop.
Save grampelberg/bea42821fa4fe1fe88ee48c8262339b3 to your computer and use it in GitHub Desktop.
let errors: Vec<kube::Error> = futures::stream::iter(crate::resources::all())
.map(|resource| async move { client.create(&PostParams::default(), &resource).await })
.buffered(100)
.inspect(|result| {
if let Ok(o) = result {
info!(name = o.name_any(), "created CRD");
}
})
.collect::<Vec<Result<CustomResourceDefinition, _>>>()
.await
.into_iter()
.filter(Result::is_err)
.map(Result::unwrap_err)
.collect();
if !errors.is_empty() {
return Err(errors
.into_iter()
.fold(eyre!("unable to create resources"), |acc, err| {
acc.error(err)
}));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment