Compare commits

...
317 Commits
Author SHA1 Message Date
Inaki 54d004e601 Merge pull request #449 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-20 23:21:03 +02:00
Nubenetes Bot fa1852b88f feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 21:20:08 +00:00
Nubenetes Bot 01d3a60ce0 docs: automated README metric synchronization [skip ci] 2026-06-20 21:16:23 +00:00
Inaki 4cf28b9ea5 Merge pull request #448 from nubenetes/feat/trending-sustained-signal
feat(v2): make "Rising this Quarter" a genuine sustained-momentum signal
2026-06-20 23:16:00 +02:00
Nubenetes BotandClaude Opus 4.8 9a0d2ce7d1 feat(v2): make "Rising this Quarter" a genuine sustained-momentum signal
The second Trending lane previously reused lane 1's scoring formula (just a
softer half-life over a wider window), so it surfaced the same fresh/high-impact
items as lane 1 — effectively lane 1's leftovers under a "Sustained Momentum"
label. Verified: both lanes showed items aged 2-6 days.

Changes:
- _select_lane now takes a score_fn so each lane drives off a different signal.
- _fresh_score (lane 1): unchanged 21d-half-life freshness bias.
- _sustained_score (lane 2): rewards proven staying power (presence in the
  12-month digest window) and de-prioritises <7d items (lane 1's job). Lane 2
  now surfaces matured pillars — Prometheus, Flux, bpftrace, Backstage — with
  zero overlap with lane 1.
- Suppress the 🆕 NEW pill in lane 2 (a "sustained" card flagged NEW is
  contradictory; freshness is lane 1's signal).
- Anchor "now" to digest _meta.last_updated instead of wall-clock, so identical
  digest input renders identical cards (no age/ordering churn on re-renders).
- Harden _select_lane against None/non-dict window entries (latent crash).

Generator-only change; CI publisher (04.1) regenerates v2-docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 23:14:43 +02:00
Inaki 89e76b0d6b Merge pull request #447 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-20 23:02:26 +02:00
Nubenetes Bot 2aea4a0634 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 21:00:16 +00:00
Nubenetes Bot 5b06f98814 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 20:56:58 +00:00
Inaki dfba434cdc Merge pull request #446 from nubenetes/feat/trending-rising-quarter
feat(v2): add "Rising this Quarter" second lane to Trending
2026-06-20 22:56:40 +02:00
Nubenetes BotandClaude Opus 4.8 c2e5772323 feat(v2): add "Rising this Quarter" second lane to Trending
Extract lane selection/rendering into reusable helpers (_select_lane,
_render_cards) and add a second momentum lane below "Trending Now":

- "📈 Rising this Quarter — Sustained Momentum": 6-month digest window
  with a soft 60d half-life (vs 21d for lane 1), so it favours resources
  with sustained relevance rather than just the freshest items.
- De-duplicated against lane 1 by URL, so the two lanes surface different
  resources (verified: FinOps / NVIDIA device-plugin / Ruff / vLLM with
  real star counts, no overlap with the Trending lane).
- New .trending-section__title--secondary style (divider + lighter weight).

Generator-only change; CI publisher (04.1) regenerates v2-docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 22:55:25 +02:00
Nubenetes Bot d76caa085c docs: automated README metric synchronization [skip ci] 2026-06-20 20:53:44 +00:00
Inaki 3d13cd83a7 Merge pull request #445 from nubenetes/feat/trending-momentum
feat(v2): momentum-weighted, category-diverse Trending Now
2026-06-20 22:53:17 +02:00
Nubenetes BotandClaude Opus 4.8 a9fe5dded5 feat(v2): momentum-weighted, category-diverse Trending Now
Rework the V2 'Trending Now' section so it reflects real momentum instead
of pinning evergreen/foundational tools:

- Hybrid ranking: impact_weight x recency_decay (21d half-life) so fresh
  items surface and the section rotates between releases (date was shown
  but never used to rank before).
- Diversity quota: at most one card per digest category, then backfill —
  replaces the old impact-only sort that filled all slots with the 2-3
  highest-volume categories.
- Real momentum signal: join each item with the inventory by URL and show
  the live GitHub star count (e.g. 38.2k★); fall back to the 1-5 Gemini
  score only when no gh_stars. Adds a 🆕 NEW pill for items <= 7 days old.
- Clean titles: strip github.com/owner/ paths and 'domain.tld:' prefixes
  (no more 'github.com: Istio' or raw repo slugs).
- Fix star-render bug ('🌟'*stars or 0 printed a literal 0 when stars=0).

Generator-only change; CI publisher (04.1) regenerates v2-docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 22:51:54 +02:00
Nubenetes Bot 7a98574000 Merge master back into develop (v2.9.43) 2026-06-20 22:25:52 +02:00
Nubenetes Bot 990994ff7a Merge release/v2.9.43 into master 2026-06-20 22:24:52 +02:00
Nubenetes Bot 7837dde767 docs: automated README metric synchronization [skip ci] 2026-06-20 20:24:33 +00:00
Nubenetes Bot f574af6537 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 20:24:08 +00:00
Inaki f05842eff7 Merge pull request #443 from nubenetes/feat/v2-topic-heatmap
feat(v2): Resource Density Heatmap on Topic Map
2026-06-20 22:20:56 +02:00
Nubenetes BotandClaude Opus 4.8 154e6940c4 feat(v2): add Resource Density Heatmap to Topic Map page
Render a true colour-matrix heatmap on the Topic Map page (distinct from
the size-based Label cloud on index/Tags). One tile per category, grouped
by strategic dimension, with tile warmth (.th-1..6) encoding how many
AI-curated resources it holds. Log scale since counts span ~1..160.

The existing directory grid is preserved below a new "Full Category
Directory" heading. Generator-only change; the publisher regenerates
topic-map.md. CSS adds .topic-heatmap / .topic-heatcell with light + slate
palettes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 22:20:02 +02:00
Inaki 91769ff58e Merge pull request #442 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-20 20:33:45 +02:00
Nubenetes Bot d19031a65f docs: automated README metric synchronization [skip ci] 2026-06-20 18:31:24 +00:00
Nubenetes Bot 8420735abd feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 18:31:00 +00:00
Nubenetes Bot ac7e582bcf Merge develop into master (v2.9.42)
Fix: anchor the new Portal Guide & Videos header dropdowns.
2026-06-20 20:27:44 +02:00
Inaki 94f7332477 Merge pull request #441 from nubenetes/fix/v2-header-anchor-guide-videos
fix: anchor the new Portal Guide & Videos header dropdowns
2026-06-20 20:27:39 +02:00
Nubenetes BotandClaude Opus 4.8 01e34b7d28 fix: anchor the new "Portal Guide" & "Videos" header dropdowns
The nb-quicknav popovers are positioned via explicit CSS anchor-positioning
pairs (anchor-name on the button + position-anchor on the menu) keyed per
popover id. The two new menus (nb-pop-guide, nb-pop-videos) had no such
pairs, so their popovers opened unanchored (wrong position / "broken").
Add the missing anchor-name/position-anchor pairs and bump the CSS
cache-buster to 2.9.42.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 20:26:37 +02:00
Nubenetes Bot 2a39d52726 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 18:24:53 +00:00
Nubenetes Bot 1b60f1829e Merge develop into master (v2.9.41)
Header: add Portal Guide & Videos dropdowns, trim More (nb-quicknav).
2026-06-20 20:21:30 +02:00
Inaki c5ade61e3a Merge pull request #439 from nubenetes/feat/v2-header-portal-guide-videos
feat: header — "Portal Guide" & "Videos" dropdowns; trim "More"
2026-06-20 20:21:17 +02:00
Nubenetes BotandClaude Opus 4.8 e37f21b22a feat: header — add "Portal Guide" & "Videos" dropdowns; trim "More"
Restructure the custom nb-quicknav header (docs/overrides/main.html):
- Replace the standalone "Topic Map" pill with a "Portal Guide" dropdown
  grouping the dispersed orientation pages: Topic Map, Methodology,
  Technical Tags, About.
- Add a "Videos" parent dropdown (right after Digest) with the video
  category subpages (Video Hub, AI Agents & MCP, DevOps/IaC/SRE,
  Cloud Native Core, Fundamentals), promoted out of the "More" menu.
- Trim "More" to the remaining misc entries: Demos, FAQ, Career, V1 Archive.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 20:20:12 +02:00
Nubenetes Bot 9313359bd3 Merge develop into master (v2.9.40)
Revert navigation.tabs: removes the duplicate Material tab bar that was
stacking on top of the custom nb-quicknav header. Group orientation pages
under Portal Guide in the left nav.
2026-06-20 20:06:45 +02:00
Nubenetes Bot 1570a34697 docs: automated README metric synchronization [skip ci] 2026-06-20 18:02:56 +00:00
Inaki d4d9062e89 Merge pull request #438 from nubenetes/feat/v2-nav-portal-guide
revert: disable top nav tabs; group orientation pages under "Portal Guide"
2026-06-20 20:02:32 +02:00
Nubenetes BotandClaude Opus 4.8 12254d7495 revert: disable top nav tabs; group orientation pages under "Portal Guide"
The top tab bar forced Material to scope the left sidebar to the active
tab, which regressed the always-populated vertical nav. Revert
navigation.tabs (+ .sticky) so the left column behaves as before.

Apply the intended grouping in the (restored) left nav instead:
- New "Portal Guide" collapsible group: Topic Map, Methodology,
  Technical Tags, About.
- about.md is pulled out of its Architectural Foundations dimension
  (skipped in the generator's dimension loop) so it is not duplicated.
- Agentic Video Hub stays a prominent top-level group with its video
  subpages (no longer hidden in a tab-overflow "...more" menu).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:57:38 +02:00
Inaki c74fd93ab5 Merge pull request #437 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-20 19:41:30 +02:00
Nubenetes Bot 038c12f4d8 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 17:41:05 +00:00
Nubenetes Bot 7118e43f73 docs: automated README metric synchronization [skip ci] 2026-06-20 17:36:03 +00:00
Inaki a000b66a97 Merge pull request #436 from nubenetes/feat/v2-tabs-index-heatmap
feat: top nav tabs + Label Heatmap on V2 index
2026-06-20 19:35:42 +02:00
Nubenetes BotandClaude Opus 4.8 5801b8f311 feat: add Label Heatmap to the V2 index, after the YouTube mosaic
Extract the tag aggregation and heatmap rendering into shared helpers
(_aggregate_tags / _render_tag_heatmap) so the index and the Technical
Tags page derive identical, slug-stable tag metadata. The index now ends
with the full Label Heatmap right after the mosaic, with each label
deep-linking across to its /tags/#slug section (verified: 75 anchors,
0 dangling). The Tags-page heatmap is unchanged (same-page anchors).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:34:18 +02:00
Nubenetes BotandClaude Opus 4.8 00f1bc3826 feat: enable top navigation tabs alongside the left sidebar
Turn on navigation.tabs (+ .sticky) so the ~16 top-level sections render
as a pinned top tab bar in addition to the left sidebar, which stays and
scopes to the active tab. The earlier overflow concern is reduced by the
Topic Map grouping; Material falls back to horizontal scroll on narrow
viewports.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:34:18 +02:00
Inaki 640cc7d88e Merge pull request #435 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-20 19:23:41 +02:00
Nubenetes Bot 65d4fc3963 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 17:22:37 +00:00
Nubenetes Bot 94ec98dd8b feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 17:18:53 +00:00
Nubenetes Bot 96332b5b00 docs: update Video Hub with high-fidelity metadata 2026-06-20 17:15:41 +00:00
Inaki 55aeaab54b Merge pull request #434 from nubenetes/feat/tag-heatmap
feat: V2 portal UX — label heatmap, Topic Map nav group, Videos promotion, video TOC cleanup
2026-06-20 19:15:20 +02:00
Nubenetes BotandClaude Opus 4.8 886f823c7f feat: group Topic Map nav + promote Videos + drop redundant video TOC
Navigation (v2_optimizer._sync_enterprise_navigation + v2-mkdocs.yml):
- "Topic Map" becomes a collapsible hub holding the three orientation
  pages — Topic Map (section index), Methodology, Technical Tags — since
  they are all about how the portal is structured.
- "Agentic Video Hub" is promoted above Intelligence Digest as a
  prominent top-level dropdown, keeping its category subpages.

Video subpages (v2_video_portal):
- Drop the in-page "## Table of Contents" block; it duplicated Material's
  native right-column "On this page" TOC (toc.follow), matching how the
  topic pages already omit it. The technology ordering list is retained
  internally to drive section render order.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:13:55 +02:00
Nubenetes BotandClaude Opus 4.8 eb9d58e13f feat: add Confluence-style label heatmap to Technical Tags page
Render a weighted "popular labels" cloud at the top of tags.md: every
label is listed alphabetically and sized/coloured by how many resources
carry it (log scale, 6 levels) so the most-used tags read biggest and
warmest. Each label anchors to its section below for jump-to-filter.

- v2_optimizer: emit .v2-tag-heatmap block in _generate_global_tag_index
- v2_elite.css: .v2-heat-1..6 size + warmth ramp (light + slate)
- bump CSS cache-buster to v2.9.39

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:07:12 +02:00
Nubenetes Bot 493f587265 docs: automated README metric synchronization [skip ci] 2026-06-20 16:08:33 +00:00
Nubenetes Bot 1e3fefe56a merge: back-merge v2.9.38 into develop 2026-06-20 18:08:05 +02:00
Nubenetes Bot 0972de24e7 Merge release/v2.9.38 into master 2026-06-20 18:07:26 +02:00
Nubenetes BotandClaude Opus 4.8 f298b586a9 release: v2.9.38 — OpenShift submenu + grouped Kubernetes distros
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 18:07:24 +02:00
Nubenetes Bot def812e809 docs: automated README metric synchronization [skip ci] 2026-06-20 16:05:33 +00:00
Nubenetes Bot dc2c84066c feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 16:05:07 +00:00
Inaki d57210fb9e Merge pull request #432 from nubenetes/feat/v2-quicknav-openshift-submenu
feat(v2/nav): OpenShift submenu (3/4/legacy) + group K8s distros
2026-06-20 18:01:50 +02:00
Nubenetes BotandClaude Opus 4.8 fa1a473b91 feat(v2/nav): OpenShift submenu (3/4/legacy) + group K8s distros; deterministic 2-col grid
Addresses the OpenShift 'lío' (ocp3 deprecated · openshift overview · ocp4
current 29-link page) and groups the Kubernetes distributions:

- OpenShift is now a nested submenu inside the Kubernetes menu (OpenShift ▸ →
  OpenShift 4 (current) · Overview · OpenShift 3 (legacy)), so the substantial
  ocp4 page is finally reachable. Reuses the AWS nested-submenu mechanism.
- Distros/platforms grouped at the end of the Kubernetes menu: Managed K8s ·
  OpenShift ▸ · Rancher · Distros & Alternatives (kubernetes-alternatives moved
  here and relabeled). Rancher was already present.
- Switched the 2-column Kubernetes menu from CSS multicol to a deterministic
  column-major grid (11 rows × 2 cols) with overflow:visible / max-height:none,
  eliminating the sub-pixel balancing remainder that left a faint scrollbar.

Verified in Chrome 148 (Playwright + screenshot): menu renders as a clean 2-col
card with NO scrollbar at viewport heights 768–1080; the OpenShift submenu opens
to the side, stays on-screen, and keeps the parent open. Cache-bust ?v=2.9.38.
V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 18:01:31 +02:00
Nubenetes Bot f413bebd38 docs: automated README metric synchronization [skip ci] 2026-06-20 15:45:22 +00:00
Nubenetes Bot 0f3ed72f62 merge: back-merge v2.9.37 into develop 2026-06-20 17:44:57 +02:00
Nubenetes Bot 4f1117af89 Merge release/v2.9.37 into master 2026-06-20 17:44:40 +02:00
Nubenetes BotandClaude Opus 4.8 a4cc05bdfc release: v2.9.37 — reliable Kubernetes quick-nav menu (2 columns)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:44:38 +02:00
Nubenetes Bot 87523c5457 docs: automated README metric synchronization [skip ci] 2026-06-20 15:43:21 +00:00
Nubenetes Bot ba2de00ff2 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 15:42:52 +00:00
Inaki 098c33e879 Merge pull request #430 from nubenetes/fix/v2-quicknav-tall-menu-flip
fix(v2/nav): make tall Kubernetes menu reliable (2 cols, no scroll, no flip-block)
2026-06-20 17:39:38 +02:00
Nubenetes BotandClaude Opus 4.8 d9860a77de fix(v2/nav): make tall Kubernetes menu reliable (2 columns, no scroll, no flip-block)
The Kubernetes dropdown was the only menu tall enough (22 items) to need a
scrollbar (overflow-y on an anchor-positioned popover), which made it open/behave
unreliably compared to the others. Two fixes:

- The Kubernetes menu now uses a 2-column layout (column-count:2), halving its
  height (~731px → ~353px) so it shows in full WITHOUT a scrollbar at any
  realistic viewport. Multicol is column-major, so reading order is preserved.
- Removed flip-block from the menu position-try fallbacks (kept flip-inline):
  the quick-nav is a sticky top bar, so a tall menu flipped above would shoot
  off the top of the screen. Menus now always open downward.

Verified in Chrome 148 (Playwright): Kubernetes menu opens with no scrollbar and
stays fully on-screen at viewport heights 700–1080; all 11 menus + the nested
AWS submenu still open correctly; bar stays one row to 1280px. Cache-bust
?v=2.9.37. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:39:20 +02:00
Nubenetes Bot e22dda5452 docs: automated README metric synchronization [skip ci] 2026-06-20 15:24:35 +00:00
Nubenetes Bot fd23eaa197 merge: back-merge v2.9.36 into develop 2026-06-20 17:24:11 +02:00
Nubenetes Bot d5e36199c6 Merge release/v2.9.36 into master 2026-06-20 17:23:44 +02:00
Nubenetes BotandClaude Opus 4.8 3cc56b9dee release: v2.9.36 — quick-nav regroup (11 menus + nested AWS) + AWS/K8s hubs live
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:23:42 +02:00
Nubenetes Bot 2f5bbb8246 docs: automated README metric synchronization [skip ci] 2026-06-20 15:21:49 +00:00
Nubenetes Bot dff7f5da47 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 15:21:23 +00:00
Inaki 2818a69da0 Merge pull request #429 from nubenetes/feat/v2-quicknav-regroup
feat(v2/nav): regroup quick-nav into 11 thematic menus + nested AWS submenu
2026-06-20 17:18:08 +02:00
Nubenetes BotandClaude Opus 4.8 408344495c feat(v2/nav): regroup quick-nav into 11 thematic menus + nested AWS submenu
Full category-driven reorganization of the quick-nav per the agreed taxonomy:
one direct pill (Topic Map) + 11 thematic dropdowns that group related topics
together so every destination has a sensible home.

  Digest · Kubernetes (Overview · Docker · Tools · Helm · kubectl · all
  kubernetes-* · Managed · OpenShift · Rancher) · Delivery (GitOps · CI/CD ·
  DevOps · Argo · Flux · Tekton · Jenkins · …) · IaC (Terraform · IaC · Ansible
  · Pulumi · Crossplane · Kustomize) · Cloud (AWS ▸ nested submenu · Azure · GCP
  · Serverless · FinOps · Edge · …) · Network · Security · Observability & SRE ·
  AI & Data · Dev & Platform · More

- Docker now lives inside Kubernetes; CI/CD + GitOps + DevOps share Delivery;
  Terraform + IaC share the IaC menu (as requested).
- AWS is a NESTED submenu inside Cloud (Cloud → AWS ▸ → 8 AWS pages), built with
  nested Popover API + explicit anchor() side-positioning (position-area's
  horizontal axis isn't honored when the anchor is inside another popover;
  left:anchor(right)/top:anchor(top) fixes it). Submenu keeps the parent open;
  flip-inline fallback near the right edge.
- Pages may appear in more than one menu where it aids discovery.
- Menus get max-height:82vh + overflow-y for the tall Kubernetes menu.

Verified in Chrome 148 (Playwright): all 11 menus open below + fit viewport; the
AWS submenu opens to the side with the parent kept open; bar stays one row to
1280px. Cache-bust ?v=2.9.36. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:16:56 +02:00
Nubenetes Bot 9047b2af3e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 14:55:05 +00:00
Nubenetes Bot 8cb15cf20c docs: automated README metric synchronization [skip ci] 2026-06-20 14:48:10 +00:00
Nubenetes Bot 3c28f54827 merge: back-merge v2.9.35 into develop 2026-06-20 16:47:47 +02:00
Nubenetes Bot 2d6c1f16ab Merge release/v2.9.35 into master 2026-06-20 16:47:33 +02:00
Nubenetes BotandClaude Opus 4.8 e5c5b94d46 release: v2.9.35 — Kubernetes provider hub
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:47:31 +02:00
Nubenetes Bot afe7432a55 docs: automated README metric synchronization [skip ci] 2026-06-20 14:47:29 +00:00
Inaki 8719fec736 Merge pull request #428 from nubenetes/feat/kubernetes-hub
feat(v2/gen): add Kubernetes provider hub (sub-page index)
2026-06-20 16:47:05 +02:00
Nubenetes BotandClaude Opus 4.8 ce82aa07ec feat(v2/gen): add Kubernetes provider hub (sub-page index)
Audit of fragmentation found only two prefix clusters: aws (fixed in v2.9.34)
and kubernetes. Unlike AWS, kubernetes is well-classified — a rich parent (157
links) with substantial, distinct children (tools 144, networking 64, security
52, monitoring 24, storage 14, autoscaling 13, ...), not 1-3 link stubs. So
NOTHING is merged for kubernetes; this only adds a 'Deep-Dive Topic Pages' hub
to kubernetes.md indexing its 14 substantial sub-pages (Tools · Networking ·
Security · Monitoring · Storage · Autoscaling · Operators · Alternatives ·
Big Data · Tutorials · Backup & Migrations · Client Libraries · Local Dev ·
On-Premise) — purely additive navigation, no merging, no pruning.

Other small pages (pulumi, kustomize, registries, angular, ...) are legitimate
distinct topics, not fragments of a parent, so they are intentionally left
alone. Verified with --render-only; generator-only, CI republishes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:46:58 +02:00
Nubenetes Bot 0f57980748 docs: automated README metric synchronization [skip ci] 2026-06-20 14:43:18 +00:00
Nubenetes Bot 9bc0ee991d merge: back-merge v2.9.34 into develop 2026-06-20 16:42:52 +02:00
Nubenetes Bot 0da202d00d Merge release/v2.9.34 into master 2026-06-20 16:42:38 +02:00
Nubenetes BotandClaude Opus 4.8 42c0006340 release: v2.9.34 — AWS de-fragmentation + provider hub
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:42:36 +02:00
Nubenetes Bot ddbf3bdd3b docs: automated README metric synchronization [skip ci] 2026-06-20 14:42:30 +00:00
Inaki 3fb5fd8606 Merge pull request #427 from nubenetes/feat/aws-defragment-hub
feat(v2/gen): de-fragment AWS pages — consolidate stubs + provider hub
2026-06-20 16:42:10 +02:00
Nubenetes BotandClaude Opus 4.8 c271c69b1f feat(v2/gen): de-fragment AWS pages — consolidate stubs + provider hub
The AWS landing page rendered with only ~3 links because AWS content was split
across ~20 granular pages (Azure/GCP use a single rich page each), and many AWS
sub-pages had just 1-5 links. Two generator changes fix this:

A. Provider hub: aws.md now renders a 'Deep-Dive Topic Pages' index linking to
   the substantial AWS sub-pages that remain (Serverless · Storage · Networking
   · Security · IaC · Backup · New Features), via a new self.subpage_hubs map.
   So the landing is a navigable index instead of a stub.

B. Stub consolidation: the near-empty / junk-drawer AWS sub-pages (<=7 links,
   plus 'miscellaneous') merge into aws.md via the existing merge_map mechanism
   (aws-miscellaneous, aws-databases, aws-devops, aws-containers, aws-monitoring,
   aws-architecture, aws-tools-scripts, aws-messaging, aws-data, aws-training,
   aws-pricing). Those slugs are also removed from self.dimensions so the full
   pipeline prunes the orphaned pages and auto-syncs the nav.

Verified locally with --render-only: aws.md goes from 3 to 44 links plus the
7-child hub block; V1 (docs/) is untouched by design — it stays the exhaustive
archive and is still read as the merge source. No regenerated v2-docs or
inventory committed (CI republishes per the generator→republish pattern).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:41:50 +02:00
Nubenetes Bot 8bda35ffb2 docs: automated README metric synchronization [skip ci] 2026-06-20 14:32:22 +00:00
Nubenetes Bot bf300df560 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 14:31:58 +00:00
Nubenetes Bot 2963b905e5 merge: back-merge v2.9.33 into develop 2026-06-20 16:29:09 +02:00
Nubenetes Bot 8e6845a5cf Merge release/v2.9.33 into master 2026-06-20 16:28:55 +02:00
Nubenetes BotandClaude Opus 4.8 72c80a0156 release: v2.9.33 — quick-nav menu expansion (38 destinations)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:28:52 +02:00
Nubenetes Bot b394ee2b75 docs: automated README metric synchronization [skip ci] 2026-06-20 14:28:46 +00:00
Inaki 0e80915be8 Merge pull request #426 from nubenetes/feat/v2-quicknav-expand-menus
feat(v2/nav): expand quick-nav menus with 13 high-value pages (38 total)
2026-06-20 16:28:25 +02:00
Nubenetes BotandClaude Opus 4.8 79a13bd9ac feat(v2/nav): expand quick-nav menus with 13 high-value pages (38 total)
Data-driven expansion (ranked by per-page link count + relevance):
- New 📊 Digest menu: Tech & Cloud Digest + Industry & Geo Digest (was a single
  pill; now pairs both editions).
- New 🧰 K8s menu: Kubernetes Tools (144 links) · Helm · Managed K8s · OpenShift
  · Tutorials — the Kubernetes ecosystem, which the portal is centered on.
- ☁️ Cloud += Serverless · FinOps.
- 🌐 Network += Service Mesh (the category alongside Istio; Istio emoji → ).
- ⚙️ Ops += IaC · Developer Portals.
- ⋯ More += Technical Tags (1355 links) · Demos (102).

38 destinations total across 6 direct pills + 7 Popover menus. Added explicit
anchor pairs for the two new menus. Chip font trimmed to 0.62rem + tighter
gap/padding so all 13 bar chips still fit one row down to ~1280px. Verified in
Chrome 148 via Playwright: all 7 menus open below their button, stay on-screen
(right-edge flip), and close on Esc. Cache-bust ?v=2.9.33. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:28:07 +02:00
Nubenetes Bot c3149c3d25 docs: automated README metric synchronization [skip ci] 2026-06-20 14:18:17 +00:00
Nubenetes Bot 76ff2c572d feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 14:17:33 +00:00
Nubenetes Bot d36e33b3d0 merge: back-merge v2.9.32 into develop 2026-06-20 16:14:33 +02:00
Nubenetes Bot 8906200734 Merge release/v2.9.32 into master 2026-06-20 16:14:19 +02:00
Nubenetes BotandClaude Opus 4.8 193560981c release: v2.9.32 — fix quick-nav popover menus + single-row fit
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:14:11 +02:00
Nubenetes Bot b0d1e9d5f8 docs: automated README metric synchronization [skip ci] 2026-06-20 14:13:59 +00:00
Inaki a5b9841142 Merge pull request #425 from nubenetes/feat/v2-quicknav-popover-fix
fix(v2/nav): quick-nav menus open below their button + fit one row
2026-06-20 16:13:36 +02:00
Nubenetes BotandClaude Opus 4.8 c737d4b52f fix(v2/nav): quick-nav menus now open below their button + fit one row
Two fixes to the hybrid quick-nav shipped in v2.9.31:

1. Popover menus did not visibly open on click. Root cause: the menus used
   `position-area: bottom span-inline-end`, which mixes a physical keyword
   (bottom) with a logical one (span-inline-end) — invalid, so it computed to
   `none` and the menu fell back to its static position on top of the button.
   Additionally the popover's implicit anchor was not resolving. Fixed by using
   a valid all-physical `position-area: bottom span-right` and declaring explicit
   anchor-name / position-anchor pairs per button↔menu, so each menu reliably
   drops below its trigger and auto-flips (span-left) near the right edge.
   Verified in Chrome 148 via Playwright: all five menus open on real click,
   render below the button, stay within the viewport, and close on Escape.

2. The bar wrapped to a second row at common widths. Reduced the chip font
   ~1pt (0.7rem → 0.64rem) and trimmed the column-gap/padding so all 7 pills +
   5 menus fit a single row down to 1280px viewports.

Bumps v2_elite.css cache-bust to ?v=2.9.32. V2-only, template/CSS only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:13:13 +02:00
Nubenetes Bot 8c44e3f665 docs: automated README metric synchronization [skip ci] 2026-06-20 14:00:38 +00:00
Nubenetes Bot 84e5bd4d47 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 14:00:11 +00:00
Nubenetes Bot 96e0c77d16 merge: back-merge v2.9.31 into develop 2026-06-20 15:57:53 +02:00
Nubenetes Bot 1c82f00594 Merge release/v2.9.31 into master 2026-06-20 15:57:35 +02:00
Nubenetes BotandClaude Opus 4.8 c1ed9ce150 release: v2.9.31 — hybrid quick-nav (direct pills + Popover category menus)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:57:27 +02:00
Inaki 27be15380d Merge pull request #423 from nubenetes/feat/v2-quicknav-megamenu
feat(v2/nav): hybrid quick-nav — direct pills + Popover category menus
2026-06-20 15:56:45 +02:00
Nubenetes BotandClaude Opus 4.8 8b39d2ae8e feat(v2/nav): hybrid quick-nav — direct pills + Popover category menus
Collapses the 25-destination quick-nav from 3 wrapped rows to a single slim row
that stays one row regardless of how many destinations are added.

Structure:
- 7 direct one-click pills for the most-used flagships: Topic Map, Digest,
  Kubernetes, Docker, GitOps, Terraform, AI & MCP.
- 5 category menus for the long tail, built with the native HTML Popover API +
  CSS Anchor Positioning (Baseline 2026), zero JS:
    ☁️ Cloud (AWS · Azure · GCP) · 🌐 Network (Networking · Istio · K8s Net)
    · 🔐 Security (K8s Security · DevSecOps)
    · ⚙️ Ops (CI/CD · Observability · SRE · DevOps)
    · ⋯ More (Videos · Ansible · Messaging · MLOps · Methodology · V1 Archive)

Why this design: keeps the hot paths at one click (the project's whole value),
while the rarely-used clusters fold away — so the bar never grows past one row.
Popover API gives free Esc / click-outside dismissal and focus management and
works identically on touch and desktop; menus drop below their button via
position-area with flip fallbacks, animate in via @starting-style, and rotate
their caret using :has(). prefers-reduced-motion honored. All 25 destinations
preserved. Bumps v2_elite.css cache-bust to ?v=2.9.31. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:55:25 +02:00
Nubenetes Bot 1cb2254877 docs: automated README metric synchronization [skip ci] 2026-06-20 13:42:02 +00:00
Nubenetes Bot ab53012f35 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 13:41:38 +00:00
Nubenetes Bot 710ab6b536 merge: back-merge v2.9.30 into develop 2026-06-20 15:39:12 +02:00
Nubenetes Bot 9fdf528665 Merge release/v2.9.30 into master 2026-06-20 15:38:57 +02:00
Nubenetes BotandClaude Opus 4.8 655166b83a release: v2.9.30 — quick-nav networking cluster + DevSecOps (25 tabs)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:38:50 +02:00
Inaki fb6680e83e Merge pull request #421 from nubenetes/feat/v2-quicknav-networking
feat(v2/nav): add networking cluster + DevSecOps to quick-nav
2026-06-20 15:38:25 +02:00
Nubenetes BotandClaude Opus 4.8 af4e2a2849 feat(v2/nav): add networking cluster + DevSecOps to quick-nav
Grows the quick-nav bar to 25 destinations:
  - New networking cluster (after cloud): 🌐 Networking · 🕸️ Istio · 🔗 K8s Net
  - DevSecOps joins the security cluster: 🔐 Security · 🛡️ DevSecOps

Short labels as usual (K8s Net for Kubernetes Networking). Template-only change
to docs/overrides/main.html; reuses the existing .nb-quicknav pill styling, no
CSS change, no page regeneration, V2-only. All target pages verified and
mkdocs build -f v2-mkdocs.yml passes with all 25 links rendering.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:38:04 +02:00
Nubenetes Bot 23508a4c1b docs: automated README metric synchronization [skip ci] 2026-06-20 13:34:06 +00:00
Nubenetes Bot cd81458560 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 13:33:40 +00:00
Nubenetes Bot 4ff7402207 merge: back-merge v2.9.29 into develop 2026-06-20 15:30:39 +02:00
Nubenetes Bot 59b5508fe3 Merge release/v2.9.29 into master 2026-06-20 15:30:21 +02:00
Nubenetes BotandClaude Opus 4.8 eb3efa310d release: v2.9.29 — quick-nav redesign (21 pill chips, category-grouped)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:30:12 +02:00
Nubenetes Bot 56b0f539eb docs: automated README metric synchronization [skip ci] 2026-06-20 13:30:05 +00:00
Inaki 9f7d457819 Merge pull request #420 from nubenetes/feat/v2-quicknav-redesign
feat(v2/nav): redesign quick-nav as centered category-grouped pill chips
2026-06-20 15:29:43 +02:00
Nubenetes BotandClaude Opus 4.8 27716bbb4c feat(v2/nav): redesign quick-nav as centered category-grouped pill chips
Expands the quick-nav bar to 21 destinations and restyles it as a modern,
centered chip bar. Adds CI/CD, Terraform-adjacent Ansible, and the three
hyperscalers (AWS, Azure, GCP), and reorders every tab into related category
clusters with short labels (even where the page title is long):

  discovery (Topic Map · Digest · Videos) → platform (Kubernetes · Docker)
  → delivery (GitOps · CI/CD) → IaC (Terraform · Ansible)
  → cloud (AWS · Azure · GCP) → security → ops (Observability · SRE · DevOps)
  → data (Messaging) → AI/ML (AI & MCP · MLOps) → Methodology → V1 Archive (muted)

Visual upgrade (CSS, modern Chrome):
- Pill chips instead of plain text links — more scannable.
- Chip background/border/glow derived from the theme accent via color-mix()
  (in srgb), so the bar restyles automatically with the palette.
- Centered wrapping rows (justify-content: center) — balanced across 2-3 rows
  at 21 items vs a ragged last row when left-aligned; the repeated ☁️ visually
  groups the three cloud providers.
- Hover lift (translateY) + accent glow; :focus-visible outline for a11y;
  prefers-reduced-motion honored.
- Logical properties (margin-inline / padding-inline); mobile collapses to a
  single horizontal-scroll row with the scrollbar hidden.

Bumps v2_elite.css cache-bust to ?v=2.9.29. V2-only; no page regeneration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:28:52 +02:00
Nubenetes Bot 8ad4455049 docs: automated README metric synchronization [skip ci] 2026-06-20 13:13:55 +00:00
Nubenetes Bot 59089c4918 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 13:13:28 +00:00
Nubenetes Bot 2697f49e2c merge: back-merge v2.9.28 into develop 2026-06-20 15:11:31 +02:00
Nubenetes Bot d5f71a6f84 Merge release/v2.9.28 into master 2026-06-20 15:11:19 +02:00
Nubenetes BotandClaude Opus 4.8 d8fead1146 release: v2.9.28 — expanded quick-nav bar (16 destinations)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:11:12 +02:00
Inaki 3edd424fd3 Merge pull request #418 from nubenetes/feat/v2-quicknav-expand
feat(v2/nav): expand quick-nav with ten principal topic flagships
2026-06-20 15:10:16 +02:00
Nubenetes BotandClaude Opus 4.8 c80e1fd4b4 feat(v2/nav): expand quick-nav with ten principal topic flagships
Adds the principal topic flagships to the slim quick-nav bar so the most
relevant destinations across all of Nubenetes are reachable in one click from
any page:

  - Cloud-native pillars: Kubernetes, Docker, GitOps, Terraform,
    K8s Security, Observability
  - Ops disciplines: SRE, DevOps
  - Data/messaging: Message Queue
  - AI/ML: MLOps (next to the existing AI & MCP hub)

Layout groups discovery/meta hubs (Topic Map, Intelligence Digest, Video Hub),
then the pillar + ops + messaging topics, then the AI hubs (AI & MCP, MLOps) and
Methodology, with V1 Archive muted at the far right — 16 curated destinations
total, still under the 18-tab overflow line the bar was designed to avoid.
Reuses the existing .nb-quicknav__link styling (flex-wrap handles density on
narrow viewports); template-only, no CSS change, no page regeneration, V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:09:21 +02:00
Nubenetes Bot bba344afa8 docs: automated README metric synchronization [skip ci] 2026-06-20 12:51:37 +00:00
Nubenetes Bot ca83d27a3d feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 12:51:11 +00:00
Nubenetes Bot 7d28bd4e9c merge: back-merge v2.9.27 into develop 2026-06-20 14:48:09 +02:00
Nubenetes Bot b015cec250 Merge release/v2.9.27 into master 2026-06-20 14:48:02 +02:00
Nubenetes BotandClaude Opus 4.8 6637f3956b release: v2.9.27 — slim quick-nav bar with persistent destinations
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:48:00 +02:00
Nubenetes Bot b111189475 docs: automated README metric synchronization [skip ci] 2026-06-20 12:47:54 +00:00
Inaki 049b994180 Merge pull request from nubenetes/feat/v2-quicknav-bar
feat(v2/nav): slim quick-nav bar with persistent key destinations
2026-06-20 14:47:32 +02:00
Nubenetes BotandClaude Opus 4.8 85e47f12af feat(v2/nav): slim quick-nav bar with persistent key destinations
Adds a thin horizontal bar below the header (on every page) with 6 curated
one-click destinations: Topic Map, Intelligence Digest, Video Hub, AI & MCP,
Methodology, V1 Archive. Implemented by overriding Material's 
H        H        H        H        H        H        H        H        H        H       
 block
(empty since navigation.tabs is disabled) + .nb-quicknav CSS — so it gives the
persistent cross-page shortcuts that previously only existed as badge cards on
the home, WITHOUT the 18-tab overflow and WITHOUT collapsing the full left
navigation tree. Template/CSS only (no page regeneration); V2-only (V1 uses the
stock theme). Cache-bust v2_elite.css?v=2.9.27.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:47:12 +02:00
Nubenetes Bot 294b10dca5 docs: automated README metric synchronization [skip ci] 2026-06-20 12:34:55 +00:00
Nubenetes Bot ac1f6be919 merge: back-merge v2.9.26 into develop 2026-06-20 14:34:32 +02:00
Nubenetes Bot c9bf1e46c7 Merge release/v2.9.26 into master 2026-06-20 14:34:25 +02:00
Nubenetes BotandClaude Opus 4.8 84bb583cf6 release: v2.9.26 — collapsible nested nav + home section headings
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:34:23 +02:00
Nubenetes Bot 466a315151 docs: automated README metric synchronization [skip ci] 2026-06-20 12:34:11 +00:00
Inaki 624e2ab543 Merge pull request from nubenetes/feat/v2-nav-nesting-home-headings
feat(v2): collapsible nested left nav + home section headings
2026-06-20 14:33:50 +02:00
Nubenetes BotandClaude Opus 4.8 40275974c0 feat(v2): collapsible nested left nav + 3 home section headings
Two fixes following the tabs removal:

1) Nav was a FLAT list of 18 section labels with no expand/indent, because
   navigation.sections rendered them as non-collapsible group labels and
   navigation.prune stripped inactive children. Disabled both → the left
   sidebar is now a proper COLLAPSIBLE, nested, indented tree (14 toggles,
   chevrons, collapsed by default). No size penalty (88213 vs 88516 bytes).

2) Home had a single H2, so its right-hand 'On this page' TOC was empty. Added
   '## Explore the Ecosystem' (badge cards) and '## Trending Now' (digest) to
   join the existing '## The Cloud Native Universe We Track' — the home's right
   TOC now lists three real sections.

Net effect: both side columns are now useful on every page, incl. the home —
left = full collapsible directory, right = per-page section map.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:33:27 +02:00
Nubenetes Bot 0c5e17f874 docs: automated README metric synchronization [skip ci] 2026-06-20 12:22:44 +00:00
Nubenetes Bot ec8e38a1c2 merge: back-merge v2.9.25 into develop 2026-06-20 14:22:22 +02:00
Nubenetes Bot f35c348ff1 Merge release/v2.9.25 into master 2026-06-20 14:22:14 +02:00
Nubenetes BotandClaude Opus 4.8 9ba26201b5 release: v2.9.25 — V2 nav tabs to left sidebar (fix tab overflow)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:22:12 +02:00
Nubenetes Bot a52bd87e00 docs: automated README metric synchronization [skip ci] 2026-06-20 12:22:03 +00:00
Inaki 16ed0cc9e1 Merge pull request from nubenetes/feat/v2-nav-disable-tabs
feat(v2/nav): disable navigation.tabs — full section list in left sidebar
2026-06-20 14:21:40 +02:00
Nubenetes BotandClaude Opus 4.8 98041bb7b4 feat(v2/nav): disable navigation.tabs — full section list in the left sidebar
18 top-level sections overflowed the horizontal tab bar on a laptop (~3300px of
labels vs ~1400px viewport), forcing horizontal scroll to reach the right-side
dimensions, and left the sidebar nearly empty on top-level pages like the home.

Disabling navigation.tabs (+ .sticky) moves the sections into the standard
vertical left sidebar: it handles 18 collapsed sections via normal vertical
scroll, stays populated on every page (incl. the home), and nothing clips.
Verified: the home nav goes from 23 rendered links (mostly the tab bar) to the
full 178-link tree, with 0 tab elements. Theme-only change (the optimizer's nav
sync only rewrites the nav: block, so this is preserved).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:20:26 +02:00
Nubenetes Bot 2081c96b39 docs: automated README metric synchronization [skip ci] 2026-06-20 11:55:56 +00:00
Nubenetes Bot 2d9d1cef09 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 11:55:26 +00:00
Nubenetes Bot d56192d7db merge: back-merge v2.9.24 into develop 2026-06-20 13:52:35 +02:00
Nubenetes Bot 088e35feac Merge release/v2.9.24 into master 2026-06-20 13:52:29 +02:00
Nubenetes BotandClaude Opus 4.8 794734ad1c release: v2.9.24 — per-page CollectionPage JSON-LD with dates
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:52:27 +02:00
Inaki 68b7029975 Merge pull request from nubenetes/feat/v2-seo-perpage-jsonld
feat(v2/seo): per-page CollectionPage JSON-LD with dates
2026-06-20 13:51:59 +02:00
Nubenetes BotandClaude Opus 4.8 bfdec79f41 feat(v2/seo): per-page CollectionPage JSON-LD with datePublished/dateModified
Adds a second JSON-LD block per page (a schema.org CollectionPage tied to the
existing WebSite/Organization @graph) carrying the page name, description, URL,
and datePublished / dateModified fed by the git-revision-date plugin's raw ISO
dates. Enables richer search results (article/collection rich snippets) with
real freshness dates. Template-only change (docs/overrides/main.html), applied
at build time; the homepage is skipped (it is already the WebSite entity).

Verified: every content page emits a valid CollectionPage with both dates
(e.g. Kubernetes datePublished=2026-05-18 dateModified=2026-06-20); the home
carries only the WebSite+Organization graph.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:51:37 +02:00
Nubenetes Bot 1e6c7bbd9a docs: automated README metric synchronization [skip ci] 2026-06-20 11:45:45 +00:00
Nubenetes Bot 06f93282e2 merge: back-merge v2.9.23 into develop 2026-06-20 13:45:22 +02:00
Nubenetes Bot 8ee10a16ea Merge release/v2.9.23 into master 2026-06-20 13:45:15 +02:00
Nubenetes BotandClaude Opus 4.8 0b3fe9c9c6 release: v2.9.23 — richer per-page SEO descriptions + creation dates
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:45:13 +02:00
Nubenetes Bot 9971945e9f feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 11:44:11 +00:00
Nubenetes Bot f721c5714b docs: automated README metric synchronization [skip ci] 2026-06-20 11:40:54 +00:00
Inaki 4e9d839f2e Merge pull request from nubenetes/feat/v2-seo-rich-desc-dates
feat(v2/seo): richer per-page descriptions + creation dates
2026-06-20 13:40:32 +02:00
Nubenetes BotandClaude Opus 4.8 c377b4e4d9 feat(v2/seo): richer per-page descriptions from top resources + creation dates
- Enrich each page's meta description with its top-ranked resource names
  (long-tail keywords) instead of a pure template — e.g. 'Top Kubernetes
  resources for 2026, AI-ranked: Helm, kube-prometheus and more — curated Cloud
  Native tools, guides and references.' URL/path-like and emoji-laden titles are
  filtered out; pages whose top links are all URL-like fall back to the clean
  template. Capped at ~160 chars on a word boundary.
- Enable git-revision creation dates (enable_creation_date: true) so every page
  footer shows both 'Created' and 'Last update' — an age/freshness signal.

Verified locally: descriptions are clean, tool-named, 126-151 chars; the footer
renders both dates. Pages pick up the new front-matter on the next Publisher run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:39:44 +02:00
Nubenetes Bot bcbb3a2466 docs: automated README metric synchronization [skip ci] 2026-06-20 11:29:04 +00:00
Nubenetes Bot 21a63a1992 merge: back-merge v2.9.22 into develop 2026-06-20 13:28:36 +02:00
Nubenetes Bot 6ef1580b43 Merge release/v2.9.22 into master 2026-06-20 13:28:29 +02:00
Nubenetes BotandClaude Opus 4.8 1711eb594e release: v2.9.22 — unique per-page SEO meta descriptions + robots.txt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:28:27 +02:00
Nubenetes Bot 680d5f83f5 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 11:27:10 +00:00
Nubenetes Bot b5f1a3d4a4 docs: automated README metric synchronization [skip ci] 2026-06-20 11:22:36 +00:00
Inaki cedd14e128 Merge pull request from nubenetes/feat/v2-seo-meta-robots
feat(v2/seo): unique per-page meta descriptions + robots.txt
2026-06-20 13:22:15 +02:00
Nubenetes BotandClaude Opus 4.8 6fb3808850 feat(v2/seo): unique per-page meta descriptions + robots.txt
Every V2 page previously fell back to the identical global site_description
(duplicate meta descriptions = SEO penalty across ~140 pages). The generator now
emits a unique description: front-matter per page — derived from the page title
and its strategic dimension — which Material renders as <meta name=description>
and og:description. Topic Map and Methodology get tailored descriptions too.

Also add v2-docs/robots.txt (deployed at the site root) allowing full crawl and
referencing both the V2 (root) and V1 (/v1/) sitemaps.

Verified locally: each built page now carries a distinct meta description, and
robots.txt lands in the build output. The ~140 generated pages pick up their
front-matter on the next V2 Publisher run.

Note: the 12 redirect-stub pages (chef->ansible, react->javascript, ...) were
left as-is — they already 0s meta-refresh redirect with canonical pointing at
the target, which is better SEO than noindex (and the redirects plugin would
overwrite any front-matter anyway).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:21:57 +02:00
Nubenetes Bot 1698351fb9 docs: automated README metric synchronization [skip ci] 2026-06-20 11:07:20 +00:00
Nubenetes Bot 48b1c80a80 merge: back-merge v2.9.21 into develop 2026-06-20 13:06:58 +02:00
Nubenetes Bot b73d8315e5 Merge release/v2.9.21 into master 2026-06-20 13:06:51 +02:00
Nubenetes BotandClaude Opus 4.8 d1e1ba5fb3 release: v2.9.21 — README DB/lifecycle diagrams & grouped Tags Index TOC
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:06:49 +02:00
Nubenetes Bot 07ac1df305 docs: automated README metric synchronization [skip ci] 2026-06-20 11:06:39 +00:00
Inaki e01f720655 Merge pull request #407 from nubenetes/feat/readme-db-lifecycle-diagrams
docs: DB architecture + lifecycle diagrams, mermaid cutoff fixes, grouped Tags Index TOC
2026-06-20 13:06:17 +02:00
Nubenetes BotandClaude Opus 4.8 8e065c5406 feat(v2/tags): grouped, compact Technical Tags Index TOC + unique anchors
The Technical Tags Index TOC was a flat 80-entry numbered list that buried the
8 meaningful maturity tags under a long tail of one-resource 'X Content'
language tags, with colliding anchors (C / C# / C++ all -> #c-content) and a
'1 resources' grammar bug.

- Group the TOC: 'Maturity and Quality' as a clean numbered list; 'Technical
  Domains' and 'Language and Format' as compact, count-sorted inline pill rows.
- Precompute unique, explicit heading anchors ({#slug}) shared by the TOC and
  the section headers (c-sharp-content, c-plus-plus-content, dedup counter),
  fixing the collisions.
- Correct singular/plural ('1 resource').
- Filter non-language language values (En, Not Applicable, Multi-Language,
  Polyglot, ...) so they no longer create meaningless tag buckets.

Validated: 0 markdownlint errors on the regenerated tags.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:05:48 +02:00
Nubenetes BotandClaude Opus 4.8 6b311deed5 docs(readme): DB architecture + full lifecycle mermaid diagrams, fix label cutoffs, refresh V2 features
- Add a Database Architecture diagram (YAML + SQLite coexistence: inventory.sql
  source-of-truth, in-memory SQLite, inventory.yaml mirror, schema) in 6.1.3,
  inside a collapsible <details>.
- Add a full Data Lifecycle diagram (discovery -> ingestion -> maintenance/
  enrichment -> render -> deploy + GC) in 6.3, inside a collapsible <details>.
- Fix mermaid text overflow in the Division-of-Labor, Agentic Data Flow, Debate
  Protocol and Deployment Lifecycle diagrams by wrapping long node labels with
  <br/>; remove a duplicate Z-->B edge.
- Add a 'V2 Home Restructure and SEO (v2.9.16-v2.9.20)' section documenting the
  Topic Map & Methodology pages, per-page last-updated dates, JSON-LD, branded
  404, privacy-friendly embeds and deterministic generated artifacts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:05:40 +02:00
Nubenetes Bot 2a90ce60ea docs: automated README metric synchronization [skip ci] 2026-06-20 10:48:35 +00:00
Nubenetes Bot f588a7254b merge: back-merge v2.9.20 into develop 2026-06-20 12:48:10 +02:00
Nubenetes Bot a86f8f5c0a Merge release/v2.9.20 into master 2026-06-20 12:48:03 +02:00
Nubenetes BotandClaude Opus 4.8 15aae43489 release: v2.9.20 — fully eliminate RSS feed develop/master drift
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:48:00 +02:00
Nubenetes Bot 123d53848c docs: automated README metric synchronization [skip ci] 2026-06-20 10:47:45 +00:00
Inaki 7bf22fbe43 Merge pull request from nubenetes/fix/rss-builddate-from-items
fix(rss): derive feed lastBuildDate from item content dates (fully kills feed drift)
2026-06-20 12:47:19 +02:00
Nubenetes BotandClaude Opus 4.8 01c514b07b fix(rss): derive feed lastBuildDate from item content dates, not _meta
Follow-up to v2.9.19: deriving lastBuildDate from _meta.last_updated only moved
the drift one level — that analysis timestamp is itself bumped on every publish
even when the ranked content is unchanged, so feed.xml kept differing between
develop and master. Use the freshest item's content date instead (the items only
change when the ranking actually changes). Verified: deterministic across reruns,
and the develop and master digests both yield 2026-06-18, so feed.xml is now
byte-identical across branches — the drift is fully eliminated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:46:52 +02:00
Nubenetes Bot 4d25baee03 docs: automated README metric synchronization [skip ci] 2026-06-20 10:43:38 +00:00
Nubenetes Bot 3fa1370e30 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:43:13 +00:00
Nubenetes Bot a083fb2af4 merge: back-merge v2.9.19 into develop 2026-06-20 12:40:13 +02:00
Nubenetes Bot f16a1ae9c0 Merge release/v2.9.19 into master 2026-06-20 12:39:57 +02:00
Nubenetes BotandClaude Opus 4.8 a6e166661f release: v2.9.19 — deterministic RSS feed date & Topic Map filter skip
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:39:55 +02:00
Nubenetes Bot f51d4094a1 docs: automated README metric synchronization [skip ci] 2026-06-20 10:39:52 +00:00
Inaki fcdc4d0ec1 Merge pull request #405 from nubenetes/fix/topic-map-filter-skip
fix(v2): don't inject resource/tag filter on Topic Map & Methodology
2026-06-20 12:39:24 +02:00
Nubenetes BotandClaude Opus 4.8 fcf47473da fix(v2): don't inject the resource/tag filter on Topic Map & Methodology
The in-page filter widget (v2_filter.js) auto-injects wherever the page has
<ul><li> items. Topic Map lists category links (with counts) and Methodology
lists legend rows — neither carries .md-tag maturity tags, so the tag pills
filtered to zero and the 'X of Y resources' counter mis-counted categories as
resources. Added both pages to the widget's h1-based skip-list. Bumped
v2_filter.js?v=2.9.19.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:39:02 +02:00
Nubenetes Bot dcc323ead3 docs: automated README metric synchronization [skip ci] 2026-06-20 10:38:56 +00:00
Inaki 16784ce925 Merge pull request #404 from nubenetes/fix/rss-deterministic-builddate
fix(rss): deterministic feed lastBuildDate (kills residual develop↔master drift)
2026-06-20 12:38:33 +02:00
Nubenetes BotandClaude Opus 4.8 09d7a68ef8 fix(rss): derive feed lastBuildDate from content, not wall-clock now()
rss_generator set <lastBuildDate> to datetime.utcnow(), so every republish
rewrote it even when the digest was unchanged — leaving a 1-line develop<->master
drift in v2-docs/feed.xml (the residual after the PR Guardian drift fix). Derive
it from the digest's _meta.last_updated (the actual analysis date), falling back
to the most recent item date, so the feed is a pure function of its input:
regenerating unchanged content now yields byte-identical output. Verified
deterministic across repeated runs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:37:11 +02:00
Nubenetes Bot a96919d3ad docs: automated README metric synchronization [skip ci] 2026-06-20 10:29:38 +00:00
Nubenetes Bot fdb93ccc16 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:29:10 +00:00
Nubenetes Bot e14e78c6e9 merge: back-merge v2.9.18 into develop 2026-06-20 12:25:26 +02:00
Nubenetes Bot a07267dd2b Merge release/v2.9.18 into master 2026-06-20 12:25:06 +02:00
Nubenetes BotandClaude Opus 4.8 58d1be6522 release: v2.9.18 — SEO (revision dates + JSON-LD) & PR Guardian drift fix
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:25:03 +02:00
Inaki bff5d72a89 Merge pull request #402 from nubenetes/feat/v2-seo-revision-jsonld
feat(v2/seo): per-page last-updated dates + JSON-LD structured data
2026-06-20 12:24:34 +02:00
Nubenetes BotandClaude Opus 4.8 266499ac2f feat(v2/seo): per-page last-updated dates + JSON-LD structured data
C — git-revision-date-localized plugin: adds a 'Last update' date to every V2
page (freshness signal for SEO and reader trust). Added the dependency to
requirements.txt, enabled it in v2-mkdocs.yml (type: date,
fallback_to_build_date so the build never fails), and set fetch-depth: 0 on the
06 deploy checkout so the plugin sees full git history (otherwise every page
would show the build date).

D — JSON-LD schema.org structured data: WebSite (with a sitelinks SearchAction)
+ publishing Organization, injected via an extrahead block in docs/overrides/
main.html (shared V1/V2). Enables richer search results / knowledge-panel
eligibility. Validated: build exits 0, JSON-LD parses, 'Last update' renders.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:23:49 +02:00
Nubenetes Bot a6cf0d97ef docs: automated README metric synchronization [skip ci] 2026-06-20 10:16:22 +00:00
Inaki 41e4fc9502 Merge pull request #401 from nubenetes/fix/guardian-skip-generated-v2docs
fix(ci): PR Guardian must not auto-format the generated v2-docs/ tree
2026-06-20 12:15:59 +02:00
Nubenetes BotandClaude Opus 4.8 15ffc91ec2 fix(ci): PR Guardian must not auto-format the generated v2-docs/ tree
The Guardian's auto_format_file ("&"->"and" in headings, URL trailing-slash
normalization) ran on every changed .md including the generated v2-docs/, then
committed the result back to the PR branch. Because PRs land on develop while
release branches merge to master via plain git merge (no Guardian run), develop
ended up with the normalized form and master with the generator's raw form —
a perpetual cosmetic develop<->master drift that spawned recurring no-op
'Release: Agentic V2 Portal Update' PRs (e.g. #399).

v2_optimizer.py is the single source of truth for v2-docs/ formatting, so the
Guardian now skips that tree in the auto-format loop and drops it from the
auto-commit 'git add'. Hand-authored docs/ and README/inventory are unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:14:49 +02:00
Nubenetes Bot 385c7f03da docs: automated README metric synchronization [skip ci] 2026-06-20 10:09:32 +00:00
Nubenetes Bot 088dc12a8e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:09:02 +00:00
Nubenetes Bot a477989bc1 merge: back-merge v2.9.17 into develop 2026-06-20 12:04:40 +02:00
Nubenetes Bot e7d9c0eccc Merge release/v2.9.17 into master 2026-06-20 12:04:14 +02:00
Nubenetes BotandClaude Opus 4.8 7c8f36addd release: v2.9.17 — fix Topic Map MD001 heading-increment lint failure
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:04:12 +02:00
nubenetes-bot 8643517e2e style(cleaner): auto-correcting formatting & URL normalization 2026-06-20 10:04:03 +00:00
Inaki 4ef377d62d Merge pull request #400 from nubenetes/fix/topic-map-heading-md001
fix(v2): Topic Map dimensions must be h2 not h3 (MD001 lint failure)
2026-06-20 12:03:31 +02:00
Nubenetes BotandClaude Opus 4.8 ae0af172dc fix(v2): Topic Map dimensions must be h2 not h3 (MD001 lint failure)
The Topic Map page H1 is 'Topic Map', so dimension headings jumped h1->h3
and tripped markdownlint MD001/heading-increment, failing 07.2 Markdown
Linter on develop and master after v2.9.16. Emit dimensions as h2 in the
generator, the committed page, and update the CSS selector
(.topic-map-dim h2). Verified 0 errors with the CI markdownlint config.
Bumped v2_elite.css?v=2.9.17.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:03:02 +02:00
Nubenetes Bot 70f64d37b0 docs: automated README metric synchronization [skip ci] 2026-06-20 10:01:04 +00:00
Nubenetes Bot 4d0be41548 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-20 10:00:32 +00:00
Nubenetes Bot b79209ab5e merge: back-merge v2.9.16 into develop 2026-06-20 11:55:29 +02:00
Nubenetes Bot e21f237fa9 Merge release/v2.9.16 into master 2026-06-20 11:55:15 +02:00
Nubenetes BotandClaude Opus 4.8 b22d1748c4 release: v2.9.16 — category-first home with Topic Map & Methodology pages
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:55:08 +02:00
Nubenetes Bot 9bbb82b00c docs: automated README metric synchronization [skip ci] 2026-06-20 09:54:44 +00:00
Inaki c7662a35b4 Merge pull request #398 from nubenetes/feat/v2-home-restructure
feat(v2): restructure home — Topic Map + Methodology pages, mosaic & a11y polish
2026-06-20 11:54:23 +02:00
nubenetes-bot f983d787b0 style(cleaner): auto-correcting formatting & URL normalization 2026-06-20 09:53:39 +00:00
Nubenetes BotandClaude Opus 4.8 c41028e023 feat(v2): restructure home — Topic Map + Methodology pages, mosaic & a11y polish
Declutter the V2 landing page into a curated entry point and move the
full category directory and reference legends to dedicated pages.

Home (index):
- Move "Trending Now / Digest" above the signature YouTube mosaic (fix
  inverted altitude: fresh, dynamic content first).
- Replace the ~130-link "Strategic Dimensions" dump with a "Topic Map"
  badge card + a slim reference footer (Topic Map · Methodology · Videos).
- Frame the mosaic with a "The Cloud Native Universe We Track" heading.

New generated pages:
- topic-map.md — full category directory by dimension in a responsive
  multi-column CSS grid, with per-category resource counts.
- methodology.md — Maturity Taxonomy + Technical Impact legend tables
  (moved out of the home).

Mosaic (kept as brand signature, reinforced):
- Surface the per-group category labels that were hidden in title=.
- loading="lazy" on the ~150 channel logos (LCP/perf win).

about.md videos:
- youtube-nocookie.com + loading="lazy" + responsive aspect-ratio wrapper.

Config & cleanup:
- Disable navigation.expand (169-entry nav stayed fully open); the Topic
  Map page now serves as the full directory.
- Branded 404 page with clear ways back (Home / Topic Map / V1 Archive).
- Hoist repeated inline styles (hero badge row) into CSS classes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:52:21 +02:00
Nubenetes Bot ea5e6e80df docs: automated README metric synchronization [skip ci] 2026-06-19 17:51:09 +00:00
Nubenetes Bot d60cd4de4a merge: back-merge v2.9.15 into develop 2026-06-19 19:51:02 +02:00
Nubenetes Bot bd5499a9c6 release: v2.9.15 — category-first Intelligence Digest with navigable TOC 2026-06-19 19:50:52 +02:00
Inaki bfe743a6cd Merge pull request #397 from nubenetes/feat/digest-toc-sections
feat(v2): category-first digest layout for a navigable right-hand TOC
2026-06-19 19:50:48 +02:00
Nubenetes BotandClaude Opus 4.8 2e281e98ea feat(v2): category-first digest layout for a navigable right-hand TOC
The Tech & Cloud and Industry & Geo digest pages rendered period-first (three
time-window tabs, each nesting every category as bold text), so they had zero
real headings and an empty "On this page" TOC. Inverted _generate_digest_pages()
to category-first: each category is a real ## heading with the 3 time-windows as
content tabs inside it. The right TOC now lists all 22 tech categories / 4 geo
regions once each, headings sit at column 0 (no MD023 workaround), tabs preserved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:50:23 +02:00
Inaki 32a2f5925a Merge pull request #396 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 19:41:19 +02:00
Nubenetes Bot 49b3405097 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 17:39:56 +00:00
Nubenetes Bot d90763f8bd docs: automated README metric synchronization [skip ci] 2026-06-19 17:33:16 +00:00
Nubenetes Bot 17f438553b merge: back-merge v2.9.14 into develop 2026-06-19 19:33:07 +02:00
Nubenetes Bot 8f6fc3caad release: v2.9.14 — deterministic V2 Publisher push 2026-06-19 19:32:58 +02:00
Inaki 851efb3050 Merge pull request #395 from nubenetes/feat/publisher-deterministic-push
ci: make V2 Publisher push deterministic (04.1)
2026-06-19 19:32:54 +02:00
Nubenetes BotandClaude Opus 4.8 a5ff06cafb ci: make V2 Publisher push deterministic (04.1)
Replace the fragile rebase + checkout --ours/--theirs README.md self-healing
(which could hang on a non-README conflict and discard the bot's README
metrics) with the deterministic model already used by 05.1: the render is
authoritative for its generated surface, so each attempt hard-resets to the
freshest origin/develop tip, overlays the generated outputs verbatim
(docs/, v2-docs/, inventory.yaml/.sql, news_digest.json — source configs left
untouched), regenerates README on top, then commits and pushes with a 5x retry.
Never hangs on a conflict, never loses data. Pin PYTHONPATH on the step.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:32:25 +02:00
Nubenetes Bot e1df3938d5 docs: automated README metric synchronization [skip ci] 2026-06-19 17:07:08 +00:00
Nubenetes Bot f91afaa6d2 merge: back-merge v2.9.13 into develop 2026-06-19 19:07:02 +02:00
Nubenetes Bot dc8cdac96d release: v2.9.13 — CI race-condition hardening & advisory PR Guardian 2026-06-19 19:06:46 +02:00
Inaki 44b4b81317 Merge pull request #394 from nubenetes/feat/ci-race-hardening
ci: harden develop write-path against races & make PR Guardian advisory
2026-06-19 19:06:42 +02:00
Nubenetes BotandClaude Opus 4.8 b52f793ea5 ci: harden develop write-path against races & make PR Guardian advisory
Root cause of the recurring README-sync failure: 05.1 modified README.md in
earlier steps then ran `git pull`, which aborts on a dirty tree whenever a
concurrent bot commit advanced develop first. Rewrote its commit step as a
fetch → reset --hard → regenerate → commit → push retry loop (README is a pure
function of inventory, so a hard reset never loses data and eliminates the
merge-conflict / --ours/--theirs class entirely).

Also:
- 03.1/03.2/03.3: wrap the single-shot pull --rebase && push in a 5x retry loop.
- 07.1 PR Guardian: continue-on-error (advisory; keeps the comment, drops the
  blocking red  on AI false positives) + PR-scoped concurrency.
- 07.2 Markdown Linter: PR/branch-scoped concurrency with cancel-in-progress.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:06:10 +02:00
Nubenetes Bot f60d071e40 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 16:55:52 +00:00
Nubenetes Bot 57ebe6cec3 merge: back-merge v2.9.12 into develop 2026-06-19 18:50:04 +02:00
Nubenetes Bot 60abdc60d5 release: v2.9.12 — restore V2 search/tag filter + drop redundant Markdown TOC 2026-06-19 18:49:51 +02:00
Inaki 1834227e72 Merge pull request #392 from nubenetes/feat/restore-v2-search-drop-toc
feat(v2): restore in-page search/tag filter & drop redundant Markdown TOC
2026-06-19 18:49:40 +02:00
Nubenetes BotandClaude Opus 4.8 19b7b44e20 feat(v2): restore in-page search/tag filter & drop redundant Markdown TOC
Fix: the per-page resource search box with maturity tag-pills stopped
appearing after navigation.instant was enabled (DOMContentLoaded fires only
on first SPA load). Reworked v2_filter.js to init via Material's document$
observable with a DOMContentLoaded fallback, guard double-injection, bind the
clickable-tag delegation once, and add a no-results state. Cache-bust ?v=2.9.12.

Change: removed the duplicated Markdown "## Table of Contents" from all 156 V2
content pages and from v2_optimizer.py — it forced hundreds of links of scroll
on large pages. Replaced by Material's native sticky "On this page" TOC
(removed toc.integrate, added toc.follow). tags.md keeps its TOC (it is an index).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:49:15 +02:00
Inaki 4cd9c4bbf0 Merge pull request #391 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 16:39:09 +02:00
Nubenetes Bot 600dceff4e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 14:38:39 +00:00
Nubenetes Bot 2b7f55ad9d docs: automated README metric synchronization [skip ci] 2026-06-19 14:27:16 +00:00
Inaki c76ad03539 Merge pull request #390 from nubenetes/feat/fix-geo-digest-display
fix: populate Industry & Geo Intelligence Digest + España→Spain
2026-06-19 16:26:52 +02:00
nubenetes-bot ad62e46f9e style(cleaner): auto-correcting formatting & URL normalization 2026-06-19 14:25:24 +00:00
Nubenetes BotandClaude Sonnet 4.6 48e8f71b6d fix: populate Industry & Geo Intelligence Digest (España→Spain rename)
_get_entry_geo() called entry.get("url","") before the url key was
injected into the dict, so TLD inference always received an empty
string and all 304 geo-eligible entries were silently dropped.

Fix: add url= parameter to _get_entry_geo and pass the dict key from
generate_digest. Also renames España→Spain in DIGEST_CATEGORIES,
GEO_CATEGORIES, TLD map, and v2_optimizer geo_cats list.

news_digest.json now includes Americas/Europe/Spain/Asia-Pacific data
(star-based fallback; Gemini will re-rank on next Monday CI run).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:24:18 +02:00
Nubenetes Bot d1d986bf78 merge: back-merge v2.9.10 into develop 2026-06-19 16:06:43 +02:00
Nubenetes Bot 81a73acc65 docs: automated README metric synchronization [skip ci] 2026-06-19 14:06:37 +00:00
Nubenetes Bot c095672810 release: v2.9.10 — readme-sync push loop fix + digest pipe-in-title fix 2026-06-19 16:06:27 +02:00
Nubenetes Bot 2c9b460462 Merge branch 'develop' of github.com:nubenetes/awesome-kubernetes into develop 2026-06-19 16:06:07 +02:00
Nubenetes BotandClaude Sonnet 4.6 ebba2c81f6 docs: CHANGELOG entry for v2.9.10
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:05:59 +02:00
Nubenetes Bot 92dab5e0ee docs: automated README metric synchronization [skip ci] 2026-06-19 14:05:36 +00:00
Inaki da96dbc08a Merge pull request #389 from nubenetes/feat/fix-readme-sync-push-loop
fix: readme-sync push loop — rebase → merge-based retry
2026-06-19 16:05:12 +02:00
nubenetes-bot 5eec0880f7 style(cleaner): auto-correcting formatting & URL normalization 2026-06-19 14:04:54 +00:00
Nubenetes BotandClaude Sonnet 4.6 b470c4acdb fix: escape pipe chars in digest table link titles
Titles containing ' | ' (e.g. "Neo, Now in the Terminal | Pulumi Blog")
broke the Markdown table renderer because the unescaped pipe was parsed
as a column separator.

Root cause: v2_optimizer.py escaped pipes in the 'why' column but not
in the link title — one-line fix adds `.replace("|", r"\|")` to `t`.

Also corrects the 4 already-rendered broken entries in tech-digest.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:04:21 +02:00
Nubenetes BotandClaude Sonnet 4.6 c70aef8b78 fix: readme-sync push loop — switch from rebase to merge-based retry
The rebase loop never attempted a push after self-healing; it looped
back to `git pull --rebase` and hit a fresh conflict every iteration
(5x), then the final bare push failed non-fast-forward.

Root cause: in a rebase `--ours` = remote side (not our bot commit),
so the README was discarded and rebuilt each round while the remote
kept advancing.

Fix:
- Pull latest *before* committing (shrinks conflict window)
- Retry loop now tries push first, then merge-pulls on rejection
- Uses `-X ours` merge (correct semantics: keep bot's README)
- Re-runs updater after each merge so metrics stay consistent

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:02:13 +02:00
Inaki 3ff5a4e29a Merge pull request #388 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 15:57:21 +02:00
Nubenetes Bot 94ac0b73a2 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 13:56:44 +00:00
Nubenetes Bot 3669753fb1 merge: back-merge v2.9.9 into develop 2026-06-19 15:56:14 +02:00
Nubenetes Bot 00cf39f19b release: v2.9.9 — backfill CHANGELOG 2.6.0-2.9.1 (now complete) 2026-06-19 15:56:09 +02:00
Inaki 8eea34b1d1 Merge pull request #387 from nubenetes/docs/changelog-backfill-2.6-2.9.1
docs: backfill CHANGELOG entries for 2.6.0-2.9.1
2026-06-19 15:55:54 +02:00
Nubenetes BotandClaude Opus 4.8 8ad8230014 docs: backfill CHANGELOG entries for 2.6.0-2.9.1
Reconstructed the missing 2.6.0-2.9.1 entries from GitHub Release notes,
closing the gap where CHANGELOG.md had stalled at 2.5.8 while releases
reached 2.9.x. Changelog is now complete and continuous through 2.9.9.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:55:47 +02:00
Nubenetes Bot ebc7e7a26f merge: back-merge v2.9.8 into develop 2026-06-19 15:52:32 +02:00
Nubenetes Bot 6a1b944e45 release: v2.9.8 — gh_pushed data cleanup + CHANGELOG backfill (2.9.2-2.9.8) 2026-06-19 15:52:27 +02:00
Inaki a05d33381a Merge pull request #386 from nubenetes/docs/changelog-2.9.8
docs: document releases 2.9.2-2.9.8 in CHANGELOG.md
2026-06-19 15:52:12 +02:00
Nubenetes BotandClaude Opus 4.8 2b5bb54d94 docs: document releases 2.9.2-2.9.8 in CHANGELOG.md
The in-repo CHANGELOG had drifted (last entry 2.5.8) while GitHub Releases
went to 2.9.7. Backfill the 2.9.2-2.9.8 entries I have full detail on and
flag the 2.6.0-2.9.1 gap. 2.9.8 also covers the existing gh_pushed
'N/A'->null data cleanup (PR #385).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:52:06 +02:00
Nubenetes Bot 803870adc5 docs: automated README metric synchronization [skip ci] 2026-06-19 13:49:37 +00:00
Inaki eeef76614d Merge pull request #385 from nubenetes/chore/normalize-gh-pushed-data
chore: normalize existing gh_pushed 'N/A' -> null (281 rows)
2026-06-19 15:49:14 +02:00
Nubenetes BotandClaude Opus 4.8 cc9e7ae220 chore: normalize existing gh_pushed 'N/A' -> null in inventory (281 rows)
Completes the v2.9.4 source fix by cleaning the existing data. last_checked
is already INTEGER (applied by a pipeline run after v2.9.6), so this diff is
limited to the 281 gh_pushed values. Deterministic / CI-reproducible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:48:56 +02:00
Nubenetes Bot 47aec8ed87 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 13:48:06 +00:00
Nubenetes Bot d31cf94c8d merge: back-merge v2.9.7 into develop 2026-06-19 15:42:02 +02:00
Nubenetes Bot 9f70c32ff5 release: v2.9.7 — align Intelligence Digest hero card height 2026-06-19 15:41:49 +02:00
Inaki 7425a6a4cb Merge pull request #383 from nubenetes/fix/hero-digest-card-size
fix: align Intelligence Digest hero card height with the other 4
2026-06-19 15:41:44 +02:00
Nubenetes BotandClaude Opus 4.8 891f4b8dbd fix: align Intelligence Digest hero card height with the other 4
The four logo hero cards use a 100px <img>; the Intelligence Digest card
uses an emoji <div class=hero-badge-icon> that was only ~32px tall, so it
rendered shorter. Give .hero-badge-icon a 100px flex-centered box (and
matching 12px bottom margin) so all five cards are the same height.

Cache-bust bumped to ?v=2.9.7.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:41:32 +02:00
Nubenetes Bot 7c467ea752 Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 15:38:53 +02:00
Nubenetes Bot 6050b39545 merge: back-merge v2.9.6 into develop 2026-06-19 15:38:51 +02:00
Nubenetes Bot 29abd31e56 release: v2.9.6 — deterministic inventory dump (last_checked INTEGER) 2026-06-19 15:38:46 +02:00
Nubenetes Bot 6090747083 docs: automated README metric synchronization [skip ci] 2026-06-19 13:38:44 +00:00
Inaki fe08a271f4 Merge pull request #382 from nubenetes/fix/deterministic-dump-code
fix: deterministic inventory dump — last_checked as INTEGER
2026-06-19 15:38:19 +02:00
Nubenetes BotandClaude Opus 4.8 1fe0509433 fix: deterministic inventory dump — last_checked as INTEGER
last_checked stored epoch seconds as REAL; SQLite's version-specific
REAL->text float printing rewrote ~every row on dump, so a locally
regenerated inventory.sql diverged from CI's. Normalize last_checked to
int on the entry before both the SQL record and the YAML dump, and make
the column INTEGER. All readers do coarse day-level staleness checks, so
sub-second precision is unused.

Verified: load->save idempotent for inventory.sql AND inventory.yaml, and
local (SQLite 3.40.1) output byte-identical to CI-equivalent python:3.11
(SQLite 3.46.1). The deterministic data regenerates on the next pipeline
save; committing only the code avoids conflicting with pipeline data churn.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:37:51 +02:00
Inaki d9ed471d16 Merge pull request #380 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 15:32:13 +02:00
Nubenetes Bot 6bed317cdc feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 13:30:54 +00:00
Nubenetes Bot a0927d47f7 Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 15:24:51 +02:00
Nubenetes Bot 543e3c4d82 merge: back-merge v2.9.5 into develop 2026-06-19 15:24:49 +02:00
Nubenetes Bot 6a4a1278df docs: automated README metric synchronization [skip ci] 2026-06-19 13:24:47 +00:00
Nubenetes Bot a6b0b19fbd release: v2.9.5 — fix runaway YouTube mosaic breaking V1/V2 index pages 2026-06-19 15:24:33 +02:00
Inaki 59d6234792 Merge pull request #379 from nubenetes/fix/mosaic-runaway-index
fix: stop YouTube mosaic from rendering the entire inventory (index outage)
2026-06-19 15:24:22 +02:00
Nubenetes BotandClaude Opus 4.8 e95cd9dc56 fix: stop YouTube mosaic from rendering the entire inventory (index outage)
load_inventory_channels() selected entries via 'youtube_mosaic' in entry
(key presence). save_inventory() always writes a youtube_mosaic column
that the SQL round-trip materializes as an empty dict {} on EVERY entry,
so the filter matched all 18,647 inventory entries and emitted ~18.6k
inline <img> links on a single line. That produced a 4MB v2-docs/index.md
(and 2.9MB docs/index.md), hanging both V1 and V2 index pages in the
browser. A prior revert masked it; the next SQL-backed sync re-broke it.

Fix: only treat an entry as a mosaic channel when youtube_mosaic is a
non-empty dict with a logo image (136 curated channels). Regenerated both
index files via reorganize_mosaic — docs/index.md is now byte-identical
to the last known-good state (52KB); v2-docs/index.md back to 41KB.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:24:00 +02:00
Nubenetes Bot 68078fa253 Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 15:10:58 +02:00
Nubenetes Bot 79e0fc7f53 merge: back-merge v2.9.4 into develop 2026-06-19 15:10:56 +02:00
Nubenetes Bot 5ade4daaec docs: automated README metric synchronization [skip ci] 2026-06-19 13:10:50 +00:00
Nubenetes Bot 421765d66f release: v2.9.4 — normalize gh_pushed to None at enrichment source 2026-06-19 15:10:39 +02:00
Inaki 4eb8e1c21c Merge pull request #378 from nubenetes/fix/normalize-gh-pushed-source
fix: store gh_pushed as None instead of 'N/A' at enrichment source
2026-06-19 15:10:28 +02:00
Nubenetes BotandClaude Opus 4.8 9d13a6a21a fix: store gh_pushed as None instead of 'N/A' at enrichment source
The date field gh_pushed was written as the literal string 'N/A' when
GitHub data was unavailable (fast_enrich, gemini_utils). That non-date
string then reached datetime.fromisoformat() downstream. Now writes None
(which all readers already handle); gh_license keeps its 'N/A' string
sentinel since it is a displayed value, not a date.

Also hardens the twin fromisoformat() call in agentic_curator's MVQ
penalty check (guards N/A/None and wraps parsing) so a bad value can't
crash a curation batch.

Adds scripts/normalize_gh_pushed.py to clean the 281 existing inventory
entries (run in CI to avoid SQLite float-serialization churn — see
script docstring).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:10:06 +02:00
Nubenetes Bot 5de57738cb Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 15:04:36 +02:00
Nubenetes Bot c90d45cb4b merge: back-merge v2.9.3 into develop 2026-06-19 15:04:34 +02:00
Nubenetes Bot 325eb8a83a docs: automated README metric synchronization [skip ci] 2026-06-19 13:04:18 +00:00
Nubenetes Bot 361f34a74a release: v2.9.3 — harden Platinum audit against null/N-A inventory fields 2026-06-19 15:04:08 +02:00
Inaki 89016b7e64 Merge pull request #377 from nubenetes/fix/safety-audit-null-handling
fix: harden Platinum audit against null/N-A inventory fields
2026-06-19 15:03:54 +02:00
Nubenetes BotandClaude Opus 4.8 4212b1f5ae fix: harden Platinum audit against null/N-A inventory fields
The V2 safety audit emitted hundreds of WARN lines and then aborted
entirely with 'NoneType object has no attribute lower':

- validate_mvq_compliance: gh_pushed of 'N/A' (and historic None/empty)
  was passed to datetime.fromisoformat() -> 'Invalid isoformat string';
  and gh_stars/stars stored as null hit 'None * int'. Now skips entries
  with no usable push date and coalesces None before the star math.
- validate_linguistic_tagging: a null 'language' field caused
  None.lower(), which aborted the whole report. Now coalesces to English.
- generate_audit_report: each mandate now runs in isolation so a single
  bad entry can no longer kill the entire audit; failures are logged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:03:33 +02:00
Inaki 8cd85a35e8 Merge pull request #376 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 15:02:07 +02:00
Nubenetes Bot f85439c757 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 12:59:44 +00:00
Inaki 0d10c89a0f Merge pull request #375 from nubenetes/docs/bump-claudemd-version
docs: bump CLAUDE.md current version to v2.9.2
2026-06-19 14:42:59 +02:00
Nubenetes BotandClaude Opus 4.8 919ecd9dfd docs: bump CLAUDE.md current version to v2.9.2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 14:42:49 +02:00
Nubenetes Bot 882baa7917 Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 14:41:35 +02:00
Nubenetes Bot 1def1edd28 merge: back-merge v2.9.2 into develop 2026-06-19 14:35:02 +02:00
Nubenetes Bot 1fe5356c7c docs: automated README metric synchronization [skip ci] 2026-06-19 12:33:15 +00:00
203 changed files with 40044 additions and 35068 deletions
@@ -66,8 +66,12 @@ jobs:
echo "No changes in inventory to commit."
else
git commit -m "chore: update inventory stars and licenses [skip ci]"
git pull origin develop --rebase
git push origin develop
# Retry rebase+push to survive concurrent bot pushes to develop.
for i in {1..5}; do
git pull origin develop --rebase && git push origin develop && exit 0
echo "Push attempt $i/5 rejected — retrying..."; sleep $((i * 3))
done
echo "::error::Inventory metadata push failed after 5 attempts."; exit 1
fi
- name: Persist Incremental Inventory to Cache
+6 -2
View File
@@ -80,8 +80,12 @@ jobs:
echo "No changes in AI analysis to commit."
else
git commit -m "chore: update inventory AI analysis"
git pull origin develop --rebase
git push origin develop
# Retry rebase+push to survive concurrent bot pushes to develop.
for i in {1..5}; do
git pull origin develop --rebase && git push origin develop && exit 0
echo "Push attempt $i/5 rejected — retrying..."; sleep $((i * 3))
done
echo "::error::Inventory AI-analysis push failed after 5 attempts."; exit 1
fi
- name: Persist Incremental Inventory to Cache
+6 -2
View File
@@ -90,8 +90,12 @@ jobs:
echo "No automated changes to commit."
else
git commit -m "docs: update Video Hub with high-fidelity metadata"
git pull origin develop --rebase
git push origin develop
# Retry rebase+push to survive concurrent bot pushes to develop.
for i in {1..5}; do
git pull origin develop --rebase && git push origin develop && exit 0
echo "Push attempt $i/5 rejected — retrying..."; sleep $((i * 3))
done
echo "::error::Video Hub push failed after 5 attempts."; exit 1
fi
- name: Persist Incremental Inventory Cache
+36 -24
View File
@@ -124,37 +124,49 @@ jobs:
python -m src.safety_readme
- name: Commit and Push V2 Elite Updates
env:
PYTHONPATH: ${{ github.workspace }}
run: |
git config --global user.name "Nubenetes Bot"
git config --global user.email "bot@nubenetes.com"
git add -A
if git diff --staged --quiet; then
echo "No automated changes to commit."
else
git commit -m "feat: sync V2 elite curated edition and README metrics [skip ci]"
# Pull, rebase, and push with automatic resolution of README.md conflicts
for i in {1..5}; do
if git pull origin develop --rebase; then
if git push origin develop; then
exit 0
fi
else
echo "Rebase conflict detected, attempting self-healing..."
# Discard local conflicting changes to README.md and accept remote
git checkout --ours README.md || git checkout --theirs README.md
git add README.md
# Continue rebase
GIT_EDITOR=true git rebase --continue || { git rebase --abort; git pull origin develop; }
# Re-run README sync to update metrics with remote state incorporated
python -m src.readme_updater
python -m src.safety_readme
git add README.md
git commit --amend --no-edit
fi
sleep 5
done
git push origin develop
exit 0
fi
git commit -m "feat: sync V2 elite curated edition and README metrics [skip ci]"
OUR=$(git rev-parse HEAD)
# Deterministic publish loop (replaces the fragile rebase + --ours/--theirs
# self-healing that could hang on a conflict and discard the bot's metrics).
# The render is authoritative for its generated surface, so each attempt:
# 1. hard-resets to the freshest remote tip (no conflict possible),
# 2. overlays our generated outputs verbatim (docs/, v2-docs/, inventory,
# news_digest) — source configs in data/ are left untouched,
# 3. regenerates README.md (a pure function of the inventory) on top,
# 4. commits and pushes; on rejection it retries from the new tip.
GENERATED="docs v2-docs data/inventory.yaml data/inventory.sql data/news_digest.json"
for i in {1..5}; do
echo "Publish attempt $i/5..."
git fetch origin develop
git reset --hard origin/develop
git checkout "$OUR" -- $GENERATED
python -m src.readme_updater
python -m src.safety_readme
git add -A
if git diff --staged --quiet; then
echo "Remote already matches this render. Nothing to push."
exit 0
fi
git commit -m "feat: sync V2 elite curated edition and README metrics [skip ci]"
if git push origin develop; then
echo "Push succeeded on attempt $i."
exit 0
fi
echo "Attempt $i rejected — remote advanced, retrying from fresh tip..."
sleep $((i * 3))
done
echo "::error::V2 publish push failed after 5 attempts (persistent write contention on develop)."
exit 1
- name: Create or Update Promotion PR to Master
env:
+30 -27
View File
@@ -58,31 +58,34 @@ jobs:
run: |
git config --global user.name "Nubenetes Bot"
git config --global user.email "bot@nubenetes.com"
git add README.md
if git diff --staged --quiet; then
echo "No changes in README.md to commit."
else
export PYTHONPATH=$PYTHONPATH:.
# README.md is a *pure function* of the inventory, so we never need to
# preserve a local README state: each attempt hard-resets to the freshest
# remote tip, regenerates, commits and pushes. This eliminates the two
# failure classes that previously broke this job:
# 1. Dirty-tree abort — the earlier steps modify README.md, then
# `git pull` aborted with "local changes would be overwritten by merge".
# 2. Merge/rebase --ours/--theirs confusion under concurrent bot pushes.
# A push can now only be rejected if the remote advanced between reset and
# push; we simply retry from the new tip. No conflict resolution required.
for i in {1..5}; do
echo "README sync attempt $i/5..."
git fetch origin develop
git reset --hard origin/develop
python src/readme_updater.py
python src/safety_readme.py
git add README.md
if git diff --staged --quiet; then
echo "README already in sync with inventory. Nothing to commit."
exit 0
fi
git commit -m "docs: automated README metric synchronization [skip ci]"
# Pull, rebase, and push with automatic resolution of README.md conflicts
for i in {1..5}; do
if git pull origin develop --rebase; then
if git push origin develop; then
exit 0
fi
else
echo "Rebase conflict detected, attempting self-healing..."
# Discard local conflicting changes to README.md and accept remote
git checkout --ours README.md || git checkout --theirs README.md
git add README.md
# Continue rebase
GIT_EDITOR=true git rebase --continue || { git rebase --abort; git pull origin develop; }
# Re-run README sync to update metrics with remote state incorporated
python -m src.readme_updater
python -m src.safety_readme
git add README.md
git commit --amend --no-edit
fi
sleep 5
done
git push origin develop
fi
if git push origin develop; then
echo "Push succeeded on attempt $i."
exit 0
fi
echo "Attempt $i rejected — remote advanced, retrying from fresh tip..."
sleep $((i * 3))
done
echo "::error::README sync failed after 5 attempts (persistent write contention on develop)."
exit 1
+3
View File
@@ -25,6 +25,9 @@ jobs:
uses: actions/checkout@v6
with:
submodules: true
# Full history so mkdocs-git-revision-date-localized can compute the
# real per-page "last updated" date (shallow clone => all build-date).
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v6
+14 -1
View File
@@ -10,6 +10,11 @@ on:
required: false
type: string
# Cancel superseded Guardian runs when a PR is updated (saves CI minutes + Gemini calls).
concurrency:
group: pr-guardian-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
agentic-presubmit:
runs-on: ubuntu-latest
@@ -35,6 +40,11 @@ jobs:
pip install --no-cache-dir pydantic PyGithub httpx fake-useragent pytz python-dotenv pyyaml tenacity
- name: Run PR Guardian Analysis
# Advisory gate: the Guardian is an AI heuristic that can misattribute
# pre-existing lines or mischaracterize a PR. It always posts its findings
# as a PR comment, but a non-zero exit must NOT show the PR as a blocking
# red ❌. continue-on-error keeps the check green while preserving the comment.
continue-on-error: true
env:
GEMINI_API_KEY_1: ${{ secrets.GEMINI_API_KEY_1 }}
GEMINI_API_KEY_2: ${{ secrets.GEMINI_API_KEY_2 }}
@@ -49,7 +59,10 @@ jobs:
run: |
git config --global user.name "nubenetes-bot"
git config --global user.email "bot@nubenetes.com"
git add docs/ v2-docs/ README.md data/inventory.yaml data/inventory.sql src/memory/
# NOTE: v2-docs/ is deliberately excluded. It is generated by
# src/v2_optimizer.py (single source of truth); re-formatting it here
# caused a perpetual cosmetic develop<->master drift (see pr_guardian.py).
git add docs/ README.md data/inventory.yaml data/inventory.sql src/memory/
if ! git diff --cached --quiet; then
git commit -m "style(cleaner): auto-correcting formatting & URL normalization"
git push origin HEAD:${{ github.event.pull_request.head.ref }} || echo "⚠️ Push failed (likely fork permission limit)."
@@ -10,6 +10,11 @@ on:
paths:
- '**/*.md'
# Supersede in-flight lint runs for the same PR/branch on new commits.
concurrency:
group: md-linter-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
+330
View File
@@ -5,6 +5,336 @@ 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 7681080; 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
- **Kubernetes quick-nav menu reliability**: The Kubernetes dropdown (22 items) was the only menu tall enough to need a scrollbar on an anchor-positioned popover, which made it open/behave unreliably compared to the others. It now uses a 2-column layout (`column-count: 2`), halving its height (~731px → ~353px) so it shows in full without a scrollbar at any realistic viewport; multicol is column-major, so reading order is preserved. Also removed `flip-block` from the menu position-try fallbacks (kept `flip-inline`): the quick-nav is a sticky top bar, so a tall menu flipping above would shoot off the top of the screen — menus now always open downward. Verified in Chrome 148 (Playwright) at viewport heights 7001080. Cache-bust `?v=2.9.37`; V2-only.
## [[2.9.36]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.36) - 2026-06-20
### Changed
- **Quick-nav fully regrouped into 11 thematic menus + nested AWS submenu**: Reorganized the quick-nav into one direct pill (Topic Map) plus 11 category dropdowns that group related topics so every destination has a sensible home: Digest · Kubernetes (Overview · Docker · Tools · Helm · kubectl · all kubernetes-* · Managed · OpenShift · Rancher) · Delivery (GitOps · CI/CD · DevOps · Argo · Flux · Tekton · Jenkins · …) · IaC (Terraform · IaC · Ansible · Pulumi · Crossplane · Kustomize) · Cloud · Network · Security · Observability & SRE · AI & Data · Dev & Platform · More. Docker now lives inside Kubernetes; GitOps + CI/CD + DevOps share Delivery; Terraform + IaC share IaC. **AWS is a nested submenu inside Cloud** (Cloud → AWS ▸ → 8 AWS pages), built with nested Popover API + explicit `anchor()` side-positioning (position-area's horizontal axis isn't honored when the anchor is inside another popover). Pages may appear in more than one menu where it aids discovery; menus get `max-height:82vh` + scroll for the tall Kubernetes menu. Verified in Chrome 148 (Playwright). Cache-bust `?v=2.9.36`; V2-only.
- **AWS + Kubernetes provider hubs now live**: This release also publishes the regenerated v2-docs from v2.9.34/v2.9.35 — the AWS landing page (3 → ~40 links + "Deep-Dive Topic Pages" hub, trivial sub-pages consolidated) and the Kubernetes sub-page hub.
## [[2.9.35]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.35) - 2026-06-20
### Added
- **Kubernetes provider hub**: A fragmentation audit found only two prefix clusters — `aws` (fixed in v2.9.34) and `kubernetes`. Unlike AWS, Kubernetes is well-classified (rich parent at 157 links + substantial distinct children: tools 144, networking 64, security 52, monitoring 24, …), so nothing is merged. This adds a "Deep-Dive Topic Pages" hub to `kubernetes.md` indexing its 14 substantial sub-pages (Tools · Networking · Security · Monitoring · Storage · Autoscaling · Operators · Alternatives · Big Data · Tutorials · Backup & Migrations · Client Libraries · Local Dev · On-Premise) — purely additive navigation, no merging or pruning. Other small pages (pulumi, kustomize, registries, …) are legitimate distinct topics and were intentionally left alone. Generator-only (`src/v2_optimizer.py`); republished on the next curation run.
## [[2.9.34]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.34) - 2026-06-20
### Changed
- **AWS page de-fragmentation + provider hub**: The AWS landing page rendered with only ~3 links because AWS content was split across ~20 granular pages (Azure/GCP use a single rich page each), many with just 1-5 links. Two generator changes in `src/v2_optimizer.py` fix this: (A) `aws.md` now renders a "Deep-Dive Topic Pages" hub linking to the substantial sub-pages that remain (Serverless · Storage · Networking · Security · IaC · Backup · New Features) via a new `subpage_hubs` map; (B) the near-empty / junk-drawer AWS sub-pages (≤7 links + "miscellaneous": aws-pricing, aws-training, aws-data, aws-messaging, aws-tools-scripts, aws-monitoring, aws-architecture, aws-containers, aws-devops, aws-databases, aws-miscellaneous) merge into `aws.md` via the existing `merge_map`, with their slugs removed from `dimensions` so the pipeline prunes the orphans and auto-syncs the nav. Verified with `--render-only`: aws.md goes from 3 to 44 links plus the 7-child hub. V1 (`docs/`) is untouched by design (exhaustive archive + merge source). Generator-only; the AWS pages are republished on the next curation run.
## [[2.9.33]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.33) - 2026-06-20
### Added
- **Quick-nav menu expansion — 38 destinations**: Data-driven expansion of the hybrid quick-nav (ranked by per-page link count + relevance). New 📊 Digest menu pairs both editions (Tech & Cloud Digest + Industry & Geo Digest); new 🧰 K8s menu surfaces the Kubernetes ecosystem (Kubernetes Tools · Helm · Managed K8s · OpenShift · Tutorials). Existing menus grew: ☁️ Cloud += Serverless · FinOps; 🌐 Network += Service Mesh (Istio emoji → ⛵); ⚙️ Ops += IaC · Developer Portals; ⋯ More += Technical Tags · Demos. 38 destinations total across 6 direct pills + 7 Popover menus; chip font trimmed to 0.62rem with tighter gap/padding so all 13 bar chips fit one row down to ~1280px. Verified in Chrome 148 (Playwright): every menu opens below its button, flips near the right edge, and closes on Esc. Cache-bust `?v=2.9.33`; V2-only.
## [[2.9.32]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.32) - 2026-06-20
### Fixed
- **Quick-nav menus open below their button + fit one row**: Fixed two issues in the v2.9.31 hybrid quick-nav (verified in Chrome 148 via Playwright). (1) The Popover category menus did not visibly open on click — they used `position-area: bottom span-inline-end`, which mixes a physical keyword (`bottom`) with a logical one (`span-inline-end`); that is invalid CSS and silently computed to `none`, leaving the menu in its static position on top of the button. Fixed with a valid all-physical `position-area: bottom span-right` plus explicit `anchor-name` / `position-anchor` pairs per button↔menu, so each menu reliably drops below its trigger and auto-flips near the right edge. (2) The bar wrapped to a second row on common displays — reduced the chip font ~1pt (`0.7rem → 0.64rem`) and trimmed the column-gap/padding so all 7 pills + 5 menus fit a single row down to 1280px viewports. Cache-bust `?v=2.9.32`; V2-only, CSS-only.
## [[2.9.31]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.31) - 2026-06-20
### Changed
- **Hybrid quick-nav — direct pills + Popover category menus**: Collapsed the 25-destination quick-nav from 3 wrapped rows to a single slim row that stays one row regardless of how many destinations are added. The most-used flagships remain direct one-click pills (Topic Map · Digest · Kubernetes · Docker · GitOps · Terraform · AI & MCP); the long-tail clusters fold into five category menus — ☁️ Cloud, 🌐 Network, 🔐 Security, ⚙️ Ops, ⋯ More — built with the native HTML Popover API + CSS Anchor Positioning (Baseline 2026), zero JS. Menus drop below their button via `position-area` with flip fallbacks, animate in with `@starting-style`, rotate their caret via `:has()`, and inherit the Popover API's built-in Esc / click-outside dismissal and focus management (identical on touch and desktop); `prefers-reduced-motion` honored. All 25 destinations preserved. Touches `docs/overrides/main.html` + `docs/static/v2_elite.css` (cache-bust `?v=2.9.31`); V2-only, no page regeneration.
## [[2.9.30]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.30) - 2026-06-20
### Changed
- **Quick-nav — networking cluster + DevSecOps**: Grew the quick-nav bar to 25 destinations. Added a new networking cluster after the cloud providers (🌐 Networking · 🕸️ Istio · 🔗 K8s Net) and DevSecOps alongside Security (🔐 Security · 🛡️ DevSecOps), keeping short labels and category grouping. Template-only change to `docs/overrides/main.html` reusing the existing `.nb-quicknav` pill styling — no CSS change, no page regeneration. V2-only.
## [[2.9.29]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.29) - 2026-06-20
### Changed
- **Quick-nav redesign — centered category-grouped pill chips**: Grew the quick-nav bar to 21 destinations and restyled it as a modern, centered chip bar. Added CI/CD, Ansible, and the three hyperscalers (AWS, Azure, GCP), and reordered every tab into related category clusters with short labels: discovery (Topic Map · Digest · Videos) → platform (Kubernetes · Docker) → delivery (GitOps · CI/CD) → IaC (Terraform · Ansible) → cloud (AWS · Azure · GCP) → security → ops (Observability · SRE · DevOps) → data (Messaging) → AI/ML (AI & MCP · MLOps) → Methodology → V1 Archive (muted). Chip background/border/glow are derived from the theme accent via `color-mix(in srgb, …)` (Chrome 111+) so the bar restyles automatically with the palette; rows are centered (`justify-content: center`) for a balanced multi-row layout, with hover lift, `:focus-visible` outline, `prefers-reduced-motion` support, and a mobile single-row horizontal scroll. Touches `docs/overrides/main.html` + `docs/static/v2_elite.css` (cache-bust `?v=2.9.29`); V2-only, no page regeneration.
## [[2.9.28]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.28) - 2026-06-20
### Changed
- **Expanded quick-nav bar**: Grew the slim quick-nav bar from 6 to 16 curated one-click destinations, surfacing the principal topics across all of Nubenetes from any page. Added the cloud-native pillars (Kubernetes · Docker · GitOps · Terraform · K8s Security · Observability), the ops disciplines (SRE · DevOps), data/messaging (Message Queue), and MLOps alongside the existing AI & MCP hub. Template-only change to `docs/overrides/main.html` (no CSS change, no page regeneration); reuses the existing `.nb-quicknav__link` styling with `flex-wrap` handling density on narrow viewports. Still under the 18-tab overflow line the bar was designed to avoid. V2-only.
## [[2.9.27]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.27) - 2026-06-20
### Added
- **Slim quick-nav bar**: A thin horizontal bar below the header on every V2 page with six curated one-click destinations (Topic Map · Intelligence Digest · Video Hub · AI & MCP · Methodology · V1 Archive). These cross-cutting destinations previously only existed as badge cards on the home; the bar makes them persistently reachable from any depth. Implemented by overriding Material's `tabs` block (empty since `navigation.tabs` is disabled) plus `.nb-quicknav` CSS — so it adds persistent shortcuts WITHOUT reintroducing the 18-tab overflow and WITHOUT collapsing the full collapsible left navigation tree. Template/CSS-only (no page regeneration); V2-only.
## [[2.9.26]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.26) - 2026-06-20
### Changed
- **Collapsible, nested left navigation**: After moving the sections to the left sidebar in 2.9.25, they rendered as a *flat* list of 18 labels with no expand/indent — `navigation.sections` made them non-collapsible group labels and `navigation.prune` stripped the inactive children. Disabled both so the sidebar is now a proper collapsible, nested, indented tree (14 toggles / chevrons, collapsed by default, click to expand). No size penalty (88,213 vs 88,516 bytes per page).
### Added
- **Home section headings**: The V2 home had a single H2, leaving its right-hand "On this page" TOC empty. Added `## Explore the Ecosystem` (badge cards) and `## Trending Now` (Intelligence Digest) alongside the existing `## The Cloud Native Universe We Track`, so the home's right TOC now lists three real sections. Net effect: both side columns are now useful on every page — left = full collapsible directory, right = per-page section map.
## [[2.9.25]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.25) - 2026-06-20
### Changed
- **V2 navigation: tabs → left sidebar**: The 18 top-level sections were rendered as a horizontal tab bar (`navigation.tabs`), whose labels total ~3300px and overflowed a typical ~1400px laptop viewport — forcing horizontal scroll to reach the right-side dimensions and leaving the left sidebar nearly empty on top-level pages like the home. Disabled `navigation.tabs` (+ `.sticky`) so the sections render in the standard vertical left sidebar: it handles all 18 collapsed sections via normal scroll, stays populated on every page (the home's rendered nav goes from 23 links to the full 178-link tree), and nothing clips. Theme-only change preserved across publishes (the optimizer's nav-sync only rewrites the `nav:` block).
## [[2.9.24]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.24) - 2026-06-20
### Added
- **Per-page JSON-LD structured data**: Each V2 content page now emits a second JSON-LD block — a schema.org `CollectionPage` tied to the existing `WebSite`/`Organization` `@graph` — carrying the page name, description, URL, and `datePublished` / `dateModified` fed by the `git-revision-date-localized` plugin's raw ISO dates (the creation/last-update dates from 2.9.23). This enables article/collection rich snippets in search results with real freshness dates. Template-only change (`docs/overrides/main.html`), applied at build time; the homepage is skipped (it is already the `WebSite` entity), and JSON is built with `| tojson` for safe escaping.
## [[2.9.23]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.23) - 2026-06-20
### Changed
- **Richer per-page SEO meta descriptions**: The unique-but-templated descriptions from 2.9.22 now lead with each page's **top-ranked resource names** (long-tail keywords) — e.g. *"Top Kubernetes resources for 2026, AI-ranked: Helm, kube-prometheus and more — curated Cloud Native tools, guides and references."* URL/path-like and emoji-laden titles are filtered out, pages whose top links are all URL-like fall back to the clean template, and the text is capped at ~160 chars on a word boundary. (There is no per-page AI intro to mine, so the page's own top resources are the cleanest source.)
### Added
- **Per-page creation dates**: Enabled `enable_creation_date` on the `git-revision-date-localized` plugin, so every V2 page footer now shows both **Created** and **Last update** — an additional age/freshness signal alongside the last-modified date introduced in 2.9.18.
## [[2.9.22]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.22) - 2026-06-20
### Added
- **robots.txt**: Added `v2-docs/robots.txt` (deployed at the site root) that allows full crawl and references both the V2 (root) and V1 (`/v1/`) sitemaps — previously the site shipped a `sitemap.xml` with no `robots.txt` pointing at it.
### Changed
- **Unique per-page SEO meta descriptions**: Every V2 page previously fell back to the identical global `site_description`, so ~140 pages shared one `<meta name="description">` (a duplicate-content SEO penalty). `v2_optimizer.py` now emits a unique `description:` front-matter per page — derived from the page title and its strategic dimension — which Material renders as `<meta name="description">` and `og:description`. The Topic Map and Methodology pages get tailored descriptions. The 12 redirect-stub pages were intentionally left untouched (they already 0s meta-refresh redirect with `canonical` pointing at the target, which passes authority better than `noindex`).
## [[2.9.21]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.21) - 2026-06-20
### Added
- **README database & lifecycle diagrams**: Added two new collapsible Mermaid diagrams — a **Database Architecture** diagram (§6.1.3) detailing the YAML + SQLite coexistence engine (`inventory.sql` Git source-of-truth → in-memory SQLite → `inventory.yaml` mirror, plus the per-resource schema), and a **full Data Lifecycle** diagram (§6.3) tracing a resource from discovery and ingestion through cached maintenance/enrichment to render and deploy, with background garbage collection.
### Changed
- **Grouped, compact Technical Tags Index TOC**: The `tags.md` table of contents was a flat 80-entry numbered list that buried the 8 maturity tags under a long tail of one-resource "X Content" language tags. It is now grouped into *Maturity and Quality* (numbered) plus *Technical Domains* / *Language and Format* (compact, count-sorted inline rows). Generator (`v2_optimizer.py`) now emits unique explicit heading anchors (`{#slug}`) shared by the TOC and section headers — fixing collisions where `C` / `C#` / `C++` all resolved to `#c-content` — corrects the `1 resource` grammar, and filters non-language values (`En`, `Not Applicable`, `Multi-Language`, `Polyglot`, …) that previously created meaningless tag buckets.
- **README mermaid legibility & accuracy**: Fixed text overflow in four diagrams (Division of Labor, Agentic Data Flow, Debate Protocol, Deployment Lifecycle) by wrapping long node labels, removed a duplicate edge, and refreshed the V2 feature documentation with the v2.9.16v2.9.20 work (Topic Map & Methodology pages, per-page last-updated dates, JSON-LD, branded 404, deterministic generated artifacts).
## [[2.9.20]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.20) - 2026-06-20
### Fixed
- **RSS feed drift fully eliminated**: The 2.9.19 fix derived the feed's `<lastBuildDate>` from `_meta.last_updated`, but that analysis timestamp is bumped on every publish even when the ranked content is unchanged, so `v2-docs/feed.xml` still drifted between `develop` and `master`. `src/rss_generator.py` now derives `lastBuildDate` from the **freshest item's content date** (the items only change when the ranking actually changes), with `_meta.last_updated`/a constant as fallbacks. Verified deterministic across reruns, and the `develop` and `master` digests both yield `2026-06-18` — so `feed.xml` is now byte-identical across branches and no longer spawns no-op promotion diffs.
## [[2.9.19]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.19) - 2026-06-20
### Fixed
- **Deterministic RSS `lastBuildDate` (residual develop↔master drift)**: `src/rss_generator.py` set the feed's `<lastBuildDate>` to `datetime.utcnow()`, so every republish rewrote it even when the digest was unchanged — leaving a perpetual 1-line diff in `v2-docs/feed.xml` (the last residual after the PR Guardian drift fix in 2.9.18). It now derives the date from the digest's `_meta.last_updated` (the actual analysis timestamp), falling back to the most recent item date then a fixed constant, making the feed a pure function of its input. Verified byte-identical output across repeated runs; the feed now changes only when the digest content actually changes.
- **In-page filter no longer injected on Topic Map & Methodology**: The resource search / maturity-tag widget (`static/v2_filter.js`) auto-injects wherever a page has `<ul><li>` items. Topic Map lists category links (with counts) and Methodology lists legend rows — neither carries `.md-tag` maturity tags, so the pills always filtered to zero and the "Showing X of Y resources" counter mis-counted categories/rows as resources. Added both pages to the widget's existing `<h1>`-based skip-list (alongside the home, Video Hub, Tags and Digest pages). Cache-bust `v2_filter.js?v=2.9.19`.
## [[2.9.18]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.18) - 2026-06-20
### Added
- **Per-page "Last update" dates (SEO freshness)**: Enabled the `git-revision-date-localized` MkDocs plugin on the V2 portal, surfacing a real last-modified date on every page. Added the dependency to `requirements.txt`, configured it in `v2-mkdocs.yml` (`type: date`, `fallback_to_build_date: true` so a missing git history never fails the build), and set `fetch-depth: 0` on the `06.deploy_final.yml` checkout so the plugin reads full history instead of collapsing every page to the build date.
- **JSON-LD structured data**: Injected schema.org `WebSite` (with a sitelinks `SearchAction`) + publishing `Organization` markup via an `extrahead` block in `docs/overrides/main.html`, making the canonical `nubenetes.com` root eligible for richer search results and knowledge-panel association. Validated: build exits 0 and the emitted JSON-LD parses to `[WebSite, Organization]`.
### Fixed
- **`develop ↔ master` cosmetic drift loop (recurring no-op release PRs)**: The PR Guardian (`07.1.pr_guardian.yml``src/pr_guardian.py`) ran its auto-formatter ("&"→"and" in headings, URL trailing-slash/tracking-param stripping) on every changed `.md` — including the **generated** `v2-docs/` tree — and committed the result back to the PR branch. Because feature PRs land on `develop` (Guardian runs) but release branches merge to `master` via plain `git merge` (Guardian does not run), `develop` accumulated the normalized form while `master` kept the generator's raw form, producing a perpetual cosmetic diff that spawned recurring no-op "🚀 Release: Agentic V2 Portal Update" PRs (e.g. #399). Since `v2_optimizer.py` is the single source of truth for `v2-docs/` formatting, the Guardian now skips that tree in its auto-format loop and drops it from the auto-commit `git add`; hand-authored `docs/` and `README`/`inventory` are unaffected.
## [[2.9.17]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.17) - 2026-06-20
### Fixed
- **Topic Map heading increment (MD001 lint failure)**: The new `topic-map.md` page emitted its per-dimension headings as `###` (h3) directly under the page `#` (h1) title, skipping h2. This tripped `markdownlint` **MD001/heading-increment**, turning the `07.2. Markdown Linter` workflow red on both `develop` and `master` right after the v2.9.16 release. Fixed the generator (`v2_optimizer.py`) and the committed page to emit dimensions as `##` (h2), and updated the CSS selector to `.topic-map-dim h2`. As a bonus, the h2 dimensions now populate the right-hand "On this page" TOC with a clean per-dimension index. Verified with the exact CI `markdownlint` config (0 errors); cache-bust bumped to `?v=2.9.17`.
## [[2.9.16]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.16) - 2026-06-20
### Added
- **V2 Topic Map page**: A new `topic-map.md` (generated by `v2_optimizer.py`) presents the complete category directory grouped by strategic dimension in a **responsive multi-column CSS grid** (3 → 2 → 1 columns), with a **per-category resource count** badge derived from a recursive walk of each category's link tree. This replaces the ~130-link "Strategic Dimensions" dump that previously bloated the home page, and is reachable from a new hero badge card and the top-level nav.
- **V2 Methodology page**: The Maturity Taxonomy and Technical Impact (star score) legend tables moved out of the home into a dedicated `methodology.md`, leaving the landing page focused while keeping the reference one click away.
- **Branded 404 page** (`docs/overrides/404.html`, shared V1/V2): replaces the theme's bare "404 - Not found" with a helpful page offering Home / Topic Map / V1 Archive — a safety net for the deep-link stability the portal depends on.
### Changed
- **Home landing page restructured for altitude**: Moved the fresh, dynamic **Trending Now / Intelligence Digest** block *above* the signature YouTube channel mosaic (previously the static mosaic pushed the live content below the fold). The mosaic is preserved as a brand showcase and now closes the page under a new **"The Cloud Native Universe We Track"** heading, with a slim reference footer linking the Topic Map, Methodology and Video Hub.
- **YouTube mosaic legibility & performance**: Surfaced the seven per-group category labels that were previously hidden in a `title=` tooltip (visible accent-bordered labels), and added `loading="lazy"` to the ~150 channel logos for a meaningful LCP/initial-load improvement.
- **About page videos hardened**: The two embedded videos now use `youtube-nocookie.com` (no tracking cookies until play — consistent with the active `privacy` plugin), `loading="lazy"`, and a responsive `aspect-ratio` wrapper that no longer overflows on mobile.
- **Collapsed left navigation**: Disabled `navigation.expand` in `v2-mkdocs.yml`; with ~169 nav entries it forced every section open (heavy DOM, overwhelming). The new Topic Map page now serves as the full scannable directory.
- **CSS hygiene**: Hoisted repeated inline styles (hero badge row) into `v2_elite.css` classes and bumped the cache-bust to `?v=2.9.16`.
## [[2.9.15]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.15) - 2026-06-19
### Changed
- **Navigable Intelligence Digest TOC**: The Tech & Cloud and Industry & Geo digest pages now show their sections in the right-hand "On this page" TOC. They were rendered period-first (three time-window tabs, each nesting every category as **bold text**), so the pages had zero real headings and an empty TOC. Inverted the layout in `_generate_digest_pages()` to **category-first**: each category is a real `##` heading (Kubernetes & Orchestration, Containers & Runtime, … / Americas, Europe, Spain, Asia-Pacific), with the three time-windows (3 / 6 / 12 months) as content tabs *inside* each category. The TOC now lists all 22 tech categories and 4 geo regions exactly once, headings sit at column 0 (no more MD023 workaround), and the tabbed UX is preserved.
## [[2.9.14]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.14) - 2026-06-19
### Changed
- **Deterministic V2 Publisher Push (04.1)**: Replaced the fragile rebase + `git checkout --ours/--theirs README.md` self-healing in `04.1.agentic_v2_publish.yml` — which could hang on a non-README conflict and silently discard the bot's README metrics — with the same deterministic model now used by `05.1`. The render is authoritative for its generated surface, so each attempt hard-resets to the freshest `origin/develop` tip, overlays the generated outputs verbatim (`docs/`, `v2-docs/`, `data/inventory.yaml`, `data/inventory.sql`, `data/news_digest.json` — source configs like `link_rules.yaml`/`special_assets.yaml` are deliberately left untouched), regenerates `README.md` on top, then commits and pushes with a 5-attempt retry. This never hangs on a conflict and never loses data. Also pinned `PYTHONPATH` on the step so the in-loop `readme_updater`/`safety_readme` calls always resolve `src`.
## [[2.9.13]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.13) - 2026-06-19
### Fixed
- **README Sync Dirty-Tree / Race Failure (root cause)**: `05.1.readme_sync.yml` modified `README.md` in earlier steps and then ran `git pull`, which aborted with *"Your local changes to README.md would be overwritten by merge"* — guaranteed to fail whenever a concurrent bot commit (e.g. the V2 Publisher's `[skip ci]` sync) advanced `develop` first. Rewrote the commit step as a `fetch → reset --hard origin/develop → regenerate → commit → push` retry loop. Since `README.md` is a *pure function* of the inventory, hard-resetting to the freshest remote tip is always safe and removes the merge-conflict and `--ours/--theirs` confusion classes entirely. A push is now only rejected if the remote advances mid-attempt, in which case it retries from the new tip.
### Changed
- **Inventory Push Retries (03.1 / 03.2 / 03.3)**: The metadata, AI-analysis and Video-Hub workflows did a single `git pull --rebase && git push` with no retry, so any rejection from a concurrent push failed the run. Wrapped each in a 5-attempt rebase+push loop (matching the proven `09.weekly_digest.yml` idiom).
- **PR Guardian is now advisory (07.1)**: The AI presubmit is a heuristic that can misattribute pre-existing lines or mischaracterize a PR (it flagged an untouched `about.md` line on PR #392). It still posts its findings as a PR comment, but `continue-on-error: true` stops a non-zero exit from showing the PR as a blocking red ❌. Added PR-scoped `concurrency` so superseded runs are cancelled (saving CI minutes and Gemini calls).
- **Markdown Linter concurrency (07.2)**: Added PR/branch-scoped `concurrency` with `cancel-in-progress` so new commits supersede in-flight lint runs.
## [[2.9.12]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.12) - 2026-06-19
### Fixed
- **V2 In-Page Search/Tag Filter Disappeared**: The per-page resource search box with maturity tag-pills (`static/v2_filter.js`) stopped appearing on every page after `navigation.instant` was enabled in the `2026-06-19` MkDocs UX overhaul. The widget hooked only `DOMContentLoaded`, which under Material's instant (SPA) navigation fires solely on the first load — subsequent in-nav page swaps never re-injected it. Reworked the script to initialize through Material's `document$` observable (emits on every instant navigation, with a `DOMContentLoaded` fallback), guard against double-injection, bind the clickable-tag delegation once on `document`, and show a "no results" state. Cache-bust bumped to `?v=2.9.12`.
### Changed
- **Removed Redundant In-Page Table of Contents**: Dropped the Markdown `## Table of Contents` block from all 156 V2 content pages and from the renderer (`v2_optimizer.py`). It duplicated the theme's heading index and, on large pages, forced hundreds of links of scroll before any content (e.g. `kubernetes-tools` 297 lines, `kubernetes` 295, `demos` 227). Replaced by the MkDocs Material native sticky **"On this page"** TOC: removed `toc.integrate` and added `toc.follow` in `v2-mkdocs.yml` so headings render in the right sidebar and track scroll position. The `tags.md` index page keeps its TOC (it *is* a navigation index).
## [[2.9.10]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.10) - 2026-06-19
### Fixed
- **README Sync Push Loop**: Rewrote the `05.1.readme_sync.yml` retry logic to use a push-first / merge-on-rejection loop instead of a pull-first / rebase loop. The old rebase loop never attempted a push after self-healing — it cycled back to `git pull --rebase`, hitting a fresh conflict on every iteration (×5) because a concurrent V2 sync workflow kept advancing `develop`. Additionally, `--ours` during a rebase refers to the *upstream* side, so the bot's README metrics were silently discarded each round. The fix: pull latest before committing (shrinks conflict window), then retry with `git merge -X ours` (correct semantics) after each rejected push.
- **Digest Table Broken by Pipe in Title**: Titles containing ` | ` (e.g. "Neo, Now in the Terminal | Pulumi Blog") broke the Markdown table in `tech-digest.md` because the unescaped pipe was parsed as a column separator. Root cause in `v2_optimizer.py`: the `why` column escaped pipes (`.replace("|", "-")`) but the link title `t` did not. Fixed with `.replace("|", r"\|")` on the title. The 4 already-rendered broken entries in `tech-digest.md` are corrected directly.
## [[2.9.9]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.9) - 2026-06-19
### Changed
- **Changelog Backfill**: Reconstructed the missing `2.6.0``2.9.1` entries from the GitHub Release notes, closing the gap where `CHANGELOG.md` had stalled at `2.5.8` while releases reached `2.9.x`. The changelog is now complete and continuous.
## [[2.9.8]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.8) - 2026-06-19
### Changed
- **Inventory `gh_pushed` Data Cleanup**: Normalized 281 existing inventory entries whose `gh_pushed` date field held the literal string `"N/A"` to `null`, completing the `2.9.4` source fix. Deterministic and CI-reproducible (`last_checked` already migrated to integer by the pipeline).
- **Changelog Maintenance**: Documented releases `2.9.2``2.9.8` in `CHANGELOG.md`.
## [[2.9.7]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.7) - 2026-06-19
### Fixed
- **Hero Card Height Consistency**: Aligned the emoji-based "Intelligence Digest" hero card with the other four logo cards on the V2 index by giving `.hero-badge-icon` a 100px flex-centered box in `v2_elite.css` (was ~32px tall). Cache-bust bumped to `?v=2.9.7`.
## [[2.9.6]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.6) - 2026-06-19
### Fixed
- **Deterministic Inventory Dump**: Stored `last_checked` as an `INTEGER` (epoch seconds) instead of a `REAL` in `inventory_manager.py`, normalizing the value on the entry before both the SQL and YAML dump. SQLite's version-specific `REAL`→text float printing previously rewrote ~every row of `inventory.sql` when regenerated outside CI. Verified `load→save` idempotent and byte-identical between local SQLite 3.40.1 and the CI-equivalent `python:3.11` (SQLite 3.46.1).
## [[2.9.5]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.5) - 2026-06-19
### Fixed
- **Index Outage (Runaway YouTube Mosaic)**: Fixed `reorganize_mosaic.load_inventory_channels()` selecting channels by `'youtube_mosaic' in entry` (key presence). Because the SQL round-trip materializes that column as an empty dict `{}` on every entry, the filter matched all ~18,647 inventory entries and emitted ~18.6k inline image links on a single line — producing a 4 MB `v2-docs/index.md` (and 2.9 MB `docs/index.md`) that hung both the V1 and V2 index pages. Now only entries with a non-empty `youtube_mosaic` dict and a logo image are rendered (136 curated channels).
## [[2.9.4]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.4) - 2026-06-19
### Fixed
- **`gh_pushed` Source Normalization**: The enrichment writers (`fast_enrich.py`, `gemini_utils.py`) now store `gh_pushed` as `None` when GitHub data is unavailable, instead of the string `"N/A"` that reached `datetime.fromisoformat()` downstream. `gh_license` keeps its displayed `"N/A"` string sentinel.
- **Curator Date-Parse Hardening**: Guarded the twin `fromisoformat()` call in `agentic_curator.py`'s MVQ-penalty check so a bad date value can't crash a curation batch.
### Added
- **Inventory Migration Script**: Added `scripts/normalize_gh_pushed.py` to clean existing `gh_pushed: "N/A"` rows.
## [[2.9.3]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.3) - 2026-06-19
### Fixed
- **Platinum Audit Null Handling**: Hardened `safety_guard.py` against null/`"N/A"` inventory fields. The MVQ compliance check no longer passes `"N/A"` to `datetime.fromisoformat()` or multiplies a `None` star count; the linguistic-tagging check no longer calls `None.lower()` on a null `language` (which had aborted the entire audit). Each mandate now runs in isolation so one bad entry cannot kill the whole report.
## [[2.9.2]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.2) - 2026-06-19
### Fixed
- **Dark-Theme CSS Flashes**: Removed `content-visibility: auto` from broad `<ul>`/`<ol>` selectors and `.v2-tag-section` in `v2_elite.css`. On the slate (dark) theme it caused black flashes while scrolling and made link lists below the index mosaic appear collapsed (intrinsic-size mismatch). The tags page already uses collapsed `<details>` for native render-skipping, so the optimization was redundant. Cache-bust bumped to `?v=2.9.2`.
## [[2.9.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.1) - 2026-06-19
### Changed
- **Incremental Digest Engine**: Each `(category × period)` cell in `news_digest.json` now stores a fingerprint (`entry_hash`, `entry_count`, `last_analyzed`, `method`) of its entry pool. Before calling Gemini, the engine checks the hash and staleness (`MAX_STALENESS_DAYS=30`) and reuses the stored result on a match — dropping Gemini calls from 66 to 0 when the inventory is unchanged, and to ~510 for a new ingestion batch.
- **Trending Badge Source**: The freshness badge now shows the actual Gemini analysis date from `_meta.last_updated`.
### Removed
- Redundant GitHub Actions digest cache (the committed `news_digest.json` is the persistent store) and the invalid `extra_head` key from `v2-mkdocs.yml`.
## [[2.9.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.0) - 2026-06-19
### Fixed
- **Portal Outage — Publisher/Deploy Safety**: Resolved a multi-bug portal outage. Pruning and nav sync are now skipped entirely in `--render-only` mode (CI uses it, and pruning had deleted pages that the render pass didn't regenerate); page deletion is gated on `_sync_enterprise_navigation` returning success; the fragile `nav:` regex was replaced with a string split; and the deploy now verifies the V2 build has a minimum page count (50+ HTML pages + `index.html`) before overwriting V1, falling back to V1-only if V2 looks broken. Pages in `self.dimensions` are never pruned.
## [[2.8.5]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.8.5) - 2026-06-19
### Fixed
- **V2 Build**: Removed the invalid `extra_head` key from `v2-mkdocs.yml` (was breaking V2 HTML generation) and fixed a broken `digital-money.md → finops.md` redirect (now points to `kubernetes.md` since `finops.md` was removed by the publisher).
## [[2.8.4]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.8.4) - 2026-06-19
### Fixed
- **Comprehensive None-Stars Guard**: Replaced all `.get('stars', 0)` patterns in `v2_optimizer.py` with `.get('stars') or 0`, fixing `TypeError: '>=' not supported between NoneType and int` in `_render_single_link` and 13 other comparison/arithmetic sites.
## [[2.8.3]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.8.3) - 2026-06-19
### Added
- **Digest Cache**: The publisher and weekly cron now cache `data/news_digest.json` with a day-scoped key (`news-digest-YYYY-MM-DD`). Same-day re-runs restore from cache and skip Gemini entirely (~20 min CI + 66 API calls saved per skipped run).
## [[2.8.2]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.8.2) - 2026-06-19
### Fixed
- **None-Stars Sort Crashes**: Fixed three `-x.get('stars', default)` sites in `v2_optimizer.py` that crashed with `TypeError: bad operand for unary -: 'NoneType'` when `stars` was null, using the `-(x.get('stars') or default)` pattern (`sort_rec`, `trending_pool`, `sorted_links`).
## [[2.8.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.8.1) - 2026-06-19
### Fixed
- **None `resource_type` Crash**: Fixed `AttributeError: 'NoneType' object has no attribute 'lower'` in `_calculate_tags` when `resource_type` was present but null, via `(item.get('resource_type') or 'Reference')`.
## [[2.8.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.8.0) - 2026-06-19
### Added
- **geo_region Inference**: `_infer_geo_from_url()` maps URL TLDs to regions (`.es`→España, EU TLDs→Europe, APAC TLDs→Asia-Pacific, Americas TLDs→Americas), populating the industry digest.
- **Freshness Badge**: The Trending section header shows an `Updated <date>` pill derived from `news_digest.json` mtime.
- **Search Boost**: `tech-digest.md` and `industry-digest.md` are generated with `search.boost: 2` frontmatter.
- **RSS Feed**: New `src/rss_generator.py` emits `v2-docs/feed.xml` (top-20 from the 3-month digest) with autodiscovery links, at `https://nubenetes.com/feed.xml`.
- **Weekly Cron**: `.github/workflows/09.weekly_digest.yml` runs Mondays 06:00 UTC to regenerate the digest and trigger the publisher.
## [[2.7.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.7.1) - 2026-06-19
### Changed
- **Cleaner Index**: Removed the `digest-preview` list from the index — the trending cards already show the same content with better design. Flow is now hero amber card → trending cards → `/tech-digest/`.
## [[2.7.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.7.0) - 2026-06-19
### Added
- **Intelligence Digest Hero Card**: New amber `Intelligence Digest` card on the V2 index linking to `/tech-digest/`, plus a `digest-preview` mini-block showing the top pick from 5 priority categories. New `hero-badge-card--amber` and `digest-preview` CSS components.
## [[2.6.9]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.9) - 2026-06-19
### Fixed
- **NoneType Crashes Across Pipeline**: Inventory entries with `stars: null` crashed `_calculate_tags` (`v2_optimizer.py`), the title-dedup index and entry scoring (`dedup.py`), and category sorting (`news_digest.py`). Replaced `.get("stars", 0)` with `.get("stars") or 0`.
## [[2.6.8]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.8) - 2026-06-19
### Fixed
- **Unbounded License Check**: `detect_license_changes()` iterated every entry with `gh_license` set (thousands of GitHub API calls). Applied the `MAX_REPOS_DEFAULT=200` cap, bringing total enrichment time to ~34 min.
## [[2.6.7]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.7) - 2026-06-19
### Changed
- **Enrichment 7.5× Faster**: Reduced GitHub activity enrichment from 2 API calls/repo to 1 (`open_issues_count` already includes PRs), capped at 200 repos/run, 0.5s delay, with 429 backoff — ~100s vs 12.5 min.
## [[2.6.6]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.6) - 2026-06-19
### Fixed
- **CNCF Enrichment API**: The CNCF Landscape API became a SPA and stopped returning JSON. Enrichment now queries the GitHub Search API with official CNCF maturity topics (`cncf-graduated`/`cncf-incubating`/`cncf-sandbox`) using the existing `GH_TOKEN`.
## [[2.6.4]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.4) - 2026-06-19
### Fixed
- **Differentiated Digest Periods**: 3/6/12-month windows now yield 10/15/20 items per category; backfilled `discovered_at` entries appear in wider windows; null-`stars` entries no longer crash the generator.
## [[2.6.3]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.3) - 2026-06-19
### Added
- **First Real Intelligence Digest**: Generated locally with 0 Gemini tokens — 22 categories, 660 items (220 per period) from the 18,647-entry inventory, with star-based ranking (upgrades to AI ranking on the next keyed pipeline run).
## [[2.6.2]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.2) - 2026-06-19
### Fixed
- **Clean URL Policy**: Removed the `offline` plugin that forced `.html` suffixes on all V2 URLs (breaking SEO/deep-links) and added placeholder `tech-digest.md`/`industry-digest.md` pages to prevent 404s before the first Gemini run. `use_directory_urls: true` is now mandatory and `offline` permanently forbidden (documented in `CLAUDE.md`/`GEMINI.md`/`README`).
## [[2.6.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.1) - 2026-06-19
### Added
- **Agent Instructions**: Created `CLAUDE.md` (Gitflow, repo structure, build commands, conventions) and added a Gitflow section to `GEMINI.md` so both AI agents follow the branching model automatically.
## [[2.6.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.6.0) - 2026-06-19
### Added
- **AI-Powered Intelligence Digest**: 26-category news digest engine with Gemini ranking, 3/6/12-month temporal panels, Trending Now cards, and dedicated `tech-digest`/`industry-digest` pages with company & geo_region extraction.
- **Data Quality Pipeline**: CNCF Landscape integration, GitHub activity enrichment, license-change detection, a deduplication engine (URL + content-hash + 85% title similarity), and AI re-evaluation flagging for stale entries.
- **MkDocs UX Overhaul**: Enabled tags/RSS/minify/PWA plugins, instant navigation with prefetch, breadcrumbs, footer nav, and an announcement bar (28 improvements across 31 files, 4 new modules, 18,647 entries backfilled).
### Fixed
- **Disabled Plugins**: Fixed plugins being nested under `theme:` in MkDocs config (silently disabled since deployment).
## [[2.5.8]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.5.8) - 2026-06-18
### Added
+1 -1
View File
@@ -24,7 +24,7 @@ This repository uses **Gitflow**. All agents MUST follow this branching model:
10. Create GitHub Release: `gh release create vX.Y.Z --title "..." --notes "..."`
### Versioning
- Current: `v2.6.0`
- Current: `v2.9.2`
- Format: `v{major}.{minor}.{patch}`
- Major: breaking changes or architectural shifts
- Minor: new features (like the digest engine, new modules)
+113 -29
View File
@@ -135,14 +135,14 @@ Additionally, as of May 2026, Nubenetes has reached the **Platinum Operational T
## 2. Repository Metrics and Evolution
### 2.1. The "Heart" of Nubenetes
(Stats as of 2026-06-19)
(Stats as of 2026-06-20)
<!-- HEART_STATS_START -->
| Metric | Value |
| :--- | :--- |
| **Total Technical Resources (Links)** | **18647+** |
| **Specialized MD Pages** | **162** |
| **Total Commits** | **6114+** |
| **Total Commits** | **6435+** |
| **Primary AI Engine** | **Google Gemini (Agentic)** |
<!-- HEART_STATS_END -->
@@ -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 | 2555 | 10,552 | **Agentic AI Surge** (May 2026 Inception) |
| 9 | 2026 | 2876 | 11,877 | **Agentic AI Surge** (May 2026 Inception) |
<!-- ANNUAL_GROWTH_END -->
<!-- ANNUAL_CHART_START -->
@@ -195,9 +195,9 @@ config:
xychart-beta
title "Nubenetes Annual Growth Metrics (20182026)"
x-axis ["2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"]
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 11000
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 10552]
bar [350, 142, 2046, 531, 402, 30, 53, 5, 2555]
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 12000
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 11877]
bar [350, 142, 2046, 531, 402, 30, 53, 5, 2876]
```
<!-- ANNUAL_CHART_END -->
@@ -207,7 +207,7 @@ xychart-beta
| :--- | :---: | :---: | :--- |
| 2026-04 | 25 | 103 | Active Curation |
| 2026-05 | 2101 | 8,677 | **Agentic Inception (Gemini Era)** |
| 2026-06 | 429 | 1,771 | Active Curation |
| 2026-06 | 750 | 3,097 | Active Curation |
<!-- MONTHLY_SURGE_END -->
### 2.4. Content Distribution and Semantic Clustering
@@ -350,9 +350,9 @@ Nubenetes partitions AI Agent tasks between the automated cloud pipeline and loc
```mermaid
graph TD
A["awesome-kubernetes Repository"] --> B["GEMINI.md<br>(Curation & Data Mandates)"]
A --> C[".gemini/skills/awesome-kubernetes-ops/SKILL.md<br>(Local Dev Operations Guide)"]
A["awesome-kubernetes Repository"] --> B["GEMINI.md<br>(Curation and Data Mandates)"]
A --> C[".gemini/skills/<br>awesome-kubernetes-ops/SKILL.md<br>(Local Dev Operations Guide)"]
B --> D["Cloud Automation<br>(GitHub Actions runner)"]
B --> E["Local Workspace<br>(Antigravity Coding Session)"]
@@ -443,6 +443,15 @@ The V2 portal includes an **AI-powered Intelligence Digest** system that surface
- **Clean URLs enforced**: Both V1 and V2 use `use_directory_urls: true` producing SEO-friendly URLs (e.g., `/kubernetes/` not `/kubernetes.html`).
- **Offline plugin permanently removed**: The MkDocs `offline` plugin forces `.html` suffixes on all URLs, breaking thousands of existing deep-links and SEO authority. It is explicitly forbidden in both `CLAUDE.md` and `GEMINI.md` mandates.
#### V2 Home Restructure and SEO (v2.9.16v2.9.20)
- **Category-first landing page**: The home leads with the dynamic **Trending Now / Intelligence Digest**, followed by the signature YouTube mosaic (now framed under a *"The Cloud Native Universe We Track"* heading with **visible per-group category labels** and `loading="lazy"` on its ~150 logos).
- **Topic Map page** ([`topic-map.md`](v2-docs/topic-map.md)): The complete category directory grouped by strategic dimension in a **responsive multi-column CSS grid**, with a **per-category resource count** derived from a recursive walk of each category's link tree. Replaces the long flat "Strategic Dimensions" list that previously bloated the home.
- **Methodology page** ([`methodology.md`](v2-docs/methodology.md)): The Maturity Taxonomy and Technical Impact (star-score) legend tables, moved off the home into a dedicated reference page.
- **Per-page "Last update" dates**: The `git-revision-date-localized` plugin surfaces a real last-modified date on every page (freshness signal for SEO and readers); the deploy checkout uses `fetch-depth: 0` for full history.
- **JSON-LD structured data**: schema.org `WebSite` (with a sitelinks `SearchAction`) + publishing `Organization` markup injected via `docs/overrides/main.html` for richer search results.
- **Branded 404 page** and **privacy-friendly video embeds** (`youtube-nocookie.com` + lazy-loading + responsive `aspect-ratio` wrapper).
- **Deterministic generated artifacts**: the RSS feed's `lastBuildDate` derives from item content dates (not wall-clock), and the PR Guardian no longer auto-formats the generated `v2-docs/` tree — both eliminating spurious `develop ↔ master` churn.
### 5.3. Architecture Comparison Matrix: V1 vs. V2
To better understand the dual-nature of the project, the following matrix details the technical and philosophical differences between the two editions:
@@ -550,6 +559,41 @@ To guarantee backward compatibility and Git efficiency, the system operates on a
* **Structural Intelligence**: `hierarchy` (Recursive JSON list), `tags` (JSON list), `v1_locations`, `v2_locations`, `youtube_mosaic` (JSON dict).
* **Platinum Lifecycle**: `content_hash` (SHA256 fingerprint), `health_score` (0-100), `source_provenance`, `social_preview_url`, `mentions_count`, `addition_method`.
#### 6.1.3. Database Architecture Diagram (YAML + SQLite Coexistence)
The following diagram details the dual-format storage engine: the flat `inventory.sql` text file is the Git source of truth, compiled into an in-memory SQLite database at runtime for relational queries, then decompiled back on save and mirrored to `inventory.yaml` for backward-compatible, high-speed parsing.
<details><summary>🗺️ <b>View Database Architecture Diagram</b></summary>
```mermaid
graph TD
subgraph GIT["Git Source of Truth (versioned · 1 line per resource)"]
SQL["data/inventory.sql<br/>flat SQL text"]
YAML["data/inventory.yaml<br/>backward-compatible mirror"]
end
SQL -->|"compile on load"| MEM[("In-memory SQLite<br/>relational schema + SQL queries")]
MEM -->|"iterdump() on save"| SQL
MEM -->|"dual-save sync"| YAML
YAML -->|"CSafeLoader / CSafeDumper<br/>native C speed (10-20x)"| PARSE["Python consumers<br/>v2_optimizer · reorganize_mosaic<br/>safety_guard"]
AI["Gemini AI agents"] -->|"JSON messages in / out"| MEM
subgraph SCHEMA["Per-resource record — url = Primary Key"]
CORE["Core<br/>title · year · stars 0-5<br/>description V1 · ai_summary V2 · category"]
STRUCT["Structural<br/>hierarchy JSON · tags JSON<br/>v1/v2_locations · youtube_mosaic JSON"]
PLAT["Platinum lifecycle<br/>content_hash SHA256 · health_score<br/>discovered_at · last_ai_eval · addition_method"]
end
MEM -.->|"defines"| CORE
MEM -.->|"defines"| STRUCT
MEM -.->|"defines"| PLAT
style SQL fill:#bbf,stroke:#333,stroke-width:2px
style MEM fill:#f96,stroke:#333,stroke-width:2px
style YAML fill:#86efac,stroke:#333,stroke-width:2px
```
</details>
### 6.2. The 'Database-First' Reasoning Protocol (Zero-Redundancy)
To maximize economic efficiency and maintain the **30-minute execution standard**, all AI agents follow a **Database-First** and **Zero-Redundancy** protocol:
1. **Local Lookup**: Before initiating any Gemini call, the agent queries the compiled SQLite/SQL database to see if the URL is already indexed.
@@ -561,7 +605,48 @@ To maximize economic efficiency and maintain the **30-minute execution standard*
7. **Mandatory Persistence**: Modified databases are automatically injected into Pull Requests, ensuring that "System Memory" is version-controlled and shared across all workflows.
### 6.3. Database Lifecycle and Hygiene
To maintain a high-performance "Single Source of Truth", Nubenetes implements automated hygiene protocols:
To maintain a high-performance "Single Source of Truth", Nubenetes implements automated hygiene protocols. The diagram below traces a resource's full lifecycle — from autonomous discovery and ingestion, through incremental (cached) maintenance and enrichment, to rendering and deployment — with continuous background garbage collection.
<details><summary>🗺️ <b>View Full Data Lifecycle Diagram</b></summary>
```mermaid
graph TD
subgraph S1["1 · Discovery and Ingestion"]
SRC["X.com · RSS · GitHub Trending<br/>autonomous source discovery"] --> CUR["Agentic Curator<br/>dedup · vaporware filter · scoring"]
end
CUR -->|"new resources"| DB[("Unified DB<br/>inventory.sql + inventory.yaml")]
subgraph S2["2 · Maintenance and Enrichment (incremental + cached)"]
HEALTH["Health Monitor<br/>200 OK · rescue 404s"]
META["Metadata Engine<br/>GitHub stars · license · CNCF status"]
AIEVAL["AI Curator<br/>summary · hierarchy · tags · debate"]
DRIFT["Drift and Staleness<br/>SHA256 · re-eval after 6 months"]
end
DB <--> HEALTH
DB <--> META
DB <--> AIEVAL
DB <--> DRIFT
subgraph S3["3 · Render"]
DB -->|"surgical line edits"| V1["V1 Archive<br/>docs/"]
DB -->|"elite selection + rebuild"| V2["V2 Portal<br/>v2-docs/"]
DB --> AUX["RSS feed · digest<br/>README metrics"]
end
subgraph S4["4 · Publish and Deploy"]
V1 --> REL["develop → master<br/>tag + GitHub Release"]
V2 --> REL
REL --> PAGES["Native GH Pages<br/>nubenetes.com"]
end
GC["Bi-monthly GC<br/>orphan pruning · audit log"] -.->|"hygiene"| DB
style DB fill:#f96,stroke:#333,stroke-width:2px
style PAGES fill:#86efac,stroke:#333,stroke-width:2px
```
</details>
- **Universal Rescue Protocol (The Resurrection Rule)**: For ALL technical resources, the engine refuses to delete a link immediately upon a 404 or generic redirect. Instead, it triggers a "Technical Resurrection" cycle using **Real-time Web Grounding** to identify specific paths on destination domains. This is essential for preserving legendary content during massive corporate site migrations (e.g., **Nginx** to **F5**, or the **Ansible Blog** move to personal domains).
- **High-Value Preservation (The 'Review Required' Rule)**: Resources identified as **High-Value** (marked with 🌟 or bold formatting) are exempt from automatic deletion. If rescue fails, they are marked as `status: review_required` for manual verification, ensuring no significant technical assets are lost during autonomous cleaning.
@@ -761,10 +846,10 @@ graph TD
end
subgraph "Agentic Tiering and Debate (Multi-Agent)"
AA["Analyst Agent (Flash)"]
AV["Auditor Agent (Pro)"]
MCP[["MCP Grounding (Search)"]]
DBT["Consensus and Debate (Flash and Pro)"]
AA["Analyst Agent<br/>(Flash)"]
AV["Auditor Agent<br/>(Pro)"]
MCP[["MCP Grounding<br/>(Search)"]]
DBT["Consensus and Debate<br/>(Flash and Pro)"]
end
AC -->|"Raw Discovery"| AA
@@ -876,19 +961,19 @@ To eliminate individual LLM rating bias, resolve borderline cases, and prevent a
```mermaid
graph TD
A["New Resource Found"] --> FP["Fast-Pass Evaluator (Flash)"]
FP -->|Confident Score Outside 60-75| G["Accept / Reject Directly"]
FP -->|Borderline Score 60-75| B["Persona 1: Security Architect"]
FP -->|Borderline Score 60-75| C["Persona 2: Cloud Native SRE"]
FP -->|Borderline Score 60-75| D["Persona 3: AI Platform Engineer"]
B --> E["Independent expert Evaluations"]
A["New Resource Found"] --> FP["Fast-Pass Evaluator<br/>(Flash)"]
FP -->|Confident Score Outside 60-75| G["Accept /<br/>Reject Directly"]
FP -->|Borderline Score 60-75| B["Persona 1:<br/>Security Architect"]
FP -->|Borderline Score 60-75| C["Persona 2:<br/>Cloud Native SRE"]
FP -->|Borderline Score 60-75| D["Persona 3:<br/>AI Platform Engineer"]
B --> E["Independent Expert<br/>Evaluations"]
C --> E
D --> E
E -->|Expert Scores Diverge >= 15 points| F["Trigger Debate Round"]
E -->|Expert Scores Diverge >= 15 points| F["Trigger<br/>Debate Round"]
E -->|Expert Scores Converge| G
F --> H["Round-Robin Discussion: Argue Pros and Cons"]
H --> I["Consensus Reached and Final Score Assigned"]
I --> J["Save Decision to Persistent Memory JSON"]
F --> H["Round-Robin Discussion:<br/>Argue Pros and Cons"]
H --> I["Consensus Reached and<br/>Final Score Assigned"]
I --> J["Save Decision to<br/>Persistent Memory JSON"]
G --> J
```
@@ -1079,11 +1164,10 @@ graph LR
B --> D["V2 Vision Engine"]
B --> Z["README Sync"]
D --> E["V2 Update (develop)"]
M["Sync to 'master'"] --> C["Pip Cache & CI/CD Build"]
M["Sync to 'master'"] --> C["Pip Cache and<br/>CI/CD Build"]
C --> F["Upload Pages Artifact"]
F --> G["Native Deploy: V1 (Root/SEO), V2 (/v2/), V1 Fallback (/v1/)"]
G --> H["Inject Root Redirect to /v2/"]
Z --> B
F --> G["Native Deploy:<br/>V1 (Root/SEO) · V2 (/v2/)<br/>· V1 Fallback (/v1/)"]
G --> H["Inject Root<br/>Redirect to /v2/"]
Z --> B
```
+11029 -11029
View File
File diff suppressed because it is too large Load Diff
+18978 -11165
View File
File diff suppressed because it is too large Load Diff
+5003 -3638
View File
File diff suppressed because it is too large Load Diff
+1 -1684
View File
File diff suppressed because it is too large Load Diff
+23
View File
@@ -0,0 +1,23 @@
{% extends "main.html" %}
<!--
Branded 404. The portal cares about deep-link stability (see CLAUDE.md URL
policy), so a dead link lands on a helpful page with clear ways back rather
than the theme's bare "404 - Not found". Shared by V1 and V2 (custom_dir is
docs/overrides for both), so styling is self-contained and links are root-relative.
-->
{% block content %}
<div style="text-align:center; max-width:42rem; margin:3rem auto; padding:0 1rem;">
<p style="font-size:6rem; font-weight:700; line-height:1; margin:0; opacity:0.15;">404</p>
<h1 style="margin-top:0.5rem;">This page took a wrong turn</h1>
<p style="font-size:0.9rem; opacity:0.8;">
The resource you are looking for may have moved or never existed. Use the
search at the top, or jump back to a known starting point below.
</p>
<div style="display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap; margin-top:1.5rem;">
<a href="/" class="md-button md-button--primary">🏠 Home</a>
<a href="/topic-map/" class="md-button">🗺️ Topic Map</a>
<a href="/v1/" class="md-button">📚 V1 Archive</a>
</div>
</div>
{% endblock %}
+294
View File
@@ -3,3 +3,297 @@
{% block announce %}
<strong>New:</strong> <a href="./tech-digest/">Intelligence Digest</a> — AI-curated trending resources across 26 categories
{% endblock %}
{#-
Quick-nav bar rendered below the header on every page (via the `tabs` block,
which is empty here since navigation.tabs is disabled). Single slim row that
stays one row no matter how many destinations are added: the most-used
flagships are direct one-click pills, and the long-tail clusters collapse into
category menus built with the native HTML Popover API + CSS Anchor Positioning
(Baseline 2026) — zero JS, with free Esc/click-outside dismissal and focus
management. Adding a leaf grows a menu, never the bar.
Fully category-grouped into 13 thematic dropdowns (no direct pills).
Related topics live together (CI/CD · GitOps · DevOps in Delivery; Terraform ·
IaC in IaC; Docker in Kubernetes; …). AWS is a NESTED submenu inside Cloud,
OpenShift a NESTED submenu inside Kubernetes.
Pages may appear in more than one menu when that aids discovery.
Portal Guide (Topic Map · Methodology · Tags · About) · Digest · Videos
· Kubernetes (+Docker, OpenShift▸) · Delivery (CI/CD·GitOps·DevOps) · IaC
· Cloud (AWS▸ · Azure · GCP · …) · Network · Security · Observability & SRE
· AI & Data · Dev & Platform · More
-#}
{% block tabs %}
<nav class="nb-quicknav" aria-label="Quick navigation">
<div class="nb-quicknav__inner">
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-guide" type="button">🧭 Portal Guide <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-guide" popover>
<a href="/topic-map/">🗺️ Topic Map</a>
<a href="/methodology/">📐 Methodology</a>
<a href="/tags/">🏷️ Technical Tags</a>
<a href="/about/">️ About</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-digest" type="button">📊 Digest <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-digest" popover>
<a href="/tech-digest/">📊 Tech &amp; Cloud Digest</a>
<a href="/industry-digest/">🌍 Industry &amp; Geo Digest</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-videos" type="button">🎥 Videos <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-videos" popover>
<a href="/videos/">🎥 Video Hub</a>
<a href="/videos/ai-agents/">🤖 AI Agents &amp; MCP</a>
<a href="/videos/devops-iac/">♾️ DevOps, IaC &amp; SRE</a>
<a href="/videos/cloud-native/">☸️ Cloud Native Core</a>
<a href="/videos/fundamentals/">🎓 Fundamentals</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-k8s" type="button">☸️ Kubernetes <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu nb-quicknav__menu--cols" id="nb-pop-k8s" popover>
<a href="/kubernetes/">☸️ Overview</a>
<a href="/docker/">🐳 Docker</a>
<a href="/kubernetes-tools/">🧰 Tools</a>
<a href="/helm/">📦 Helm</a>
<a href="/kubectl-commands/">⌨️ kubectl</a>
<a href="/container-managers/">📦 Container Managers</a>
<a href="/kubernetes-networking/">🌐 Networking</a>
<a href="/kubernetes-security/">🔐 Security</a>
<a href="/kubernetes-monitoring/">📈 Monitoring</a>
<a href="/kubernetes-storage/">💾 Storage</a>
<a href="/kubernetes-autoscaling/">⚖️ Autoscaling</a>
<a href="/kubernetes-operators-controllers/">🎛️ Operators</a>
<a href="/kubernetes-bigdata/">📊 Big Data</a>
<a href="/kubernetes-tutorials/">🎓 Tutorials</a>
<a href="/kubernetes-backup-migrations/">🗄️ Backup &amp; Migrations</a>
<a href="/kubernetes-client-libraries/">📚 Client Libraries</a>
<a href="/kubernetes-based-devel/">💻 Local Dev</a>
<a href="/kubernetes-on-premise/">🏢 On-Premise</a>
<a href="/managed-kubernetes-in-public-cloud/">☁️ Managed K8s</a>
<span class="nb-quicknav__subwrap">
<button class="nb-quicknav__subtrigger" popovertarget="nb-pop-ocp" type="button"><span>🎩 OpenShift</span><span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu nb-quicknav__submenu" id="nb-pop-ocp" popover>
<a href="/ocp4/">🎩 OpenShift 4 (current)</a>
<a href="/openshift/">🎩 Overview</a>
<a href="/ocp3/">🎩 OpenShift 3 (legacy)</a>
</div>
</span>
<a href="/rancher/">🐮 Rancher</a>
<a href="/kubernetes-alternatives/">🔀 Distros &amp; Alternatives</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-delivery" type="button">🔄 Delivery <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-delivery" popover>
<a href="/gitops/">🔄 GitOps</a>
<a href="/cicd/">🚀 CI/CD</a>
<a href="/devops/">♾️ DevOps</a>
<a href="/argo/">🐙 Argo</a>
<a href="/flux/">🔱 Flux</a>
<a href="/tekton/">🛠️ Tekton</a>
<a href="/jenkins/">🤵 Jenkins</a>
<a href="/registries/">📦 Registries</a>
<a href="/sonarqube/">🔎 SonarQube</a>
<a href="/keptn/">🎯 Keptn</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-iac" type="button">🏗️ IaC <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-iac" popover>
<a href="/terraform/">🏗️ Terraform</a>
<a href="/iac/">📜 IaC</a>
<a href="/ansible/">📋 Ansible</a>
<a href="/pulumi/">🧩 Pulumi</a>
<a href="/crossplane/">✈️ Crossplane</a>
<a href="/kustomize/">🧱 Kustomize</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-cloud" type="button">☁️ Cloud <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-cloud" popover>
<span class="nb-quicknav__subwrap">
<button class="nb-quicknav__subtrigger" popovertarget="nb-pop-aws" type="button"><span>☁️ AWS</span><span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu nb-quicknav__submenu" id="nb-pop-aws" popover>
<a href="/aws/">☁️ AWS Overview</a>
<a href="/aws-serverless/">⚡ Serverless</a>
<a href="/aws-storage/">💾 Storage</a>
<a href="/aws-networking/">🌐 Networking</a>
<a href="/aws-security/">🔐 Security</a>
<a href="/aws-iac/">📜 IaC</a>
<a href="/aws-backup/">🗄️ Backup</a>
<a href="/aws-newfeatures/">🆕 New Features</a>
</div>
</span>
<a href="/azure/">☁️ Azure</a>
<a href="/GoogleCloudPlatform/">☁️ GCP</a>
<a href="/serverless/">⚡ Serverless</a>
<a href="/finops/">💰 FinOps</a>
<a href="/edge-computing/">🌍 Edge</a>
<a href="/digitalocean/">🌊 DigitalOcean</a>
<a href="/oraclecloud/">🔴 Oracle</a>
<a href="/ibm_cloud/">🔵 IBM Cloud</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-net" type="button">🌐 Network <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-net" popover>
<a href="/networking/">🌐 Networking</a>
<a href="/istio/">⛵ Istio</a>
<a href="/servicemesh/">🕸️ Service Mesh</a>
<a href="/kubernetes-networking/">🔗 K8s Net</a>
<a href="/caching/">⚡ Caching</a>
<a href="/web-servers/">🖥️ Web Servers</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-sec" type="button">🔐 Security <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-sec" popover>
<a href="/kubernetes-security/">🔐 K8s Security</a>
<a href="/devsecops/">🛡️ DevSecOps</a>
<a href="/securityascode/">📜 Security as Code</a>
<a href="/aws-security/">☁️ AWS Security</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-obs" type="button">📈 Observability <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-obs" popover>
<a href="/monitoring/">📈 Observability</a>
<a href="/prometheus/">🔥 Prometheus</a>
<a href="/grafana/">📊 Grafana</a>
<a href="/sre/">🛠️ SRE</a>
<a href="/chaos-engineering/">🌪️ Chaos Engineering</a>
<a href="/performance-testing-with-jenkins-and-jmeter/">⏱️ Performance Testing</a>
<a href="/qa/">✅ QA</a>
<a href="/test-automation-frameworks/">🤖 Test Automation</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-aidata" type="button">🤖 AI &amp; Data <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-aidata" popover>
<a href="/ai-agents-mcp/">🤖 AI &amp; MCP</a>
<a href="/mlops/">🧠 MLOps</a>
<a href="/ai/">🤖 AI</a>
<a href="/chatgpt/">💬 ChatGPT</a>
<a href="/databases/">🗃️ Databases</a>
<a href="/nosql/">🍃 NoSQL</a>
<a href="/message-queue/">📨 Messaging</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-dev" type="button">🧑‍💻 Dev <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-dev" popover>
<a href="/developerportals/">🏛️ Developer Portals</a>
<a href="/python/">🐍 Python</a>
<a href="/golang/">🐹 Go</a>
<a href="/java_frameworks/">☕ Java</a>
<a href="/javascript/">🟨 JavaScript</a>
<a href="/dotnet/">🟣 .NET</a>
<a href="/api/">🔌 API</a>
<a href="/postman/">📮 Postman</a>
</div>
</span>
<span class="nb-quicknav__group">
<button class="nb-quicknav__link nb-quicknav__btn" popovertarget="nb-pop-more" type="button">⋯ More <span class="nb-quicknav__caret" aria-hidden="true"></span></button>
<div class="nb-quicknav__menu" id="nb-pop-more" popover>
<a href="/demos/">🧪 Demos</a>
<a href="/faq/">❓ FAQ</a>
<a href="/recruitment/">💼 Career</a>
<a class="nb-quicknav__menu-muted" href="/v1/">📚 V1 Archive</a>
</div>
</span>
</div>
</nav>
{% endblock %}
{#-
JSON-LD structured data (schema.org) for richer search results: declares the
WebSite (with a sitelinks SearchAction) and the publishing Organization.
Only the V2 portal uses this overrides dir (custom_dir: docs/overrides), so
this injects on the canonical nubenetes.com root; V1 uses the stock theme.
-#}
{% block extrahead %}
{{ super() }}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://nubenetes.com/#website",
"url": "https://nubenetes.com/",
"name": "Nubenetes",
"description": "AI-curated portal for the modern Cloud Native ecosystem: high-density, ranked selection of top-tier Kubernetes, DevOps and Cloud resources.",
"publisher": { "@id": "https://nubenetes.com/#organization" },
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://nubenetes.com/?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
},
{
"@type": "Organization",
"@id": "https://nubenetes.com/#organization",
"name": "Nubenetes",
"url": "https://nubenetes.com/",
"logo": {
"@type": "ImageObject",
"url": "https://nubenetes.com/images/favicon-ultra.png"
},
"sameAs": [
"https://github.com/nubenetes/awesome-kubernetes",
"https://twitter.com/nubenetes",
"https://www.linkedin.com/groups/1937212/"
]
}
]
}
</script>
{#-
Per-page structured data: a CollectionPage (each V2 page is a curated
collection of resources) tied to the WebSite/Organization above, with
datePublished / dateModified fed by the git-revision-date plugin. Enables
richer search results. Skipped on the homepage (already the WebSite entity).
-#}
{% if page and not page.is_homepage and page.canonical_url %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"@id": {{ (page.canonical_url ~ "#webpage") | tojson }},
"url": {{ page.canonical_url | tojson }},
"name": {{ (page.title or config.site_name) | tojson }},
"isPartOf": { "@id": "https://nubenetes.com/#website" },
"publisher": { "@id": "https://nubenetes.com/#organization" },
"inLanguage": "en"
{%- if page.meta and page.meta.description %},
"description": {{ page.meta.description | tojson }}
{%- endif %}
{%- if page.meta and page.meta.git_creation_date_localized_raw_iso_date %},
"datePublished": {{ page.meta.git_creation_date_localized_raw_iso_date | tojson }}
{%- endif %}
{%- if page.meta and page.meta.git_revision_date_localized_raw_iso_date %},
"dateModified": {{ page.meta.git_revision_date_localized_raw_iso_date | tojson }}
{%- endif %}
}
</script>
{% endif %}
{% endblock %}
+541 -2
View File
@@ -176,6 +176,62 @@ html {
color: #c4b5fd;
}
/* ---------------------------------------------------- */
/* LABEL HEATMAP (Confluence-style popular-labels cloud) */
/* ---------------------------------------------------- */
.v2-tag-heatmap {
display: flex;
flex-wrap: wrap;
gap: 0.45rem 0.7rem;
align-items: baseline;
padding: 1.1rem 1.2rem;
margin: 1rem 0 1.75rem;
border: 1px solid rgba(38, 50, 56, 0.12);
border-radius: 10px;
background: rgba(38, 50, 56, 0.04);
}
[data-md-color-scheme="slate"] .v2-tag-heatmap {
background: rgba(255, 255, 255, 0.03);
border-color: rgba(255, 255, 255, 0.1);
}
.v2-heat-tag {
display: inline-flex;
align-items: baseline;
gap: 0.2em;
line-height: 1.1;
font-weight: 600;
text-decoration: none;
color: #455a64;
transition: color 0.15s ease, transform 0.15s ease;
}
.v2-heat-tag:hover {
transform: translateY(-1px);
color: var(--md-accent-fg-color);
}
.v2-heat-n {
font-size: 0.6em;
font-weight: 700;
opacity: 0.55;
vertical-align: super;
}
/* Size + warmth ramp: level 1 = least used, level 6 = most used. */
.v2-heat-1 { font-size: 0.8rem; opacity: 0.7; }
.v2-heat-2 { font-size: 0.95rem; }
.v2-heat-3 { font-size: 1.15rem; }
.v2-heat-4 { font-size: 1.45rem; }
.v2-heat-5 { font-size: 1.8rem; color: #ef6c00; }
.v2-heat-6 { font-size: 2.25rem; color: #d84315; font-weight: 700; }
[data-md-color-scheme="slate"] .v2-heat-tag { color: #b0bec5; }
[data-md-color-scheme="slate"] .v2-heat-5 { color: #ffb74d; }
[data-md-color-scheme="slate"] .v2-heat-6 { color: #ff8a65; }
/* ---------------------------------------------------- */
/* MICRO-ANIMATIONS & HOVER STATES */
/* ---------------------------------------------------- */
@@ -363,9 +419,15 @@ a {
}
.hero-badge-icon {
font-size: 2rem;
/* Match the 100px logo <img> box on the other hero cards so the
emoji-based Intelligence Digest card is the same height. */
height: 100px;
display: flex;
align-items: center;
justify-content: center;
font-size: 3.5rem;
line-height: 1;
margin-bottom: 4px;
margin-bottom: 12px;
}
.hero-badge-title {
@@ -1148,6 +1210,17 @@ input[type="text"] {
color: #0ea5e9;
}
.trending-card__new {
margin-left: 6px;
padding: 1px 6px;
border-radius: 6px;
font-size: 0.85em;
font-weight: 800;
letter-spacing: 0.03em;
background: rgba(16, 185, 129, 0.18);
color: #10b981;
}
/* Digest link cards (CTA to full digest pages) */
.digest-links {
display: flex;
@@ -1179,6 +1252,472 @@ input[type="text"] {
color: #09090b;
}
/* ===================================================================
v2.9.16 Home restructure: hero badge row, Topic Map grid,
mosaic labels, responsive video embeds
=================================================================== */
/* Hero badge row (was an inline flexbox style on the index) */
.hero-badge-row {
display: flex;
justify-content: center;
gap: 24px;
margin: 16px 0;
flex-wrap: wrap;
}
/* Indigo accent for the new Topic Map badge card */
.hero-badge-card--indigo {
border-color: rgba(99, 102, 241, 0.2);
background: rgba(99, 102, 241, 0.02);
}
.hero-badge-card--indigo:hover {
background: rgba(99, 102, 241, 0.06) !important;
box-shadow: 0 8px 24px rgba(99, 102, 241, 0.18);
border-color: #6366f1 !important;
}
/* Topic Map: full category directory as a multi-column grid.
CSS columns flow the per-dimension sections into 3 (then 2, then 1)
columns; break-inside keeps a dimension block intact across columns. */
.topic-map-grid {
column-count: 3;
column-gap: 2.5rem;
margin-top: 1.5rem;
}
.topic-map-dim {
break-inside: avoid;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
display: inline-block; /* helps WebKit honor break-inside */
width: 100%;
margin: 0 0 1.4rem;
}
.topic-map-dim h2 {
margin-top: 0;
font-size: 1.05rem;
}
/* ===================================================================
Slim quick-nav bar (rendered in the theme `tabs` block, below header)
Persistent one-click access to key destinations on every page.
=================================================================== */
.nb-quicknav {
background: var(--md-header-bg-color);
border-bottom: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 22%, transparent);
}
.nb-quicknav__inner {
max-width: 1600px;
margin-inline: auto;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center; /* centered rows read as a balanced command bar */
gap: 0.4rem 0.32rem;
padding-block: 0.5rem;
padding-inline: 0.7rem;
}
.nb-quicknav__link {
/* chip colors derived from the theme accent via color-mix (Chrome 111+) */
--nb-chip-bg: color-mix(in srgb, var(--md-accent-fg-color) 8%, transparent);
--nb-chip-bd: color-mix(in srgb, var(--md-accent-fg-color) 18%, transparent);
display: inline-flex;
align-items: center;
gap: 0.3em;
color: rgba(255, 255, 255, 0.82) !important;
text-decoration: none;
font-size: 0.62rem; /* sized so all pills + menus fit one row down to ~1280px */
font-weight: 600;
letter-spacing: 0.01em;
white-space: nowrap;
padding: 0.22rem 0.55rem;
border-radius: 999px;
background: var(--nb-chip-bg);
border: 1px solid var(--nb-chip-bd);
transition: background 0.18s ease, border-color 0.18s ease,
color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.nb-quicknav__link:hover {
color: #fff !important;
background: color-mix(in srgb, var(--md-accent-fg-color) 32%, transparent);
border-color: var(--md-accent-fg-color);
transform: translateY(-1px);
box-shadow: 0 2px 10px color-mix(in srgb, var(--md-accent-fg-color) 40%, transparent);
}
.nb-quicknav__link:focus-visible {
outline: 2px solid var(--md-accent-fg-color);
outline-offset: 2px;
}
.nb-quicknav__link--muted {
opacity: 0.6;
}
.nb-quicknav__link--muted:hover {
opacity: 1;
}
/* Category menus: native Popover API + CSS Anchor Positioning (Baseline 2026)
The long-tail clusters collapse behind category buttons so the bar stays one
row. Opening is click-driven via the Popover API (free Esc / click-outside
dismissal + focus management); zero JS. */
.nb-quicknav__group {
display: inline-flex;
}
/* thin divider between the direct pills and the category menus */
.nb-quicknav__group:first-of-type {
margin-inline-start: 0.3rem;
padding-inline-start: 0.55rem;
border-inline-start: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 18%, transparent);
}
.nb-quicknav__btn {
font-family: inherit;
cursor: pointer;
}
.nb-quicknav__caret {
font-size: 0.85em;
opacity: 0.75;
transition: transform 0.18s ease;
}
.nb-quicknav__group:has(.nb-quicknav__menu:popover-open) .nb-quicknav__caret {
transform: rotate(180deg);
}
/* Explicit anchor pairing per buttonmenu do NOT rely on the popover's
implicit anchor (it isn't established reliably, leaving the menu in its
static position over the button). */
[popovertarget="nb-pop-guide"] { anchor-name: --nb-a-guide; }
#nb-pop-guide { position-anchor: --nb-a-guide; }
[popovertarget="nb-pop-digest"] { anchor-name: --nb-a-digest; }
#nb-pop-digest { position-anchor: --nb-a-digest; }
[popovertarget="nb-pop-videos"] { anchor-name: --nb-a-videos; }
#nb-pop-videos { position-anchor: --nb-a-videos; }
[popovertarget="nb-pop-k8s"] { anchor-name: --nb-a-k8s; }
#nb-pop-k8s { position-anchor: --nb-a-k8s; }
[popovertarget="nb-pop-delivery"] { anchor-name: --nb-a-delivery; }
#nb-pop-delivery { position-anchor: --nb-a-delivery; }
[popovertarget="nb-pop-iac"] { anchor-name: --nb-a-iac; }
#nb-pop-iac { position-anchor: --nb-a-iac; }
[popovertarget="nb-pop-cloud"] { anchor-name: --nb-a-cloud; }
#nb-pop-cloud { position-anchor: --nb-a-cloud; }
[popovertarget="nb-pop-net"] { anchor-name: --nb-a-net; }
#nb-pop-net { position-anchor: --nb-a-net; }
[popovertarget="nb-pop-sec"] { anchor-name: --nb-a-sec; }
#nb-pop-sec { position-anchor: --nb-a-sec; }
[popovertarget="nb-pop-obs"] { anchor-name: --nb-a-obs; }
#nb-pop-obs { position-anchor: --nb-a-obs; }
[popovertarget="nb-pop-aidata"] { anchor-name: --nb-a-aidata; }
#nb-pop-aidata { position-anchor: --nb-a-aidata; }
[popovertarget="nb-pop-dev"] { anchor-name: --nb-a-dev; }
#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 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;
max-height: 82vh; /* tall menus (e.g. Kubernetes) scroll instead of overflowing */
overflow-y: auto;
overscroll-behavior: contain;
/* drop below the invoking button, left-aligned. NB: position-area values must
be all-physical or all-logical mixing (e.g. `bottom span-inline-end`) is
invalid and silently computes to `none`, leaving the menu over the button. */
position-area: bottom span-right;
/* Only flip horizontally near the right edge. NEVER flip-block: the quick-nav
is a sticky top bar, so a tall menu flipped above would shoot off-screen. */
position-try-fallbacks: flip-inline;
margin-block-start: 0.45rem;
min-width: 9.5rem;
padding: 0.35rem;
display: flex;
flex-direction: column;
gap: 0.1rem;
border: 1px solid color-mix(in srgb, var(--md-accent-fg-color) 30%, transparent);
border-radius: 0.6rem;
background: color-mix(in srgb, var(--md-header-bg-color) 86%, #000);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
/* entry/exit animation across the display toggle */
opacity: 0;
transform: translateY(-4px);
transition: opacity 0.16s ease, transform 0.16s ease,
overlay 0.16s allow-discrete, display 0.16s allow-discrete;
}
.nb-quicknav__menu:popover-open {
opacity: 1;
transform: translateY(0);
}
@starting-style {
.nb-quicknav__menu:popover-open {
opacity: 0;
transform: translateY(-4px);
}
}
.nb-quicknav__menu a {
display: block;
padding: 0.34rem 0.6rem;
border-radius: 0.4rem;
color: rgba(255, 255, 255, 0.86);
text-decoration: none;
font-size: 0.72rem;
font-weight: 600;
white-space: nowrap;
transition: background 0.14s ease, color 0.14s ease;
}
.nb-quicknav__menu a:hover,
.nb-quicknav__menu a:focus-visible {
background: color-mix(in srgb, var(--md-accent-fg-color) 30%, transparent);
color: #fff;
outline: none;
}
.nb-quicknav__menu-muted {
opacity: 0.62;
margin-block-start: 0.15rem;
padding-block-start: 0.42rem !important;
border-block-start: 1px solid rgba(255, 255, 255, 0.1);
}
/* 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: 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;
}
/* 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)
A second-level popover invoked from inside a menu. The trigger looks like a
menu item; the submenu opens to the side (inline-end) of the trigger, with a
flip fallback so it never leaves the viewport. Popover nesting keeps the
parent menu open while the submenu is shown. */
.nb-quicknav__subwrap { display: contents; }
.nb-quicknav__subtrigger {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.6rem;
width: 100%;
padding: 0.34rem 0.6rem;
border: none;
border-radius: 0.4rem;
background: none;
color: rgba(255, 255, 255, 0.86);
font-family: inherit;
font-size: 0.72rem;
font-weight: 600;
text-align: left;
white-space: nowrap;
cursor: pointer;
transition: background 0.14s ease, color 0.14s ease;
}
.nb-quicknav__subtrigger:hover,
.nb-quicknav__subtrigger:focus-visible {
background: color-mix(in srgb, var(--md-accent-fg-color) 30%, transparent);
color: #fff;
outline: none;
}
.nb-quicknav__subwrap:has(.nb-quicknav__submenu:popover-open) .nb-quicknav__caret {
transform: rotate(0); /* caret is a side-arrow ▸, keep it static */
}
.nb-quicknav__submenu {
/* Open to the RIGHT of the trigger, top-aligned. position-area's horizontal
axis isn't honored reliably when the anchor lives inside another popover,
so place explicitly with anchor(): left edge at the trigger's right edge. */
position-area: none;
top: anchor(top);
left: anchor(right);
right: auto;
bottom: auto;
position-try-fallbacks: flip-inline;
margin-block-start: 0;
margin-inline-start: 0.35rem;
}
@media (prefers-reduced-motion: reduce) {
.nb-quicknav__link,
.nb-quicknav__caret,
.nb-quicknav__menu { transition: none; }
.nb-quicknav__link:hover { transform: none; }
}
/* On phones the left drawer already exposes navigation; one scrollable row. */
@media screen and (max-width: 44.9375em) {
.nb-quicknav__inner {
flex-wrap: nowrap;
justify-content: flex-start;
overflow-x: auto;
scrollbar-width: none; /* Firefox */
}
.nb-quicknav__inner::-webkit-scrollbar { display: none; } /* WebKit/Blink */
}
.topic-map-dim ul {
margin-top: 0.3rem;
}
.topic-count {
display: inline-block;
margin-left: 0.35rem;
padding: 0 0.45rem;
font-size: 0.68rem;
font-weight: 600;
line-height: 1.4;
border-radius: 10px;
color: var(--md-default-fg-color--light);
background: var(--md-default-fg-color--lightest);
vertical-align: middle;
}
@media screen and (max-width: 76.1875em) {
.topic-map-grid { column-count: 2; }
}
@media screen and (max-width: 44.9375em) {
.topic-map-grid { column-count: 1; }
}
/* ===================================================================
Topic Map: Resource Density Heatmap
A true colour matrix (distinct from the size-based Label cloud). Each
category is a tile whose warmth (.th-1..6) encodes resource density,
grouped by strategic dimension. Generated by v2_optimizer.py.
=================================================================== */
.topic-heatmap {
margin: 1rem 0 2rem;
padding: 1.1rem 1.2rem 1.3rem;
border: 1px solid rgba(38, 50, 56, 0.12);
border-radius: 10px;
background: rgba(38, 50, 56, 0.04);
}
[data-md-color-scheme="slate"] .topic-heatmap {
background: rgba(255, 255, 255, 0.03);
border-color: rgba(255, 255, 255, 0.1);
}
.topic-heatmap__legend {
display: flex;
align-items: center;
gap: 0.3rem;
margin-bottom: 1rem;
font-size: 0.7rem;
font-weight: 600;
letter-spacing: 0.03em;
color: var(--md-default-fg-color--light);
}
.topic-heatmap__legend .topic-heatcell {
width: 26px;
height: 14px;
padding: 0;
border-radius: 3px;
}
.topic-heatmap__cap { text-transform: uppercase; opacity: 0.7; }
.topic-heatmap__row {
display: grid;
grid-template-columns: 190px 1fr;
gap: 0.5rem 1rem;
align-items: start;
padding: 0.6rem 0;
border-top: 1px solid rgba(38, 50, 56, 0.08);
}
[data-md-color-scheme="slate"] .topic-heatmap__row {
border-top-color: rgba(255, 255, 255, 0.07);
}
.topic-heatmap__row:first-of-type { border-top: none; padding-top: 0; }
.topic-heatmap__dim {
font-size: 0.78rem;
font-weight: 700;
line-height: 1.25;
padding-top: 0.25rem;
color: var(--md-default-fg-color);
}
.topic-heatmap__cells {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
}
.topic-heatcell {
display: inline-flex;
align-items: center;
gap: 0.3em;
padding: 0.28rem 0.5rem;
border-radius: 5px;
font-size: 0.7rem;
font-weight: 600;
line-height: 1.2;
text-decoration: none;
color: #1a2327;
transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.topic-heatcell:hover {
transform: translateY(-2px);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.18);
}
.topic-heatcell__n {
font-size: 0.62em;
font-weight: 700;
opacity: 0.7;
}
/* Sequential warmth ramp: th-1 = sparsest, th-6 = densest. */
.th-1 { background: #e3f2fd; }
.th-2 { background: #ffe0b2; }
.th-3 { background: #ffcc80; }
.th-4 { background: #ffa726; }
.th-5 { background: #fb8c00; color: #fff; }
.th-6 { background: #e64a19; color: #fff; }
[data-md-color-scheme="slate"] .th-1 { background: #2d4456; color: #d7e3ea; }
[data-md-color-scheme="slate"] .th-2 { background: #6d4c1f; color: #f5e7d3; }
[data-md-color-scheme="slate"] .th-3 { background: #97601f; color: #fff3e0; }
[data-md-color-scheme="slate"] .th-4 { background: #c2701a; color: #fff; }
[data-md-color-scheme="slate"] .th-5 { background: #e2701a; color: #fff; }
[data-md-color-scheme="slate"] .th-6 { background: #ff5722; color: #fff; }
@media screen and (max-width: 44.9375em) {
.topic-heatmap__row { grid-template-columns: 1fr; gap: 0.35rem; }
.topic-heatmap__dim { padding-top: 0; }
}
/* Visible label for each YouTube mosaic category block (was hidden in title=) */
.mosaic-cat-label {
margin: 0 0 0.5rem;
padding-left: 0.55rem;
border-left: 3px solid var(--cat-color, #64748b);
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--md-default-fg-color--light);
text-align: left;
}
/* Responsive, privacy-friendly video embeds (about page) */
.video-embed-grid {
display: flex;
justify-content: center;
gap: 16px;
flex-wrap: wrap;
margin: 24px 0;
}
.video-embed {
flex: 1 1 420px;
max-width: 480px;
aspect-ratio: 16 / 9;
}
.video-embed iframe {
width: 100%;
height: 100%;
border: 0;
border-radius: 8px;
}
+245 -233
View File
@@ -1,263 +1,275 @@
document.addEventListener("DOMContentLoaded", function () {
// Initialize the filter only if we are on a page with resource lists
const contentArea = document.querySelector(".md-content__inner");
if (!contentArea) return;
// Nubenetes V2 — in-page resource search & tag filter widget.
//
// IMPORTANT: The V2 theme enables `navigation.instant` (SPA-style page swaps),
// so `DOMContentLoaded` fires only on the very first load. We therefore drive
// initialization through Material's `document$` observable, which emits on every
// (instant) navigation. We fall back to `DOMContentLoaded` when the observable
// is unavailable (e.g. instant nav disabled or local preview without the bundle).
// Check if there are any resource items on the page (li or details)
const listItems = Array.from(contentArea.querySelectorAll("ul > li"));
const detailsItems = Array.from(contentArea.querySelectorAll("details.note"));
// If there are no list items and no details items, do not inject the filter
if (listItems.length === 0 && detailsItems.length === 0) return;
(function () {
"use strict";
// Do not show on the homepage, video hub index page, or technical tags index page (performance)
const h1 = contentArea.querySelector("h1");
if (h1 && (
h1.textContent.includes("Nubenetes Elite Portal (V2)") ||
h1.textContent.includes("Agentic Video Hub") ||
h1.textContent.includes("Technical Tags Index") ||
h1.textContent.includes("Intelligence Digest")
)) {
return;
}
function initFilterWidget() {
const contentArea = document.querySelector(".md-content__inner");
if (!contentArea) return;
// Build the filter container element
const filterContainer = document.createElement("div");
filterContainer.className = "v2-filter-container";
filterContainer.innerHTML = `
<div class="v2-search-wrapper">
<input type="text" class="v2-search-input" placeholder="Search resources in this page..." />
<span class="v2-search-clear" style="display:none;">&times;</span>
</div>
<div class="v2-tag-pills">
<button class="v2-pill active" data-filter="all">All</button>
<button class="v2-pill" data-filter="DE FACTO STANDARD">De Facto Standard</button>
<button class="v2-pill" data-filter="ENTERPRISE-STABLE">Enterprise Stable</button>
<button class="v2-pill" data-filter="EMERGING">Emerging</button>
<button class="v2-pill" data-filter="GUIDE">Guide</button>
<button class="v2-pill" data-filter="CASE STUDY">Case Study</button>
<button class="v2-pill" data-filter="COMMUNITY-TOOL">Community Tool</button>
<button class="v2-pill" data-filter="SPANISH">Spanish</button>
</div>
<div class="v2-filter-stats">
<span>Showing <strong class="v2-visible-count">0</strong> of <strong class="v2-total-count">0</strong> resources</span>
<span class="v2-active-filters" style="font-style: italic;"></span>
</div>
`;
// Guard against double-injection (document$ can emit more than once).
if (contentArea.querySelector(".v2-filter-container")) return;
// Insert the filter container right after the main H1
if (h1 && h1.nextSibling) {
h1.parentNode.insertBefore(filterContainer, h1.nextSibling);
} else {
contentArea.insertBefore(filterContainer, contentArea.firstChild);
}
// Only inject where there are resources to filter.
const listItems = Array.from(contentArea.querySelectorAll("ul > li"));
const detailsItems = Array.from(contentArea.querySelectorAll("details.note"));
if (listItems.length === 0 && detailsItems.length === 0) return;
const searchInput = filterContainer.querySelector(".v2-search-input");
const searchClear = filterContainer.querySelector(".v2-search-clear");
const pills = filterContainer.querySelectorAll(".v2-pill");
const visibleCountSpan = filterContainer.querySelector(".v2-visible-count");
const totalCountSpan = filterContainer.querySelector(".v2-total-count");
// All target elements we want to filter
const targets = [];
// Prepare list items
listItems.forEach(item => {
// Make sure it's a resource list item (has a link and some content)
if (item.querySelector("a")) {
targets.push({
element: item,
type: "li",
text: item.textContent.toLowerCase(),
tags: Array.from(item.querySelectorAll(".md-tag")).map(t => t.textContent.toUpperCase())
});
// Skip on curated landing/index pages where the widget adds no value.
const h1 = contentArea.querySelector("h1");
if (h1 && (
h1.textContent.includes("Nubenetes Elite Portal (V2)") ||
h1.textContent.includes("Agentic Video Hub") ||
h1.textContent.includes("Technical Tags Index") ||
h1.textContent.includes("Intelligence Digest") ||
// Topic Map / Methodology list categories and legend rows, not
// tagged resources: their <li> items carry no .md-tag, so the
// maturity pills would always filter to zero and the "X of Y
// resources" count is misleading. Skip them.
h1.textContent.includes("Topic Map") ||
h1.textContent.includes("Methodology")
)) {
return;
}
});
// Prepare details.note items (if any, like in some V2 structures)
detailsItems.forEach(detail => {
const summary = detail.querySelector("summary");
targets.push({
element: detail,
type: "details",
text: detail.textContent.toLowerCase(),
tags: summary ? [summary.textContent.toUpperCase()] : []
});
});
const filterContainer = document.createElement("div");
filterContainer.className = "v2-filter-container";
filterContainer.innerHTML = `
<div class="v2-search-wrapper">
<input type="text" class="v2-search-input" placeholder="Search resources in this page..." aria-label="Search resources in this page" />
<span class="v2-search-clear" style="display:none;" title="Clear search">&times;</span>
</div>
<div class="v2-tag-pills">
<button class="v2-pill active" data-filter="all">All</button>
<button class="v2-pill" data-filter="DE FACTO STANDARD">De Facto Standard</button>
<button class="v2-pill" data-filter="ENTERPRISE-STABLE">Enterprise Stable</button>
<button class="v2-pill" data-filter="EMERGING">Emerging</button>
<button class="v2-pill" data-filter="GUIDE">Guide</button>
<button class="v2-pill" data-filter="CASE STUDY">Case Study</button>
<button class="v2-pill" data-filter="COMMUNITY-TOOL">Community Tool</button>
<button class="v2-pill" data-filter="SPANISH">Spanish</button>
</div>
<div class="v2-filter-stats">
<span>Showing <strong class="v2-visible-count">0</strong> of <strong class="v2-total-count">0</strong> resources</span>
<span class="v2-active-filters" style="font-style: italic;"></span>
<span class="v2-no-results" style="display:none; color: var(--md-typeset-color); opacity:.75;">No resources match your filter.</span>
</div>
`;
totalCountSpan.textContent = targets.length;
visibleCountSpan.textContent = targets.length;
// Insert directly after the main H1.
if (h1 && h1.nextSibling) {
h1.parentNode.insertBefore(filterContainer, h1.nextSibling);
} else {
contentArea.insertBefore(filterContainer, contentArea.firstChild);
}
let activeFilter = "all";
let searchText = "";
const searchInput = filterContainer.querySelector(".v2-search-input");
const searchClear = filterContainer.querySelector(".v2-search-clear");
const pills = filterContainer.querySelectorAll(".v2-pill");
const visibleCountSpan = filterContainer.querySelector(".v2-visible-count");
const totalCountSpan = filterContainer.querySelector(".v2-total-count");
const noResultsSpan = filterContainer.querySelector(".v2-no-results");
function updateFilters() {
let visibleCount = 0;
targets.forEach(item => {
let matchesSearch = true;
let matchesPill = true;
// 1. Search text filter
if (searchText) {
matchesSearch = item.text.includes(searchText);
// Collect filter targets (resource <li> and details.note blocks).
const targets = [];
listItems.forEach(item => {
if (item.querySelector("a")) {
targets.push({
element: item,
type: "li",
text: item.textContent.toLowerCase(),
tags: Array.from(item.querySelectorAll(".md-tag")).map(t => t.textContent.toUpperCase())
});
}
});
detailsItems.forEach(detail => {
const summary = detail.querySelector("summary");
targets.push({
element: detail,
type: "details",
text: detail.textContent.toLowerCase(),
tags: summary ? [summary.textContent.toUpperCase()] : []
});
});
// 2. Pill/Category filter
if (activeFilter !== "all") {
if (activeFilter === "SPANISH") {
matchesPill = item.tags.some(tag => tag.includes("SPANISH"));
} else {
matchesPill = item.tags.some(tag => tag.includes(activeFilter));
totalCountSpan.textContent = targets.length;
visibleCountSpan.textContent = targets.length;
let activeFilter = "all";
let searchText = "";
function updateFilters() {
let visibleCount = 0;
targets.forEach(item => {
let matchesSearch = true;
let matchesPill = true;
if (searchText) {
matchesSearch = item.text.includes(searchText);
}
}
if (matchesSearch && matchesPill) {
item.element.classList.remove("v2-filtered-hidden");
visibleCount++;
} else {
item.element.classList.add("v2-filtered-hidden");
}
});
visibleCountSpan.textContent = visibleCount;
// 3. Hide empty headers and subheadings
// If a section (e.g., under h2, h3, h4) has no visible items, hide the section header
const headings = Array.from(contentArea.querySelectorAll("h2, h3, h4"));
headings.forEach(heading => {
let next = heading.nextElementSibling;
let totalItemsInSection = 0;
let hiddenItemsInSection = 0;
while (next && !["H1", "H2", "H3", "H4"].includes(next.tagName)) {
if (next.tagName === "UL") {
const lis = Array.from(next.querySelectorAll("li"));
lis.forEach(li => {
if (targets.some(t => t.element === li)) {
totalItemsInSection++;
if (li.classList.contains("v2-filtered-hidden")) {
hiddenItemsInSection++;
}
}
});
} else if (next.tagName === "DETAILS" && next.classList.contains("note")) {
totalItemsInSection++;
if (next.classList.contains("v2-filtered-hidden")) {
hiddenItemsInSection++;
if (activeFilter !== "all") {
if (activeFilter === "SPANISH") {
matchesPill = item.tags.some(tag => tag.includes("SPANISH"));
} else {
matchesPill = item.tags.some(tag => tag.includes(activeFilter));
}
}
next = next.nextElementSibling;
}
if (totalItemsInSection > 0 && totalItemsInSection === hiddenItemsInSection) {
heading.classList.add("v2-filtered-hidden");
} else {
heading.classList.remove("v2-filtered-hidden");
}
});
}
if (matchesSearch && matchesPill) {
item.element.classList.remove("v2-filtered-hidden");
visibleCount++;
} else {
item.element.classList.add("v2-filtered-hidden");
}
});
// Input event listener
searchInput.addEventListener("input", function (e) {
searchText = e.target.value.toLowerCase().trim();
if (searchText) {
searchClear.style.display = "block";
} else {
searchClear.style.display = "none";
visibleCountSpan.textContent = visibleCount;
noResultsSpan.style.display = visibleCount === 0 ? "inline" : "none";
// Hide section headings whose every resource is filtered out.
const headings = Array.from(contentArea.querySelectorAll("h2, h3, h4"));
headings.forEach(heading => {
let next = heading.nextElementSibling;
let totalItemsInSection = 0;
let hiddenItemsInSection = 0;
while (next && !["H1", "H2", "H3", "H4"].includes(next.tagName)) {
if (next.tagName === "UL") {
Array.from(next.querySelectorAll("li")).forEach(li => {
if (targets.some(t => t.element === li)) {
totalItemsInSection++;
if (li.classList.contains("v2-filtered-hidden")) hiddenItemsInSection++;
}
});
} else if (next.tagName === "DETAILS" && next.classList.contains("note")) {
totalItemsInSection++;
if (next.classList.contains("v2-filtered-hidden")) hiddenItemsInSection++;
}
next = next.nextElementSibling;
}
if (totalItemsInSection > 0 && totalItemsInSection === hiddenItemsInSection) {
heading.classList.add("v2-filtered-hidden");
} else {
heading.classList.remove("v2-filtered-hidden");
}
});
}
updateFilters();
});
// Clear search
searchClear.addEventListener("click", function () {
searchInput.value = "";
searchText = "";
searchClear.style.display = "none";
updateFilters();
searchInput.focus();
});
// Pill click event listener
pills.forEach(pill => {
pill.addEventListener("click", function () {
pills.forEach(p => p.classList.remove("active"));
this.classList.add("active");
activeFilter = this.getAttribute("data-filter");
searchInput.addEventListener("input", function (e) {
searchText = e.target.value.toLowerCase().trim();
searchClear.style.display = searchText ? "block" : "none";
updateFilters();
});
});
// Make tag badges clickable to trigger filtering
document.addEventListener("click", function (e) {
const tagSpan = e.target.closest(".md-tag");
if (!tagSpan) return;
// Skip if inside the filter container itself to avoid loop
if (e.target.closest(".v2-filter-container")) return;
let tagText = tagSpan.textContent.trim().replace(/[\[\]]/g, "").toUpperCase();
if (tagText.includes("CONTENT")) {
tagText = tagText.replace(" CONTENT", "");
}
// 1. Check if the tag matches a predefined filter pill
const matchingPill = Array.from(pills).find(p => p.getAttribute("data-filter") === tagText);
if (matchingPill) {
pills.forEach(p => p.classList.remove("active"));
matchingPill.classList.add("active");
activeFilter = tagText;
// Reset search input
searchClear.addEventListener("click", function () {
searchInput.value = "";
searchText = "";
searchClear.style.display = "none";
updateFilters();
filterContainer.scrollIntoView({ behavior: "smooth", block: "nearest" });
} else {
// 2. If it's a technical stack tag, use it as search input query
pills.forEach(p => p.classList.remove("active"));
const allPill = Array.from(pills).find(p => p.getAttribute("data-filter") === "all");
if (allPill) allPill.classList.add("active");
activeFilter = "all";
// Populate search input and fire input event
searchInput.value = tagSpan.textContent.trim().toLowerCase();
searchText = searchInput.value;
searchClear.style.display = "block";
updateFilters();
filterContainer.scrollIntoView({ behavior: "smooth", block: "nearest" });
searchInput.focus();
}
});
});
// Lazy Loading Video Playback Integration
document.addEventListener("DOMContentLoaded", function() {
const lazyContainers = document.querySelectorAll(".video-lazy-container");
lazyContainers.forEach(container => {
container.addEventListener("click", function() {
const videoUrl = this.getAttribute("data-video-url");
const videoId = this.getAttribute("data-video-id");
if (!videoUrl || !videoId) return;
const iframe = document.createElement("iframe");
iframe.setAttribute("width", "720");
iframe.setAttribute("height", "405");
const autoplayUrl = videoUrl.includes("?") ? `${videoUrl}&autoplay=1` : `${videoUrl}?autoplay=1`;
iframe.setAttribute("src", autoplayUrl);
iframe.setAttribute("title", "YouTube Video");
iframe.setAttribute("frameborder", "0");
iframe.setAttribute("allow", "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture");
iframe.setAttribute("allowfullscreen", "true");
iframe.style.border = "none";
iframe.style.width = "100%";
iframe.style.height = "100%";
iframe.style.borderRadius = "8px";
this.innerHTML = "";
this.appendChild(iframe);
this.style.cursor = "default";
});
});
});
pills.forEach(pill => {
pill.addEventListener("click", function () {
pills.forEach(p => p.classList.remove("active"));
this.classList.add("active");
activeFilter = this.getAttribute("data-filter");
updateFilters();
});
});
}
// Make tag badges anywhere in the content act as filter triggers.
// Bound once on `document` (which survives instant navigation) and resolves
// the current page's widget lazily, dispatching native events so the
// per-page listeners above stay the single source of truth.
function bindTagClicksOnce() {
if (window.__v2TagClickBound) return;
window.__v2TagClickBound = true;
document.addEventListener("click", function (e) {
const tagSpan = e.target.closest(".md-tag");
if (!tagSpan) return;
if (e.target.closest(".v2-filter-container")) return;
const filterContainer = document.querySelector(".v2-filter-container");
if (!filterContainer) return;
const pills = filterContainer.querySelectorAll(".v2-pill");
const searchInput = filterContainer.querySelector(".v2-search-input");
let tagText = tagSpan.textContent.trim().replace(/[\[\]]/g, "").toUpperCase();
if (tagText.includes("CONTENT")) tagText = tagText.replace(" CONTENT", "");
const matchingPill = Array.from(pills).find(p => p.getAttribute("data-filter") === tagText);
if (matchingPill) {
// Reset search, then activate the matching maturity pill.
searchInput.value = "";
searchInput.dispatchEvent(new Event("input", { bubbles: true }));
matchingPill.click();
} else {
// Treat fine-grained technical tags as a search query.
const allPill = Array.from(pills).find(p => p.getAttribute("data-filter") === "all");
if (allPill) allPill.click();
searchInput.value = tagSpan.textContent.trim().toLowerCase();
searchInput.dispatchEvent(new Event("input", { bubbles: true }));
}
filterContainer.scrollIntoView({ behavior: "smooth", block: "nearest" });
});
}
// Lazy YouTube playback: click a poster to swap in the iframe.
function initLazyVideos() {
document.querySelectorAll(".video-lazy-container").forEach(container => {
if (container.dataset.lazyBound) return;
container.dataset.lazyBound = "1";
container.addEventListener("click", function () {
const videoUrl = this.getAttribute("data-video-url");
const videoId = this.getAttribute("data-video-id");
if (!videoUrl || !videoId) return;
const iframe = document.createElement("iframe");
iframe.setAttribute("width", "720");
iframe.setAttribute("height", "405");
const autoplayUrl = videoUrl.includes("?") ? `${videoUrl}&autoplay=1` : `${videoUrl}?autoplay=1`;
iframe.setAttribute("src", autoplayUrl);
iframe.setAttribute("title", "YouTube Video");
iframe.setAttribute("frameborder", "0");
iframe.setAttribute("allow", "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture");
iframe.setAttribute("allowfullscreen", "true");
iframe.style.border = "none";
iframe.style.width = "100%";
iframe.style.height = "100%";
iframe.style.borderRadius = "8px";
this.innerHTML = "";
this.appendChild(iframe);
this.style.cursor = "default";
});
});
}
function init() {
initFilterWidget();
initLazyVideos();
}
bindTagClicksOnce();
// Material exposes `document$` (an RxJS observable) that emits on every
// instant navigation. Prefer it; fall back to DOMContentLoaded otherwise.
if (typeof window.document$ !== "undefined" && typeof window.document$.subscribe === "function") {
window.document$.subscribe(init);
} else {
document.addEventListener("DOMContentLoaded", init);
}
})();
+1
View File
@@ -5,3 +5,4 @@ youtube-transcript-api
mkdocs-redirects>=1.2.3
mkdocs-minify-plugin>=0.8.0
mkdocs-rss-plugin>=1.15.0
mkdocs-git-revision-date-localized-plugin>=1.3.0
+53
View File
@@ -0,0 +1,53 @@
"""One-off migration: normalize `gh_pushed` to None.
The enrichment writers historically stored the string "N/A" in the date
field `gh_pushed` when GitHub data was unavailable. That literal reached
`datetime.fromisoformat()` in the safety audit and curator, producing
"Invalid isoformat string: 'N/A'" warnings (and, combined with other null
fields, an aborted audit). The writers now emit None; this script cleans
the existing inventory so the stored data matches.
Usage:
python3 -m scripts.normalize_gh_pushed --dry-run # report only
python3 -m scripts.normalize_gh_pushed # apply + save (YAML+SQL)
NOTE: save_inventory() round-trips through in-memory SQLite, and SQLite's
iterdump renders REAL columns (e.g. epoch timestamps) with version-specific
float precision. Running this on a machine whose SQLite differs from the one
that generated the committed inventory.sql will rewrite ~all rows with no
semantic change. Run it in CI (same SQLite as the pipeline) so the committed
diff stays limited to the actual gh_pushed values.
"""
import sys
from src.inventory_manager import load_inventory, save_inventory
from src.logger import log_event
BAD_VALUES = {"N/A", "NONE", ""}
def main(dry_run: bool):
inv = load_inventory()
changed = 0
for url, meta in inv.items():
if not isinstance(meta, dict):
continue
pushed = meta.get("gh_pushed")
if isinstance(pushed, str) and pushed.strip().upper() in BAD_VALUES:
changed += 1
if not dry_run:
meta["gh_pushed"] = None
log_event(f"[Migration] gh_pushed normalize: {changed} entries with non-date value")
if dry_run:
log_event("[Migration] dry-run — no files written")
return
if changed:
save_inventory(inv)
log_event(f"[Migration] saved inventory (YAML+SQL); normalized {changed} entries")
else:
log_event("[Migration] nothing to change")
if __name__ == "__main__":
main(dry_run="--dry-run" in sys.argv)
+7 -3
View File
@@ -115,9 +115,13 @@ async def evaluate_extracted_assets(raw_assets: List[Dict]) -> Dict[str, Dict]:
gh_meta = await _get_github_activity(asset["url"]) if "github.com" in asset["url"] else {}
mvq_penalty = False
if gh_meta.get("gh_pushed"):
ld = datetime.fromisoformat(gh_meta["gh_pushed"].replace("Z", "+00:00"))
if (datetime.now(ld.tzinfo) - ld).days > (365 * 4): mvq_penalty = True
pushed = gh_meta.get("gh_pushed")
if pushed and str(pushed).strip().upper() not in ("N/A", "NONE"):
try:
ld = datetime.fromisoformat(str(pushed).replace("Z", "+00:00"))
if (datetime.now(ld.tzinfo) - ld).days > (365 * 4): mvq_penalty = True
except Exception as e:
log_event(f"[WARN] MVQ penalty date parse for {asset['url']}: {str(e)[:100]}")
batch_data.append({
"asset": asset, "content": web_content[:1500], "hash": c_hash,
+4 -4
View File
@@ -50,7 +50,7 @@ def get_readable_category(category: str) -> str:
async def fetch_github_metadata(client: httpx.AsyncClient, url: str, sem: asyncio.Semaphore) -> tuple[str, dict]:
default_meta = {
"gh_stars": 0,
"gh_pushed": "N/A",
"gh_pushed": None, # date field: unknown = None, never the string "N/A"
"gh_license": "N/A"
}
match = re.search(r'github\.com/([^/]+/[^/]+)', url)
@@ -72,20 +72,20 @@ async def fetch_github_metadata(client: httpx.AsyncClient, url: str, sem: asynci
lic_id = lic.get("spdx_id", "N/A") if isinstance(lic, dict) else "N/A"
return url, {
"gh_stars": data.get("stargazers_count", 0),
"gh_pushed": data.get("pushed_at", "N/A"),
"gh_pushed": data.get("pushed_at"),
"gh_license": lic_id
}
elif resp.status_code == 404:
return url, {
"gh_stars": 0,
"gh_pushed": "N/A",
"gh_pushed": None,
"gh_license": "N/A",
"status": "dead"
}
else:
return url, {
"gh_stars": 0,
"gh_pushed": "N/A",
"gh_pushed": None,
"gh_license": "N/A",
"status": "unreachable"
}
+2 -2
View File
@@ -211,7 +211,7 @@ async def get_github_activity(url: str) -> Dict:
"""
default_meta = {
"gh_stars": 0,
"gh_pushed": "N/A",
"gh_pushed": None, # date field: unknown = None, never the string "N/A"
"gh_license": "N/A"
}
match = re.search(r'github\.com/([^/]+/[^/]+)', url)
@@ -236,7 +236,7 @@ async def get_github_activity(url: str) -> Dict:
lic_id = lic.get("spdx_id", "N/A") if isinstance(lic, dict) else "N/A"
return {
"gh_stars": data.get("stargazers_count", 0),
"gh_pushed": data.get("pushed_at", "N/A"),
"gh_pushed": data.get("pushed_at"),
"gh_license": lic_id
}
except Exception as e:
+12 -3
View File
@@ -113,7 +113,7 @@ def save_inventory(inv: Dict, shard_file: str = None):
addition_method TEXT,
content_hash TEXT,
health_score REAL,
last_checked REAL,
last_checked INTEGER,
needs_ai_refresh BOOLEAN,
discovered_at TEXT,
last_ai_eval TEXT,
@@ -139,7 +139,16 @@ def save_inventory(inv: Dict, shard_file: str = None):
for url, entry in inv.items():
if not isinstance(entry, dict):
continue
# last_checked is a coarse staleness timestamp (epoch seconds). Normalize
# it to int on the entry itself — before building the SQL record AND the
# YAML dump below — so both serializations agree, and SQLite's
# version-specific REAL->text float formatting can't rewrite every row on
# dump. Sub-second precision is not used by any reader.
lc = entry.get("last_checked")
if isinstance(lc, float):
entry["last_checked"] = int(lc)
record = {col: entry.get(col) for col in columns if col not in ["hierarchy", "tags", "v1_locations", "v2_locations", "youtube_mosaic", "extra_metadata"]}
record["url"] = url
@@ -160,7 +169,7 @@ def save_inventory(inv: Dict, shard_file: str = None):
# Conversions
record["is_microservice"] = 1 if record.get("is_microservice") else 0
record["needs_ai_refresh"] = 1 if record.get("needs_ai_refresh") else 0
placeholders = ", ".join(["?"] * len(columns))
values = [record[col] for col in columns]
cursor.execute(f"INSERT OR REPLACE INTO resources ({', '.join(columns)}) VALUES ({placeholders})", values)
+7 -7
View File
@@ -133,14 +133,14 @@ class NewsDigestEngine:
# --- INDUSTRY / GEO (4) resolved via geo_region, not slugs ---
"Americas": [],
"Europe": [],
"España": [],
"Spain": [],
"Asia-Pacific": [],
}
GEO_CATEGORIES: Dict[str, str] = {
"Americas": "americas",
"Europe": "europe",
"España": "spain",
"Spain": "spain",
"Asia-Pacific": "asia_pacific",
}
@@ -186,14 +186,14 @@ class NewsDigestEngine:
return self.category_map[cat]
return None
def _get_entry_geo(self, entry: dict) -> str | None:
def _get_entry_geo(self, entry: dict, url: str = "") -> str | None:
"""Return the geo digest category using geo_region field, falling back to URL TLD inference."""
region = entry.get("geo_region", "")
for geo_name, geo_val in self.GEO_CATEGORIES.items():
if region == geo_val:
return geo_name
# Fallback: infer from URL TLD
return self._infer_geo_from_url(entry.get("url", ""))
# Fallback: infer from URL TLD (entry.get("url") populated only after url injection)
return self._infer_geo_from_url(entry.get("url", "") or url)
@staticmethod
def _infer_geo_from_url(url: str) -> str | None:
@@ -205,7 +205,7 @@ class NewsDigestEngine:
tld_to_region = [
(".com.au", "Asia-Pacific"), (".co.uk", "Europe"), (".co.jp", "Asia-Pacific"),
(".co.kr", "Asia-Pacific"), (".com.br", "Americas"), (".com.mx", "Americas"),
(".es", "España"), (".de", "Europe"), (".fr", "Europe"), (".it", "Europe"),
(".es", "Spain"), (".de", "Europe"), (".fr", "Europe"), (".it", "Europe"),
(".pt", "Europe"), (".nl", "Europe"), (".be", "Europe"), (".se", "Europe"),
(".dk", "Europe"), (".fi", "Europe"), (".no", "Europe"), (".ch", "Europe"),
(".at", "Europe"), (".pl", "Europe"), (".cz", "Europe"), (".uk", "Europe"),
@@ -410,7 +410,7 @@ class NewsDigestEngine:
category_pools.setdefault(cat, []).append(
dict(entry, url=url)
)
geo = self._get_entry_geo(entry)
geo = self._get_entry_geo(entry, url=url)
if geo:
category_pools.setdefault(geo, []).append(
dict(entry, url=url)
+7 -1
View File
@@ -95,7 +95,13 @@ def main():
files = pr.get_files()
modified_files = [f.filename for f in files if f.status in ["modified", "added"]]
for filepath in modified_files:
if filepath.endswith(".md"):
# The v2-docs/ tree is generated by src/v2_optimizer.py, which is its
# single source of truth for formatting. Auto-formatting it here
# ("&"->"and" in headings, URL trailing-slash stripping) only fights
# the generator: the rewrite lands on develop via the PR while master
# gets the generator's raw form via release merges, producing a
# perpetual cosmetic develop<->master drift. Skip the generated tree.
if filepath.endswith(".md") and not filepath.startswith("v2-docs/"):
auto_format_file(filepath)
except Exception as e:
print(f"Warning: Failed to fetch files for auto-formatting: {e}")
+26 -14
View File
@@ -18,16 +18,24 @@ def load_inventory_channels():
channels = []
for url, entry in inventory.items():
if isinstance(entry, dict) and 'youtube_mosaic' in entry:
metadata = entry['youtube_mosaic']
channels.append({
'title': entry.get('title', 'Unknown Channel'),
'url': url,
'image': metadata.get('image', ''),
'category': metadata.get('category', 'learning_influencers_communities'),
'order_v1': metadata.get('order_v1', 9999),
'order_v2': metadata.get('order_v2', 9999)
})
if not isinstance(entry, dict):
continue
metadata = entry.get('youtube_mosaic')
# Every inventory entry carries a 'youtube_mosaic' column that the SQL
# round-trip materializes as an empty dict {}, so a bare key-presence
# check matches the entire inventory and explodes the mosaic to ~18k
# logos. Only treat an entry as a mosaic channel when it actually has
# mosaic metadata with a logo image.
if not isinstance(metadata, dict) or not metadata.get('image'):
continue
channels.append({
'title': entry.get('title', 'Unknown Channel'),
'url': url,
'image': metadata.get('image', ''),
'category': metadata.get('category', 'learning_influencers_communities'),
'order_v1': metadata.get('order_v1', 9999),
'order_v2': metadata.get('order_v2', 9999)
})
return channels
def build_v2_mosaic_markdown_from_channels(channels):
@@ -52,13 +60,17 @@ def build_v2_mosaic_markdown_from_channels(channels):
cat_chans.sort(key=lambda x: x['order_v2'])
# Open category block container
lines.append(f'<div markdown="1" style="border: 1px solid {cat_info["color"]}; border-radius: 8px; padding: 10px; margin: 8px 0; background: rgba(255, 255, 255, 0.01);" title="{cat_info["name"]}">')
lines.append(f'<div markdown="1" class="mosaic-cat-block" style="border: 1px solid {cat_info["color"]}; border-radius: 8px; padding: 10px; margin: 8px 0; background: rgba(255, 255, 255, 0.01);" title="{cat_info["name"]}">')
lines.append('') # Mandatory blank line after block tag
# Channel links
# Visible category label (previously only exposed via the hidden title= tooltip)
lines.append(f'<p class="mosaic-cat-label" style="--cat-color: {cat_info["color"]}">{cat_info["name"]}</p>')
lines.append('')
# Channel links (loading="lazy" — ~150 logos, almost all below the fold)
chan_links = []
for chan in cat_chans:
chan_links.append(f"[![{chan['title']}]({chan['image']}){{: style=\"width:48px; height:48px; object-fit:contain; margin:6px;\" .channel-logo}}]({chan['url']})")
chan_links.append(f"[![{chan['title']}]({chan['image']}){{: style=\"width:48px; height:48px; object-fit:contain; margin:6px;\" loading=\"lazy\" .channel-logo}}]({chan['url']})")
lines.append(" ".join(chan_links))
lines.append('')
+22 -1
View File
@@ -61,7 +61,28 @@ def generate_rss() -> None:
)
items = items[:ITEMS_PER_FEED]
build_date = _rfc822(datetime.utcnow())
# Deterministic build date = the freshest item's content date, so the feed
# is a pure function of its items. (This used wall-clock now() — rewritten on
# every republish — then _meta.last_updated, but that analysis timestamp is
# itself bumped on each publish even when the ranked content is unchanged, so
# the feed still drifted between develop and master. The item dates only move
# when the content actually changes.) Falls back to _meta.last_updated, then
# a fixed constant, only when no item carries a parseable date.
item_dates = []
for _it in items:
try:
item_dates.append(datetime.strptime(_it.get("date", ""), "%Y-%m-%d"))
except Exception:
pass
if item_dates:
build_dt = max(item_dates)
else:
meta_updated = digest.get("_meta", {}).get("last_updated", "")
try:
build_dt = datetime.fromisoformat(meta_updated) if meta_updated else datetime(2026, 1, 1)
except Exception:
build_dt = datetime(2026, 1, 1)
build_date = _rfc822(build_dt)
lines = [
'<?xml version="1.0" encoding="UTF-8"?>',
+38 -19
View File
@@ -86,15 +86,23 @@ class SafetyGuard:
for url, meta in self.inventory.items():
if "github.com" in url and meta.get("v2_locations"):
pushed = meta.get("gh_pushed", "")
if pushed:
try:
last_date = datetime.fromisoformat(pushed.replace("Z", "+00:00"))
inactive_years = (datetime.now(last_date.tzinfo) - last_date).days / 365
stars = meta.get("gh_stars", meta.get("stars", 0) * 100)
if inactive_years > 4 and stars < 30:
self.warnings.append(f"🏚️ **MVQ Violation**: Stale repo `{url}` (>4yrs) in V2 with low impact")
except Exception as e:
log_event(f"[WARN] MVQ compliance check for {url}: {str(e)[:100]}")
# Skip entries with no usable push date. Enrichment stores "N/A"
# (and historically None/empty) when GitHub data is unavailable;
# these are not ISO dates and must not reach fromisoformat().
if not pushed or str(pushed).strip().upper() in ("N/A", "NONE"):
continue
try:
last_date = datetime.fromisoformat(str(pushed).replace("Z", "+00:00"))
inactive_years = (datetime.now(last_date.tzinfo) - last_date).days / 365
# gh_stars may be missing; fall back to V1 stars (×100 heuristic).
# Coalesce None so a stored null never reaches the multiplication.
stars = meta.get("gh_stars")
if stars is None:
stars = (meta.get("stars") or 0) * 100
if inactive_years > 4 and stars < 30:
self.warnings.append(f"🏚️ **MVQ Violation**: Stale repo `{url}` (>4yrs) in V2 with low impact")
except Exception as e:
log_event(f"[WARN] MVQ compliance check for {url}: {str(e)[:100]}")
def validate_linguistic_tagging(self):
"""Mandate 10: Explicit Language Tagging."""
@@ -104,7 +112,9 @@ class SafetyGuard:
with open(os.path.join(V2_DIR, file), "r") as f:
content = f.read()
for url, meta in self.inventory.items():
lang = meta.get("language", "English")
# language may be stored as null; coalesce to avoid None.lower()
# aborting the entire audit.
lang = meta.get("language") or "English"
if lang.lower() != "english" and url in content:
tag = f"[{lang.upper()} CONTENT]"
if tag not in content:
@@ -289,15 +299,24 @@ class SafetyGuard:
except Exception as e:
log_event(f"[WARN] load old inventory for data integrity check: {str(e)[:100]}")
self.validate_semantic_interlinking()
self.validate_special_assets_completeness()
self.validate_mvq_compliance()
self.validate_linguistic_tagging()
self.validate_platinum_schema()
self.validate_structural_standards() # Mandate 30 & 19
self.validate_v2_architecture()
self.validate_navigation_sync() # Mandate 11
self.validate_forbidden_tags() # Safety Hardening
# Run each mandate in isolation so one bad entry can't abort the
# entire audit (e.g. a null field raising mid-validation).
validations = [
self.validate_semantic_interlinking,
self.validate_special_assets_completeness,
self.validate_mvq_compliance,
self.validate_linguistic_tagging,
self.validate_platinum_schema,
self.validate_structural_standards, # Mandate 30 & 19
self.validate_v2_architecture,
self.validate_navigation_sync, # Mandate 11
self.validate_forbidden_tags, # Safety Hardening
]
for check in validations:
try:
check()
except Exception as e:
log_event(f"[WARN] audit mandate {check.__name__} failed: {str(e)[:100]}")
status = "✅ PASS" if not self.errors else "❌ FAILED"
if not self.errors and self.warnings: status = "⚠️ WARNING"
+590 -116
View File
@@ -1,6 +1,7 @@
import os
import re
import json
import math
import hashlib
import asyncio
import yaml
@@ -42,7 +43,7 @@ class V2VisionEngine:
"Architectural Foundations": ["introduction", "faq", "kubernetes", "linux", "git", "cloud-arch-diagrams", "matrix-table", "other-awesome-lists", "about"],
"Platform & Site Reliability": ["sre", "devops", "developerportals", "scaffolding", "finops", "chaos-engineering", "performance-testing-with-jenkins-and-jmeter", "project-management-methodology", "project-management-tools", "qa", "test-automation-frameworks", "testops"],
"Hardened Infrastructure": ["iac", "terraform", "pulumi", "crossplane", "ansible", "securityascode", "kubernetes-security", "aws-security", "devsecops", "kustomize", "liquibase"],
"Cloud Providers (Hyperscalers)": ["aws", "azure", "GoogleCloudPlatform", "ibm_cloud", "oraclecloud", "digitalocean", "cloudflare", "managed-kubernetes-in-public-cloud", "public-cloud-solutions", "edge-computing", "aws-architecture", "aws-security", "aws-networking", "aws-databases", "aws-storage", "aws-monitoring", "aws-iac", "aws-tools-scripts", "aws-messaging", "aws-data", "aws-devops", "aws-serverless", "aws-containers", "aws-backup", "aws-training", "aws-newfeatures", "aws-miscellaneous", "aws-pricing"],
"Cloud Providers (Hyperscalers)": ["aws", "azure", "GoogleCloudPlatform", "ibm_cloud", "oraclecloud", "digitalocean", "cloudflare", "managed-kubernetes-in-public-cloud", "public-cloud-solutions", "edge-computing", "aws-security", "aws-networking", "aws-storage", "aws-iac", "aws-serverless", "aws-backup", "aws-newfeatures"],
"Networking & Service Mesh": ["networking", "kubernetes-networking", "servicemesh", "istio", "caching", "web-servers", "cloudflare"],
"The Container Stack": ["docker", "container-managers", "serverless", "kubernetes-autoscaling", "kubernetes-operators-controllers", "kubernetes-storage", "kubernetes-monitoring", "kubernetes-troubleshooting", "kubernetes-backup-migrations", "kubernetes-on-premise", "kubernetes-bigdata", "kubernetes-client-libraries", "kubernetes-releases", "kubernetes-based-devel", "kubernetes-alternatives", "kubectl-commands", "rancher", "openshift", "ocp3", "ocp4", "noops"],
"Data & Advanced Analytics": ["databases", "nosql", "message-queue", "crunchydata", "yaml", "bigdata"],
@@ -65,6 +66,57 @@ class V2VisionEngine:
"oauth": "securityascode",
"digital-money": "finops",
"aws-spain": "aws",
# AWS de-fragmentation: the near-empty / junk-drawer AWS sub-pages
# (<=7 links, plus "miscellaneous") merge into the main aws page so
# it stops being a 3-link stub. The substantial AWS topics
# (serverless, storage, networking, security, iac, backup,
# newfeatures) stay as their own pages and are surfaced via the
# provider hub block (self.subpage_hubs) on aws.md.
"aws-miscellaneous": "aws",
"aws-databases": "aws",
"aws-devops": "aws",
"aws-containers": "aws",
"aws-monitoring": "aws",
"aws-architecture": "aws",
"aws-tools-scripts": "aws",
"aws-messaging": "aws",
"aws-data": "aws",
"aws-training": "aws",
"aws-pricing": "aws",
}
# Provider hub: pages that should render a "deep-dive topic pages" index
# linking to the substantial sub-pages that remain after consolidation.
# (slug, display label) — labels kept short and human-readable.
self.subpage_hubs = {
"aws": [
("aws-serverless", "Serverless"),
("aws-storage", "Storage"),
("aws-networking", "Networking"),
("aws-security", "Security"),
("aws-iac", "IaC"),
("aws-backup", "Backup"),
("aws-newfeatures", "New Features"),
],
# Kubernetes is well-classified (rich parent + substantial distinct
# children), so nothing is merged here — the hub is purely an index
# so the flagship landing surfaces its deep-dive topic pages.
"kubernetes": [
("kubernetes-tools", "Tools"),
("kubernetes-networking", "Networking"),
("kubernetes-security", "Security"),
("kubernetes-monitoring", "Monitoring"),
("kubernetes-storage", "Storage"),
("kubernetes-autoscaling", "Autoscaling"),
("kubernetes-operators-controllers", "Operators"),
("kubernetes-alternatives", "Alternatives"),
("kubernetes-bigdata", "Big Data"),
("kubernetes-tutorials", "Tutorials"),
("kubernetes-backup-migrations", "Backup & Migrations"),
("kubernetes-client-libraries", "Client Libraries"),
("kubernetes-based-devel", "Local Dev"),
("kubernetes-on-premise", "On-Premise"),
],
}
self.library_criteria = (
@@ -169,7 +221,7 @@ class V2VisionEngine:
# --- SURGICAL GARBAGE COLLECTION ---
# Track every file we generate
generated_files = {"index.md", "audit-log.md", "videos.md", "tags.md", "tech-digest.md", "industry-digest.md"}
generated_files = {"index.md", "audit-log.md", "videos.md", "tags.md", "tech-digest.md", "industry-digest.md", "topic-map.md", "methodology.md"}
for f_name in v2_data.keys():
generated_files.add(f_name)
@@ -963,7 +1015,7 @@ class V2VisionEngine:
"FinOps & Cloud Cost", "Certification & Training",
"AWS", "Azure", "GCP, OCI & Others", "OpenShift / Red Hat", "Virtualization & Private Cloud"
]
geo_cats = ["Americas", "Europe", "España", "Asia-Pacific"]
geo_cats = ["Americas", "Europe", "Spain", "Asia-Pacific"]
period_labels = {"3_months": "Last 3 Months", "6_months": "Last 6 Months", "12_months": "Last 12 Months"}
def render_digest_page(title, categories, digest_data, search_boost=1):
@@ -971,19 +1023,26 @@ class V2VisionEngine:
md += f"# {title}\n\n"
md += "!!! tip \"Nubenetes Intelligence Digest\"\n"
md += " AI-curated ranking of the most impactful resources, updated monthly.\n\n"
for period_key, period_label in period_labels.items():
md += f'=== "{period_label}"\n\n'
period_data = digest_data.get(period_key, {})
for cat in categories:
items = period_data.get(cat, [])
# Category-first layout: each category is a real H2 heading (at column 0)
# so it appears exactly once in the MkDocs Material right-hand "On this page"
# TOC, with the three time-windows as content tabs *inside* the category.
# (The previous period-first layout nested categories as bold text inside
# tabs, which produced no TOC entries and tripped MD023 on indented headings.)
for cat in categories:
# Skip categories with no ranked items in any time window.
if not any(digest_data.get(pk, {}).get(cat) for pk in period_labels):
continue
md += f"## {cat}\n\n"
for period_key, period_label in period_labels.items():
items = digest_data.get(period_key, {}).get(cat, [])
if not items:
continue
md += f" **{cat}**\n\n"
md += f'=== "{period_label}"\n\n'
md += " | Date | Resource | Impact | Why It Matters |\n"
md += " | :--- | :--- | :---: | :--- |\n"
for item in items:
impact_badge = {"critical": "🔴", "high": "🟡", "medium": "🔵"}.get(item.get("impact", "medium"), "🔵")
t = nuclear_strip(item.get("title", "Unknown"))
t = nuclear_strip(item.get("title", "Unknown")).replace("|", r"\|")
why = (item.get("why", "") or "").replace("|", "-").replace("\n", " ")
md += f' | {item.get("date", "")} | [{t}]({item.get("url", "#")}) | {impact_badge} {item.get("impact", "medium")} | {why} |\n'
md += "\n"
@@ -1012,14 +1071,140 @@ class V2VisionEngine:
pass
if digest_data and "3_months" in digest_data:
top_items = []
for cat_name, items in digest_data.get("3_months", {}).items():
for item in items[:2]:
top_items.append({**item, "digest_category": cat_name})
top_items.sort(key=lambda x: {"critical": 3, "high": 2, "medium": 1}.get(x.get("impact", "medium"), 0), reverse=True)
top_items = top_items[:6]
# --- Trending v2: momentum-weighted, category-diverse selection ---
# Score = impact_weight * recency_decay so the section actually rotates
# with fresh items instead of pinning evergreen/foundational tools.
# Anchor "now" to the digest's analysis timestamp (not wall-clock) so
# identical digest input always renders identical cards — re-renders on
# later days must not shuffle ages/NEW pills and churn the committed HTML.
now = datetime.now(MADRID_TZ)
try:
raw_now = digest_data.get("_meta", {}).get("last_updated", "")
if raw_now:
now = datetime.fromisoformat(raw_now)
except Exception as e:
log_event(f"[WARN] trending now-anchor: {str(e)[:100]}")
impact_weight = {"critical": 1.0, "high": 0.66, "medium": 0.4}
impact_icons = {"critical": "🔴", "high": "🟡", "medium": "🔵"}
def _parse_day(s):
try:
return datetime.fromisoformat(
str(s).replace("Z", "+00:00").split("T")[0]
).date()
except Exception:
return None
def _clean_title(t):
t = nuclear_strip(t)
# "github.com/owner/repo" -> "repo"
if "github.com/" in t.lower():
t = t.rstrip("/").split("/")[-1]
# "domain.tld: Real Name" -> "Real Name" (Gemini host-prefixed titles)
m = re.match(r'^[\w.-]+\.[a-z]{2,}:\s*(.+)$', t, re.I)
if m:
t = m.group(1)
return t
def _fmt_stars(n):
if not n:
return ""
if n >= 1000:
return f"{n / 1000:.1f}k★".replace(".0k", "k")
return f"{n}"
def _select_lane(window_key, count, exclude_urls, score_fn):
# Build a scored pool from the window's top-2 items per category,
# then apply a per-category diversity quota. The scoring policy is
# supplied by score_fn so each lane surfaces a different signal.
pool = []
for cat_name, items in digest_data.get(window_key, {}).items():
for item in (items or [])[:2]:
if not isinstance(item, dict) or item.get("url") in exclude_urls:
continue
d = _parse_day(item.get("date"))
age_days = (now.date() - d).days if d else 999
pool.append({**item, "digest_category": cat_name, "_age_days": age_days, "_score": score_fn(item, age_days)})
pool.sort(key=lambda x: x["_score"], reverse=True)
# Diversity quota: at most one card per category, then backfill.
sel, used_cats, used = [], set(), set(exclude_urls)
for it in pool:
if it["digest_category"] in used_cats or it.get("url") in used:
continue
sel.append(it)
used_cats.add(it["digest_category"])
used.add(it.get("url"))
if len(sel) >= count:
break
if len(sel) < count:
for it in pool:
if it.get("url") in used:
continue
sel.append(it)
used.add(it.get("url"))
if len(sel) >= count:
break
return sel
def _render_cards(items, show_new=True):
html = ""
for item in items:
impact = item.get("impact", "medium")
# Momentum: prefer real GitHub star count from the inventory join;
# fall back to the 1-5 Gemini impact score rendered as 🌟.
inv_meta = self.inventory.get(item.get("url")) if isinstance(self.inventory, dict) else None
gh_stars = inv_meta.get("gh_stars") if isinstance(inv_meta, dict) else None
metric = _fmt_stars(gh_stars)
if not metric:
score = item.get("stars") or 0
metric = "🌟" * score if score else ""
meta = item.get("date", "")
if metric:
meta += f" · {metric}"
new_pill = ' <span class="trending-card__new">🆕 NEW</span>' if show_new and item.get("_age_days", 999) <= 7 else ""
html += (
f'<div class="trending-card">\n'
f' <div class="trending-card__impact trending-card__impact--{impact}">{impact_icons.get(impact, "🔵")} {impact.upper()}{new_pill}</div>\n'
f' <div class="trending-card__category">{item.get("digest_category", "")}</div>\n'
f' <div class="trending-card__title"><a href="{item.get("url", "#")}">{_clean_title(item.get("title", "Unknown"))}</a></div>\n'
f' <div class="trending-card__meta">{meta}</div>\n'
f' <div class="trending-card__why">{item.get("why", "")}</div>\n'
f'</div>\n'
)
return html
# Proven-staying-power signal for lane 2: URLs that the digest ranks in
# the top-2 of any category over the full 12-month window.
twelve_mo_urls = {
it.get("url")
for items in digest_data.get("12_months", {}).values()
for it in (items or [])
if isinstance(it, dict)
}
def _impact(item):
return impact_weight.get(item.get("impact", "medium"), 0.4)
def _fresh_score(item, age_days):
# Aggressive 21d half-life: surfaces the very newest high-impact items.
recency = 0.5 ** (max(age_days, 0) / 21.0)
return _impact(item) * (0.35 + 0.65 * recency)
def _sustained_score(item, age_days):
# "Rising this Quarter": reward proven staying power (present across
# the 12-month window) and de-prioritise <7d items (those belong in
# lane 1) so the two lanes surface genuinely different resources —
# not just lane 1's leftovers under a different label.
persistence = 1.0 if item.get("url") in twelve_mo_urls else 0.5
maturity = 0.35 if age_days < 7 else 1.0
decay = 0.5 ** (max(age_days, 0) / 120.0)
return _impact(item) * persistence * maturity * (0.45 + 0.55 * decay)
# Lane 1: fresh momentum (3-month window).
top_items = _select_lane("3_months", 6, set(), _fresh_score)
# Lane 2: sustained momentum (6-month window), de-duplicated against lane 1.
rising_items = _select_lane("6_months", 4, {it.get("url") for it in top_items}, _sustained_score)
try:
from datetime import datetime as _dt
# Prefer _meta.last_updated (tracks actual Gemini analysis date)
@@ -1035,18 +1220,12 @@ class V2VisionEngine:
digest_updated = ""
updated_badge = f'<span class="trending-section__updated">Updated {digest_updated}</span>' if digest_updated else ""
cards_html = f'<div class="trending-section">\n<div class="trending-section__title">🔥 Trending Now — Cloud Native Intelligence {updated_badge}</div>\n<div class="trending-grid">\n'
for item in top_items:
impact = item.get("impact", "medium")
cards_html += (
f'<div class="trending-card">\n'
f' <div class="trending-card__impact trending-card__impact--{impact}">{impact_icons.get(impact, "🔵")} {impact.upper()}</div>\n'
f' <div class="trending-card__category">{item.get("digest_category", "")}</div>\n'
f' <div class="trending-card__title"><a href="{item.get("url", "#")}">{nuclear_strip(item.get("title", "Unknown"))}</a></div>\n'
f' <div class="trending-card__meta">{item.get("date", "")} · {"🌟" * item.get("stars") or 0}</div>\n'
f' <div class="trending-card__why">{item.get("why", "")}</div>\n'
f'</div>\n'
)
cards_html += _render_cards(top_items)
cards_html += '</div>\n'
if rising_items:
cards_html += '<div class="trending-section__title trending-section__title--secondary">📈 Rising this Quarter — Sustained Momentum</div>\n<div class="trending-grid">\n'
cards_html += _render_cards(rising_items, show_new=False)
cards_html += '</div>\n'
cards_html += '<div class="digest-links">\n'
cards_html += ' <a href="./tech-digest/" class="digest-link-card">📊 Full Tech & Cloud Digest →</a>\n'
cards_html += ' <a href="./industry-digest/" class="digest-link-card">🌍 Industry & Geo Digest →</a>\n'
@@ -1083,6 +1262,18 @@ class V2VisionEngine:
" - **Status**: The system is incrementally processing pending resources to complete the knowledge graph.\n"
)
# Label Heatmap for the index: identical tag aggregation to the Tags page
# (deterministic slugs), but each label deep-links across to /tags/#slug.
heat_sorted, heat_meta, _ = self._aggregate_tags(data)
index_heatmap = self._render_tag_heatmap(
heat_sorted, heat_meta, href_base="/tags/",
intro=(
"Every technical label across Nubenetes, sized by how many "
"resources carry it. Click any label to open it on the "
"[Technical Tags](/tags/) page."
),
)
index_md = (
"# Nubenetes Elite Portal (V2) | Awesome Kubernetes & Cloud [![Awesome](https://cdn.jsdelivr.net/gh/sindresorhus/awesome@d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n\n"
"!!! tip \"Nubenetes V2 Elite Portal: AI-Curated & High-Density\"\n"
@@ -1106,7 +1297,8 @@ class V2VisionEngine:
" </div>\n"
" </a>\n"
"</div>\n\n"
"<div style=\"display: flex; justify-content: center; gap: 24px; margin: 16px 0; flex-wrap: wrap;\">\n"
"## Explore the Ecosystem\n\n"
"<div class=\"hero-badge-row\">\n"
" <a href=\"./kubernetes/\" style=\"text-decoration: none; color: inherit; display: block;\">\n"
" <div class=\"hero-badge-card hero-badge-card--cyan\">\n"
" <img src=\"/images/kubernetes_logo.png\" alt=\"Kubernetes\"/>\n"
@@ -1135,6 +1327,13 @@ class V2VisionEngine:
" <div class=\"hero-badge-subtitle\">Architect Video Library</div>\n"
" </div>\n"
" </a>\n"
" <a href=\"./topic-map/\" style=\"text-decoration: none; color: inherit; display: block;\">\n"
" <div class=\"hero-badge-card hero-badge-card--indigo\">\n"
" <div class=\"hero-badge-icon\">🗺️</div>\n"
" <div class=\"hero-badge-title\">Topic Map</div>\n"
" <div class=\"hero-badge-subtitle\">All Categories · Directory</div>\n"
" </div>\n"
" </a>\n"
" <a href=\"./introduction/\" style=\"text-decoration: none; color: inherit; display: block;\">\n"
" <div class=\"hero-badge-card hero-badge-card--teal\">\n"
" <img src=\"/images/hero-car.png\" alt=\"Nubenetes Car\"/>\n"
@@ -1147,26 +1346,129 @@ class V2VisionEngine:
" The V2 Edition is a curated, high-density version of the Nubenetes archive. Using **Agentic AI Orchestration**, "
"the system selects only the most relevant, stable, and impactful resources for the modern Cloud Native ecosystem (2026 and beyond).\n\n"
f"{coverage_info}\n\n"
f"<center markdown=\"1\">\n{mosaic_html}\n</center>\n\n"
# Altitude fix: surface the fresh, dynamic Trending/Digest BEFORE the
# signature YouTube mosaic (which now closes the page as a brand showcase).
"## Trending Now\n\n"
f"{pulse_md}\n\n"
"## Strategic Dimensions\n"
"- **[🎥 Agentic Video Hub (Architectural Summary)](./videos/index.md)**\n\n"
"## The Cloud Native Universe We Track\n\n"
f"<center markdown=\"1\">\n{mosaic_html}\n</center>\n\n"
# Label Heatmap: full tag cloud sized by resource count, deep-linking
# to the matching section on the Technical Tags page (cross-page).
f"{index_heatmap}"
"---\n\n"
"**Reference:** [🗺️ Full Topic Map](./topic-map/) · "
"[📐 Methodology &amp; Maturity Taxonomy](./methodology/) · "
"[🎥 Agentic Video Hub](./videos/index.md)\n"
)
# Group by dimension for index
# Group by dimension (shared by the Topic Map directory page below).
dim_groups = {}
for f_name, info in data.items():
dim_groups.setdefault(info["dim"], []).append(f_name)
# Mandate: Use the order defined in self.dimensions for architectural flow
with open(os.path.join(V2_DIR, "index.md"), "w") as f:
f.write(index_md)
# --- Topic Map: full category directory in a multi-column grid -----------
def _count_links(node):
total = len(node.get("__links__", []))
for k, v in node.items():
if k != "__links__" and isinstance(v, dict):
total += _count_links(v)
return total
# Resource-density heatmap: a true colour matrix (distinct from the
# size-based Label cloud on the index/Tags pages). One tile per category,
# grouped by the same strategic dimensions as the directory below, with
# tile warmth encoding how many AI-curated resources it holds. Counts span
# ~1..160, so a LOG scale is used to avoid collapsing everything into the
# lowest bucket. Six levels map onto .th-1..6.
cat_counts = {f_name: _count_links(info["content"]) for f_name, info in data.items()}
_all_counts = [c for c in cat_counts.values() if c > 0] or [1]
_hmin, _hmax = math.log(min(_all_counts)), math.log(max(_all_counts))
def _topic_heat(count):
if count <= 0:
return 1
if _hmax == _hmin:
return 3
return 1 + round((math.log(count) - _hmin) / (_hmax - _hmin) * 5) # 1..6
heatmap_md = (
"## Resource Density Heatmap\n\n"
"Each tile is a category; the warmer the colour, the more AI-curated "
"resources it holds. A fast read of where the Cloud Native ecosystem's "
"depth concentrates — click any tile to open its page.\n\n"
"<div class=\"topic-heatmap\">\n"
"<div class=\"topic-heatmap__legend\">"
"<span class=\"topic-heatmap__cap\">Fewer</span>"
"<span class=\"topic-heatcell th-1\"></span>"
"<span class=\"topic-heatcell th-2\"></span>"
"<span class=\"topic-heatcell th-3\"></span>"
"<span class=\"topic-heatcell th-4\"></span>"
"<span class=\"topic-heatcell th-5\"></span>"
"<span class=\"topic-heatcell th-6\"></span>"
"<span class=\"topic-heatmap__cap\">More</span>"
"</div>\n"
)
for dim in self.dimensions.keys():
if dim not in dim_groups:
continue
heatmap_md += "<div class=\"topic-heatmap__row\">\n"
heatmap_md += f"<div class=\"topic-heatmap__dim\">{dim}</div>\n"
heatmap_md += "<div class=\"topic-heatmap__cells\">\n"
for f in sorted(dim_groups[dim], key=lambda x: cat_counts[x], reverse=True):
count = cat_counts[f]
lvl = _topic_heat(count)
slug = f[:-3] if f.endswith(".md") else f
heatmap_md += (
f"<a class=\"topic-heatcell th-{lvl}\" href=\"./{slug}/\" "
f"title=\"{data[f]['title']}{count} resources\">"
f"<span class=\"topic-heatcell__name\">{data[f]['title']}</span>"
f"<span class=\"topic-heatcell__n\">{count}</span></a>\n"
)
heatmap_md += "</div>\n</div>\n"
heatmap_md += "</div>\n\n"
topic_md = (
"---\n"
"description: \"The complete Nubenetes V2 directory: every curated Kubernetes, "
"Cloud Native and DevOps category by strategic dimension, with resource counts.\"\n"
"---\n"
"# Topic Map\n\n"
"!!! tip \"The complete Nubenetes V2 directory\"\n"
" Every curated category across all strategic dimensions, with the number of "
"AI-selected resources in each. Looking for the landing page? Back to the "
"[**2026 Vision**](/).\n\n"
+ heatmap_md +
"## Full Category Directory\n\n"
"<div class=\"topic-map-grid\" markdown=\"1\">\n\n"
)
for dim in self.dimensions.keys():
if dim in dim_groups:
index_md += f"### {dim}\n"
topic_md += "<section class=\"topic-map-dim\" markdown=\"1\">\n\n"
# h2 (not h3): the page H1 is "Topic Map", so dimensions must
# increment by one level (markdownlint MD001). Also gives the
# right-hand TOC a clean per-dimension index.
topic_md += f"## {dim}\n\n"
for f in sorted(dim_groups[dim]):
index_md += f"- **[{data[f]['title']}](./{f})**\n"
index_md += (
"\n---\n\n"
count = _count_links(data[f]["content"])
topic_md += f"- **[{data[f]['title']}](./{f})** <span class=\"topic-count\">{count}</span>\n"
topic_md += "\n</section>\n\n"
topic_md += "</div>\n"
with open(os.path.join(V2_DIR, "topic-map.md"), "w") as f:
f.write(topic_md)
# --- Methodology: maturity taxonomy + technical impact reference ---------
methodology_md = (
"---\n"
"description: \"How Nubenetes V2 classifies and ranks resources: the maturity "
"taxonomy and technical impact (star) scoring used across the Elite portal.\"\n"
"---\n"
"# Methodology\n\n"
"!!! abstract \"How Nubenetes V2 classifies and ranks resources\"\n"
" The reference legends below explain the maturity tags and the technical "
"impact (star) scores applied to every resource in the portal.\n\n"
"## The Maturity Taxonomy\n\n"
"To ensure industrial-grade precision, every resource in V2 is classified using our proprietary 5-tier maturity system:\n\n"
"| Tag | Description | Engineering Context |\n"
@@ -1190,7 +1492,7 @@ class V2VisionEngine:
"| 🌟 | **Reference Only** | Basic documentation or historical reference without major current impact. | Standard Link |\n"
)
with open(os.path.join(V2_DIR, "index.md"), "w") as f: f.write(index_md)
with open(os.path.join(V2_DIR, "methodology.md"), "w") as f: f.write(methodology_md)
async def render_node(node, depth, base_slug, used_headers, is_intro=False):
md = ""
@@ -1235,47 +1537,83 @@ class V2VisionEngine:
used_headers = {info['long_title']} # Mandate 30: MD024 - Pre-populate with H1 to avoid duplicates
# Formulate V1 counterpart link dynamically
v1_link = f"/v1/{f_name.replace('.md', '/')}"
# Unique per-page SEO meta description (front-matter) so each page no
# longer falls back to the identical global site_description. Material
# emits it as <meta name="description"> + og:description. Enrich it with
# the page's top resource names (long-tail keywords), filtering out
# URL/path-like titles for readability; fall back to a clean template.
def _collect_links(node, acc):
if "__links__" in node:
acc.extend(node["__links__"])
for _k, _v in node.items():
if _k != "__links__" and isinstance(_v, dict):
_collect_links(_v, acc)
return acc
_page_links = _collect_links(info["content"], [])
_page_links.sort(key=lambda x: (-(x.get("stars") or 0), -(int(x["year"]) if str(x.get("year", "")).isdigit() else 0)))
_names, _seen_names = [], set()
for _l in _page_links:
_nm = nuclear_strip(str(_l.get("title", "")))
# Drop emojis/stars and edge punctuation that leak into titles.
_nm = re.sub(r'[\U0001F000-\U0001FAFF☀-➿⭐⭕️]', '', _nm)
_nm = re.sub(r'\s+', ' ', _nm).strip(" -–—·:|")
_low = _nm.lower()
if not (3 <= len(_nm) <= 26):
continue
if "/" in _nm or "http" in _low or any(d in _low for d in (".com", ".io", ".org", ".net", ".dev", ".sh", ".ai", ".xyz")):
continue
if _low in _seen_names:
continue
_seen_names.add(_low)
_names.append(_nm)
if len(_names) >= 2:
break
_seo_title = str(info.get('title') or info['long_title'])[:60].strip()
if len(_names) >= 2:
_seo_desc = (
f"Top {_seo_title} resources for 2026, AI-ranked: {', '.join(_names)} and more "
f"— curated Cloud Native tools, guides and references."
)
else:
_seo_desc = (
f"Curated, AI-ranked {_seo_title} resources for the 2026 Cloud Native "
f"architect: top-tier tools, guides and references ({info['dim']})."
)
_seo_desc = _seo_desc.replace("\\", " ").replace('"', "'").replace("\n", " ").strip()
if len(_seo_desc) > 165:
_seo_desc = _seo_desc[:162].rsplit(" ", 1)[0].rstrip(" ,;:—-") + "."
md = (
f"---\n"
f"description: \"{_seo_desc}\"\n"
f"---\n"
f"# {info['long_title']}\n\n"
f"!!! tip \"Nubenetes V2 Elite Portal\"\n"
f" You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the [**V1 Historical Archive**]({v1_link}).\n\n"
f"!!! info \"Architectural Context\"\n"
f" Detailed reference for {info['long_title']} in the context of {info['dim']}.\n\n"
)
# Generate Table of Contents (TOC)
exempt_files = self.link_rules.get("hierarchy_rules", {}).get("toc_exempt_files", [])
if f_name not in exempt_files:
toc_lines = []
toc_used_headers = {info['long_title']}
def build_toc(node, depth=1):
for name, subnode in sorted(node.items()):
if name == "__links__": continue
clean_name = clean_toc_text(name)
h_name = clean_name
counter = 1
while h_name in toc_used_headers:
h_name = f"{clean_name} ({counter})"
counter += 1
toc_used_headers.add(h_name)
slug = h_name.lower().replace(' ', '-')
slug = re.sub(r'[^a-z0-9-]', '', slug)
slug = re.sub(r'-+', '-', slug).strip('-')
indent = " " * (depth - 1)
if depth == 1:
toc_lines.append(f"1. [{clean_name}](#{slug})")
else:
toc_lines.append(f"{indent}- [{clean_name}](#{slug})")
build_toc(subnode, depth + 1)
build_toc(info["content"], 1)
if toc_lines:
md += "## Table of Contents\n\n"
md += "\n".join(toc_lines) + "\n\n"
# Provider hub: surface the substantial sub-pages that remain after
# consolidation so the landing page is a navigable index, not a stub.
_hub_slug = f_name.replace(".md", "")
if _hub_slug in self.subpage_hubs:
_children = [
(c, lbl) for (c, lbl) in self.subpage_hubs[_hub_slug]
if (f"{c}.md" in data) or os.path.exists(os.path.join(V2_DIR, f"{c}.md"))
]
if _children:
_child_links = " · ".join(f"[{lbl}](./{c}/)" for (c, lbl) in _children)
md += (
f"!!! abstract \"Deep-Dive Topic Pages\"\n"
f" {_child_links}\n\n"
)
# In-page Markdown Table of Contents intentionally omitted.
# The MkDocs Material theme renders a native, sticky "On this page" TOC
# (right sidebar) from the headings below, so a duplicated Markdown TOC
# only added redundant scroll — extreme on large pages (e.g. 250+ links).
# See v2-mkdocs.yml (toc.integrate removed) and static/v2_filter.js (?v=2.9.12).
if f_name == "introduction.md":
md += "## Vision 2026\n\n!!! quote \"The Evolution of Autonomy\"\n From manual curation to agentic intelligence.\n\n### Ecosystem Map\n\n\n```mermaid\ngraph TD\n A[Foundations] --> B[AI & Intelligence]\n A --> C[Hardened Infra]\n B --> D[Agentic Curation]\n C --> E[Enterprise Stability]\n D --> F[Nubenetes Portal]\n E --> F\n```\n\n\n"
@@ -1284,9 +1622,9 @@ class V2VisionEngine:
"## The Nubenetes Engineering Manifest\n\n"
"!!! quote \"The Positive Sum Game\"\n"
" ==*\"Open Source is most successful when is played as a positive sum game\" (Sarah Novotny)*==\n\n"
"<div style=\"display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 24px 0;\">\n"
" <iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/GZl7N8sXyEo\" title=\"Cowboy Bebop - Tank!\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>\n"
" <iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/t_hdOVsdRSE\" title=\"Jimmy Sax - Time\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>\n"
"<div class=\"video-embed-grid\">\n"
" <div class=\"video-embed\"><iframe src=\"https://www.youtube-nocookie.com/embed/GZl7N8sXyEo\" title=\"Cowboy Bebop - Tank!\" loading=\"lazy\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe></div>\n"
" <div class=\"video-embed\"><iframe src=\"https://www.youtube-nocookie.com/embed/t_hdOVsdRSE\" title=\"Jimmy Sax - Time\" loading=\"lazy\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe></div>\n"
"</div>\n\n"
"### 1. The Genesis: Munich 2018\n"
"Nubenetes was forged in the internals of a massive Cloud Native transformation for a **major multinational car manufacturer** in Munich. Coordinating hundreds of microservices, thousands of developers, and millions of end-users taught us a fundamental truth: **Standardization, Automation, and GitOps are not \"best practices\"—they are survival requirements.**\n\n"
@@ -1387,7 +1725,16 @@ class V2VisionEngine:
if md != existing_content:
with open(target_path, "w") as f: f.write(md)
async def _generate_global_tag_index(self, v2_structure: Dict[str, Dict]):
def _aggregate_tags(self, v2_structure: Dict[str, Dict]):
"""Collect every active resource's tags into deterministic, slug-stable
metadata shared by the Technical Tags page and the index Label Heatmap.
Returns (sorted_tags, tag_meta, by_tag) where tag_meta[tag] holds
``display``, ``slug``, ``count`` and ``kind`` (maturity | language |
domain). The slug logic is identical to (and deterministic with) what the
Tags page renders, so the heatmap on the index can deep-link to the right
``/tags/#slug`` section even though it is generated in a separate pass.
"""
active_links = {}
def collect_links(node):
if "__links__" in node:
@@ -1406,9 +1753,15 @@ class V2VisionEngine:
tags_to_process = list(l.get("tags", []))
# Include language indexing for non-English resources (Mandate 10)
lang = l.get("language", "English")
# Skip non-language values the AI sometimes emits, so the tag index
# is not polluted with meaningless "X Content" buckets.
_lang_junk = {
"english", "en", "n/a", "na", "none", "null", "unknown", "",
"not applicable", "multiple", "multi-language", "polyglot", "various",
}
if lang.lower() in ["spanish", "es", "english/spanish"]:
tags_to_process.append("[SPANISH CONTENT]")
elif lang.lower() != "english" and lang.lower() != "n/a" and lang.lower() != "none":
elif lang.lower() not in _lang_junk:
tags_to_process.append(f"[{lang.upper()} CONTENT]")
for t in tags_to_process:
@@ -1425,14 +1778,91 @@ class V2VisionEngine:
"[LEGACY]",
"[SPANISH CONTENT]"
]
sorted_tags = []
for st in standard_order:
if st in by_tag:
sorted_tags.append(st)
custom_tags = sorted([t for t in by_tag.keys() if t not in standard_order])
sorted_tags.extend(custom_tags)
sorted_tags = [st for st in standard_order if st in by_tag]
sorted_tags.extend(sorted(t for t in by_tag.keys() if t not in standard_order))
# Precompute display name + UNIQUE slug for every tag, shared by both the
# grouped TOC and the section headers so anchors always match. This fixes
# collisions where C / C# / C++ all slugged to "c-content" (broken links).
def _tag_display(tag):
d = tag.replace("[", "").replace("]", "").replace("&", "and").title()
if d.upper() in ["EBPF", "WASM", "GITOPS", "IAC", "SRE", "AI", "MCP", "DB", "MLOPS"]:
d = d.upper()
return d
_seen_slugs = set()
def _tag_slug(tag):
s = tag.replace("[", "").replace("]", "").lower()
s = s.replace("#", "-sharp").replace("++", "-plus-plus").replace("&", "-and-").replace("/", "-")
s = re.sub(r'[^a-z0-9-]', '-', s)
s = re.sub(r'-+', '-', s).strip('-')
base, n = s, 1
while s in _seen_slugs:
n += 1
s = f"{base}-{n}"
_seen_slugs.add(s)
return s
def _tag_kind(tag):
if tag in standard_order:
return "maturity"
if tag.endswith("CONTENT]"):
return "language"
return "domain"
tag_meta = {
tag: {
"display": _tag_display(tag),
"slug": _tag_slug(tag),
"count": len(by_tag[tag]),
"kind": _tag_kind(tag),
}
for tag in sorted_tags
}
return sorted_tags, tag_meta, by_tag
def _render_tag_heatmap(self, sorted_tags, tag_meta, href_base: str = "", intro: str = None) -> str:
"""Confluence-style "popular labels" Label Heatmap: every label is listed
alphabetically and sized/coloured by how many resources carry it, so the
most-used tags read biggest/warmest. Sizing uses a LOG scale because counts
span ~1..2800; a linear scale would collapse everything except the few giant
maturity tags into the smallest bucket. Six levels map onto .v2-heat-1..6.
``href_base`` is prefixed before each ``#slug`` so the same cloud can live on
the Tags page (same-page anchors, "") or the index (cross-page, "/tags/").
"""
counts = [tag_meta[t]["count"] for t in sorted_tags]
if not counts:
return ""
lmin, lmax = math.log(min(counts)), math.log(max(counts))
def _heat_level(count):
if lmax == lmin:
return 3
return 1 + round((math.log(count) - lmin) / (lmax - lmin) * 5) # 1..6
if intro is None:
intro = (
"Bigger, warmer labels cover more resources. "
"Click any label to jump to its section below."
)
md = f"## Label Heatmap\n\n{intro}\n\n"
md += '<div class="v2-tag-heatmap">\n'
for t in sorted(sorted_tags, key=lambda x: tag_meta[x]["display"].lower()):
m = tag_meta[t]
disp = m["display"].replace(" Content", "")
lvl = _heat_level(m["count"])
md += (
f'<a class="v2-heat-tag v2-heat-{lvl}" href="{href_base}#{m["slug"]}" '
f'title="{m["count"]} resources">{disp}'
f'<span class="v2-heat-n">{m["count"]}</span></a>\n'
)
md += "</div>\n\n"
return md
async def _generate_global_tag_index(self, v2_structure: Dict[str, Dict]):
sorted_tags, tag_meta, by_tag = self._aggregate_tags(v2_structure)
md = (
"# Technical Tags Index\n\n"
@@ -1441,28 +1871,55 @@ class V2VisionEngine:
"!!! info \"Universal Tag Index\"\n"
" Browse all V2 resources grouped by maturity levels and technical domains.\n\n"
)
# Build TOC
toc_lines = []
for tag in sorted_tags:
tag_display = tag.replace("[", "").replace("]", "").replace("&", "and").title()
if tag_display.upper() in ["EBPF", "WASM", "GITOPS", "IAC", "SRE", "AI", "MCP", "DB", "MLOPS"]:
tag_display = tag_display.upper()
slug = tag_display.lower().replace(" ", "-")
slug = re.sub(r'[^a-z0-9-]', '', slug)
slug = re.sub(r'-+', '-', slug).strip('-')
toc_lines.append(f"1. [{tag_display}](#{slug}) ({len(by_tag[tag])} resources)")
md += "## Table of Contents\n\n" + "\n".join(toc_lines) + "\n\n"
def _count_label(n):
return f"{n} resource" + ("" if n == 1 else "s")
# Partition custom tags: language/format ("X CONTENT") vs technical domains,
# so the long, low-signal language tail does not bury the maturity tags.
maturity_tags = [t for t in sorted_tags if tag_meta[t]["kind"] == "maturity"]
lang_tags = sorted(
[t for t in sorted_tags if tag_meta[t]["kind"] == "language"],
key=lambda t: -tag_meta[t]["count"],
)
other_tags = sorted(
[t for t in sorted_tags if tag_meta[t]["kind"] == "domain"],
key=lambda t: -tag_meta[t]["count"],
)
# Label Heatmap at the top of the Tags page (same-page anchors).
md += self._render_tag_heatmap(sorted_tags, tag_meta, href_base="")
# Build a grouped TOC: maturity as a clean numbered list; domains and the
# language/format tail as compact, count-sorted inline pill rows.
md += "## Table of Contents\n\n"
if maturity_tags:
md += "### Maturity and Quality\n\n"
for t in maturity_tags:
m = tag_meta[t]
md += f"1. [{m['display']}](#{m['slug']}) ({_count_label(m['count'])})\n"
md += "\n"
if other_tags:
md += "### Technical Domains\n\n"
md += " · ".join(
f"[{tag_meta[t]['display']}](#{tag_meta[t]['slug']}) ({tag_meta[t]['count']})"
for t in other_tags
) + "\n\n"
if lang_tags:
md += "### Language and Format\n\n"
md += "Resources indexed by their primary source language or document format.\n\n"
md += " · ".join(
f"[{tag_meta[t]['display'].replace(' Content', '')}](#{tag_meta[t]['slug']}) ({tag_meta[t]['count']})"
for t in lang_tags
) + "\n\n"
for tag in sorted_tags:
tag_display = tag.replace("[", "").replace("]", "").replace("&", "and").title()
if tag_display.upper() in ["EBPF", "WASM", "GITOPS", "IAC", "SRE", "AI", "MCP", "DB", "MLOPS"]:
tag_display = tag_display.upper()
# Wrap section inside a .v2-tag-section div and details block for performance
m = tag_meta[tag]
tag_display = m["display"]
# Wrap section inside a .v2-tag-section div and details block for performance.
# Explicit {#slug} keeps the heading anchor unique and TOC-matching.
md += f"<div class=\"v2-tag-section\" markdown=\"1\">\n\n"
md += f"## {tag_display}\n\n"
md += f"## {tag_display} {{#{m['slug']}}}\n\n"
total_count = len(by_tag[tag])
if total_count > 100:
summary_text = f"Click to view top 100 of {total_count} resources under {tag_display}"
@@ -1502,26 +1959,43 @@ class V2VisionEngine:
"nav:",
" - \"🔙 Back to V1 (Exhaustive)\": https://nubenetes.com/v1/",
" - \"The 2026 Vision\": index.md",
" - \"Technical Tags\": tags.md",
# Portal Guide: collapsible hub for the site-orientation / meta
# pages — the topic directory, how the portal is curated, the tag
# index and the project About. about.md is pulled out of its
# Architectural Foundations dimension here (see _FIXED_PAGES below).
" - \"Portal Guide\":",
" - \"Topic Map\": topic-map.md",
" - \"Methodology\": methodology.md",
" - \"Technical Tags\": tags.md",
" - \"About\": about.md",
# Videos: prominent top-level dropdown, kept high in the nav with
# its category subpages as children.
" - \"Agentic Video Hub\":",
" - videos/index.md",
" - \"AI Agents and MCP\": videos/ai-agents.md",
" - \"DevOps, IaC, and SRE\": videos/devops-iac.md",
" - \"Cloud Native Core\": videos/cloud-native.md",
" - \"Fundamentals\": videos/fundamentals.md",
" - \"Intelligence Digest\":",
" - \"Tech & Cloud Digest\": tech-digest.md",
" - \"Industry & Geo Digest\": industry-digest.md",
" - \"Agentic Video Hub\":",
" - videos/index.md",
" - \"AI Agents and MCP\": videos/ai-agents.md",
" - \"DevOps, IaC, and SRE\": videos/devops-iac.md",
" - \"Cloud Native Core\": videos/cloud-native.md",
" - \"Fundamentals\": videos/fundamentals.md"
" - \"Industry & Geo Digest\": industry-digest.md"
]
# Topic pages promoted into a fixed header group above; skip them in
# the dimension loop so they are not also listed under their dimension.
_FIXED_PAGES = {"about.md"}
dim_groups = {}
for f_name, info in data.items():
dim_groups.setdefault(info["dim"], []).append(f_name)
for dim in self.dimensions.keys():
if dim in dim_groups:
dim_files = [f for f in sorted(dim_groups[dim]) if f not in _FIXED_PAGES]
if not dim_files:
continue
dim_nav = [f" - \"{dim}\":"]
for f in sorted(dim_groups[dim]):
for f in dim_files:
dim_nav.append(f" - \"{data[f]['title']}\": {f}")
nav.extend(dim_nav)
+4 -10
View File
@@ -181,25 +181,19 @@ def generate_v2_videos():
" You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the [**V1 Historical Archive**](/v1/).",
"",
f"Welcome to the **{theme_title}** section of the V2 Video Hub. Explore curated high-density videos with architectural summaries.",
"",
"## Table of Contents",
""
]
# Group by Technology for TOC
# In-page Markdown Table of Contents intentionally omitted: it duplicates
# Material's native right-column "On this page" TOC (toc.follow). We still
# build the ordered technology list below because it drives the rendering
# order of the grouped video sections.
techs = []
for v in videos:
tech = v.get("technology", "Cloud Native")
if tech not in techs:
techs.append(tech)
for idx, tech in enumerate(techs, 1):
clean_tech = clean_header(tech)
slug = get_slug(tech)
content.append(f"{idx}. [{clean_tech}](#{slug})")
content.append("")
# Render Grouped Videos
grouped_by_tech = {}
for v in videos:
-8
View File
@@ -6,14 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Chrome and Firefox DevTools. HTTP Protocols and WebSockets in the context of Developer Ecosystem.
## Table of Contents
1. [Developer Workspace](#developer-workspace)
- [Command-Line Tooling](#command-line-tooling)
- [JSON and YAML Manipulators](#json-and-yaml-manipulators)
- [Diagnostics and Debugging](#diagnostics-and-debugging)
- [Browser Developer Tools](#browser-developer-tools)
## Developer Workspace
### Command-Line Tooling
+4 -65
View File
@@ -1,3 +1,6 @@
---
description: "Top Googlecloudplatform resources for 2026, AI-ranked: Google Cloud Buildpacks, Google Agents CLI and more — curated Cloud Native tools, guides and references."
---
# Google Cloud Platform
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,70 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Google Cloud Platform in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [AI and Orchestration](#ai-and-orchestration)
- [Agentic Workflows](#agentic-workflows)
- [Command-Line Tools](#command-line-tools)
1. [Application Development](#application-development)
- [API Management](#api-management)
- [Apigee Integration](#apigee-integration)
- [Workflows](#workflows)
- [Orchestration](#orchestration)
1. [Cloud Infrastructure](#cloud-infrastructure)
- [Compute](#compute)
- [Architectural Decision](#architectural-decision)
- [Containers](#containers)
- [Google Kubernetes Engine](#google-kubernetes-engine)
- [Databases](#databases)
- [Cloud Spanner](#cloud-spanner)
- [GCP Ecosystem](#gcp-ecosystem)
- [CICD Pipelines](#cicd-pipelines)
- [DevOps Frameworks](#devops-frameworks)
- [Developer Tools](#developer-tools)
- [IDE Integrations](#ide-integrations)
- [High Availability](#high-availability)
- [Architecture](#architecture)
- [Microservices](#microservices)
- [Google Cloud](#google-cloud)
- [Networking](#networking)
- [Private Service Connect](#private-service-connect)
- [Public Cloud](#public-cloud)
- [Google Cloud](#google-cloud-1)
- [Security](#security)
- [IAM](#iam)
- [PKI](#pki)
- [Secrets Management](#secrets-management)
- [Serverless](#serverless)
- [Cloud Run](#cloud-run)
- [VPC Networking](#vpc-networking)
1. [DevOps and Delivery](#devops-and-delivery)
- [CICD](#cicd)
- [Containerization](#containerization)
- [Lifecycle Management](#lifecycle-management)
- [Continuous Delivery](#continuous-delivery)
- [GKE](#gke)
- [GKE GA](#gke-ga)
- [Industry Assessment](#industry-assessment)
1. [DevSecOps](#devsecops)
- [CICD Pipelines](#cicd-pipelines-1)
- [Hybrid Cloud Architecture](#hybrid-cloud-architecture)
1. [DevSecOps and IDEs](#devsecops-and-ides)
- [Google Cloud Code](#google-cloud-code)
- [Developer Experience](#developer-experience)
1. [Hybrid and Multi-Cloud](#hybrid-and-multi-cloud)
- [Anthos](#anthos)
- [Ingress](#ingress)
- [Strategic Guide](#strategic-guide)
- [Windows Containers](#windows-containers)
1. [Networking and Security](#networking-and-security)
- [Service Discovery](#service-discovery)
- [Registry](#registry)
- [Service Mesh](#service-mesh)
- [Traffic Management](#traffic-management)
- [Traffic Management](#traffic-management-1)
- [Load Balancing](#load-balancing)
## AI and Orchestration
### Agentic Workflows
@@ -227,7 +166,7 @@
- **(2021)** [cloud.google.com: What is Cloud Load Balancing?](https://cloud.google.com/blog/topics/developers-practitioners/what-cloud-load-balancing) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explains the design of GCP's global, distributed Anycast Cloud Load Balancing system. Illustrates how Layer 4 and Layer 7 load balancers distribute traffic dynamically across regions with minimal latency, auto-scaling up to millions of requests per second.
---
💡 **Explore Related:** [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md) | [AWS Architecture](./aws-architecture.md)
💡 **Explore Related:** [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md) | [AWS](./aws.md)
🔗 **See Also:** [About](./about.md) | [Postman](./postman.md)
+6 -14
View File
@@ -1,3 +1,6 @@
---
description: "Top About resources for 2026, AI-ranked: Postman, AWX and more — curated Cloud Native tools, guides and references."
---
# About Nubenetes
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,25 +9,14 @@
!!! info "Architectural Context"
Detailed reference for About Nubenetes in the context of Architectural Foundations.
## Table of Contents
1. [Automation and Orchestration](#automation-and-orchestration)
- [API Orchestration](#api-orchestration)
- [Postman](#postman)
- [Configuration Management](#configuration-management)
- [Ansible AWX](#ansible-awx)
- [Ansible Kubernetes Module](#ansible-kubernetes-module)
- [Infrastructure as Code](#infrastructure-as-code)
- [Terraform Boilerplates](#terraform-boilerplates)
## The Nubenetes Engineering Manifest
!!! quote "The Positive Sum Game"
==*"Open Source is most successful when is played as a positive sum game" (Sarah Novotny)*==
<div style="display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 24px 0;">
<iframe width="480" height="270" src="https://www.youtube.com/embed/GZl7N8sXyEo" title="Cowboy Bebop - Tank!" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<iframe width="480" height="270" src="https://www.youtube.com/embed/t_hdOVsdRSE" title="Jimmy Sax - Time" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
<div class="video-embed-grid">
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/GZl7N8sXyEo" title="Cowboy Bebop - Tank!" loading="lazy" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/t_hdOVsdRSE" title="Jimmy Sax - Time" loading="lazy" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
</div>
### 1. The Genesis: Munich 2018
+3 -12
View File
@@ -1,3 +1,6 @@
---
description: "Top AI Agents MCP resources for 2026, AI-ranked: vLLM on Kubernetes, LocalAI and more — curated Cloud Native tools, guides and references."
---
# AI Agents and Model Context Protocol (MCP) for Kubernetes
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,18 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AI Agents and Model Context Protocol (MCP) for Kubernetes in the context of AI.
## Table of Contents
1. [AI Infrastructure](#ai-infrastructure)
- [Distributed Computing](#distributed-computing)
- [Kube-Ray](#kube-ray)
- [LLM Serving](#llm-serving)
- [LocalAI](#localai)
- [vLLM](#vllm)
1. [Cloud Native Operations](#cloud-native-operations)
- [AI AIOps](#ai-aiops)
- [Kubernetes Troubleshooting](#kubernetes-troubleshooting)
## AI Infrastructure
### Distributed Computing
+3 -30
View File
@@ -1,3 +1,6 @@
---
description: "Top AI resources for 2026, AI-ranked: Claude Code Templates, Skills for Real Engineers and more — curated Cloud Native tools, guides and references."
---
# Artificial Intelligence
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,36 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Artificial Intelligence in the context of AI.
## Table of Contents
1. [AI and Orchestration](#ai-and-orchestration)
- [Agentic Workflows](#agentic-workflows)
- [Command-Line Tools](#command-line-tools)
1. [Artificial Intelligence](#artificial-intelligence-1)
- [Generative AI Engineering](#generative-ai-engineering)
- [API Integration Patterns](#api-integration-patterns)
- [Architecture Patterns](#architecture-patterns)
1. [Cloud Native Operations](#cloud-native-operations)
- [AI AIOps](#ai-aiops)
- [Kubernetes Troubleshooting](#kubernetes-troubleshooting)
- [AI-Powered Operations AIOps](#ai-powered-operations-aiops)
- [Kubernetes Troubleshooting](#kubernetes-troubleshooting-1)
- [Infrastructure as Code](#infrastructure-as-code)
- [AI-Assisted IaC](#ai-assisted-iac)
- [Kubernetes Orchestration](#kubernetes-orchestration)
- [AI Workloads on K8s](#ai-workloads-on-k8s)
1. [Container Orchestration](#container-orchestration)
- [Azure Kubernetes Service](#azure-kubernetes-service)
- [AKS Fleet Manager](#aks-fleet-manager)
1. [Developer Tooling](#developer-tooling)
- [AI Code Assistants](#ai-code-assistants)
- [Prompt Templates](#prompt-templates)
1. [Software Engineering](#software-engineering)
- [AI-Assisted Development](#ai-assisted-development)
- [Multi-Repository Architecture](#multi-repository-architecture)
- [Professional Development](#professional-development)
- [Core Architectures](#core-architectures)
## AI and Orchestration
### Agentic Workflows
+3 -6
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Angular resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Developer Ecosystem)."
---
# Angular framework
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,12 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Angular framework in the context of Developer Ecosystem.
## Table of Contents
1. [App Development](#app-development)
- [Frontend](#frontend)
- [Continuous Delivery](#continuous-delivery)
## App Development
### Frontend
+3 -25
View File
@@ -1,3 +1,6 @@
---
description: "Top Ansible resources for 2026, AI-ranked: AWX, AWX Operator and more — curated Cloud Native tools, guides and references."
---
# Configuration Management. Ansible
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,31 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Configuration Management. Ansible in the context of Hardened Infrastructure.
## Table of Contents
1. [Automation](#automation)
- [API Integration](#api-integration)
- [Ansible HTTP](#ansible-http)
1. [Automation and Orchestration](#automation-and-orchestration)
- [Configuration Management](#configuration-management)
- [Ansible AWX](#ansible-awx)
1. [Container Orchestration](#container-orchestration)
- [Kubernetes](#kubernetes)
- [Ansible Integration](#ansible-integration)
- [Deployments](#deployments)
- [Helm](#helm)
- [Helm Integration](#helm-integration)
- [Object Management](#object-management)
- [Operators](#operators)
1. [Infrastructure as Code](#infrastructure-as-code)
- [Ansible](#ansible)
- [Application Servers](#application-servers)
- [Comparison](#comparison)
- [Containers](#containers)
- [NGINX Automation](#nginx-automation)
- [Deployment Tools](#deployment-tools)
- [Application Deployment](#application-deployment)
## Automation
### API Integration
+3 -78
View File
@@ -1,3 +1,6 @@
---
description: "Top API resources for 2026, AI-ranked: gRPC, GraphQL and more — curated Cloud Native tools, guides and references."
---
# APIs with SOAP, REST and gRPC
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,84 +9,6 @@
!!! info "Architectural Context"
Detailed reference for APIs with SOAP, REST and gRPC in the context of Developer Ecosystem.
## Table of Contents
1. [API Architectures](#api-architectures)
- [GraphQL](#graphql)
- [Adoption](#adoption)
- [Federation](#federation)
- [Hasura](#hasura)
- [Specification](#specification)
- [Patterns](#patterns)
- [Comparison](#comparison)
- [REST](#rest)
- [Design Principles](#design-principles)
- [Implementation](#implementation)
- [Introduction](#introduction)
- [RPC](#rpc)
- [Open-RPC](#open-rpc)
- [gRPC](#grpc)
- [gRPC-Web](#grpc-web)
- [Real-Time](#real-time)
- [Socket.IO](#socketio)
- [WebSockets](#websockets)
1. [API Management](#api-management)
- [Platform Engineering](#platform-engineering)
- [API Strategy](#api-strategy)
1. [API Security](#api-security)
- [Design](#design)
- [Best Practices](#best-practices)
- [Enterprise](#enterprise)
- [Implementation](#implementation-1)
- [Protection](#protection)
- [Tools](#tools)
- [Threat-Modeling](#threat-modeling)
- [Risks](#risks)
1. [API Testing](#api-testing)
- [Performance](#performance)
- [Continuous Integration](#continuous-integration)
1. [API Tooling](#api-tooling)
- [Codegen](#codegen)
- [OpenAPI](#openapi)
1. [Application Integration](#application-integration)
- [API Design](#api-design)
- [API Lifecycle](#api-lifecycle)
- [Architecture Comparisons](#architecture-comparisons)
- [Hands-on Deployment](#hands-on-deployment)
- [Protocols and Formats](#protocols-and-formats)
- [Strategic Governance](#strategic-governance)
- [API Gateways](#api-gateways)
- [Architecture Comparisons](#architecture-comparisons-1)
- [Best Practices](#best-practices-1)
1. [Architecture](#architecture)
- [API Management](#api-management-1)
- [SaaS Platforms](#saas-platforms)
1. [Cloud Providers](#cloud-providers)
- [AWS](#aws)
- [Serverless APIs](#serverless-apis)
1. [Enterprise Architecture](#enterprise-architecture)
- [Case Studies](#case-studies)
- [Financial Sector](#financial-sector)
1. [Event-Driven](#event-driven)
- [AsyncAPI](#asyncapi)
- [Simulation](#simulation)
- [Specification](#specification-1)
- [Trends](#trends)
1. [Microservices](#microservices)
- [Design Patterns](#design-patterns)
- [Process Automation](#process-automation)
1. [Observability](#observability)
- [Data Ingestion](#data-ingestion)
- [WebSockets IoT](#websockets-iot)
1. [Quality Assurance](#quality-assurance)
- [API Design](#api-design-1)
- [Network Debugging](#network-debugging)
1. [Software Engineering](#software-engineering)
- [API Design](#api-design-2)
- [Industry Surveys](#industry-surveys)
- [Protocol Selection](#protocol-selection)
- [SOAP vs REST](#soap-vs-rest)
## API Architectures
### GraphQL
+3 -6
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Appointment Scheduling resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Career & Industry)."
---
# Appointment Scheduling Software
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,12 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Appointment Scheduling Software in the context of Career & Industry.
## Table of Contents
1. [Collaborative Operations](#collaborative-operations)
- [Workspace Scheduling](#workspace-scheduling)
- [Open Source Tools](#open-source-tools)
## Collaborative Operations
### Workspace Scheduling
+3 -34
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Argo resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Engineering Pipeline)."
---
# Argo Declarative GitOps for Kubernetes
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,40 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Argo Declarative GitOps for Kubernetes in the context of Engineering Pipeline.
## Table of Contents
1. [GitOps and CD](#gitops-and-cd)
- [Argo Rollouts](#argo-rollouts)
- [Blue-Green Deployment](#blue-green-deployment)
- [Canary Deployment](#canary-deployment)
- [Configuration Management](#configuration-management)
- [Progressive Delivery](#progressive-delivery)
- [ArgoCD](#argocd)
- [Patterns](#patterns)
- [App-of-Apps](#app-of-apps)
- [Workload Management](#workload-management)
- [Demos](#demos)
- [CICD Integration](#cicd-integration)
1. [Kubernetes GitOps and Packaging](#kubernetes-gitops-and-packaging)
- [Argo Project Ecosystem](#argo-project-ecosystem)
- [Event-Driven Automation](#event-driven-automation)
1. [Platform Engineering](#platform-engineering)
- [ArgoCD](#argocd-1)
- [Internal Developer Platforms](#internal-developer-platforms)
- [CICD Migration](#cicd-migration)
- [Argo Workflows](#argo-workflows)
- [Jenkins](#jenkins)
- [GitOps](#gitops)
- [AWS EKS](#aws-eks)
- [Tekton](#tekton)
- [GitHub Actions](#github-actions)
- [AWS EKS](#aws-eks-1)
- [Terraform Integration](#terraform-integration)
- [Data Infrastructure](#data-infrastructure)
- [Progressive Delivery](#progressive-delivery-1)
- [DNS Routing](#dns-routing)
- [Blue-Green Deployment](#blue-green-deployment-1)
## GitOps and CD
### Argo Rollouts
+3 -9
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Architecture resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Architecture and Best Practices
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,15 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Architecture and Best Practices in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Architecture](#cloud-architecture)
- [Case Studies](#case-studies)
- [Enterprise Scale](#enterprise-scale)
1. [Kubernetes and Platform Engineering](#kubernetes-and-platform-engineering)
- [Modernization Tools](#modernization-tools)
- [Microservice Migration](#microservice-migration)
## Cloud Architecture
### Case Studies
-39
View File
@@ -6,45 +6,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Backup and Migrations. Design for failure. Disaster Recovery in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [Cloud Architecture](#cloud-architecture)
- [AWS Solutions](#aws-solutions)
- [Disaster Recovery](#disaster-recovery)
1. [Cloud Migration](#cloud-migration)
- [AWS Competency](#aws-competency)
- [Enterprise Migration](#enterprise-migration)
- [AWS MGN](#aws-mgn)
- [Multi-Region](#multi-region)
- [Multi-Account Strategy](#multi-account-strategy)
- [AWS Resources](#aws-resources)
- [VM ImportExport](#vm-importexport)
- [On-Premises](#on-premises)
1. [Data and Analytics](#data-and-analytics)
- [Data Protection](#data-protection)
- [AWS Backup](#aws-backup)
1. [Infrastructure](#infrastructure)
- [Disaster Recovery](#disaster-recovery-1)
- [AWS Architectures](#aws-architectures)
- [Single Region](#single-region)
- [AWS Compute](#aws-compute)
- [EC2](#ec2)
- [AWS Services](#aws-services)
- [AWS Backup](#aws-backup-1)
- [Multi-Region](#multi-region-1)
- [S3 Protection](#s3-protection)
- [AWS Storage](#aws-storage)
- [Automation](#automation)
- [EBS Snapshots](#ebs-snapshots)
- [Veeam Integration](#veeam-integration)
- [Chaos Engineering](#chaos-engineering)
- [Cloud Integrations](#cloud-integrations)
- [DNS Routing](#dns-routing)
- [Resilience Design](#resilience-design)
## Architectural Foundations
### Kubernetes Tools
+6 -22
View File
@@ -1,40 +1,24 @@
---
description: "Curated, AI-ranked AWS Containers resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# AWS Containers
!!! tip "Nubenetes V2 Elite Portal"
You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the [**V1 Historical Archive**](/v1/aws-containers/).
!!! info "Architectural Context"
Detailed reference for AWS Containers in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS](#aws)
- [Container Compute](#container-compute)
- [Container Registries](#container-registries)
- [Continuous Deployment](#continuous-deployment)
- [Security Practices](#security-practices)
Detailed reference for AWS Containers in the context of Architectural Foundations.
## Cloud Infrastructure
### AWS
#### Container Compute
- **(2024)** [Amazon ECS-optimized AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Reference manual for the AWS-engineered Amazon Machine Image (AMI) preconfigured with the ECS agent, Docker runtime, and optimal container configurations. Utilizing this specialized OS image ensures maximum orchestration performance, reliable telemetry, and security compliance out of the box.
#### Container Registries
- **(2024)** [Amazon EC2 Container Registry Documentation](https://aws.amazon.com/es/documentation/ecr) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official engineering reference for Amazon ECR, a fully managed OCI-compliant container registry. It covers critical security integrations, image scanning capabilities, cross-region replication configurations, and direct integration with Amazon ECS/EKS to facilitate safe, high-speed container pull actions.
#### Continuous Deployment
- **(2021)** [Automate rollbacks for Amazon ECS rolling deployments with CloudWatch alarms](https://aws.amazon.com/blogs/containers/automate-rollbacks-for-amazon-ecs-rolling-deployments-with-cloudwatch-alarms) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An architectural guide outlining automated deployment rollback capabilities within ECS rolling deployments. It illustrates how CloudWatch alarms can monitor application health (e.g., HTTP 5xx rates) during active deployments and automatically trigger rollbacks to a previously stable revision to maintain high availability.
#### Security Practices
- **(2025)** [**awslabs/amazon-ecr-credential-helper: Amazon ECR Docker Credential Helper**](https://github.com/awslabs/amazon-ecr-credential-helper) <span class='md-tag md-tag--info'>⭐ 2703</span> <svg class="v2-sparkline" width="50" height="15" viewBox="0 0 50 15" style="vertical-align: middle; display: inline-block; margin-left: 6px;" title="Activity Trend"><defs><linearGradient id="spark-grad-8a9b764e" x1="0" y1="0" x2="1" y2="0"><stop offset="0%" stop-color="rgba(34, 211, 238, 0.2)" /><stop offset="100%" stop-color="var(--md-accent-fg-color)" /></linearGradient></defs><path class="v2-sparkline-path" d="M 0 4 L 10 10 L 20 2 L 30 7 L 40 12 L 50 5" fill="none" stroke="url(#spark-grad-8a9b764e)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /><circle cx="50" cy="5" r="2" fill="var(--md-accent-fg-color)" /></svg> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[ENTERPRISE-STABLE]</span> — A Docker credential helper that handles seamless, transparent IAM-based authentication for Amazon ECR. By removing the need to run periodic 'aws ecr get-login-password' cron jobs, it enhances runtime security by integrating directly with standard IAM Instance Profiles and local AWS config files.
- **(2022)** [dev.to: Sharing secrets to ECS in an AWS multi-account architecture](https://dev.to/aws-builders/sharing-secrets-to-ecs-in-an-aws-multi-account-architecture-5h1i) <span class='md-tag md-tag--warning'>[TERRAFORM CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A technical blueprint for cross-account secret management for Amazon ECS using AWS Secrets Manager and Systems Manager (SSM) Parameter Store. It provides security engineers with an architectural approach to maintain strict separation of concerns, principal-of-least-privilege IAM policies, and cross-account IAM role assumption.
---
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md)
💡 **Explore Related:** [About](./about.md) | [Demos](./demos.md) | [Kubernetes](./kubernetes.md)
🔗 **See Also:** [About](./about.md) | [Postman](./postman.md)
🔗 **See Also:** [Angular](./angular.md) | [Googlecloudplatform](./GoogleCloudPlatform.md)
+3 -8
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Data resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Big Data
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,14 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Big Data in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS](#aws)
- [Event Streaming](#event-streaming)
- [Event Streaming](#event-streaming-1)
- [Comparison](#comparison)
## Cloud Infrastructure
### AWS
+6 -17
View File
@@ -1,23 +1,13 @@
---
description: "Curated, AI-ranked AWS Databases resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# AWS RDS Databases
!!! tip "Nubenetes V2 Elite Portal"
You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the [**V1 Historical Archive**](/v1/aws-databases/).
!!! info "Architectural Context"
Detailed reference for AWS RDS Databases in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS Databases](#aws-databases)
- [Amazon Aurora](#amazon-aurora)
- [Amazon RDS](#amazon-rds)
- [Databases](#databases)
- [NoSQL](#nosql)
- [Serverless Architecture](#serverless-architecture)
1. [Cloud Native](#cloud-native)
- [Kubernetes Operators](#kubernetes-operators)
- [Managed Databases](#managed-databases)
Detailed reference for AWS RDS Databases in the context of Architectural Foundations.
## Cloud Infrastructure
@@ -30,7 +20,6 @@
- **(2026)** [==Working with PostgreSQL, MySQL, and MariaDB Read Replicas - Amazon==](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — Exhaustive official guide detailing the design, limits, and monitoring of read-replicas for open-source engines in AWS RDS. Covers cross-region replication strategies and promoting a replica to master during failovers.
- **(2026)** [==Working with an Amazon RDS DB Instance in a VPC==](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — The foundational AWS RDS VPC networking architecture reference. Analyzes subnet group designations, public versus private access configurations, and network isolation topologies for secure DB hosting.
- **(2026)** [**AWS Tutorials: Create and Connect to a MySQL Database with Amazon RDS**](https://docs.aws.amazon.com/hands-on/latest/create-mysql-db/create-mysql-db.html) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[ENTERPRISE-STABLE]</span> — A beginner-to-intermediate hands-on tutorial for launching a MySQL DB instance inside AWS RDS. Walks through security group access policies, DB engine parameters, and application tier connectivity patterns.
### Databases
#### NoSQL
@@ -48,7 +37,7 @@
- [itnext.io: Manage Redis on AWS from Kubernetes](https://itnext.io/manage-redis-on-aws-from-kubernetes-eeadba7eb889) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight describes how to manage AWS ElastiCache for Redis directly from Kubernetes. Live Grounding highlights using AWS Controllers for Kubernetes (ACK) or Crossplane to define managed Redis instances as custom resources (CRDs). This unifies stateful cloud infrastructure management within standard GitOps workflows.
---
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md)
💡 **Explore Related:** [About](./about.md) | [Demos](./demos.md) | [Kubernetes](./kubernetes.md)
🔗 **See Also:** [About](./about.md) | [Postman](./postman.md)
🔗 **See Also:** [Postman](./postman.md) | [Angular](./angular.md)
+3 -11
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS DevOps resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS DevOps. AWS CodePipeline
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,17 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS DevOps. AWS CodePipeline in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud-Native Provisioning](#cloud-native-provisioning)
- [CICD Integration](#cicd-integration)
- [AWS CodePipeline](#aws-codepipeline)
- [AWS DevOps](#aws-devops)
1. [Multi-Cluster and Edge](#multi-cluster-and-edge)
- [Cluster Federation](#cluster-federation)
- [Admiralty](#admiralty)
- [Serverless Integration](#serverless-integration)
## Cloud-Native Provisioning
### CICD Integration
-25
View File
@@ -6,31 +6,6 @@
!!! info "Architectural Context"
Detailed reference for AWS IaC in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [Cloud Computing](#cloud-computing)
- [AWS](#aws)
- [Infrastructure as Code](#infrastructure-as-code)
1. [Infrastructure as Code](#infrastructure-as-code-1)
- [Automated Generation](#automated-generation)
- [AWS Resource Importers](#aws-resource-importers)
- [Compute Orchestration](#compute-orchestration)
- [Recording Tools](#recording-tools)
- [CloudFormation](#cloudformation)
- [Automated Generation](#automated-generation-1)
- [Compliance and Policy](#compliance-and-policy)
- [Criticism and Analysis](#criticism-and-analysis)
- [GitOps Integrations](#gitops-integrations)
- [Identity and Access Management](#identity-and-access-management)
- [Messaging Configuration](#messaging-configuration)
- [Pre-commit Hooks](#pre-commit-hooks)
- [Registries](#registries)
- [Starter Templates](#starter-templates)
- [Storage Configuration](#storage-configuration)
## Architectural Foundations
### Kubernetes Tools
+3 -7
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Messaging resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Messaging Services
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,13 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Messaging Services in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS](#aws)
- [Event-Driven Architecture](#event-driven-architecture)
- [Messaging Services](#messaging-services)
## Cloud Infrastructure
### AWS
+3 -31
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Miscellaneous resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Miscellaneous
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,37 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Miscellaneous in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Application Development](#application-development)
- [Container Orchestration](#container-orchestration)
- [App Runner](#app-runner)
- [Microservices](#microservices)
- [E-commerce Reference](#e-commerce-reference)
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS](#aws)
- [Load Balancing](#load-balancing)
- [PaaS Platform](#paas-platform)
- [Web Servers](#web-servers)
1. [Cloud Native Infrastructure](#cloud-native-infrastructure)
- [Service Mesh](#service-mesh)
- [AWS](#aws-1)
1. [Edge and IoT](#edge-and-iot)
- [AWS](#aws-2)
- [IoT Platforms](#iot-platforms)
1. [Infrastructure as Code](#infrastructure-as-code)
- [AWS CDK](#aws-cdk)
- [Serverless Applications](#serverless-applications)
1. [Networking and Security](#networking-and-security)
- [Service Mesh](#service-mesh-1)
- [Multi-Account](#multi-account)
1. [Serverless](#serverless)
- [Voice User Interfaces](#voice-user-interfaces)
- [Alexa Skills](#alexa-skills)
1. [Testing and Chaos](#testing-and-chaos)
- [Debugging](#debugging)
- [AWS Troubleshooting](#aws-troubleshooting)
## Application Development
### Container Orchestration
+3 -12
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Monitoring resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Monitoring and Logging
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,18 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Monitoring and Logging in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Native Platforms](#cloud-native-platforms)
- [AWS](#aws)
- [Managed Observability](#managed-observability)
1. [Observability and Monitoring](#observability-and-monitoring)
- [CloudWatch](#cloudwatch)
- [Prometheus Integration](#prometheus-integration)
1. [Service Discovery](#service-discovery)
- [AWS Cloud Map](#aws-cloud-map)
- [Health Checks](#health-checks)
## Cloud Native Platforms
### AWS
+3 -26
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Networking resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Networking
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,32 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Networking in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS](#aws)
- [API Gateway](#api-gateway)
- [Architecture](#architecture)
- [Cross-Account Patterns](#cross-account-patterns)
- [CDN](#cdn)
- [CloudFront](#cloudfront)
- [Edge Security](#edge-security)
- [Kubernetes Networking](#kubernetes-networking)
- [Controllers](#controllers)
- [Load Balancing](#load-balancing)
- [Announcements](#announcements)
- [Application Load Balancer](#application-load-balancer)
- [Configuration Updates](#configuration-updates)
- [Serverless Integration](#serverless-integration)
- [Reverse Proxy](#reverse-proxy)
- [NGINX Plus](#nginx-plus)
- [Security](#security)
- [WAF](#waf)
1. [Software Engineering](#software-engineering)
- [Deployment Patterns](#deployment-patterns)
- [Blue-Green](#blue-green)
- [ALB](#alb)
## Cloud Infrastructure
### AWS
+3 -43
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Newfeatures resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS New Features
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,49 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS New Features in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Application Integration](#application-integration)
- [Serverless Orchestration](#serverless-orchestration)
- [Step Functions](#step-functions)
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS](#aws)
- [Container Orchestration](#container-orchestration)
- [Serverless](#serverless)
- [Container Orchestration](#container-orchestration-1)
- [ECS Deployments](#ecs-deployments)
- [EKS Windows](#eks-windows)
- [Storage Integration](#storage-integration)
- [Messaging](#messaging)
- [Event-Driven](#event-driven)
- [Networking](#networking)
- [Load Balancing](#load-balancing)
- [Security and Service Mesh](#security-and-service-mesh)
- [HashiCorp HCP](#hashicorp-hcp)
- [Serverless](#serverless-1)
- [Compute](#compute)
- [Developer Tooling](#developer-tooling)
1. [Containers](#containers)
- [Kubernetes](#kubernetes)
- [EKS Console](#eks-console)
- [EKS Networking](#eks-networking)
- [EKS Security](#eks-security)
- [Market Analysis](#market-analysis)
- [ReInvent Announcements](#reinvent-announcements)
1. [Data and Analytics](#data-and-analytics)
- [Data Streaming](#data-streaming)
- [Kinesis](#kinesis)
1. [Database](#database)
- [RDS Proxy](#rds-proxy)
- [Networking](#networking-1)
1. [Observability](#observability)
- [Grafana](#grafana)
- [Managed Visualization](#managed-visualization)
- [OpenTelemetry](#opentelemetry)
- [Distributed Tracing](#distributed-tracing)
- [Prometheus](#prometheus)
- [Managed Container Monitoring](#managed-container-monitoring)
## Application Integration
### Serverless Orchestration
+6 -9
View File
@@ -1,16 +1,13 @@
---
description: "Curated, AI-ranked AWS Pricing resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# AWS Pricing and Cost Optimization
!!! tip "Nubenetes V2 Elite Portal"
You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the [**V1 Historical Archive**](/v1/aws-pricing/).
!!! info "Architectural Context"
Detailed reference for AWS Pricing and Cost Optimization in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [AWS Cost Management](#aws-cost-management)
- [Kubernetes FinOps](#kubernetes-finops)
Detailed reference for AWS Pricing and Cost Optimization in the context of Architectural Foundations.
## Cloud Infrastructure
@@ -21,7 +18,7 @@
- **(2021)** [==cast.ai: Keep your AWS Kubernetes costs in check with intelligent allocation' (EKS)==](https://cast.ai/blog/keep-your-aws-kubernetes-costs-in-check-with-intelligent-allocation) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — Explores Kubernetes resource provisioning on EKS using automated container allocations. Offers strategies to prevent container-level over-provisioning and dynamically handle node scaling tasks to curb cluster waste.
---
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md)
💡 **Explore Related:** [About](./about.md) | [Demos](./demos.md) | [Kubernetes](./kubernetes.md)
🔗 **See Also:** [About](./about.md) | [Postman](./postman.md)
🔗 **See Also:** [Postman](./postman.md) | [Googlecloudplatform](./GoogleCloudPlatform.md)
+3 -17
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Security resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Security
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,23 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Security in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Architecture](#cloud-architecture)
- [AWS](#aws)
- [Cryptography](#cryptography)
- [Identity and Access Management](#identity-and-access-management)
- [SaaS Architecture](#saas-architecture)
- [Secrets Management](#secrets-management)
- [Security Auditing](#security-auditing)
- [Security and Compliance](#security-and-compliance)
1. [DevSecOps](#devsecops)
- [Policy as Code](#policy-as-code)
- [Open Policy Agent](#open-policy-agent)
1. [Security and Identity](#security-and-identity)
- [Secrets Management](#secrets-management-1)
- [Kubernetes Integration](#kubernetes-integration)
## Cloud Architecture
### AWS
+3 -58
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Serverless resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Serverless
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,64 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Serverless in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [API Management](#api-management)
- [GraphQL and AppSync](#graphql-and-appsync)
- [Security](#security)
1. [Cloud Platforms](#cloud-platforms)
- [Serverless Architecture](#serverless-architecture)
- [AWS Lambda](#aws-lambda)
- [Concepts](#concepts)
- [Resources](#resources)
1. [Container Orchestration](#container-orchestration)
- [AWS ECS and Fargate](#aws-ecs-and-fargate)
- [Machine Learning Ops](#machine-learning-ops)
- [Performance Optimization](#performance-optimization)
- [Storage Architecture](#storage-architecture)
- [Kubernetes and EKS](#kubernetes-and-eks)
- [Serverless Containers](#serverless-containers)
1. [DevOps and CICD](#devops-and-cicd)
- [Serverless Deployment](#serverless-deployment)
- [AWS SAM](#aws-sam)
- [AWS SAM Pipelines](#aws-sam-pipelines)
1. [Infrastructure as Code](#infrastructure-as-code)
- [AWS CDK](#aws-cdk)
- [Serverless IaC](#serverless-iac)
- [AWS SAM](#aws-sam-1)
- [Fundamentals](#fundamentals)
- [Terraform](#terraform)
- [Serverless Provisioning](#serverless-provisioning)
1. [Modernization](#modernization)
- [Monolith Migration](#monolith-migration)
- [.NET Core](#net-core)
1. [Observability and Monitoring](#observability-and-monitoring)
- [CloudWatch](#cloudwatch)
- [Alerting Systems](#alerting-systems)
1. [Security and Governance](#security-and-governance)
- [Secret Management](#secret-management)
- [Go Runtime](#go-runtime)
1. [Serverless Architecture](#serverless-architecture-1)
- [API Gateway](#api-gateway)
- [REST APIs](#rest-apis)
- [AWS Lambda](#aws-lambda-1)
- [Antipatterns](#antipatterns)
- [Cold Starts](#cold-starts)
- [Concurrency and Scaling](#concurrency-and-scaling)
- [Configuration Management](#configuration-management)
- [Fundamentals](#fundamentals-1)
- [Hardware Platforms](#hardware-platforms)
- [Java Runtimes](#java-runtimes)
- [Performance Optimization](#performance-optimization-1)
- [Caching](#caching)
- [Data Management](#data-management)
- [Event-Driven](#event-driven)
- [Design Patterns](#design-patterns)
- [Messaging and Integration](#messaging-and-integration)
- [Webhooks](#webhooks)
- [Orchestration](#orchestration)
- [AWS Step Functions](#aws-step-functions)
## API Management
### GraphQL and AppSync
-8
View File
@@ -6,14 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Spain in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Platforms](#cloud-platforms)
- [AWS Education](#aws-education)
- [Resources](#resources)
- [AWS Regional Infrastructure](#aws-regional-infrastructure)
- [Spain](#spain-1)
## Cloud Platforms
### AWS Education
-39
View File
@@ -6,45 +6,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Storage. S3 and EBS. AWS Storage Gateway in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [Cloud Infrastructure](#cloud-infrastructure)
- [Compute](#compute)
- [AWS EC2](#aws-ec2)
- [Storage Provisioning](#storage-provisioning)
- [Data Integration](#data-integration)
- [AWS Transfer Family](#aws-transfer-family)
- [Reliability Engineering](#reliability-engineering)
- [Multi-Region Architectures](#multi-region-architectures)
- [Storage](#storage)
- [AWS EFS](#aws-efs)
- [Performance Tuning](#performance-tuning)
- [AWS S3](#aws-s3)
- [Analytics](#analytics)
1. [Cloud Infrastructure and Orchestration](#cloud-infrastructure-and-orchestration)
- [Storage and Databases](#storage-and-databases)
- [Distributed Block Storage](#distributed-block-storage)
1. [Cloud Native Storage](#cloud-native-storage)
- [AWS EBS](#aws-ebs)
- [Snapshot Automation](#snapshot-automation)
- [Sparse Snapshots](#sparse-snapshots)
- [Storage Performance](#storage-performance)
- [AWS S3](#aws-s3-1)
- [FAQ Reference](#faq-reference)
- [Private Connectivity](#private-connectivity)
- [S3 Architecture](#s3-architecture)
- [S3 Namespace](#s3-namespace)
- [S3 Synchronization](#s3-synchronization)
- [Storage Lifecycle](#storage-lifecycle)
- [S3 API Compatibility](#s3-api-compatibility)
- [S3 Security](#s3-security)
1. [Cloud Platform](#cloud-platform)
- [AWS Infrastructure](#aws-infrastructure)
- [Storage Management](#storage-management)
## Architectural Foundations
### Kubernetes Tools
+6 -19
View File
@@ -1,19 +1,13 @@
---
description: "Curated, AI-ranked AWS Tools Scripts resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# AWS Tools and Scripts
!!! tip "Nubenetes V2 Elite Portal"
You are browsing the AI-Curated V2 Elite Edition. Looking for the exhaustive list of references? Check out the [**V1 Historical Archive**](/v1/aws-tools-scripts/).
!!! info "Architectural Context"
Detailed reference for AWS Tools and Scripts in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Containers](#containers)
- [Developer Tooling](#developer-tooling)
- [Cloud Emulation](#cloud-emulation)
1. [Infrastructure as Code](#infrastructure-as-code)
- [Boilerplates](#boilerplates)
- [AWS Templates](#aws-templates)
Detailed reference for AWS Tools and Scripts in the context of Architectural Foundations.
## Containers
@@ -22,16 +16,9 @@
#### Cloud Emulation
- **(2024)** [==Floci - An AWS Local Emulator Alternative==](https://github.com/floci-io/floci) <span class='md-tag md-tag--info'>⭐ 14064</span> <svg class="v2-sparkline" width="50" height="15" viewBox="0 0 50 15" style="vertical-align: middle; display: inline-block; margin-left: 6px;" title="Activity Trend"><defs><linearGradient id="spark-grad-eeaf9b0a" x1="0" y1="0" x2="1" y2="0"><stop offset="0%" stop-color="rgba(34, 211, 238, 0.2)" /><stop offset="100%" stop-color="var(--md-accent-fg-color)" /></linearGradient></defs><path class="v2-sparkline-path" d="M 0 12 L 10 3 L 20 4 L 30 11 L 40 10 L 50 5" fill="none" stroke="url(#spark-grad-eeaf9b0a)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /><circle cx="50" cy="5" r="2" fill="var(--md-accent-fg-color)" /></svg> <span class='md-tag md-tag--warning'>[GO CONTENT]</span> 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — An active and highly performant local alternative to localstack. Emulates AWS cloud service behavior locally using specialized lightweight container footprints.
## Infrastructure as Code
### Boilerplates
#### AWS Templates
- **(2024)** [AWS Samples (Boilerplates)](https://nubenetes.com/demos/#aws-samples-boilerplates) <span class='md-tag md-tag--warning'>[MULTI-LANGUAGE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A consolidated hub of official and community AWS deployment samples. Houses structured patterns and CloudFormation/Terraform codebases to fast-track prototype development in compliance with AWS architecture standards.
---
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md)
💡 **Explore Related:** [About](./about.md) | [Demos](./demos.md) | [Kubernetes](./kubernetes.md)
🔗 **See Also:** [About](./about.md) | [Postman](./postman.md)
🔗 **See Also:** [Postman](./postman.md) | [Googlecloudplatform](./GoogleCloudPlatform.md)
+3 -6
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Training resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Training and Certification
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,12 +9,6 @@
!!! info "Architectural Context"
Detailed reference for AWS Training and Certification in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Computing](#cloud-computing)
- [AWS](#aws)
- [Infrastructure as Code](#infrastructure-as-code)
## Cloud Computing
### AWS
+169 -9
View File
@@ -1,3 +1,6 @@
---
description: "Top AWS resources for 2026, AI-ranked: AWS App Runner, Amazon ECS-optimized AMI and more — curated Cloud Native tools, guides and references."
---
# Public Cloud Provider. Amazon Web Services
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,16 +9,30 @@
!!! info "Architectural Context"
Detailed reference for Public Cloud Provider. Amazon Web Services in the context of Cloud Providers (Hyperscalers).
## Table of Contents
!!! abstract "Deep-Dive Topic Pages"
[Serverless](./aws-serverless/) · [Storage](./aws-storage/) · [Networking](./aws-networking/) · [Security](./aws-security/) · [IaC](./aws-iac/) · [Backup](./aws-backup/) · [New Features](./aws-newfeatures/)
1. [Cloud Computing](#cloud-computing)
- [AWS](#aws)
- [Architecture and Guides](#architecture-and-guides)
1. [Cloud Infrastructure](#cloud-infrastructure)
- [Application Integration](#application-integration)
- [API Management](#api-management)
- [Serverless Services](#serverless-services)
## Application Development
### Container Orchestration
#### App Runner
- **(2026)** [AWS App Runner 🌟](https://aws.amazon.com/apprunner) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight outlines AWS App Runner as a fully managed container service for rapid web application and API deployment. Live Grounding confirms its position in 2026 as a premier choice for developers wanting to bypass Kubernetes complexity, offering automated load balancing, scaling, and TLS termination directly from source code or ECR.
- **(2022)** [Architecting for resiliency on AWS App Runner](https://aws.amazon.com/blogs/containers/architecting-for-resiliency-on-aws-app-runner) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight focuses on engineering multi-region, high-availability, and fault-tolerant topologies with App Runner. Live Grounding shows that resilient patterns rely on Route 53 routing, pilot light databases, and robust custom health checks to sustain production-grade service availability.
- **(2021)** [dev.to: AWS App Runner : How to deploy containerized applications using App Runner](https://dev.to/aws-builders/aws-app-runner-how-to-deploy-containerized-applications-using-app-runner-1f7c) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Curator Insight details the operational steps for configuring and running Dockerized workloads on AWS App Runner. Live Grounding verifies this as a classic, high-value guide for transitioning traditional VMs to serverless containers without having to manage raw ECS or EKS orchestration.
### Microservices
#### E-commerce Reference
- **(2021)** [Architecting a Highly Available Serverless, Microservices-Based Ecommerce Site](https://aws.amazon.com/blogs/architecture/architecting-a-highly-available-serverless-microservices-based-ecommerce-site) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight details the design of a highly available, multi-region e-commerce platform using EventBridge, Cognito, Lambda, and DynamoDB. Live Grounding shows this architecture represents the gold standard for serverless distributed microservices, emphasizing event-driven decoupling and global data consistency.
## Cloud Architecture
### Case Studies
#### Enterprise Scale
- **(2019)** [aws.amazon.com: Trainline Case Study](https://aws.amazon.com/solutions/case-studies) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--secondary'>[CASE STUDY]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Architectural case study mapping Trainline's migrations onto AWS using ECS containerized deployments and RDS clusters. Demonstrates successful reduction in database locking periods and outlines zero-downtime blue/green microservice delivery strategies.
## Cloud Computing
### AWS
@@ -23,8 +40,49 @@
#### Architecture and Guides
- **(2026)** [Implementing Microservices on AWS 🌟](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/microservices-on-aws.html) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — The premier AWS whitepaper defining the patterns, architectures, and execution strategies for deploying microservices. It covers decomposition patterns, decentralized data management, domain-driven boundaries, service discovery, and inter-service messaging schemes.
#### Infrastructure as Code
- **(2021)** [New digital course and lab: AWS Cloud Development Kit (CDK) Primer](https://aws.amazon.com/about-aws/whats-new/2021/01/new-digital-course-and-lab-aws-cloud-development-kit-cdk-primer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Introduction to the AWS Cloud Development Kit (CDK) framework. Teaches developers how to define cloud infrastructure using familiar programming languages (TypeScript, Python) rather than declarative JSON or YAML, maximizing code reusability and CI/CD integration.
## Cloud Infrastructure
### AWS (1)
#### Container Compute
- **(2024)** [Amazon ECS-optimized AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Reference manual for the AWS-engineered Amazon Machine Image (AMI) preconfigured with the ECS agent, Docker runtime, and optimal container configurations. Utilizing this specialized OS image ensures maximum orchestration performance, reliable telemetry, and security compliance out of the box.
#### Container Registries
- **(2024)** [Amazon EC2 Container Registry Documentation](https://aws.amazon.com/es/documentation/ecr) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official engineering reference for Amazon ECR, a fully managed OCI-compliant container registry. It covers critical security integrations, image scanning capabilities, cross-region replication configurations, and direct integration with Amazon ECS/EKS to facilitate safe, high-speed container pull actions.
#### Continuous Deployment
- **(2021)** [Automate rollbacks for Amazon ECS rolling deployments with CloudWatch alarms](https://aws.amazon.com/blogs/containers/automate-rollbacks-for-amazon-ecs-rolling-deployments-with-cloudwatch-alarms) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An architectural guide outlining automated deployment rollback capabilities within ECS rolling deployments. It illustrates how CloudWatch alarms can monitor application health (e.g., HTTP 5xx rates) during active deployments and automatically trigger rollbacks to a previously stable revision to maintain high availability.
#### Event Streaming
- **(2016)** [**Querying Amazon Kinesis Streams Directly with SQL and Spark Streaming**](https://aws.amazon.com/blogs/big-data/querying-amazon-kinesis-streams-directly-with-sql-and-spark-streaming) <span class='md-tag md-tag--warning'>[SCALA CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[ENTERPRISE-STABLE]</span> — Technical blueprint detailing Spark Streaming integration with Amazon Kinesis streams. Discusses record-processing window optimizations, checkpoint configurations, and SQL querying on live event pipelines.
#### Event-Driven Architecture
- **(2020)** [Building an event-driven application with Amazon EventBridge](https://aws.amazon.com/blogs/compute/building-an-event-driven-application-with-amazon-eventbridge) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — This AWS architecture blog details how to design and build serverless event-driven applications using Amazon EventBridge. It highlights the platform's ability to act as a centralized serverless event bus that simplifies decoupled communication across distributed microservices by routing events using declarative rules. The pattern eliminates custom routing code, improving structural robustness.
#### Load Balancing
- **(2016)** [AWS Elastic Beanstalk Supports Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2016/08/aws-elastic-beanstalk-supports-application-load-balancer) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Product release documentation outlining integration of Application Load Balancers (ALBs) with Elastic Beanstalk. Unlocks path-based routing, target group pooling, and secure WebSocket connections.
- **(2016)** [Configuring an Application Load Balancer](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-applicationloadbalancer.html) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Operational guide detailing how to declare, scale, and tune target parameters and routing policies on Application Load Balancers inside active Elastic Beanstalk projects.
#### Messaging Services
- **(2022)** [dev.to: When to SNS or SQS](https://dev.to/aws-builders/when-to-sns-or-sqs-2aji) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A technical comparison of Amazon Simple Notification Service (SNS) and Simple Queue Service (SQS) within event-driven architectures. It details SNS's pub-sub push mechanism versus SQS's pull-based queueing model, analyzing throughput characteristics and decoupling strategies. This guide clarifies architectural patterns for integrating microservices via point-to-point and fan-out message routing.
#### PaaS Platform
- **(2011)** [AWS Elastic Beanstalk Documentation](https://aws.amazon.com/documentation/elastic-beanstalk) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official reference architecture and deployment guide for AWS Elastic Beanstalk. Simplifies cloud application lifecycle management by handling capacity provisioning, balancing, scaling, and platform patching.
#### Security Practices
- **(2022)** [dev.to: Sharing secrets to ECS in an AWS multi-account architecture](https://dev.to/aws-builders/sharing-secrets-to-ecs-in-an-aws-multi-account-architecture-5h1i) <span class='md-tag md-tag--warning'>[TERRAFORM CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A technical blueprint for cross-account secret management for Amazon ECS using AWS Secrets Manager and Systems Manager (SSM) Parameter Store. It provides security engineers with an architectural approach to maintain strict separation of concerns, principal-of-least-privilege IAM policies, and cross-account IAM role assumption.
#### Web Servers
- **(2016)** [AWS Elastic Beanstalk Supports Nginx Proxy Server with Tomcat](https://aws.amazon.com/about-aws/whats-new/2016/08/aws-elastic-beanstalk-supports-nginx-proxy-server-with-tomcat) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Feature documentation announcing native Nginx reverse proxy configurations sitting in front of Apache Tomcat platforms in Beanstalk. Optimizes delivery of static assets and client routing.
### AWS Databases
#### Amazon RDS
- **(2026)** [**AWS Tutorials: Create and Connect to a MySQL Database with Amazon RDS**](https://docs.aws.amazon.com/hands-on/latest/create-mysql-db/create-mysql-db.html) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[ENTERPRISE-STABLE]</span> — A beginner-to-intermediate hands-on tutorial for launching a MySQL DB instance inside AWS RDS. Walks through security group access policies, DB engine parameters, and application tier connectivity patterns.
### Application Integration
#### API Management
@@ -33,9 +91,111 @@
#### Serverless Services
- **(2026)** [k21academy.com: AWS Application Services: Lambda, SES, SNS, SQS, SWF](https://k21academy.com/aws-cloud/aws-application-services) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Technical review of AWS's modular application integration portfolio. Contrasts serverless compute (Lambda) with asynchronous message queues (SQS), publish-subscribe event routing (SNS), programmatically orchestrated state workflows (SWF/Step Functions), and secure outbound transaction messaging (SES).
### Event Streaming (1)
#### Comparison
- **(2021)** [**whizlabs.com: AWS Kinesis vs Kafka Apache**](https://www.whizlabs.com/blog/kinesis-vs-kafka) <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[ENTERPRISE-STABLE]</span> — Comparative architectural review between AWS Kinesis and Apache Kafka. Analyzes data retention policies, throughput capabilities, scaling overheads, and total cost of ownership (TCO) profiles.
## Cloud Native Infrastructure
### Service Mesh
#### AWS (2)
- **(2022)** [aws.amazon.com/app-mesh](https://aws.amazon.com/app-mesh) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Live Grounding Synthesis: Built on Envoy as AWS's managed service mesh, AWS App Mesh was deprecated in late 2024 and fully sunsetted. Platform teams are urged to transition to Amazon ECS Service Connect or Amazon VPC Lattice.
## Cloud Native Platforms
### AWS (3)
#### Managed Observability
- **(2026)** [Amazon Managed Service for Prometheus](https://aws.amazon.com/prometheus) <span class='md-tag md-tag--warning'>[NONE CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — AWS fully-managed metric service designed around open-source Cortex core architecture. Automatically scales telemetry storage, ingestion, and query resources in secure enterprise environments.
## Cloud-Native Provisioning
### CICD Integration
#### AWS CodePipeline
- **(2022)** [aws.amazon.com: AWS CodePipeline adds support for Branch-based development and Monorepos](https://aws.amazon.com/blogs/devops/aws-codepipeline-adds-support-for-branch-based-development-and-monorepos) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Release analysis highlighting newly added monorepo and branch-specific triggers within AWS CodePipeline, optimizing continuous delivery workflows and reducing build execution times.
#### AWS DevOps
- **(2026)** [Continuous Deployment with AWS](https://aws.amazon.com/blogs/devops/tag/continuous-deployment) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curated collection of continuous deployment strategies optimized for AWS runtimes. Explains canary releases, blue/green cluster migrations, and automated rollbacks on ECS and EKS.
## Edge and IoT
### AWS (4)
#### IoT Platforms
- **(2015)** [aws.amazon.com/en/iot](https://aws.amazon.com/iot) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Technical documentation for AWS IoT Core, a high-throughput managed broker designed to securely route and map billions of device telemetry streams into cloud databases and analysis applications.
## Infrastructure as Code (1)
### AWS CDK
#### Serverless Applications
- **(2023)** [freecodecamp.org: AWS CDK v2 Tutorial How to Create a Three-Tier Serverless Application](https://www.freecodecamp.org/news/aws-cdk-v2-three-tier-serverless-application) <span class='md-tag md-tag--warning'>[TYPESCRIPT CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Curator Insight is a comprehensive, hands-on tutorial for constructing API Gateway, Lambda, and DynamoDB stacks via CDK v2. Live Grounding proves this three-tier serverless pattern remains the gold standard blueprint for robust, scalable web services in AWS.
### Boilerplates
#### AWS Templates
- **(2024)** [AWS Samples (Boilerplates)](https://nubenetes.com/demos/#aws-samples-boilerplates) <span class='md-tag md-tag--warning'>[MULTI-LANGUAGE CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A consolidated hub of official and community AWS deployment samples. Houses structured patterns and CloudFormation/Terraform codebases to fast-track prototype development in compliance with AWS architecture standards.
## Kubernetes and Platform Engineering
### Modernization Tools
#### Microservice Migration
- **(2023)** [AWS App2Container: Migrate your Applications to Containers at Scale](https://aws.amazon.com/blogs/architecture/migrate-your-applications-to-containers-at-scale) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Introduces AWS App2Container, a tool that automates the migration of legacy .NET and Java web applications into containerized structures ready for deployment on Amazon ECS or EKS.
- **(2023)** [Lets Architect! Architecting microservices with containers](https://aws.amazon.com/blogs/architecture/lets-architect-architecting-microservices-with-containers) <span class='md-tag md-tag--critical'>[LEGACY]</span> — A foundational guide for decoupling large legacy applications. Explores container hosting options on ECS and EKS, microservice discovery patterns, and inter-service security standards.
## Multi-Cluster and Edge
### Cluster Federation
#### Admiralty
- **(2026)** [admiralty.io](https://admiralty.io) <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official platform of Admiralty, an advanced multi-cluster proxy scheduler designed to programmatically dispatch workloads across physical, virtual, or serverless Kubernetes namespaces.
#### Serverless Integration
- **(2021)** [thenewstack.io: Making Kubernetes Serverless and Global with AWS Fargate on EKS and Admiralty](https://thenewstack.io/making-kubernetes-serverless-and-global-with-aws-fargate-on-eks-and-admiralty) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Investigative analysis showcasing how Admiralty can coordinate with AWS Fargate serverless containers in an EKS environment to deploy globally distributed applications with low operational overhead.
- **(2021)** [admiralty.io: Multi-Region AWS Fargate on EKS](https://admiralty.io/docs/tutorials/fargate) <span class='md-tag md-tag--warning'>[GO CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Granular implementation tutorial for deploying Admiralty proxy schedulers to configure cross-cluster communication channels that target serverless AWS Fargate environments in multi-region setups.
## Networking and Security
### Service Mesh (1)
#### Multi-Account
- **(2021)** [amazon.com: Leveraging App Mesh with Amazon EKS in a Multi-Account environment](https://aws.amazon.com/blogs/containers/leveraging-app-mesh-with-amazon-eks-in-a-multi-account-environment) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight presents patterns for orchestrating cross-account microservice communication using AWS App Mesh and Amazon EKS. Live Grounding highlights that while the multi-account networking concepts remain structurally valid, the reliance on App Mesh is obsolete; modern architectures deploy VPC Lattice or cross-cluster Istio meshes.
## Observability and Monitoring
### CloudWatch
#### Prometheus Integration
- **(2020)** [Amazon CloudWatch now monitors Prometheus metrics from Container environments](https://aws.amazon.com/about-aws/whats-new/2020/09/amazon-cloudwatch-monitors-prometheus-metrics-container-environments) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Documents Amazon CloudWatch Container Insights' ability to ingest, index, and visualize standard Prometheus application metrics directly from Elastic Kubernetes Service (EKS) cluster deployments.
## Serverless
### Voice User Interfaces
#### Alexa Skills
- **(2017)** [New Alexa Skills Kit Template: Build a Trivia Skill in under an Hour](https://developer.amazon.com) <span class='md-tag md-tag--warning'>[JAVASCRIPT CONTENT]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> <span class='md-tag md-tag--critical'>[LEGACY]</span> — Step-by-step developer tutorial detailing integration patterns between the Alexa Skills Kit and AWS Lambda serverless functions. Marked legacy as current conversational AI models have largely replaced basic programmatic trivia setups in production.
## Service Discovery
### AWS Cloud Map
#### Health Checks
- **(2022)** [Custom Health Check: HealthCheckCustomConfig](https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official reference guide for Cloud Map API's custom health checks. Explains dynamic service discovery patterns for serverless workloads where traditional load balancer health checks are inapplicable.
## Testing and Chaos
### Debugging
#### AWS Troubleshooting
- **(2021)** [thenewstack.io: Remote Debugging in AWS: The Missing Link in Your Debugging Toolset](https://thenewstack.io/remote-debugging-in-aws-the-missing-link-in-your-debugging-toolset) <span class='md-tag md-tag--warning'>[N/A CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight exposes methodologies for live-debugging cloud-hosted microservices without causing disruption. Live Grounding tracks the evolution of these techniques into sophisticated cloud-native debugging proxies and observability integrations (like OpenTelemetry and Telepresence), bridging local IDEs with remote VPC resources.
---
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Edge Computing](./edge-computing.md) | [Oraclecloud](./oraclecloud.md)
🔗 **See Also:** [Postman](./postman.md) | [Angular](./angular.md)
🔗 **See Also:** [About](./about.md) | [Postman](./postman.md)
+3 -140
View File
@@ -1,3 +1,6 @@
---
description: "Top Azure resources for 2026, AI-ranked: Bicep, Microsoft - DICOM Service and more — curated Cloud Native tools, guides and references."
---
# Microsoft Azure
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,146 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Microsoft Azure in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [API Design](#api-design)
- [Standards](#standards)
- [REST API](#rest-api)
1. [Architecture](#architecture)
- [Container Orchestration](#container-orchestration)
- [AKS Mission Critical](#aks-mission-critical)
- [Well-Architected Framework](#well-architected-framework)
- [Mission-Critical Workloads](#mission-critical-workloads)
1. [Architecture and Microservices](#architecture-and-microservices)
- [Infrastructure as Code](#infrastructure-as-code)
- [API Management](#api-management)
- [Application Delivery](#application-delivery)
- [Migration Guides](#migration-guides)
- [Java Ecosystem](#java-ecosystem)
- [Observability](#observability)
- [Application Insights](#application-insights)
- [Spring Cloud](#spring-cloud)
- [Design Patterns](#design-patterns)
1. [CICD Pipelines](#cicd-pipelines)
- [DevOps Platforms](#devops-platforms)
- [DevTest Labs](#devtest-labs)
1. [Cloud Application Platforms](#cloud-application-platforms)
- [Azure App Service](#azure-app-service)
- [App Service Configuration](#app-service-configuration)
- [App Service Diagnostics](#app-service-diagnostics)
- [Custom Containers](#custom-containers)
- [Java Runtime Configurations](#java-runtime-configurations)
- [Serverless Computing](#serverless-computing)
- [Azure Functions Core](#azure-functions-core)
1. [Cloud Architecture](#cloud-architecture)
- [PaaS](#paas)
- [App Service](#app-service)
1. [Cloud DevOps](#cloud-devops)
- [CI-CD Pipelines](#ci-cd-pipelines)
- [YAML Templating and Reusability](#yaml-templating-and-reusability)
- [Container Orchestration](#container-orchestration-1)
- [GitOps](#gitops)
- [ArgoCD and Secrets](#argocd-and-secrets)
- [Kubernetes CD](#kubernetes-cd)
- [AKS Deployment](#aks-deployment)
- [Infrastructure as Code](#infrastructure-as-code-1)
- [End-to-End Lab Guides](#end-to-end-lab-guides)
1. [Cloud Infrastructure](#cloud-infrastructure)
- [Azure Networking](#azure-networking)
- [Private Access](#private-access)
- [Security](#security)
- [Container Orchestration](#container-orchestration-2)
- [AKS Fleet Manager](#aks-fleet-manager)
- [Container Storage](#container-storage)
- [Cloud Native Storage](#cloud-native-storage)
- [Monitoring and Observability](#monitoring-and-observability)
- [Multi-Tenant Observability](#multi-tenant-observability)
- [Networking and Edge Routing](#networking-and-edge-routing)
- [App Service Networking](#app-service-networking)
- [Application Gateway V2](#application-gateway-v2)
- [Load Balancing Options](#load-balancing-options)
- [Serverless Containers](#serverless-containers)
- [Azure Container Apps](#azure-container-apps)
- [Container Governance](#container-governance)
1. [Cloud Native and Kubernetes](#cloud-native-and-kubernetes)
- [GitOps and Continuous Delivery](#gitops-and-continuous-delivery)
- [ArgoCD integration](#argocd-integration)
- [DevOps Standardization](#devops-standardization)
- [Hybrid and Multicloud Solutions](#hybrid-and-multicloud-solutions)
- [App Services on Arc](#app-services-on-arc)
- [Azure Arc Architecture](#azure-arc-architecture)
- [Azure Arc Jumpstart](#azure-arc-jumpstart)
- [Monitoring and Observability](#monitoring-and-observability-1)
- [Managed Prometheus](#managed-prometheus)
- [Network Observability](#network-observability)
- [Networking and Edge Routing](#networking-and-edge-routing-1)
- [Gateway API](#gateway-api)
1. [Cloud Native Platforms](#cloud-native-platforms)
- [Azure](#azure)
- [High Availability Architectures](#high-availability-architectures)
1. [Cloud Platform](#cloud-platform)
- [Architecture Patterns](#architecture-patterns)
- [Cloud-Native](#cloud-native)
- [Microsoft Azure](#microsoft-azure-1)
- [Sample Architecture](#sample-architecture)
1. [Community](#community)
- [Blogs](#blogs)
- [.NET Development](#net-development)
- [Cloud-Native Architecture](#cloud-native-architecture)
1. [Compute and Containers](#compute-and-containers)
- [Kubernetes](#kubernetes)
- [AKS Engine](#aks-engine)
1. [Container Orchestration](#container-orchestration-3)
- [Operating Systems](#operating-systems)
- [Azure Linux](#azure-linux)
1. [DevOps](#devops)
- [CI-CD Pipelines](#ci-cd-pipelines-1)
- [Build Templates](#build-templates)
1. [Developer Experience](#developer-experience)
- [CI-CD Runners](#ci-cd-runners)
- [Ephemeral Containers](#ephemeral-containers)
1. [Governance and Management](#governance-and-management)
- [Enterprise Governance](#enterprise-governance)
- [Kubernetes Compliance](#kubernetes-compliance)
1. [Healthcare IT](#healthcare-it)
- [Medical Imaging](#medical-imaging)
- [Azure Healthcare APIs](#azure-healthcare-apis)
1. [Identity and Access](#identity-and-access)
- [Cloud Security](#cloud-security)
- [Workload Identity](#workload-identity)
- [Managed Identities](#managed-identities)
1. [Identity and Access](#identity-and-access-1)
- [Managed Identities](#managed-identities-1)
- [Secretless Architectures](#secretless-architectures)
- [Graph API](#graph-api)
1. [Infrastructure Automation](#infrastructure-automation)
- [Infrastructure as Code](#infrastructure-as-code-2)
- [Azure Bicep](#azure-bicep)
- [Declarative Deployments](#declarative-deployments)
- [Shell Customization](#shell-customization)
- [Oh-My-Posh](#oh-my-posh)
- [Kubernetes Integration](#kubernetes-integration)
1. [Microservices](#microservices)
- [.NET Microservices](#net-microservices)
- [Project Tye](#project-tye)
1. [Network and Delivery](#network-and-delivery)
- [API Management](#api-management-1)
- [Monetization Models](#monetization-models)
- [Workspace Migration](#workspace-migration)
- [Global Routing](#global-routing)
- [DNS Traffic Management](#dns-traffic-management)
1. [Operating Systems](#operating-systems-1)
- [Azure Linux](#azure-linux-1)
- [Kernel Curation](#kernel-curation)
1. [Quality Assurance](#quality-assurance)
- [Performance Testing](#performance-testing)
- [Azure Load Testing](#azure-load-testing)
1. [Security and Identity](#security-and-identity)
- [API Security](#api-security)
- [Runtime Threat Protection](#runtime-threat-protection)
- [Vulnerability Research](#vulnerability-research)
- [Container Escape](#container-escape)
## API Design
### Standards
+3 -12
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Caching resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Networking & Service Mesh)."
---
# Caching Solutions
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,18 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Caching Solutions in the context of Networking & Service Mesh.
## Table of Contents
1. [Edge and Serverless](#edge-and-serverless)
- [WebAssembly Platforms](#webassembly-platforms)
- [Tau Edge](#tau-edge)
1. [Infrastructure and Caching](#infrastructure-and-caching)
- [Database and Storage](#database-and-storage)
- [Tarantool and Nginx](#tarantool-and-nginx)
1. [Performance](#performance)
- [Caching](#caching)
- [Varnish on RHEL](#varnish-on-rhel)
## Edge and Serverless
### WebAssembly Platforms
+3 -14
View File
@@ -1,3 +1,6 @@
---
description: "Top Chaos Engineering resources for 2026, AI-ranked: chaosblade, Chaos Mesh and more — curated Cloud Native tools, guides and references."
---
# Chaos Engineering
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,20 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Chaos Engineering in the context of Platform & Site Reliability.
## Table of Contents
1. [Resilience](#resilience)
- [Chaos Engineering](#chaos-engineering-1)
- [Cloud Architecture](#cloud-architecture)
- [Continuous Integration](#continuous-integration)
- [Curated Resources](#curated-resources)
- [Enterprise Platforms](#enterprise-platforms)
- [Kubernetes Tools](#kubernetes-tools)
- [Operations Strategy](#operations-strategy)
- [Serverless Systems](#serverless-systems)
- [Stateful Systems](#stateful-systems)
- [Telemetry Systems](#telemetry-systems)
## Resilience
### Chaos Engineering (1)
+3 -9
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked ChatGPT resources for the 2026 Cloud Native architect: top-tier tools, guides and references (AI)."
---
# ChatGPT
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,15 +9,6 @@
!!! info "Architectural Context"
Detailed reference for ChatGPT in the context of AI.
## Table of Contents
1. [Cloud Native Infrastructure](#cloud-native-infrastructure)
- [Kubernetes Operations](#kubernetes-operations)
- [AIOps Diagnostics](#aiops-diagnostics)
1. [Data Architecture](#data-architecture)
- [Retrieval-Augmented Generation](#retrieval-augmented-generation)
- [Enterprise AI](#enterprise-ai)
## Cloud Native Infrastructure
### Kubernetes Operations
+3 -33
View File
@@ -1,3 +1,6 @@
---
description: "Top Cheatsheets resources for 2026, AI-ranked: github: K8s in 30 mins, Quarkus Cheat-Sheet and more — curated Cloud Native tools, guides and references."
---
# Cheat Sheets
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,39 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Cheat Sheets in the context of Architectural Foundations.
## Table of Contents
1. [Architecture](#architecture)
- [Application Frameworks](#application-frameworks)
- [Quarkus](#quarkus)
- [Application Security](#application-security)
- [Token Security](#token-security)
- [Data Pipelines](#data-pipelines)
- [Apache Kafka](#apache-kafka)
- [Change Data Capture](#change-data-capture)
1. [Infrastructure](#infrastructure)
- [Cloud Computing](#cloud-computing)
- [AWS](#aws)
- [Messaging Systems](#messaging-systems)
- [Kubernetes Operators](#kubernetes-operators)
1. [Orchestration](#orchestration)
- [Kubernetes](#kubernetes)
- [Training and Concepts](#training-and-concepts)
1. [Research](#research)
- [Architecture Analysis](#architecture-analysis)
- [Infrastructure Design](#infrastructure-design)
1. [Software Engineering](#software-engineering)
- [APIs](#apis)
- [Automation and Scripting](#automation-and-scripting)
- [Testing and Lifecycle](#testing-and-lifecycle)
- [Microservices](#microservices)
- [REST Clients](#rest-clients)
- [Web Development](#web-development)
- [NodeJS](#nodejs)
1. [Virtualization and Containers](#virtualization-and-containers)
- [Docker](#docker)
- [CLI Reference](#cli-reference)
## Architecture
### Application Frameworks
-7
View File
@@ -6,13 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Chef in the context of Hardened Infrastructure.
## Table of Contents
1. [Infrastructure as Code](#infrastructure-as-code)
- [Configuration Management](#configuration-management)
- [Enterprise Tooling](#enterprise-tooling)
- [Training](#training)
## Infrastructure as Code
### Configuration Management
+3 -6
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked CI/CD Kubernetes Plugins resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Engineering Pipeline)."
---
# CI/CD Kubernetes Plugins
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,12 +9,6 @@
!!! info "Architectural Context"
Detailed reference for CI/CD Kubernetes Plugins in the context of Engineering Pipeline.
## Table of Contents
1. [Software Engineering](#software-engineering)
- [Collaborative Platforms](#collaborative-platforms)
- [Kubernetes Integration](#kubernetes-integration)
## Software Engineering
### Collaborative Platforms
+3 -51
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked CI/CD resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Engineering Pipeline)."
---
# Software Delivery Pipeline. CI/CD
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,57 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Software Delivery Pipeline. CI/CD in the context of Engineering Pipeline.
## Table of Contents
1. [Cloud Engineering](#cloud-engineering)
- [AWS](#aws)
- [Automated Deployment](#automated-deployment)
- [CI-CD Pipelines](#ci-cd-pipelines)
- [Architecture](#architecture)
- [Cloud Native](#cloud-native)
- [CI-CD Pipelines](#ci-cd-pipelines-1)
- [Hybrid Cloud](#hybrid-cloud)
- [Case Studies](#case-studies)
- [Kubernetes](#kubernetes)
- [Best Practices](#best-practices)
- [CI-CD Pipelines](#ci-cd-pipelines-2)
- [Cloud Native](#cloud-native-1)
1. [Continuous Delivery](#continuous-delivery)
- [CICD and Testing](#cicd-and-testing)
- [Pipeline as Code](#pipeline-as-code)
- [CICD Best Practices](#cicd-best-practices)
- [Overview](#overview)
- [Deployment Strategies](#deployment-strategies)
- [Blue-Green and Canary](#blue-green-and-canary)
1. [Deployment and Delivery](#deployment-and-delivery)
- [CICD and Delivery](#cicd-and-delivery)
- [AWS Architecture](#aws-architecture)
- [Kubernetes Native](#kubernetes-native)
- [Pipeline Architecture](#pipeline-architecture)
- [Resource Portals](#resource-portals)
- [Deployment Strategies](#deployment-strategies-1)
- [Blue-Green and Canary](#blue-green-and-canary-1)
- [Education](#education)
- [GitOps](#gitops)
- [Red Hat OpenShift](#red-hat-openshift)
- [Platform Engineering](#platform-engineering)
- [Kubernetes Management](#kubernetes-management)
- [Progressive Delivery](#progressive-delivery)
- [Feature Flags](#feature-flags)
1. [DevOps](#devops)
- [CI-CD Pipelines](#ci-cd-pipelines-3)
- [Best Practices](#best-practices-1)
- [Case Studies](#case-studies-1)
- [Continuous Delivery](#continuous-delivery-1)
- [Patterns](#patterns)
- [Financial Services](#financial-services)
- [Best Practices](#best-practices-2)
1. [Infrastructure as Code](#infrastructure-as-code)
- [CICD and Delivery](#cicd-and-delivery-1)
- [Security and Compliance](#security-and-compliance)
- [GitOps](#gitops-1)
- [Configuration Management](#configuration-management)
## Cloud Engineering
### AWS
+3 -6
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Cloud Arch Diagrams resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# Cloud Architecture Diagram Tools
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,12 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Cloud Architecture Diagram Tools in the context of Architectural Foundations.
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [Azure Networking](#azure-networking)
- [Network Topology](#network-topology)
## Cloud Infrastructure
### Azure Networking
-16
View File
@@ -6,22 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Cloud Asset Inventory in the context of Architectural Foundations.
## Table of Contents
1. [Cloud Infrastructure and Orchestration](#cloud-infrastructure-and-orchestration)
- [Asset Management and Governance](#asset-management-and-governance)
- [Cloud Analytics](#cloud-analytics)
- [Public Cloud Administration](#public-cloud-administration)
- [AWS Fundamentals](#aws-fundamentals)
- [Azure Architecture](#azure-architecture)
- [Serverless Architecture](#serverless-architecture)
- [Case Studies](#case-studies)
- [Storage and Databases](#storage-and-databases)
- [Distributed Block Storage](#distributed-block-storage)
1. [Infrastructure as Code](#infrastructure-as-code)
- [Architecture](#architecture)
- [Diagrams](#diagrams)
## Cloud Infrastructure and Orchestration
### Asset Management and Governance
+3 -10
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Cloudflare resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Networking & Service Mesh)."
---
# Cloudflare Public Cloud
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,16 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Cloudflare Public Cloud in the context of Networking & Service Mesh.
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [Kubernetes Security](#kubernetes-security)
- [Zero Trust](#zero-trust)
- [Networking](#networking)
- [Zero Trust](#zero-trust-1)
- [Serverless](#serverless)
- [Edge Computing](#edge-computing)
## Cloud Infrastructure
### Kubernetes Security
+3 -37
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Container Managers resources for the 2026 Cloud Native architect: top-tier tools, guides and references (The Container Stack)."
---
# Container Runtimes/Managers, Base Images and Container Tools. Podman, Buildah and Skopeo
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,43 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Container Runtimes/Managers, Base Images and Container Tools. Podman, Buildah and Skopeo in the context of The Container Stack.
## Table of Contents
1. [Application Development](#application-development)
- [PHP](#php)
- [Kubernetes Integration](#kubernetes-integration)
1. [Container Infrastructure](#container-infrastructure)
- [Container Engines](#container-engines)
- [Secret Management](#secret-management)
- [Container Tooling](#container-tooling)
- [Compose Comparison](#compose-comparison)
- [Docker Compose Compatibility](#docker-compose-compatibility)
- [Podman Compose](#podman-compose)
- [Edge Orchestration](#edge-orchestration)
- [Auto-Updates and Rollbacks](#auto-updates-and-rollbacks)
- [Image Distribution](#image-distribution)
- [Ecosystem Registries](#ecosystem-registries)
- [Image Optimization](#image-optimization)
- [Base Images](#base-images)
- [Red Hat UBI](#red-hat-ubi)
- [Image Synthesis](#image-synthesis)
- [Builder Comparison](#builder-comparison)
- [Language-Specific Builders](#language-specific-builders)
- [Kubernetes Integration](#kubernetes-integration-1)
- [Declarative Pods](#declarative-pods)
- [Manifest Translation](#manifest-translation)
- [Service Orchestration](#service-orchestration)
- [Quadlet Integration](#quadlet-integration)
1. [Containerization](#containerization)
- [Container Engines](#container-engines-1)
- [Strategy and Standards](#strategy-and-standards)
- [Runtimes](#runtimes)
- [High-Level Engines](#high-level-engines)
- [Kubernetes Integration](#kubernetes-integration-2)
1. [Microservices](#microservices)
- [Mocking and Testing](#mocking-and-testing)
- [Podman Compose Integration](#podman-compose-integration)
## Application Development
### PHP
-24
View File
@@ -6,30 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Crossplane. A Universal Control Plane API for Cloud Computing. Crossplane Workloads Definitions in the context of Hardened Infrastructure.
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [GitOps and CICD](#gitops-and-cicd)
- [GitOps](#gitops)
- [FluxCD](#fluxcd)
- [Crossplane](#crossplane)
- [Methodologies](#methodologies)
1. [Platform Engineering](#platform-engineering)
- [Control Planes](#control-planes)
- [Crossplane](#crossplane-1)
- [Code Samples](#code-samples)
- [History](#history)
- [Infrastructure as Code](#infrastructure-as-code)
- [Introduction](#introduction)
- [Platform-as-a-Service](#platform-as-a-service)
- [Presentations](#presentations)
- [RedHat OpenShift](#redhat-openshift)
- [Reference Architectures](#reference-architectures)
- [Developer Experience](#developer-experience)
- [Kubernetes Usability](#kubernetes-usability)
## Architectural Foundations
### Kubernetes Tools
+3 -16
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Crunchydata resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Data & Advanced Analytics)."
---
# Crunchy Data PostgreSQL Operator
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,22 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Crunchy Data PostgreSQL Operator in the context of Data & Advanced Analytics.
## Table of Contents
1. [Data Infrastructure](#data-infrastructure)
- [Database Operators](#database-operators)
- [PostgreSQL](#postgresql)
- [Connection Pooling](#connection-pooling)
- [Developer Experience](#developer-experience)
- [GitOps Implementation](#gitops-implementation)
- [High Availability](#high-availability)
- [Multi-Cluster](#multi-cluster)
- [Packaging and CD](#packaging-and-cd)
- [Performance Tuning](#performance-tuning)
- [Platform Integration](#platform-integration)
- [Scheduling and Affinity](#scheduling-and-affinity)
- [Security](#security)
## Data Infrastructure
### Database Operators
+3 -17
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Customer resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# Customer Success Stories. Cloud Native Projects
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,23 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Customer Success Stories. Cloud Native Projects in the context of Architectural Foundations.
## Table of Contents
1. [Cloud Platform](#cloud-platform)
- [Bioinformatics](#bioinformatics)
- [High-Performance Computing](#high-performance-computing)
- [Healthcare Tech](#healthcare-tech)
- [Medical Imaging Platforms](#medical-imaging-platforms)
1. [Infrastructure Orchestration](#infrastructure-orchestration)
- [Cloud Security](#cloud-security)
- [Runtime Security](#runtime-security)
1. [Organizational Culture](#organizational-culture)
- [Migration Journeys](#migration-journeys)
- [BMW Group](#bmw-group)
1. [System Architecture](#system-architecture)
- [Messaging Systems](#messaging-systems)
- [Event-Driven Microservices](#event-driven-microservices)
## Cloud Platform
### Bioinformatics
+3 -82
View File
@@ -1,3 +1,6 @@
---
description: "Top Databases resources for 2026, AI-ranked: Zalando Postgres Operator, Patroni and more — curated Cloud Native tools, guides and references."
---
# Databases on Kubernetes. Database DevOps
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,88 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Databases on Kubernetes. Database DevOps in the context of Data & Advanced Analytics.
## Table of Contents
1. [Cloud Infrastructure](#cloud-infrastructure)
- [FinOps](#finops)
- [Cost Optimization](#cost-optimization)
1. [Cloud-Native Design](#cloud-native-design)
- [Architecture Patterns](#architecture-patterns)
1. [Data Analytics](#data-analytics)
- [Real-time Analytics](#real-time-analytics)
- [Edge Computing](#edge-computing)
1. [Data Operations](#data-operations)
- [Database CICD](#database-cicd)
1. [Data on Kubernetes](#data-on-kubernetes)
- [DBaaS](#dbaas)
- [Enterprise RedHat](#enterprise-redhat)
- [Internal Mechanics](#internal-mechanics)
- [Disaster Recovery](#disaster-recovery)
- [Enterprise RedHat](#enterprise-redhat-1)
- [Distributed Systems](#distributed-systems)
- [ShardingSphere](#shardingsphere)
- [Performance Tuning](#performance-tuning)
- [Autoscaling](#autoscaling)
- [Relational Databases](#relational-databases)
- [Operations](#operations)
- [PostgreSQL](#postgresql)
- [Stateful Architecture](#stateful-architecture)
- [Operational Guide](#operational-guide)
1. [Database Architecture](#database-architecture)
- [DBaaS](#dbaas-1)
- [Market Trends](#market-trends)
- [Database Interfaces](#database-interfaces)
- [API Design](#api-design)
- [Microservices Patterns](#microservices-patterns)
- [Transactions](#transactions)
- [Multi-tenancy](#multi-tenancy)
- [Schema Design](#schema-design)
- [Traffic Management](#traffic-management)
- [Load Balancing](#load-balancing)
1. [Distributed SQL](#distributed-sql)
- [APIs](#apis)
- [CockroachDB](#cockroachdb)
1. [Infrastructure](#infrastructure)
- [Container Orchestration](#container-orchestration)
- [Data on Kubernetes](#data-on-kubernetes-1)
- [GitOps](#gitops)
- [Kubernetes Operators](#kubernetes-operators)
- [MySQL Operators](#mysql-operators)
- [PostgreSQL HA](#postgresql-ha)
- [PostgreSQL Operators](#postgresql-operators)
- [State Management](#state-management)
- [Enterprise Kubernetes](#enterprise-kubernetes)
- [OpenShift Databases](#openshift-databases)
- [Infrastructure as Code](#infrastructure-as-code)
- [Terraform Database Ops](#terraform-database-ops)
- [PostgreSQL HA](#postgresql-ha-1)
- [Kubernetes Operations](#kubernetes-operations)
- [Orchestration](#orchestration)
- [Zalando Stack](#zalando-stack)
1. [Kubernetes Workloads](#kubernetes-workloads)
- [CICD Pipelines](#cicd-pipelines)
- [Database Migrations](#database-migrations)
1. [Observability](#observability)
- [Distributed Storage](#distributed-storage)
- [VictoriaMetrics](#victoriametrics)
1. [PostgreSQL](#postgresql-1)
- [Alternative Paradigms](#alternative-paradigms)
- [Application Architecture](#application-architecture)
- [Application Performance](#application-performance)
- [Database Architecture](#database-architecture-1)
1. [Relational Databases](#relational-databases-1)
- [Database Drivers](#database-drivers)
1. [SQL](#sql)
- [ORM and Query Builders](#orm-and-query-builders)
- [Java Ecosystem](#java-ecosystem)
1. [SQL Server](#sql-server)
- [DevOps](#devops)
1. [Serverless Databases](#serverless-databases)
- [Resource Management](#resource-management)
1. [Storage and Data](#storage-and-data)
- [Database Operators](#database-operators)
- [Crunchy PostgreSQL](#crunchy-postgresql)
## Cloud Infrastructure
### FinOps
+3 -230
View File
@@ -1,3 +1,6 @@
---
description: "Top Demos resources for 2026, AI-ranked: OpenShift AI Examples, knative-tutorial and more — curated Cloud Native tools, guides and references."
---
# DevOps Demos. Boilerplates/Samples, Tutorials and Screencasts
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,236 +9,6 @@
!!! info "Architectural Context"
Detailed reference for DevOps Demos. Boilerplates/Samples, Tutorials and Screencasts in the context of Architectural Foundations.
## Table of Contents
1. [Application Architecture](#application-architecture)
- [Event-Driven](#event-driven)
- [GraphQL](#graphql)
1. [Application Delivery](#application-delivery)
- [Asynchronous Messaging](#asynchronous-messaging)
- [Red Hat Fuse](#red-hat-fuse)
- [CICD Pipelines](#cicd-pipelines)
- [Tekton Pipelines](#tekton-pipelines)
- [Database Schema Management](#database-schema-management)
- [Liquibase Integration](#liquibase-integration)
- [Deployment Strategies](#deployment-strategies)
- [Canary Deployments](#canary-deployments)
- [Developer Platforms](#developer-platforms)
- [App Deployment](#app-deployment)
- [Local Development](#local-development)
- [Enterprise Modernization](#enterprise-modernization)
- [Multi-Cluster Strategy](#multi-cluster-strategy)
- [GitOps](#gitops)
- [Microservices Showcase](#microservices-showcase)
- [Java on Kubernetes](#java-on-kubernetes)
- [Eclipse JKube Tools](#eclipse-jkube-tools)
- [Load Balancing](#load-balancing)
- [High Availability](#high-availability)
1. [Application Development](#application-development)
- [Cloud-Native Java](#cloud-native-java)
- [Advanced Microservices](#advanced-microservices)
- [Spring Boot Microservices](#spring-boot-microservices)
- [Containerization](#containerization)
- [Java Spring Boot](#java-spring-boot)
- [Java](#java)
- [Build Automation](#build-automation)
- [Local Development](#local-development-1)
- [Microservices Demo](#microservices-demo)
- [Project Bootstrapping](#project-bootstrapping)
- [Microservices Showcase](#microservices-showcase-1)
- [Spring Boot](#spring-boot)
- [NodeJS](#nodejs)
- [Deployment Tooling](#deployment-tooling)
- [Process Automation](#process-automation)
- [RHPAM](#rhpam)
- [Reference Templates](#reference-templates)
- [OpenShift 4.8](#openshift-48)
- [Serverless Java](#serverless-java)
- [Quarkus Integration](#quarkus-integration)
- [gRPC Communication](#grpc-communication)
- [Tutorials](#tutorials)
- [Developer Demos](#developer-demos)
1. [Application Modernization](#application-modernization)
- [Integration Frameworks](#integration-frameworks)
- [OpenShift and Camel](#openshift-and-camel)
- [Spring to Quarkus](#spring-to-quarkus)
- [Framework Migration](#framework-migration)
1. [Architecture](#architecture)
- [Microservices](#microservices)
- [Demo Systems](#demo-systems)
1. [CI-CD](#ci-cd)
- [Azure AKS](#azure-aks)
- [GitHub Actions](#github-actions)
- [Java](#java-1)
- [Automated Workflows](#automated-workflows)
1. [CICD](#cicd)
- [GitOps](#gitops-1)
- [GitLab Agent](#gitlab-agent)
1. [CICD Infrastructure](#cicd-infrastructure)
- [Build and Packaging](#build-and-packaging)
- [Custom Packager](#custom-packager)
1. [CICD Pipelines](#cicd-pipelines-1)
- [Automated Cloud Deployments](#automated-cloud-deployments)
- [AWS ECS Deployments](#aws-ecs-deployments)
1. [Cloud Native Architecture](#cloud-native-architecture)
- [Microservices Migration](#microservices-migration)
- [Case Study](#case-study)
1. [Cloud Native Infrastructure](#cloud-native-infrastructure)
- [Enterprise Messaging](#enterprise-messaging)
- [Kafka on Kubernetes](#kafka-on-kubernetes)
- [APIs and Gateways](#apis-and-gateways)
- [Observability and Testing](#observability-and-testing)
- [Pod Mocking](#pod-mocking)
1. [Cloud Native Platforms](#cloud-native-platforms)
- [Red Hat OpenShift](#red-hat-openshift)
- [Local Development](#local-development-2)
- [CodeReady Containers](#codeready-containers)
1. [Cloud Platform](#cloud-platform)
- [Microsoft Azure](#microsoft-azure)
- [Sample Architecture](#sample-architecture)
1. [Cloud Providers](#cloud-providers)
- [Google GKE](#google-gke)
- [Application Dev](#application-dev)
1. [Cloud-Native Application Development](#cloud-native-application-development)
- [Go Development](#go-development)
- [Microservices](#microservices-1)
- [Open Source Software](#open-source-software)
- [Reference Implementations](#reference-implementations)
1. [Cloud-Native Applications](#cloud-native-applications)
- [Java Microservices](#java-microservices)
- [Azure Container Apps](#azure-container-apps)
- [Container Images](#container-images)
- [Kubernetes Deployment](#kubernetes-deployment)
- [Spring Cloud](#spring-cloud)
1. [Cloud-Native Infrastructure](#cloud-native-infrastructure)
- [Kubernetes Core](#kubernetes-core)
- [Declarative Templates](#declarative-templates)
- [Learning Resources](#learning-resources)
- [Kubernetes Courses](#kubernetes-courses)
1. [DevOps](#devops)
- [CICD Platforms](#cicd-platforms)
- [Jenkins](#jenkins)
- [Docker Containerization](#docker-containerization)
- [Modular Pipeline Library](#modular-pipeline-library)
- [Spring Petclinic Pipeline](#spring-petclinic-pipeline)
- [Cloud Native CICD](#cloud-native-cicd)
- [Jenkins X](#jenkins-x)
- [AWS EKS Integration](#aws-eks-integration)
- [Continuous Delivery](#continuous-delivery)
- [Infrastructure Provisioning](#infrastructure-provisioning)
- [Crossplane Spinnaker Integration](#crossplane-spinnaker-integration)
- [Spinnaker Setup](#spinnaker-setup)
- [Kubernetes Native Deployment](#kubernetes-native-deployment)
- [Kubernetes Integration](#kubernetes-integration)
- [AWS EKS](#aws-eks)
- [Jenkins Pipelines](#jenkins-pipelines)
1. [DevOps and Platform Engineering](#devops-and-platform-engineering)
- [Interview Preparation](#interview-preparation)
- [Reference Guides](#reference-guides)
1. [DevSecOps and Automation](#devsecops-and-automation)
- [End-to-End Pipelines](#end-to-end-pipelines)
- [Multi-Version Deployments](#multi-version-deployments)
- [Jenkins-based CI-CD](#jenkins-based-ci-cd)
- [AWS and Jenkins](#aws-and-jenkins)
- [Jenkins Architecture](#jenkins-architecture)
1. [DevSecOps and IDEs](#devsecops-and-ides)
- [Google Cloud Code](#google-cloud-code)
- [Developer Experience](#developer-experience)
- [Quality Assurance](#quality-assurance)
- [Azure Cloud Testing](#azure-cloud-testing)
1. [Developer Experience](#developer-experience-1)
- [Inner Loop Development](#inner-loop-development)
- [Local Tooling](#local-tooling)
1. [Enterprise Architecture](#enterprise-architecture)
- [Business Process Management](#business-process-management)
- [RHPAM](#rhpam-1)
1. [Event-Driven Architectures](#event-driven-architectures)
- [Cloud-Native Java](#cloud-native-java-1)
- [Kafka with Spring Boot](#kafka-with-spring-boot)
- [Go and CQRS](#go-and-cqrs)
- [gRPC Microservices](#grpc-microservices)
- [Observability and Diagnostics](#observability-and-diagnostics)
- [Kafka at Scale](#kafka-at-scale)
- [Realtime Streams](#realtime-streams)
- [FastAPI and Ably](#fastapi-and-ably)
- [Serverless Java](#serverless-java-1)
- [Quarkus with Kafka](#quarkus-with-kafka)
1. [GitOps](#gitops-2)
- [Continuous Deployment](#continuous-deployment)
- [Flux v2](#flux-v2)
1. [GitOps and Declarative Git](#gitops-and-declarative-git)
- [Developer Platforms](#developer-platforms-1)
- [GitHub Actions](#github-actions-1)
- [GitOps Tools](#gitops-tools)
- [Flux and Helm](#flux-and-helm)
1. [Infrastructure and Operations](#infrastructure-and-operations)
- [Observability and Service Mesh](#observability-and-service-mesh)
- [OpenShift ServiceMesh](#openshift-servicemesh)
1. [Infrastructure and Platform](#infrastructure-and-platform)
- [Autoscaling](#autoscaling)
- [Event-Driven Scaling](#event-driven-scaling)
1. [Infrastructure as Code](#infrastructure-as-code)
- [Serverless Deployment](#serverless-deployment)
- [Terraform and AWS Lambda](#terraform-and-aws-lambda)
1. [Infrastructure as Code and CI-CD](#infrastructure-as-code-and-ci-cd)
- [Developer Platforms](#developer-platforms-2)
- [CI-CD Pipelines](#ci-cd-pipelines)
1. [Java Cloud Native](#java-cloud-native)
- [Spring Cloud](#spring-cloud-1)
- [Kubernetes Integration](#kubernetes-integration-1)
1. [Local Development](#local-development-3)
- [Red Hat OpenShift Local](#red-hat-openshift-local)
- [Process Automation](#process-automation-1)
1. [Networking](#networking)
- [Security](#security)
- [Recipes](#recipes)
1. [Observability](#observability)
- [Microservices Telemetry](#microservices-telemetry)
- [Grafana Stack](#grafana-stack)
- [OpenTelemetry](#opentelemetry)
- [Reliability Engineering](#reliability-engineering)
1. [Orchestration](#orchestration)
- [AKS](#aks)
- [Masterclass](#masterclass)
- [Kubernetes](#kubernetes)
- [EKS Training](#eks-training)
1. [Platform Engineering](#platform-engineering)
- [GitOps and CI-CD](#gitops-and-ci-cd)
- [AWS and Argo CD](#aws-and-argo-cd)
- [Argo CD and OpenShift Pipelines](#argo-cd-and-openshift-pipelines)
- [Multi-Cluster GitOps](#multi-cluster-gitops)
- [Serverless Workflows](#serverless-workflows)
- [GitOps and Deployment](#gitops-and-deployment)
- [Flux Ecosystem](#flux-ecosystem)
- [Machine Learning Operations](#machine-learning-operations)
- [OpenShift AI](#openshift-ai)
1. [Quality Assurance](#quality-assurance-1)
- [API Testing Automation](#api-testing-automation)
- [Newman Integration](#newman-integration)
- [Jenkins Pipelines](#jenkins-pipelines-1)
1. [Reference Architectures](#reference-architectures)
- [Industry Verticals](#industry-verticals)
- [Healthcare](#healthcare)
1. [Security](#security-1)
- [Vulnerabilities](#vulnerabilities)
- [Hacking Labs](#hacking-labs)
1. [Serverless and Knative](#serverless-and-knative)
- [Serverless Frameworks](#serverless-frameworks)
- [Knative Serving](#knative-serving)
- [Knative Tutorial](#knative-tutorial)
- [Serverless Java](#serverless-java-2)
- [Knative Service](#knative-service)
1. [Service Mesh](#service-mesh)
- [Consul](#consul)
- [Local Development](#local-development-4)
- [GitOps](#gitops-3)
- [Progressive Delivery](#progressive-delivery)
1. [Software Development](#software-development)
- [Microservices](#microservices-2)
- [Reference Architecture](#reference-architecture)
- [Spring Petclinic](#spring-petclinic)
- [Spring Petclinic Red Hat](#spring-petclinic-red-hat)
## Application Architecture
### Event-Driven
+3 -11
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Devel Sites resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Developer Ecosystem)."
---
# Development and Frameworks. Websites for web developers
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,17 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Development and Frameworks. Websites for web developers in the context of Developer Ecosystem.
## Table of Contents
1. [Backend-as-a-Service](#backend-as-a-service)
- [Google Cloud](#google-cloud)
- [BaaS Platform](#baas-platform)
- [PostgreSQL](#postgresql)
- [BaaS Platform](#baas-platform-1)
1. [Software Engineering](#software-engineering)
- [Languages](#languages)
- [Cloud-Native Programming](#cloud-native-programming)
## Backend-as-a-Service
### Google Cloud
+3 -37
View File
@@ -1,3 +1,6 @@
---
description: "Top Developerportals resources for 2026, AI-ranked: Backstage Developer Portal, apisix and more — curated Cloud Native tools, guides and references."
---
# API Marketplaces. API Management with API Gateways and Developer Portals
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,43 +9,6 @@
!!! info "Architectural Context"
Detailed reference for API Marketplaces. API Management with API Gateways and Developer Portals in the context of Platform & Site Reliability.
## Table of Contents
1. [Architecture](#architecture)
- [API Management](#api-management)
- [API Economy](#api-economy)
- [API Governance](#api-governance)
- [Case Studies](#case-studies)
- [Cloud Services](#cloud-services)
- [Gateway Engines](#gateway-engines)
- [Infrastructure Patterns](#infrastructure-patterns)
- [Kubernetes Orchestration](#kubernetes-orchestration)
- [Observability Platforms](#observability-platforms)
- [Operations and Deployment](#operations-and-deployment)
- [Persistent Connections](#persistent-connections)
- [Red Hat Ecosystem](#red-hat-ecosystem)
- [Security and Protocols](#security-and-protocols)
- [Video Walkthroughs](#video-walkthroughs)
- [Design Patterns](#design-patterns)
- [Microservices Patterns](#microservices-patterns)
- [Microservices](#microservices)
- [API Gateways](#api-gateways)
1. [Domain APIs](#domain-apis)
- [IoT](#iot)
- [Smart Cities](#smart-cities)
1. [Infrastructure](#infrastructure)
- [API Gateway](#api-gateway)
- [Cloud Native](#cloud-native)
- [Go Engines](#go-engines)
- [Industry News](#industry-news)
- [Java Spring Ecosystem](#java-spring-ecosystem)
- [Open Source Governance](#open-source-governance)
1. [Platform Engineering](#platform-engineering)
- [Developer Portal](#developer-portal)
- [Internal Developer Platforms](#internal-developer-platforms)
- [Kubernetes Deployment](#kubernetes-deployment)
- [Tutorials](#tutorials)
## Architecture
### API Management
+3 -26
View File
@@ -1,3 +1,6 @@
---
description: "Top DevOps Tools resources for 2026, AI-ranked: Claude Code Templates, Devtron and more — curated Cloud Native tools, guides and references."
---
# DevOps Tools aka Toolchain
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,32 +9,6 @@
!!! info "Architectural Context"
Detailed reference for DevOps Tools aka Toolchain in the context of Architectural Foundations.
## Table of Contents
1. [Cloud Providers](#cloud-providers)
- [AWS](#aws)
- [CICD and Security](#cicd-and-security)
1. [Deployment and Delivery](#deployment-and-delivery)
- [Platform Engineering](#platform-engineering)
- [Kubernetes Management](#kubernetes-management)
1. [DevOps and Platform Engineering](#devops-and-platform-engineering)
- [Architecture and Orchestration](#architecture-and-orchestration)
- [Foundational Primer](#foundational-primer)
1. [Developer Tooling](#developer-tooling)
- [AI Code Assistants](#ai-code-assistants)
- [Prompt Templates](#prompt-templates)
- [Developer Knowledge](#developer-knowledge)
- [Curation Repositories](#curation-repositories)
1. [Kubernetes and Container Orchestration](#kubernetes-and-container-orchestration)
- [Platform Engineering](#platform-engineering-1)
- [AppOps and GitOps](#appops-and-gitops)
1. [Local Developer Environment](#local-developer-environment)
- [Container Runtime Setup](#container-runtime-setup)
- [Docker Compose](#docker-compose)
1. [Orchestration and Packaging](#orchestration-and-packaging)
- [Cloud-Native Delivery](#cloud-native-delivery)
- [Keptn](#keptn)
## Cloud Providers
### AWS
+3 -93
View File
@@ -1,3 +1,6 @@
---
description: "Top DevOps resources for 2026, AI-ranked: Skills for Real Engineers, NoOps and more — curated Cloud Native tools, guides and references."
---
# DevOps
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,99 +9,6 @@
!!! info "Architectural Context"
Detailed reference for DevOps in the context of Platform & Site Reliability.
## Table of Contents
1. [Architecture](#architecture)
- [Patterns](#patterns)
- [Twelve-Factor App](#twelve-factor-app)
1. [Automation](#automation)
- [Agentic Systems](#agentic-systems)
- [MCP Server](#mcp-server)
- [NoOps Evolution](#noops-evolution)
1. [Cloud Architecture](#cloud-architecture)
- [Multicloud Solutions](#multicloud-solutions)
- [Ops Dynamics](#ops-dynamics)
- [NoOps and Serverless](#noops-and-serverless)
- [Overview](#overview)
- [Serverless Systems](#serverless-systems)
- [DevOps Pipelines](#devops-pipelines)
1. [Cloud Native](#cloud-native)
- [Kubernetes Orchestration](#kubernetes-orchestration)
- [DevOps-as-a-Service](#devops-as-a-service)
1. [Containerization](#containerization)
- [DevOps](#devops-1)
- [Evolution](#evolution)
- [Docker](#docker)
- [Fundamentals](#fundamentals)
- [Kubernetes](#kubernetes)
- [Configuration Management](#configuration-management)
- [Culture](#culture)
1. [Continuous Delivery](#continuous-delivery)
- [CICD Pipeline Design](#cicd-pipeline-design)
- [Database Delivery](#database-delivery)
- [Release Strategies](#release-strategies)
- [Security Policy](#security-policy)
1. [DevOps and SRE](#devops-and-sre)
- [CICD Pipelines](#cicd-pipelines)
- [Architecture](#architecture-1)
- [Tool Integrations](#tool-integrations)
- [Culture and Organizations](#culture-and-organizations)
- [Netflix Engineering](#netflix-engineering)
- [Industry Evolution](#industry-evolution)
- [Trends](#trends)
- [Infrastructure](#infrastructure)
- [On-Premises Architecture](#on-premises-architecture)
- [Windows Ecosystems](#windows-ecosystems)
- [Roadmaps and Career](#roadmaps-and-career)
- [Skill Sets](#skill-sets)
- [Tooling Landscapes](#tooling-landscapes)
- [Visual Architecture](#visual-architecture)
1. [DevOps Culture](#devops-culture)
- [Platform Engineering](#platform-engineering)
- [PlatformOps](#platformops)
1. [DevOps Methodology](#devops-methodology)
- [Application Delivery](#application-delivery)
- [Performance Optimization](#performance-optimization)
- [Foundational Principles](#foundational-principles)
- [Culture and Process](#culture-and-process)
- [Software Lifecycle Models](#software-lifecycle-models)
- [Strategic Architecture](#strategic-architecture)
- [Tooling Ecosystem](#tooling-ecosystem)
- [Platform Evaluation](#platform-evaluation)
1. [DevSecOps and IDEs](#devsecops-and-ides)
- [Google Cloud Code](#google-cloud-code)
- [Developer Experience](#developer-experience)
1. [Education](#education)
- [Training Courses](#training-courses)
1. [Industry Metrics](#industry-metrics)
- [DORA Reports](#dora-reports)
1. [Microservices](#microservices)
- [API Management](#api-management)
- [DevOps Delivery](#devops-delivery)
- [DevOps Synergy](#devops-synergy)
- [Architecture Alignment](#architecture-alignment)
- [DevSecOps](#devsecops)
- [Cloud Native Security](#cloud-native-security)
- [Event-Driven](#event-driven)
- [Application Delivery](#application-delivery-1)
1. [Orchestration and Containers](#orchestration-and-containers)
- [Containerization](#containerization-1)
- [CICD Integration](#cicd-integration)
- [Kubernetes](#kubernetes-1)
- [DevOps Integration](#devops-integration)
1. [Platform Engineering](#platform-engineering-1)
- [AI Platform](#ai-platform)
- [GPU Orchestration](#gpu-orchestration)
- [Declarative Configuration](#declarative-configuration)
- [KusionStack](#kusionstack)
- [Developer Self-Service](#developer-self-service)
- [SRE Patterns](#sre-patterns)
- [IDP Tooling](#idp-tooling)
- [Developer Portals](#developer-portals)
1. [Software Engineering](#software-engineering)
- [Professional Development](#professional-development)
- [Core Architectures](#core-architectures)
## Architecture
### Patterns
+3 -168
View File
@@ -1,3 +1,6 @@
---
description: "Top Devsecops resources for 2026, AI-ranked: Clair, trivy and more — curated Cloud Native tools, guides and references."
---
# DevSecOps and Security. Container
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,174 +9,6 @@
!!! info "Architectural Context"
Detailed reference for DevSecOps and Security. Container in the context of Hardened Infrastructure.
## Table of Contents
1. [Application Development](#application-development)
- [Cloud-Native Java](#cloud-native-java)
- [Tanzu Framework](#tanzu-framework)
1. [Container Infrastructure](#container-infrastructure)
- [CI-CD Pipelines](#ci-cd-pipelines)
- [Pipeline Security](#pipeline-security)
1. [DevOps](#devops)
- [CICD Pipeline Security](#cicd-pipeline-security)
- [Harness CD Integration](#harness-cd-integration)
- [Jenkins Integrations](#jenkins-integrations)
- [Observability](#observability)
- [Dashboards](#dashboards)
- [Static Analysis](#static-analysis)
- [Kubernetes Linting](#kubernetes-linting)
- [Kubernetes Validation](#kubernetes-validation)
1. [Infrastructure](#infrastructure)
- [Network Security](#network-security)
- [Ingress Control](#ingress-control)
- [Service Mesh](#service-mesh)
- [Ingress Control](#ingress-control-1)
1. [Kubernetes Security](#kubernetes-security)
- [Cloud Native Security Frameworks](#cloud-native-security-frameworks)
- [Official Standards](#official-standards)
- [Compliance and Governance](#compliance-and-governance)
- [Security Frameworks](#security-frameworks)
- [Security Toolkits and Scanning](#security-toolkits-and-scanning)
- [Open Source Curation](#open-source-curation)
1. [Observability](#observability-1)
- [Logging](#logging)
- [Fluent Bit Engine](#fluent-bit-engine)
1. [Security](#security)
- [API Security](#api-security)
- [Microservices Architecture](#microservices-architecture)
- [Access Control](#access-control)
- [Zero Trust Network Access](#zero-trust-network-access)
- [Access Management](#access-management)
- [Passwordless Authentication](#passwordless-authentication)
- [Application Security](#application-security)
- [Pentesting](#pentesting)
- [Spring Boot Integrations](#spring-boot-integrations)
- [WAF and API Security](#waf-and-api-security)
- [Architecture Patterns](#architecture-patterns)
- [Microservice Security](#microservice-security)
- [CI-CD](#ci-cd)
- [Kubernetes Hardening](#kubernetes-hardening)
- [Cloud Security](#cloud-security)
- [CWPP Frameworks](#cwpp-frameworks)
- [Enterprise Security Platforms](#enterprise-security-platforms)
- [Telemetry and Observability](#telemetry-and-observability)
- [Cloud-Native](#cloud-native)
- [Architecture Fundamentals](#architecture-fundamentals)
- [Zero Trust Architectures](#zero-trust-architectures)
- [Container Security](#container-security)
- [Aqua Security Integration](#aqua-security-integration)
- [DevSecOps](#devsecops)
- [Cryptography](#cryptography)
- [PKI Automation](#pki-automation)
- [DevSecOps](#devsecops-1)
- [Enterprise Infrastructure](#enterprise-infrastructure)
- [Education and Training](#education-and-training)
- [Vulnerable Labs](#vulnerable-labs)
- [GitOps](#gitops)
- [Policy as Code](#policy-as-code)
- [Identity and Access Management](#identity-and-access-management)
- [Authentication Proxy](#authentication-proxy)
- [Core Fundamentals](#core-fundamentals)
- [High Availability](#high-availability)
- [Ingress Integration](#ingress-integration)
- [Microservices Authorization](#microservices-authorization)
- [OIDC Provider](#oidc-provider)
- [Proxy Gateways](#proxy-gateways)
- [SSO Solution](#sso-solution)
- [State Management](#state-management)
- [Tokens](#tokens)
- [Zero Trust Proxy](#zero-trust-proxy)
- [Image Signing](#image-signing)
- [Cryptographic Trust](#cryptographic-trust)
- [Incident Response](#incident-response)
- [Container Forensics](#container-forensics)
- [Kubernetes Security](#kubernetes-security-1)
- [Image Encryption](#image-encryption)
- [Policy as Code](#policy-as-code-1)
- [Self-Hosted Orchestration](#self-hosted-orchestration)
- [Signature Verification](#signature-verification)
- [Microservices Security](#microservices-security)
- [Architecture Patterns](#architecture-patterns-1)
- [Behavior Monitoring](#behavior-monitoring)
- [Mitigation Standards](#mitigation-standards)
- [API Security](#api-security-1)
- [Cloud Native Hardening](#cloud-native-hardening)
- [Kubernetes Hardening](#kubernetes-hardening-1)
- [OWASP Top 10](#owasp-top-10)
- [Network Security](#network-security-1)
- [CNI Data Plane](#cni-data-plane)
- [Web Application Firewall](#web-application-firewall)
- [Runtime Security](#runtime-security)
- [KubeArmor Orchestration](#kubearmor-orchestration)
- [LSM Enforcement](#lsm-enforcement)
- [Threat Detection](#threat-detection)
- [Secret Management](#secret-management)
- [Helm Automation](#helm-automation)
- [Helm Security](#helm-security)
- [Secrets Management](#secrets-management)
- [AWS Secrets Manager](#aws-secrets-manager)
- [CICD Pipelines](#cicd-pipelines)
- [CSI Driver](#csi-driver)
- [CSI Driver Providers](#csi-driver-providers)
- [Centralized Vaults](#centralized-vaults)
- [Cloud Managed Services](#cloud-managed-services)
- [CyberArk Conjur](#cyberark-conjur)
- [GCP Secret Manager](#gcp-secret-manager)
- [GCP Security](#gcp-security)
- [GitOps Encrypted Secrets](#gitops-encrypted-secrets)
- [Kafka Integration](#kafka-integration)
- [Kubernetes Admission Controllers](#kubernetes-admission-controllers)
- [Kubernetes Integration](#kubernetes-integration)
- [Kubernetes Security](#kubernetes-security-2)
- [Kubernetes Sidecar Injection](#kubernetes-sidecar-injection)
- [Risk Mitigation](#risk-mitigation)
- [Serverless Integration](#serverless-integration)
- [Serverless](#serverless)
- [FaaS Hardening](#faas-hardening)
- [Serverless Security](#serverless-security)
- [Knative Security Guard](#knative-security-guard)
- [Software Engineering](#software-engineering)
- [Secure Design Principles](#secure-design-principles)
- [Static Analysis](#static-analysis-1)
- [Infrastructure as Code](#infrastructure-as-code)
- [Supply Chain Security](#supply-chain-security)
- [AWS Integration](#aws-integration)
- [Container Signing](#container-signing)
- [Cryptographic Signatures](#cryptographic-signatures)
- [Keyless Signing](#keyless-signing)
- [Threat Detection](#threat-detection-1)
- [Audit Logs Parsing](#audit-logs-parsing)
- [Container Monitoring Tools](#container-monitoring-tools)
- [Malware Scanning](#malware-scanning)
- [Threat Intelligence](#threat-intelligence)
- [Container Runtime Security](#container-runtime-security)
- [Kubernetes Exploits](#kubernetes-exploits)
- [Kubernetes Exposures](#kubernetes-exposures)
- [Vulnerabilities](#vulnerabilities)
- [CRI-O and Podman Security](#cri-o-and-podman-security)
- [Log4Shell Mitigations](#log4shell-mitigations)
- [Log4j Detection Agent](#log4j-detection-agent)
- [Observability Mitigations](#observability-mitigations)
- [Vulnerability Management](#vulnerability-management)
- [Base Images](#base-images)
- [CICD Pipeline Security](#cicd-pipeline-security-1)
- [CNAPP Platform](#cnapp-platform)
- [Container Scanning](#container-scanning)
- [Kubernetes Hardening](#kubernetes-hardening-2)
1. [Security and Compliance](#security-and-compliance)
- [Container Security](#container-security-1)
- [Runtime Observability](#runtime-observability)
- [Secrets Management](#secrets-management-1)
- [HashiCorp Vault](#hashicorp-vault)
- [Vulnerability Scanning](#vulnerability-scanning)
- [Grype and GitLab](#grype-and-gitlab)
1. [Security and Governance](#security-and-governance)
- [DevSecOps](#devsecops-2)
- [AWS Implementations](#aws-implementations)
- [Automated Pipelines](#automated-pipelines)
- [Commercial CD](#commercial-cd)
- [Enterprise Compliance](#enterprise-compliance)
## Application Development
### Cloud-Native Java
-9
View File
@@ -6,15 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Digital Money in the context of Career & Industry.
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [Fintech](#fintech)
- [Cryptocurrency](#cryptocurrency)
- [Stablecoins](#stablecoins)
## Architectural Foundations
### Kubernetes Tools
+3 -11
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Digitalocean resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# Digital Ocean
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,17 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Digital Ocean in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Cloud Native](#cloud-native)
- [Managed Kubernetes](#managed-kubernetes)
- [Scaleway Kapsule](#scaleway-kapsule)
1. [Cloud Providers](#cloud-providers)
- [Alternative Clouds](#alternative-clouds)
- [Visual Deployment](#visual-deployment)
- [PaaS](#paas)
- [DigitalOcean App Platform](#digitalocean-app-platform)
## Cloud Native
### Managed Kubernetes
+3 -58
View File
@@ -1,3 +1,6 @@
---
description: "Top Docker resources for 2026, AI-ranked: Awesome Compose, jib and more — curated Cloud Native tools, guides and references."
---
# Docker
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,64 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Docker in the context of The Container Stack.
## Table of Contents
1. [App Development](#app-development)
- [CICD](#cicd)
- [GitHub Actions](#github-actions)
1. [Application Architecture](#application-architecture)
- [Microservices](#microservices)
- [Java Ecosystem](#java-ecosystem)
1. [Application Development](#application-development)
- [Java](#java)
- [Image Building](#image-building)
- [Node.js](#nodejs)
- [Image Building](#image-building-1)
- [Python](#python)
- [Local Environments](#local-environments)
1. [CI-CD](#ci-cd)
- [DevOps Pipelines](#devops-pipelines)
- [Container Delivery](#container-delivery)
1. [Cloud Orchestration](#cloud-orchestration)
- [Multi-Cloud Deployments](#multi-cloud-deployments)
- [Application Architecture](#application-architecture-1)
1. [Containers](#containers)
- [Architectural Patterns](#architectural-patterns)
- [Anti-patterns](#anti-patterns)
- [Build Optimization](#build-optimization)
- [Java](#java-1)
- [Kubernetes Deployment](#kubernetes-deployment)
- [Node.js](#nodejs-1)
- [Python](#python-1)
- [Reference Implementation](#reference-implementation)
- [Rust](#rust)
- [Security and Hardening](#security-and-hardening)
- [Developer Tooling](#developer-tooling)
- [Cloud Emulation](#cloud-emulation)
- [Diagnostics](#diagnostics)
- [Debugging Runtimes](#debugging-runtimes)
- [Docker Basics](#docker-basics)
- [Workshops](#workshops)
- [Production Operations](#production-operations)
- [Infrastructure](#infrastructure)
- [Security and Hardening](#security-and-hardening-1)
- [Node.js](#nodejs-2)
- [Vulnerability Management](#vulnerability-management)
1. [Infrastructure](#infrastructure-1)
- [Docker Compose](#docker-compose)
- [Reference Architectures](#reference-architectures)
- [Kubernetes](#kubernetes)
- [Container Management](#container-management)
- [Local Environments](#local-environments-1)
- [Docker Compose](#docker-compose-1)
1. [Local Developer Environment](#local-developer-environment)
- [Container Runtime Setup](#container-runtime-setup)
- [Docker Compose](#docker-compose-2)
1. [Security](#security)
- [Container Security](#container-security)
- [Dockerfile optimization](#dockerfile-optimization)
- [RunAsUser](#runasuser)
## App Development
### CICD
-9
View File
@@ -6,15 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Document Object Model (DOM) in the context of Developer Ecosystem.
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [Web Development](#web-development)
- [DOM](#dom)
- [JavaScript](#javascript)
## Architectural Foundations
### Kubernetes Tools
+3 -20
View File
@@ -1,3 +1,6 @@
---
description: "Top Dotnet resources for 2026, AI-ranked: Lamar, Paradigm framework and more — curated Cloud Native tools, guides and references."
---
# Microsoft .NET
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,26 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Microsoft .NET in the context of Developer Ecosystem.
## Table of Contents
1. [Application Development](#application-development)
- [.NET Framework](#net-framework)
- [Architectural Guides](#architectural-guides)
- [Event-Driven Microservices](#event-driven-microservices)
- [Microservices Design](#microservices-design)
- [gRPC Communication](#grpc-communication)
1. [Cloud Infrastructure and Orchestration](#cloud-infrastructure-and-orchestration)
- [Container Orchestration](#container-orchestration)
- [Kubernetes](#kubernetes)
1. [Software Architecture and .NET Development](#software-architecture-and-net-development)
- [Application Diagnostics](#application-diagnostics)
- [Environment Validation](#environment-validation)
- [IoC Containers](#ioc-containers)
- [Microservices](#microservices)
- [Resilience Patterns](#resilience-patterns)
- [Web Frameworks](#web-frameworks)
- [Microservices](#microservices-1)
## Application Development
### .NET Framework
+4 -9
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Edge Computing resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# Edge Computing
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,14 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Edge Computing in the context of Cloud Providers (Hyperscalers).
## Table of Contents
1. [Architecture](#architecture)
- [Edge Computing](#edge-computing-1)
- [Distributed Systems](#distributed-systems)
1. [Kubernetes Edge](#kubernetes-edge)
- [MicroShift](#microshift)
## Architecture
### Edge Computing (1)
@@ -28,7 +23,7 @@
- **(2021)** [developers.redhat.com: Bring your Kubernetes workloads to the edge](https://developers.redhat.com/articles/2021/11/22/bring-your-kubernetes-workloads-edge) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A guide on scaling down and adapting standard containerized workloads to small, resource-constrained edge computing environments. It outlines storage optimizations and minimized memory footprint topologies.
---
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Oraclecloud](./oraclecloud.md) | [AWS Architecture](./aws-architecture.md)
💡 **Explore Related:** [Googlecloudplatform](./GoogleCloudPlatform.md) | [Oraclecloud](./oraclecloud.md) | [AWS](./aws.md)
🔗 **See Also:** [Postman](./postman.md) | [Cloudflare](./cloudflare.md)
+3 -12
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Elearning resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Career & Industry)."
---
# E-learning
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,18 +9,6 @@
!!! info "Architectural Context"
Detailed reference for E-learning in the context of Career & Industry.
## Table of Contents
1. [Orchestration](#orchestration)
- [Infrastructure as Code](#infrastructure-as-code)
- [Real-World Architecture](#real-world-architecture)
1. [Professional Development](#professional-development)
- [Higher Education](#higher-education)
- [Software Engineering](#software-engineering)
1. [Software Development](#software-development)
- [Software Architecture](#software-architecture)
- [DDD and Testing](#ddd-and-testing)
## Orchestration
### Infrastructure as Code
+3 -6
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Embedded Servlet Containers resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Developer Ecosystem)."
---
# Embedded Servlet Containers in SpringBoot: Jetty, Tomcat, Undertow and more
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,12 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Embedded Servlet Containers in SpringBoot: Jetty, Tomcat, Undertow and more in the context of Developer Ecosystem.
## Table of Contents
1. [Platform Engineering](#platform-engineering)
- [Application Servers](#application-servers)
- [Web Servers](#web-servers)
## Platform Engineering
### Application Servers
+3 -22
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Faq resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# Microservices FAQ
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,28 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Microservices FAQ in the context of Architectural Foundations.
## Table of Contents
1. [Architecture](#architecture)
- [Microservices](#microservices)
- [Caching](#caching)
- [Decision Frameworks](#decision-frameworks)
- [History](#history)
- [Resiliency Patterns](#resiliency-patterns)
1. [Microservices Architecture](#microservices-architecture)
- [Dependency Management](#dependency-management)
- [Patterns](#patterns)
- [Fundamentals](#fundamentals)
- [Best Practices](#best-practices)
- [Comparisons](#comparisons)
- [Roadmap](#roadmap)
- [UI and Frontend](#ui-and-frontend)
- [Patterns](#patterns-1)
- [Service Discovery](#service-discovery)
1. [Migration](#migration)
- [Containerization](#containerization)
- [Case Study](#case-study)
## Architecture
### Microservices
+56 -56
View File
@@ -5,15 +5,15 @@
<link>https://nubenetes.com/</link>
<description>AI-curated top picks from the Cloud Native &amp; Kubernetes ecosystem</description>
<language>en</language>
<lastBuildDate>Fri, 19 Jun 2026 11:58:33 -0000</lastBuildDate>
<lastBuildDate>Thu, 18 Jun 2026 00:00:00 -0000</lastBuildDate>
<atom:link href="https://nubenetes.com/feed.xml" rel="self" type="application/rss+xml"/>
<item>
<title>docs.anthropic.com: Claude Code CLI</title>
<link>https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview</link>
<guid isPermaLink="true">https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview</guid>
<title>Kubecost 🌟</title>
<link>https://www.apptio.com/products/kubecost/?src=kc-com</link>
<guid isPermaLink="true">https://www.apptio.com/products/kubecost/?src=kc-com</guid>
<pubDate>Thu, 18 Jun 2026 00:00:00 -0000</pubDate>
<category>AI &amp; Agents</category>
<description>[CRITICAL] Anthropic's official agentic CLI redefines developer workflows by allowing autonomous agents to execute terminal commands, run tests, and manage Git directly.</description>
<category>Kubernetes &amp; Orchestration</category>
<description>[CRITICAL] It is the industry-standard tool for real-time cost allocation, critical for FinOps practices in multi-cluster environments.</description>
</item>
<item>
<title>antigravity.google: Google Antigravity Agentic Platform</title>
@@ -21,15 +21,23 @@
<guid isPermaLink="true">https://antigravity.google</guid>
<pubDate>Thu, 18 Jun 2026 00:00:00 -0000</pubDate>
<category>AI &amp; Agents</category>
<description>[CRITICAL] Bridges the gap between local agent prototypes and production-grade deployments on secure Google Kubernetes Engine (GKE) clusters.</description>
<description>[CRITICAL] It directly bridges the gap between local agent prototypes and production-grade Google Kubernetes Engine (GKE) deployments for stateful AI agents.</description>
</item>
<item>
<title>cursor.com: Cursor AI Code Editor</title>
<link>https://cursor.com</link>
<guid isPermaLink="true">https://cursor.com</guid>
<title>docs.anthropic.com: Claude Code CLI</title>
<link>https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview</link>
<guid isPermaLink="true">https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview</guid>
<pubDate>Thu, 18 Jun 2026 00:00:00 -0000</pubDate>
<category>AI &amp; Agents</category>
<description>[CRITICAL] As the leading AI-first IDE, it has shifted the industry paradigm of daily software engineering through multi-file agentic code generation.</description>
<description>[CRITICAL] Anthropic's official tool fundamentally shifts developer workflows by bringing autonomous agentic coding and execution directly into the terminal.</description>
</item>
<item>
<title>Project Calico 🌟</title>
<link>https://www.tigera.io/project-calico</link>
<guid isPermaLink="true">https://www.tigera.io/project-calico</guid>
<pubDate>Thu, 18 Jun 2026 00:00:00 -0000</pubDate>
<category>Security &amp; Compliance</category>
<description>[CRITICAL] Calico is an industry-standard networking and security engine enabling high-performance eBPF container network interface enforcement.</description>
</item>
<item>
<title>Crossplane</title>
@@ -37,7 +45,15 @@
<guid isPermaLink="true">https://nubenetes.com/crossplane</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Kubernetes &amp; Orchestration</category>
<description>[CRITICAL] It represents a major paradigm shift, transforming Kubernetes from a container orchestrator into a universal control plane for all cloud infrastructure.</description>
<description>[CRITICAL] Crossplane spearheads a major paradigm shift by turning Kubernetes into a universal control plane to declaratively manage any cloud infrastructure.</description>
</item>
<item>
<title>==Azure/azure-workload-identity==</title>
<link>https://github.com/Azure/azure-workload-identity</link>
<guid isPermaLink="true">https://github.com/Azure/azure-workload-identity</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Kubernetes &amp; Orchestration</category>
<description>[CRITICAL] This is the enterprise standard for secure, zero-trust OIDC identity federation between Kubernetes and Microsoft Entra ID.</description>
</item>
<item>
<title>NVIDIA/k8s-device-plugin: NVIDIA device plugin for Kubernetes</title>
@@ -45,7 +61,7 @@
<guid isPermaLink="true">https://github.com/NVIDIA/k8s-device-plugin</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Kubernetes &amp; Orchestration</category>
<description>[CRITICAL] It is the essential hardware-enablement layer allowing Kubernetes to dynamically schedule and manage physical GPUs for demanding AI and ML workloads.</description>
<description>[CRITICAL] It acts as the indispensable hardware integration layer required to orchestrate GPU-accelerated AI and ML workloads on Kubernetes.</description>
</item>
<item>
<title>vLLM on Kubernetes</title>
@@ -53,7 +69,7 @@
<guid isPermaLink="true">https://github.com/vllm-project/vllm</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>AI &amp; Agents</category>
<description>[CRITICAL] Standardizes memory-efficient LLM serving via PagedAttention and provides concrete deployment templates for production Kubernetes clusters.</description>
<description>[CRITICAL] It provides the definitive standard for hosting highly optimized, memory-efficient LLM serving engines using PagedAttention on Kubernetes.</description>
</item>
<item>
<title>Tetragon (Cilium)</title>
@@ -61,7 +77,15 @@
<guid isPermaLink="true">https://github.com/cilium/tetragon</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Security &amp; Compliance</category>
<description>[CRITICAL] Provides kernel-level, eBPF-powered security observability and real-time threat enforcement directly within Kubernetes clusters.</description>
<description>[CRITICAL] eBPF-powered security observability at the kernel level represents a paradigm shift for Kubernetes runtime enforcement.</description>
</item>
<item>
<title>==dagger/dagger: Dagger is a portable devkit for CICD==</title>
<link>https://github.com/dagger/dagger</link>
<guid isPermaLink="true">https://github.com/dagger/dagger</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>CI/CD &amp; GitOps</category>
<description>[CRITICAL] Dagger represents a major paradigm shift in CI/CD by replacing brittle YAML pipelines with portable, code-driven workflows executed on BuildKit.</description>
</item>
<item>
<title>kube-state-metrics 🌟</title>
@@ -69,15 +93,7 @@
<guid isPermaLink="true">https://github.com/kubernetes/kube-state-metrics</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Observability, SRE &amp; Testing</category>
<description>[CRITICAL] This indispensable agent translates raw Kubernetes API server states into actionable Prometheus metrics for cluster-wide health tracking.</description>
</item>
<item>
<title>buildkit</title>
<link>https://docs.docker.com/build</link>
<guid isPermaLink="true">https://docs.docker.com/build</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Containers &amp; Runtime</category>
<description>[CRITICAL] Docker's next-generation build engine radically accelerates container image creation through concurrent stage execution and advanced caching.</description>
<description>[CRITICAL] Essential cluster service that translates internal Kubernetes API resources into Prometheus metrics for accurate, real-time infrastructure state analysis.</description>
</item>
<item>
<title>github.com: Istio</title>
@@ -85,7 +101,15 @@
<guid isPermaLink="true">https://github.com/istio/istio</guid>
<pubDate>Sun, 14 Jun 2026 00:00:00 -0000</pubDate>
<category>Networking &amp; Service Mesh</category>
<description>[CRITICAL] As the dominant enterprise service mesh, Istio defines the standard for secure, high-performance microservices traffic management and observability.</description>
<description>[CRITICAL] The leading enterprise-grade service mesh that defines how modern cloud-native architectures secure, control, and observe traffic.</description>
</item>
<item>
<title>Teleport 🌟</title>
<link>https://github.com/gravitational/teleport</link>
<guid isPermaLink="true">https://github.com/gravitational/teleport</guid>
<pubDate>Sat, 13 Jun 2026 00:00:00 -0000</pubDate>
<category>Kubernetes &amp; Orchestration</category>
<description>[CRITICAL] Teleport is a leading zero-trust access gateway that consolidates and audits multi-protocol, multi-cluster infrastructure access.</description>
</item>
<item>
<title>github: Flux Version 2</title>
@@ -93,7 +117,7 @@
<guid isPermaLink="true">https://github.com/fluxcd/flux2</guid>
<pubDate>Sat, 13 Jun 2026 00:00:00 -0000</pubDate>
<category>CI/CD &amp; GitOps</category>
<description>[CRITICAL] A foundational GitOps controller toolkit that provides highly parallel, decoupled resource reconciliation directly inside Kubernetes.</description>
<description>[CRITICAL] Flux v2 is a foundational CNCF graduated project that implements a highly parallelized, modular GitOps controller architecture for enterprise-grade reconciliation.</description>
</item>
<item>
<title>github.com/prometheus/prometheus</title>
@@ -101,7 +125,7 @@
<guid isPermaLink="true">https://github.com/prometheus/prometheus</guid>
<pubDate>Sat, 13 Jun 2026 00:00:00 -0000</pubDate>
<category>Observability, SRE &amp; Testing</category>
<description>[CRITICAL] Prometheus remains the absolute cornerstone of cloud-native telemetry and the primary backend for modern SRE observability.</description>
<description>[CRITICAL] Serves as the foundational, de-facto standard metrics database and query engine powering the entire cloud-native observability ecosystem.</description>
</item>
<item>
<title>containerd - An open and reliable container runtime</title>
@@ -109,7 +133,7 @@
<guid isPermaLink="true">https://github.com/containerd/containerd</guid>
<pubDate>Sat, 13 Jun 2026 00:00:00 -0000</pubDate>
<category>Containers &amp; Runtime</category>
<description>[CRITICAL] Following Docker's runtime deprecation, containerd has become the industry-standard, CNCF-graduated core runtime powering Kubernetes clusters globally.</description>
<description>[CRITICAL] As the industry-standard container runtime for Kubernetes, containerd is foundational for modern cloud-native container execution.</description>
</item>
<item>
<title>runc</title>
@@ -117,7 +141,7 @@
<guid isPermaLink="true">https://github.com/opencontainers/runc</guid>
<pubDate>Sat, 13 Jun 2026 00:00:00 -0000</pubDate>
<category>Containers &amp; Runtime</category>
<description>[CRITICAL] As the canonical, OCI-compliant low-level runtime engine, runc is the fundamental foundation upon which most modern container ecosystems are built.</description>
<description>[CRITICAL] It is the canonical, low-level OCI-compliant container runtime that directly spawns and runs container processes across the industry.</description>
</item>
<item>
<title>hashicorp/vault</title>
@@ -125,7 +149,7 @@
<guid isPermaLink="true">https://github.com/hashicorp/vault</guid>
<pubDate>Fri, 12 Jun 2026 00:00:00 -0000</pubDate>
<category>Security &amp; Compliance</category>
<description>[CRITICAL] Acts as the industry-standard engine for dynamic secrets management, data protection, and enterprise Zero Trust identity broker.</description>
<description>[CRITICAL] It remains the absolute backbone of enterprise Zero Trust architectures and dynamic secrets management across multi-cloud environments.</description>
</item>
<item>
<title>OpenTelemetry Collector</title>
@@ -133,15 +157,7 @@
<guid isPermaLink="true">https://github.com/open-telemetry/opentelemetry-collector</guid>
<pubDate>Fri, 12 Jun 2026 00:00:00 -0000</pubDate>
<category>Observability, SRE &amp; Testing</category>
<description>[CRITICAL] The OpenTelemetry Collector is the industry-standard pipeline for vendor-agnostic telemetry collection, processing, and routing.</description>
</item>
<item>
<title>kube-prometheus</title>
<link>https://github.com/prometheus-operator/kube-prometheus</link>
<guid isPermaLink="true">https://github.com/prometheus-operator/kube-prometheus</guid>
<pubDate>Fri, 12 Jun 2026 00:00:00 -0000</pubDate>
<category>Observability, SRE &amp; Testing</category>
<description>[CRITICAL] It serves as the de facto reference architecture and deployment pattern for comprehensive Kubernetes cluster monitoring.</description>
<description>[CRITICAL] Acts as the industry-standard, vendor-agnostic pipeline for receiving, processing, and routing metrics, logs, and traces across diverse cloud-native environments.</description>
</item>
<item>
<title>Kubernetes Gateway API</title>
@@ -149,23 +165,7 @@
<guid isPermaLink="true">https://github.com/kubernetes-sigs/gateway-api</guid>
<pubDate>Fri, 12 Jun 2026 00:00:00 -0000</pubDate>
<category>Networking &amp; Service Mesh</category>
<description>[CRITICAL] As the official next-generation routing standard in Kubernetes, it provides highly expressive, role-oriented alternatives to the legacy Ingress API.</description>
</item>
<item>
<title>github.com/vmware-tanzu/velero</title>
<link>https://github.com/velero-io/velero</link>
<guid isPermaLink="true">https://github.com/velero-io/velero</guid>
<pubDate>Fri, 12 Jun 2026 00:00:00 -0000</pubDate>
<category>Data, Messaging &amp; Storage</category>
<description>[CRITICAL] Velero is the industry-standard tool for backing up, restoring, and migrating Kubernetes cluster resources and persistent volumes.</description>
</item>
<item>
<title>Announcing Claude Managed Agents on Cloudflare</title>
<link>https://blog.cloudflare.com/claude-managed-agents</link>
<guid isPermaLink="true">https://blog.cloudflare.com/claude-managed-agents</guid>
<pubDate>Tue, 02 Jun 2026 00:00:00 -0000</pubDate>
<category>AI &amp; Agents</category>
<description>[CRITICAL] Establishes a secure, sandboxed serverless runtime on Cloudflare Workers for orchestrating complex, autonomous AI agent workflows at the edge.</description>
<description>[CRITICAL] Establishes the next-generation standard for expressive, role-oriented, and extensible routing and ingress configurations in Kubernetes.</description>
</item>
</channel>
</rss>
-52
View File
@@ -6,58 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Cloud FinOps. Collaborative, Real-Time Cloud Financial Management (CFM) in the context of Career & Industry.
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [FinOps and Cloud Cost](#finops-and-cloud-cost)
- [AWS Optimization](#aws-optimization)
- [Data Transfer](#data-transfer)
- [EKS Cost Reduction](#eks-cost-reduction)
- [EKS Log Optimization](#eks-log-optimization)
- [Policy Engines](#policy-engines)
- [SMB Frameworks](#smb-frameworks)
- [Azure Optimization](#azure-optimization)
- [CLI Tools](#cli-tools)
- [Cost Estimation](#cost-estimation)
- [Dashboards](#dashboards)
- [Governance](#governance)
- [Pricing Frameworks](#pricing-frameworks)
- [Reference Guides](#reference-guides)
- [Savings Potential](#savings-potential)
- [IaC FinOps](#iac-finops)
- [AI Optimization](#ai-optimization)
- [AWS CDK Bots](#aws-cdk-bots)
- [Kubernetes FinOps](#kubernetes-finops)
- [AKS Cost Allocation](#aks-cost-allocation)
- [Actionable Frameworks](#actionable-frameworks)
- [Automated Optimization](#automated-optimization)
- [Cost Management](#cost-management)
- [Cost Platforms](#cost-platforms)
- [Foundational Concepts](#foundational-concepts)
- [Observability Integrations](#observability-integrations)
- [ROI Analysis](#roi-analysis)
- [Tooling](#tooling)
- [Market Trends](#market-trends)
- [Macroeconomics](#macroeconomics)
- [SaaS FinOps](#saas-finops)
- [License Management](#license-management)
- [Strategy and Governance](#strategy-and-governance)
- [FinOps Pitfalls](#finops-pitfalls)
- [FinOps vs Cost Management](#finops-vs-cost-management)
1. [Financial Operations](#financial-operations)
- [FinOps](#finops)
- [Best Practices](#best-practices)
- [Case Studies](#case-studies)
- [Frameworks](#frameworks)
- [Kubernetes Costs](#kubernetes-costs)
- [Market Landscapes](#market-landscapes)
- [Methodologies](#methodologies)
- [Metrics](#metrics)
- [Roles and Responsibilities](#roles-and-responsibilities)
- [Standards](#standards)
## Architectural Foundations
### Kubernetes Tools
+3 -12
View File
@@ -1,3 +1,6 @@
---
description: "Top Flux resources for 2026, AI-ranked: github: Flux Version 2, github: Flux and more — curated Cloud Native tools, guides and references."
---
# Flux. The GitOps operator for Kubernetes
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,18 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Flux. The GitOps operator for Kubernetes in the context of Engineering Pipeline.
## Table of Contents
1. [Networking and Security](#networking-and-security)
- [Service Mesh and Gateway](#service-mesh-and-gateway)
- [Envoy](#envoy)
1. [Platform Engineering](#platform-engineering)
- [GitOps and Deployment](#gitops-and-deployment)
- [Flux Ecosystem](#flux-ecosystem)
1. [Storage and Databases](#storage-and-databases)
- [Cloud-Native Storage](#cloud-native-storage)
- [Stateful GitOps](#stateful-gitops)
## Networking and Security
### Service Mesh and Gateway
-42
View File
@@ -6,48 +6,6 @@
!!! info "Architectural Context"
Detailed reference for Freelancing in the context of Career & Industry.
## Table of Contents
1. [Architectural Foundations](#architectural-foundations)
- [Kubernetes Tools](#kubernetes-tools)
- [General Reference](#general-reference)
1. [Business and Careers](#business-and-careers)
- [Freelance Platforms](#freelance-platforms)
- [Sourcing](#sourcing)
1. [Careers](#careers)
- [Freelancing](#freelancing-1)
- [Career Paths](#career-paths)
- [Cooperatives](#cooperatives)
- [Europe Market](#europe-market)
- [Financial Calculators](#financial-calculators)
- [Financial Strategy](#financial-strategy)
- [Market Overview](#market-overview)
- [On-Demand Mentoring](#on-demand-mentoring)
- [Remote Contracting](#remote-contracting)
- [Spanish Market](#spanish-market)
- [Spanish Regulations](#spanish-regulations)
- [Talent Marketplaces](#talent-marketplaces)
1. [Remote Work and Career](#remote-work-and-career)
- [Contractor Operations](#contractor-operations)
- [SaaS Administration](#saas-administration)
- [Legal Compliance](#legal-compliance)
- [Spanish Contracting](#spanish-contracting)
- [Spanish Freelancing](#spanish-freelancing)
- [Spanish Taxation](#spanish-taxation)
- [UK Contracting](#uk-contracting)
- [Talent Platforms](#talent-platforms)
- [AI-Backed Sourcing](#ai-backed-sourcing)
- [Bespoke Engineering Teams](#bespoke-engineering-teams)
- [Contractor Compliance](#contractor-compliance)
- [E-commerce Freelancing](#e-commerce-freelancing)
- [Freelance Consulting](#freelance-consulting)
- [Global Sourcing](#global-sourcing)
- [Mentorship Networks](#mentorship-networks)
- [Nearshore Outsourcing](#nearshore-outsourcing)
- [On-Demand Delivery](#on-demand-delivery)
- [Staff Augmentation](#staff-augmentation)
- [Web Development Networks](#web-development-networks)
## Architectural Foundations
### Kubernetes Tools
+3 -31
View File
@@ -1,3 +1,6 @@
---
description: "Top Git resources for 2026, AI-ranked: Jenkins-X UpdateBOT, github-merge-bot and more — curated Cloud Native tools, guides and references."
---
# Git and Patterns for Managing Source Code Branches. Merge BOTs
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,37 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Git and Patterns for Managing Source Code Branches. Merge BOTs in the context of Architectural Foundations.
## Table of Contents
1. [CICD Pipeline](#cicd-pipeline)
- [Kubernetes and Containers](#kubernetes-and-containers)
- [Continuous Deployment](#continuous-deployment)
- [Self-Hosted Infrastructure](#self-hosted-infrastructure)
- [Testing Infrastructure](#testing-infrastructure)
- [Cloud Native Automation](#cloud-native-automation)
1. [Cloud Native](#cloud-native)
- [GitOps](#gitops)
- [GitLab Kubernetes Agent](#gitlab-kubernetes-agent)
- [GitLab Operator](#gitlab-operator)
1. [DevOps](#devops)
- [Continuous Delivery](#continuous-delivery)
- [GitOps](#gitops-1)
- [Version Control](#version-control)
- [Kubernetes Deployments](#kubernetes-deployments)
1. [Security and Compliance](#security-and-compliance)
- [Supply Chain Security](#supply-chain-security)
- [Container Security](#container-security)
1. [Software Engineering](#software-engineering)
- [CICD Platforms](#cicd-platforms)
- [GitLab CI Optimization](#gitlab-ci-optimization)
- [Collaborative Platforms](#collaborative-platforms)
- [Kubernetes Integration](#kubernetes-integration)
- [Software Delivery](#software-delivery)
- [Code Review Protocols](#code-review-protocols)
- [Version Control](#version-control-1)
- [Automation Bots](#automation-bots)
- [GitLab Automation](#gitlab-automation)
## CICD Pipeline
### Kubernetes and Containers
+3 -46
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Gitops resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Engineering Pipeline)."
---
# GitOps
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,52 +9,6 @@
!!! info "Architectural Context"
Detailed reference for GitOps in the context of Engineering Pipeline.
## Table of Contents
1. [API Management](#api-management)
- [GitOps](#gitops-1)
- [Declarative APIs](#declarative-apis)
1. [Application Delivery](#application-delivery)
- [Continuous Deployment](#continuous-deployment)
- [GitOps](#gitops-2)
- [Business Value](#business-value)
- [DevOps Culture](#devops-culture)
- [Ecosystem](#ecosystem)
- [Foundations](#foundations)
- [Implementation](#implementation)
- [Source Code](#source-code)
- [Standards](#standards)
- [Infrastructure as Code](#infrastructure-as-code)
- [Patterns](#patterns)
1. [CICD](#cicd)
- [GitOps](#gitops-3)
- [Deployment Strategies](#deployment-strategies)
- [FluxCD](#fluxcd)
- [Kustomize Manifests](#kustomize-manifests)
1. [Continuous Delivery](#continuous-delivery)
- [GitOps](#gitops-4)
- [Kubernetes Native](#kubernetes-native)
- [Telco and Edge](#telco-and-edge)
- [Testing Environments](#testing-environments)
- [Progressive Delivery](#progressive-delivery)
- [GitOps Integration](#gitops-integration)
1. [GitOps](#gitops-5)
- [Methodology](#methodology)
- [Developer Platforms](#developer-platforms)
1. [Networking](#networking)
- [Ingress and Gateway](#ingress-and-gateway)
- [Automation](#automation)
- [Service Mesh](#service-mesh)
- [eBPF vs Proxy](#ebpf-vs-proxy)
1. [Platform Architecture](#platform-architecture)
- [GitOps](#gitops-6)
- [Modern Pipelines](#modern-pipelines)
1. [Platform Engineering](#platform-engineering)
- [GitOps and Deployment](#gitops-and-deployment)
- [Flux Ecosystem](#flux-ecosystem)
- [Multi-Cluster Routing](#multi-cluster-routing)
- [Fleet Orchestration](#fleet-orchestration)
## API Management
### GitOps (1)
+3 -34
View File
@@ -1,3 +1,6 @@
---
description: "Top Golang resources for 2026, AI-ranked: Awesome Go, Dapr and more — curated Cloud Native tools, guides and references."
---
# Golang - Go
!!! tip "Nubenetes V2 Elite Portal"
@@ -6,40 +9,6 @@
!!! info "Architectural Context"
Detailed reference for Golang - Go in the context of Developer Ecosystem.
## Table of Contents
1. [Architecture](#architecture)
- [Microservices](#microservices)
- [Design Patterns](#design-patterns)
- [Go Frameworks](#go-frameworks)
1. [Business Applications](#business-applications)
- [Go Web Apps](#go-web-apps)
- [Email Analytics](#email-analytics)
1. [Cloud Native](#cloud-native)
- [Containers](#containers)
- [Dockerizing Go](#dockerizing-go)
- [Microservice Runtimes](#microservice-runtimes)
- [Dapr](#dapr)
- [Web Frameworks](#web-frameworks)
- [Request Binding](#request-binding)
1. [Cloud Native Languages](#cloud-native-languages)
- [Go](#go)
- [API Design](#api-design)
- [Kubernetes Integration](#kubernetes-integration)
- [Microservices Frameworks](#microservices-frameworks)
- [Performance Tuning](#performance-tuning)
- [Storage Integration](#storage-integration)
1. [Programming Languages](#programming-languages)
- [Go](#go-1)
- [Project Scaffolding](#project-scaffolding)
- [Resources](#resources)
1. [Public Cloud](#public-cloud)
- [Google Cloud](#google-cloud)
- [Go Samples](#go-samples)
1. [Software Engineering](#software-engineering)
- [Web Development](#web-development)
- [NodeJS](#nodejs)
## Architecture
### Microservices

Some files were not shown because too many files have changed in this diff Show More