-
-
Notifications
You must be signed in to change notification settings - Fork 24
153 lines (142 loc) · 3.95 KB
/
ansible--housekeeping.yml
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: Ansible --02- Houskeeping
on:
workflow_dispatch:
schedule:
- cron: '5 0 * * 3,6' # 00:05 UTC on Wednesdays and Saturdays (6 hour maintenance window)
jobs:
uptime:
name: Uptime
strategy:
matrix:
host_groups:
- ops_all
- stg_oldeworld_api
- prd_oldeworld_api
- stg_oldeworld_pxy
- prd_oldeworld_pxy
- stg_oldeworld_nws
- prd_oldeworld_nws
- stg_oldeworld_jms
- prd_oldeworld_jms
- stg_oldeworld_clt
- prd_oldeworld_clt_eng
- prd_oldeworld_clt_chn
- prd_oldeworld_clt_cnt
- prd_oldeworld_clt_esp
- prd_oldeworld_clt_ger
- prd_oldeworld_clt_ita
- prd_oldeworld_clt_jpn
- prd_oldeworld_clt_por
- prd_oldeworld_clt_ukr
- prd_oldeworld_clt_swa
uses: freeCodeCamp/infra/.github/workflows/ansible--uptime.yml@main
with:
hosts: ${{ matrix.host_groups }}
verbosity: '-v'
serial: 3
secrets:
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
wait-on-uptime:
name: Wait on Uptime
needs: uptime
runs-on: ubuntu-latest
steps:
- name: Wait for 300 seconds
run: sleep 300
update:
name: Update
needs: wait-on-uptime
strategy:
matrix:
host_groups:
- ops_all
- stg_oldeworld_api
- prd_oldeworld_api
- stg_oldeworld_pxy
- prd_oldeworld_pxy
- stg_oldeworld_nws
- prd_oldeworld_nws
- stg_oldeworld_jms
- prd_oldeworld_jms
- stg_oldeworld_clt
- prd_oldeworld_clt_eng
- prd_oldeworld_clt_chn
- prd_oldeworld_clt_cnt
- prd_oldeworld_clt_esp
- prd_oldeworld_clt_ger
- prd_oldeworld_clt_ita
- prd_oldeworld_clt_jpn
- prd_oldeworld_clt_por
- prd_oldeworld_clt_ukr
- prd_oldeworld_clt_swa
uses: freeCodeCamp/infra/.github/workflows/ansible--update.yml@main
with:
hosts: ${{ matrix.host_groups }}
verbosity: '-v'
serial: 1
secrets:
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
wait-on-update:
name: Wait on Update
needs: update
runs-on: ubuntu-latest
steps:
- name: Wait for 300 seconds
run: sleep 300
reboot-web:
name: Reboot Ingress
needs: wait-on-update
strategy:
matrix:
host_groups:
- stg_oldeworld_pxy
- prd_oldeworld_pxy
uses: freeCodeCamp/infra/.github/workflows/ansible--reboot.yml@main
with:
hosts: ${{ matrix.host_groups }}
verbosity: '-v'
serial: 1
secrets:
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
wait-on-reboot-web:
name: Wait on Reboot (Web)
needs: reboot-web
runs-on: ubuntu-latest
steps:
- name: Wait for 300 seconds
run: sleep 300
reboot:
name: Reboot
needs: wait-on-reboot-web
strategy:
matrix:
host_groups:
- ops_all
- stg_oldeworld_api
- prd_oldeworld_api
- stg_oldeworld_nws
- prd_oldeworld_nws
- stg_oldeworld_jms
- prd_oldeworld_jms
- stg_oldeworld_clt
- prd_oldeworld_clt_eng
- prd_oldeworld_clt_chn
- prd_oldeworld_clt_cnt
- prd_oldeworld_clt_esp
- prd_oldeworld_clt_ger
- prd_oldeworld_clt_ita
- prd_oldeworld_clt_jpn
- prd_oldeworld_clt_por
- prd_oldeworld_clt_ukr
- prd_oldeworld_clt_swa
uses: freeCodeCamp/infra/.github/workflows/ansible--reboot.yml@main
with:
hosts: ${{ matrix.host_groups }}
verbosity: '-v'
serial: 1
secrets:
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}