port orphan cleanup script to bash

Signed-off-by: Kiss Miklos <miklos@roadie.io>
This commit is contained in:
Kiss Miklos
2022-10-16 13:15:54 +02:00
parent 862f251718
commit a0da6c275d
2 changed files with 51 additions and 4 deletions
+31 -4
View File
@@ -2,20 +2,47 @@
## Overview
The Orphan Clean Up script is a basic PowerShell script to delete orphaned entities in the catalog. This script also assumes that you do not have authentication setup for your Backstage API endpoints.
The Orphan Clean Up scripts are a basic scripts to delete orphaned entities in the catalog.
This script also assumes that you do not have authentication setup for your Backstage API endpoints.
_Warning:_ There is a risk of entities being orphaned (and being deleted by this script) in case of the location having problems and returning a 404 status code. This might lead to accidental deletion of entities until the processing loop has recreated the entity.
## Requirements
## PowerShell
A PowerShell implementation of a the orphan cleanup script.
### 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
### Usage
Here's how to use the script:
1. Download the script
1. Download the `OrphanCleanUp.ps1` 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
## Bash
A bash implementation implementation of a the orphan cleanup script.
### Requirements
This script is shell based and requires the following programs to be installed on your system:
- curl
- jq
### Usage
Here's how to use the script:
1. Download the `orphan_cleanup.sh` script
2. Now start a bash 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: `./orphan_cleanup.sh 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
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
# Cleanes up orphaned entities for the provided Backstage URL, defaults to the local backend
BACKSTAGE_URL=${1:-'http://localhost:7007'}
echo $BACKSTAGE_URL
ORPHAN_API_URL="$BACKSTAGE_URL/api/catalog/entities?filter=metadata.annotations.backstage.io/orphan=true"
ORPHAN_DELETE_API_URL="$BACKSTAGE_URL/api/catalog/entities/by-uid"
ORPHANS=$(curl -s $ORPHAN_API_URL)
echo ""
echo "Found $(echo $ORPHANS | jq length ) orphaned entities"
echo ""
jq -c '.[]' <<< $ORPHANS | while read ORPHAN; do
echo $ORPHAN | jq "."
echo "Deleting orphan entity: $(echo $ORPHAN | jq -r .metadata.name) of kind: $(echo $ORPHAN | jq -r .kind)"
curl -X DELETE "$ORPHAN_DELETE_API_URL/$(echo $ORPHAN | jq -r .metadata.uid)"
done