Skip to content

Instantly share code, notes, and snippets.

@grampelberg
Created July 24, 2024 14:22
Show Gist options
  • Select an option

  • Save grampelberg/bea42821fa4fe1fe88ee48c8262339b3 to your computer and use it in GitHub Desktop.

Select an option

Save grampelberg/bea42821fa4fe1fe88ee48c8262339b3 to your computer and use it in GitHub Desktop.

Revisions

  1. grampelberg created this gist Jul 24, 2024.
    22 changes: 22 additions & 0 deletions crd.rs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    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)
    }));
    }