Skip to content

Instantly share code, notes, and snippets.

@techdecline
Created October 25, 2021 07:49
Show Gist options
  • Select an option

  • Save techdecline/d2ad4c00c7800338d9a86cac1eb727b9 to your computer and use it in GitHub Desktop.

Select an option

Save techdecline/d2ad4c00c7800338d9a86cac1eb727b9 to your computer and use it in GitHub Desktop.
Kubernetes Maintenance
#region Cleanup Failed Pods
# get all pods
$allPods = (. kubectl get pods --all-namespaces -o json | ConvertFrom-Json).items
# get failed pods
$failedPods = $allPods | Where-Object {$_.status.phase -eq "Failed"}
# remove failed pods
$failedPods | ForEach-Object {
. kubectl delete pod $($_.metadata.name) -n $($_.metadata.namespace)
}
#endregion
#region Cleanup Completed Pods
# get all pods
$allPods = (. kubectl get pods --all-namespaces -o json | ConvertFrom-Json).items
# get failed pods
$completedPods = $allPods | Where-Object {$_.status.phase -eq "Succeeded"}
# remove failed pods
$completedPods | ForEach-Object {
. kubectl delete pod $($_.metadata.name) -n $($_.metadata.namespace)
}
#endregion
#region Cleanup Failed Jobs
# get all jobs
$allJobs = (. kubectl get jobs --all-namespaces -o json | ConvertFrom-Json).items
# get failed pods
$failedJobs = $allJobs | Where-Object {$_.status.conditions.type -eq "Failed"}
# remove failed pods
$failedJobs | ForEach-Object {
. kubectl delete job $($_.metadata.name) -n $($_.metadata.namespace)
}
#endregion
#region Cleanup Old Jobs
# get all jobs
$allJobs = (. kubectl get jobs --all-namespaces -o json | ConvertFrom-Json).items
# get jobs older that 2d
$oldJobs = $allJobs | Where-Object {(get-date $_.status.completionTime) -lt (get-date).AddDays(-2)}
# remove Old Jobs
$oldJobs | ForEach-Object {
. kubectl delete job $($_.metadata.name) -n $($_.metadata.namespace)
}
#endregion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment