-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.lagoon.yml
More file actions
128 lines (123 loc) · 4.78 KB
/
Copy path.lagoon.yml
File metadata and controls
128 lines (123 loc) · 4.78 KB
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
docker-compose-yaml: docker-compose.yml
environments:
prod:
cronjobs:
- name: monitor-teams
schedule: "0 * * * *"
command: python scripts/trigger_recon_job.py
service: backend
- name: hard-delete-teams
schedule: "0 3 * * *"
command: python scripts/trigger_hard_delete_job.py
service: backend
- name: sync-pool-budgets
schedule: "0 4 * * *"
command: python scripts/trigger_sync_pool_budgets_job.py
service: backend
- name: monitor-trial-users
schedule: "0 5 1 * *"
command: python scripts/trigger_trial_recon_job.py
service: backend
- name: reap-trial-keys
schedule: "0 1 * * *"
command: python scripts/trigger_trial_reaper_job.py
service: backend
- name: refresh-disposable-domains
schedule: "0 2 * * *"
command: python scripts/trigger_refresh_disposable_domains_job.py
service: backend
- name: prune-signup-events
schedule: "30 2 * * *"
command: python scripts/trigger_prune_signup_events_job.py
service: backend
- name: prune-revoked-tokens
schedule: "45 2 * * *"
command: python scripts/trigger_prune_revoked_tokens_job.py
service: backend
# Frequent on purpose: a 90% warning is worthless if it lands an hour after
# the key stopped working. The sweep is 2 LiteLLM calls per region and
# scales with active entities, not key count, so 5 minutes is affordable.
- name: monitor-budget-thresholds
schedule: "*/5 * * * *"
command: python scripts/trigger_budget_alerts_job.py
service: backend
# 'synced' only means a sync once succeeded — proxies drift (admin UI
# deletions, DB restores, cluster rollouts). Two LiteLLM calls per
# region when nothing drifted, so 5 minutes is affordable.
- name: reconcile-model-sync
schedule: "*/5 * * * *"
command: python scripts/trigger_model_reconcile_job.py
service: backend
routes:
- backend:
- api.amazee.ai:
tls-acme: true
insecure: Redirect
hstsEnabled: true
- frontend:
- dashboard.amazee.ai:
tls-acme: true
insecure: Redirect
hstsEnabled: true
dev:
cronjobs:
- name: monitor-teams
schedule: "0 * * * *"
command: python scripts/trigger_recon_job.py
service: backend
- name: hard-delete-teams
schedule: "0 3 * * *"
command: python scripts/trigger_hard_delete_job.py
service: backend
- name: sync-pool-budgets
schedule: "0 4 * * *"
command: python scripts/trigger_sync_pool_budgets_job.py
service: backend
- name: monitor-trial-users
schedule: "0 5 1 * *"
command: python scripts/trigger_trial_recon_job.py
service: backend
- name: reap-trial-keys
schedule: "0 1 * * *"
command: python scripts/trigger_trial_reaper_job.py
service: backend
- name: refresh-disposable-domains
schedule: "0 2 * * *"
command: python scripts/trigger_refresh_disposable_domains_job.py
service: backend
- name: prune-signup-events
schedule: "30 2 * * *"
command: python scripts/trigger_prune_signup_events_job.py
service: backend
- name: prune-revoked-tokens
schedule: "45 2 * * *"
command: python scripts/trigger_prune_revoked_tokens_job.py
service: backend
- name: monitor-budget-thresholds
schedule: "*/5 * * * *"
command: python scripts/trigger_budget_alerts_job.py
service: backend
# 'synced' only means a sync once succeeded — proxies drift (admin UI
# deletions, DB restores, cluster rollouts). Two LiteLLM calls per
# region when nothing drifted, so 5 minutes is affordable.
- name: reconcile-model-sync
schedule: "*/5 * * * *"
command: python scripts/trigger_model_reconcile_job.py
service: backend
tasks:
post-rollout:
- run:
name: purge fastly cache
command: |
# Extract service ID (remove ":true" if present)
SERVICE_ID="${LAGOON_FASTLY_SERVICE_ID%%:*}"
# Purge all cached content for the Fastly service.
# This covers both backend (api.amazee.ai) and frontend (dashboard.amazee.ai)
# and ensures HTML pages and JS chunks stay in sync after deploy.
curl -f -sS -X POST "https://api.fastly.com/service/$SERVICE_ID/purge_all" \
-H "Fastly-Key: $FASTLY_TOKEN" \
-H "Fastly-Soft-Purge: 1" \
-H "Accept: application/json" || { echo "Fastly purge failed! Check FASTLY_TOKEN."; exit 1; }
service: backend
shell: bash
when: LAGOON_ENVIRONMENT == "prod"