/
config.cfg.template
352 lines (332 loc) · 13.5 KB
/
config.cfg.template
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
# -*- python -*-
# vim: ft=python
config = {
# database connection properties
"database_config": {
"drivername": "postgresql",
"host": "localhost",
# "database": "koschei",
# "username": "koschei",
# "password": "",
# "port": 5432,
},
# koschei can use separate koji instances for different tasks:
# - primary - for building packages (and getting results), downloading
# repos and getting build group
# - secondary - for getting real builds, package list, buildrequires and
# SRPMs
# primary instance:
"koji_config": {
"server": "https://koji.fedoraproject.org/kojihub",
"topurl": "https://kojipkgs.fedoraproject.org",
"weburl": "https://koji.fedoraproject.org/koji",
"srpm_relative_path_root": "..",
# name of login method on KojiSession
"login_method": "logout",
# arguments passed to the login method
"login_args": {
# "cert": "/etc/koschei/fedora.cert",
# "ca": "/etc/koschei/fedora-server-ca.cert",
# "serverca": "/etc/koschei/fedora-server-ca.cert",
},
# maximum number of koschei builds running at the same time
"max_builds": 30,
# architectures which are considered during Koji load calculation
"build_arches": ['i386', 'x86_64', 'armhfp'],
# build options passed to KojiSession.build
"build_opts": {
},
# koji load value is computed from load values of all hosts of enabled
# architectures in default channel. If the value is higher than
# load_thresholds, no builds will be submitted
"load_threshold": 0.5,
# koji task priority (to make it lower than tasks of regular users)
"task_priority": 30,
# time in seconds after Koji tasks are canceled by Koschei
# (should be longer than internal Koji task timeout)
"task_timeout": 48*3600,
# maximum number of items in single koji multicall. Too low values may
# cause poor performance, too high values may cause timeouts.
"multicall_chunk_size": 100,
# run scratch-builds from latest known repo_id to avoid race
# condition between dependency resolution by Koschei and new
# repo generation by Koji. Requires extra Koji privileges.
"build_from_repo_id": False,
},
# secondary koji instance configuration, leave empty if you want default
# primary mode
"secondary_koji_config": {
# secondary inherits configuration from primary ("koji_config"), here
# you can override it, which will cause activation of secondary mode
},
# configuration of dependency resolution
"dependency": {
# whether to tell libsolv to ignore weak dependencies. Installed
# version of hawkey and libsolv must support the option.
"ignore_weak_deps": False,
# Number of package resolution changes (state, depchanges, problems) to
# be persisted at the same time
"persist_chunk_size": 150,
# How often to report progress of dependency processing (seconds)
"perf_report_interval": 60,
# Number of dependency entries to be kept in resolver memory
"dependency_cache_capacity": 3000,
# The size of queue (item == package) between resolving and io thread
"resolver_queue_size": 300,
# Max number of repos kept on disk. For slow Koji connections this
# value should be as high as storage constrains permit. If Koji is on
# the same network as Koschei then this value can be lowered.
"cache_l2_capacity": 100,
# The architecture for which dependencies are resolved with hawkey
"resolve_for_arch": "x86_64",
# The architecture name to use for downloading repo. This should be the
# same architecture as above, but it may named differently
"repo_arch": "x86_64",
},
# configuration of scheduling
"priorities": {
# priority of newly added package
# should be higher than build_threshold
"newly_added": 3000,
# minimal priority value a package needs to have in order to be queued
# for rebuild
"build_threshold": 256,
# a value which is added to package priority for each direct dependency
# change. Dependency changes at farther distances add fractions of this
# value.
"package_update": 256,
# value that is added to package priority after a failed build that was
# preceded by successful build (i.e. the package started to fail)
"failed_build_priority": 200,
# values used for time priority calculation. See the source for the
# exact formula
"t0": 6,
"t1": 7 * 24,
},
# configuration of individual services
"services": {
"watcher": {
# turns on periodic notifications to systemd watchdog. Disable when
# not launching using systemd
"watchdog": True,
},
"polling": {
# how often polling is run
"interval": 20 * 60, # seconds
},
},
# which plugins are loaded (name is their filename without extension)
# "plugins": ['fedmsg', 'pagure'],
"plugins": [],
# fedora message bus configuration
"fedmsg": {
# which topic to subscribe to for koji messages
"topic": "org.fedoraproject.prod.buildsys",
# which koji instance to watch
"instance": "primary"
},
# fedmsg publishing plugin
"fedmsg-publisher": {
# whether to enable fedmsg publishing
"enabled": False,
# which modname to publish to
"modname": "koschei",
},
# pagure plugin
"pagure": {
"owner_alias_url": "https://src.fedoraproject.org/extras/pagure_owner_alias.json",
},
# koschei uses dogpile.cache to cache external query results
# it's possible to use various backends, such as memcached. The
# configuration is passed directly to dogpile.cache, for possible values
# see its documentation
"caching": {
"build_group": {
"backend": "dogpile.cache.memory",
},
"koji_arches": {
"backend": "dogpile.cache.memory",
"expiration_time": 3600,
},
"rpm_requires": {
"backend": "dogpile.cache.dbm",
"expiration_time": None,
"arguments": {
"filename": "@CACHEDIR@/rpm-requires-cache.dbm"
},
},
"pagure": {
"users": {
"backend": "dogpile.cache.dbm",
"expiration_time": 600,
"arguments": {
"filename": "@CACHEDIR@/pagure-user-cache.dbm"
},
},
},
},
# which directories to use. Don't override unless necessary
"directories": {
# caches
"cachedir": "@CACHEDIR@",
# html templates
"templates": "@DATADIR@/templates",
# static files
"static_folder": "@DATADIR@/static",
# URL where static resources are available
"static_url": "/static",
# generic directory for uncategorized resources
"datadir": "@DATADIR@",
},
"flask": {
# secret key for authentication, you want to override this
"SECRET_KEY": "isecretlylovebabymetal",
},
"frontend": {
# Externally visible URL of the instance (currently used in bugreports)
# By default uses headers from the request
# "external_url": "http://localhost/",
# function bound to frontpage endpoint. Useful values are:
# 'package_list', 'collection_list', 'groups', 'login'
# Other possible options can be obtained by inspecting the source, but
# those may be changed without notice
"frontpage": "package_list",
# arguments to frontpage view function
"frontpage_kwargs": {},
# pagination values
"packages_per_page": 100,
"builds_per_page": 15,
# authentication settings
"auth": {
# Regular expression used to match user identity (OpenID
# identifier, KRB5 principal etc.) to user name. Identity
# must match this regex as a whole, user name is is
# content of group.
# Password-based auth or no auth
"user_re": "(.+)",
# Fedora OpenID
#"user_re": "http://(.+)\\.id\\.fedoraproject\\.org/",
# Kerberos
#"user_re": "(.+)@EXAMPLE\\.COM",
# Which environment variable contains the identity string
"user_env": "REMOTE_USER",
# For OpenID Connect:
# "user_env": "OIDC_CLAIM_nickname",
},
# Global assets for Fedora apps
"fedora_assets_url": "https://apps.fedoraproject.org/global",
# Production copies for fedmenu
#"fedmenu_url": "https://apps.fedoraproject.org/fedmenu",
#"fedmenu_data_url": "https://apps.fedoraproject.org/js/data.js",
# Development copies for fedmenu
#"fedmenu_url": "http://threebean.org/fedmenu",
#"fedmenu_data_url": "http://threebean.org/fedmenu/dev-data.js",
},
"alembic": {
# path to alembic.ini
"alembic_ini": "@DATADIR@/alembic.ini"
},
# logging configuration, passed directly to logging.config.dictConfig
# see python logging documentation for possible values
"logging": {
"version": 1,
"loggers": {
"": {
"level": "INFO",
"handlers": ["stderr"],
},
"dogpile.core.dogpile": {
"level": "INFO",
},
},
"handlers": {
"stderr": {
"class": "logging.StreamHandler",
"stream": "ext://sys.stderr"
},
},
},
# Links to other applications displayed in the frontend,
# expects a list of dictionaries with "name" and "url" keys.
# Package ORM object will be interpolated into the URL as {package}, it's
# members are available using dot notation, e.g. {package.name}.
# The variables will be URL-encoded before interpolation.
# If a variable cannot be interpolated or is None, the link won't be
# displayed
"links": [
{"name": "Packages",
"url": "https://packages.fedoraproject.org/pkgs/{package.name}"},
{"name": "Bugzilla",
"url": "https://bugzilla.redhat.com/buglist.cgi?product={package.collection.bugzilla_product}&component={package.name}"},
{"name": "Bodhi",
"url": "https://bodhi.fedoraproject.org/updates?packages={package.name}"},
{"name": "Dist-git",
"url": "https://src.fedoraproject.org/rpms/{package.name}.git"},
{"name": "Koji",
"url": "https://koji.fedoraproject.org/koji/packageinfo?packageID={package.name}"}
],
# template for bugreports for "File new FTBFS bug" link
"bugreport": {
# URL to bugzilla instance enter_bug endpoint. Query string is
# interpolated into {query} key
"url": "https://bugzilla.redhat.com/enter_bug.cgi?{query}",
# dictionary of bugzilla fields.
# in all values, the following variables are available for
# interpolation:
# - name, version, release, arch - NVRA of the failed SRPM
# - package - package ORM object
# - collection - package's collection ORM object
# - url - full URL (hostname included) pointing to given package on koschei
"template": {
"product": "{collection.bugzilla_product}",
"component": "{name}",
"version": "{collection.bugzilla_version}",
"short_desc": "{name}: FTBFS in {collection}",
"bug_file_loc": "{url}",
"comment": """
Description of problem:
Package {name} fails to build from source in {collection}.
Version-Release number of selected component (if applicable):
{version}-{release}
Steps to Reproduce:
koji build --scratch {collection.target} {name}-{version}-{release}.{arch}.rpm
Additional info:
This package is tracked by Koschei. See:
{url}"""
},
},
# koschei version interpolated by build. Don't override
"version": "@VERSION@",
# chunk size for real build insertions. Override only if you have
# performance problems related to build insertion
"real_builds_insert_chunk": 50,
# OSCI plugin
"osci": {
# Topic namespace to use in fedmsg messages
"namespace": "osci",
# Type of build artifact, either "koji-build" or "brew-build"
"build_artifact_type": "koji-build",
# Type of build group artifact, either "koji-build-group" or "brew-build-group"
"build_group_artifact_type": "koji-build-group",
# https://pagure.io/fedora-ci/messages/blob/master/f/schemas/contact.yaml
"contact": {
"name": "Koschei",
"team": "Koschei team",
"docs": "https://koschei.test/docs.html",
"email": "koschei@example.com",
"irc": "#koschei",
"url": "https://koschei.test/",
},
# https://pagure.io/fedora-ci/messages/blob/master/f/schemas/pipeline.yaml
"pipeline": {
"id": "koschei-pipeline",
"name": "Koschei pipeline",
},
# https://pagure.io/fedora-ci/messages/blob/master/f/schemas/test-common.yaml
"test": {
"type": "koschei",
"category": "integration",
"namespace": "koschei",
},
},
}