mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
Add foreground deletion check to ensure GC is aware of the new custom type
This commit is contained in:
parent
cad44602e1
commit
fad11f87b4
@ -959,6 +959,35 @@ var _ = SIGDescribe("Garbage collector", func() {
|
||||
framework.Failf("failed to delete owner resource %q: %v", ownerName, err)
|
||||
}
|
||||
|
||||
// Create and delete an unrelated instance of the custom resource in foreground deletion mode,
|
||||
// so we have a signal when GC is aware of this custom resource type
|
||||
canaryName := names.SimpleNameGenerator.GenerateName("canary")
|
||||
canary := &unstructured.Unstructured{
|
||||
Object: map[string]interface{}{
|
||||
"apiVersion": apiVersion,
|
||||
"kind": definition.Spec.Names.Kind,
|
||||
"metadata": map[string]interface{}{"name": canaryName}},
|
||||
}
|
||||
_, err = resourceClient.Create(canary, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
framework.Failf("failed to create canary resource %q: %v", canaryName, err)
|
||||
}
|
||||
framework.Logf("created canary resource %q", canaryName)
|
||||
foreground := metav1.DeletePropagationForeground
|
||||
err = resourceClient.Delete(canaryName, &metav1.DeleteOptions{PropagationPolicy: &foreground})
|
||||
if err != nil {
|
||||
framework.Failf("failed to delete canary resource %q: %v", canaryName, err)
|
||||
}
|
||||
// Wait for the canary foreground finalization to complete, which means GC is aware of our new custom resource type
|
||||
var lastCanary *unstructured.Unstructured
|
||||
if err := wait.PollImmediate(5*time.Second, 3*time.Minute, func() (bool, error) {
|
||||
lastCanary, err = resourceClient.Get(dependentName, metav1.GetOptions{})
|
||||
return apierrors.IsNotFound(err), nil
|
||||
}); err != nil {
|
||||
framework.Logf("canary last state: %#v", lastCanary)
|
||||
framework.Failf("failed waiting for canary resource %q to be deleted", canaryName)
|
||||
}
|
||||
|
||||
// Ensure the dependent is deleted.
|
||||
var lastDependent *unstructured.Unstructured
|
||||
var err2 error
|
||||
|
Loading…
Reference in New Issue
Block a user