Compare commits

...
106 Commits
Author SHA1 Message Date
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
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
160 changed files with 7014 additions and 2280 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:
+23 -28
View File
@@ -59,38 +59,33 @@ jobs:
git config --global user.name "Nubenetes Bot"
git config --global user.email "bot@nubenetes.com"
export PYTHONPATH=$PYTHONPATH:.
# Pull latest before committing to shrink the conflict window
git pull --no-rebase origin develop
# Re-run updater so metrics reflect the latest remote state
python src/readme_updater.py
python src/safety_readme.py
git add README.md
if git diff --staged --quiet; then
echo "No changes in README.md to commit."
exit 0
fi
git commit -m "docs: automated README metric synchronization [skip ci]"
# Push-first loop: try push, then merge-pull on rejection (not rebase)
# Using merge avoids --ours/--theirs confusion that plagued the rebase approach
# 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 "Push attempt $i/5..."
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]"
if git push origin develop; then
echo "Push succeeded on attempt $i."
exit 0
fi
echo "Attempt $i rejected — integrating remote changes via merge..."
git fetch origin develop
if ! git merge --no-edit -X ours origin/develop; then
# Merge could not auto-resolve; keep bot's README and continue
git checkout --ours README.md
git add README.md
GIT_EDITOR=true git merge --continue
fi
# Re-compute metrics on the merged state (idempotent)
python src/readme_updater.py
python src/safety_readme.py
git add README.md
git diff --staged --quiet || git commit --amend --no-edit
echo "Attempt $i rejected — remote advanced, retrying from fresh tip..."
sleep $((i * 3))
done
git push origin develop
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
+102
View File
@@ -5,6 +5,108 @@ 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.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
+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** | **6186+** |
| **Total Commits** | **6292+** |
| **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 | 2627 | 10,849 | **Agentic AI Surge** (May 2026 Inception) |
| 9 | 2026 | 2733 | 11,287 | **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, 10849]
bar [350, 142, 2046, 531, 402, 30, 53, 5, 2627]
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 12000
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 11287]
bar [350, 142, 2046, 531, 402, 30, 53, 5, 2733]
```
<!-- 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 | 501 | 2,069 | Active Curation |
| 2026-06 | 607 | 2,506 | 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
```
+916 -916
View File
File diff suppressed because it is too large Load Diff
+3664
View File
File diff suppressed because it is too large Load Diff
+36 -36
View File
@@ -2697,7 +2697,7 @@
"date": "2026-06-01",
"stars": 5,
"impact": "critical",
"why": "Argo CD is the absolute industry-standard GitOps engine for Kubernetes, driving declarative, pull-based continuous delivery across enterprise platforms.",
"why": "Argo CD remains the absolute industry standard for pull-based GitOps reconciliation and continuous delivery on Kubernetes.",
"category": "CI/CD & GitOps"
},
{
@@ -2706,7 +2706,7 @@
"date": "2026-06-13",
"stars": 5,
"impact": "critical",
"why": "As a CNCF graduated project, Flux v2 provides the vital decoupled controller architecture needed for high-scale, parallel GitOps reconciliation.",
"why": "Flux v2 is a foundational, graduated CNCF GitOps engine engineered specifically for highly decoupled, parallel cluster synchronization.",
"category": "CI/CD & GitOps"
},
{
@@ -2715,16 +2715,7 @@
"date": "2026-06-14",
"stars": 5,
"impact": "critical",
"why": "Dagger introduces a major paradigm shift by replacing complex YAML pipelines with portable, multi-language code executed natively on BuildKit.",
"category": "CI/CD & GitOps"
},
{
"url": "https://github.com/flux-iac/tofu-controller",
"title": "github.com/flux-iac/tofu-controller",
"date": "2026-06-08",
"stars": 5,
"impact": "high",
"why": "The Tofu-controller secures GitOps continuity for modern infrastructure by enabling native, declarative reconciliation of OpenTofu and Terraform resources.",
"why": "Dagger represents a major paradigm shift in CI/CD, replacing fragile YAML/Bash scripts with portable pipelines written in standard languages and executed via BuildKit.",
"category": "CI/CD & GitOps"
},
{
@@ -2732,8 +2723,8 @@
"title": "Helm",
"date": "2026-06-14",
"stars": 5,
"impact": "critical",
"why": "Helm is the indispensable de facto package manager for Kubernetes, essential for template structuring, dependency management, and application lifecycle control.",
"impact": "high",
"why": "Helm is the undisputed standard package manager for Kubernetes, serving as a critical packaging cornerstone for modern GitOps engines.",
"category": "CI/CD & GitOps"
},
{
@@ -2742,16 +2733,34 @@
"date": "2026-06-14",
"stars": 5,
"impact": "high",
"why": "Tekton Pipelines offers a highly scalable, Kubernetes-native CI/CD framework that runs builds within isolated task-oriented containers.",
"why": "Tekton provides the standard cloud-native CI/CD framework using Kubernetes-native Custom Resource Definitions for structured, scalable task execution.",
"category": "CI/CD & GitOps"
},
{
"url": "https://github.com/argoproj/argo-cd/pull/26601",
"title": "feat(ui): Add AppSet to Application Resource Tree in Argo CD",
"date": "2026-06-14",
"url": "https://github.com/flux-iac/tofu-controller",
"title": "github.com/flux-iac/tofu-controller",
"date": "2026-06-08",
"stars": 5,
"impact": "high",
"why": "This Argo CD feature significantly improves multi-tenant operations by visualizing complex nested ApplicationSet topologies directly in the dashboard UI.",
"why": "The OpenTofu controller natively extends GitOps synchronization paradigms beyond Kubernetes manifests to cloud infrastructure resources.",
"category": "CI/CD & GitOps"
},
{
"url": "https://www.jenkins.io/projects/jcasc",
"title": "Jenkins Configuration as Code",
"date": "2025-06-01",
"stars": 5,
"impact": "high",
"why": "Jenkins Configuration as Code (JCasC) provides a critical production-ready path to manage legacy CI infrastructure under modern GitOps and declarative paradigms.",
"category": "CI/CD & GitOps"
},
{
"url": "https://github.com/kubernetes/test-infra/tree/master/prow",
"title": "Prow",
"date": "2026-06-13",
"stars": 5,
"impact": "high",
"why": "Prow is the leading cloud-native CI/CD platform engineered to handle massive-scale, decentralized, event-driven repository governance.",
"category": "CI/CD & GitOps"
},
{
@@ -2760,25 +2769,16 @@
"date": "2026-06-14",
"stars": 5,
"impact": "high",
"why": "Glasskube is a next-generation, Go-based Kubernetes package manager that simplifies automated updates and dependency management for cloud-native tools.",
"why": "Glasskube represents a major technical novelty as a next-generation Kubernetes package manager designed to simplify dependency management and upgrades over traditional Helm.",
"category": "CI/CD & GitOps"
},
{
"url": "https://nubenetes.com/keptn",
"title": "Keptn",
"url": "https://github.com/argoproj/argo-cd/pull/26601",
"title": "feat(ui): Add AppSet to Application Resource Tree in Argo CD",
"date": "2026-06-14",
"stars": 4,
"impact": "high",
"why": "Keptn bridges CD and observability by orchestrating cloud-native lifecycles using strict SLO-based quality gates and automated canary promotions.",
"category": "CI/CD & GitOps"
},
{
"url": "https://github.com/onedr0p/cluster-template",
"title": "github.com/onedr0p/flux-cluster-template: Template for deploying k3s backed by Flux",
"date": "2026-06-13",
"stars": 5,
"impact": "medium",
"why": "This production-grade repository template sets a modern community standard for bootstrapping and managing edge K3s clusters utilizing Flux GitOps.",
"why": "This Argo CD enhancement directly improves enterprise observability for multi-tenant topologies by natively mapping ApplicationSets in the dashboard UI.",
"category": "CI/CD & GitOps"
}
],
@@ -7150,9 +7150,9 @@
"method": "gemini"
},
"CI/CD & GitOps": {
"last_analyzed": "2026-06-19T14:47:22.191040+02:00",
"entry_hash": "c59a6d40189d662a",
"entry_count": 445,
"last_analyzed": "2026-06-19T19:39:36.131298+02:00",
"entry_hash": "c4997cc637c23d35",
"entry_count": 444,
"method": "gemini"
},
"Python, Java & Developer Ecosystem": {
@@ -7440,6 +7440,6 @@
"method": "fallback_small"
}
},
"last_updated": "2026-06-19T16:38:21.993641+02:00"
"last_updated": "2026-06-20T13:55:10.360876+02:00"
}
}
+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 %}
+77
View File
@@ -3,3 +3,80 @@
{% block announce %}
<strong>New:</strong> <a href="./tech-digest/">Intelligence Digest</a> — AI-curated trending resources across 26 categories
{% 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 %}
+100
View File
@@ -1185,6 +1185,106 @@ 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;
}
.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; }
}
/* 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;
}
+7 -1
View File
@@ -27,7 +27,13 @@
h1.textContent.includes("Nubenetes Elite Portal (V2)") ||
h1.textContent.includes("Agentic Video Hub") ||
h1.textContent.includes("Technical Tags Index") ||
h1.textContent.includes("Intelligence Digest")
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;
}
+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
+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}")
+8 -4
View File
@@ -60,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"?>',
+210 -43
View File
@@ -169,7 +169,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)
@@ -971,14 +971,21 @@ 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:
@@ -1106,7 +1113,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 +1143,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 +1162,71 @@ 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"
"---\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
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"
"<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 +1250,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,7 +1295,55 @@ 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"
@@ -1257,9 +1365,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"
@@ -1379,9 +1487,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:
@@ -1415,27 +1529,78 @@ class V2VisionEngine:
" 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"
# 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
tag_meta = {
tag: {"display": _tag_display(tag), "slug": _tag_slug(tag), "count": len(by_tag[tag])}
for tag in sorted_tags
}
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 t in standard_order]
lang_tags = sorted(
[t for t in sorted_tags if t not in standard_order and t.endswith("CONTENT]")],
key=lambda t: -tag_meta[t]["count"],
)
other_tags = sorted(
[t for t in sorted_tags if t not in standard_order and not t.endswith("CONTENT]")],
key=lambda t: -tag_meta[t]["count"],
)
# 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}"
@@ -1475,6 +1640,8 @@ class V2VisionEngine:
"nav:",
" - \"🔙 Back to V1 (Exhaustive)\": https://nubenetes.com/v1/",
" - \"The 2026 Vision\": index.md",
" - \"Topic Map\": topic-map.md",
" - \"Methodology\": methodology.md",
" - \"Technical Tags\": tags.md",
" - \"Intelligence Digest\":",
" - \"Tech & Cloud Digest\": tech-digest.md",
+3
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 -3
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"
@@ -11,9 +14,9 @@
!!! 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
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Containers resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Containers
!!! tip "Nubenetes V2 Elite Portal"
+3
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"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Databases resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS RDS Databases
!!! tip "Nubenetes V2 Elite Portal"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Pricing resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Pricing and Cost Optimization
!!! tip "Nubenetes V2 Elite Portal"
+3
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"
+3
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"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS Tools Scripts resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# AWS Tools and Scripts
!!! tip "Nubenetes V2 Elite Portal"
+3
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"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked AWS resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# Public Cloud Provider. Amazon Web Services
!!! tip "Nubenetes V2 Elite Portal"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+3
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"
+1 -1
View File
@@ -5,7 +5,7 @@
<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 14:38:22 -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>Kubecost 🌟</title>
+3
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"
+3
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"
+3
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"
+3
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"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Grafana resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# Grafana
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Helm resources for 2026, AI-ranked: Jmeter, Codecentric Jenkins and more — curated Cloud Native tools, guides and references."
---
# Helm Kubernetes Tool
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Ibm_Cloud resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Cloud Providers (Hyperscalers))."
---
# IBM
!!! tip "Nubenetes V2 Elite Portal"
+71 -213
View File
File diff suppressed because one or more lines are too long
+88 -85
View File
@@ -8,16 +8,33 @@ search:
!!! tip "Nubenetes Intelligence Digest"
AI-curated ranking of the most impactful resources, updated monthly.
=== "Last 3 Months"
## Americas
**Americas**
=== "Last 3 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-02 | [](https://www.ccohs.ca/oshanswers/ergonomics/shovel.html) | 🔵 medium | |
| 2026-05-17 | [businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral](https://businessinsider.mx/trucos-chatgpt-aminorar-carga-laboranl_vida-profesional) | 🔵 medium | A curated technical resource and architectural guide covering businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral in the Kubernetes Tools ecosystem. |
**Europe**
=== "Last 6 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-02 | [](https://www.ccohs.ca/oshanswers/ergonomics/shovel.html) | 🔵 medium | |
| 2026-05-17 | [businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral](https://businessinsider.mx/trucos-chatgpt-aminorar-carga-laboranl_vida-profesional) | 🔵 medium | A curated technical resource and architectural guide covering businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral in the Kubernetes Tools ecosystem. |
=== "Last 12 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-02 | [](https://www.ccohs.ca/oshanswers/ergonomics/shovel.html) | 🔵 medium | |
| 2026-05-17 | [businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral](https://businessinsider.mx/trucos-chatgpt-aminorar-carga-laboranl_vida-profesional) | 🔵 medium | A curated technical resource and architectural guide covering businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral in the Kubernetes Tools ecosystem. |
## Europe
=== "Last 3 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
@@ -32,48 +49,8 @@ search:
| 2026-05-17 | [blog.knell.it: Making your Helm Chart observable for Prometheus](https://blog.knell.it/making-your-helm-chart-observable-for-prometheus) | 🔵 medium | Integrating Prometheus metrics natively into Helm charts ensures observability standards are packaged alongside application deployments by default. |
| 2026-05-17 | [Templating on OpenShift: should I use Helm templates or OpenShift templates?' 🌟](https://www.padok.fr/en/blog/templating-openshift-helm-templates) | 🔵 medium | It assists enterprise platform engineers in choosing the right templating standard to prevent vendor lock-in while using OpenShift. |
**Spain**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [aboutamazon.es: AWS acelera la apertura de la Región AWS Europa (España)' para apoyar la transformación digital de España](https://www.aboutamazon.es/innovaci%C3%B3n/aws-acelera-la-apertura-de-la-regi%C3%B3n-aws-europa-espa%C3%B1a-para-apoyar-la-transformaci%C3%B3n-digital-de-espa%C3%B1a) | 🔴 critical | The launch of the AWS Spain region is a massive milestone that addresses data residency and latency requirements, accelerating cloud-native migration for Spanish enterprises. |
| 2026-06-01 | [20minutos.es: Amazon Web Services vuelve a romper Internet: se ha caído ya tres veces en el mismo mes y le llueven las críticas](https://www.20minutos.es/tecnologia/actualidad/amazon-web-services-vuelve-a-romper-internet-se-ha-caido-ya-tres-veces-en-el-mismo-mes-y-le-llueven-las-criticas-4931834) | 🟡 high | This analysis of major AWS outages highlights the systemic risks of cloud centralization and underscores the importance of multi-region and multi-cloud resilience strategies. |
| 2026-06-14 | [computing.es: Retos del outsourcing de servicios IT en España](https://www.computing.es/mundo-digital/retos-del-outsourcing-de-servicios-it-en-espana) | 🟡 high | It addresses the critical organizational and cultural hurdles of scaling DevSecOps and cloud-native practices when relying on external IT outsourcing in Spain. |
| 2026-06-18 | [technologyreview.es: "Las empresas que empiezan a lo grande con la IA fracasan más" 🌟](https://www.technologyreview.es/article/las-empresas-que-empiezan-lo-grande-con-la-ia-fracasan-mas) | 🟡 high | Provides essential strategic guidance for enterprises, arguing for realistic, incremental AI adoption paths rather than high-risk, large-scale overhauls. |
| 2026-06-01 | [systemadmin.es](https://systemadmin.es) | 🔵 medium | Provides deep, localized technical knowledge on Linux performance and storage optimization, which are foundational for running high-performance Kubernetes worker nodes. |
| 2026-06-01 | [santalucia.es](https://api-market.santalucia.es) | 🔵 medium | Demonstrates a real-world enterprise implementation of API-driven architecture, facilitating digital insurance B2B integrations. |
| 2026-06-01 | [Cecabank API Market](https://apimarket.cecabank.es) | 🔵 medium | Showcases production-ready financial API infrastructure designed to comply with PSD2, highlighting modern integration patterns in Spanish banking. |
| 2026-05-17 | [softzone.es: Conoce Fleet, el nuevo IDE ultraligero de la mano de JetBrains](https://www.softzone.es/noticias/programas/conoce-fleet-ide-ultraligero-mano-jetbrains) | 🔵 medium | Introduces a lightweight, next-generation IDE that supports remote backend execution, aligning with the cloud-based developer workspace trend. |
| 2026-06-02 | [Think Python en espanol (Piensa en Python)](https://libropython.es) | 🔵 medium | Offers a highly accessible, localized resource for mastering Python, which remains a core language for cloud automation, tooling, and AI pipelines. |
| 2026-05-17 | [Túneles SSH](https://www.atareao.es/ubuntu/tuneles-ssh) | 🔵 medium | A practical guide to SSH tunneling, a fundamental skill for secure remote access, port forwarding, and network debugging in cloud environments. |
**Asia-Pacific**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [mixi-developers.mixi.co.jp: Comparing External Secrets Operator with Secret' Storage CSI as Kubernetes External Secrets is Deprecated](https://mixi-developers.mixi.co.jp/compare-eso-with-secret-csi-402bf37f20bc?gi=a7ce4398a8d7) | 🔴 critical | Provides critical architectural guidance for migrating away from the deprecated Kubernetes External Secrets to modern ESO or Secrets Store CSI alternatives. |
| 2026-05-17 | [devsecops.co.in: GitOps Guide What, Why and How? 🌟](https://devsecops.co.in/2021/05/13/gitops-guide-what-why-and-how) | 🟡 high | Demystifies GitOps practices which are essential for achieving declarative, auditable, and automated continuous delivery in cloud-native setups. |
| 2026-05-17 | [devstack.in: Deploy Prometheus Operator with Helm3 and Private Registry' 🌟](https://devstack.in/2020/05/25/deploy-prometheus-operator-with-helm3-and-private-registry) | 🟡 high | Addresses a common enterprise security requirement of deploying cloud-native monitoring (Prometheus Operator) within private registry environments. |
| 2026-05-17 | [ittroubleshooter.in: Run Parallel Builds in Kubernetes Cluster with Jenkins' Pipeline 🌟](https://ittroubleshooter.in/run-parallel-build-kubernetes-cluster-jenkins) | 🟡 high | Improves CI/CD efficiency by demonstrating how to scale and parallelize build pipelines dynamically using Kubernetes-hosted Jenkins agents. |
| 2026-06-01 | [comparecloud.in: Public Cloud Services Comparison 🌟](https://comparecloud.in) | 🔵 medium | Simplifies multi-cloud architecture planning by offering a direct service-mapping taxonomy across major cloud providers. |
| 2026-05-17 | [ishantgaurav.in: Kubernetes Sidecar Container Pattern](https://ishantgaurav.in/2021/07/18/kubernetes-sidecar-container-pattern) | 🔵 medium | Explains the sidecar pattern, which is fundamental to implementing service meshes, logging, and security proxies in microservices. |
| 2026-05-17 | [devopstalks.in: Everything about Prometheus](https://devopstalks.in/everything-about-prometheus) | 🔵 medium | Explores Prometheus, the de facto CNCF standard for cloud-native metrics collection and alerting. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - Taints and Tolerations](https://blog.learncodeonline.in/kubernetes-scheduling-taints-and-tolerations) | 🔵 medium | Covers advanced scheduling techniques necessary for workload isolation and resource allocation in multi-tenant Kubernetes clusters. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - DaemonSet](https://blog.learncodeonline.in/kubernetes-scheduling-daemonset) | 🔵 medium | Explains DaemonSets, which are vital for running platform-level agents like log forwarders and node monitors. |
| 2026-05-17 | [skilledfield.com.au: Monitoring Kubernetes and Docker Container Logs](https://skilledfield.com.au/monitoring-kubernetes-and-docker-container-logs) | 🔵 medium | Provides essential operational foundations for setting up container logging and observability in Kubernetes. |
=== "Last 6 Months"
**Americas**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-02 | [](https://www.ccohs.ca/oshanswers/ergonomics/shovel.html) | 🔵 medium | |
| 2026-05-17 | [businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral](https://businessinsider.mx/trucos-chatgpt-aminorar-carga-laboranl_vida-profesional) | 🔵 medium | A curated technical resource and architectural guide covering businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral in the Kubernetes Tools ecosystem. |
**Europe**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-01 | [Gaia-X.eu](https://gaia-x.eu) | 🔴 critical | Establishes a unified, secure, and sovereign European data infrastructure to reduce enterprise dependency on non-EU hyperscalers. |
@@ -87,48 +64,8 @@ search:
| 2026-05-17 | [en.sokube.ch: K3S + K3D = K8S : a new perfect match for dev and test](https://en.sokube.ch/post/k3s-k3d-k8s-a-new-perfect-match-for-dev-and-test-1) | 🔵 medium | Highlights a highly efficient, lightweight development environment that mirrors production Kubernetes patterns locally. |
| 2026-05-17 | [Templating on OpenShift: should I use Helm templates or OpenShift templates?' 🌟](https://www.padok.fr/en/blog/templating-openshift-helm-templates) | 🔵 medium | Evaluates configuration management options to help enterprise teams optimize application packaging on Red Hat OpenShift. |
**Spain**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [aboutamazon.es: AWS acelera la apertura de la Región AWS Europa (España)' para apoyar la transformación digital de España](https://www.aboutamazon.es/innovaci%C3%B3n/aws-acelera-la-apertura-de-la-regi%C3%B3n-aws-europa-espa%C3%B1a-para-apoyar-la-transformaci%C3%B3n-digital-de-espa%C3%B1a) | 🔴 critical | The opening of an AWS Region in Spain provides essential infrastructure for local cloud-native adoption and data residency compliance. |
| 2026-06-18 | [technologyreview.es: "Las empresas que empiezan a lo grande con la IA fracasan más" 🌟](https://www.technologyreview.es/article/las-empresas-que-empiezan-lo-grande-con-la-ia-fracasan-mas) | 🟡 high | Provides critical strategic guidance on avoiding common pitfalls in enterprise AI transformation, which is increasingly integrated into cloud-native pipelines. |
| 2026-06-01 | [Cecabank API Market](https://apimarket.cecabank.es) | 🟡 high | Demonstrates enterprise-grade API management and security compliance required by the PSD2 mandate in the Spanish financial sector. |
| 2026-06-01 | [santalucia.es](https://api-market.santalucia.es) | 🔵 medium | Showcases the shift toward API-first architectures and B2B integration patterns within the traditional insurance sector. |
| 2026-06-01 | [systemadmin.es](https://systemadmin.es) | 🔵 medium | Provides foundational knowledge on Linux performance and storage optimization necessary for managing high-performance Kubernetes clusters. |
| 2026-05-17 | [softzone.es: Conoce Fleet, el nuevo IDE ultraligero de la mano de JetBrains](https://www.softzone.es/noticias/programas/conoce-fleet-ide-ultraligero-mano-jetbrains) | 🔵 medium | Introduces new developer tooling paradigms that prioritize remote execution and lightweight environments, matching cloud-native development workflows. |
| 2026-05-17 | [computing.es: Retos del outsourcing de servicios IT en España](https://www.computing.es/mundo-digital/opinion/1129764046601/retos-del-outsourcing-de-servicios-it-espana.1.html) | 🔵 medium | Addresses the structural challenges of IT outsourcing in Spain, directly impacting how organizations manage cloud-native scaling and DevOps silos. |
| 2026-06-02 | [Think Python en espanol (Piensa en Python)](https://libropython.es) | 🔵 medium | Facilitates broader technical literacy in the Spanish community by providing a modern, accessible resource for foundational programming. |
| 2026-06-01 | [20minutos.es: Amazon Web Services vuelve a romper Internet: se ha caído ya tres veces en el mismo mes y le llueven las críticas](https://www.20minutos.es/tecnologia/actualidad/amazon-web-services-vuelve-a-romper-internet-se-ha-caido-ya-tres-veces-en-el-mismo-mes-y-le-llueven-las-criticas-4931834) | 🔵 medium | Highlights systemic risks of hyperscaler dependency, prompting necessary architecture discussions around multi-cloud and resilience strategies. |
| 2026-05-17 | [hays.es: La Gran Renuncia: ¿por qué tantos profesionales se están planteando' dejar su trabajo?](https://www.hays.es/blog/insights/la-gran-renuncia) | 🔵 medium | Provides essential context on talent retention and professional shifts in the Spanish IT sector, impacting team stability for cloud-native projects. |
**Asia-Pacific**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [mixi-developers.mixi.co.jp: Comparing External Secrets Operator with Secret' Storage CSI as Kubernetes External Secrets is Deprecated](https://mixi-developers.mixi.co.jp/compare-eso-with-secret-csi-402bf37f20bc?gi=a7ce4398a8d7) | 🔴 critical | Provides a crucial architectural comparison for managing enterprise secrets securely on Kubernetes following the deprecation of legacy tools. |
| 2026-06-01 | [comparecloud.in: Public Cloud Services Comparison 🌟](https://comparecloud.in) | 🟡 high | Simplifies multi-cloud architecture planning by mapping services across major public cloud providers for engineering teams. |
| 2026-05-17 | [devstack.in: Deploy Prometheus Operator with Helm3 and Private Registry' 🌟](https://devstack.in/2020/05/25/deploy-prometheus-operator-with-helm3-and-private-registry) | 🟡 high | Delivers a production-ready guide for deploying observability infrastructure securely in enterprise environments using private registries. |
| 2026-05-17 | [devsecops.co.in: GitOps Guide What, Why and How? 🌟](https://devsecops.co.in/2021/05/13/gitops-guide-what-why-and-how) | 🟡 high | Demystifies the GitOps methodology, which is a fundamental paradigm shift for modern cloud-native continuous delivery. |
| 2026-05-17 | [ishantgaurav.in: Kubernetes Sidecar Container Pattern](https://ishantgaurav.in/2021/07/18/kubernetes-sidecar-container-pattern) | 🔵 medium | Explains the sidecar pattern, which is essential for implementing service meshes and platform-level logging in Kubernetes. |
| 2026-05-17 | [ittroubleshooter.in: Run Parallel Builds in Kubernetes Cluster with Jenkins' Pipeline 🌟](https://ittroubleshooter.in/run-parallel-build-kubernetes-cluster-jenkins) | 🔵 medium | Optimizes continuous integration pipelines by leveraging Kubernetes to run parallel, dynamically scaled build jobs. |
| 2026-05-17 | [devopstalks.in: Everything about Prometheus](https://devopstalks.in/everything-about-prometheus) | 🔵 medium | Offers a comprehensive deep dive into Prometheus, the de facto standard tool for cloud-native system observability. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - Taints and Tolerations](https://blog.learncodeonline.in/kubernetes-scheduling-taints-and-tolerations) | 🔵 medium | Enables engineers to design resilient and segregated clusters using advanced Kubernetes scheduling constraints. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - DaemonSet](https://blog.learncodeonline.in/kubernetes-scheduling-daemonset) | 🔵 medium | Details DaemonSet scheduling, which is vital for deploying node-level logging and security agents uniformly across a cluster. |
| 2026-05-17 | [skilledfield.com.au: Monitoring Kubernetes and Docker Container Logs](https://skilledfield.com.au/monitoring-kubernetes-and-docker-container-logs) | 🔵 medium | Guides operational teams through establishing essential log aggregation pipelines for containerized applications. |
=== "Last 12 Months"
**Americas**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-02 | [](https://www.ccohs.ca/oshanswers/ergonomics/shovel.html) | 🔵 medium | |
| 2026-05-17 | [businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral](https://businessinsider.mx/trucos-chatgpt-aminorar-carga-laboranl_vida-profesional) | 🔵 medium | A curated technical resource and architectural guide covering businessinsider.mx: 5 trucos de ChatGPT que pueden ayudar a reducir tu carga' laboral in the Kubernetes Tools ecosystem. |
**Europe**
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-06-01 | [Gaia-X.eu](https://gaia-x.eu) | 🔴 critical | Defines the emerging standard for data sovereignty and cloud federation across Europe, shifting how multi-cloud workloads are designed. |
@@ -142,7 +79,40 @@ search:
| 2026-05-17 | [blog.knell.it: Making your Helm Chart observable for Prometheus](https://blog.knell.it/making-your-helm-chart-observable-for-prometheus) | 🔵 medium | Establishes a repeatable pattern for embedding native Prometheus observability endpoints directly into reusable Helm charts. |
| 2026-06-01 | [difftastic.wilfred.me.uk](https://difftastic.wilfred.me.uk) | 🔵 medium | Introduces AST-based syntax comparison that eliminates noisy git diffs, making Kubernetes manifest and code reviews vastly more reliable. |
**Spain**
## Spain
=== "Last 3 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [aboutamazon.es: AWS acelera la apertura de la Región AWS Europa (España)' para apoyar la transformación digital de España](https://www.aboutamazon.es/innovaci%C3%B3n/aws-acelera-la-apertura-de-la-regi%C3%B3n-aws-europa-espa%C3%B1a-para-apoyar-la-transformaci%C3%B3n-digital-de-espa%C3%B1a) | 🔴 critical | The launch of the AWS Spain region is a massive milestone that addresses data residency and latency requirements, accelerating cloud-native migration for Spanish enterprises. |
| 2026-06-01 | [20minutos.es: Amazon Web Services vuelve a romper Internet: se ha caído ya tres veces en el mismo mes y le llueven las críticas](https://www.20minutos.es/tecnologia/actualidad/amazon-web-services-vuelve-a-romper-internet-se-ha-caido-ya-tres-veces-en-el-mismo-mes-y-le-llueven-las-criticas-4931834) | 🟡 high | This analysis of major AWS outages highlights the systemic risks of cloud centralization and underscores the importance of multi-region and multi-cloud resilience strategies. |
| 2026-06-14 | [computing.es: Retos del outsourcing de servicios IT en España](https://www.computing.es/mundo-digital/retos-del-outsourcing-de-servicios-it-en-espana) | 🟡 high | It addresses the critical organizational and cultural hurdles of scaling DevSecOps and cloud-native practices when relying on external IT outsourcing in Spain. |
| 2026-06-18 | [technologyreview.es: "Las empresas que empiezan a lo grande con la IA fracasan más" 🌟](https://www.technologyreview.es/article/las-empresas-que-empiezan-lo-grande-con-la-ia-fracasan-mas) | 🟡 high | Provides essential strategic guidance for enterprises, arguing for realistic, incremental AI adoption paths rather than high-risk, large-scale overhauls. |
| 2026-06-01 | [systemadmin.es](https://systemadmin.es) | 🔵 medium | Provides deep, localized technical knowledge on Linux performance and storage optimization, which are foundational for running high-performance Kubernetes worker nodes. |
| 2026-06-01 | [santalucia.es](https://api-market.santalucia.es) | 🔵 medium | Demonstrates a real-world enterprise implementation of API-driven architecture, facilitating digital insurance B2B integrations. |
| 2026-06-01 | [Cecabank API Market](https://apimarket.cecabank.es) | 🔵 medium | Showcases production-ready financial API infrastructure designed to comply with PSD2, highlighting modern integration patterns in Spanish banking. |
| 2026-05-17 | [softzone.es: Conoce Fleet, el nuevo IDE ultraligero de la mano de JetBrains](https://www.softzone.es/noticias/programas/conoce-fleet-ide-ultraligero-mano-jetbrains) | 🔵 medium | Introduces a lightweight, next-generation IDE that supports remote backend execution, aligning with the cloud-based developer workspace trend. |
| 2026-06-02 | [Think Python en espanol (Piensa en Python)](https://libropython.es) | 🔵 medium | Offers a highly accessible, localized resource for mastering Python, which remains a core language for cloud automation, tooling, and AI pipelines. |
| 2026-05-17 | [Túneles SSH](https://www.atareao.es/ubuntu/tuneles-ssh) | 🔵 medium | A practical guide to SSH tunneling, a fundamental skill for secure remote access, port forwarding, and network debugging in cloud environments. |
=== "Last 6 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [aboutamazon.es: AWS acelera la apertura de la Región AWS Europa (España)' para apoyar la transformación digital de España](https://www.aboutamazon.es/innovaci%C3%B3n/aws-acelera-la-apertura-de-la-regi%C3%B3n-aws-europa-espa%C3%B1a-para-apoyar-la-transformaci%C3%B3n-digital-de-espa%C3%B1a) | 🔴 critical | The opening of an AWS Region in Spain provides essential infrastructure for local cloud-native adoption and data residency compliance. |
| 2026-06-18 | [technologyreview.es: "Las empresas que empiezan a lo grande con la IA fracasan más" 🌟](https://www.technologyreview.es/article/las-empresas-que-empiezan-lo-grande-con-la-ia-fracasan-mas) | 🟡 high | Provides critical strategic guidance on avoiding common pitfalls in enterprise AI transformation, which is increasingly integrated into cloud-native pipelines. |
| 2026-06-01 | [Cecabank API Market](https://apimarket.cecabank.es) | 🟡 high | Demonstrates enterprise-grade API management and security compliance required by the PSD2 mandate in the Spanish financial sector. |
| 2026-06-01 | [santalucia.es](https://api-market.santalucia.es) | 🔵 medium | Showcases the shift toward API-first architectures and B2B integration patterns within the traditional insurance sector. |
| 2026-06-01 | [systemadmin.es](https://systemadmin.es) | 🔵 medium | Provides foundational knowledge on Linux performance and storage optimization necessary for managing high-performance Kubernetes clusters. |
| 2026-05-17 | [softzone.es: Conoce Fleet, el nuevo IDE ultraligero de la mano de JetBrains](https://www.softzone.es/noticias/programas/conoce-fleet-ide-ultraligero-mano-jetbrains) | 🔵 medium | Introduces new developer tooling paradigms that prioritize remote execution and lightweight environments, matching cloud-native development workflows. |
| 2026-05-17 | [computing.es: Retos del outsourcing de servicios IT en España](https://www.computing.es/mundo-digital/opinion/1129764046601/retos-del-outsourcing-de-servicios-it-espana.1.html) | 🔵 medium | Addresses the structural challenges of IT outsourcing in Spain, directly impacting how organizations manage cloud-native scaling and DevOps silos. |
| 2026-06-02 | [Think Python en espanol (Piensa en Python)](https://libropython.es) | 🔵 medium | Facilitates broader technical literacy in the Spanish community by providing a modern, accessible resource for foundational programming. |
| 2026-06-01 | [20minutos.es: Amazon Web Services vuelve a romper Internet: se ha caído ya tres veces en el mismo mes y le llueven las críticas](https://www.20minutos.es/tecnologia/actualidad/amazon-web-services-vuelve-a-romper-internet-se-ha-caido-ya-tres-veces-en-el-mismo-mes-y-le-llueven-las-criticas-4931834) | 🔵 medium | Highlights systemic risks of hyperscaler dependency, prompting necessary architecture discussions around multi-cloud and resilience strategies. |
| 2026-05-17 | [hays.es: La Gran Renuncia: ¿por qué tantos profesionales se están planteando' dejar su trabajo?](https://www.hays.es/blog/insights/la-gran-renuncia) | 🔵 medium | Provides essential context on talent retention and professional shifts in the Spanish IT sector, impacting team stability for cloud-native projects. |
=== "Last 12 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
@@ -157,7 +127,40 @@ search:
| 2026-06-01 | [santalucia.es](https://api-market.santalucia.es) | 🔵 medium | Demonstrates how legacy enterprises in Spain are modernizing their B2B digital delivery through API-first cloud integration architectures. |
| 2026-05-17 | [computing.es: Retos del outsourcing de servicios IT en España](https://www.computing.es/mundo-digital/opinion/1129764046601/retos-del-outsourcing-de-servicios-it-espana.1.html) | 🔵 medium | Explores strategic mitigation models for managing SLAs and operational consistency in complex, outsourced enterprise IT environments. |
**Asia-Pacific**
## Asia-Pacific
=== "Last 3 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [mixi-developers.mixi.co.jp: Comparing External Secrets Operator with Secret' Storage CSI as Kubernetes External Secrets is Deprecated](https://mixi-developers.mixi.co.jp/compare-eso-with-secret-csi-402bf37f20bc?gi=a7ce4398a8d7) | 🔴 critical | Provides critical architectural guidance for migrating away from the deprecated Kubernetes External Secrets to modern ESO or Secrets Store CSI alternatives. |
| 2026-05-17 | [devsecops.co.in: GitOps Guide What, Why and How? 🌟](https://devsecops.co.in/2021/05/13/gitops-guide-what-why-and-how) | 🟡 high | Demystifies GitOps practices which are essential for achieving declarative, auditable, and automated continuous delivery in cloud-native setups. |
| 2026-05-17 | [devstack.in: Deploy Prometheus Operator with Helm3 and Private Registry' 🌟](https://devstack.in/2020/05/25/deploy-prometheus-operator-with-helm3-and-private-registry) | 🟡 high | Addresses a common enterprise security requirement of deploying cloud-native monitoring (Prometheus Operator) within private registry environments. |
| 2026-05-17 | [ittroubleshooter.in: Run Parallel Builds in Kubernetes Cluster with Jenkins' Pipeline 🌟](https://ittroubleshooter.in/run-parallel-build-kubernetes-cluster-jenkins) | 🟡 high | Improves CI/CD efficiency by demonstrating how to scale and parallelize build pipelines dynamically using Kubernetes-hosted Jenkins agents. |
| 2026-06-01 | [comparecloud.in: Public Cloud Services Comparison 🌟](https://comparecloud.in) | 🔵 medium | Simplifies multi-cloud architecture planning by offering a direct service-mapping taxonomy across major cloud providers. |
| 2026-05-17 | [ishantgaurav.in: Kubernetes Sidecar Container Pattern](https://ishantgaurav.in/2021/07/18/kubernetes-sidecar-container-pattern) | 🔵 medium | Explains the sidecar pattern, which is fundamental to implementing service meshes, logging, and security proxies in microservices. |
| 2026-05-17 | [devopstalks.in: Everything about Prometheus](https://devopstalks.in/everything-about-prometheus) | 🔵 medium | Explores Prometheus, the de facto CNCF standard for cloud-native metrics collection and alerting. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - Taints and Tolerations](https://blog.learncodeonline.in/kubernetes-scheduling-taints-and-tolerations) | 🔵 medium | Covers advanced scheduling techniques necessary for workload isolation and resource allocation in multi-tenant Kubernetes clusters. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - DaemonSet](https://blog.learncodeonline.in/kubernetes-scheduling-daemonset) | 🔵 medium | Explains DaemonSets, which are vital for running platform-level agents like log forwarders and node monitors. |
| 2026-05-17 | [skilledfield.com.au: Monitoring Kubernetes and Docker Container Logs](https://skilledfield.com.au/monitoring-kubernetes-and-docker-container-logs) | 🔵 medium | Provides essential operational foundations for setting up container logging and observability in Kubernetes. |
=== "Last 6 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
| 2026-05-17 | [mixi-developers.mixi.co.jp: Comparing External Secrets Operator with Secret' Storage CSI as Kubernetes External Secrets is Deprecated](https://mixi-developers.mixi.co.jp/compare-eso-with-secret-csi-402bf37f20bc?gi=a7ce4398a8d7) | 🔴 critical | Provides a crucial architectural comparison for managing enterprise secrets securely on Kubernetes following the deprecation of legacy tools. |
| 2026-06-01 | [comparecloud.in: Public Cloud Services Comparison 🌟](https://comparecloud.in) | 🟡 high | Simplifies multi-cloud architecture planning by mapping services across major public cloud providers for engineering teams. |
| 2026-05-17 | [devstack.in: Deploy Prometheus Operator with Helm3 and Private Registry' 🌟](https://devstack.in/2020/05/25/deploy-prometheus-operator-with-helm3-and-private-registry) | 🟡 high | Delivers a production-ready guide for deploying observability infrastructure securely in enterprise environments using private registries. |
| 2026-05-17 | [devsecops.co.in: GitOps Guide What, Why and How? 🌟](https://devsecops.co.in/2021/05/13/gitops-guide-what-why-and-how) | 🟡 high | Demystifies the GitOps methodology, which is a fundamental paradigm shift for modern cloud-native continuous delivery. |
| 2026-05-17 | [ishantgaurav.in: Kubernetes Sidecar Container Pattern](https://ishantgaurav.in/2021/07/18/kubernetes-sidecar-container-pattern) | 🔵 medium | Explains the sidecar pattern, which is essential for implementing service meshes and platform-level logging in Kubernetes. |
| 2026-05-17 | [ittroubleshooter.in: Run Parallel Builds in Kubernetes Cluster with Jenkins' Pipeline 🌟](https://ittroubleshooter.in/run-parallel-build-kubernetes-cluster-jenkins) | 🔵 medium | Optimizes continuous integration pipelines by leveraging Kubernetes to run parallel, dynamically scaled build jobs. |
| 2026-05-17 | [devopstalks.in: Everything about Prometheus](https://devopstalks.in/everything-about-prometheus) | 🔵 medium | Offers a comprehensive deep dive into Prometheus, the de facto standard tool for cloud-native system observability. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - Taints and Tolerations](https://blog.learncodeonline.in/kubernetes-scheduling-taints-and-tolerations) | 🔵 medium | Enables engineers to design resilient and segregated clusters using advanced Kubernetes scheduling constraints. |
| 2026-05-17 | [blog.learncodeonline.in: Kubernetes Scheduling - DaemonSet](https://blog.learncodeonline.in/kubernetes-scheduling-daemonset) | 🔵 medium | Details DaemonSet scheduling, which is vital for deploying node-level logging and security agents uniformly across a cluster. |
| 2026-05-17 | [skilledfield.com.au: Monitoring Kubernetes and Docker Container Logs](https://skilledfield.com.au/monitoring-kubernetes-and-docker-container-logs) | 🔵 medium | Guides operational teams through establishing essential log aggregation pipelines for containerized applications. |
=== "Last 12 Months"
| Date | Resource | Impact | Why It Matters |
| :--- | :--- | :---: | :--- |
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Interview Questions resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Career & Industry)."
---
# Interview Questions
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Introduction resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Architectural Foundations)."
---
# Introduction. Microservice Architecture. From Java EE To Cloud Native. Openshift VS Kubernetes
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Istio resources for 2026, AI-ranked: Envoy Gateway, Jaeger and more — curated Cloud Native tools, guides and references."
---
# Istio - Service Mesh
!!! tip "Nubenetes V2 Elite Portal"
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Java And Java Performance Optimization resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Developer Ecosystem)."
---
# Java and Memory Management
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Java_App_Servers resources for 2026, AI-ranked: Payara Micro, WildFly and more — curated Cloud Native tools, guides and references."
---
# Server Vendors Providing Java EE/Jakarta EE and MicroProfile Runtimes
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Java_Frameworks resources for 2026, AI-ranked: Spring Cloud, logbook and more — curated Cloud Native tools, guides and references."
---
# Java and Java Programming Models. Open Source Microservices Frameworks
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Javascript resources for the 2026 Cloud Native architect: top-tier tools, guides and references (Developer Ecosystem)."
---
# JavaScript
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Jenkins Alternatives resources for 2026, AI-ranked: Prow, Screwdriver API and more — curated Cloud Native tools, guides and references."
---
# Jenkins Alternatives for Continuous Integration and Continuous Deployment
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Jenkins resources for 2026, AI-ranked: Jenkinsfile Runner, Example of JCasC and more — curated Cloud Native tools, guides and references."
---
# Jenkins and CloudBees
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Keptn resources for 2026, AI-ranked: Keptn, Quick Start and more — curated Cloud Native tools, guides and references."
---
# Keptn. Data Driven DevOps Automation with Ketpn. Automating Service Level Indicators/Service Level Objectives based build validation with Keptn and Jenkins
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Kubectl Commands resources for 2026, AI-ranked: Gradle Cheat Sheets, Helm and more — curated Cloud Native tools, guides and references."
---
# Kubectl commands
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Kubernetes Alternatives resources for 2026, AI-ranked: dreamland, llama.cpp plugin and more — curated Cloud Native tools, guides and references."
---
# Kubernetes Alternatives
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Kubernetes Autoscaling resources for the 2026 Cloud Native architect: top-tier tools, guides and references (The Container Stack)."
---
# Autoscaling
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Kubernetes Backup Migrations resources for 2026, AI-ranked: Stash, konveyor and more — curated Cloud Native tools, guides and references."
---
# Kubernetes Backup and Migrations
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Kubernetes Based Devel resources for the 2026 Cloud Native architect: top-tier tools, guides and references (The Container Stack)."
---
# Kubernetes Based Development. Kubernetes Distributions for local environments. Kubernetes Development Tools and Dashboards
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Top Kubernetes Client Libraries resources for 2026, AI-ranked: GitHub: Eclipse JKube, Fabric8 and more — curated Cloud Native tools, guides and references."
---
# Client Libraries for Kubernetes
!!! tip "Nubenetes V2 Elite Portal"
+3
View File
@@ -1,3 +1,6 @@
---
description: "Curated, AI-ranked Kubernetes Monitoring resources for the 2026 Cloud Native architect: top-tier tools, guides and references (The Container Stack)."
---
# Kubernetes Monitoring and Logging
!!! tip "Nubenetes V2 Elite Portal"

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