diff --git a/CHANGELOG.md b/CHANGELOG.md
index 91db126d..14ab1118 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [[2.9.38]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.38) - 2026-06-20
+
+### Added
+- **OpenShift submenu + grouped Kubernetes distros**: The Kubernetes menu's OpenShift entry only linked to the generic overview, hiding the substantial OpenShift 4 page (`ocp4`, 29 links) amid the ocp3-deprecated/openshift/ocp4 confusion. OpenShift is now a nested submenu (OpenShift ▸ → OpenShift 4 (current) · Overview · OpenShift 3 (legacy)), reusing the AWS nested-submenu mechanism. The Kubernetes distributions/platforms are grouped at the end of the menu — Managed K8s · OpenShift ▸ · Rancher · Distros & Alternatives (`kubernetes-alternatives` moved here and relabeled). The 2-column Kubernetes menu was also switched from CSS multicol to a deterministic column-major grid (11 rows × 2 cols, `overflow:visible`), removing a faint sub-pixel scrollbar. Verified in Chrome 148 (Playwright + screenshot): clean 2-column card with no scrollbar at viewport heights 768–1080; the OpenShift submenu opens to the side and keeps the parent open. Cache-bust `?v=2.9.38`; V2-only.
+
## [[2.9.37]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.37) - 2026-06-20
### Fixed
diff --git a/README.md b/README.md
index 2c29f19b..a08d9c5b 100644
--- a/README.md
+++ b/README.md
@@ -142,7 +142,7 @@ Additionally, as of May 2026, Nubenetes has reached the **Platinum Operational T
| :--- | :--- |
| **Total Technical Resources (Links)** | **18647+** |
| **Specialized MD Pages** | **162** |
-| **Total Commits** | **6379+** |
+| **Total Commits** | **6387+** |
| **Primary AI Engine** | **Google Gemini (Agentic)** |
@@ -180,7 +180,7 @@ The growth of Nubenetes reflects the acceleration of the Cloud Native ecosystem.
| 6 | 2023 | 30 | 123 | Maintenance & Refinement |
| 7 | 2024 | 53 | 218 | Curation Strategy Pivot |
| 8 | 2025 | 5 | 20 | Stability & Research Phase |
-| 9 | 2026 | 2820 | 11,646 | **Agentic AI Surge** (May 2026 Inception) |
+| 9 | 2026 | 2828 | 11,679 | **Agentic AI Surge** (May 2026 Inception) |
@@ -196,8 +196,8 @@ xychart-beta
title "Nubenetes Annual Growth Metrics (2018–2026)"
x-axis ["2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"]
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 12000
- bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 11646]
- bar [350, 142, 2046, 531, 402, 30, 53, 5, 2820]
+ bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 11679]
+ bar [350, 142, 2046, 531, 402, 30, 53, 5, 2828]
```
@@ -207,7 +207,7 @@ xychart-beta
| :--- | :---: | :---: | :--- |
| 2026-04 | 25 | 103 | Active Curation |
| 2026-05 | 2101 | 8,677 | **Agentic Inception (Gemini Era)** |
-| 2026-06 | 694 | 2,866 | Active Curation |
+| 2026-06 | 702 | 2,899 | Active Curation |
### 2.4. Content Distribution and Semantic Clustering
diff --git a/data/news_digest.json b/data/news_digest.json
index 3b31a6b6..ef375c1f 100644
--- a/data/news_digest.json
+++ b/data/news_digest.json
@@ -7440,6 +7440,6 @@
"method": "fallback_small"
}
},
- "last_updated": "2026-06-20T17:42:35.066558+02:00"
+ "last_updated": "2026-06-20T18:04:49.792486+02:00"
}
}
\ No newline at end of file
diff --git a/docs/overrides/main.html b/docs/overrides/main.html
index 6c6a16c1..e35f530a 100644
--- a/docs/overrides/main.html
+++ b/docs/overrides/main.html
@@ -49,7 +49,6 @@
💾 Storage
⚖️ Autoscaling
🎛️ Operators
- 🔀 Alternatives
📊 Big Data
🎓 Tutorials
🗄️ Backup & Migrations
@@ -57,8 +56,16 @@
💻 Local Dev
🏢 On-Premise
☁️ Managed K8s
- 🎩 OpenShift
+
+
+
+
🐮 Rancher
+ 🔀 Distros & Alternatives
diff --git a/docs/static/v2_elite.css b/docs/static/v2_elite.css
index 2a424424..a0f57f0e 100644
--- a/docs/static/v2_elite.css
+++ b/docs/static/v2_elite.css
@@ -1338,9 +1338,11 @@ input[type="text"] {
#nb-pop-dev { position-anchor: --nb-a-dev; }
[popovertarget="nb-pop-more"] { anchor-name: --nb-a-more; }
#nb-pop-more { position-anchor: --nb-a-more; }
-/* nested AWS submenu anchors to its in-menu trigger */
+/* nested submenus anchor to their in-menu trigger */
[popovertarget="nb-pop-aws"] { anchor-name: --nb-a-aws; }
#nb-pop-aws { position-anchor: --nb-a-aws; }
+[popovertarget="nb-pop-ocp"] { anchor-name: --nb-a-ocp; }
+#nb-pop-ocp { position-anchor: --nb-a-ocp; }
.nb-quicknav__menu {
inset: auto; /* reset the UA-centered popover defaults */
margin: 0;
@@ -1407,14 +1409,25 @@ input[type="text"] {
/* Two-column layout for long menus (e.g. Kubernetes, 22 items) so they stay
short enough to show in full WITHOUT a scrollbar — the scrollable tall popover
was unreliable. Multicol is column-major, so reading order is preserved. */
+/* Deterministic 2-column layout (column-major grid) so the menu height equals
+ the row count exactly — no balancing remainder, hence no stray scrollbar.
+ 11 rows × 2 cols fits the 22 top-level Kubernetes entries. */
.nb-quicknav__menu--cols {
- display: block;
- column-count: 2;
+ display: grid;
+ grid-auto-flow: column;
+ grid-template-rows: repeat(11, auto);
+ grid-template-columns: repeat(2, minmax(0, 1fr));
column-gap: 0.4rem;
min-width: 22rem;
+ /* a 2-column menu (~370px) always fits below the sticky bar, so never
+ scroll — avoids the sub-pixel grid/overflow scrollbar entirely */
+ max-height: none;
+ overflow: visible;
}
-.nb-quicknav__menu--cols a {
- break-inside: avoid;
+/* the submenu wrapper must be a real block (not display:contents) so its
+ trigger occupies one grid cell cleanly */
+.nb-quicknav__menu--cols .nb-quicknav__subwrap {
+ display: block;
}
/* ── Nested submenu (e.g. Cloud → AWS ▸ → AWS pages) ──
diff --git a/v2-mkdocs.yml b/v2-mkdocs.yml
index 98bce062..79893ca1 100644
--- a/v2-mkdocs.yml
+++ b/v2-mkdocs.yml
@@ -114,7 +114,7 @@ extra:
extra_css:
- https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap
- static/extra.css
- - static/v2_elite.css?v=2.9.37
+ - static/v2_elite.css?v=2.9.38
extra_javascript:
- static/v2_filter.js?v=2.9.19