forked from meshery/meshery
-
Notifications
You must be signed in to change notification settings - Fork 0
40 lines (39 loc) · 1.71 KB
/
cncf-playground-reset.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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 }}