Skip to content

CNCF Meshery Playground - Reset Non-essential Namespaces and Reboot #95

CNCF Meshery Playground - Reset Non-essential Namespaces and Reboot

CNCF Meshery Playground - Reset Non-essential Namespaces and Reboot #95

name: CNCF Meshery Playground - Reset Non-essential Namespaces and Reboot
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Run the job every day at midnight UTC
jobs:
reset:
name: Cluster Reset
if: github.repository == 'meshery/meshery'
runs-on: ubuntu-latest
steps:
- uses: azure/setup-kubectl@v3
- name: Extract kubeconfig
run: mkdir ~/.kube; touch ~/.kube/config ;echo "${{ secrets.PLAYGROUND_CONFIG }}" | base64 --decode > ~/.kube/config
- name: Delete namespaces except the ones which are whitelisted in the if statement
run: |
for ns in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}");
do
if [[ "$ns" != "kube-system" && "$ns" != "default" && "$ns" != "monitoring" && "$ns" != "kube-flannel" && "$ns" != "kube-node-lease" && "$ns" != "kube-public" && "$ns" != "meshery" && "$ns" != "metallb-system" && "$ns" != "projectcontour" ]];then
echo "Deleting namespace $ns"
kubectl delete ns "$ns"
fi
done
reboot:
name: Reboot Metal servers
if: github.repository == 'meshery/meshery'
runs-on: ubuntu-latest
steps:
- name: Download and install Equinix Metal CLI
run: |
curl -L https://github.com/equinix/metal-cli/releases/latest/download/metal-linux-amd64 -o metal
chmod +x metal
sudo mv metal /usr/local/bin/metal
- name: Reboot both servers
env:
METAL_AUTH_TOKEN: ${{ secrets.METAL_AUTH_TOKEN }}
run: |
METAL_AUTH_TOKEN=$METAL_AUTH_TOKEN metal device reboot -i ${{ secrets.METAL_SERVER1 }}
METAL_AUTH_TOKEN=$METAL_AUTH_TOKEN metal device reboot -i ${{ secrets.METAL_SERVER2 }}