You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To maintain consistency, a GitHub workflow named **`banner-validate`** automatically validates all `banner-content.yaml` files against the schema defined in [`banner-schema.json`](./banner-schema.json).
33
51
@@ -47,26 +65,19 @@ To maintain consistency, a GitHub workflow named **`banner-validate`** automatic
47
65
- Review the error message in the PR checks.
48
66
- Compare your changes with the [schema](./banner-schema.json) and [examples in README](#usage-scenarios--examples).
The `banner-content.yaml` file defines one or more banners displayed in the Konflux UI. Each cluster has its own `banner-content.yaml` under its directory (e.g., `staging/stone-stage-p01/banner-content.yaml`).
53
71
54
-
###**Schema**
72
+
#### <aname='Schema'></a>**Schema**
55
73
56
74
The schema for banner content is defined in [`banner-schema.json`](./banner-schema.json) and validated automatically by the `banner-validate` GitHub workflow on every PR.
57
75
58
76
The file must contain a **YAML list** where each item represents a banner configuration.
59
77
60
78
---
61
79
62
-
### **Important Behavior**
63
-
64
-
- The <strongstyle="color: red;">UI displays only the first valid active banner</strong> from the list, based on current date, time, and optional recurrence settings.
65
-
- If multiple banners are configured, <strongstyle="color: red;">order matters</strong>.
66
-
67
-
---
68
-
69
-
### **Required and Optional Fields for Each Banner**
80
+
#### <aname='RequiredandOptionalFieldsforEachBanner'></a>**Required and Optional Fields for Each Banner**
70
81
71
82
📎 For the full schema used in CI validation, see banner-schema.json. This table is a human-friendly reference for banner authors.
72
83
@@ -86,9 +97,9 @@ The file must contain a **YAML list** where each item represents a banner config
@@ -177,7 +188,7 @@ When there are no events to announce:
177
188
178
189
---
179
190
180
-
##📝 How to submit a PR for Banner
191
+
### <aname='HowtosubmitaPRforBanner'></a>📝 How to submit a PR for Banner
181
192
182
193
1. Locate the target cluster directory:
183
194
@@ -186,7 +197,7 @@ When there are no events to announce:
186
197
187
198
2. Edit banner-content.yaml:
188
199
189
-
-<strongstyle="color: red;">Insert the new banner at the top of the list</strong>.
200
+
-**Insert the new banner at the top of the list**.
190
201
- Remove obsolete banners to keep the list clean.
191
202
192
203
Example:
@@ -225,61 +236,37 @@ When there are no events to announce:
225
236
Purpose: Release announcement for Konflux 1.2
226
237
```
227
238
228
-
## ❓ Frequently Asked Questions
229
-
230
-
- Why is only one banner shown even when multiple are configured?
231
-
232
-
<strong style="color: red;">We follow the [PatternFly design guidelines](https://www.patternfly.org/components/banner/design-guidelines) for banners</strong>, which emphasize simplicity and clarity. Showing just one banner line at a time helps avoid overwhelming users and ensures that important messages aren't lost in clutter.
233
-
234
-
- What does “first active” actually mean?
239
+
---
235
240
236
-
<strong style="color: red;">The term 'first' doesn’t imply priority or severity</strong> — it simply refers to the first banner that is currently active based on time and repeat configuration.
241
+
### <a name='UIBehavior'></a>✅ UI Behavior
237
242
238
-
If a banner was scheduled in the past, it should already have been displayed.
243
+
- The **UI displays only the first valid active banner** from the list, based on current date, time, and optional recurrence settings.
244
+
- If multiple banners are configured, **order matters**.
245
+
- **Time-related fields like `startTime` and `endTime` are not displayed in the UI**; they only control when the banner is active.
239
246
240
-
If it's scheduled in the future, it will show when its time comes.
247
+
**To convey duration or timing details, please include them within the `summary`.**
241
248
242
-
At any given moment, the system checks which banner is active right now, and picks the first one that matches the criteria.
249
+
- **The `type` and `summary` fields are displayed directly in the UI**.
250
+
- We enjoyed leveraging the [PatternFly Banner component (v5)](https://v5-archive.patternfly.org/components/banner/) to implement the UI, following its design principles for clarity and consistency.
243
251
244
-
🕒 Banners use fields like `startTime`, `endTime`, `dayOfWeek`, etc., to precisely define when they should appear.
245
-
246
-
<strong style="color: red;">📝 If multiple messages need to be shared at the same time, consider combining them into a well-written summary inside a single banner.</strong>
247
-
248
-
## 📢 Auto Alerts(WIP)
252
+
---
249
253
250
-
We enables the infrastructure team to automatically surface specific operational issues or warnings in the Konflux UI.
These alerts would be auto-generated from monitoring systems or automation scripts, written as Kubernetes ConfigMaps, and automatically picked up by the Konflux UI to inform users of system-wide conditions.
256
+
- Why is only one banner shown even when multiple are configured?
253
257
254
-
### ✅ Alert YAML Format
258
+
**We follow the [PatternFly design guidelines](https://www.patternfly.org/components/banner/design-guidelines) for banners**, which emphasize simplicity and clarity. Showing just one banner line at a time helps avoid overwhelming users and ensures that important messages aren't lost in clutter.
255
259
256
-
Each file under auto-alerts/ must be a valid Kubernetes ConfigMap, including at minimum:
260
+
- What does “first active” actually mean?
257
261
258
-
```yaml
259
-
apiVersion: v1
260
-
kind: ConfigMap
261
-
metadata:
262
-
name: konflux-auto-alert-xyz
263
-
namespace: konflux-info
264
-
labels:
265
-
konflux-auto-alert: "true" # Required. UI filter alerts out by this label.
266
-
data:
267
-
auto-alert-content.yaml: |
268
-
enable: true
269
-
summary: "Builds are delayed due to maintenance"
270
-
type: "warning"
271
-
```
262
+
**The term 'first' doesn't imply priority or severity** — it simply refers to the first banner that is currently active based on time and repeat configuration.
272
263
273
-
🔐 The data.banner-content.yaml should follow the schema defined in `auto-alert-schema.json`
264
+
If a banner was scheduled in the past, it should already have been displayed.
274
265
275
-
### Folder Structure
266
+
If it's scheduled in the future, it will show when its time comes.
276
267
277
-
```bash
268
+
At any given moment, the system checks which banner is active right now, and picks the first one that matches the criteria.
278
269
279
-
auto-alerts/ # Alert ConfigMaps (one file = one alert)
280
-
.
281
-
├── alert-1.yaml # Fully valid ConfigMap YAML
282
-
├── alert-2.yaml
283
-
└── kustomization.yaml # Auto-generated, includes all alert YAMLs
270
+
🕒 Banners use fields like `startTime`, `endTime`, `dayOfWeek`, etc., to precisely define when they should appear.
284
271
285
-
```
272
+
**📝 If multiple messages need to be shared at the same time, consider combining them into a well-written summary inside a single banner.**
0 commit comments