@@ -54,16 +54,18 @@ Examples: `docker.io/yourorg`, `ghcr.io/examplesec`
5454
5555Specifies the container image and tag that challenge containers will be built
5656as. This is used as a template with the challenge information to produce the
57- final container image and tag for each challenge. Almost all registries work
58- with the default format string.
57+ final container image and tag for each challenge.
5958
60- Default, works for most registries (Docker, GHCR, DigitalOcean, self-hosted, ...) :
61- - ` "{{domain}}/{{challenge}}-{{container}}:{{profile}}"`
59+ - Default, works for almost all registries (Docker, GHCR, DigitalOcean,
60+ self-hosted, ...) :
61+
62+ ` "{{domain}}/{{challenge}}-{{container}}:{{profile}}"`
6263
63- For registries like AWS ECR that require all image registries to be precreated
64- ahead-of-time, this keeps all the challenge info in the tag so only one ECR
65- registry needs to be created :
66- - ` "{{domain}}:{{challenge}}-{{container}}-{{profile}}"`
64+ - For registries like AWS ECR that require all image registries to be precreated
65+ ahead-of-time, this keeps all the challenge info in the tag so only one ECR
66+ registry needs to be created :
67+
68+ ` "{{domain}}:{{challenge}}-{{container}}-{{profile}}"`
6769
6870Format : Jinja-style double-braces around field name (`{{ field_name }}`)
6971
@@ -78,7 +80,7 @@ If setting a custom format, you must use all four of these fields in order for c
7880
7981Example :
8082
81- For challenge `pwn/notsh`, chal pod container `main`, profile `prod`, and domain `registry.io/myctf ` :
83+ For challenge `pwn/notsh`, chal pod container `main`, and profile `prod ` :
8284
8385` ` ` yaml
8486registry:
@@ -96,7 +98,8 @@ registry:
9698
9799# ## `build`
98100
99- Registry credentials that will be used locally to push up challenge container images. This must have push permissions.
101+ Registry credentials that will be used locally to push up challenge container
102+ images. This must have push permissions.
100103
101104Format : ` { user: "registry-username", pass: "registry-password" }`
102105
@@ -109,7 +112,9 @@ registry:
109112
110113# ## `cluster`
111114
112- Registry credentials that will be used in the Kubernetes cluster to pull the challenge container images. This must have pull permissions, but does not need push.
115+ Registry credentials that will be used in the Kubernetes cluster to pull the
116+ challenge container images. This must have pull permissions, but does not need
117+ push.
113118
114119Format : ` { user: "registry-username", pass: "registry-password" }`
115120
@@ -120,18 +125,70 @@ registry:
120125 pass: stillnotreal
121126` ` `
122127
123- # # `defaults`
128+ # # `points`
129+
130+ Defines the available difficulty classes for challenges. This allows challenges
131+ to be worth different points, e.g. for harder challenges or a survey with
132+ minimal points.
133+
134+ ` ` ` yaml
135+ points:
136+ - difficulty: "normal"
137+ max: 500
138+ min: 100
139+ - difficulty: "hard"
140+ max: 600
141+ min: 200
142+ - difficulty: "survey"
143+ max: 1
144+ min: 1
145+ ` ` `
124146
125147# ## `difficulty`
126148
127- # ## `resources`
149+ :: : info
150+ Not implemented yet, does nothing. Requires upcoming scoreboard integration.
151+ :: :
128152
153+ Name of this difficulty class. Challenges will use this name to set their
154+ difficulty class via the [`difficulty` field in their
155+ ` challenge.yaml` ](./challenge-yaml-reference.md#difficulty).
129156
130- # # `points`
157+ # ## max, min
158+
159+ Maximum and minimum points that challenges with this difficulty will be scored
160+ as. Points are done via dynamic scoring; challenges start at max points and as
161+ more people solve a challenge it approaches the minimum.
131162
163+ # # `defaults`
164+
165+ These set the default difficulty class and cluster resource requests for
166+ challenges that do not have them set in their `challenge.yaml`.
167+
168+ ` ` ` yaml
169+ defaults:
170+ difficulty: easy
171+ resources: { cpu: 1, memory: 500Mi }
172+ ` ` `
173+
174+ # ## `difficulty`
175+
176+ Default difficulty class name to use for challenges that do not explicitly set
177+ one.
178+
179+ # ## `resources`
180+
181+ Default resource request/limits to use for challenges that do not explicitly set
182+ one.
132183
133184# # `deploy`
134185
186+ Controls what challenges are enabled for each environment.
187+
188+ :: : warn
189+ Currently any challenges that have been previously enabled and deployed will
190+ *not* be un-deployed if they are disabled here.
191+ :: :
135192
136193# # `profiles`
137194
0 commit comments