From fcdf511b7ba68282fa6a427a2df2b6855be00c6c Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Fri, 28 Jan 2022 08:08:43 -0600 Subject: [PATCH] Added Orphan Clean Up script Signed-off-by: Andre Wanlin --- contrib/scripts/README.md | 3 +++ .../scripts/orphan-clean-up/OrphanCleanUp.ps1 | 22 +++++++++++++++++++ contrib/scripts/orphan-clean-up/README.md | 19 ++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 contrib/scripts/README.md create mode 100644 contrib/scripts/orphan-clean-up/OrphanCleanUp.ps1 create mode 100644 contrib/scripts/orphan-clean-up/README.md diff --git a/contrib/scripts/README.md b/contrib/scripts/README.md new file mode 100644 index 0000000000..8ed7e09749 --- /dev/null +++ b/contrib/scripts/README.md @@ -0,0 +1,3 @@ +# Scripts + +Here you will find a variety of script contributions. diff --git a/contrib/scripts/orphan-clean-up/OrphanCleanUp.ps1 b/contrib/scripts/orphan-clean-up/OrphanCleanUp.ps1 new file mode 100644 index 0000000000..105dfe7bf8 --- /dev/null +++ b/contrib/scripts/orphan-clean-up/OrphanCleanUp.ps1 @@ -0,0 +1,22 @@ +<# +.DESCRIPTION +Cleanes up orphaned entities for the provided Backstage URL, defaults to the local backend +#> +param( + [string]$backstageUrl = "http://localhost:7007" +) + +$orphanApiUrl = "$backstageUrl/api/catalog/entities?filter=metadata.annotations.backstage.io/orphan=true" +$orphanDeleteApiUrl = "$backstageUrl/api/catalog/entities/by-uid" + +$orphans = Invoke-RestMethod -Method Get -Uri $orphanApiUrl + +Write-Host "" +Write-Host "Found $($orphans.length) orphaned entities" +Write-Host "" + +foreach($orphan in $orphans){ + Write-Host "Deleting orphan $($orphan.metadata.name) of kind $($orphan.kind)" + + Invoke-RestMethod -Method Delete -Uri "$orphanDeleteApiUrl/$($orphan.metadata.uid)" +} \ No newline at end of file diff --git a/contrib/scripts/orphan-clean-up/README.md b/contrib/scripts/orphan-clean-up/README.md new file mode 100644 index 0000000000..444a020e1c --- /dev/null +++ b/contrib/scripts/orphan-clean-up/README.md @@ -0,0 +1,19 @@ +# Orphan Clean Up + +## Overview + +The Orphan Clean Up script is a basic PowerShell script to delete orphaned entities in the catalog. + +## Requirements + +This script is PowerShell based so therefore needs to be ran in a PowerShell session. If you are not able to use PowerShell the script should give you a clear idea as to how to create it with another scripting language like Bash. + +## Usage + +Here's how to use the script: + +1. Download the script +2. Now start a PowerShell session +3. Next navigate to the location you downloaded the script +4. Then run this command replacing `https:\\backstage.my-company.com` with the URL of your Backstage instance: `.\OrphanCleanUp.ps1 https:\\backstage.my-company.com` +5. The script will output the number of orphaned entities it finds and then the name for each one it deletes