mirror of
https://github.com/nubenetes/awesome-kubernetes.git
synced 2026-09-01 08:07:19 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
37209a8d60 | ||
|
|
6b23611595 | ||
|
|
60815bc7d9 | ||
|
|
6d51a87def | ||
|
|
4ab138942e | ||
|
|
db10974e8c | ||
|
|
a431f0420b | ||
|
|
9280cf20a2 | ||
|
|
d060602964 | ||
|
|
5d05bb8faf | ||
|
|
29a9f11d5c | ||
|
|
1058aa3ca8 | ||
|
|
d502f0cbb3 | ||
|
|
a555595791 | ||
|
|
9f38f42fc7 | ||
|
|
f8ef8b02bc | ||
|
|
630e0b0dbc | ||
|
|
5bce1d0e13 | ||
|
|
49d1547ffd | ||
|
|
a374e57786 | ||
|
|
c92cf4c694 | ||
|
|
ed2fb5d2c1 | ||
|
|
68981a2b5e | ||
|
|
b6bd5e109e | ||
|
|
0ac490529d | ||
|
|
bfca256b45 | ||
|
|
728d57c2ef | ||
|
|
5a6d298e56 | ||
|
|
8e902459ef | ||
|
|
346f15b19d | ||
|
|
1dd8ce7e2a | ||
|
|
6b527a91f2 | ||
|
|
82fb37a148 | ||
|
|
b15695207c | ||
|
|
f73c21fb9d | ||
|
|
514d6b37af | ||
|
|
fb238c605f | ||
|
|
937610a4e5 | ||
|
|
d5b108d4d3 | ||
|
|
e3d0e04316 | ||
|
|
c437e5fb31 | ||
|
|
425faacf89 | ||
|
|
fe00e0eaf9 | ||
|
|
2cdb140ec8 | ||
|
|
b0d6117b6c | ||
|
|
68760c2148 | ||
|
|
cfce3ade24 | ||
|
|
f46458340c | ||
|
|
d7b4f54851 | ||
|
|
61e769ad9d | ||
|
|
051e0fc5b1 | ||
|
|
2193723030 | ||
|
|
7ac4ff6c13 | ||
|
|
62ed5e184e | ||
|
|
0f4898cdce | ||
|
|
98c02d661c | ||
|
|
56a5092f77 | ||
|
|
76196c5c35 | ||
|
|
dc7ea8a89e | ||
|
|
cfb60c8d47 | ||
|
|
d317ff1734 | ||
|
|
8b040b0791 | ||
|
|
94b41030ab | ||
|
|
9bff4985e5 | ||
|
|
ae181d382f | ||
|
|
1682c471c4 | ||
|
|
05c5c6efd2 | ||
|
|
3318061bb1 | ||
|
|
55527e3beb | ||
|
|
2763752411 | ||
|
|
a221fbdcdf | ||
|
|
780fbbb1ec | ||
|
|
6da026b0e3 | ||
|
|
6ebd5700f1 | ||
|
|
4f61534c2a | ||
|
|
3558c5b082 | ||
|
|
e3d0c7e7d0 | ||
|
|
3166745123 | ||
|
|
7f648c95ee | ||
|
|
2182ba5a14 | ||
|
|
f0465d3cf1 | ||
|
|
4cf24af048 | ||
|
|
8cacba094a | ||
|
|
337536c9e6 | ||
|
|
581e75abd8 | ||
|
|
87eb612aa0 | ||
|
|
b2cee83e9f | ||
|
|
9085a4df85 | ||
|
|
bab49932d1 | ||
|
|
b12aa57102 | ||
|
|
fbf99cf8d1 | ||
|
|
228e4677ef | ||
|
|
4647fd6626 | ||
|
|
6edf3a877c | ||
|
|
1a0bc75cca | ||
|
|
ced9bf0056 | ||
|
|
c0542b09ac | ||
|
|
37a03b4f23 | ||
|
|
e7e588bed0 | ||
|
|
6e2a8c3a92 | ||
|
|
12cf8e3840 | ||
|
|
ef4feaa941 | ||
|
|
450ec74c06 | ||
|
|
b578513e71 | ||
|
|
df7adf28df | ||
|
|
76c3b3d907 | ||
|
|
ed189f6426 | ||
|
|
6e8cc4fda4 | ||
|
|
0d3b751a6d | ||
|
|
a7eae54c1f | ||
|
|
6bb523a0f0 | ||
|
|
e385fe27eb | ||
|
|
967900cd58 | ||
|
|
a26adfb137 | ||
|
|
eeff01403b | ||
|
|
5c6fe886ae | ||
|
|
c73419a889 | ||
|
|
29b14c2a78 | ||
|
|
062c61afd4 | ||
|
|
47e7d63497 | ||
|
|
b697327426 | ||
|
|
93e79c15a5 | ||
|
|
f5dd79aa11 | ||
|
|
0ae882f50f | ||
|
|
d8dd040601 | ||
|
|
e0598ac9ad | ||
|
|
d89b37860d | ||
|
|
de196fee27 | ||
|
|
989a20539c | ||
|
|
3066e24a16 | ||
|
|
865bc96814 | ||
|
|
f84ecce6d0 | ||
|
|
fee247d837 | ||
|
|
69d97eb5c7 | ||
|
|
eb1c4beb14 | ||
|
|
8bd68603b1 | ||
|
|
a87ea0a399 | ||
|
|
1a69f53a16 | ||
|
|
ba5e0969d3 | ||
|
|
b0edc25e0c | ||
|
|
7487af5929 | ||
|
|
69a0e9e213 | ||
|
|
4f25652e29 | ||
|
|
d145714a3c | ||
|
|
6a19035279 | ||
|
|
5b843617ca | ||
|
|
42e3fbedb9 | ||
|
|
4250415fcd | ||
|
|
d95606af48 | ||
|
|
8c072d12b8 | ||
|
|
71da2a1255 | ||
|
|
1c43c32f18 | ||
|
|
8c8cc0a282 | ||
|
|
0338e3c26e | ||
|
|
31ddb0fc4e | ||
|
|
68d6388033 | ||
|
|
05255d1954 | ||
|
|
d6ee6be558 | ||
|
|
bc18cbed40 | ||
|
|
130ecf4b3e | ||
|
|
d1c1eab611 | ||
|
|
f27497cdbf | ||
|
|
39bf129207 | ||
|
|
963ea26d92 | ||
|
|
6de486b2d8 | ||
|
|
a72ad88d42 | ||
|
|
54c8c43a21 | ||
|
|
6de36a7181 | ||
|
|
aeede69061 | ||
|
|
11caab27c7 | ||
|
|
375cd196f5 | ||
|
|
f89228ecc1 | ||
|
|
36e969f868 | ||
|
|
d64d91eac2 | ||
|
|
16f6310e1f | ||
|
|
55704b37d6 | ||
|
|
146163d5bc | ||
|
|
760fd58f91 | ||
|
|
ce07e13a78 | ||
|
|
58fa1c13c5 | ||
|
|
cb2ea3d1ca | ||
|
|
60e0bd4c82 | ||
|
|
23b2c6d069 | ||
|
|
dbf46e6de7 | ||
|
|
ee3a0581a3 | ||
|
|
fb532f7871 | ||
|
|
21395d1a38 | ||
|
|
bd1583c5a1 | ||
|
|
6b0487b4b9 | ||
|
|
a3295ebe98 | ||
|
|
813b008eb5 | ||
|
|
81f4fc1abc | ||
|
|
b91130ca6b | ||
|
|
e6beeb7f1c | ||
|
|
c73e2210ab | ||
|
|
02f3ed4294 | ||
|
|
2a43994399 | ||
|
|
d56e1aaaa1 | ||
|
|
a4132a87f3 | ||
|
|
bf3ea9dd27 | ||
|
|
6b441f105b | ||
|
|
b647c93cd7 | ||
|
|
d46cd67ee4 | ||
|
|
8f063f918e | ||
|
|
070351b2b6 | ||
|
|
cc26293585 | ||
|
|
59e0036684 | ||
|
|
dcb078c535 | ||
|
|
79e5477d9d | ||
|
|
dc7e15b7de | ||
|
|
681e2bb5d1 | ||
|
|
f71e9734c7 | ||
|
|
3ce4a78f3f | ||
|
|
ee1e366923 | ||
|
|
b5a684d65d | ||
|
|
7bff0c8c67 | ||
|
|
2f66b91b3c |
@@ -98,7 +98,7 @@ jobs:
|
||||
- name: Installation of Dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install --no-cache-dir pydantic PyGithub aiohttp beautifulsoup4 httpx fake-useragent pytz python-dotenv twikit>=2.1.2 playwright playwright-stealth pyyaml tenacity
|
||||
pip install --no-cache-dir pydantic PyGithub aiohttp beautifulsoup4 httpx fake-useragent pytz python-dotenv twikit>=2.1.2 playwright playwright-stealth pyyaml tenacity feedparser
|
||||
|
||||
- name: Cache Playwright Binaries
|
||||
uses: actions/cache@v5
|
||||
@@ -111,7 +111,17 @@ jobs:
|
||||
if: steps.playwright-cache.outputs.cache-hit != 'true'
|
||||
run: playwright install chromium --with-deps
|
||||
|
||||
- name: Restore Incremental Inventory Cache
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-curation-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
restore-keys: |
|
||||
inventory-curation-
|
||||
|
||||
- name: Workflow UI Synchronization Check (Mandate 11)
|
||||
env:
|
||||
PYTHONPATH: .
|
||||
run: |
|
||||
python src/sync_workflow_ui.py
|
||||
|
||||
@@ -151,7 +161,7 @@ jobs:
|
||||
|
||||
if [ $EXIT_CODE -eq 42 ]; then
|
||||
echo "🚨 CIRCUIT BREAKER TRIPPED: Disabling workflow to prevent quota drain."
|
||||
gh workflow disable agentic_cron.yml
|
||||
gh workflow disable 01.1.agentic_cron.yml
|
||||
exit 1
|
||||
elif [ $EXIT_CODE -ne 0 ]; then
|
||||
exit $EXIT_CODE
|
||||
@@ -165,7 +175,7 @@ jobs:
|
||||
if [ "${{ github.event.inputs.historical_chunked }}" == "true" ] && grep -q "NEXT_CHUNK_START:" output.log; then
|
||||
NEXT_DATE=$(grep "NEXT_CHUNK_START:" output.log | awk '{print $2}')
|
||||
echo "Triggering next historical chunk until: $NEXT_DATE"
|
||||
gh workflow run agentic_cron.yml -f historical_mode=true -f historical_chunked=true -f historical_until_date=$NEXT_DATE
|
||||
gh workflow run 01.1.agentic_cron.yml -f historical_mode=true -f historical_chunked=true -f historical_until_date=$NEXT_DATE
|
||||
fi
|
||||
|
||||
- name: Upload Visual Dashboard Artifact
|
||||
@@ -193,4 +203,12 @@ jobs:
|
||||
TITLE="Curation Report: $STATUS - $(date +'%Y-%m-%d')"
|
||||
BODY="### Nubenetes Automated Curation has finished.\n\n**Status:** $STATUS\n**Pull Request:** $PR_URL\n\nCheck the [workflow logs]($RUN_URL) for more details. If a visual report was generated, you can download it from the artifacts section of the workflow run."
|
||||
|
||||
gh label create "curation-report" --color "0E8A16" --description "Automated curation run reports" || true
|
||||
gh issue create --title "$TITLE" --body "$BODY" --label "curation-report" || echo "Failed to create issue"
|
||||
|
||||
- name: Persist Incremental Inventory to Cache
|
||||
if: always()
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-curation-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -8,6 +8,8 @@ on:
|
||||
- 'src/v2_video_portal.py'
|
||||
- 'src/enrich_videos.py'
|
||||
- 'data/inventory.yaml'
|
||||
schedule:
|
||||
- cron: '0 6 1 * *' # Runs on the 1st of every month at 06:00 UTC (every ~30 days)
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
restore_cache:
|
||||
@@ -76,7 +78,7 @@ jobs:
|
||||
run: |
|
||||
git config --global user.name "Nubenetes Bot"
|
||||
git config --global user.email "bot@nubenetes.com"
|
||||
git add data/inventory.yaml v2-docs/videos.md
|
||||
git add data/inventory.yaml v2-docs/videos/
|
||||
if git diff --staged --quiet; then
|
||||
echo "No automated changes to commit."
|
||||
else
|
||||
|
||||
@@ -63,6 +63,12 @@ jobs:
|
||||
run: |
|
||||
python -u src/v2_video_portal.py
|
||||
|
||||
- name: Execute Mosaic Reorganization
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
run: |
|
||||
python src/reorganize_mosaic.py
|
||||
|
||||
- name: Run V2 Publisher (Render-Only)
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
|
||||
+196
@@ -5,6 +5,202 @@ 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.3.43]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.43) - 2026-06-03
|
||||
|
||||
### Fixed
|
||||
- **Mermaid Diagram Text Overflow**: Wrapped long text strings inside the "4.2. Hardened Architecture (2026)" Mermaid diagram in `README.md` using `<br>` to prevent text clipping and rendering issues in standard Markdown viewers.
|
||||
|
||||
## [[2.3.42]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.42) - 2026-06-03
|
||||
|
||||
### Fixed
|
||||
- **Mobile Drawer Contrast (V2)**: Resolved contrast issues in the Nubenetes V2 mobile navigation drawer under dark mode (`slate`) by overriding `.md-nav__title`, logo, icons, and `.md-nav__source` background/foreground colors. This ensures readable white text and visible icons on dark backgrounds.
|
||||
|
||||
## [[2.3.41]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.41) - 2026-06-03
|
||||
|
||||
### Fixed
|
||||
- **Agentic Pulse Metadata and Sort Logic**: Corrected the V2 optimizer script (`src/v2_optimizer.py`) to query the correct `year` attribute instead of the non-existent `pub_date` when rendering the Agentic Pulse section on the V2 home page, and introduced fallback sorting logic for entries without explicit publication years to ensure chronological precision.
|
||||
|
||||
## [[2.3.40]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.40) - 2026-06-03
|
||||
|
||||
### Removed
|
||||
- **Deprecated AWS Quick Start Reference**: Confirmed retirement of the AWS Quick Starts program (replaced globally by AWS Partner Solutions), removed `https://aws.amazon.com/es/quickstart` from the centralized inventory database, and updated the V1 and V2 documentation files to delete the dead references.
|
||||
|
||||
## [[2.3.39]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.39) - 2026-06-02
|
||||
|
||||
### Added
|
||||
- **ClickHouse YouTube Channel Integration**: Registered the official ClickHouse YouTube channel in the centralized inventory and regenerated both the V1 and V2 homepage mosaics, sorting ClickHouse under the Observability, Databases & Cloud Storage category in V2.
|
||||
- **ClickHouse SVG Logo Asset**: Added a color-coded orange SVG logo for ClickHouse to guarantee legibility across light and dark platforms.
|
||||
|
||||
## [[2.3.38]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.38) - 2026-06-02
|
||||
|
||||
### Added
|
||||
- **YouTube Embed Iframe Refusal Fix**: Solved the `www.youtube.com refused to connect` error in video iframe players by implementing a parser (`to_embed_url`) in the generator script to dynamically rewrite standard YouTube watch/shortened URLs into the required embed format, fully preserving start-times (`start=...`) and playlist IDs (`list=...`).
|
||||
|
||||
### Fixed
|
||||
- **MD037 Lint Fix (Video Portal)**: Fixed a markdown linter failure in `v2-docs/videos/cloud-native.md` (and other video documents) by converting asterisk-based bullets (`* `) in video summaries to dash-based bullets (`- `). This avoids syntax collision where the linter parses indented asterisk bullets inside blocks as malformed bold/emphasis markers.
|
||||
|
||||
## [[2.3.37]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.37) - 2026-06-02
|
||||
|
||||
### Added
|
||||
- **Programmatic Smart Injection (Option B)**: Replaced legacy full-document rewriting using Gemini Pro with a highly efficient programmatic Markdown injector. The new system uses Gemini Flash 3.5 to choose the target section header, while Python surgically inserts the link. This prevents 429 rate limit blocks and cuts down API costs by 95%.
|
||||
- **Persisted Raw Impact Score**: Added `impact_score` attribute to evaluations saved inside `data/inventory.yaml`, ensuring that cached resources retain their original AI classification scores.
|
||||
|
||||
### Fixed
|
||||
- **KeyError: 'impact_score'**: Implemented resilient fallback logic in the curation orchestrator to calculate `impact_score` from the `stars` attribute (e.g. `stars * 20`) for cached items that lack the raw `impact_score` field.
|
||||
|
||||
## [[2.3.36]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.36) - 2026-05-29
|
||||
|
||||
### Fixed
|
||||
- **Legal Disclaimer Duplication**: Removed duplicate/redundant line of text in README.md section 15.3.
|
||||
|
||||
## [[2.3.35]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.35) - 2026-05-28
|
||||
|
||||
### Added
|
||||
- **Grafana Observability Video**: Added the Viktor Farcic video `I Stopped Staring at Dashboards. AI Reads My Grafana Metrics Now.` to the V2 Video Hub under the "AI Agents and MCP" learning path.
|
||||
|
||||
## [[2.3.34]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.34) - 2026-05-28
|
||||
|
||||
### Added
|
||||
- **Link Provenance Tracking**: Added `addition_method` metadata attribute to `data/inventory.yaml` to differentiate between manually curated and automatically ingested links.
|
||||
- **Database Migration**: Migrated all 18,004 existing database entries to have `addition_method: manual` by default.
|
||||
- **Workflow & Optimizer Integration**: Programmed `src/agentic_curator.py` to mark automatically ingested resources as `automatic`, and updated `src/v2_optimizer.py` to default new V1 Markdown source resources to `manual`.
|
||||
|
||||
### Changed
|
||||
- **Documentation & Memory Systems**: Added documentation for `addition_method` in `README.md`, `GEMINI.md`, and `src/memory/health_learning.json`.
|
||||
|
||||
## [[2.3.32]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.32) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Arsys Logo Dark Mode Contrast**: Changed the Arsys logo fill color to a constant corporate electric sky blue (`#00a2e8`) inside the SVG, ensuring maximum contrast on both white (V1) and slate/black (V2) backgrounds.
|
||||
- **Removed Logo CSS Inversion**: Removed the dark mode CSS filter invert rule in `extra.css` to preserve branding color integrity.
|
||||
|
||||
## [[2.3.31]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.31) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Arsys Logo Dark Mode Adaptation**: Embedded light/dark prefers-color-scheme styles inside the Arsys SVG logo and added a CSS invert filter for the slate theme in `extra.css` to fix visibility in dark mode.
|
||||
|
||||
## [[2.3.30]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.30) - 2026-05-28
|
||||
|
||||
### Fixed
|
||||
- **Wikimedia Commons URL Correction**: Replaced the broken HTML error page (downloaded due to invalid hash pathing) with a valid vector SVG file by using the correct MD5 filename-derived directory structure (`8/88/Arsys_logo.svg`) on upload.wikimedia.org.
|
||||
|
||||
## [[2.3.29]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.29) - 2026-05-28
|
||||
|
||||
### Added
|
||||
- **Arsys Channel Integration**: Registered `https://www.youtube.com/@arsys` in `data/inventory.yaml` under `cloud_providers` (V2) and ordered to append at the end of V1 flat sequence.
|
||||
|
||||
### Fixed
|
||||
- **Video Hub Heading Level Fix**: Fixed a markdown linter error (MD001) in the generated video hub index by changing the heading increment from h3 to h2 (`## Learning Dimensions`).
|
||||
|
||||
## [[2.3.28]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.28) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Mandate 23 Documentation**: Updated `GEMINI.md` and `health_learning.json` to formally document the database-driven dual layout design of YouTube mosaics.
|
||||
|
||||
## [[2.3.27]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.27) - 2026-05-28
|
||||
|
||||
### Added
|
||||
- **Workflow Automation for Mosaic**: Configured the V2 Publisher workflow to execute `src/reorganize_mosaic.py` automatically on each run.
|
||||
|
||||
## [[2.3.26]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.26) - 2026-05-28
|
||||
|
||||
### Fixed
|
||||
- **Video Hub Index Heading Level Correction**: Adjusted generator code to prevent heading hierarchy lint failures.
|
||||
|
||||
## [[2.3.25]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.25) - 2026-05-28
|
||||
|
||||
### Added
|
||||
- **Database Migration for YouTube Mosaic**: Migrated YouTube channel mosaic configuration from the deprecated `youtube_channels_mosaic.yaml` to the unified monolithic `data/inventory.yaml` and refactored the layout generator to dynamically read from the database.
|
||||
|
||||
## [[2.3.24]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.24) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Restored V1 Flat YouTube Mosaic Layout**: Restored the flat list layout (11 channels per row, sorted by `order_v1`) on the V1 homepage, while preserving the advanced categorized V2 dashboard.
|
||||
|
||||
## [[2.3.23]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.23) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Quote Card HTML Structure**: Wrapped the clickable `quote-card-link` in a block-level `div` container to prevent the Markdown processor from wrapping the inline `a` link in a paragraph `<p>` tag. This ensures correct HTML parsing and restores the quote card's dynamic hover animations and transitions.
|
||||
|
||||
## [[2.3.22]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.22) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Showcase Image Conformance Footer Bar**: Replaced the absolute badge overlay with an elegant, responsive glassmorphic footer bar `.hero-showcase-footer` beneath the image. This bar contains the CNCF conformance badge alongside an explanatory caption about workload portability, ensuring that no text covers any part of the main showcase image.
|
||||
|
||||
## [[2.3.21]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.21) - 2026-05-28
|
||||
|
||||
### Changed
|
||||
- **Reordered V2 Homepage Header**: Reorganized the V2 home page layout, placing the large responsive CNCF conformance image showcase first, followed by Horatio's framed interactive quote card, and finally the four flex dashboard cards.
|
||||
- **Glassmorphic Quote Card**: Replaced the plain text quote with a styled, framed quote card featuring an interactive dashed border, a custom quote icon, and a glowing neon cyan hover state that links directly to Horatio Nelson Jackson's Wikipedia page.
|
||||
- **Enlarged Conformance Showcase**: Increased the max-width of the CNCF conformance wrapper to 1100px to ensure it remains as large as possible across all high-resolution devices.
|
||||
|
||||
## [[2.3.20]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.20) - 2026-05-27
|
||||
|
||||
### Changed
|
||||
- **CNCF Showcase Conformance Image Effects**: Added a glassmorphic wrapper `.hero-showcase-wrapper` to the main CNCF conformance image on the V2 homepage with hover scale effects (`1.03x`), brightness filters, a neon cyan shadow glow, and an interactive overlay badge.
|
||||
- **V2 Nav and Index Path Fixes**: Resolved broken internal references to `videos.md` in `v2-mkdocs.yml` and the strategic dimensions list by permanently updating the compiler to resolve paths to the modularised `./videos/index.md` location. Integrated MkDocs Material's `navigation.indexes` feature so that clicking the top-level "Agentic Video Hub" menu tab links directly to the Overview page (`videos/index.md`) without sub-navigation redundancy.
|
||||
|
||||
## [[2.3.19]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.19) - 2026-05-27
|
||||
|
||||
### Added
|
||||
- **Modularized Video Hub**: Replaced the legacy monolithic `v2-docs/videos.md` with a structured, multi-page directory (`v2-docs/videos/`) separating video resources into AI Agents, DevOps/IaC/SRE, Cloud Native Core, and Fundamentals learning paths.
|
||||
- **Robust Slugification and Header Cleaning**: Upgraded the slugification and header normalization logic to ensure 100% compatibility with MkDocs anchor resolution, stripping commas, parentheses, slashes, and special symbols to prevent broken internal links.
|
||||
- **Monthly Video Automation Schedule**: Configured a monthly cron trigger (`0 6 1 * *`) in the V2 Video Hub Builder GitHub action to automate video curation and portal updates.
|
||||
|
||||
### Changed
|
||||
- **Persisted Hero Dashboard Cards**: Integrated the 4 glassmorphic interactive cards directly into the `v2_optimizer.py` compilation script for `v2-docs/index.md`, preventing them from being overwritten during V2 rendering cycles and updating the video link to `./videos/index.html`.
|
||||
|
||||
## [[2.3.18]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.18) - 2026-05-27
|
||||
|
||||
### Added
|
||||
- **4-Card Hero Dashboard**: Expanded the V2 homepage header from two to four interactive dashboard cards, adding entry points for "AI & MCP Agents" (with custom purple glow) and "Agentic Video Hub" (with custom pink glow). Improved visual layout structure and updated all card links to point directly to `.html` destinations to prevent 404 compilation target errors.
|
||||
|
||||
## [[2.3.17]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.17) - 2026-05-27
|
||||
|
||||
### Changed
|
||||
- **V2 Header Cards Optimization**: Fixed broken `.md` targets in raw HTML header cards by pointing them to compiled `.html` pages. Upgraded card sizing to use a responsive flex layout (`flex: 1; max-width: 280px; min-width: 200px;`) with increased padding and added visual hover highlight states on card icons matching the mosaic aesthetics.
|
||||
|
||||
## [[2.3.16]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.16) - 2026-05-27
|
||||
|
||||
### Changed
|
||||
- **V2 Homepage Interactive Header Badges**: Converted the top inline Kubernetes and Hero Car image links on the V2 index page into styled, responsive glassmorphic cards. Kubernetes links to the internal curated Kubernetes resources section rather than the external homepage, improving contextual navigation.
|
||||
|
||||
## [[2.3.15]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.15) - 2026-05-27
|
||||
|
||||
### Changed
|
||||
- **Homepage YouTube Mosaic Scaling & Transitions**: Refactored the icon layout styling to use uniform responsive sizing (48px) instead of viewport percentage widths. Added hover micro-animations (scale-up scale factor 1.15x and brightness filters) for both light and dark modes to enhance aesthetic premium quality.
|
||||
|
||||
## [[2.3.14]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.14) - 2026-05-27
|
||||
|
||||
### Changed
|
||||
- **Kyndryl YouTube Channel Categorization**: Moved the Kyndryl channel from the Tech E-Learning category to the Cloud Providers & Core Infrastructure category in the homepage mosaic mapping database and files.
|
||||
|
||||
## [[2.3.13]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.13) - 2026-05-27
|
||||
|
||||
### Changed
|
||||
- **Homepage YouTube Mosaic Visual Borders**: Replaced category text headers with thin colored outline borders around each channel group inside the mosaic. This restores a continuous, symmetric flow of clickable icons while visually highlighting the different technological categories.
|
||||
|
||||
## [[2.3.12]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.12) - 2026-05-27
|
||||
|
||||
### Added
|
||||
- **Homepage YouTube Mosaic Reorganization**: Reorganized the visual channels mosaic on V1 and V2 homepages into logical technology categories (e.g., AI & Advanced Tech, Cloud Providers, Cloud Native, etc.).
|
||||
- **Mosaic Database Schema**: Introduced `data/youtube_channels_mosaic.yaml` to catalog and preserve the channel classification directly in the repository configuration.
|
||||
|
||||
## [[2.3.11]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.11) - 2026-05-27
|
||||
|
||||
### Added
|
||||
- **Microsoft Reactor YouTube Channel**: Added Microsoft Reactor to the homepage channels mosaic in V1 and V2, moving Playwright to its own row at the bottom of the mosaic.
|
||||
|
||||
## [[2.3.10]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.10) - 2026-05-27
|
||||
|
||||
### Added
|
||||
- **Agentic DevOps Live Playlist**: Integrated the Microsoft/GitHub "Agentic DevOps Live" series into the V2 Video Hub under the AI and Future Operations category, detailing SRE agents, Copilot App Mod agents, and autonomous development loops.
|
||||
|
||||
## [[2.3.9]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.9) - 2026-05-27
|
||||
|
||||
### Added
|
||||
- **VS Code Dev Tunnels Video**: Integrated Gisela Torres' tutorial on VS Code Dev Tunnels into the V2 Video Hub, highlighting the secure remote access capabilities and developer productivity benefits. [SPANISH CONTENT]
|
||||
|
||||
## [[2.3.8]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.8) - 2026-05-27
|
||||
|
||||
### Added
|
||||
|
||||
@@ -55,13 +55,17 @@ This file contains the accumulated instructions and long-term vision for the aut
|
||||
* `source_provenance`: Identifies the origin of the discovery (Twitter, RSS, Manual).
|
||||
* `social_preview_url`: OpenGraph/Social images to enrich the V2 visual experience.
|
||||
* `mentions_count`: Tracks resource popularity/rediscovery frequency.
|
||||
* `addition_method`: Tracks the resource addition origin ('manual' or 'automatic') to facilitate scaling metrics.
|
||||
- **Persistence (MANDATORY)**: Every AI agent and workflow MUST load this file at startup, update it, and INJECT the modified YAML into the final PR payload if any change is detected. Discarding the database during a workflow run is a CRITICAL FAILURE.
|
||||
- **Exhaustive Initialization**: The system supports a `FORCE_FULL_CHECK` environment variable to bypass all caches (e.g., 21-day health cache) and force a full re-validation and re-enrichment of the entire 17k+ link archive.
|
||||
- **No Trusted Bypassing**: All domains, including high-trust ones (GitHub, Google, AWS), MUST be verified for link validity. Trusted status only grants a lower priority for aggressive scraper rotation, not a bypass for existence checks.
|
||||
- **URL Protocol Integrity**: All URLs MUST use the complete and correct protocol prefix (`https://` or `http://`). AI agents MUST ensure that automated edits or mass cleanup tasks NEVER corrupt the protocol (e.g., by reducing `https://` to `https:/`).
|
||||
- **Manual Priority**: AI agents MUST NOT overwrite existing manual descriptions or stars in the V1 archive files. Enrichment is strictly for the YAML database and the V2 portal.
|
||||
|
||||
23. **YouTube Mosaic Exemption**: In `docs/index.md` and `v2-docs/index.md`, only the primary visual mosaic block (the specific `<center>` block containing the highest density of YouTube links) is exempt from automated health checks and MUST NOT be included in `data/inventory.yaml`. This is a fixed visual asset. However, all other YouTube resources in these files—including links appearing before the mosaic and those in the collapsible "Top Videos" section—MUST be checked by the link cleaner and properly tracked in the inventory.
|
||||
23. **YouTube Mosaic Management & Dual Layout Mandate**: The YouTube channels visual mosaic in `docs/index.md` (V1) and `v2-docs/index.md` (V2) must be generated dynamically from the centralized metadata database `data/inventory.yaml` (using the `youtube_mosaic` metadata block). The layouts for V1 and V2 must remain strictly distinct to satisfy the dual-edition mandate:
|
||||
- **V1 Exhaustive Layout**: Must be rendered as a single flat, historically ordered sequence of channel logos (11 per row) using simple inline width styling (`{: style="width:7%"}`). Newly discovered channels must be appended at the end of the flat list (ordered using the `youtube_mosaic.order_v1` field).
|
||||
- **V2 Elite Layout**: Must be rendered as an advanced categorized dashboard grouped into custom border-outlined card containers with neon colors corresponding to technical dimensions, optimized dimensions (`width: 48px; height: 48px`), and class hooks (`.channel-logo`) (ordered using the `youtube_mosaic.order_v2` field).
|
||||
- **Automation & Persistence**: The automated Publisher and Optimizer bot workflows must execute `src/reorganize_mosaic.py` to regenerate both visual blocks from the database during every pipeline run, ensuring the layout difference persists over the entire lifecycle.
|
||||
|
||||
24. **Canonical URL Normalization & Semantic Deduplication**: To prevent duplication and fragmented metadata, all agents MUST normalize URLs before any inventory operation.
|
||||
- **Tracking Stripping**: Systematically remove UTM parameters, social media trackers (X.com, LinkedIn), and URL fragments (except technical ones).
|
||||
|
||||
@@ -133,14 +133,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-05-27)
|
||||
(Stats as of 2026-06-03)
|
||||
|
||||
<!-- HEART_STATS_START -->
|
||||
| Metric | Value |
|
||||
| :--- | :--- |
|
||||
| **Total Technical Resources (Links)** | **17994+** |
|
||||
| **Specialized MD Pages** | **161** |
|
||||
| **Total Commits** | **5532+** |
|
||||
| **Total Technical Resources (Links)** | **18356+** |
|
||||
| **Specialized MD Pages** | **162** |
|
||||
| **Total Commits** | **5739+** |
|
||||
| **Primary AI Engine** | **Google Gemini (Agentic)** |
|
||||
<!-- HEART_STATS_END -->
|
||||
|
||||
@@ -178,7 +178,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 | 1973 | 8,148 | **Agentic AI Surge** (May 2026 Inception) |
|
||||
| 9 | 2026 | 2180 | 9,003 | **Agentic AI Surge** (May 2026 Inception) |
|
||||
<!-- ANNUAL_GROWTH_END -->
|
||||
|
||||
<!-- ANNUAL_CHART_START -->
|
||||
@@ -193,9 +193,9 @@ config:
|
||||
xychart-beta
|
||||
title "Nubenetes Annual Growth Metrics (2018–2026)"
|
||||
x-axis ["2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"]
|
||||
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 9000
|
||||
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 8148]
|
||||
bar [350, 142, 2046, 531, 402, 30, 53, 5, 1973]
|
||||
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 10000
|
||||
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 9003]
|
||||
bar [350, 142, 2046, 531, 402, 30, 53, 5, 2180]
|
||||
```
|
||||
<!-- ANNUAL_CHART_END -->
|
||||
|
||||
@@ -204,7 +204,8 @@ xychart-beta
|
||||
| Month | Commits | Est. New Refs | Status |
|
||||
| :--- | :---: | :---: | :--- |
|
||||
| 2026-04 | 25 | 103 | Active Curation |
|
||||
| 2026-05 | 1948 | 8,045 | **Agentic Inception (Gemini Era)** |
|
||||
| 2026-05 | 2101 | 8,677 | **Agentic Inception (Gemini Era)** |
|
||||
| 2026-06 | 54 | 223 | Active Curation |
|
||||
<!-- MONTHLY_SURGE_END -->
|
||||
|
||||
### 2.4. Content Distribution and Semantic Clustering
|
||||
@@ -217,7 +218,7 @@ This chart shows the high-level distribution across the primary domains of Cloud
|
||||
<!-- PILLAR_CHART_START -->
|
||||
```mermaid
|
||||
pie title Nubenetes Major Ecosystem Pillars
|
||||
"Specialized Topics" : 3594
|
||||
"Specialized Topics" : 3956
|
||||
"Kubernetes Ecosystem" : 3500
|
||||
"Developer Ecosystem" : 3000
|
||||
"Public/Private Cloud" : 2500
|
||||
@@ -238,10 +239,10 @@ Reflecting Nubenetes' mission of global access while maintaining technical Engli
|
||||
<!-- SUB_ECO_CHART_START -->
|
||||
```mermaid
|
||||
pie title Linguistic Diversity (Global Access)
|
||||
"English" : 16194
|
||||
"Spanish" : 1079
|
||||
"French" : 179
|
||||
"Others" : 539
|
||||
"English" : 16520
|
||||
"Spanish" : 1101
|
||||
"French" : 183
|
||||
"Others" : 550
|
||||
```
|
||||
<!-- SUB_ECO_CHART_END -->
|
||||
|
||||
@@ -284,24 +285,24 @@ The Nubenetes ecosystem utilizes a multi-layered defense and performance archite
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph "Phase 1: Discovery & Rescue"
|
||||
A["X.com/RSS Feeds"] --> B["Agentic Discoverer"]
|
||||
A["X.com / RSS Feeds"] --> B["Agentic Discoverer"]
|
||||
B --> C{"Health Pulse"}
|
||||
C -- "Dead" --> D["MCP Web Grounding"]
|
||||
C -- "Dead" --> D["MCP Web<br>Grounding"]
|
||||
D -- "Rescued" --> E["Unified Inventory"]
|
||||
C -- "Alive" --> E
|
||||
end
|
||||
|
||||
subgraph "Phase 2: Intelligent Optimization"
|
||||
E --> F["Gemini AI Curation"]
|
||||
F --> G["V2 Elite selection"]
|
||||
E --> F["Gemini AI<br>Curation"]
|
||||
F --> G["V2 Elite<br>Selection"]
|
||||
G --> H["Maturity Tagging"]
|
||||
end
|
||||
|
||||
subgraph "Phase 3: Hardened CI/CD"
|
||||
H --> I["Concurrency Guard"]
|
||||
I --> J["[skip ci] Loop Prevention"]
|
||||
J --> K["Dependency & Playwright Caching"]
|
||||
K --> L["Native GH Pages Deployment"]
|
||||
H --> I["Concurrency<br>Guard"]
|
||||
I --> J["[skip ci]<br>Loop Prevention"]
|
||||
J --> K["Dependency &<br>Playwright Caching"]
|
||||
K --> L["Native GH Pages<br>Deployment"]
|
||||
end
|
||||
|
||||
style I fill:#f96,stroke:#333,stroke-width:2px
|
||||
@@ -324,7 +325,7 @@ To ensure maximum throughput and industrial-grade precision, Nubenetes uses a pr
|
||||
- **Double-Evidence Synthesis Protocol**: Agents are mandated to contrast 'Curator Insight' (from original discovery) with 'Live Technical Grounding' (from search/MCP) before finalizing any technical summary.
|
||||
- **Real-time Web Grounding (MCP-Style)**: For high-fidelity tasks, the engine activates **Google Search Grounding**. This allows the AI to verify technical maturity, site migrations, and official documentation in real-time, providing a live data filter for all decisions.
|
||||
- **Smart Batching (Anti-429)**: Instead of individual calls, the system groups up to **25 resources into high-precision batches**. This optimizes grounding efficiency and minimizes rate limits.
|
||||
- **Dynamic Model Selection**: The system automatically toggles between **Gemini Pro** (for auditing and research) and **Gemini Flash** (for broad analysis).
|
||||
- **Dynamic Model Selection & Programmatic Injection (Option B)**: The system automatically toggles between **Gemini Pro** (for auditing and research) and **Gemini Flash** (for broad analysis and link insertion planning). Actual link injections are performed programmatically in Python to ensure 0% document corruption and zero rate-limit blocks.
|
||||
- **Global Back-off & Tier-down**: Automatic exponential back-off and model tier-down logic to ensure 100% workflow resilience.
|
||||
- **Ultra-Fast V2 Render Mode**: The final `render-and-pr` stage bypasses redundant HTTP health checks, GitHub API metadata fetching, and AI agent evaluation loops by leveraging the pre-computed YAML inventory to assemble the portal instantaneously.
|
||||
### 4.4. Doc-as-Behavior Mandate Bridge
|
||||
@@ -343,6 +344,7 @@ Nubenetes operates with two distinct editions to serve different engineering nee
|
||||
- **SEO Guard:** Deployed at the domain root (`/`) to preserve 6+ years of historical backlinks and deep-links.
|
||||
- **Fallback Access:** Also available at [nubenetes.com/v1/](https://nubenetes.com/v1/).
|
||||
- **Source of Truth:** The `docs/` directory.
|
||||
- **YouTube Mosaic:** Kept as a flat, historically ordered list of channel logos (11 per row) using simple inline width styling (`{: style="width:7%"}`). Newly added channels are appended at the end of this list.
|
||||
|
||||
### 5.2. V2: The Agentic Elite Edition
|
||||
- **Purpose:** A high-density, enterprise-grade portal for the modern Cloud Native ecosystem (2026 and beyond).
|
||||
@@ -350,6 +352,7 @@ Nubenetes operates with two distinct editions to serve different engineering nee
|
||||
- **Root Redirection:** The root `index.html` automatically redirects human visitors to this portal.
|
||||
- **Algorithm:** Uses the **Incremental Elite Engine** to select and classify top-tier resources.
|
||||
- **Aesthetic:** "Cyber Cloud" styling (pure black backgrounds, neon cyan accents, advanced glassmorphism).
|
||||
- **YouTube Mosaic:** Organized as a categorized dashboard grouped into custom border-outlined cards with neon colors, class hooks (`.channel-logo`), and optimized image properties (`width: 48px; height: 48px`).
|
||||
- **Visual Standards (Elite Hierarchy):**
|
||||
- **`==[Yellow Highlighting]==`**: **Platinum Standard** (5 stars) – Foundational "Must-Read" assets.
|
||||
- **`**Bold Text**`**: **Gold Standard** (4 stars) – Highly recommended resources with strong industry momentum.
|
||||
@@ -377,6 +380,7 @@ To better understand the dual-nature of the project, the following matrix detail
|
||||
| **8** | **Content Format** | **Original Language**: Preserves V1 native descriptions (Spanish, French, etc.). | **Global English**: All summaries and UI are in Professional English for global access. |
|
||||
| **9** | **Maintenance Type** | **Surgical Repair**: Dead links are removed or updated line-by-line. | **Full Refresh**: Orphaned files are pruned and content is re-indexed from the inventory. |
|
||||
| **10** | **Target Audience** | **Researchers & Historians**: Looking for specific deep technical context. | **Architects & Decision Makers**: Looking for vetted, stable, and mature solutions. |
|
||||
| **11** | **YouTube Mosaic** | **Flat Historical Sequence**: A single flat ordered list of channel logos (11 per row) in their original historical sequence (new channels appended at the end) with `{: style="width:7%"}` inline styling. | **Categorized & Styled**: Grouped into border-outlined card panels by category with neon outlines, custom logo alignment (`width:48px; height:48px`), and class hooks. |
|
||||
|
||||
### 5.4. The Incremental Elite Engine
|
||||
To maintain the high-density quality of V2 without redundant AI costs, the `V2VisionEngine` implements an incremental synchronization strategy:
|
||||
@@ -406,7 +410,31 @@ By separating these domains, Nubenetes ensures **100% Resilience**:
|
||||
|
||||
---
|
||||
|
||||
### 5.6. Multi-Language Support Policy
|
||||
### 5.6. Dynamic YouTube Mosaic Engine
|
||||
Nubenetes manages the YouTube channel visual mosaic dynamically to support distinct V1 and V2 layout requirements from a single database source:
|
||||
|
||||
- **Unified Schema (`data/inventory.yaml`)**: All channel metadata is stored under the `youtube_mosaic` key in the centralized inventory file:
|
||||
|
||||
```yaml
|
||||
https://www.youtube.com/@GoogleGemini:
|
||||
title: Google Gemini
|
||||
status: online
|
||||
youtube_mosaic:
|
||||
category: ai_advanced_tech # Category grouping ID (V2)
|
||||
image: images/google_gemini_logo.png
|
||||
order_v1: 122 # Flat sequence index (V1)
|
||||
order_v2: 0 # Category sorting index (V2)
|
||||
```
|
||||
|
||||
- **Layout Generators (`src/reorganize_mosaic.py`)**:
|
||||
* **V1 Flat Layout**: Sorts all channels globally by `order_v1` and formats them into a flat grid of 11 logos per row using simple inline width styling (`{: style="width:7%"}`). Newly added channels are appended at the end of the flat mosaic.
|
||||
* **V2 Categorized Layout**: Groups channels by category, sorts them by `order_v2` within each group, and renders them inside custom cards with border-outline colors (e.g., purple for AI) matching the dimensions.
|
||||
|
||||
- **Workflow Integration**: The mosaic generation is fully integrated into the **V2 Publisher** workflow (`04.1. V2 Publisher`). During any manual or automated run (cron jobs, PR merges), `src/reorganize_mosaic.py` runs automatically to rebuild both visual sections, preserving their layout differences across the entire codebase lifecycle.
|
||||
|
||||
---
|
||||
|
||||
### 5.7. Multi-Language Support Policy
|
||||
To embrace the diverse global Cloud Native community while maintaining international discoverability, Nubenetes implements a dual-layer linguistic strategy powered by a **Data-First Architecture**:
|
||||
|
||||
- **Linguistic Data Persistence**: Language detection is treated as a core metadata attribute. The centralized database ([`data/inventory.yaml`](data/inventory.yaml)) stores resources using specific fields:
|
||||
@@ -420,6 +448,7 @@ To embrace the diverse global Cloud Native community while maintaining internati
|
||||
* `hierarchy`: Persistent, **recursive technical classification** (list of up to 10 levels) for O'Reilly-style grouping.
|
||||
* `content_hash` / `health_score`: Advanced fields for content drift detection and reliability tracking.
|
||||
* `source_provenance` / `social_preview_url`: Data for origin tracing and V2 visual enrichment.
|
||||
* `addition_method`: Origin type of the resource addition ('manual' or 'automatic') to support growth and scaling metrics.
|
||||
- **Separation of Concerns (Data vs. UI)**:
|
||||
* **The Database (Source of Truth)**: Holds raw data, enabling future features like language-based filtering or statistics without re-processing links.
|
||||
* **The Portal (Visual Rendering)**: The `V2VisionEngine` dynamically converts the metadata into visual UI tags (e.g., `[SPANISH CONTENT]`, `[ARCHITECT LEVEL]`).
|
||||
@@ -535,7 +564,7 @@ The "Platinum" tier represents the highest level of autonomous maintenance, focu
|
||||
- **Rendering Risk Detection**: Ensures HTML blocks like `<center>` include the mandatory `markdown="1"` attribute ([Mandate 19](GEMINI.md)).
|
||||
|
||||
#### Infrastructure Auto-Sync
|
||||
- **Workflow UI Synchronization**: The [UI Sync Engine](src/sync_workflow_ui.py) automatically updates the [GitHub Actions Interface](.github/workflows/agentic_cron.yml) whenever [Curation Sources](data/curation_sources.yaml) are added or modified ([Mandate 11](GEMINI.md)).
|
||||
- **Workflow UI Synchronization**: The [UI Sync Engine](src/sync_workflow_ui.py) automatically updates the [GitHub Actions Interface](.github/workflows/01.1.agentic_cron.yml) whenever [Curation Sources](data/curation_sources.yaml) are added or modified ([Mandate 11](GEMINI.md)).
|
||||
|
||||
#### Reputation Pulse (Vaporware Filter)
|
||||
- **Community-Based Vetting**: The [Curation Engine](src/agentic_curator.py) utilizes **Google Search Grounding** to cross-reference new tools with platforms like Reddit and Hacker News.
|
||||
@@ -728,6 +757,7 @@ The heart of the new Nubenetes is a suite of AI Agents that operate on our `deve
|
||||
4. **Resilient Architecture Core**:
|
||||
- **Exponential Backoff**: Intelligent `tenacity`-based retry logic in `gemini_utils.py` gracefully handles 429 Rate Limits before triggering the Circuit Breaker.
|
||||
- **Flash-First Architecture**: Prioritizes Gemini Flash/Lite models for high-density Analyst tasks, enabling processing of 10,000+ resources within the 6-hour GitHub Actions limit through 100-item batching and 2-second safety delays.
|
||||
- **Programmatic Smart Injection (Option B)**: The system extracts document headers and has Gemini Flash choose the target header, performing the actual line insertion using Python. This bypasses the need for Gemini Pro to rewrite entire documents, slashing API usage and preventing 429 errors.
|
||||
- **Incremental Persistence (Mandate 22)**: Implements a dual-phase auto-save mechanism that flushes the `inventory.yaml` database to disk periodically **without waiting for the workflow to finish**:
|
||||
* **Metadata Phase**: Saves every **500 GitHub repositories** processed.
|
||||
* **AI Phase**: Saves every **20 AI batches** (1,000 resources) analyzed.
|
||||
@@ -747,7 +777,7 @@ Maintainers can manually trigger and tune workflows via the GitHub Actions UI. T
|
||||
|
||||
| # | Phase / Category | Workflow | Primary Manual Flags | Default | Technical Effect |
|
||||
| :---: | :--- | :--- | :--- | :---: | :--- |
|
||||
| **01** | **Discovery** | [**01.1. Automated Agentic Curation**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_cron.yml) | `historical_mode` | ==TRUE== | Processes all discovery sources (ignores 30-day window). |
|
||||
| **01** | **Discovery** | [**01.1. Automated Agentic Curation**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/01.1.agentic_cron.yml) | `historical_mode` | ==TRUE== | Processes all discovery sources (ignores 30-day window). |
|
||||
| | | | `include_*` | ==TRUE== | Toggles specific topics (k8s, cloud, ai, etc.). |
|
||||
| | | [**01.2. Backup-based Curation**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_backup.yml) | `historical_mode` | ==TRUE== | Ignores time windows for static file processing. |
|
||||
| **02** | **Integrity** | [**02.1. Intelligent Link Cleaner**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/intelligent_link_cleaner.yml) | `force_full_check` | ==FALSE== | Bypasses cache for global archive auditing. |
|
||||
@@ -1009,7 +1039,7 @@ To maintain transparency and ease of navigation, all key configuration, database
|
||||
- **Global Inventory:** [`data/inventory.yaml`](data/inventory.yaml) - The "System Memory" containing all link metadata (years, stars, descriptions, and audit history).
|
||||
|
||||
### 13.3. Autonomous Workflows
|
||||
- **01.1. Discovery & Curation:** [**Automated Agentic Curation**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_cron.yml)
|
||||
- **01.1. Discovery & Curation:** [**Automated Agentic Curation**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/01.1.agentic_cron.yml)
|
||||
- **01.2. Backup Data Processor:** [**Backup-based Curation**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_backup.yml) — Manual JSON/MD ingestion.
|
||||
- **02.1. Link Health Check:** [**Intelligent Link Cleaner & Dedup**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/intelligent_link_cleaner.yml) — Perpetual archive integrity engine.
|
||||
- **02.2. V2 Health Monitor:** [**V2 Health Monitor**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_v2_health.yml) — Weekly archive network validation.
|
||||
@@ -1030,7 +1060,7 @@ To maintain transparency and ease of navigation, all key configuration, database
|
||||
- **Curator Logic:** [`src/agentic_curator.py`](src/agentic_curator.py) - Primary classification and description engine.
|
||||
- **V2 Vision Engine:** [`src/v2_optimizer.py`](src/v2_optimizer.py) - Elite portal generation and maturity scoring.
|
||||
- **Video Hub Enrichment:** [`src/enrich_videos.py`](src/enrich_videos.py) - High-fidelity synthesis using **yt-dlp** and transcripts.
|
||||
- **Video Portal Logic:** [`src/v2_video_portal.py`](src/v2_video_portal.py) - Categorized layout with **O'Reilly Journey Builder** and multiline rendering fixes.
|
||||
- **Video Portal Logic:** [`src/v2_video_portal.py`](src/v2_video_portal.py) - Categorized layout with **O'Reilly Journey Builder**, automated watch-to-embed YouTube conversion, and markdownlint-safe bullet formatting.
|
||||
- **V2 Specialized Agents:**
|
||||
- **Health Monitor:** [`src/v2_health.py`](src/v2_health.py)
|
||||
- **Metadata Engine:** [`src/v2_metadata.py`](src/v2_metadata.py)
|
||||
@@ -1085,4 +1115,3 @@ The technical resources (links, articles, videos) curated in this archive are th
|
||||
|
||||
### 15.3. Legal Disclaimer
|
||||
The information provided in this repository is for educational and professional reference purposes only. While our Agentic AI ensures high-fidelity curation, users should verify production configurations against official vendor documentation (AWS, Red Hat, CNCF) before deployment.
|
||||
r educational and professional reference purposes only. While our Agentic AI ensures high-fidelity curation, users should verify production configurations against official vendor documentation (AWS, Red Hat, CNCF) before deployment.
|
||||
|
||||
@@ -31,6 +31,14 @@ sources:
|
||||
- "NotebookLM" # Official NotebookLM
|
||||
- "LangChainAI" # Agentic frameworks
|
||||
- "llama_index" # RAG & Agents
|
||||
- "modelcontextpc" # MCP Community / Protocol Updates
|
||||
- "AlexAlbert_" # Anthropic DevRel/MCP Specialist
|
||||
- "swyx" # AI Engineering & Agent Systems Expert
|
||||
- "google-antigravity" # Google Antigravity Agentic SDK Org
|
||||
- "GoogleDevs" # Google Developers (for SDK and API announcements)
|
||||
feeds:
|
||||
- "https://openai.com/news/rss.xml"
|
||||
- "https://blog.google/technology/ai/rss/"
|
||||
|
||||
- topic: "Developer Productivity & AI Agents"
|
||||
accounts:
|
||||
@@ -40,12 +48,16 @@ sources:
|
||||
- "midudev" # Web Dev & AI Content Creator
|
||||
- "natfriedman" # AI Expert (Former GitHub CEO)
|
||||
- "karpathy" # AI Expert (Andrej Karpathy)
|
||||
feeds:
|
||||
- "https://github.blog/feed/"
|
||||
- "https://github.blog/category/engineering/feed/"
|
||||
|
||||
- topic: "Data & Big Data"
|
||||
accounts:
|
||||
- "Databricks"
|
||||
- "ApacheSpark"
|
||||
- "snowflakedb"
|
||||
- "UberEng" # Uber Engineering
|
||||
|
||||
- topic: "Infrastructure as Code & GitOps"
|
||||
accounts:
|
||||
@@ -53,11 +65,9 @@ sources:
|
||||
- "PulumiCorp"
|
||||
- "ArgoProj"
|
||||
- "fluxcd"
|
||||
- "Atlassian" # Atlassian Engineering / Developer Updates
|
||||
feeds:
|
||||
- "https://netflixtechblog.com/feed"
|
||||
- "https://engineering.atlassian.com/feed"
|
||||
- "https://blog.cloudflare.com/rss/"
|
||||
- "https://medium.com/feed/uber-engineering"
|
||||
- "https://engineering.fb.com/feed/"
|
||||
- "https://aws.amazon.com/blogs/aws/feed/"
|
||||
- "https://cloud.google.com/blog/rss/"
|
||||
|
||||
+32322
-664
File diff suppressed because it is too large
Load Diff
@@ -37,7 +37,6 @@
|
||||
- [AWS Architecture Blog](https://aws.amazon.com/blogs/architecture)
|
||||
- [AWS Official Blog](http://blogs.aws.amazon.com)
|
||||
- [AWS Labs GitHub](https://github.com/awslabs)
|
||||
- [AWS Quick Start Reference Deployments](http://aws.amazon.com/es/quickstart)
|
||||
- [InfoWorld Review – Amazon Aurora Rocks MySQL](https://aws.amazon.com/blogs/aws/infoworld-review-amazon-aurora-rocks-mysql)
|
||||
- [AWS Cost Explorer Update – Access to EC2 Usage Data](https://aws.amazon.com/blogs/aws/aws-cost-explorer-update-access-to-ec2-usage-data)
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 880 KiB |
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="315.134px" height="88.15px" viewBox="140.08 380.418 315.134 88.15" enable-background="new 140.08 380.418 315.134 88.15"
|
||||
xml:space="preserve">
|
||||
<title>logos</title>
|
||||
<style type="text/css">
|
||||
path { fill: #00a2e8; }
|
||||
</style>
|
||||
<path d="M379.988,380.625c-3.113-0.493-6.072,1.525-6.746,4.604l-14.486,47.623l-15.873-52.346h-16.51l23.811,64.568
|
||||
c1.842,3.318,1.076,7.476-1.824,9.922c-2.383,1.864-4.684,1.864-9.645,1.825h-1.191v11.747h3.969c6.867,0,11.906-0.278,14.764-2.699
|
||||
c3.424-2.924,5.967-6.744,7.342-11.032l26.43-74.172h-10.039V380.625z M403.798,386.617c-4.648,3.81-7.283,9.549-7.143,15.557
|
||||
c-0.211,4.355,1.535,8.576,4.762,11.509l0,0c2.977,2.977,9.168,5.636,18.375,7.938l0,0c2.301,0.683,4.648,1.2,7.023,1.548
|
||||
c3.334,0.714,13.215,2.817,13.215,9.405c-0.031,2.951-1.697,5.642-4.326,6.984c-2.93,1.504-6.189,2.254-9.484,2.183
|
||||
c-4.186,0.154-8.324-0.922-11.904-3.095c-2.637-1.862-4.377-4.738-4.803-7.938h-14.484c-0.123,5.92,2.482,11.567,7.063,15.318
|
||||
c4.723,3.969,11.906,5.834,21.867,5.834s18.215-1.865,23.295-5.596c5.275-3.944,8.248-10.248,7.938-16.826
|
||||
c0.223-4.302-1.41-8.492-4.484-11.509c-5.559-3.806-11.84-6.427-18.453-7.699l-5.08-1.071c-10.953-2.302-15.875-5.199-15.875-9.406
|
||||
c-0.117-2.658,1.162-5.186,3.373-6.667c2.873-1.492,6.096-2.178,9.326-1.984c3.633-0.185,7.227,0.818,10.24,2.857h0.238l0.713,0.675
|
||||
c0.564,0.508,1.094,1.051,1.588,1.627c1.23,2.349,3.621,3.861,6.27,3.969h9.367c-0.613-5.438-3.281-10.437-7.461-13.969
|
||||
c-6.303-4.157-13.771-6.188-21.311-5.795c-7.072-0.306-14.047,1.731-19.844,5.795 M272.123,386.26
|
||||
c-4.65,3.825-7.284,9.576-7.144,15.596c-0.334,4.55,1.47,8.996,4.881,12.024l0,0c2.977,2.977,9.207,5.636,18.414,7.938l0,0
|
||||
c2.314,0.685,4.675,1.201,7.064,1.548c3.333,0.715,13.255,2.817,13.255,9.445c-0.016,2.966-1.686,5.675-4.326,7.024
|
||||
c-2.943,1.51-6.217,2.26-9.524,2.183c-4.251,0.184-8.463-0.894-12.104-3.096c-2.632-1.865-4.372-4.739-4.802-7.937h-14.524
|
||||
c-0.131,5.952,2.49,11.633,7.104,15.397c4.723,3.969,11.906,5.834,21.946,5.834s18.296-1.905,23.374-5.596
|
||||
c5.299-3.96,8.275-10.3,7.938-16.906c0.223-4.313-1.408-8.517-4.484-11.549c-5.582-3.82-11.891-6.455-18.533-7.738l-5.119-1.071
|
||||
c-10.993-2.342-15.874-5.238-15.874-9.445c-0.108-2.667,1.186-5.196,3.413-6.667c2.886-1.494,6.122-2.18,9.366-1.984
|
||||
c3.65-0.176,7.257,0.841,10.279,2.897h0.238l0.713,0.674c0.564,0.509,1.094,1.053,1.588,1.628c1.238,2.359,3.646,3.874,6.311,3.968
|
||||
h9.445c-0.697-5.342-3.375-10.228-7.5-13.691c-6.324-4.183-13.82-6.227-21.391-5.834c-7.075-0.285-14.048,1.765-19.843,5.834
|
||||
M241.247,382.767c-4.999,1.119-9.748,3.15-14.009,5.993c-4.54,2.342-7.975,6.376-9.564,11.23
|
||||
c-2.559,5.596-3.782,11.709-3.572,17.858v34.844h16.072v-37.105c-0.449-5.94,1.795-11.769,6.112-15.874
|
||||
c4.979-3.733,11.134-5.551,17.342-5.119h3.969v-13.652c-5.626,0.028-11.231,0.694-16.708,1.984 M149.614,386.895
|
||||
c-2.725,2.057-4.86,4.794-6.191,7.937c-0.159,0.675-0.357,2.302,2.222,2.302h13.096c1.267-1.892,3.144-3.292,5.318-3.968
|
||||
c2.566-0.813,5.245-1.215,7.937-1.191c3.097-0.062,6.182,0.395,9.128,1.35c3.526,0.668,6.077,3.753,6.072,7.342
|
||||
c0,7.342-11.231,8.73-14.922,9.207l-8.294,1.111c-6.192,0.684-12.155,2.73-17.461,5.992c-4.537,3.449-6.944,9.017-6.35,14.684
|
||||
c-0.615,6.168,2.07,12.203,7.064,15.875c5.197,3.439,11.309,5.237,17.541,5.158c3.453,0,7.5-0.237,12.144-0.674
|
||||
c4.328-0.358,8.559-1.474,12.5-3.294c4.088-1.422,7.471-4.364,9.445-8.215c2.887-4.773,4.27-10.305,3.969-15.874v-25.121
|
||||
c0.154-5.593-2.792-10.814-7.66-13.573c-7.358-3.725-15.581-5.41-23.811-4.881c-7.631-0.495-15.21,1.557-21.549,5.834
|
||||
M158.741,439.478L158.741,439.478c-2.188-2.052-3.4-4.938-3.333-7.937c-0.244-2.814,0.774-5.591,2.778-7.58
|
||||
c2.507-2,5.462-3.361,8.611-3.969l0,0l6.826-1.39c3.81-0.76,7.532-1.903,11.112-3.412l3.016-1.39v10.16
|
||||
c0.952,7.342-1.429,10.992-5.437,13.572c-4.028,3.452-9.227,5.228-14.525,4.961C164.514,442.578,161.312,441.511,158.741,439.478"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1 @@
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>ClickHouse</title><path fill="#FC801D" d="M21.333 10H24v4h-2.667ZM16 1.335h2.667v21.33H16Zm-5.333 0h2.666v21.33h-2.666ZM0 22.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z"/></svg>
|
||||
|
After Width: | Height: | Size: 261 B |
Binary file not shown.
|
After Width: | Height: | Size: 272 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 905 KiB |
+5
-4
@@ -341,9 +341,9 @@ A curated list of awesome references collected since 2018. Microservices archite
|
||||
<center markdown="1">
|
||||
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/DockerIo) [{: style="width:7%"}](https://www.youtube.com/c/cloudnativefdn) [{: style="width:7%"}](https://www.youtube.com/kubernetescommunity) [{: style="width:7%"}](https://www.youtube.com/c/redhat) [{: style="width:7%"}](https://www.youtube.com/c/OpenShift) [{: style="width:7%"}](https://www.youtube.com/c/Rancher) [{: style="width:7%"}](https://www.youtube.com/c/CloudBeesTV) [{: style="width:7%"}](https://www.youtube.com/c/jenkinscicd) [{: style="width:7%"}](https://www.youtube.com/channel/UCN2kblPjXKMcjjVYmwvquvg) [{: style="width:7%"}](https://www.youtube.com/channel/UCcxQbw8kT1-FRhFhO2QCetg) [{: style="width:7%"}](https://www.youtube.com/c/VMwareTanzu)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/IBMTechnology) [{: style="width:7%"}](https://www.youtube.com/c/amazonwebservices) [{: style="width:7%"}](https://www.youtube.com/user/googlecloudplatform) [{: style="width:7%"}](https://www.youtube.com/c/MicrosoftAzure) [{: style="width:7%"}](https://www.youtube.com/c/OracleCloudInfrastructure) [{: style="width:7%"}](https://www.youtube.com/c/Digitalocean) [{: style="width:7%"}](https://www.youtube.com/cloudflare) [{: style="width:7%"}](https://www.youtube.com/c/Scaleway-Cloud) [{: style="width:7%"}](https://www.youtube.com/c/OpenStackFoundation) [{: style="width:7%"}](https://www.youtube.com/c/HashiCorp) [{: style="width:7%"}](https://www.youtube.com/c/PulumiTV) <br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/dzone) [{: style="width:7%"}](https://www.youtube.com/c/PrometheusIo) [{: style="width:7%"}](https://www.youtube.com/c/Grafana) [{: style="width:7%"}](https://www.youtube.com/c/Istio) [{: style="width:7%"}](https://www.youtube.com/c/Elastic) [{: style="width:7%"}](https://www.youtube.com/c/dynatrace) [{: style="width:7%"}](https://www.youtube.com/c/appdynamics) [{: style="width:7%"}](https://www.youtube.com/c/NewRelicInc) [{: style="width:7%"}](https://www.youtube.com/channel/UC8uN3yhpeBeerGNwDiQbcgw) [{: style="width:7%"}](https://www.youtube.com/c/WeaveWorksInc) [{: style="width:7%"}](https://www.youtube.com/c/LambdaTest)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/Atlassian) [{: style="width:7%"}](https://www.youtube.com/c/Code) [{: style="width:7%"}](https://www.youtube.com/c/GitHub) [{: style="width:7%"}](https://www.youtube.com/c/Gitlab) [{: style="width:7%"}](https://www.youtube.com/c/Gitkraken) [{: style="width:7%"}](https://www.youtube.com/c/RocketChatApp) [{: style="width:7%"}](https://www.youtube.com/c/Slackhq) [{: style="width:7%"}](https://www.youtube.com/c/MattermostHQ) [{: style="width:7%"}](https://www.youtube.com/c/microsoft365) [{: style="width:7%"}](https://www.youtube.com/c/OpenProjectCommunity) [{: style="width:7%"}](https://www.youtube.com/c/Tetrate)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/IBMTechnology) [{: style="width:7%"}](https://www.youtube.com/c/amazonwebservices) [{: style="width:7%"}](https://www.youtube.com/user/googlecloudplatform) [{: style="width:7%"}](https://www.youtube.com/c/MicrosoftAzure) [{: style="width:7%"}](https://www.youtube.com/c/OracleCloudInfrastructure) [{: style="width:7%"}](https://www.youtube.com/c/Digitalocean) [{: style="width:7%"}](https://www.youtube.com/cloudflare) [{: style="width:7%"}](https://www.youtube.com/c/Scaleway-Cloud) [{: style="width:7%"}](https://www.youtube.com/c/OpenStackFoundation) [{: style="width:7%"}](https://www.youtube.com/c/HashiCorp) [{: style="width:7%"}](https://www.youtube.com/c/PulumiTV)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/dzone) [{: style="width:7%"}](https://www.youtube.com/c/PrometheusIo) [{: style="width:7%"}](https://www.youtube.com/c/Grafana) [{: style="width:7%"}](https://www.youtube.com/c/Istio) [{: style="width:7%"}](https://www.youtube.com/c/Elastic) [{: style="width:7%"}](https://www.youtube.com/c/dynatrace) [{: style="width:7%"}](https://www.youtube.com/c/appdynamics) [{: style="width:7%"}](https://www.youtube.com/c/NewRelicInc) [{: style="width:7%"}](https://www.youtube.com/channel/UC8uN3yhpeBeerGNwDiQbcgw) [{: style="width:7%"}](https://www.youtube.com/c/WeaveWorksInc) [{: style="width:7%"}](https://www.youtube.com/c/LambdaTest)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/Atlassian) [{: style="width:7%"}](https://www.youtube.com/c/Code) [{: style="width:7%"}](https://www.youtube.com/c/GitHub) [{: style="width:7%"}](https://www.youtube.com/c/Gitlab) [{: style="width:7%"}](https://www.youtube.com/c/Gitkraken) [{: style="width:7%"}](https://www.youtube.com/c/RocketChatApp) [{: style="width:7%"}](https://www.youtube.com/c/Slackhq) [{: style="width:7%"}](https://www.youtube.com/c/MattermostHQ) [{: style="width:7%"}](https://www.youtube.com/c/microsoft365) [{: style="width:7%"}](https://www.youtube.com/c/OpenProjectCommunity) [{: style="width:7%"}](https://www.youtube.com/c/Tetrate)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/RedHatDevelopers) [{: style="width:7%"}](https://www.youtube.com/user/SpringSourceDev) [{: style="width:7%"}](https://www.youtube.com/c/Quarkusio) [{: style="width:7%"}](https://www.youtube.com/c/Lightbend-TV) [{: style="width:7%"}](https://www.youtube.com/c/postman) [{: style="width:7%"}](https://www.youtube.com/c/Smartbear) [{: style="width:7%"}](https://www.youtube.com/c/JFrogInc) [{: style="width:7%"}](https://www.youtube.com/c/Sonatypeinc) [{: style="width:7%"}](https://www.youtube.com/channel/UCS5-gTYteN9rnFd98YxYtrA) [{: style="width:7%"}](https://www.youtube.com/c/GoogleChromeDevelopers) [{: style="width:7%"}](https://www.youtube.com/c/MozillaDeveloper)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/CrunchyDataPostgres) [{: style="width:7%"}](https://www.youtube.com/channel/UC5qMsRjObu685rTBq0PJX8w) [{: style="width:7%"}](https://www.youtube.com/c/cockroachdb) [{: style="width:7%"}](https://www.youtube.com/c/MongoDBofficial) [{: style="width:7%"}](https://www.youtube.com/c/Redisinc) [{: style="width:7%"}](https://www.youtube.com/c/Confluent) [{: style="width:7%"}](https://www.youtube.com/channel/UCud7fErZAyMC6lHT_cWZNfA) [{: style="width:7%"}](https://www.youtube.com/channel/UC3ywadaAUQ1FI4YsHZ8wa0g) [{: style="width:7%"}](https://www.youtube.com/channel/UCm63IQg81KP9vXRWSHQpu1w) [{: style="width:7%"}](https://www.youtube.com/channel/UCt7N400Z8gB_3yKq1qrjP2w) [{: style="width:7%"}](https://www.youtube.com/c/Portworx)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/Cloudacademy) [{: style="width:7%"}](https://www.youtube.com/c/AcloudGuru) [{: style="width:7%"}](https://www.youtube.com/c/Devopsdotcom) [{: style="width:7%"}](https://www.youtube.com/c/XebiaLabs) [{: style="width:7%"}](https://www.youtube.com/c/Devopslibrary) [{: style="width:7%"}](https://www.youtube.com/c/codecademy) [{: style="width:7%"}](https://www.youtube.com/user/coursera) [{: style="width:7%"}](https://www.youtube.com/c/Academind) [{: style="width:7%"}](https://www.youtube.com/c/guru99comm) [{: style="width:7%"}](https://www.youtube.com/c/Intellipaat) [{: style="width:7%"}](https://www.youtube.com/channel/UCv9MUffHWyo2GgLIDLVu0KQ)<br/>
|
||||
@@ -351,7 +351,8 @@ A curated list of awesome references collected since 2018. Microservices archite
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/LondonIAC) [{: style="width:7%"}](https://www.youtube.com/c/TechWorldwithNana) [{: style="width:7%"}](https://www.youtube.com/c/Honeypotio) [{: style="width:7%"}](https://www.youtube.com/c/AliSpittelDev) [{: style="width:7%"}](https://www.youtube.com/c/ThomasMaurerCloud) [{: style="width:7%"}](https://www.youtube.com/c/Freecodecamp) [{: style="width:7%"}](https://www.youtube.com/c/TheNewStack) [{: style="width:7%"}](https://www.youtube.com/channel/UCOvYmppcbOPm1viN6ust3lA) [{: style="width:7%"}](https://www.youtube.com/channel/UCoZxt-YMhGHb20ZkvcCc5KA) [{: style="width:7%"}](https://www.youtube.com/c/ContainerDays) [{: style="width:7%"}](https://www.youtube.com/c/priyankavergadia)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/c/ContinuousDeliveryFoundation) [{: style="width:7%"}](https://www.youtube.com/c/TinaHuang1) [{: style="width:7%"}](https://www.youtube.com/c/AzureDevOps) [{: style="width:7%"}](https://www.youtube.com/channel/UC2Pk9GcHhlVV0R9CQIU6gLw) [{: style="width:7%"}](https://www.youtube.com/c/AlibabaCloud) [{: style="width:7%"}](https://www.youtube.com/c/linode) [{: style="width:7%"}](https://www.youtube.com/channel/UCB5WMc2FfrxKzfd7XIODoMw) [{: style="width:7%"}](https://www.youtube.com/c/MadeByGPS) [{: style="width:7%"}](https://www.youtube.com/c/keptn) [{: style="width:7%"}](https://www.youtube.com/c/AnaisUrlichs) [{: style="width:7%"}](https://www.youtube.com/c/TheDigitalLifeTech)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/@azure-terraformer) [{: style="width:7%"}](https://www.youtube.com/@NedintheCloud) [{: style="width:7%"}](https://www.youtube.com/@NetBoxLabs) [{: style="width:7%"}](https://www.youtube.com/@techwithhelen) [{: style="width:7%"}](https://www.youtube.com/@ByteByteGo) [{: style="width:7%"}](https://www.youtube.com/@DotCSV) [{: style="width:7%"}](https://www.youtube.com/@midulive) [{: style="width:7%"}](https://www.youtube.com/@returngis) [{: style="width:7%"}](https://www.youtube.com/@kubefm) [{: style="width:7%"}](https://www.youtube.com/@OlenaKutsenko) [{: style="width:7%"}](https://www.youtube.com/@mouredev)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/@CloudNativeMadrid) [{: style="width:7%"}](https://www.youtube.com/@kyndryl) [{: style="width:7%"}](https://www.youtube.com/@ITOpsTalk) [{: style="width:7%"}](https://www.youtube.com/@googlecloudtech) [{: style="width:7%"}](https://www.youtube.com/@GoogleGemini) [{: style="width:7%"}](https://www.youtube.com/@googledeepmind) [{: style="width:7%"}](https://www.youtube.com/@anthropic-ai) [{: style="width:7%"}](https://www.youtube.com/@Microsoft.Copilot) [{: style="width:7%"}](https://www.youtube.com/OpenAI) [{: style="width:7%"}](https://www.youtube.com/@aiatmeta) [{: style="width:7%"}](https://www.youtube.com/@Playwrightdev)
|
||||
[{: style="width:7%"}](https://www.youtube.com/@CloudNativeMadrid) [{: style="width:7%"}](https://www.youtube.com/@kyndryl) [{: style="width:7%"}](https://www.youtube.com/@ITOpsTalk) [{: style="width:7%"}](https://www.youtube.com/@googlecloudtech) [{: style="width:7%"}](https://www.youtube.com/@GoogleGemini) [{: style="width:7%"}](https://www.youtube.com/@googledeepmind) [{: style="width:7%"}](https://www.youtube.com/@anthropic-ai) [{: style="width:7%"}](https://www.youtube.com/@Microsoft.Copilot) [{: style="width:7%"}](https://www.youtube.com/OpenAI) [{: style="width:7%"}](https://www.youtube.com/@aiatmeta) [{: style="width:7%"}](https://www.youtube.com/@MicrosoftReactor)<br/>
|
||||
[{: style="width:7%"}](https://www.youtube.com/@Playwrightdev) [{: style="width:7%"}](https://www.youtube.com/@arsys) [{: style="width:7%"}](https://www.youtube.com/@ClickHouseDB)
|
||||
|
||||
</center>
|
||||
|
||||
|
||||
Vendored
+17
@@ -35,4 +35,21 @@ reset max-width with the following CSS: */
|
||||
.someid { color: green; }
|
||||
*/
|
||||
|
||||
.channel-logo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
object-fit: contain;
|
||||
margin: 6px;
|
||||
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.channel-logo:hover {
|
||||
transform: scale(1.15);
|
||||
filter: brightness(1.2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Vendored
+312
@@ -136,6 +136,33 @@ a {
|
||||
text-shadow: 0 0 8px rgba(6, 182, 212, 0.4);
|
||||
}
|
||||
|
||||
/* Fix mobile navigation drawer header and repository section contrast in dark mode */
|
||||
@media screen and (max-width: 76.1875em) {
|
||||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title {
|
||||
background-color: #18181b !important; /* Solid Zinc 900 for dark mode */
|
||||
color: #ffffff !important;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title .md-logo svg,
|
||||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title .md-logo img {
|
||||
fill: #ffffff !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title .md-icon {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-nav__source {
|
||||
background-color: #0f0f11 !important; /* Solid Zinc 950 / dark background */
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-source {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Elegant Table Rows (Audit Matrix) */
|
||||
.md-typeset table tr {
|
||||
transition: background-color 0.2s ease-in-out, transform 0.2s ease;
|
||||
@@ -178,3 +205,288 @@ a {
|
||||
text-shadow: 0 0 5px rgba(251, 191, 36, 0.4);
|
||||
}
|
||||
|
||||
.channel-logo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
object-fit: contain;
|
||||
margin: 6px;
|
||||
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.channel-logo:hover {
|
||||
transform: scale(1.15);
|
||||
filter: brightness(1.25);
|
||||
box-shadow: 0 0 12px var(--md-accent-fg-color);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* V2 Homepage Hero Dashboard Cards */
|
||||
.hero-badge-card {
|
||||
flex: 1;
|
||||
max-width: 280px;
|
||||
min-width: 200px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
border-radius: 16px;
|
||||
padding: 24px 16px;
|
||||
text-align: center;
|
||||
background: rgba(255, 255, 255, 0.015);
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.hero-badge-card img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
object-fit: contain;
|
||||
margin-bottom: 12px;
|
||||
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease;
|
||||
}
|
||||
|
||||
.hero-badge-card:hover {
|
||||
transform: translateY(-4px);
|
||||
}
|
||||
|
||||
.hero-badge-card:hover img {
|
||||
transform: scale(1.15);
|
||||
filter: brightness(1.25);
|
||||
}
|
||||
|
||||
/* Modifiers for custom theme accents */
|
||||
.hero-badge-card--cyan {
|
||||
border-color: rgba(34, 211, 238, 0.15);
|
||||
background: rgba(34, 211, 238, 0.015);
|
||||
}
|
||||
.hero-badge-card--cyan:hover {
|
||||
background: rgba(34, 211, 238, 0.04) !important;
|
||||
box-shadow: 0 8px 24px rgba(34, 211, 238, 0.15);
|
||||
border-color: #22d3ee !important;
|
||||
}
|
||||
|
||||
.hero-badge-card--purple {
|
||||
border-color: rgba(139, 92, 246, 0.15);
|
||||
background: rgba(139, 92, 246, 0.015);
|
||||
}
|
||||
.hero-badge-card--purple:hover {
|
||||
background: rgba(139, 92, 246, 0.04) !important;
|
||||
box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15);
|
||||
border-color: #a78bfa !important;
|
||||
}
|
||||
|
||||
.hero-badge-card--pink {
|
||||
border-color: rgba(236, 72, 153, 0.15);
|
||||
background: rgba(236, 72, 153, 0.015);
|
||||
}
|
||||
.hero-badge-card--pink:hover {
|
||||
background: rgba(236, 72, 153, 0.04) !important;
|
||||
box-shadow: 0 8px 24px rgba(236, 72, 153, 0.15);
|
||||
border-color: #f472b6 !important;
|
||||
}
|
||||
|
||||
.hero-badge-card--teal {
|
||||
border-color: rgba(20, 184, 166, 0.15);
|
||||
background: rgba(20, 184, 166, 0.015);
|
||||
}
|
||||
.hero-badge-card--teal:hover {
|
||||
background: rgba(20, 184, 166, 0.04) !important;
|
||||
box-shadow: 0 8px 24px rgba(20, 184, 166, 0.15);
|
||||
border-color: #2dd4bf !important;
|
||||
}
|
||||
|
||||
.hero-badge-title {
|
||||
font-weight: bold;
|
||||
font-size: 0.95rem;
|
||||
color: var(--md-primary-fg-color);
|
||||
}
|
||||
|
||||
.hero-badge-subtitle {
|
||||
font-size: 0.78rem;
|
||||
color: var(--md-primary-fg-color--dark);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
/* Hero Showcase Image wrapper (4 cars in a container) */
|
||||
.hero-showcase-wrapper {
|
||||
margin: 24px auto;
|
||||
max-width: 1100px; /* Increased from 650px to make it responsive and as large as possible */
|
||||
width: 100%;
|
||||
border-radius: 16px;
|
||||
overflow: hidden;
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
background: rgba(255, 255, 255, 0.015);
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
||||
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
position: relative;
|
||||
display: block;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .hero-showcase-wrapper {
|
||||
border-color: rgba(34, 211, 238, 0.1);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.hero-showcase-link {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.hero-showcase-image {
|
||||
width: 100% !important;
|
||||
display: block;
|
||||
object-fit: cover;
|
||||
transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), filter 0.4s ease;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.hero-showcase-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 14px 20px;
|
||||
background: rgba(9, 9, 11, 0.5);
|
||||
backdrop-filter: blur(8px);
|
||||
-webkit-backdrop-filter: blur(8px);
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
||||
gap: 16px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .hero-showcase-footer {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.hero-showcase-badge {
|
||||
background: rgba(34, 211, 238, 0.1);
|
||||
border: 1px solid rgba(34, 211, 238, 0.3);
|
||||
color: var(--md-accent-fg-color);
|
||||
font-size: 0.72rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
padding: 4px 10px;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
||||
letter-spacing: 0.05em;
|
||||
transition: all 0.3s ease;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.hero-showcase-caption {
|
||||
font-size: 0.8rem;
|
||||
color: var(--md-primary-fg-color--dark);
|
||||
text-align: right;
|
||||
flex: 1;
|
||||
min-width: 250px;
|
||||
line-height: 1.4;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
/* Hover effects */
|
||||
.hero-showcase-wrapper:hover {
|
||||
transform: translateY(-4px);
|
||||
border-color: var(--md-accent-fg-color);
|
||||
box-shadow: 0 12px 30px rgba(34, 211, 238, 0.15);
|
||||
}
|
||||
|
||||
.hero-showcase-wrapper:hover .hero-showcase-image {
|
||||
transform: scale(1.02); /* slightly reduced zoom to keep it elegant */
|
||||
filter: brightness(1.05) contrast(1.02);
|
||||
}
|
||||
|
||||
.hero-showcase-wrapper:hover .hero-showcase-footer {
|
||||
border-top-color: rgba(34, 211, 238, 0.3);
|
||||
background: rgba(34, 211, 238, 0.02) !important;
|
||||
}
|
||||
|
||||
.hero-showcase-wrapper:hover .hero-showcase-badge {
|
||||
background: var(--md-accent-fg-color);
|
||||
color: #09090b;
|
||||
box-shadow: 0 0 10px var(--md-accent-fg-color);
|
||||
}
|
||||
|
||||
.hero-showcase-wrapper:hover .hero-showcase-caption {
|
||||
color: var(--md-primary-fg-color);
|
||||
}
|
||||
|
||||
/* Clickable Quote Card */
|
||||
.quote-card-link {
|
||||
display: block;
|
||||
text-decoration: none !important;
|
||||
color: inherit !important;
|
||||
margin: 28px auto;
|
||||
max-width: 1100px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.quote-card {
|
||||
padding: 28px 36px;
|
||||
border-radius: 14px;
|
||||
border: 1px dashed rgba(34, 211, 238, 0.25);
|
||||
background: rgba(34, 211, 238, 0.005);
|
||||
position: relative;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .quote-card {
|
||||
background: rgba(34, 211, 238, 0.015);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.quote-card::before {
|
||||
content: '“';
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: 24px;
|
||||
font-size: 4.5rem;
|
||||
font-family: Georgia, serif;
|
||||
color: rgba(34, 211, 238, 0.25);
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.quote-card-text {
|
||||
font-size: 1.15rem;
|
||||
font-style: italic;
|
||||
font-weight: 500;
|
||||
line-height: 1.6;
|
||||
margin-bottom: 10px;
|
||||
color: var(--md-primary-fg-color);
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .quote-card-text {
|
||||
color: #e2e8f0;
|
||||
}
|
||||
|
||||
.quote-card-author {
|
||||
font-size: 0.85rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.12em;
|
||||
color: var(--md-accent-fg-color);
|
||||
transition: text-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
/* Quote Hover effects */
|
||||
.quote-card-link:hover .quote-card {
|
||||
transform: translateY(-2px);
|
||||
border-style: solid;
|
||||
border-color: var(--md-accent-fg-color);
|
||||
background: rgba(34, 211, 238, 0.03) !important;
|
||||
box-shadow: 0 8px 24px rgba(34, 211, 238, 0.18);
|
||||
}
|
||||
|
||||
.quote-card-link:hover .quote-card-text {
|
||||
color: #ffffff;
|
||||
text-shadow: 0 0 10px rgba(255, 255, 255, 0.35);
|
||||
}
|
||||
|
||||
.quote-card-link:hover .quote-card-author {
|
||||
text-shadow: 0 0 8px rgba(34, 211, 238, 0.5);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Securing Rare and Inactive Usernames on X
|
||||
|
||||
Getting a highly sought-after handle on social media can be challenging, but X (formerly Twitter) has introduced a streamlined way for power users, brands, and creators to claim inactive or rare usernames.
|
||||
|
||||
## Requirements
|
||||
|
||||
To participate in the handle acquisition process, users must meet specific platform criteria:
|
||||
* Maintain an active Premium or Premium+ subscription.
|
||||
* Have a verified account in good standing.
|
||||
* Be prepared to pay the associated fees for high-value or highly sought-after handles.
|
||||
|
||||
## Accessing the Marketplace
|
||||
|
||||
If you meet the requirements and wish to claim a specific inactive handle, you can begin the process through the [X Handle Marketplace Portal](https://handles.x.com/login). This is the official workspace portal for X's Handle Marketplace, allowing verified Premium subscribers to request, secure, and purchase inactive and rare usernames safely.
|
||||
|
||||
## Best Practices
|
||||
|
||||
* **Avoid Third-Party Brokers:** Always use the official portal linked above to avoid phishing attempts and scams. Buying handles outside of official channels violates X's Terms of Service and can result in account suspension.
|
||||
* **Prepare Alternatives:** Have a few backup username options in mind just in case your primary choice is not deemed "inactive" by X's internal metrics.
|
||||
* **Trademark Considerations:** If you hold a registered trademark for the requested handle, make sure to submit the relevant documentation to expedite the process.
|
||||
@@ -290,6 +290,7 @@ nav:
|
||||
- Freelancing: freelancing.md
|
||||
- Remote Tech Jobs: remote-tech-jobs.md
|
||||
- Clients: customer.md
|
||||
- Uncategorized: uncategorized.md
|
||||
- About: about.md
|
||||
copyright: 2026 <a href="https://twitter.com/nubenetes">Nubenetes</a>, <a href="https://nubenetes.com/about/">about</a>.
|
||||
extra:
|
||||
|
||||
+130
-17
@@ -15,12 +15,12 @@ from src.logger import log_event
|
||||
# Configuration
|
||||
V1_DIR = "docs"
|
||||
|
||||
def get_best_category_match(suggested: str) -> Optional[str]:
|
||||
if not suggested: return None
|
||||
def get_best_category_match(suggested: str) -> str:
|
||||
if not suggested: return "uncategorized"
|
||||
suggested = suggested.lower().strip()
|
||||
for cat in NUBENETES_CATEGORIES:
|
||||
if suggested in cat or cat in suggested: return cat
|
||||
return None
|
||||
return "uncategorized"
|
||||
|
||||
async def _get_github_activity(url: str) -> Dict:
|
||||
match = re.search(r'github\.com/([^/]+/[^/]+)', url)
|
||||
@@ -88,12 +88,12 @@ async def evaluate_extracted_assets(raw_assets: List[Dict]) -> Dict[str, Dict]:
|
||||
if norm_url in curator.inventory:
|
||||
cached = curator.inventory[norm_url]
|
||||
if cached.get("status") == "review_required":
|
||||
evaluations[url] = {"status": "REVIEW_PENDING", **cached}
|
||||
evaluations[url] = {**cached, "status": "REVIEW_PENDING"}
|
||||
continue
|
||||
if cached.get("title") and cached.get("hierarchy"):
|
||||
from src.gemini_utils import SESSION_TRACKER
|
||||
SESSION_TRACKER.track_cache_hit(est_tokens=2200)
|
||||
evaluations[url] = {"status": "INCLUDED", **cached}
|
||||
evaluations[url] = {**cached, "status": "INCLUDED"}
|
||||
continue
|
||||
to_evaluate.append(asset)
|
||||
|
||||
@@ -104,8 +104,7 @@ async def evaluate_extracted_assets(raw_assets: List[Dict]) -> Dict[str, Dict]:
|
||||
from src.mandate_ingestor import get_system_mandates
|
||||
dynamic_mandates = get_system_mandates()
|
||||
|
||||
for i in range(0, len(to_evaluate), BATCH_SIZE):
|
||||
batch = to_evaluate[i:i+BATCH_SIZE]
|
||||
async def process_sub_batch(batch):
|
||||
batch_data = []
|
||||
for asset in batch:
|
||||
web_content, rich_meta = await _deep_fetch_content(asset["url"])
|
||||
@@ -129,6 +128,9 @@ async def evaluate_extracted_assets(raw_assets: List[Dict]) -> Dict[str, Dict]:
|
||||
"- Perform a real-time web search for each resource.\n"
|
||||
"- If the community (Reddit, Hacker News) reports the tool as 'unstable', 'abandoned', or 'vaporware', set reputation_penalty: true.\n"
|
||||
"PHASE 2: LINGUISTIC DIVERSITY & CLASSIFICATION\n"
|
||||
"- Calculate 'impact_score' (0-100) based on architectural value, innovation, and technical depth (>= 80 is required for inclusion).\n"
|
||||
f"- Assign a 'primary_category' strictly from this list: {', '.join(NUBENETES_CATEGORIES)}\n"
|
||||
"- If none fit well, use 'uncategorized' and propose a better one in 'suggested_new_category'.\n"
|
||||
"- Identify TECHNICAL_HIERARCHY: List (max 10 strings) Area > Topic > Subtopics.\n"
|
||||
"PHASE 3: HIGH-DENSITY TECHNICAL SUMMARIES (Mandate 4)\n"
|
||||
"- Provide an 'en_summary' that is technical, professional and dense.\n"
|
||||
@@ -136,17 +138,36 @@ async def evaluate_extracted_assets(raw_assets: List[Dict]) -> Dict[str, Dict]:
|
||||
"- Format: Use paragraphs and bullet points if necessary. Aim for 2-5 sentences of depth.\n"
|
||||
"PHASE 4: MULTI-DIMENSIONAL TAGGING\n"
|
||||
"- Assign 1 to 3 tags from: [DE FACTO STANDARD], [ENTERPRISE-STABLE], [EMERGING], [GUIDE], [CASE STUDY], [COMMUNITY-TOOL], [LEGACY].\n"
|
||||
"Respond ONLY JSON list: [{\"url\": \"...\", \"impact_score\": int, \"reputation_penalty\": bool, \"reputation_summary\": \"...\", \"pub_date\": \"YYYY-MM-DD\", \"primary_category\": \"...\", \"title\": \"...\", \"desc\": \"...\", \"en_summary\": \"High-density summary...\", \"language\": \"...\", \"type\": \"...\", \"level\": \"...\", \"technical_hierarchy\": [...], \"tags\": [...], \"is_microservice\": bool}, ...]\n\n"
|
||||
"Respond ONLY JSON list: [{\"url\": \"...\", \"impact_score\": int, \"reputation_penalty\": bool, \"reputation_summary\": \"...\", \"pub_date\": \"YYYY-MM-DD\", \"primary_category\": \"...\", \"suggested_new_category\": \"...\", \"title\": \"...\", \"desc\": \"...\", \"en_summary\": \"High-density summary...\", \"language\": \"...\", \"type\": \"...\", \"level\": \"...\", \"technical_hierarchy\": [...], \"tags\": [...], \"is_microservice\": bool}, ...]\n\n"
|
||||
"RESOURCES:\n" + "\n".join([f"- {d['asset']['url']}: (MVQ Penalty: {d['mvq_penalty']}) {d['content']}" for d in batch_data])
|
||||
)
|
||||
|
||||
try:
|
||||
# ENABLE GROUNDING FOR REPUTATION FILTER
|
||||
results = await call_gemini_with_retry(prompt, use_grounding=True, role="Curator")
|
||||
results = await call_gemini_with_retry(prompt, use_grounding=True, prefer_flash=True, role="Curator")
|
||||
if isinstance(results, list):
|
||||
res_map = {normalize_url(r.get("url", "")): r for r in results}
|
||||
for d in batch_data:
|
||||
url = d["asset"]["url"]; norm_url = normalize_url(url); data = res_map.get(norm_url)
|
||||
url = d["asset"]["url"]
|
||||
norm_url = normalize_url(url)
|
||||
data = res_map.get(norm_url)
|
||||
if not data:
|
||||
# Fallback 1: Case-insensitive match on normalized url
|
||||
for r in results:
|
||||
if normalize_url(r.get("url", "")).lower() == norm_url.lower():
|
||||
data = r
|
||||
break
|
||||
if not data:
|
||||
# Fallback 2: Check if domain and path suffix match (handling protocol/www differences)
|
||||
from urllib.parse import urlparse
|
||||
p_url = urlparse(url)
|
||||
for r in results:
|
||||
r_url = r.get("url", "")
|
||||
p_r = urlparse(r_url)
|
||||
if p_url.netloc.replace("www.", "") == p_r.netloc.replace("www.", "") and p_url.path.rstrip("/") == p_r.path.rstrip("/"):
|
||||
data = r
|
||||
break
|
||||
|
||||
if not data: continue
|
||||
score = data.get("impact_score", 50)
|
||||
if data.get("reputation_penalty"):
|
||||
@@ -161,17 +182,30 @@ async def evaluate_extracted_assets(raw_assets: List[Dict]) -> Dict[str, Dict]:
|
||||
"language": data.get("language", "English"), "resource_type": data.get("type", "Reference"),
|
||||
"complexity": data.get("level", "Intermediate"), "hierarchy": data.get("technical_hierarchy", ["General"]),
|
||||
"tags": data.get("tags", []), "is_microservice": data.get("is_microservice", False), "year": data.get("pub_date", "N/A")[:4],
|
||||
"stars": min(max(score // 20, 0), 5), "content_hash": d["hash"],
|
||||
"stars": min(max(score // 20, 0), 5), "impact_score": score, "content_hash": d["hash"],
|
||||
"reputation_status": "Vetted" if not data.get("reputation_penalty") else "Suspicious",
|
||||
"reputation_summary": data.get("reputation_summary", ""),
|
||||
"source_provenance": d["asset"].get("source_type", "Social"), "social_preview_url": d["rich_meta"].get("og_image", ""),
|
||||
"category": primary_cat, "status": "online", "last_checked": datetime.now().timestamp(), **d["gh_meta"]
|
||||
"category": primary_cat, "status": "online", "last_checked": datetime.now().timestamp(),
|
||||
"suggested_new_category": data.get("suggested_new_category", ""),
|
||||
"addition_method": "automatic", **d["gh_meta"]
|
||||
}
|
||||
if "youtube.com" in url or "youtu.be" in url:
|
||||
title_desc = f"{data['title']} {data['desc']}".lower()
|
||||
keywords = ["agent", "mcp", "terraform", "devops", "kubernetes", "sre", "mlops", "copilot", "gemini", "claude", "openai", "autogen", "crewai"]
|
||||
if any(k in title_desc for k in keywords):
|
||||
eval_data["is_featured_video"] = True
|
||||
eval_data["is_enriched"] = False
|
||||
curator.inventory[norm_url] = eval_data
|
||||
evaluations[url] = {"status": "INCLUDED", **eval_data}
|
||||
else: evaluations[url] = {"status": "FILTERED"}
|
||||
evaluations[url] = {**eval_data, "status": "INCLUDED"}
|
||||
else:
|
||||
evaluations[url] = {"status": "FILTERED"}
|
||||
curator.inventory[norm_url] = {"status": "FILTERED", "score": score, "last_checked": datetime.now().timestamp()}
|
||||
curator._save_inventory()
|
||||
except Exception as e: log_event(f" [!] Batch AI Error: {e}")
|
||||
|
||||
sub_batches = [to_evaluate[i:i+BATCH_SIZE] for i in range(0, len(to_evaluate), BATCH_SIZE)]
|
||||
await asyncio.gather(*(process_sub_batch(b) for b in sub_batches))
|
||||
|
||||
return evaluations
|
||||
|
||||
@@ -198,9 +232,88 @@ class AgenticCurator:
|
||||
except: return []
|
||||
|
||||
async def decide_smart_injection(self, content: str, asset: Dict) -> str:
|
||||
prompt = f"Decide where to inject this link in the Markdown content.\nLINK: {asset['title']} ({asset['url']})\nDESC: {asset['description']}\n\nRespond ONLY with the updated full Markdown content."
|
||||
try: return await call_gemini_with_retry(prompt, response_format="text")
|
||||
except: return content
|
||||
# Extract headers from the markdown content
|
||||
lines = content.splitlines()
|
||||
headers = [line.strip() for line in lines if line.strip().startswith("#")]
|
||||
|
||||
# Build prompt for LLM (using Flash for speed/cost/reliability)
|
||||
prompt = (
|
||||
"You are a Cloud Native Technical Librarian.\n"
|
||||
"Given a list of headers in a Markdown document and a new link to curate, "
|
||||
"select the most specific header under which the link belongs.\n\n"
|
||||
f"HEADERS:\n" + "\n".join(headers) + "\n\n"
|
||||
f"NEW LINK:\n"
|
||||
f"Title: {asset.get('title')}\n"
|
||||
f"URL: {asset.get('url')}\n"
|
||||
f"Description: {asset.get('description')}\n\n"
|
||||
"Respond ONLY with the exact header from the list (including '#' symbols, e.g. '## Kubernetes Tools').\n"
|
||||
"If no existing header matches perfectly, respond with 'NEW_HEADER: ## Proposed Name' (matching the appropriate heading level like ## or ###).\n"
|
||||
"If it doesn't fit anywhere and should be appended at the end of the document, respond with 'APPEND'."
|
||||
)
|
||||
|
||||
selected_header = "APPEND"
|
||||
try:
|
||||
# We use Flash 3.5 (prefer_flash=True) to avoid 429 rate limits and reduce cost
|
||||
ai_res = await call_gemini_with_retry(prompt, response_format="text", prefer_flash=True, role="General")
|
||||
if ai_res:
|
||||
selected_header = ai_res.strip().strip("'\"")
|
||||
except Exception as e:
|
||||
log_event(f" [!] LLM injection decision failed: {e}. Defaulting to APPEND.")
|
||||
selected_header = "APPEND"
|
||||
|
||||
# Format the link line according to Mandate 17
|
||||
year = asset.get("year", "N/A")
|
||||
year_prefix = f"**({year})** " if year and year != "N/A" else ""
|
||||
link_line = f" - {year_prefix}[{asset['title']}]({asset['url']}) 🌟 - {asset['description']}"
|
||||
|
||||
# Perform programmatic insertion in Python
|
||||
if selected_header == "APPEND":
|
||||
return content.rstrip() + "\n\n" + link_line + "\n"
|
||||
|
||||
if selected_header.startswith("NEW_HEADER:"):
|
||||
new_h = selected_header.split("NEW_HEADER:", 1)[1].strip()
|
||||
return content.rstrip() + f"\n\n{new_h}\n{link_line}\n"
|
||||
|
||||
# Else, find the header (exact or fuzzy match) and insert under it
|
||||
header_idx = -1
|
||||
for idx, line in enumerate(lines):
|
||||
if line.strip() == selected_header.strip():
|
||||
header_idx = idx
|
||||
break
|
||||
|
||||
# Fuzzy match if exact match fails
|
||||
if header_idx == -1:
|
||||
clean_sel = selected_header.replace("#", "").strip().lower()
|
||||
for idx, line in enumerate(lines):
|
||||
if line.strip().startswith("#"):
|
||||
clean_line = line.replace("#", "").strip().lower()
|
||||
if clean_line == clean_sel:
|
||||
header_idx = idx
|
||||
selected_header = line
|
||||
break
|
||||
|
||||
if header_idx == -1:
|
||||
# Fallback to append if AI proposed header not found in the list
|
||||
return content.rstrip() + "\n\n" + link_line + "\n"
|
||||
|
||||
# Insert under selected_header
|
||||
# Find the end of this header's section: when we hit a header of the same or higher level
|
||||
header_level = len(selected_header) - len(selected_header.lstrip('#'))
|
||||
insert_idx = len(lines)
|
||||
for idx in range(header_idx + 1, len(lines)):
|
||||
line = lines[idx].strip()
|
||||
if line.startswith("#"):
|
||||
line_level = len(line) - len(line.lstrip('#'))
|
||||
if line_level <= header_level:
|
||||
insert_idx = idx
|
||||
break
|
||||
|
||||
# Move insert_idx backward past any trailing blank lines
|
||||
while insert_idx > header_idx + 1 and lines[insert_idx - 1].strip() == "":
|
||||
insert_idx -= 1
|
||||
|
||||
lines.insert(insert_idx, link_line)
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
async def apply_semantic_interlinking(self, evaluations: Dict):
|
||||
log_event("[*] Applying Semantic Interlinking (Mandate 5)...")
|
||||
|
||||
+1
-1
@@ -74,5 +74,5 @@ NUBENETES_CATEGORIES = [
|
||||
'qa', 'rancher', 'react', 'recruitment', 'registries', 'remote-tech-jobs', 'scaffolding',
|
||||
'scaleway', 'securityascode', 'serverless', 'servicemesh', 'sonarqube', 'sre', 'stackstorm',
|
||||
'swagger-code-generator-for-rest-apis', 'tekton', 'terraform', 'test-automation-frameworks',
|
||||
'testops', 'visual-studio', 'web-servers', 'web3', 'workfromhome', 'xamarin', 'yaml'
|
||||
'testops', 'uncategorized', 'visual-studio', 'web-servers', 'web3', 'workfromhome', 'xamarin', 'yaml'
|
||||
]
|
||||
|
||||
@@ -39,7 +39,8 @@ async def enrich_video_entry(url: str, entry: dict):
|
||||
2. Identify the ACTUAL technical content based on the verified video metadata.
|
||||
3. Generate a high-density architectural summary (2-3 sentences) explaining its specific value for a 2026 Cloud Native context.
|
||||
4. DO NOT describe generic YouTube platform infrastructure unless the video is specifically about it.
|
||||
5. Select the primary technology (e.g., Kubernetes, Vitess, Istio) and a category from: [Fundamentals and Documentaries, Architecture and Cloud Strategy, Networking and Service Mesh, Infrastructure as Code, Observability and Monitoring, AI and Future Operations, Security and Compliance].
|
||||
5. Crossover AI Agents Detection: Pay special attention to AI Agents & MCP, and how they integrate with Cloud Native (e.g. SRE with AI Agents, Kubernetes with AI Agents, IaC with Terraform and AI, DevOps with AI, MLOps with AI). If the video covers these topics, reflect it in the technology field.
|
||||
6. Select the primary technology (e.g., Kubernetes + AI Agents, IaC + Terraform + AI Agents, DevOps + AI Agents, SRE + AI Agents, MLOps + AI Agents, or standard core tech like Kubernetes, Istio) and a category from: [Fundamentals and Documentaries, Architecture and Cloud Strategy, Networking and Service Mesh, Infrastructure as Code, Observability and Monitoring, AI and Future Operations, Security and Compliance].
|
||||
|
||||
Return ONLY a JSON object:
|
||||
{{
|
||||
|
||||
+7
-7
@@ -295,16 +295,16 @@ async def call_gemini_with_retry(prompt: str, response_format: str = "json", max
|
||||
base_wait_time = 2.0
|
||||
|
||||
# 1. Smart Filtering and Re-ordering
|
||||
if use_grounding:
|
||||
# For grounding, we MANDATE Pro models as they have superior search/reasoning capabilities
|
||||
models = [m for m in models_pool if "pro" in m]
|
||||
if not models:
|
||||
models = ["gemini-1.5-pro", "gemini-1.5-pro-latest"]
|
||||
elif prefer_flash:
|
||||
if prefer_flash:
|
||||
# Strict filter: Only allow flash/lite models
|
||||
models = [m for m in models_pool if "flash" in m or "lite" in m]
|
||||
if not models:
|
||||
models = ["gemini-1.5-flash", "gemini-1.5-flash-latest"]
|
||||
elif use_grounding:
|
||||
# For grounding, we MANDATE Pro models as they have superior search/reasoning capabilities
|
||||
models = [m for m in models_pool if "pro" in m]
|
||||
if not models:
|
||||
models = ["gemini-1.5-pro", "gemini-1.5-pro-latest"]
|
||||
else:
|
||||
models = models_pool
|
||||
|
||||
@@ -363,7 +363,7 @@ async def call_gemini_with_retry(prompt: str, response_format: str = "json", max
|
||||
if match:
|
||||
try:
|
||||
data = json.loads(match.group(0))
|
||||
return data[0] if isinstance(data, list) and len(data) > 0 else data
|
||||
return data
|
||||
except: pass
|
||||
|
||||
# QUALITY UPGRADE: If flash failed parsing, don't give up on the key, try a Pro model
|
||||
|
||||
+12
-3
@@ -1,6 +1,8 @@
|
||||
import feedparser
|
||||
import asyncio
|
||||
import re
|
||||
import httpx
|
||||
from fake_useragent import UserAgent
|
||||
from datetime import datetime
|
||||
from typing import List, Dict, Optional
|
||||
from src.logger import log_event
|
||||
@@ -18,13 +20,20 @@ class RSSDataExtractor:
|
||||
|
||||
async def fetch_links_since(self, since_date: datetime, feeds: List[str]) -> List[Dict]:
|
||||
all_articles = []
|
||||
ua = UserAgent()
|
||||
for url in feeds:
|
||||
self.log_audit("Discovery", None, f"Parsing feed: {url}")
|
||||
try:
|
||||
# Use a thread for feedparser as it's blocking
|
||||
feed = await asyncio.to_thread(feedparser.parse, url)
|
||||
async with httpx.AsyncClient(follow_redirects=True, timeout=30.0, verify=False) as client:
|
||||
headers = {'User-Agent': ua.random}
|
||||
response = await client.get(url, headers=headers)
|
||||
response.raise_for_status()
|
||||
content = response.content
|
||||
|
||||
if feed.bozo:
|
||||
# Use a thread for feedparser as it's blocking
|
||||
feed = await asyncio.to_thread(feedparser.parse, content)
|
||||
|
||||
if feed.bozo and len(feed.entries) == 0:
|
||||
self.log_audit("Parsing", False, f"Malformed feed: {url}")
|
||||
continue
|
||||
|
||||
|
||||
+10
-2
@@ -308,7 +308,7 @@ async def master_orchestrator():
|
||||
"related_categories": evaluation.get("related_categories", []),
|
||||
"post_date": asset.get("timestamp"),
|
||||
"source": asset.get("source_type", "Social"),
|
||||
"impact_score": evaluation.get("impact_score", 0),
|
||||
"impact_score": evaluation.get("impact_score") or (evaluation.get("stars", 0) * 20) or (80 if evaluation["status"] == "INCLUDED" else 0),
|
||||
"title": evaluation.get("title", "N/A"),
|
||||
"language": evaluation.get("language", "English"),
|
||||
"type": evaluation.get("resource_type", "Reference")
|
||||
@@ -322,7 +322,7 @@ async def master_orchestrator():
|
||||
"description": evaluation["description"],
|
||||
"year": evaluation.get("year", "N/A"),
|
||||
"category": evaluation.get("category", "kubernetes-tools"),
|
||||
"impact_score": evaluation["impact_score"],
|
||||
"impact_score": evaluation.get("impact_score") or (evaluation.get("stars", 0) * 20) or 80,
|
||||
"reasoning": evaluation.get("reasoning")
|
||||
})
|
||||
existing_urls.add(normalize_url(sanitized_url))
|
||||
@@ -371,6 +371,14 @@ async def master_orchestrator():
|
||||
# 6. Finalization, Report and PR
|
||||
pr_url = None
|
||||
if modified_files_content or full_report_metrics:
|
||||
# Generate the visual dashboard report.html (Mandate 6)
|
||||
try:
|
||||
from src.report_generator import generate_visual_report
|
||||
generate_visual_report(full_report_metrics)
|
||||
log_event("[*] Curation Dashboard report.html generated successfully.")
|
||||
except Exception as e:
|
||||
log_event(f" [!] Error generating report.html: {e}")
|
||||
|
||||
metrics = {
|
||||
"total_extracted": len(all_raw_assets),
|
||||
"start_date": since_date.isoformat(),
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
{
|
||||
"blacklisted_domains": []
|
||||
"blacklisted_domains": [],
|
||||
"youtube_mosaic_layout_mandate": {
|
||||
"v1_exhaustive": "Flat list of logos (11 per row) using order_v1 and inline width:7%",
|
||||
"v2_elite": "Categorized neon-bordered card dashboard using order_v2 and width:48px",
|
||||
"central_database": "data/inventory.yaml under the youtube_mosaic key",
|
||||
"automation_scripts": [
|
||||
"src/reorganize_mosaic.py",
|
||||
"src/v2_optimizer.py"
|
||||
]
|
||||
},
|
||||
"addition_method_tracking": {
|
||||
"field": "addition_method",
|
||||
"values": ["manual", "automatic"],
|
||||
"rules": {
|
||||
"manual": "Assigned to all pre-existing entries and any new entries discovered by the V2 Optimizer from V1 Markdown source files (assumed manually added).",
|
||||
"automatic": "Assigned to resources ingested automatically via curation workflows from X/Twitter, RSS, or GitHub trending."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
import yaml
|
||||
import os
|
||||
|
||||
# Map category IDs to their friendly names and outline border colors (V2 only)
|
||||
CATEGORIES = {
|
||||
"ai_advanced_tech": {"name": "AI & Advanced Tech", "color": "#8b5cf6"},
|
||||
"cloud_providers": {"name": "Cloud Providers & Core Infrastructure", "color": "#3b82f6"},
|
||||
"cloud_native_kubernetes": {"name": "Cloud Native Platforms & Kubernetes", "color": "#10b981"},
|
||||
"devops_cicd_iac": {"name": "DevOps, CI/CD, IaC & GitOps", "color": "#f59e0b"},
|
||||
"observability_databases_storage": {"name": "Observability, Databases & Cloud Storage", "color": "#ec4899"},
|
||||
"dev_testing_collab": {"name": "Development, Testing & Collaboration", "color": "#14b8a6"},
|
||||
"learning_influencers_communities": {"name": "Tech E-Learning, Influencers & Communities", "color": "#64748b"}
|
||||
}
|
||||
|
||||
def load_inventory_channels():
|
||||
repo_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
inventory_path = os.path.join(repo_root, 'data', 'inventory.yaml')
|
||||
with open(inventory_path, 'r', encoding='utf-8') as f:
|
||||
inventory = yaml.safe_load(f) or {}
|
||||
|
||||
channels = []
|
||||
for url, entry in inventory.items():
|
||||
if isinstance(entry, dict) and 'youtube_mosaic' in entry:
|
||||
metadata = entry['youtube_mosaic']
|
||||
channels.append({
|
||||
'title': entry.get('title', 'Unknown Channel'),
|
||||
'url': url,
|
||||
'image': metadata.get('image', ''),
|
||||
'category': metadata.get('category', 'learning_influencers_communities'),
|
||||
'order_v1': metadata.get('order_v1', 9999),
|
||||
'order_v2': metadata.get('order_v2', 9999)
|
||||
})
|
||||
return channels
|
||||
|
||||
def build_v2_mosaic_markdown_from_channels(channels):
|
||||
# Group channels by category
|
||||
grouped = {cat_id: [] for cat_id in CATEGORIES.keys()}
|
||||
for chan in channels:
|
||||
cat_id = chan['category']
|
||||
if cat_id in grouped:
|
||||
grouped[cat_id].append(chan)
|
||||
else:
|
||||
grouped.setdefault('learning_influencers_communities', []).append(chan)
|
||||
|
||||
lines = []
|
||||
lines.append('<center markdown="1">')
|
||||
lines.append('') # Mandatory blank line after center tag
|
||||
|
||||
for cat_id, cat_info in CATEGORIES.items():
|
||||
cat_chans = grouped[cat_id]
|
||||
if not cat_chans:
|
||||
continue
|
||||
# Sort within category by order_v2
|
||||
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('') # Mandatory blank line after block tag
|
||||
|
||||
# Channel links
|
||||
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']})")
|
||||
|
||||
lines.append(" ".join(chan_links))
|
||||
lines.append('')
|
||||
|
||||
# Close container
|
||||
lines.append('</div>')
|
||||
lines.append('')
|
||||
|
||||
lines.append('</center>')
|
||||
return "\n".join(lines)
|
||||
|
||||
def build_v2_mosaic_markdown(yaml_path=None):
|
||||
# Backward compatible wrapper used by v2_optimizer.py
|
||||
channels = load_inventory_channels()
|
||||
return build_v2_mosaic_markdown_from_channels(channels)
|
||||
|
||||
def build_v1_mosaic_markdown_from_channels(channels):
|
||||
# Sort channels by order_v1
|
||||
sorted_chans = sorted(channels, key=lambda x: x['order_v1'])
|
||||
|
||||
# Now format into rows of 11 channels each
|
||||
lines = []
|
||||
lines.append('<center markdown="1">')
|
||||
lines.append('') # Mandatory blank line after center tag
|
||||
|
||||
row_size = 11
|
||||
formatted_channels = []
|
||||
for chan in sorted_chans:
|
||||
formatted_channels.append(f"[![{chan['title']}]({chan['image']}){{: style=\"width:7%\"}}]({chan['url']})")
|
||||
|
||||
for i in range(0, len(formatted_channels), row_size):
|
||||
row = formatted_channels[i:i+row_size]
|
||||
line_str = " ".join(row)
|
||||
if i + row_size < len(formatted_channels):
|
||||
line_str += "<br/>"
|
||||
lines.append(line_str)
|
||||
|
||||
lines.append('') # Mandatory blank line before closing center tag
|
||||
lines.append('</center>')
|
||||
return "\n".join(lines)
|
||||
|
||||
def update_file(file_path, new_mosaic):
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# Find the specific <center markdown="1"> block containing "docker videos" or "docker_logo.jpg"
|
||||
start_tag = '<center markdown="1">'
|
||||
end_tag = '</center>'
|
||||
|
||||
idx = 0
|
||||
found = False
|
||||
while True:
|
||||
start_pos = content.find(start_tag, idx)
|
||||
if start_pos == -1:
|
||||
break
|
||||
end_pos = content.find(end_tag, start_pos)
|
||||
if end_pos == -1:
|
||||
break
|
||||
|
||||
block = content[start_pos : end_pos + len(end_tag)]
|
||||
if 'docker videos' in block or 'docker_logo.jpg' in block:
|
||||
content = content[:start_pos] + new_mosaic + content[end_pos + len(end_tag):]
|
||||
found = True
|
||||
break
|
||||
idx = start_pos + len(start_tag)
|
||||
|
||||
if not found:
|
||||
raise ValueError(f"Could not locate the YouTube channels mosaic block in {file_path}")
|
||||
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
print(f"Successfully updated {file_path}")
|
||||
|
||||
def main():
|
||||
repo_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
v1_path = os.path.join(repo_root, 'docs', 'index.md')
|
||||
v2_path = os.path.join(repo_root, 'v2-docs', 'index.md')
|
||||
|
||||
channels = load_inventory_channels()
|
||||
new_v1_mosaic = build_v1_mosaic_markdown_from_channels(channels)
|
||||
new_v2_mosaic = build_v2_mosaic_markdown_from_channels(channels)
|
||||
|
||||
update_file(v1_path, new_v1_mosaic)
|
||||
update_file(v2_path, new_v2_mosaic)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
+1
-1
@@ -11,7 +11,7 @@ V1_DIR = "docs"
|
||||
V2_DIR = "v2-docs"
|
||||
SPECIAL_ASSETS_PATH = "data/special_assets.yaml"
|
||||
CURATION_SOURCES_PATH = "data/curation_sources.yaml"
|
||||
WORKFLOW_PATH = ".github/workflows/agentic_cron.yml"
|
||||
WORKFLOW_PATH = ".github/workflows/01.1.agentic_cron.yml"
|
||||
|
||||
class SafetyGuard:
|
||||
def __init__(self):
|
||||
|
||||
@@ -4,7 +4,7 @@ import re
|
||||
from src.logger import log_event
|
||||
|
||||
CURATION_SOURCES_PATH = "data/curation_sources.yaml"
|
||||
WORKFLOW_PATH = ".github/workflows/agentic_cron.yml"
|
||||
WORKFLOW_PATH = ".github/workflows/01.1.agentic_cron.yml"
|
||||
|
||||
class WorkflowUISync:
|
||||
"""
|
||||
|
||||
+71
-14
@@ -167,12 +167,18 @@ class V2VisionEngine:
|
||||
if os.path.exists("docs/index.md"):
|
||||
with open("docs/index.md", "r") as f:
|
||||
idx_content = f.read()
|
||||
mosaics = re.findall(r'<center markdown="1">\s*\n(.*?)\n\s*</center>', idx_content, re.DOTALL)
|
||||
if mosaics:
|
||||
for m in mosaics:
|
||||
if m.count("[![") > 5: mosaic_html = m; break
|
||||
videos_match = re.search(r'\?\?\? note "Top Videos & Clips.*?\n\s+(<center.*?</center>)', idx_content, re.DOTALL)
|
||||
if videos_match: videos_html = videos_match.group(1)
|
||||
if videos_match:
|
||||
videos_html = videos_match.group(1)
|
||||
|
||||
# Dynamically generate V2 categorized mosaic from youtube_channels_mosaic.yaml
|
||||
try:
|
||||
from src.reorganize_mosaic import build_v2_mosaic_markdown
|
||||
v2_mosaic_full = build_v2_mosaic_markdown("data/youtube_channels_mosaic.yaml")
|
||||
mosaic_html = v2_mosaic_full.replace('<center markdown="1">', '').replace('</center>', '').strip()
|
||||
except Exception as e:
|
||||
log_event(f" [!] Error generating V2 mosaic dynamically: {e}")
|
||||
mosaic_html = ""
|
||||
|
||||
for root, _, files in os.walk(V1_DIR):
|
||||
for file in files:
|
||||
@@ -386,6 +392,8 @@ class V2VisionEngine:
|
||||
norm_url = normalize_url(item["url"])
|
||||
self.inventory[norm_url] = {k:v for k,v in item.items() if k not in ["url", "title", "original_file", "is_special", "aliases"]}
|
||||
self.inventory[norm_url]["title"] = item["title"]
|
||||
if "addition_method" not in self.inventory[norm_url]:
|
||||
self.inventory[norm_url]["addition_method"] = "manual"
|
||||
|
||||
except Exception:
|
||||
for l in batch: analyst_results.append(l)
|
||||
@@ -495,6 +503,8 @@ class V2VisionEngine:
|
||||
# Persist to inventory
|
||||
self.inventory[norm_url] = {k:v for k,v in item.items() if k not in ["url", "title", "original_file", "is_special", "aliases"]}
|
||||
self.inventory[norm_url]["title"] = item["title"]
|
||||
if "addition_method" not in self.inventory[norm_url]:
|
||||
self.inventory[norm_url]["addition_method"] = "manual"
|
||||
|
||||
if p_id not in project_registry or item.get("stars", 0) > project_registry[p_id].get("stars", 0):
|
||||
if p_id in project_registry and project_registry[p_id].get("is_special"): item["is_special"] = True
|
||||
@@ -714,8 +724,8 @@ class V2VisionEngine:
|
||||
|
||||
async def _write_premium_files(self, data: Dict[str, Dict], mosaic_html: str, videos_html: str):
|
||||
# 1. Update Index with Pulse
|
||||
trending_pool = sorted([dict(meta, url=url) for url, meta in self.inventory.items() if isinstance(meta, dict) and meta.get("stars", 0) >= 4], key=lambda x: (x.get("pub_date", "0000"), -x.get("stars", 0)), reverse=True)
|
||||
pulse_md = "## The Agentic Pulse\n" + "\n".join([f"- **({l.get('pub_date', 'N/A')[:10]})** [**=={nuclear_strip(l['title'])}==**]({l['url'].strip()}) {'🌟'*l.get('stars',3)}" for l in trending_pool[:5]])
|
||||
trending_pool = sorted([dict(meta, url=url) for url, meta in self.inventory.items() if isinstance(meta, dict) and meta.get("stars", 0) >= 4], key=lambda x: (str(x.get("year", "0000")) if str(x.get("year", "")).isdigit() else "0000", -x.get("stars", 0)), reverse=True)
|
||||
pulse_md = "## The Agentic Pulse\n" + "\n".join([f"- **({l.get('year', 'N/A')})** [**=={nuclear_strip(l['title'])}==**]({l['url'].strip()}) {'🌟'*l.get('stars',3)}" for l in trending_pool[:5]])
|
||||
|
||||
# Calculate coverage for the index
|
||||
total_v1 = len(self.inventory)
|
||||
@@ -747,12 +757,54 @@ class V2VisionEngine:
|
||||
index_md = (
|
||||
"# Nubenetes Elite Portal (V2) | Awesome Kubernetes & Cloud [](https://github.com/sindresorhus/awesome)\n\n"
|
||||
"<center markdown=\"1\">\n"
|
||||
"[](https://kubernetes.io) [](./introduction.md)\n"
|
||||
"</center>\n\n"
|
||||
"\"I do not believe you can do today's job with yesterday's methods and be in business tomorrow\" ([Horatio Nelson Jackson](https://en.wikipedia.org/wiki/Horatio_Nelson_Jackson))\n"
|
||||
"<center markdown=\"1\">\n\n"
|
||||
"[](https://www.cncf.io/certification/software-conformance) <br/>\n\n"
|
||||
"<div class=\"hero-showcase-wrapper\">\n"
|
||||
" <a href=\"https://www.cncf.io/certification/software-conformance\" class=\"hero-showcase-link\">\n"
|
||||
" <img src=\"images/container_with_cars_v2.png\" alt=\"container_with_cars\" class=\"hero-showcase-image\" />\n"
|
||||
" <div class=\"hero-showcase-footer\">\n"
|
||||
" <span class=\"hero-showcase-badge\">CNCF Conformance</span>\n"
|
||||
" <span class=\"hero-showcase-caption\">Standardized conformance guarantees seamless workload portability across the Cloud Native landscape.</span>\n"
|
||||
" </div>\n"
|
||||
" </a>\n"
|
||||
"</div>\n"
|
||||
"</center>\n\n"
|
||||
"<div class=\"quote-card-container\">\n"
|
||||
" <a href=\"https://en.wikipedia.org/wiki/Horatio_Nelson_Jackson\" class=\"quote-card-link\">\n"
|
||||
" <div class=\"quote-card\">\n"
|
||||
" <div class=\"quote-card-text\">\"I do not believe you can do today's job with yesterday's methods and be in business tomorrow\"</div>\n"
|
||||
" <div class=\"quote-card-author\">Horatio Nelson Jackson</div>\n"
|
||||
" </div>\n"
|
||||
" </a>\n"
|
||||
"</div>\n\n"
|
||||
"<div style=\"display: flex; justify-content: center; gap: 24px; margin: 16px 0; flex-wrap: wrap;\">\n"
|
||||
" <a href=\"./kubernetes.html\" 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"
|
||||
" <div class=\"hero-badge-title\">Ecosystem Core</div>\n"
|
||||
" <div class=\"hero-badge-subtitle\">Explore Kubernetes</div>\n"
|
||||
" </div>\n"
|
||||
" </a>\n"
|
||||
" <a href=\"./ai-agents-mcp.html\" style=\"text-decoration: none; color: inherit; display: block;\">\n"
|
||||
" <div class=\"hero-badge-card hero-badge-card--purple\">\n"
|
||||
" <img src=\"images/ai_agents_logo.png\" alt=\"AI & MCP Agents\"/>\n"
|
||||
" <div class=\"hero-badge-title\">AI & MCP Agents</div>\n"
|
||||
" <div class=\"hero-badge-subtitle\">Agentic Ecosystem</div>\n"
|
||||
" </div>\n"
|
||||
" </a>\n"
|
||||
" <a href=\"./videos/index.html\" style=\"text-decoration: none; color: inherit; display: block;\">\n"
|
||||
" <div class=\"hero-badge-card hero-badge-card--pink\">\n"
|
||||
" <img src=\"images/video_hub_logo.png\" alt=\"Agentic Video Hub\"/>\n"
|
||||
" <div class=\"hero-badge-title\">Agentic Video Hub</div>\n"
|
||||
" <div class=\"hero-badge-subtitle\">Architect Video Library</div>\n"
|
||||
" </div>\n"
|
||||
" </a>\n"
|
||||
" <a href=\"./introduction.html\" 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"
|
||||
" <div class=\"hero-badge-title\">Get Started</div>\n"
|
||||
" <div class=\"hero-badge-subtitle\">Introduction Guide</div>\n"
|
||||
" </div>\n"
|
||||
" </a>\n"
|
||||
"</div>\n\n"
|
||||
"!!! abstract \"The High-Density Vision\"\n"
|
||||
" 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"
|
||||
@@ -760,7 +812,7 @@ class V2VisionEngine:
|
||||
f"<center markdown=\"1\">\n{mosaic_html}\n</center>\n\n"
|
||||
f"{pulse_md}\n\n"
|
||||
"## Strategic Dimensions\n"
|
||||
"- **[🎥 Agentic Video Hub (Architectural Summary)](./videos.md)**\n\n"
|
||||
"- **[🎥 Agentic Video Hub (Architectural Summary)](./videos/index.md)**\n\n"
|
||||
)
|
||||
|
||||
# Group by dimension for index
|
||||
@@ -869,7 +921,12 @@ class V2VisionEngine:
|
||||
"nav:",
|
||||
" - \"🔙 Back to V1 (Exhaustive)\": https://nubenetes.com/v1/",
|
||||
" - \"The 2026 Vision\": index.md",
|
||||
" - \"Agentic Video Hub\": videos.md"
|
||||
" - \"Agentic Video Hub\":",
|
||||
" - videos/index.md",
|
||||
" - \"AI Agents and MCP\": videos/ai-agents.md",
|
||||
" - \"DevOps, IaC, and SRE\": videos/devops-iac.md",
|
||||
" - \"Cloud Native Core\": videos/cloud-native.md",
|
||||
" - \"Fundamentals\": videos/fundamentals.md"
|
||||
]
|
||||
|
||||
# Group files by dimension
|
||||
|
||||
+200
-53
@@ -3,7 +3,70 @@ import os
|
||||
import re
|
||||
|
||||
INVENTORY_PATH = "data/inventory.yaml"
|
||||
V2_VIDEOS_PATH = "v2-docs/videos.md"
|
||||
VIDEOS_DIR = "v2-docs/videos"
|
||||
|
||||
def to_embed_url(url):
|
||||
if not url:
|
||||
return ""
|
||||
# If playlist
|
||||
if "playlist?list=" in url:
|
||||
match = re.search(r"[?&]list=([^&#]+)", url)
|
||||
if match:
|
||||
return f"https://www.youtube.com/embed/videoseries?list={match.group(1)}"
|
||||
return url
|
||||
|
||||
video_id = None
|
||||
if "youtu.be/" in url:
|
||||
match = re.search(r"youtu\.be/([^?&#]+)", url)
|
||||
if match:
|
||||
video_id = match.group(1)
|
||||
elif "embed/" in url:
|
||||
return url
|
||||
else:
|
||||
match = re.search(r"[?&]v=([^&#]+)", url)
|
||||
if match:
|
||||
video_id = match.group(1)
|
||||
|
||||
if video_id:
|
||||
list_match = re.search(r"[?&]list=([^&#]+)", url)
|
||||
t_match = re.search(r"[?&]t=([^&#]+)", url)
|
||||
params = []
|
||||
if list_match:
|
||||
params.append(f"list={list_match.group(1)}")
|
||||
if t_match:
|
||||
t_val = t_match.group(1)
|
||||
seconds = 0
|
||||
time_matches = re.findall(r"(\d+)(h|m|s)?", t_val)
|
||||
if time_matches:
|
||||
for val, unit in time_matches:
|
||||
val_int = int(val)
|
||||
if unit == "h":
|
||||
seconds += val_int * 3600
|
||||
elif unit == "m":
|
||||
seconds += val_int * 60
|
||||
else:
|
||||
seconds += val_int
|
||||
params.append(f"start={seconds}")
|
||||
elif t_val.isdigit():
|
||||
params.append(f"start={t_val}")
|
||||
|
||||
query_string = f"?{f'&'.join(params)}" if params else ""
|
||||
return f"https://www.youtube.com/embed/{video_id}{query_string}"
|
||||
|
||||
return url
|
||||
|
||||
def get_target_file(category, technology):
|
||||
cat_lower = category.lower()
|
||||
tech_lower = technology.lower()
|
||||
|
||||
if "agent" in tech_lower or "mcp" in tech_lower or "ai and future operations" in cat_lower:
|
||||
return "ai-agents.md", "AI Agents and MCP"
|
||||
elif "infrastructure as code" in cat_lower or "security" in cat_lower or "observability" in cat_lower or "monitoring" in cat_lower or "devops" in tech_lower or "iac" in tech_lower or "sre" in tech_lower:
|
||||
return "devops-iac.md", "DevOps, IaC, and SRE"
|
||||
elif "fundamentals" in cat_lower:
|
||||
return "fundamentals.md", "Fundamentals"
|
||||
else:
|
||||
return "cloud-native.md", "Cloud Native Core"
|
||||
|
||||
def generate_v2_videos():
|
||||
if not os.path.exists(INVENTORY_PATH):
|
||||
@@ -16,7 +79,7 @@ def generate_v2_videos():
|
||||
for url, entry in inventory.items():
|
||||
if entry.get("is_featured_video"):
|
||||
featured_videos.append({
|
||||
"url": url,
|
||||
"url": to_embed_url(url),
|
||||
"title": entry.get("title", "YouTube Video"),
|
||||
"category": entry.get("category", "General"),
|
||||
"technology": entry.get("technology", "Cloud Native"),
|
||||
@@ -29,72 +92,156 @@ def generate_v2_videos():
|
||||
print("No featured videos found in inventory.")
|
||||
return
|
||||
|
||||
# Sort by Category Order (using the numeric prefix) and then by video_order field
|
||||
# Categories: "1. Fundamentals and Documentaries", "2. Architecture...", etc.
|
||||
featured_videos.sort(key=lambda x: (x["category"], x.get("video_order", 999)))
|
||||
# Delete old videos.md if it exists
|
||||
old_videos_file = "v2-docs/videos.md"
|
||||
if os.path.exists(old_videos_file):
|
||||
os.remove(old_videos_file)
|
||||
print(f"Removed legacy {old_videos_file}")
|
||||
|
||||
os.makedirs(VIDEOS_DIR, exist_ok=True)
|
||||
|
||||
# Helper functions
|
||||
def clean_header(text):
|
||||
# MANDATE 30: No ampersands, no special characters
|
||||
# Also remove the numeric prefix for the final display
|
||||
t = re.sub(r'^\d+\.\s*', '', text)
|
||||
t = t.replace("&", "and")
|
||||
t = t.replace("(", "").replace(")", "")
|
||||
return t
|
||||
t = re.sub(r'[^a-zA-Z0-9\s-]', ' ', t)
|
||||
t = re.sub(r'\s+', ' ', t)
|
||||
return t.strip()
|
||||
|
||||
def get_slug(text):
|
||||
# Slug should include the numeric prefix to be unique and match TOC
|
||||
t = text.replace("&", "and").replace("(", "").replace(")", "")
|
||||
return t.lower().strip().replace(" ", "-").replace("/", "-").replace(".", "")
|
||||
t = clean_header(text).lower()
|
||||
t = re.sub(r'[^a-z0-9\s-]', '', t)
|
||||
t = re.sub(r'[\s-]+', '-', t)
|
||||
return t.strip('-')
|
||||
|
||||
content = [
|
||||
"# 🎥 Nubenetes Elite Video Hub",
|
||||
def is_spanish(title, summary):
|
||||
if "[SPANISH CONTENT]" in summary or "[SPANISH CONTENT]" in title:
|
||||
return True
|
||||
if title.strip().startswith("¿"):
|
||||
return True
|
||||
return False
|
||||
|
||||
# Group videos by target file
|
||||
themed_videos = {}
|
||||
for v in featured_videos:
|
||||
filename, title = get_target_file(v["category"], v["technology"])
|
||||
if filename not in themed_videos:
|
||||
themed_videos[filename] = {"title": title, "videos": []}
|
||||
themed_videos[filename]["videos"].append(v)
|
||||
|
||||
# Generate each themed MD file
|
||||
for filename, theme_info in themed_videos.items():
|
||||
theme_title = theme_info["title"]
|
||||
videos = theme_info["videos"]
|
||||
videos.sort(key=lambda x: x.get("video_order", 999))
|
||||
|
||||
content = [
|
||||
f"# 🎥 {theme_title}",
|
||||
"",
|
||||
f"Welcome to the **{theme_title}** section of the V2 Video Hub. Explore curated high-density videos with architectural summaries.",
|
||||
"",
|
||||
"## Table of Contents",
|
||||
""
|
||||
]
|
||||
|
||||
# Group by Technology for TOC
|
||||
techs = []
|
||||
for v in videos:
|
||||
tech = v.get("technology", "Cloud Native")
|
||||
if tech not in techs:
|
||||
techs.append(tech)
|
||||
|
||||
for idx, tech in enumerate(techs, 1):
|
||||
clean_tech = clean_header(tech)
|
||||
slug = get_slug(tech)
|
||||
content.append(f"{idx}. [{clean_tech}](#{slug})")
|
||||
|
||||
content.append("")
|
||||
|
||||
# Render Grouped Videos
|
||||
grouped_by_tech = {}
|
||||
for v in videos:
|
||||
tech = v.get("technology", "Cloud Native")
|
||||
if tech not in grouped_by_tech:
|
||||
grouped_by_tech[tech] = []
|
||||
grouped_by_tech[tech].append(v)
|
||||
|
||||
for tech in techs:
|
||||
clean_tech = clean_header(tech)
|
||||
content.append(f"## {clean_tech}")
|
||||
content.append("")
|
||||
|
||||
for v in grouped_by_tech[tech]:
|
||||
summary = v.get("summary", "").strip()
|
||||
# Replace bullet points starting with '* ' with '- ' to avoid markdownlint MD037 errors
|
||||
lines_sum = []
|
||||
for line in summary.splitlines():
|
||||
line = re.sub(r'^(\s*)\*\s+', r'\1- ', line)
|
||||
lines_sum.append(line)
|
||||
summary = "\n".join(lines_sum)
|
||||
indented_summary = summary.replace("\n", "\n ")
|
||||
is_sp = is_spanish(v['title'], summary)
|
||||
lang_suffix = " [SPANISH CONTENT]" if is_sp else ""
|
||||
|
||||
content.append(f"??? note \"🎬 {v['title']}{lang_suffix}\"")
|
||||
content.append(f" !!! info \"Architectural Summary\"")
|
||||
content.append(f" {indented_summary}")
|
||||
content.append("")
|
||||
content.append(' <center markdown="1">')
|
||||
content.append('')
|
||||
content.append(f' <iframe width="720" height="405" src="{v["url"]}" title="{v["title"]}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>')
|
||||
content.append('')
|
||||
content.append(' </center>')
|
||||
content.append("")
|
||||
|
||||
filepath = os.path.join(VIDEOS_DIR, filename)
|
||||
with open(filepath, "w") as f:
|
||||
f.write("\n".join(content))
|
||||
print(f"Generated {filepath} with {len(videos)} videos.")
|
||||
|
||||
# Generate Overview page
|
||||
overview_content = [
|
||||
"# 🎥 Agentic Video Hub",
|
||||
"",
|
||||
"Welcome to the **Agentic Video Hub**. This section presents a logical, architectural journey through the Cloud Native landscape, from foundational documentaries to advanced AI operations.",
|
||||
"Welcome to the **Nubenetes Elite Video Hub**. Discover highly-curated architectural video resources organized into logical learning paths:",
|
||||
"",
|
||||
"## Table of Contents",
|
||||
"## Learning Dimensions",
|
||||
"- 🤖 [**AI Agents and MCP**](./ai-agents.md) — Dive into agentic architectures, tool integration, and Model Context Protocol setups.",
|
||||
"- 🛠️ [**DevOps, IaC, and SRE**](./devops-iac.md) — Platform engineering, infrastructure automation with Terraform, SRE, and compliance workflows utilizing AI assistants.",
|
||||
"- ☁️ [**Cloud Native Core**](./cloud-native.md) — Architectural strategies, Kubernetes operations, networking, and MLOps platforms.",
|
||||
"- 🏁 [**Fundamentals**](./fundamentals.md) — Documentaries, foundational cloud native concepts, and core Strategy tutorials.",
|
||||
""
|
||||
]
|
||||
with open(os.path.join(VIDEOS_DIR, "index.md"), "w") as f:
|
||||
f.write("\n".join(overview_content))
|
||||
print(f"Generated {VIDEOS_DIR}/index.md")
|
||||
|
||||
categories = sorted(list(set(v["category"] for v in featured_videos)))
|
||||
for idx, cat in enumerate(categories, 1):
|
||||
clean_cat = clean_header(cat)
|
||||
slug = get_slug(cat)
|
||||
content.append(f"{idx}. [{clean_cat}](#{slug})")
|
||||
# Update MkDocs Nav
|
||||
update_mkdocs_nav()
|
||||
|
||||
content.append("")
|
||||
def update_mkdocs_nav():
|
||||
mkdocs_path = "v2-mkdocs.yml"
|
||||
if not os.path.exists(mkdocs_path):
|
||||
return
|
||||
with open(mkdocs_path, "r") as f:
|
||||
content = f.read()
|
||||
|
||||
for cat in categories:
|
||||
clean_cat = clean_header(cat)
|
||||
slug = get_slug(cat)
|
||||
# Use standard headers (MkDocs generates anchors automatically)
|
||||
content.append(f"## {clean_cat}")
|
||||
cat_videos = [v for v in featured_videos if v["category"] == cat]
|
||||
|
||||
# Sort by video_order within category
|
||||
cat_videos.sort(key=lambda x: x.get("video_order", 999))
|
||||
# Match exact entry and replace with nested list
|
||||
old_entry = '- "Agentic Video Hub": videos.md'
|
||||
new_entry = """- "Agentic Video Hub":
|
||||
- "Overview": videos/index.md
|
||||
- "AI Agents and MCP": videos/ai-agents.md
|
||||
- "DevOps, IaC, and SRE": videos/devops-iac.md
|
||||
- "Cloud Native Core": videos/cloud-native.md
|
||||
- "Fundamentals": videos/fundamentals.md"""
|
||||
|
||||
for v in cat_videos:
|
||||
tech = v.get("technology", "Cloud Native")
|
||||
# Ensure summary is correctly indented for multiline blocks
|
||||
summary = v.get("summary", "").strip()
|
||||
indented_summary = summary.replace("\n", "\n ")
|
||||
|
||||
# Collapsible block per video for better flow
|
||||
content.append(f"??? note \"🎬 {v['title']} | `{tech}`\"")
|
||||
content.append(f" !!! info \"Architectural Summary\"")
|
||||
content.append(f" {indented_summary}")
|
||||
content.append("")
|
||||
content.append(' <center markdown="1">')
|
||||
content.append('')
|
||||
content.append(f' <iframe width="720" height="405" src="{v["url"]}" title="{v["title"]}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>')
|
||||
content.append('')
|
||||
content.append(' </center>')
|
||||
content.append("")
|
||||
|
||||
with open(V2_VIDEOS_PATH, "w") as f:
|
||||
f.write("\n".join(content))
|
||||
|
||||
print(f"✅ Generated {V2_VIDEOS_PATH} with {len(featured_videos)} videos.")
|
||||
if old_entry in content:
|
||||
content = content.replace(old_entry, new_entry)
|
||||
with open(mkdocs_path, "w") as f:
|
||||
f.write(content)
|
||||
print("Updated v2-mkdocs.yml navigation.")
|
||||
else:
|
||||
print("v2-mkdocs.yml navigation is already updated or entry not found.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
generate_v2_videos()
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
#### Open Source
|
||||
|
||||
- [AWS Labs GitHub](https://github.com/awslabs) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> — AWS's central laboratory incubator on GitHub housing thousands of reference architectures, automation scripts, and experimental SDKs. Grounding validates this organization as a primary resource for cloud-native engineering patterns.
|
||||
#### Reference Architectures
|
||||
|
||||
- **(2023)** [**AWS Quick Start Reference Deployments**](http://aws.amazon.com/es/quickstart) <span class='md-tag md-tag--warning'>[SPANISH CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — AWS-validated CloudFormation templates and deployment guides structured to stand up complex multi-tier enterprise workloads rapidly. Grounding reveals that while many are migrating to Partner Solutions, this archive is a high-density resource for building compliant infrastructure.
|
||||
### AWS FinOps
|
||||
|
||||
#### Cost Management
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@
|
||||
- [Automated API testing for the KIE Server 🌟](https://developers.redhat.com/blog/2020/05/01/automated-api-testing-for-the-kie-server) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [SysAdmin Casts](https://sysadmincasts.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DEVOPS Library](https://devopslibrary.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: Cloud Quick POCs](https://www.youtube.com/channel/UCv9MUffHWyo2GgLIDLVu0KQ) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud quick POCs](https://www.youtube.com/channel/UCv9MUffHWyo2GgLIDLVu0KQ) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DevStack](https://devstack.in) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kubernetes-advocate.medium.com 🌟](https://kubernetes-advocate.medium.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/wardviaene (kubernetes, terraform, ansible, docker, etc) 🌟](https://github.com/wardviaene) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
+97
-27
File diff suppressed because one or more lines are too long
@@ -0,0 +1,267 @@
|
||||
# 🎥 AI Agents and MCP
|
||||
|
||||
Welcome to the **AI Agents and MCP** section of the V2 Video Hub. Explore curated high-density videos with architectural summaries.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Red Hat OpenShift](#red-hat-openshift)
|
||||
2. [Generative AI and Large Language Models](#generative-ai-and-large-language-models)
|
||||
3. [Grafana Assistant Claude Code Grafana MCP Server](#grafana-assistant-claude-code-grafana-mcp-server)
|
||||
4. [Red Hat OpenShift AI](#red-hat-openshift-ai)
|
||||
5. [Claude Code](#claude-code)
|
||||
6. [Neural Networks](#neural-networks)
|
||||
7. [LLM Architecture and Post-Training](#llm-architecture-and-post-training)
|
||||
8. [Agentic DevOps](#agentic-devops)
|
||||
9. [DevOps AI Agents](#devops-ai-agents)
|
||||
10. [Android Gemini AI](#android-gemini-ai)
|
||||
11. [AI Agents Distributed ML Operations](#ai-agents-distributed-ml-operations)
|
||||
12. [MLOps AI Agents](#mlops-ai-agents)
|
||||
13. [IAM AI Agents](#iam-ai-agents)
|
||||
14. [LLMs AI Agents MLOps](#llms-ai-agents-mlops)
|
||||
15. [Firebase Genkit Gemini AI Agents](#firebase-genkit-gemini-ai-agents)
|
||||
16. [SRE AI Agents](#sre-ai-agents)
|
||||
17. [Mobile Cloud Integration AI Agents](#mobile-cloud-integration-ai-agents)
|
||||
|
||||
## Red Hat OpenShift
|
||||
|
||||
??? note "🎬 Thursday morning general session - May 9 - Red Hat Summit 2019"
|
||||
!!! info "Architectural Summary"
|
||||
This session outlines the architectural enablement of cloud-native AI/ML workloads by integrating Red Hat OpenShift with NVIDIA GPU acceleration and automated MLOps platforms like H2O.ai and ProphetStor. It demonstrates how standardizing on a Kubernetes-based hybrid cloud substrate abstracts heterogeneous hardware environments, facilitating deterministic scaling, resource orchestration, and cognitive monitoring for high-performance AI pipelines. This unified operational model serves as a foundational blueprint for modern enterprise AI-platform engineering and edge computing architectures.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/FUu4kMc0PL8?clip=UgkxLbUzIJtyeKPi66qAvxxRlGbofYp_Gr8B&clipt=EIDy0gIY4MbWAg" title="Thursday morning general session - May 9 - Red Hat Summit 2019" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Generative AI and Large Language Models
|
||||
|
||||
??? note "🎬 Artificial Intelligence | 60 Minutes Full Episodes"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary anthology traces the rapid evolution of artificial intelligence from early deep learning implementations to advanced generative AI systems like Google's Bard and OpenAI's ChatGPT. For 2026 cloud-native architectures, these developments highlight the critical need for integrating scalable AI model orchestration, strict ethical guardrails, and secure data pipelines directly into enterprise platform engineering. Understanding these socio-technical shifts assists cloud architects in designing resilient, compliant AI-integrated infrastructures that balance massive computational demands with robust operational governance.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/aZ5EsdnpLMI?si=ESsNnVwE8IdWSiWZ" title="Artificial Intelligence | 60 Minutes Full Episodes" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Grafana Assistant Claude Code Grafana MCP Server
|
||||
|
||||
??? note "🎬 I Stopped Staring at Dashboards. AI Reads My Grafana Metrics Now."
|
||||
!!! info "Architectural Summary"
|
||||
This video explores how AI agents can read Grafana metrics, logs, and traces directly using Grafana Assistant and Claude Code wired up to the Grafana MCP server. It demonstrates querying Prometheus, Loki, and Tempo, generating custom dashboards from natural language, and analyzing runtime data from the command line. This workflow bridges the gap between analysis and remediation, allowing agents to verify fixes and make data-grounded decisions.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/HI6KleJAZPY" title="I Stopped Staring at Dashboards. AI Reads My Grafana Metrics Now." frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Red Hat OpenShift AI
|
||||
|
||||
??? note "🎬 Red Hat OpenShift AI overview"
|
||||
!!! info "Architectural Summary"
|
||||
Red Hat OpenShift AI provides an enterprise-grade MLOps platform built on Kubernetes that standardizes the training, tuning, serving, and monitoring of foundation and predictive AI models across hybrid and multi-cloud environments. By integrating open-source frameworks like Jupyter, PyTorch, and KServe with certified hardware accelerators, it delivers a secure, consistent, and self-service environment for platform and data science teams. This architecture ensures robust AI governance, operational scalability, and accelerated time-to-market for intelligent cloud-native applications.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/Hc8emNr2igU?si=kehLRUpOAvyK_Bku" title="Red Hat OpenShift AI overview" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Claude Code
|
||||
|
||||
??? note "🎬 Mastering Claude Code in 30 minutes"
|
||||
!!! info "Architectural Summary"
|
||||
This technical session explores the architecture and implementation of Claude Code, Anthropic's agentic CLI designed for autonomous, multi-step engineering tasks. It details how the tool leverages the Model Context Protocol (MCP) to integrate with external data sources and documentation, enabling a self-healing development cycle where the agent autonomously reads code, executes shell commands, and iterates through test-driven development (TDD) loops. For 2026 platform engineers, mastering these agentic workflows is critical for scaling complex refactoring, managing cognitive load in large-scale repositories, and establishing robust human-in-the-loop (HITL) governance for AI-driven infrastructure operations.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/6eBSHbLKuN0" title="Mastering Claude Code in 30 minutes" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Neural Networks
|
||||
|
||||
??? note "🎬 ¿Qué es una Red Neuronal? Parte 1 : La Neurona | DotCSV [SPANISH CONTENT]"
|
||||
!!! info "Architectural Summary"
|
||||
This video deconstructs the foundational mathematical and algorithmic mechanics of a single artificial neuron, illustrating its direct relationship with linear regression, weights, biases, and activation functions. In a 2026 cloud-native landscape, mastering these core neural principles is critical for platform architects optimizing distributed micro-models and real-time AI inference engines deployed on Kubernetes-driven edge and cloud infrastructure. This granular understanding enables more efficient hardware acceleration profiling (GPUs/vGPUs/TPUs) and smarter resource allocation for decentralized machine learning pipelines.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/MRIv2IwFTPg?si=F07g869i6yIfqRdg" title="¿Qué es una Red Neuronal? Parte 1 : La Neurona | DotCSV" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## LLM Architecture and Post-Training
|
||||
|
||||
??? note "🎬 Stanford CS229: Building Large Language Models (LLMs)"
|
||||
!!! info "Architectural Summary"
|
||||
This Stanford CS229 technical deep-dive deconstructs the transition from raw autoregressive language models to instruction-tuned assistants, focusing on the systems orchestration required for 2026 AI infrastructure. It explores critical patterns in tokenization (BPE/Sub-word), parameter-efficient fine-tuning (PEFT/LoRA), and the shift from RLHF to Direct Preference Optimization (DPO) to simplify model alignment pipelines. For cloud architects, the lecture provides a foundational framework for optimizing the "Compute-to-Token" ratio and managing memory constraints (KV Cache) in distributed distributed inference environments, while advocating for LLM-as-a-Judge automated evaluation loops for scalable model governance.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/9vM4p9NN0Ts" title="Stanford CS229: Building Large Language Models (LLMs)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Agentic DevOps
|
||||
|
||||
??? note "🎬 Agentic DevOps Live"
|
||||
!!! info "Architectural Summary"
|
||||
This official live series explores the paradigm shift from traditional CI/CD pipelines to autonomous, agent-driven operations (Agentic DevOps). It covers technical deep-dives into Azure SRE Agents for automated root cause analysis and proactive reliability, GitHub Copilot App Mod Agents for modernizing legacy systems at scale, and AI-powered workflows across GitHub and Azure DevOps. Essential for platform engineers designing self-healing environments and scalable human-in-the-loop AI governance in 2026.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?list=PLmsFUfdnGr3w9BdWjQGAwV7UPW0kspwOp" title="Agentic DevOps Live" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## DevOps AI Agents
|
||||
|
||||
??? note "🎬 Agent-first workflows from prompt to production"
|
||||
!!! info "Architectural Summary"
|
||||
This session outlines an end-to-end architectural workflow for transitioning from AI-agentic code generation directly to secure, production-grade deployments on Google Cloud. It demonstrates how developers can utilize IDE-integrated Gemini Code Assist agents, Cloud Run, and Cloud Build to build, containerize, and deploy AI-native applications without leaving their development environments. The presentation emphasizes securing the agentic software development lifecycle (SDLC) using enterprise-grade IAM, automated CI/CD, and policy-driven compliance.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/QtXBAz6TU2g?list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz" title="Agent-first workflows from prompt to production" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Cloud at Google I/O 2026"
|
||||
!!! info "Architectural Summary"
|
||||
This playlist presents the Cloud Native and GenAI architectural frameworks showcased at Google I/O 2026, focusing on the transition from traditional DevOps to 'agent-first' autonomous workflows using Google Cloud’s serverless stack (Cloud Run, Eventarc, Cloud Build, BigQuery) and the Agent Development Kit (ADK). By utilizing Model Context Protocol (MCP) and event-driven architectures, developers can orchestrate specialized multi-agent swarms to handle complex Day-2 operations, such as self-healing remediation and intelligent CI/CD pipelines. This paradigm shift provides a highly secure, automated foundation for scaling and governing AI-native applications directly from code to production.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?list=PLOU2XLYxmsIJp39MsvkeWYYNwMso-HeNT" title="Cloud at Google I/O 2026" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Model Context Protocol (MCP) and AI Agents in DevOps"
|
||||
!!! info "Architectural Summary"
|
||||
This architectural playlist details how Model Context Protocol (MCP) standardizes context and tool-calling interfaces for AI agents within modern cloud-native systems. It explores the practical integration of autonomous agents into DevOps, SRE, and API automation pipelines, replacing complex, manual scripts with intent-driven workflows. By utilizing secure and scalable MCP servers, platform teams can safely delegate infrastructure, database, and testing orchestration to context-aware AI systems.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?list=PLA6Ht2dJt3SId7vE9P5mppWdj65_l6hl7" title="Model Context Protocol (MCP) and AI Agents in DevOps" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Android Gemini AI
|
||||
|
||||
??? note "🎬 What's new in Android development tools"
|
||||
!!! info "Architectural Summary"
|
||||
This session outlines the latest developer tool advancements in Android Studio, highlighting Gemini AI integrations that accelerate mobile development workflows across modern Android APIs. It showcases how cloud-connected AI capabilities and intelligent tooling enhance developer velocity, which is critical for scaling cloud-native mobile applications and modern CI/CD pipelines.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/iyc69njNYOw?list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz" title="What's new in Android development tools" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## AI Agents Distributed ML Operations
|
||||
|
||||
??? note "🎬 Dialogues at Google I/O 2026"
|
||||
!!! info "Architectural Summary"
|
||||
This playlist explores the shift toward proactive, agentic AI, physical robotics, and the convergence of quantum computing with distributed machine learning models. For a 2026 Cloud Native context, it highlights how these autonomous agentic workflows and advanced model capabilities transition enterprise operations from reactive automation to proactive, self-healing system management. This shift fundamentally redefines how distributed computing infrastructures orchestrate, monitor, and scale complex, multi-agent AI workloads.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?list=PLOU2XLYxmsIJuxYe1znksQlhLJ4w8GKCu" title="Dialogues at Google I/O 2026" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## MLOps AI Agents
|
||||
|
||||
??? note "🎬 ComfyUI + Google Models: A Creator-Friendly Agent Workflow"
|
||||
!!! info "Architectural Summary"
|
||||
This architectural overview highlights Google Cloud's integration of Gemini, Veo, and Imagen models with Avid and ComfyUI to deliver secure, agentic workflows for media production. The framework details how multimodal search and generative AI pipelines are orchestrated on Google Cloud compute infrastructure, streamlining video rendering, editing, and creative asset management.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/ppMWxjsmk2k" title="ComfyUI + Google Models: A Creator-Friendly Agent Workflow" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Inside image generation’s Renaissance moment — the OpenAI Podcast Ep. 19"
|
||||
!!! info "Architectural Summary"
|
||||
This episode details the architectural evolution of OpenAI's image generation capabilities to Images 2.0, focusing on the shift from single-turn prompting to multi-modal 'creative agents' integrated with code execution engines like Codex. It addresses the MLOps and infrastructure challenges of scaling real-time generative pipelines to 1.5 billion weekly requests while maintaining strict character consistency and prompt alignment. For 2026 Cloud Native topologies, this highlights the necessity of building low-latency, event-driven agent orchestration layers that seamlessly bind generative media models with stateful transactional systems.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/bH2nP-aCFjk" title="Inside image generation’s Renaissance moment — the OpenAI Podcast Ep. 19" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 What's new in Google AI"
|
||||
!!! info "Architectural Summary"
|
||||
This presentation outlines Google's latest end-to-end AI stack from Google I/O 2026, focusing on deployment strategies for multimodal models, media generation, and intelligent agents. It details how to leverage Google's managed infrastructure and MLOps tools to tune, serve, and scale open-source models in cloud-native environments. Additionally, it introduces new 'vibe-coding' workflows and agentic capabilities designed to streamline next-generation AI application development.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/SSe1VmVrtw0" title="What's new in Google AI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## IAM AI Agents
|
||||
|
||||
??? note "🎬 Your AI Agent Has No Identity, Here's Why That's Dangerous"
|
||||
!!! info "Architectural Summary"
|
||||
This architectural discussion addresses the critical vulnerability in modern IAM frameworks where autonomous AI agents lack stable, verifiable identity constructs, leading to dangerous dependencies on long-lived API tokens. It explores how the Model Context Protocol (MCP) is redefining agent-to-agent (A2A) and human-to-agent authentication, highlighting strategies to mitigate prompt injection and secure ephemeral credentials in decentralized agentic workflows. Ultimately, it details how modern enterprise security architectures must adapt to protect billions of credentials as multi-agent orchestration becomes standard in cloud-native environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/BtgZLw8hYiU" title="Your AI Agent Has No Identity, Here's Why That's Dangerous" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## LLMs AI Agents MLOps
|
||||
|
||||
??? note "🎬 A Hacker's Guide to Language Models"
|
||||
!!! info "Architectural Summary"
|
||||
This foundational guide demystifies Large Language Models (LLMs) for system engineers, demonstrating how to pragmatically integrate, prompt, and fine-tune models using direct APIs and local deployments rather than heavy frameworks. For cloud-native architects, it provides the essential blueprint for building resource-efficient, low-latency AI agents and MLOps pipelines that run reliably within containerized microservice architectures.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/DjBBV7oZxm8" title="A Hacker's Guide to Language Models" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Firebase Genkit Gemini AI Agents
|
||||
|
||||
??? note "🎬 Developer Keynote (Google I/O '24)"
|
||||
!!! info "Architectural Summary"
|
||||
The Google I/O 2024 Developer Keynote details key advancements in building agentic workflows using Firebase Genkit and Gemini 1.5 Pro, establishing modern paradigms for orchestrating AI agents in cloud-native architectures. It also introduces client-side rendering breakthroughs with Flutter's Impeller engine ('Antigravity') and highlights decentralized edge computing via built-in Gemini Nano integration across Chrome and Android platforms.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/aqmpZocmR8o?list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz" title="Developer Keynote (Google I/O '24)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## SRE AI Agents
|
||||
|
||||
??? note "🎬 The Shift Podcast by Microsoft Azure—Agentic Edition"
|
||||
!!! info "Architectural Summary"
|
||||
This technical podcast series details the evolution of cloud-native infrastructure required to support autonomous, context-aware AI agents in enterprise environments. It explores critical engineering paradigms such as multi-agent orchestration, context engineering over traditional RAG, unified data fabrics for governed access, and Postgres-centric vector storage. Additionally, it addresses the SRE and operations dimension by analyzing how agentic AI is reforming IT operations, cloud management, and security governance through defined agentic borders.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?list=PLLasX02E8BPBCP7KdYsjKKFFQUmNEUmE9" title="The Shift Podcast by Microsoft Azure—Agentic Edition" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Mobile Cloud Integration AI Agents
|
||||
|
||||
??? note "🎬 What's new in Android"
|
||||
!!! info "Architectural Summary"
|
||||
This session outlines the architectural evolution in Android 17, highlighting advancements in Jetpack Compose, performance optimizations, and the integration of client-side agentic automation. For cloud-native environments, this shifts the paradigm toward edge-to-cloud coordination, requiring backend architectures to seamlessly ingest, secure, and support high-frequency orchestrations driven by autonomous mobile AI agents.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/sig3n7XyaaA?list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz" title="What's new in Android" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
@@ -1,79 +1,29 @@
|
||||
# 🎥 Nubenetes Elite Video Hub
|
||||
# 🎥 Cloud Native Core
|
||||
|
||||
Welcome to the **Agentic Video Hub**. This section presents a logical, architectural journey through the Cloud Native landscape, from foundational documentaries to advanced AI operations.
|
||||
Welcome to the **Cloud Native Core** section of the V2 Video Hub. Explore curated high-density videos with architectural summaries.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [AI and Future Operations](#ai-and-future-operations)
|
||||
2. [Architecture and Cloud Strategy](#architecture-and-cloud-strategy)
|
||||
3. [Fundamentals and Documentaries](#fundamentals-and-documentaries)
|
||||
4. [Infrastructure as Code](#infrastructure-as-code)
|
||||
5. [Observability and Monitoring](#observability-and-monitoring)
|
||||
6. [Security and Compliance](#security-and-compliance)
|
||||
1. [Kubernetes](#kubernetes)
|
||||
2. [Red Hat OpenShift](#red-hat-openshift)
|
||||
3. [Platform Engineering](#platform-engineering)
|
||||
4. [Ruby on Rails](#ruby-on-rails)
|
||||
5. [Ruby on Rails Hotwire](#ruby-on-rails-hotwire)
|
||||
6. [Portworx](#portworx)
|
||||
7. [HashiCorp Stack Terraform Vault Consul Boundary](#hashicorp-stack-terraform-vault-consul-boundary)
|
||||
8. [Modular Monoliths](#modular-monoliths)
|
||||
9. [Git](#git)
|
||||
10. [Distributed Systems Strategy](#distributed-systems-strategy)
|
||||
11. [FinOps](#finops)
|
||||
12. [GitOps](#gitops)
|
||||
13. [Hosted Control Planes](#hosted-control-planes)
|
||||
14. [Azure Verified Modules AVM](#azure-verified-modules-avm)
|
||||
15. [OpenShift](#openshift)
|
||||
16. [VS Code](#vs-code)
|
||||
|
||||
## AI and Future Operations
|
||||
??? note "🎬 Thursday morning general session - May 9 - Red Hat Summit 2019 | `Red Hat OpenShift`"
|
||||
!!! info "Architectural Summary"
|
||||
This session outlines the architectural enablement of cloud-native AI/ML workloads by integrating Red Hat OpenShift with NVIDIA GPU acceleration and automated MLOps platforms like H2O.ai and ProphetStor. It demonstrates how standardizing on a Kubernetes-based hybrid cloud substrate abstracts heterogeneous hardware environments, facilitating deterministic scaling, resource orchestration, and cognitive monitoring for high-performance AI pipelines. This unified operational model serves as a foundational blueprint for modern enterprise AI-platform engineering and edge computing architectures.
|
||||
## Kubernetes
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/FUu4kMc0PL8?clip=UgkxLbUzIJtyeKPi66qAvxxRlGbofYp_Gr8B&clipt=EIDy0gIY4MbWAg" title="Thursday morning general session - May 9 - Red Hat Summit 2019" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Artificial Intelligence | 60 Minutes Full Episodes | `Generative AI and Large Language Models`"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary anthology traces the rapid evolution of artificial intelligence from early deep learning implementations to advanced generative AI systems like Google's Bard and OpenAI's ChatGPT. For 2026 cloud-native architectures, these developments highlight the critical need for integrating scalable AI model orchestration, strict ethical guardrails, and secure data pipelines directly into enterprise platform engineering. Understanding these socio-technical shifts assists cloud architects in designing resilient, compliant AI-integrated infrastructures that balance massive computational demands with robust operational governance.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/aZ5EsdnpLMI?si=ESsNnVwE8IdWSiWZ" title="Artificial Intelligence | 60 Minutes Full Episodes" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Red Hat OpenShift AI overview | `Red Hat OpenShift AI`"
|
||||
!!! info "Architectural Summary"
|
||||
Red Hat OpenShift AI provides an enterprise-grade MLOps platform built on Kubernetes that standardizes the training, tuning, serving, and monitoring of foundation and predictive AI models across hybrid and multi-cloud environments. By integrating open-source frameworks like Jupyter, PyTorch, and KServe with certified hardware accelerators, it delivers a secure, consistent, and self-service environment for platform and data science teams. This architecture ensures robust AI governance, operational scalability, and accelerated time-to-market for intelligent cloud-native applications.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/Hc8emNr2igU?si=kehLRUpOAvyK_Bku" title="Red Hat OpenShift AI overview" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 ¿Qué es una Red Neuronal? Parte 1 : La Neurona | DotCSV | `Neural Networks`"
|
||||
!!! info "Architectural Summary"
|
||||
This video deconstructs the foundational mathematical and algorithmic mechanics of a single artificial neuron, illustrating its direct relationship with linear regression, weights, biases, and activation functions. In a 2026 cloud-native landscape, mastering these core neural principles is critical for platform architects optimizing distributed micro-models and real-time AI inference engines deployed on Kubernetes-driven edge and cloud infrastructure. This granular understanding enables more efficient hardware acceleration profiling (GPUs/vGPUs/TPUs) and smarter resource allocation for decentralized machine learning pipelines.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/MRIv2IwFTPg?si=F07g869i6yIfqRdg" title="¿Qué es una Red Neuronal? Parte 1 : La Neurona | DotCSV" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Mastering Claude Code in 30 minutes | `Claude Code`"
|
||||
!!! info "Architectural Summary"
|
||||
This technical session explores the architecture and implementation of Claude Code, Anthropic's agentic CLI designed for autonomous, multi-step engineering tasks. It details how the tool leverages the Model Context Protocol (MCP) to integrate with external data sources and documentation, enabling a self-healing development cycle where the agent autonomously reads code, executes shell commands, and iterates through test-driven development (TDD) loops. For 2026 platform engineers, mastering these agentic workflows is critical for scaling complex refactoring, managing cognitive load in large-scale repositories, and establishing robust human-in-the-loop (HITL) governance for AI-driven infrastructure operations.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/6eBSHbLKuN0" title="Mastering Claude Code in 30 minutes" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Stanford CS229: Building Large Language Models (LLMs) | `LLM Architecture & Post-Training`"
|
||||
!!! info "Architectural Summary"
|
||||
This Stanford CS229 technical deep-dive deconstructs the transition from raw autoregressive language models to instruction-tuned assistants, focusing on the systems orchestration required for 2026 AI infrastructure. It explores critical patterns in tokenization (BPE/Sub-word), parameter-efficient fine-tuning (PEFT/LoRA), and the shift from RLHF to Direct Preference Optimization (DPO) to simplify model alignment pipelines. For cloud architects, the lecture provides a foundational framework for optimizing the "Compute-to-Token" ratio and managing memory constraints (KV Cache) in distributed distributed inference environments, while advocating for LLM-as-a-Judge automated evaluation loops for scalable model governance.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/9vM4p9NN0Ts" title="Stanford CS229: Building Large Language Models (LLMs)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Architecture and Cloud Strategy
|
||||
??? note "🎬 Kubernetes for SysAdmins | Kelsey Hightower at PuppetConf | Talk & Demo | `Kubernetes`"
|
||||
??? note "🎬 Kubernetes for SysAdmins | Kelsey Hightower at PuppetConf | Talk & Demo"
|
||||
!!! info "Architectural Summary"
|
||||
This seminal presentation outlines the paradigm shift from traditional imperative configuration management to declarative, container-orchestrated infrastructure by redefining the operating contract between applications and underlying systems. Viewed from a 2026 cloud-native perspective, Kelsey Hightower's early demonstrations of self-healing workloads, automated bin-packing, and custom controllers for automated TLS provisioning serve as the foundational blueprint for modern platform engineering. The architectural concepts covered—specifically decoupling stateful storage and leveraging native service discovery—remain highly relevant for engineers transitioning from static sysadmin practices to dynamic API-driven control loops.
|
||||
|
||||
@@ -83,17 +33,7 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Thursday morning general session - May 9 - Red Hat Summit 2019 | `Red Hat OpenShift`"
|
||||
!!! info "Architectural Summary"
|
||||
This session outlines the architectural deployment of Red Hat OpenShift as a unified hybrid cloud platform, demonstrating how enterprise Kubernetes orchestrates complex workloads across multi-cloud and edge environments. It highlights critical integrations with GPU acceleration and AI/ML pipelines, establishing a robust blueprint for modern MLOps and scalable cloud-native operations.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/FUu4kMc0PL8?clip=UgkxFMdlFKBQze7NVVd7q2nIwBYWkeaKeoX8&clipt=EIzBzwIY1fnSAg" title="Thursday morning general session - May 9 - Red Hat Summit 2019" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Keynote: 7 Years of Running Kubernetes for Mercedes-Benz | `Kubernetes`"
|
||||
??? note "🎬 Keynote: 7 Years of Running Kubernetes for Mercedes-Benz"
|
||||
!!! info "Architectural Summary"
|
||||
This architectural retrospective outlines Mercedes-Benz's transformation from legacy, manual infrastructure management to an on-premises, self-service cloud platform managing nearly 1,000 clusters via Cluster API (CAPI). In a 2026 cloud-native context, it demonstrates the vital patterns for scaling declarative cluster lifecycle management and shifting traditional enterprise operations toward platform engineering model. The session highlights how organizational resilience, open-source alignment, and robust automation topologies can successfully modernize highly regulated corporate data centers.
|
||||
|
||||
@@ -103,47 +43,19 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 What is Platform Engineering and how it fits into DevOps and Cloud world | `Platform Engineering`"
|
||||
## Red Hat OpenShift
|
||||
|
||||
??? note "🎬 Thursday morning general session - May 9 - Red Hat Summit 2019"
|
||||
!!! info "Architectural Summary"
|
||||
This video details the evolution of cloud operations into Platform Engineering, focusing on the architecture and implementation of Internal Developer Platforms (IDPs) to mitigate developer cognitive load. By establishing standardized 'golden paths' through Infrastructure as Code (IaC) and self-service APIs, organizations can balance developer autonomy with rigorous governance, security, and compliance. This paradigm shift optimizes resource provisioning and modernizes DevOps workflows for highly scalable, cloud-native environments.
|
||||
This session outlines the architectural deployment of Red Hat OpenShift as a unified hybrid cloud platform, demonstrating how enterprise Kubernetes orchestrates complex workloads across multi-cloud and edge environments. It highlights critical integrations with GPU acceleration and AI/ML pipelines, establishing a robust blueprint for modern MLOps and scalable cloud-native operations.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/ghzsBm8vOms" title="What is Platform Engineering and how it fits into DevOps and Cloud world" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/FUu4kMc0PL8?clip=UgkxFMdlFKBQze7NVVd7q2nIwBYWkeaKeoX8&clipt=EIzBzwIY1fnSAg" title="Thursday morning general session - May 9 - Red Hat Summit 2019" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 David Heinemeier Hansson: Microservices vs. Monolith | `Ruby on Rails`"
|
||||
!!! info "Architectural Summary"
|
||||
In this discussion, David Heinemeier Hansson critiques the dogmatic adoption of microservices, highlighting how they introduce substantial operational complexity, network latency, and cognitive load compared to a well-structured monolith. He champions the 'Majestic Monolith' as a pattern that maximizes developer velocity and reduces organizational overhead by keeping the deployment domain unified. For modern cloud-native architectures, this perspective serves as a crucial counterweight to microservice fatigue, driving the industry toward highly-optimized modular monoliths that simplify infrastructure and cut cloud spend.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/rkXGSLf-rVQ?si=Ho8Zzxbrecn7Yncb" title="David Heinemeier Hansson: Microservices vs. Monolith" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 The creator of Rails on JavaScript FE vs. Classic Server-side Rendering | `Ruby on Rails / Hotwire`"
|
||||
!!! info "Architectural Summary"
|
||||
David Heinemeier Hansson critiques the complexity of modern Single Page Application (SPA) architectures, advocating instead for the 'Majestic Monolith' and HTML-over-the-wire (Hotwire) to keep application logic unified on the server. In a 2026 cloud-native context, this paradigm challenges the overhead of decoupled micro-frontends by proving that server-side rendering (SSR) combined with lightweight HTML streaming dramatically simplifies deployment pipelines, reduces client-side resource consumption, and lowers data egress costs. This architectural approach optimizes for operational efficiency, enabling smaller engineering teams to build highly responsive, production-grade applications without managing complex API contract synchronizations.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/IFUPG9KCJ4E?si=KMEXeVlcKTp87-Ja" title="The creator of Rails on JavaScript FE vs. Classic Server-side Rendering" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Murli Thirumale | KubeCon CloudNativeCon EU 2023 | `Portworx`"
|
||||
!!! info "Architectural Summary"
|
||||
This discussion outlines how enterprise platform engineering teams leverage Portworx to deliver automated, resilient Database-as-a-Service (DBaaS) capabilities directly on Kubernetes. By abstracting multi-cloud storage, disaster recovery, and data security, it highlights architectural strategies essential for scaling stateful cloud-native workloads. For a 2026 cloud-native landscape, these unified data management planes are critical for mitigating multi-cloud lock-in, controlling cloud spend, and accelerating application delivery.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/I8Qh-TafMvQ?si=1A2-kmq6mV-S-03c" title="Murli Thirumale | KubeCon CloudNativeCon EU 2023" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Red Hat OpenShift Platform Plus - Overview | `Red Hat OpenShift`"
|
||||
??? note "🎬 Red Hat OpenShift Platform Plus - Overview"
|
||||
!!! info "Architectural Summary"
|
||||
Red Hat OpenShift Platform Plus provides an enterprise-grade, multi-cluster Kubernetes foundation integrating advanced cluster management, declarative DevSecOps security, and a global container registry. In a 2026 cloud-native landscape, it delivers a unified platform engineering control plane that simplifies multi-cloud operations while enforcing consistent governance and security policies from core to edge. This suite accelerates secure software delivery pipelines by embedding automated compliance and threat protection directly into the application lifecycle.
|
||||
|
||||
@@ -153,7 +65,57 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Building a developer platform? Ask these questions. | `HashiCorp Stack (Terraform, Vault, Consul, Boundary)`"
|
||||
## Platform Engineering
|
||||
|
||||
??? note "🎬 What is Platform Engineering and how it fits into DevOps and Cloud world"
|
||||
!!! info "Architectural Summary"
|
||||
This video details the evolution of cloud operations into Platform Engineering, focusing on the architecture and implementation of Internal Developer Platforms (IDPs) to mitigate developer cognitive load. By establishing standardized 'golden paths' through Infrastructure as Code (IaC) and self-service APIs, organizations can balance developer autonomy with rigorous governance, security, and compliance. This paradigm shift optimizes resource provisioning and modernizes DevOps workflows for highly scalable, cloud-native environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/ghzsBm8vOms" title="What is Platform Engineering and how it fits into DevOps and Cloud world" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Ruby on Rails
|
||||
|
||||
??? note "🎬 David Heinemeier Hansson: Microservices vs. Monolith"
|
||||
!!! info "Architectural Summary"
|
||||
In this discussion, David Heinemeier Hansson critiques the dogmatic adoption of microservices, highlighting how they introduce substantial operational complexity, network latency, and cognitive load compared to a well-structured monolith. He champions the 'Majestic Monolith' as a pattern that maximizes developer velocity and reduces organizational overhead by keeping the deployment domain unified. For modern cloud-native architectures, this perspective serves as a crucial counterweight to microservice fatigue, driving the industry toward highly-optimized modular monoliths that simplify infrastructure and cut cloud spend.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/rkXGSLf-rVQ?si=Ho8Zzxbrecn7Yncb" title="David Heinemeier Hansson: Microservices vs. Monolith" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Ruby on Rails Hotwire
|
||||
|
||||
??? note "🎬 The creator of Rails on JavaScript FE vs. Classic Server-side Rendering"
|
||||
!!! info "Architectural Summary"
|
||||
David Heinemeier Hansson critiques the complexity of modern Single Page Application (SPA) architectures, advocating instead for the 'Majestic Monolith' and HTML-over-the-wire (Hotwire) to keep application logic unified on the server. In a 2026 cloud-native context, this paradigm challenges the overhead of decoupled micro-frontends by proving that server-side rendering (SSR) combined with lightweight HTML streaming dramatically simplifies deployment pipelines, reduces client-side resource consumption, and lowers data egress costs. This architectural approach optimizes for operational efficiency, enabling smaller engineering teams to build highly responsive, production-grade applications without managing complex API contract synchronizations.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/IFUPG9KCJ4E?si=KMEXeVlcKTp87-Ja" title="The creator of Rails on JavaScript FE vs. Classic Server-side Rendering" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Portworx
|
||||
|
||||
??? note "🎬 Murli Thirumale | KubeCon CloudNativeCon EU 2023"
|
||||
!!! info "Architectural Summary"
|
||||
This discussion outlines how enterprise platform engineering teams leverage Portworx to deliver automated, resilient Database-as-a-Service (DBaaS) capabilities directly on Kubernetes. By abstracting multi-cloud storage, disaster recovery, and data security, it highlights architectural strategies essential for scaling stateful cloud-native workloads. For a 2026 cloud-native landscape, these unified data management planes are critical for mitigating multi-cloud lock-in, controlling cloud spend, and accelerating application delivery.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/I8Qh-TafMvQ?si=1A2-kmq6mV-S-03c" title="Murli Thirumale | KubeCon CloudNativeCon EU 2023" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## HashiCorp Stack Terraform Vault Consul Boundary
|
||||
|
||||
??? note "🎬 Building a developer platform? Ask these questions."
|
||||
!!! info "Architectural Summary"
|
||||
This session details how to build secure, scalable developer platforms by defining 'golden paths' using HashiCorp's suite of automation tools, including Terraform, Vault, Consul, and Boundary. It provides a strategic framework for resolving key platform engineering challenges such as Day 2 operations, infrastructure dependency mapping, secure access control, and seamless local-to-remote environment transitions. By abstracting cloud complexity, the session demonstrates how to deliver high-velocity self-service capabilities to development teams while ensuring governance and security compliance.
|
||||
|
||||
@@ -163,7 +125,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 ¿De verdad son necesarios los microservicios? | `Modular Monoliths`"
|
||||
## Modular Monoliths
|
||||
|
||||
??? note "🎬 ¿De verdad son necesarios los microservicios? [SPANISH CONTENT]"
|
||||
!!! info "Architectural Summary"
|
||||
This video critically evaluates the over-engineering of distributed systems, examining whether the operational overhead, network latency, and complexity of microservices are justified for most projects. In a 2026 cloud-native landscape focusing heavily on cost optimization and developer velocity, it advocates for a pragmatic, domain-driven approach, highlighting modular monoliths as a powerful alternative before prematurely adopting microservices.
|
||||
|
||||
@@ -173,7 +137,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Branching Strategies Explained | `Git`"
|
||||
## Git
|
||||
|
||||
??? note "🎬 Branching Strategies Explained"
|
||||
!!! info "Architectural Summary"
|
||||
This guide provides a comprehensive architectural evaluation of various Git branching strategies, including Trunk-Based Development, Feature Branches, Git Flow, and Environment Branches, weighing their impacts on delivery velocity. For a 2026 cloud-native landscape, it emphasizes how moving toward trunk-based development or short-lived feature branches is essential for optimizing continuous integration (CI) pipelines, minimizing integration debt, and enabling rapid, automated deployments to Kubernetes and cloud environments.
|
||||
|
||||
@@ -183,17 +149,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Panel: Azure DevOps vs. GitHub Actions | `Azure DevOps & GitHub Actions`"
|
||||
!!! info "Architectural Summary"
|
||||
This panel discussion provides a comprehensive architectural comparison between Azure DevOps and GitHub Actions, focusing on enterprise governance, extensibility, and CI/CD workflow migration strategies. It outlines decision frameworks for hybrid platform setups, highlighting how organizations can leverage GitHub Actions for modern cloud-native developer velocity while maintaining Azure DevOps for mature project management, test plans, and strict regulatory compliance. Essential for cloud architects planning long-term toolchain evolution, this session clarifies integration pathways and future-proof migration strategies.
|
||||
## Distributed Systems Strategy
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/8g4qLzkpjeE?si=xcfl3ugsMGZ8Kthg" title="Panel: Azure DevOps vs. GitHub Actions" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Elon Musk talks Twitter, Tesla and how his brain works — live at TED2022 | `Distributed Systems Strategy`"
|
||||
??? note "🎬 Elon Musk talks Twitter, Tesla and how his brain works — live at TED2022"
|
||||
!!! info "Architectural Summary"
|
||||
This systemic interview highlights architectural principles around open-sourcing core algorithms to enforce platform transparency and trust, directly paralleling modern GitOps, policy-as-code, and zero-trust verification frameworks in Cloud Native environments. Additionally, the insights on extreme manufacturing automation offer critical design lessons for 2026 edge computing, emphasizing the necessity of closed-loop automation, event-driven orchestration, and radical simplification of complex distributed infrastructures.
|
||||
|
||||
@@ -203,7 +161,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 The Brutal Truth Behind Tech Layoffs | `FinOps`"
|
||||
## FinOps
|
||||
|
||||
??? note "🎬 The Brutal Truth Behind Tech Layoffs"
|
||||
!!! info "Architectural Summary"
|
||||
This analysis dissects the macroeconomic shift from hyper-growth talent hoarding to hyper-efficiency, highlighting the systemic collapse of bloated engineering teams in favor of lean, automated operations. For a 2026 cloud-native landscape, this underscores the critical role of platform engineering and robust FinOps architectures designed to maximize resource utilization while minimizing human-in-the-loop operational overhead. Architects must leverage these insights to build self-healing, highly automated platforms that successfully decouple organizational scale from headcount.
|
||||
|
||||
@@ -213,7 +173,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 GitOps Guide to the Galaxy | `GitOps`"
|
||||
## GitOps
|
||||
|
||||
??? note "🎬 GitOps Guide to the Galaxy"
|
||||
!!! info "Architectural Summary"
|
||||
Every other Thursday at 3pm ET hosts Hilliary Lipsig and Jonathan Rickard dive into everything in the GitOps universe, from solutions to common problems in end-to-end CICD pipelines, to creating Git workflows. This series explores how GitOps enhances modern application delivery and discusses the latest news around best practices and Cloud Native architecture.
|
||||
|
||||
@@ -223,7 +185,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 GitOps Guide to the Galaxy: Hosted Control Planes (HyperShift) | `Hosted Control Planes`"
|
||||
## Hosted Control Planes
|
||||
|
||||
??? note "🎬 GitOps Guide to the Galaxy: Hosted Control Planes (HyperShift)"
|
||||
!!! info "Architectural Summary"
|
||||
This session from the GitOps Guide to the Galaxy deconstructs the architecture of Hosted Control Planes (HCP), also known as HyperShift. It explores how HCP decouples the Kubernetes control plane from worker nodes, hosting it as a scalable workload on a management cluster to drastically reduce operational overhead, improve provisioning speed, and optimize resource utilization. For 2026 platform engineering, mastering this pattern is essential for managing large-scale, multi-tenant Kubernetes fleets with high-density efficiency and strong isolation.
|
||||
|
||||
@@ -233,7 +197,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Building Secure, Well‑Architected Azure Workloads with Azure Verified Modules and GitHub Copilot | `Azure Verified Modules (AVM)`"
|
||||
## Azure Verified Modules AVM
|
||||
|
||||
??? note "🎬 Building Secure, Well‑Architected Azure Workloads with Azure Verified Modules and GitHub Copilot"
|
||||
!!! info "Architectural Summary"
|
||||
Azure Verified Modules (AVM) is the official Microsoft infrastructure-as-code module library for both Bicep and Terraform. This session explores how AVM standardizes deployments according to the Azure Well-Architected Framework by default, shipping with high-impact security defaults like zone redundancy and disabled public IPs. It introduces Spec-Driven Development with GitHub Copilot using the "Spec Kit" (an 8-step framework from constitution to implementation). By turning non-deterministic AI prompts into reliable, repeatable builds, architects can leverage AI as a trusted foundation for secure and compliant Azure workload orchestration.
|
||||
|
||||
@@ -243,7 +209,9 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Fran Heeran, Red Hat | Red Hat Summit 2026 | `OpenShift`"
|
||||
## OpenShift
|
||||
|
||||
??? note "🎬 Fran Heeran, Red Hat | Red Hat Summit 2026"
|
||||
!!! info "Architectural Summary"
|
||||
In this Red Hat Summit 2026 interview, Fran Heeran details how telecommunications providers are shifting from heavily siloed infrastructure to unified cloud-native architectures. By leveraging OpenShift Virtualization, telcos can centrally manage both legacy virtual machines and modern containers across core networks and the far edge, accelerating deployments up to 50%. This unified architecture additionally enables sovereign cloud offerings and closed-loop network automation by feeding AI outputs directly into Ansible-driven remediation workflows.
|
||||
|
||||
@@ -253,76 +221,14 @@ Welcome to the **Agentic Video Hub**. This section presents a logical, architect
|
||||
|
||||
</center>
|
||||
|
||||
## Fundamentals and Documentaries
|
||||
??? note "🎬 Kubernetes: The Documentary [PART 1] | `Kubernetes`"
|
||||
## VS Code
|
||||
|
||||
??? note "🎬 Remote VS Code with Dev Tunnels: access the editor from your browser [SPANISH CONTENT]"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary chronicles the origin of Kubernetes from Google's internal cluster managers Borg and Omega, highlighting the pivotal architectural transition from virtual machines to containerized orchestration. Understanding this evolution is critical for modern cloud-native architects, as it reveals the foundational design patterns—such as the reconciliation loop, declarative APIs, and decoupled control planes—that continue to govern state-of-the-art distributed systems and platform engineering.
|
||||
In this tutorial, Gisela Torres explains the architecture and application of VS Code Dev Tunnels to enable secure remote access to local development environments. Dev Tunnels establish a secure, encrypted connection to VS Code without requiring complex VPNs or firewall modifications, allowing developers to connect from any web browser or secondary editor instance. For 2026 developer productivity, this simplifies remote workspace orchestration and collaborative debugging in cloud-native platforms. [SPANISH CONTENT]
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/BE77h7dmoQU" title="Kubernetes: The Documentary [PART 1]" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes: The Documentary [PART 2] | `Kubernetes`"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary details the pivotal technical evolution and open governance model that led Kubernetes to win the container orchestration wars over competitors like Docker Swarm and Mesos. For a 2026 Cloud Native context, it underscores the enduring value of design principles like declarative APIs, reconciliation control loops, and pluggable interfaces (CNI, CRI, CSI) that define modern platform engineering. Understanding these foundational decisions allows architects to better design scalable, vendor-neutral control planes for complex multi-cloud environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/318elIq37PE" title="Kubernetes: The Documentary [PART 2]" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Jenkins Tutorials | `Jenkins`"
|
||||
!!! info "Architectural Summary"
|
||||
This comprehensive video series details core Jenkins CI/CD automation techniques, including Pipeline-as-Code implementations and system management best practices. In a 2026 cloud-native context, mastering Jenkins remains critical for orchestrating complex build pipelines, bridging the gap between legacy infrastructure and modern Kubernetes deployment targets. The tutorials provide foundational architectural patterns for establishing scalable, automated, and reproducible continuous integration workflows across distributed enterprise environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?si=GBJtqv36O8bslj9z&list=PLvBBnHmZuNQJeznYL2F-MpZYBUeLIXYEe" title="Jenkins Tutorials" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Infrastructure as Code
|
||||
??? note "🎬 Standardizing infrastructure automation with Terraform Enterprise | `Terraform Enterprise`"
|
||||
!!! info "Architectural Summary"
|
||||
This presentation details AXA Group's cloud migration strategy (ATLAS) utilizing Terraform Enterprise as the cornerstone of their multi-cloud and private IaaS migration factory. It highlights how a highly regulated financial enterprise standardizes infrastructure-as-code (IaC) practices across multiple global subsidiaries to accelerate cloud adoption while maintaining governance. For a 2026 cloud-native landscape, this case study provides key insights into scaling self-service provisioning, implementing policy-as-code, and automating multi-tenant enterprise architectures at massive scale.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/PxyyY7TsCqs?si=kzCRojDteESqork1" title="Standardizing infrastructure automation with Terraform Enterprise" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 NetBox Zero To Hero | `NetBox`"
|
||||
!!! info "Architectural Summary"
|
||||
NetBox serves as the foundational source of truth for modern network automation by integrating IP Address Management (IPAM) and Data Center Infrastructure Management (DCIM) into a unified database. In a 2026 Cloud Native ecosystem, it empowers Infrastructure as Code (IaC) pipelines to dynamically query and enforce intended network state via robust APIs, effectively eliminating configuration drift. This architectural approach bridges the gap between physical hardware tracking and automated, declarative network orchestration across complex hybrid environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?si=fJvBV63-mjQ6S-Ht&list=PL7sEPiUbBLo_iTds-NV-9Tu05Gg2Aj8N7" title="NetBox Zero To Hero" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Observability and Monitoring
|
||||
??? note "🎬 Prometheus: The Documentary | `Prometheus`"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary explores the architectural genesis of Prometheus at SoundCloud, detailing how the shift to microservices necessitated a fundamental pivot from host-based monitoring to a pull-based, multi-dimensional metric data model. In a 2026 cloud-native context, understanding these foundational design decisions—specifically the trade-offs of localized TSDB storage, HTTP pull mechanics, and PromQL—is vital for architecting self-healing, high-cardinality observability pipelines across distributed, edge, and hybrid-cloud environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/rT4fJNbfe14" title="Prometheus: The Documentary" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Security and Compliance
|
||||
??? note "🎬 What is DevSecOps? DevSecOps explained in 8 Mins | `DevSecOps`"
|
||||
!!! info "Architectural Summary"
|
||||
This video details the transition from traditional, late-stage security audits to DevSecOps, explaining how shifting security left eliminates deployment bottlenecks in fast-paced delivery pipelines. It covers the automation of static analysis (SAST), software composition analysis (SCA), and container scanning directly within CI/CD workflows. In a 2026 cloud-native context, this paradigm is critical for securing ephemeral microservices and maintaining continuous compliance without sacrificing deployment velocity.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/nrhxNNH5lt0?si=U5h1mbkbF6ZEOvlj" title="What is DevSecOps? DevSecOps explained in 8 Mins" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/niuJpAKyb7c" title="Remote VS Code with Dev Tunnels: access the editor from your browser" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
@@ -0,0 +1,71 @@
|
||||
# 🎥 DevOps, IaC, and SRE
|
||||
|
||||
Welcome to the **DevOps, IaC, and SRE** section of the V2 Video Hub. Explore curated high-density videos with architectural summaries.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Prometheus](#prometheus)
|
||||
2. [Terraform Enterprise](#terraform-enterprise)
|
||||
3. [Azure DevOps and GitHub Actions](#azure-devops-and-github-actions)
|
||||
4. [DevSecOps](#devsecops)
|
||||
5. [NetBox](#netbox)
|
||||
|
||||
## Prometheus
|
||||
|
||||
??? note "🎬 Prometheus: The Documentary"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary explores the architectural genesis of Prometheus at SoundCloud, detailing how the shift to microservices necessitated a fundamental pivot from host-based monitoring to a pull-based, multi-dimensional metric data model. In a 2026 cloud-native context, understanding these foundational design decisions—specifically the trade-offs of localized TSDB storage, HTTP pull mechanics, and PromQL—is vital for architecting self-healing, high-cardinality observability pipelines across distributed, edge, and hybrid-cloud environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/rT4fJNbfe14" title="Prometheus: The Documentary" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Terraform Enterprise
|
||||
|
||||
??? note "🎬 Standardizing infrastructure automation with Terraform Enterprise"
|
||||
!!! info "Architectural Summary"
|
||||
This presentation details AXA Group's cloud migration strategy (ATLAS) utilizing Terraform Enterprise as the cornerstone of their multi-cloud and private IaaS migration factory. It highlights how a highly regulated financial enterprise standardizes infrastructure-as-code (IaC) practices across multiple global subsidiaries to accelerate cloud adoption while maintaining governance. For a 2026 cloud-native landscape, this case study provides key insights into scaling self-service provisioning, implementing policy-as-code, and automating multi-tenant enterprise architectures at massive scale.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/PxyyY7TsCqs?si=kzCRojDteESqork1" title="Standardizing infrastructure automation with Terraform Enterprise" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Azure DevOps and GitHub Actions
|
||||
|
||||
??? note "🎬 Panel: Azure DevOps vs. GitHub Actions"
|
||||
!!! info "Architectural Summary"
|
||||
This panel discussion provides a comprehensive architectural comparison between Azure DevOps and GitHub Actions, focusing on enterprise governance, extensibility, and CI/CD workflow migration strategies. It outlines decision frameworks for hybrid platform setups, highlighting how organizations can leverage GitHub Actions for modern cloud-native developer velocity while maintaining Azure DevOps for mature project management, test plans, and strict regulatory compliance. Essential for cloud architects planning long-term toolchain evolution, this session clarifies integration pathways and future-proof migration strategies.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/8g4qLzkpjeE?si=xcfl3ugsMGZ8Kthg" title="Panel: Azure DevOps vs. GitHub Actions" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## DevSecOps
|
||||
|
||||
??? note "🎬 What is DevSecOps? DevSecOps explained in 8 Mins"
|
||||
!!! info "Architectural Summary"
|
||||
This video details the transition from traditional, late-stage security audits to DevSecOps, explaining how shifting security left eliminates deployment bottlenecks in fast-paced delivery pipelines. It covers the automation of static analysis (SAST), software composition analysis (SCA), and container scanning directly within CI/CD workflows. In a 2026 cloud-native context, this paradigm is critical for securing ephemeral microservices and maintaining continuous compliance without sacrificing deployment velocity.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/nrhxNNH5lt0?si=U5h1mbkbF6ZEOvlj" title="What is DevSecOps? DevSecOps explained in 8 Mins" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## NetBox
|
||||
|
||||
??? note "🎬 NetBox Zero To Hero"
|
||||
!!! info "Architectural Summary"
|
||||
NetBox serves as the foundational source of truth for modern network automation by integrating IP Address Management (IPAM) and Data Center Infrastructure Management (DCIM) into a unified database. In a 2026 Cloud Native ecosystem, it empowers Infrastructure as Code (IaC) pipelines to dynamically query and enforce intended network state via robust APIs, effectively eliminating configuration drift. This architectural approach bridges the gap between physical hardware tracking and automated, declarative network orchestration across complex hybrid environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?si=fJvBV63-mjQ6S-Ht&list=PL7sEPiUbBLo_iTds-NV-9Tu05Gg2Aj8N7" title="NetBox Zero To Hero" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
@@ -0,0 +1,155 @@
|
||||
# 🎥 Fundamentals
|
||||
|
||||
Welcome to the **Fundamentals** section of the V2 Video Hub. Explore curated high-density videos with architectural summaries.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Kubernetes](#kubernetes)
|
||||
2. [Jenkins](#jenkins)
|
||||
3. [Spring Framework](#spring-framework)
|
||||
|
||||
## Kubernetes
|
||||
|
||||
??? note "🎬 Kubernetes: The Documentary [PART 1]"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary chronicles the origin of Kubernetes from Google's internal cluster managers Borg and Omega, highlighting the pivotal architectural transition from virtual machines to containerized orchestration. Understanding this evolution is critical for modern cloud-native architects, as it reveals the foundational design patterns—such as the reconciliation loop, declarative APIs, and decoupled control planes—that continue to govern state-of-the-art distributed systems and platform engineering.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/BE77h7dmoQU" title="Kubernetes: The Documentary [PART 1]" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes: The Documentary [PART 2]"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary details the pivotal technical evolution and open governance model that led Kubernetes to win the container orchestration wars over competitors like Docker Swarm and Mesos. For a 2026 Cloud Native context, it underscores the enduring value of design principles like declarative APIs, reconciliation control loops, and pluggable interfaces (CNI, CRI, CSI) that define modern platform engineering. Understanding these foundational decisions allows architects to better design scalable, vendor-neutral control planes for complex multi-cloud environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/318elIq37PE" title="Kubernetes: The Documentary [PART 2]" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation for 2026-02-17"
|
||||
!!! info "Architectural Summary"
|
||||
This orientation session provides an architectural overview of the Kubernetes upstream community, detailing the organizational hierarchy of Special Interest Groups (SIGs) and Working Groups. It guides new contributors through the technical contribution pipeline, highlighting Git workflows, Prow-based automation for PR testing and labeling, and the governance frameworks that sustain the core platform. Understanding these mechanisms is crucial for cloud-native engineers aiming to effectively drive features and maintenance within the ecosystem's foundational orchestrator.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/F3al0HP0MNo" title="Kubernetes New Contributor Orientation for 2026-02-17" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation for 2026-03-17"
|
||||
!!! info "Architectural Summary"
|
||||
This onboarding guide details the governance, contribution lifecycle, and development workflows of the Kubernetes ecosystem, highlighting the role of Special Interest Groups (SIGs) and the Prow-based CI/CD automation pipeline. It offers essential technical instruction for configuring local development environments, interacting with community repositories, and adhering to testing standards required for upstream cloud-native contributions.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/gkcZEXqkmZM" title="Kubernetes New Contributor Orientation for 2026-03-17" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This orientation session provides an essential entry point for developers looking to contribute to the Kubernetes ecosystem, detailing the organizational dynamics of Special Interest Groups (SIGs) and the architectural workflow of the project. It covers the technical mechanics of the Kubernetes contribution pipeline, including Git workflows, Prow-based automated testing, and the lifecycle of Kubernetes Enhancement Proposals (KEPs) to ensure high-quality, scalable code contributions.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/B_8vYxurU4k" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This onboarding session outlines the governance framework of Kubernetes Special Interest Groups (SIGs) and the technical workflows required to contribute to the ecosystem. It provides critical guidance on navigating community repositories, leveraging automated testing infrastructure (Prow), and adhering to code review standards essential for scaling cloud-native contributions.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/Frje5KfNrxE" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This orientation session provides a comprehensive guide for aspiring Kubernetes contributors, detailing the community's organizational structure across Special Interest Groups (SIGs) and Working Groups. It covers essential technical workflows, including GitHub PR submission pipelines, Prow-based automation testing, and the critical role of OWNERS files in codebase governance, establishing a clear pathway for developers to participate in cloud-native open-source development.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/V3Sq0Fgy3ds" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This orientation provides a comprehensive guide to navigating the Kubernetes contributor ecosystem, detailing the organizational structure of Special Interest Groups (SIGs), community workflows, and the automation tools like Prow and Tide that govern the PR lifecycle. Understanding these foundational processes is essential for platform architects and engineers aiming to successfully upstream patches, custom controllers, or performance optimizations to the core Kubernetes codebase in 2026.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/3B41u33BS2E" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This onboarding session guides developers through the foundational governance, structure, and technical workflows required to contribute to the Kubernetes ecosystem. It details the organizational architecture of Special Interest Groups (SIGs) and demystifies the GitHub-based development flow, highlighting automated CI/CD tooling like Prow for PR testing and triage. It provides a strategic entry point for engineers looking to influence and maintain core cloud-native orchestration systems.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/l2HpdgRFtN0" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This onboarding session details the essential governance, codebase organization, and automated release mechanics of the Kubernetes project, guiding new engineers through Special Interest Groups (SIGs) and the Prow-based ChatOps CI/CD workflow. It delivers a structured pathway for landing code and documentation contributions, establishing the foundational open-source engineering practices required to maintain and scale modern cloud-native infrastructure.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/36aGHlsxlow" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This session details the technical governance, repository structure, and automated testing workflows required for contributing to the Kubernetes ecosystem. It covers the SIG (Special Interest Group) organizational framework, the Prow-driven automation pipeline for pull requests, and the mechanics of OWNERS files, enabling contributors to effectively navigate the code review and release processes critical to maintaining cloud-native infrastructure.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/XAOqUU5Xh1c" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
??? note "🎬 Kubernetes New Contributor Orientation"
|
||||
!!! info "Architectural Summary"
|
||||
This orientation outlines the governance, SIG (Special Interest Group) structure, and contribution pipelines crucial for participating in the development of the Kubernetes ecosystem. It details the technical workflow of submitting contributions, including navigating the repository layout, adhering to OWNERS files guidelines, and leveraging Prow-based automated testing. Mastering these processes empowers cloud native architects in 2026 to successfully upstream optimizations, maintain enterprise forks, and directly influence upstream API standards.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/J7R-T9Y1x3Y" title="Kubernetes New Contributor Orientation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Jenkins
|
||||
|
||||
??? note "🎬 Jenkins Tutorials"
|
||||
!!! info "Architectural Summary"
|
||||
This comprehensive video series details core Jenkins CI/CD automation techniques, including Pipeline-as-Code implementations and system management best practices. In a 2026 cloud-native context, mastering Jenkins remains critical for orchestrating complex build pipelines, bridging the gap between legacy infrastructure and modern Kubernetes deployment targets. The tutorials provide foundational architectural patterns for establishing scalable, automated, and reproducible continuous integration workflows across distributed enterprise environments.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/videoseries?si=GBJtqv36O8bslj9z&list=PLvBBnHmZuNQJeznYL2F-MpZYBUeLIXYEe" title="Jenkins Tutorials" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
|
||||
## Spring Framework
|
||||
|
||||
??? note "🎬 How a Group of Developers Took Back Control from Enterprise Java | Spring: The Documentary"
|
||||
!!! info "Architectural Summary"
|
||||
This documentary traces the architectural transition from heavyweight, monolithic Java EE application servers to the lightweight, dependency-injection paradigm of the Spring Framework. For a 2026 Cloud Architect, it provides essential historical context on how decoupling business logic from infrastructure paved the way for modern microservices and containerized environments. Understanding this evolution is critical for evaluating the trade-offs between complex enterprise standards and agile, developer-centric frameworks in cloud-native platforms.
|
||||
|
||||
<center markdown="1">
|
||||
|
||||
<iframe width="720" height="405" src="https://www.youtube.com/embed/0Gb1z-2SjHY" title="How a Group of Developers Took Back Control from Enterprise Java | Spring: The Documentary" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen loading="lazy" style="border: 1px solid var(--md-typeset-table-color); border-radius: 8px;"></iframe>
|
||||
|
||||
</center>
|
||||
@@ -0,0 +1,9 @@
|
||||
# 🎥 Agentic Video Hub
|
||||
|
||||
Welcome to the **Nubenetes Elite Video Hub**. Discover highly-curated architectural video resources organized into logical learning paths:
|
||||
|
||||
## Learning Dimensions
|
||||
- 🤖 [**AI Agents and MCP**](./ai-agents.md) — Dive into agentic architectures, tool integration, and Model Context Protocol setups.
|
||||
- 🛠️ [**DevOps, IaC, and SRE**](./devops-iac.md) — Platform engineering, infrastructure automation with Terraform, SRE, and compliance workflows utilizing AI assistants.
|
||||
- ☁️ [**Cloud Native Core**](./cloud-native.md) — Architectural strategies, Kubernetes operations, networking, and MLOps platforms.
|
||||
- 🏁 [**Fundamentals**](./fundamentals.md) — Documentaries, foundational cloud native concepts, and core Strategy tutorials.
|
||||
+7
-2
@@ -74,7 +74,7 @@ extra:
|
||||
extra_css:
|
||||
- https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap
|
||||
- static/extra.css
|
||||
- static/v2_elite.css
|
||||
- static/v2_elite.css?v=2.3.42
|
||||
|
||||
markdown_extensions:
|
||||
- admonition
|
||||
@@ -98,7 +98,12 @@ markdown_extensions:
|
||||
nav:
|
||||
- "🔙 Back to V1 (Exhaustive)": https://nubenetes.com/v1/
|
||||
- "The 2026 Vision": index.md
|
||||
- "Agentic Video Hub": videos.md
|
||||
- "Agentic Video Hub":
|
||||
- videos/index.md
|
||||
- "AI Agents and MCP": videos/ai-agents.md
|
||||
- "DevOps, IaC, and SRE": videos/devops-iac.md
|
||||
- "Cloud Native Core": videos/cloud-native.md
|
||||
- "Fundamentals": videos/fundamentals.md
|
||||
- "AI":
|
||||
- "AI Agents MCP": ai-agents-mcp.md
|
||||
- "AI": ai.md
|
||||
|
||||
Reference in New Issue
Block a user