diff --git a/e2e/e2e.ml b/e2e/e2e.ml index 8f2ea30..c4a68e3 100644 --- a/e2e/e2e.ml +++ b/e2e/e2e.ml @@ -180,6 +180,15 @@ let check_pod_age ~component ~smaller_than = in assert b +let count_pods ~generate_name = + let stdout, _ = + kubectl + (Printf.sprintf + {|get pod -n e2e -o json | jq '[.items[] | select(.metadata.generateName == "%s")] | length'|} + generate_name) + in + stdout |> String.trim |> int_of_string + let setup () = () let () = @@ -194,6 +203,9 @@ let () = wait_deploy_available ~n:"e2e" "mastodon0-streaming"; wait_deploy_available ~n:"e2e" "mastodon0-web"; + assert (count_pods ~generate_name:"mastodon0-pre-migration-" = 0); + assert (count_pods ~generate_name:"mastodon0-post-migration-" = 0); + check_deploy_resources ~n:"e2e" ~limits_cpu:"1" ~limits_memory:"1000Mi" ~requests_cpu:"100m" ~requests_memory:"100Mi" "mastodon0-web"; check_deploy_resources ~n:"e2e" ~limits_memory:"100Mi" diff --git a/lib/k.ml b/lib/k.ml index 64b9953..096f3c6 100644 --- a/lib/k.ml +++ b/lib/k.ml @@ -1070,12 +1070,13 @@ module Make (B : Bare.S) = struct B.list_for_all_namespaces ~sw client () |> expect_one |> Result.map B.to_list - let delete client ?uid ?namespace ~name () = + let delete client ?propagation_policy ?uid ?namespace ~name () = let namespace = Option.value ~default:"" namespace in Eio.Switch.run @@ fun sw -> - B.delete_namespaced ~sw client ~name ~namespace + B.delete_namespaced ~sw client ~name ~namespace ?propagation_policy ~body: (Io_k8s_apimachinery_pkg_apis_meta_v1_delete_options.make + ?propagation_policy ~preconditions: (Io_k8s_apimachinery_pkg_apis_meta_v1_preconditions.make ?uid ()) ()) diff --git a/lib/mastodon_reconciler.ml b/lib/mastodon_reconciler.ml index 6d3488e..9ae4b16 100644 --- a/lib/mastodon_reconciler.ml +++ b/lib/mastodon_reconciler.ml @@ -710,7 +710,8 @@ let delete_job client ~(mastodon : Mastodon.t) ~kind = let name = Option.get (Option.get mastodon.metadata).name in let namespace = Option.get (Option.get mastodon.metadata).namespace in let job_name = get_job_name name kind in - K.Job.delete client ~name:job_name ~namespace () + K.Job.delete client ~name:job_name ~namespace ~propagation_policy:"Background" + () |> ignore_not_found_error |> Result.map_error K.show_error