Repository navigation
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
123 lines (116 loc) · 3.75 KB
/
Copy pathconfig.example.yaml
File metadata and controls
123 lines (116 loc) · 3.75 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
# dispatchoor configuration example
# Copy this file to config.yaml and customize as needed.
server:
listen: ":9090"
cors_origins:
- "*"
# Rate limiting per IP address (disabled by default)
rate_limit:
enabled: false
auth:
requests_per_minute: 10 # Strict for login/OAuth endpoints
public:
requests_per_minute: 60 # Moderate for health/metrics
authenticated:
requests_per_minute: 120 # Relaxed for authenticated users
database:
driver: sqlite
sqlite:
path: ./dispatchoor.db
# For PostgreSQL:
# driver: postgres
# postgres:
# host: localhost
# port: 5432
# user: dispatchoor
# password: ${DB_PASSWORD}
# database: dispatchoor
# sslmode: disable
github:
token: ${GITHUB_TOKEN}
# Optional: separate token for listing runners (falls back to token if not set)
# runners_token: ${GITHUB_RUNNERS_TOKEN}
poll_interval: 60s
rate_limit_buffer: 100
dispatcher:
enabled: true
interval: 30s
tracking_interval: 30s
auth:
session_ttl: 24h
basic:
enabled: true
users:
- username: admin
password: ${ADMIN_PASSWORD}
role: admin
- username: viewer
password: ${VIEWER_PASSWORD}
role: readonly
github:
enabled: false
client_id: ${GITHUB_CLIENT_ID}
client_secret: ${GITHUB_CLIENT_SECRET}
# URL to redirect to after successful login (e.g., your UI URL)
redirect_url: http://localhost:3000
# Role mappings control both access and permissions.
# Users must be in at least one mapping to log in.
org_role_mapping:
ethpandaops: admin
# Map individual GitHub usernames to roles (case-insensitive)
# user_role_mapping:
# octocat: admin
# History retention settings for job cleanup
history:
retention_days: 30 # Days to keep completed/failed/cancelled jobs (default: 30, -1 to disable)
cleanup_interval: 1h # How often to run cleanup (default: 1h)
# Groups define runner pools and their dispatchable workflow templates
groups:
github:
- id: sync-tests
name: Sync Tests
description: Ethereum sync testing jobs
# Optional category used to group related groups in the UI.
# Groups without a category land in the "Global" category.
category: Sync Tests
runner_labels:
- self-hosted
- synctest
- Disk2TB
# Queue an auto-requeue job for each template the first time it is loaded
# (at startup or on template reload).
# auto_enqueue_new_templates: true
# Templates can be defined inline, loaded from local files, or fetched from remote URLs:
# workflow_dispatch_templates_files:
# - templates/hoodi.yaml
# - templates/mainnet.yaml
# workflow_dispatch_templates_urls:
# - https://raw.githubusercontent.com/myorg/templates/main/sync-tests.yaml
# All sources can be used together - file and URL templates are appended to inline templates.
workflow_dispatch_templates:
- id: sync-test-hoodi-geth-prysm
name: Sync Test (Hoodi) - geth/prysm
owner: ethpandaops
repo: syncoor-tests
workflow_id: syncoor.yaml
ref: master
inputs:
run-timeout-minutes: "1380"
el-client: '"geth"'
cl-client: '"prysm"'
config: >-
{
"network": "hoodi",
"consensus": {
"syncType": "checkpoint",
"nodeType": "fullnode",
"images": {
"prysm": "gcr.io/offchainlabs/prysm/beacon-chain:stable"
}
},
"execution": {
"images": {
"geth": "ethereum/client-go:stable"
}
}
}