Skip to content

Instantly share code, notes, and snippets.

@wirwolf
Forked from cirocosta/containerd-prune
Last active September 1, 2021 13:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wirwolf/5ca056f0c7e0fe4a90b40150471920a8 to your computer and use it in GitHub Desktop.
Save wirwolf/5ca056f0c7e0fe4a90b40150471920a8 to your computer and use it in GitHub Desktop.
prune containerd stuff
#!/bin/bash
set -o errexit
set -o xtrace
main() {
local namespaces=$(list_namespaces)
for namespace in $namespaces; do
local tasks=$(list_tasks $namespace)
for task in $tasks; do
delete_task $namespace $task
done
local containers=$(list_containers_in_namespace $namespace)
for container in $containers; do
delete_container $namespace $container
done
local images=$(list_images $namespace)
for image in $images; do
delete_image $namespace $image
done
delete_namespace $namespace
done
}
list_namespaces() {
ctr --namespace=$namespace namespace list -q
}
list_containers_in_namespace() {
local namespace=$1
ctr --namespace=$namespace container list -q
}
list_tasks() {
local namespace=$1
ctr -n $namespace task list -q
}
list_images() {
local namespace=$1
ctr -n $namespace image list -q
}
delete_image() {
local namespace=$1
local image=$2
ctr -n $namespace image rm $image
}
delete_task() {
local namespace=$1
local task=$2
ctr -n $namespace task delete --force $task
}
delete_container() {
local namespace=$1
local container=$2
ctr --namespace=$namespace container delete $container
}
delete_namespace() {
local namespace=$1
ctr namespace remove $namespace
}
main "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment