port orphan cleanup script to bash
Signed-off-by: Kiss Miklos <miklos@roadie.io>
This commit is contained in:
@@ -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
@@ -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
|
||||
Reference in New Issue
Block a user