Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
98bfd93510 | ||
|
|
24488e0590 | ||
|
|
fb6bb126fe | ||
|
|
7a88ec5d3e | ||
|
|
1455ab2563 | ||
|
|
24faee332b | ||
|
|
e539b925a1 | ||
|
|
39f5405e49 | ||
|
|
5e80465f27 | ||
|
|
ba18a35fb6 | ||
|
|
1b44fa59e0 | ||
|
|
ae47517fdb | ||
|
|
d0d9106104 | ||
|
|
71499413d0 | ||
|
|
bcc919b76f | ||
|
|
34f72b8668 | ||
|
|
8f3632bc37 | ||
|
|
02e2bef79a | ||
|
|
39410189b7 | ||
|
|
d46c0c9568 | ||
|
|
9bf6f5f350 | ||
|
|
af2c41e0db | ||
|
|
21b7679b2e | ||
|
|
e5a92baba8 | ||
|
|
7dadb962ab | ||
|
|
7b254b8be8 | ||
|
|
86c6446a4c | ||
|
|
bcbfcf8d84 | ||
|
|
8898ae1fc0 | ||
|
|
b1c86fb7a4 | ||
|
|
fe44a24a75 | ||
|
|
41d2bebe33 | ||
|
|
83747be240 | ||
|
|
26bb782f4f | ||
|
|
69b6f8dadb | ||
|
|
b25eb2fb3a | ||
|
|
c9de235d90 | ||
|
|
7a05d6b18b | ||
|
|
75338212cd | ||
|
|
b1941015e7 | ||
|
|
9868f4ccb2 | ||
|
|
550f0a1d7d | ||
|
|
b5f21e6126 | ||
|
|
050fa25fe6 | ||
|
|
8c54b10e7e | ||
|
|
9b9787acea | ||
|
|
4a5e8f0aad | ||
|
|
baa5e50169 | ||
|
|
9e93630751 | ||
|
|
19d64980ad | ||
|
|
cf339f0c46 | ||
|
|
20804b469f | ||
|
|
0035453719 | ||
|
|
515fa782cc | ||
|
|
954beb9cbc | ||
|
|
8c69b935ba | ||
|
|
1fd77d6c69 | ||
|
|
85a1cedf01 | ||
|
|
470059e59f | ||
|
|
b9cc8065c5 | ||
|
|
76318ccb83 | ||
|
|
a85ee3c23c | ||
|
|
33e364effe | ||
|
|
0d9eb6334e | ||
|
|
b21a36a901 | ||
|
|
06bf16334f | ||
|
|
c52a13ceba | ||
|
|
f87d9f08ae | ||
|
|
ab3dc09909 | ||
|
|
da92e17410 | ||
|
|
5508100fe2 | ||
|
|
2fb13e13d9 | ||
|
|
3d9f79bdb7 | ||
|
|
2e6a7e346a | ||
|
|
08d5a631be | ||
|
|
a96a637cb8 | ||
|
|
d3fd4335b7 | ||
|
|
b0aad96917 | ||
|
|
4d1decd737 | ||
|
|
091441b23e | ||
|
|
3c584b2530 | ||
|
|
d909ceb3d0 | ||
|
|
02050ac379 | ||
|
|
65f268aa3d | ||
|
|
b7d28ed3cb | ||
|
|
f1f9eb67aa | ||
|
|
5f27cd4bab | ||
|
|
78e76118d0 | ||
|
|
3115ec495b | ||
|
|
9afacf624d | ||
|
|
48883c79c3 | ||
|
|
f85ef5f02c | ||
|
|
e6d3e86126 | ||
|
|
1374c01be1 | ||
|
|
2cd6838dc4 | ||
|
|
75d9b471d7 | ||
|
|
34a2bd4716 | ||
|
|
81e2ebb42c | ||
|
|
e2128accc3 | ||
|
|
9f54bb6faa | ||
|
|
9ef4cfee57 | ||
|
|
b063985b7c | ||
|
|
f7e0ad95de | ||
|
|
3f72d60f1a | ||
|
|
86c3f0b8a5 | ||
|
|
0f7158cd9b | ||
|
|
b93d1f3aee | ||
|
|
7963756c06 | ||
|
|
1a79dcadd2 | ||
|
|
517edd1eed | ||
|
|
e55cd597c2 | ||
|
|
5d5191cc1b | ||
|
|
64d5d4630c | ||
|
|
0c159ca3a6 | ||
|
|
68f4ab27b0 | ||
|
|
d9c55c83d7 | ||
|
|
1284f3f229 | ||
|
|
e958b70bd8 |
@@ -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 }}
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Restore Incremental Inventory Cache
|
||||
if: ${{ github.event.inputs.restore_cache == 'true' }}
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
|
||||
- name: Persist Incremental Inventory to Cache
|
||||
if: always()
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Restore Incremental Inventory Cache
|
||||
if: ${{ github.event.inputs.restore_cache == 'true' }}
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
@@ -57,18 +57,22 @@ jobs:
|
||||
PYTHONUNBUFFERED: "1"
|
||||
run: python -u -m src.v2_metadata
|
||||
|
||||
- name: Create Pull Request for Metadata Update
|
||||
uses: peter-evans/create-pull-request@v8
|
||||
with:
|
||||
branch: bot/v2-metadata-sync
|
||||
base: develop
|
||||
title: "V2 Data: GitHub Metadata Sync"
|
||||
commit-message: "chore: update inventory stars and licenses [skip ci]"
|
||||
labels: "v2-data, metadata-sync"
|
||||
- name: Commit and Push Metadata Updates
|
||||
run: |
|
||||
git config --global user.name "Nubenetes Bot"
|
||||
git config --global user.email "bot@nubenetes.com"
|
||||
git add data/inventory.yaml
|
||||
if git diff --staged --quiet; then
|
||||
echo "No changes in inventory.yaml to commit."
|
||||
else
|
||||
git commit -m "chore: update inventory stars and licenses [skip ci]"
|
||||
git pull origin develop --rebase
|
||||
git push origin develop
|
||||
fi
|
||||
|
||||
- name: Persist Incremental Inventory to Cache
|
||||
if: always()
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Restore Incremental Inventory Cache
|
||||
if: ${{ github.event.inputs.restore_cache == 'true' }}
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
@@ -59,18 +59,22 @@ jobs:
|
||||
PYTHONUNBUFFERED: "1"
|
||||
run: python -u -m src.v2_ai
|
||||
|
||||
- name: Create Pull Request for Inventory Update
|
||||
uses: peter-evans/create-pull-request@v8
|
||||
with:
|
||||
branch: bot/v2-ai-sync
|
||||
base: develop
|
||||
title: "V2 Data: AI Curator Sync"
|
||||
commit-message: "chore: update inventory AI analysis [skip ci]"
|
||||
labels: "v2-data, ai-curator"
|
||||
- name: Commit and Push AI Analysis Updates
|
||||
run: |
|
||||
git config --global user.name "Nubenetes Bot"
|
||||
git config --global user.email "bot@nubenetes.com"
|
||||
git add data/inventory.yaml
|
||||
if git diff --staged --quiet; then
|
||||
echo "No changes in AI analysis to commit."
|
||||
else
|
||||
git commit -m "chore: update inventory AI analysis [skip ci]"
|
||||
git pull origin develop --rebase
|
||||
git push origin develop
|
||||
fi
|
||||
|
||||
- name: Persist Incremental Inventory to Cache
|
||||
if: always()
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ 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:
|
||||
@@ -46,7 +48,7 @@ jobs:
|
||||
|
||||
- name: Restore Incremental Inventory Cache
|
||||
if: ${{ github.event.inputs.restore_cache == 'true' }}
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
@@ -72,23 +74,22 @@ jobs:
|
||||
export PYTHONPATH=$PYTHONPATH:.
|
||||
python src/v2_video_portal.py
|
||||
|
||||
- name: Create Pull Request for Video Hub Update
|
||||
uses: peter-evans/create-pull-request@v8
|
||||
with:
|
||||
branch: bot/v2-video-sync
|
||||
base: develop
|
||||
title: "V2 Content: Video Hub Enrichment Sync"
|
||||
commit-message: "docs: update Video Hub with high-fidelity metadata [skip ci]"
|
||||
labels: "v2-content, video-hub"
|
||||
body: |
|
||||
Automated update of the V2 Video Hub.
|
||||
- Robust metadata extraction (yt-dlp + transcripts)
|
||||
- AI-synthesized technical summaries
|
||||
- Format-compliant Markdown rendering
|
||||
- name: Commit and Push Video Hub Updates
|
||||
run: |
|
||||
git config --global user.name "Nubenetes Bot"
|
||||
git config --global user.email "bot@nubenetes.com"
|
||||
git add data/inventory.yaml v2-docs/videos/
|
||||
if git diff --staged --quiet; then
|
||||
echo "No automated changes to commit."
|
||||
else
|
||||
git commit -m "docs: update Video Hub with high-fidelity metadata [skip ci]"
|
||||
git pull origin develop --rebase
|
||||
git push origin develop
|
||||
fi
|
||||
|
||||
- name: Persist Incremental Inventory Cache
|
||||
if: always()
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
|
||||
- name: Restore Incremental Inventory Cache
|
||||
if: ${{ github.event.inputs.restore_cache == 'true' }}
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
@@ -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 }}
|
||||
@@ -82,43 +88,33 @@ jobs:
|
||||
python -m src.readme_updater
|
||||
python -m src.safety_readme
|
||||
|
||||
- name: Create Pull Request for V2 Elite Update
|
||||
id: cpr
|
||||
uses: peter-evans/create-pull-request@v8
|
||||
- name: Commit and Push V2 Elite Updates
|
||||
run: |
|
||||
git config --global user.name "Nubenetes Bot"
|
||||
git config --global user.email "bot@nubenetes.com"
|
||||
git add -A
|
||||
if git diff --staged --quiet; then
|
||||
echo "No automated changes to commit."
|
||||
else
|
||||
git commit -m "feat: sync V2 elite curated edition and README metrics [skip ci]"
|
||||
git pull origin develop --rebase
|
||||
git push origin develop
|
||||
fi
|
||||
|
||||
- name: Upload Architecture and Decision Logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
branch: bot/v2-elite-sync
|
||||
base: develop
|
||||
title: "V2 Elite: Agentic Optimization Sync (2026)"
|
||||
body-path: pr_description.md
|
||||
commit-message: "feat: sync V2 elite curated edition and README metrics [skip ci]"
|
||||
labels: "v2-elite, agentic-sync"
|
||||
|
||||
- name: Post Supplementary Architecture Audit (Comment)
|
||||
if: steps.cpr.outputs.pull-request-number != ''
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
PR_NUMBER: ${{ steps.cpr.outputs.pull-request-number }}
|
||||
run: |
|
||||
if [ -f v2_file_audit.md ]; then
|
||||
gh pr comment $PR_NUMBER --body-file v2_file_audit.md
|
||||
fi
|
||||
|
||||
- name: Post Elite Decision Matrix (Comment)
|
||||
if: steps.cpr.outputs.pull-request-number != ''
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
PR_NUMBER: ${{ steps.cpr.outputs.pull-request-number }}
|
||||
run: |
|
||||
if [ -f v2_decision_matrix.md ]; then
|
||||
split -b 60000 v2_decision_matrix.md matrix_part_
|
||||
for part in matrix_part_*; do
|
||||
gh pr comment $PR_NUMBER --body-file $part
|
||||
done
|
||||
fi
|
||||
name: v2-agentic-logs
|
||||
path: |
|
||||
v2_file_audit.md
|
||||
v2_decision_matrix.md
|
||||
v2_safety_report.md
|
||||
if-no-files-found: ignore
|
||||
|
||||
- name: Persist Incremental Inventory to Cache
|
||||
if: always()
|
||||
uses: actions/cache/save@v4
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
- name: Restore Incremental Inventory Cache (Mandate 22)
|
||||
if: ${{ github.event.inputs.restore_cache == 'true' }}
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: data/inventory.yaml
|
||||
key: inventory-v2-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -57,5 +57,6 @@ jobs:
|
||||
echo "No changes in README.md to commit."
|
||||
else
|
||||
git commit -m "docs: automated README metric synchronization [skip ci]"
|
||||
git pull origin develop --rebase
|
||||
git push origin develop
|
||||
fi
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
name: 06.1. GitHub Pages Deploy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build Dual Versions
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout master
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 1. Build V1 (Root)
|
||||
- name: Build V1 Edition
|
||||
run: mkdocs build -f mkdocs.yml -d site/
|
||||
|
||||
# 2. Build V2 (Subdirectory)
|
||||
- name: Build V2 Elite Edition
|
||||
run: mkdocs build -f v2-mkdocs.yml -d site/v2/
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v4
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: './site'
|
||||
|
||||
deploy:
|
||||
name: Deploy to GitHub Pages
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
name: 06.1. Final Portal Deploy
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
workflow_dispatch: {}
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: write
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages-stable"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build Dual Versions
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout master
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install mkdocs-material mkdocs-redirects mkdocs-minify-plugin pymdown-extensions
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 1. Build V1 to a temporary staging area
|
||||
- name: Build V1 Edition (Staging)
|
||||
run: mkdocs build -f mkdocs.yml -d site_v1_temp/
|
||||
|
||||
# 2. Deploy V1 to Root (SEO) and /v1/ (Fallback)
|
||||
- name: Deploy V1 to Root and Subdirectory
|
||||
run: |
|
||||
mkdir -p site/v1/
|
||||
cp -r site_v1_temp/* site/
|
||||
cp -r site_v1_temp/* site/v1/
|
||||
rm -rf site_v1_temp/
|
||||
|
||||
# 3. Build V2 Elite Edition (/v2/)
|
||||
- name: Build V2 Elite Edition
|
||||
run: mkdocs build -f v2-mkdocs.yml -d site/v2/
|
||||
|
||||
# 4. Inject Root Redirect to V2 - Human visitors land on V2 by default
|
||||
- name: Inject Root Redirect to V2
|
||||
run: |
|
||||
cat << 'EOF' > site/index.html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Nubenetes Redirect</title>
|
||||
<meta http-equiv="refresh" content="0; url=/v2/">
|
||||
</head>
|
||||
<body>
|
||||
<p>Redirecting to the V2 Elite Portal. <a href="/v2/">Click here</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v6
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v5
|
||||
with:
|
||||
path: './site'
|
||||
|
||||
deploy:
|
||||
name: Deploy to GitHub Pages
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v5
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
|
||||
@@ -5,6 +5,329 @@ 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.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
|
||||
- **Red Hat Summit 2026 Video**: Integrated the Red Hat Summit 2026 interview with Fran Heeran into the Video Hub, detailing the architectural shift of telecommunications providers to unified cloud-native networks using OpenShift Virtualization.
|
||||
|
||||
## [[2.3.7]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.7) - 2026-05-26
|
||||
|
||||
### Fixed
|
||||
- **GitHub Actions Version Hardening**: Restored and upgraded all 15 workflows to use verified, true latest stable major versions (v6/v5/v8) across the entire CI/CD pipeline, ensuring maximum stability and security.
|
||||
- **Deployment Workflow Reliability**: Resolved transient "Failed to download" infrastructure errors in the "06.1. Final Portal Deploy" workflow by aligning with official GitHub Action releases and latest stable tags.
|
||||
|
||||
## [[2.3.6]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.6) - 2026-05-26
|
||||
|
||||
### Changed
|
||||
- **Deployment Documentation Sync**: Updated `README.md` to reflect the new deployment workflow name ("06.1. Final Portal Deploy") and its stabilized trigger configuration.
|
||||
- **Workflow Stabilization**: Renamed the deployment workflow file to `06.deploy_final.yml` to resolve persistent GitHub trigger issues and ensure reliable production releases.
|
||||
|
||||
## [[2.3.5]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.5) - 2026-05-26
|
||||
|
||||
### Added
|
||||
- **Visual Branding Expansion**: Integrated the official **Playwright** YouTube channel into the visual branding mosaic in both V1 and V2 index pages.
|
||||
- **Visual Asset Integration**: Optimized and integrated the high-resolution logo for the Playwright channel.
|
||||
|
||||
## [[2.3.4]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.4) - 2026-05-25
|
||||
|
||||
### Removed
|
||||
- **Redundant SEO Mitigation Assets**: Deleted the custom `404.md` page in the V2 portal. Under the Hybrid SEO-First architecture, legacy root URLs are now valid (serving V1 content), making the specialized rescue page unnecessary.
|
||||
|
||||
## [[2.3.3]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.3) - 2026-05-25
|
||||
|
||||
### Fixed
|
||||
- **Navigation Loop**: Corrected the "Back to V1" link to point specifically to `https://nubenetes.com/v1/`. This avoids the automatic redirect at the domain root, allowing users to actually reach the exhaustive archive.
|
||||
|
||||
## [[2.3.2]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.2) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Hybrid Sync Standardization**: Unified navigation labels and URLs across `v2-mkdocs.yml` and `src/v2_optimizer.py`. The "Back to V1" link now consistently points to the domain root to leverage SEO-protected legacy paths.
|
||||
|
||||
## [[2.3.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.1) - 2026-05-25
|
||||
|
||||
### Fixed
|
||||
- **Deployment Resilience**: Resolved a recursive copy error in the GitHub Pages deployment workflow by implementing a temporary staging area for the V1 build process.
|
||||
|
||||
## [[2.3.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.3.0) - 2026-05-25
|
||||
|
||||
### Added
|
||||
- **Hybrid SEO-First Architecture**: Implemented a sophisticated dual-version deployment strategy. V1 is restored to the domain root (`/`) to preserve 6+ years of SEO authority and deep-links, while a root-level redirect guides human traffic to the modern V2 Elite Portal at `/v2/`.
|
||||
|
||||
## [[2.2.4]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.2.4) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Governance & Documentation Sync**: Performed a comprehensive update of `README.md`, `GEMINI.md`, and local session memory to reflect the new architectural standards (V2 at Root), workflow hardening (rebase resilience), and mandatory PR-based governance for production deployments.
|
||||
|
||||
## [[2.2.3]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.2.3) - 2026-05-25
|
||||
|
||||
### Fixed
|
||||
- **Redirect Collision Resolution**: Removed conflicting HTML redirects in the V2 portal that were blocking access to new Elite content with the same filenames as legacy pages.
|
||||
- **SEO Mitigation Refinement**: Shifted to a "Smart 404" only strategy for the root domain, ensuring that URLs like `kubernetes.html` serve the updated V2 content while missing legacy links are elegantly handled by the custom 404 page.
|
||||
|
||||
## [[2.2.2]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.2.2) - 2026-05-25
|
||||
|
||||
### Added
|
||||
- **SEO Mitigation (Smart 404)**: Implemented a custom 404 page in the V2 portal (`404.md`) to guide users from broken historical links to the new V1 archive location.
|
||||
- **HTML Redirects**: Integrated the `mkdocs-redirects` plugin and configured 301-style HTML redirects for the top 12 legacy URLs, preserving search engine authority and user experience during the root migration.
|
||||
|
||||
## [[2.2.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.2.1) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Default Landing Page (V2 at Root)**: Promoted the Nubenetes Elite Portal (V2) to the root of the domain (`https://nubenetes.com/`) to provide a modern, AI-curated default experience.
|
||||
- **V1 Archive Relocation**: Moved the exhaustive V1 archive to the `/v1/` subdirectory (`https://nubenetes.com/v1/`).
|
||||
- **Navigation Synchronization**: Updated all navigation links and announce banners across both versions to ensure seamless switching between the Elite Portal and the Exhaustive Archive.
|
||||
- **Workflow Realignment**: Reconfigured the GitHub Pages deployment pipeline to support the new directory structure while maintaining zero-downtime synchronization.
|
||||
|
||||
## [[2.2.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.2.0) - 2026-05-25
|
||||
|
||||
### Fixed
|
||||
- **Workflow Resilience (Race Conditions)**: Implemented a mandatory `git pull --rebase` strategy across all five automated workflows (Metadata, AI Curator, Video Hub, Publisher, and README Sync). This prevents "rejected push" errors by allowing concurrent bot executions to automatically integrate sibling commits before pushing back to the `develop` branch.
|
||||
|
||||
## [[2.1.9]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.9) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Visual Identity (Ultra-Visible "N" Favicon)**: Redesigned the favicon to follow the high-visibility patterns of X.com, GitHub, and LinkedIn. The new design features a massive, bold cyan "N" on a solid black background, maximizing clarity and brand recognition in browser tabs.
|
||||
- **Index Brand Restoration**: Restored the original "Gemini construction car" as the primary hero image in the V2 portal's header, maintaining the project's established visual identity while separating it from the functional favicon.
|
||||
|
||||
## [[2.1.8]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.8) - 2026-05-25
|
||||
|
||||
### Fixed
|
||||
- **Configuration Integrity**: Fixed a YAML syntax error in `mkdocs.yml` (corrupted trailing line) that was causing GitHub Pages deployment failures.
|
||||
|
||||
## [[2.1.7]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.7) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Visual Identity (Ultra-Visible Favicon)**: Replaced the complex favicon with an ultra-minimalist, high-contrast design (Cyan "N" on dark background) to ensure maximum visibility in browser tabs, following the design patterns of X, GitHub, and LinkedIn.
|
||||
- **Index Branding Restoration**: Reverted the header image on the V2 index page to the "Gemini construction car" (now standardized as `hero-car.png`) to maintain the project's established visual impact while keeping a separate, cleaner icon for navigation tabs.
|
||||
|
||||
## [[2.1.6]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.6) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Visual Identity (Custom Logo)**: Replaced the generic car icon with a custom-engineered minimalist logo ("Nubenetes Nano Logo"). The new design features a high-contrast Cyber Cloud vehicle with Kubernetes helm wheels, ensuring superior perception and brand recognition as a favicon.
|
||||
- **Asset Optimization**: Standardized the new logo as an SVG source and a 256x256 transparent PNG for cross-platform clarity.
|
||||
|
||||
## [[2.1.5]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.5) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
- **Automated Workflow Optimization**: Refactored V2 ecosystem workflows (Metadata, AI Curator, Video Hub, and Publisher) to utilize direct git push to the `develop` branch instead of creating redundant Pull Requests. This eliminates manual overhead and confusion while ensuring derived content is seamlessly synchronized using `[skip ci]` flags.
|
||||
- **Workflow Observability**: Integrated GitHub Artifacts for automated architecture audits and decision matrices, replacing redundant PR comments.
|
||||
|
||||
## [[2.1.4]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.4) - 2026-05-25
|
||||
|
||||
### Added
|
||||
- **Leading AI Channels Mosaic**: Expanded the visual branding mosaic in V1 and V2 portals to include the official YouTube channels for **Google Gemini**, **Google DeepMind**, **Anthropic**, **Microsoft Copilot**, **OpenAI**, and **Meta AI**.
|
||||
- **Visual Asset Integration**: Optimized and integrated high-resolution logos for the new AI channels to maintain high-density visual standards.
|
||||
|
||||
## [[2.1.3]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.3) - 2026-05-25
|
||||
|
||||
### Fixed
|
||||
- **Definitive AVM Video Correction**: Applied a surgical fix to the "Azure Verified Modules" video metadata in the V2 portal and inventory. Corrected the title and summary to accurately reflect the session's focus on Spec-Driven Development, the "Spec Kit" framework, and Well-Architected Azure workloads using GitHub Copilot.
|
||||
|
||||
## [[2.1.2]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.2) - 2026-05-25
|
||||
|
||||
### Added
|
||||
- **Visual Branding Expansion**: Integrated **ITOpsTalk** (Microsoft Azure) and **Google Cloud Tech** official channels into the visual branding mosaic in both V1 and V2 index pages.
|
||||
- **Azure Verified Modules (AVM) Integration**: Added the technical session on building secure Azure workloads using AVM and GitHub Copilot to the V2 Elite Video Hub. The summary highlights spec-driven development and the "Spec Kit" framework for reliable AI-assisted IaC.
|
||||
|
||||
## [[2.1.1]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.1) - 2026-05-25
|
||||
|
||||
### Added
|
||||
- **Stanford CS229 LLM Session**: Integrated the Stanford CS229 lecture on "Building Large Language Models" into the V2 Elite Video Hub. The architectural summary focuses on LLM orchestration, alignment (DPO/RLHF), and systems optimization for 2026 AI infrastructure.
|
||||
|
||||
## [[2.1.0]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.1.0) - 2026-05-25
|
||||
|
||||
### Added
|
||||
- **Dual-Logo Branding Header**: Integrated a new dual-logo header in the V2 portal, featuring the transparent Kubernetes logo alongside the modern Gemini construction car icon. The Gemini icon serves as a shortcut to the project's introduction page.
|
||||
|
||||
### Changed
|
||||
- **Visual Balance**: Resized visual assets to ensure architectural symmetry between the Kubernetes and Gemini logos in the portal's main entry point.
|
||||
|
||||
## [[2.0.9]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.0.9) - 2026-05-25
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -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).
|
||||
@@ -245,11 +249,14 @@ To maintain the integrity of the archive and ensure the AI agents operate correc
|
||||
|
||||
1. **Branch Hierarchy**:
|
||||
* `master`: Read-only for contributors/bots. Restricted to repository owner only.
|
||||
* `develop`: The only valid target for Pull Requests.
|
||||
2. **Pull Request Policy**:
|
||||
* AI agents MUST always target `develop`.
|
||||
* Manual contributions (human PRs) targeting `master` must be automatically or manually redirected to `develop`.
|
||||
3. **Owner-Only Merges**: Only the repository owner has the authority to merge `develop` into `master` after verifying the visual health dashboard and metrics.
|
||||
* `develop`: The only valid target for direct AI commits and Pull Requests.
|
||||
2. **Strict Pull Request Policy (No Manual Merges)**:
|
||||
* AI agents MUST always target `develop` for their work.
|
||||
* AI agents MUST NEVER perform manual CLI merges (e.g., `git merge develop`) into `master` or `main`.
|
||||
* To promote changes to `master`, AI agents MUST open a formal Pull Request from `develop` to `master` (e.g., using `gh pr create`) and **STOP**, waiting for the repository owner to review and merge via the GitHub UI. This ensures CI/CD workflows run correctly.
|
||||
3. **Owner-Only Merges & Tagging**:
|
||||
* Only the repository owner has the authority to merge `develop` into `master` after verifying the visual health dashboard and metrics.
|
||||
* Creation of version tags (`git tag`) MUST only occur AFTER the PR has been successfully merged into `master` by the owner.
|
||||
|
||||
## 📝 README Synchronization & Maintenance Protocols
|
||||
|
||||
@@ -357,16 +364,15 @@ The bot must rotate between profiles to avoid detection:
|
||||
- **Announce Banner**: Added a global announcement banner to V1 directing users to the V2 Elite Portal.
|
||||
- **Resilient Architectural Refinements (Phase 2)**:
|
||||
- **Fast-Track V2 Elite Builder**: Optimized the builder to run sequentially for maximum stability and simplicity, bypassing the overhead of distributed systems.
|
||||
- **Pip Caching**: Implemented `cache: pip` across all 5 workflows to drastically reduce startup times and compute minutes.
|
||||
- **Contribution Template (PR Guardian)**: Enforced strict GEMINI mandate compliance at the PR creation stage via `PULL_REQUEST_TEMPLATE.md`.
|
||||
- **Exponential Backoff Resilience**: Upgraded the `call_gemini_with_retry` engine with the `tenacity` library, allowing intelligent pausing (4s, 8s, 16s) to gracefully absorb 429 Rate Limits before triggering the ultimate exit code 42 Circuit Breaker.
|
||||
- **Ultra-Fast V2 Render Mode**: Optimized the `render-and-pr` stage of the V2 pipeline (`--render-only`) to implement an absolute short-circuit, completely bypassing redundant HTTP health checks, GitHub API metadata fetching, and AI agent evaluation loops. This leverages the pre-computed YAML inventory to assemble the portal instantaneously.
|
||||
- **Flash-First Architecture Transition (May 2026)**:
|
||||
- **Throughput Optimization**: Successfully transitioned to a Flash-First architecture, increasing Fast-Track batch sizes to 100 resources.
|
||||
- **Resilience Hardening**: Improved error handling to ensure Rate-Limit (429) events trigger the Circuit Breaker instead of silent loops, preserving API integrity.
|
||||
- **Efficiency Gains**: Reduced expected execution time for 10k+ resources by >60% through optimized RPM/TPM management and strategic safety delays.
|
||||
|
||||
|
||||
- **Workflow Hardening (Race Condition Fix)**: Implemented a mandatory `git pull --rebase` strategy across all automated bots to prevent concurrent push failures.
|
||||
- **Ultra-Visible Branding**: Standardized on a minimalist Cyan "N" favicon (`favicon-ultra.png`) and restored the original hero car imagery to the V2 index.
|
||||
- **O'Reilly Journey Builder**: Refined the O'Reilly-style technical hierarchy in the V2 portal to ensure a logical knowledge progression from foundations to advanced internals.
|
||||
- **Platinum SEO Mitigation**: Implemented a "Smart 404" rescue system and a **Hybrid SEO-First Architecture** that preserves V1 at the root while redirecting human traffic to the V2 Elite Portal.
|
||||
* **May 2026**: **Hybrid SEO-First Architecture Reversion**:
|
||||
- **V1 Restoration (Root)**: Restored the V1 Archive to the root (`/`) to protect historical deep-links and SEO authority.
|
||||
- **V2 Relocation (/v2/)**: Moved the Elite Portal to a dedicated subdirectory.
|
||||
- **Smart Root Redirect**: Implemented an automatic meta-refresh in the root `index.html` to guide human visitors to the V2 experience without breaking search engine indices.
|
||||
- **V1 Fallback (/v1/)**: Duplicated the archive to `/v1/` for explicit navigation.
|
||||
- **V2 Index Metrics Protocol**: The "Knowledge Architecture and AI Coverage Status" report in the V2 index MUST include a direct comparison between V1 and V2 inventory. This report MUST display: 1. **V1 Base Inventory** (Total resources in the master archive), 2. **V2 Elite Selection** (Count of candidates and the resulting density ratio), 3. **AI Enrichment Coverage**, and 4. **GitHub Metadata Coverage**. This ensures transparency in the knowledge distillation process.
|
||||
- **Redundancy-Free Branding**: To ensure professional UI density, the V2 Portal header MUST NOT repeat the "Nubenetes" brand. The title MUST follow the pattern: "Nubenetes Elite Portal (V2) | Awesome Kubernetes and Cloud".
|
||||
- **Decoupled Workflow Architecture**: The Agentic V2 ecosystem MUST utilize a decoupled micro-workflow structure (Health Monitor, Metadata Engine, AI Curator, and Publisher) to optimize compute quotas and minimize Gemini token consumption. Any update to the V2 rendering logic MUST use the `--render-only` flag in the Publisher pipeline to maintain execution speed.
|
||||
|
||||
@@ -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-25)
|
||||
(Stats as of 2026-06-03)
|
||||
|
||||
<!-- HEART_STATS_START -->
|
||||
| Metric | Value |
|
||||
| :--- | :--- |
|
||||
| **Total Technical Resources (Links)** | **17982+** |
|
||||
| **Specialized MD Pages** | **161** |
|
||||
| **Total Commits** | **5419+** |
|
||||
| **Total Technical Resources (Links)** | **18356+** |
|
||||
| **Specialized MD Pages** | **162** |
|
||||
| **Total Commits** | **5734+** |
|
||||
| **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 | 1860 | 7,681 | **Agentic AI Surge** (May 2026 Inception) |
|
||||
| 9 | 2026 | 2175 | 8,982 | **Agentic AI Surge** (May 2026 Inception) |
|
||||
<!-- ANNUAL_GROWTH_END -->
|
||||
|
||||
<!-- ANNUAL_CHART_START -->
|
||||
@@ -194,8 +194,8 @@ xychart-beta
|
||||
title "Nubenetes Annual Growth Metrics (2018–2026)"
|
||||
x-axis ["2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"]
|
||||
y-axis "Volume (Commits / Estimated New Refs)" 0 --> 9000
|
||||
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 7681]
|
||||
bar [350, 142, 2046, 531, 402, 30, 53, 5, 1860]
|
||||
bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 8982]
|
||||
bar [350, 142, 2046, 531, 402, 30, 53, 5, 2175]
|
||||
```
|
||||
<!-- ANNUAL_CHART_END -->
|
||||
|
||||
@@ -204,7 +204,8 @@ xychart-beta
|
||||
| Month | Commits | Est. New Refs | Status |
|
||||
| :--- | :---: | :---: | :--- |
|
||||
| 2026-04 | 25 | 103 | Active Curation |
|
||||
| 2026-05 | 1835 | 7,578 | **Agentic Inception (Gemini Era)** |
|
||||
| 2026-05 | 2101 | 8,677 | **Agentic Inception (Gemini Era)** |
|
||||
| 2026-06 | 49 | 202 | 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" : 3582
|
||||
"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" : 16183
|
||||
"Spanish" : 1078
|
||||
"French" : 179
|
||||
"Others" : 539
|
||||
"English" : 16520
|
||||
"Spanish" : 1101
|
||||
"French" : 183
|
||||
"Others" : 550
|
||||
```
|
||||
<!-- SUB_ECO_CHART_END -->
|
||||
|
||||
@@ -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
|
||||
@@ -340,14 +341,18 @@ Nubenetes operates with two distinct editions to serve different engineering nee
|
||||
|
||||
### 5.1. V1: The Exhaustive Archive
|
||||
- **Purpose:** Preservation of all technical knowledge since 2018.
|
||||
- **Scope:** 17,000+ links across 160+ pages.
|
||||
- **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.
|
||||
- **Deployment:** [nubenetes.com](https://nubenetes.com)
|
||||
- **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).
|
||||
- **Default Experience:** Deployed at `/v2/`.
|
||||
- **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.
|
||||
@@ -375,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:
|
||||
@@ -404,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:
|
||||
@@ -418,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]`).
|
||||
@@ -533,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.
|
||||
@@ -726,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.
|
||||
@@ -745,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. |
|
||||
@@ -760,7 +792,7 @@ Maintainers can manually trigger and tune workflows via the GitHub Actions UI. T
|
||||
| **04** | **Elite Portal** | [**04.1. V2 Publisher**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_v2_publish.yml) | `restore_cache` | ==FALSE== | Restores inventory from GHA cache. |
|
||||
| | | [**04.2. Emergency V2 PR Generator**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_v2_pr_only.yml) | `restore_cache` | ==FALSE== | Restores inventory from GHA cache. |
|
||||
| **05** | **Metrics** | [**05.1. README Automated Sync**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/readme_sync.yml) | N/A | ==AUTO== | Updates metrics and TOC upon `develop` push. |
|
||||
| **06** | **Deployment** | [**06.1. GitHub Pages Deploy**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/main.yml) | N/A | ==MASTER== | Native GH Pages deployment from stable artifacts. |
|
||||
| **06** | **Deployment** | [**06.1. Final Portal Deploy**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/06.deploy_final.yml) | N/A | ==MASTER== | Native GH Pages deployment from stable artifacts. |
|
||||
| **07** | **Quality Gate**| [**07.1. PR Guardian AI**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/pr_guardian.yml) | N/A | ==AUTO== | Agentic pre-submit validation for PR compliance. |
|
||||
| | | [**07.2. Markdown Linter**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/markdown_linter.yml) | N/A | ==AUTO== | Validates HMTL/Markdown syntax (ignores MD051/MD013). |
|
||||
| **08** | **Maintenance**| [**08.1. Branch Lifecycle Cleanup**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/cleanup_merged_branches.yml) | N/A | ==CRON== | Deletes remote branches merged into `develop`. |
|
||||
@@ -903,10 +935,11 @@ graph LR
|
||||
B --> D["V2 Vision Engine"]
|
||||
B --> Z["README Sync"]
|
||||
D --> E["V2 Update (develop)"]
|
||||
E --> M["Sync to 'master'"]
|
||||
M --> C["Pip Cache & CI/CD Build"]
|
||||
M["Sync to 'master'"] --> C["Pip Cache & CI/CD Build"]
|
||||
C --> F["Upload Pages Artifact"]
|
||||
F --> G["Native Deploy to nubenetes.com"]
|
||||
F --> G["Native Deploy: V1 (Root/SEO), V2 (/v2/), V1 Fallback (/v1/)"]
|
||||
G --> H["Inject Root Redirect to /v2/"]
|
||||
Z --> B
|
||||
Z --> B
|
||||
```
|
||||
|
||||
@@ -1000,13 +1033,13 @@ To maintain transparency and ease of navigation, all key configuration, database
|
||||
- **Link Rules:** [`data/link_rules.yaml`](data/link_rules.yaml) - Defines strictness for URL transformations and deep-link preservation.
|
||||
- **Curation Sources:** [`data/curation_sources.yaml`](data/curation_sources.yaml) - Defines monitored X.com accounts and technical topics.
|
||||
- **Special Assets:** [`data/special_assets.yaml`](data/special_assets.yaml) - VIP logic orchestration.
|
||||
- **Site Config:** [V1 (mkdocs.yml)](mkdocs.yml), [V2 (v2-mkdocs.yml)](v2-mkdocs.yml).
|
||||
- **Site Config:** [V1 (mkdocs.yml)](mkdocs.yml), [V2 (v2-mkdocs.yml)](v2-mkdocs.yml). Uses `favicon-ultra.png` for visibility and `hero-car.png` for branding.
|
||||
|
||||
### 13.2. Centralized Metadata Databases
|
||||
- **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.
|
||||
@@ -1016,7 +1049,7 @@ To maintain transparency and ease of navigation, all key configuration, database
|
||||
- **04.1. V2 Publisher:** [**V2 Publisher**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_v2_publish.yml) — Automatic V2 portal generation (Fast-Track rendering).
|
||||
- **04.2. Emergency PR Generator:** [**Emergency V2 PR Generator**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/agentic_v2_pr_only.yml) — Data recovery off-ramp.
|
||||
- **05.1. README Metrics Sync:** [**README Automated Sync**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/readme_sync.yml) — Automatic TOC and metric synchronization.
|
||||
- **06.1. Deployment Pipeline:** [**GitHub Pages Deploy**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/main.yml) — Native GitHub Pages artifact deployment.
|
||||
- **06.1. Deployment Pipeline:** [**Final Portal Deploy**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/06.deploy_final.yml) — Native GitHub Pages artifact deployment (V1 Root / V2 Subdirectory).
|
||||
- **07.1. PR Guardian AI:** [**PR Guardian AI**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/pr_guardian.yml) — Agentic PR compliance auditor.
|
||||
- **07.2. Markdown Validator:** [**Markdown Linter**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/markdown_linter.yml) — Syntax and rendering safety gate.
|
||||
- **08.1. Branch Lifecycle:** [**Branch Lifecycle Cleanup**](https://github.com/nubenetes/awesome-kubernetes/actions/workflows/cleanup_merged_branches.yml) — Bi-monthly remote branch cleanup.
|
||||
@@ -1027,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)
|
||||
|
||||
@@ -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/"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 880 KiB |
|
After Width: | Height: | Size: 11 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 |
|
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 53 KiB |
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang=en>
|
||||
<meta charset=utf-8>
|
||||
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
|
||||
<title>Error 400 (Bad Request)!!1</title>
|
||||
<style>
|
||||
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
|
||||
</style>
|
||||
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
|
||||
<p><b>400.</b> <ins>That’s an error.</ins>
|
||||
<p>Your client has issued a malformed or illegal request. <ins>That’s all we know.</ins>
|
||||
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 272 KiB |
@@ -0,0 +1,14 @@
|
||||
<svg width="256" height="256" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Solid Black Background for Maximum Contrast (X.com Style) -->
|
||||
<rect width="256" height="256" fill="#000000"/>
|
||||
|
||||
<!-- Ultra-Bold "N" (Nubenetes) designed for 16x16 clarity -->
|
||||
<g fill="#00E5FF">
|
||||
<!-- Left Vertical Bar -->
|
||||
<rect x="20" y="20" width="65" height="216"/>
|
||||
<!-- Right Vertical Bar -->
|
||||
<rect x="171" y="20" width="65" height="216"/>
|
||||
<!-- Massive Diagonal -->
|
||||
<path d="M20 20 L85 20 L236 236 L171 236 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 554 B |
@@ -0,0 +1,46 @@
|
||||
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="cyberGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#00E5FF;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#00838F;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<filter id="glow">
|
||||
<feGaussianBlur stdDeviation="5" result="coloredBlur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="coloredBlur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<!-- Futuristic Cloud-Vehicle Base -->
|
||||
<path d="M100 350 Q 50 350 50 300 Q 50 250 100 250 L 120 200 Q 150 120 250 120 Q 350 120 380 200 L 400 250 Q 450 250 450 300 Q 450 350 400 350 Z"
|
||||
fill="url(#cyberGradient)"
|
||||
filter="url(#glow)"/>
|
||||
|
||||
<!-- Kubernetes Steering Wheel as Front Wheel -->
|
||||
<g transform="translate(140, 350) scale(0.6)">
|
||||
<circle cx="0" cy="0" r="80" fill="#0D1117" stroke="#FFFFFF" stroke-width="15"/>
|
||||
<g stroke="#FFFFFF" stroke-width="12" stroke-linecap="round">
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(0)"/>
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(51.4)"/>
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(102.8)"/>
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(154.2)"/>
|
||||
</g>
|
||||
<circle cx="0" cy="0" r="25" fill="#FFFFFF"/>
|
||||
</g>
|
||||
|
||||
<!-- Kubernetes Steering Wheel as Rear Wheel -->
|
||||
<g transform="translate(360, 350) scale(0.6)">
|
||||
<circle cx="0" cy="0" r="80" fill="#0D1117" stroke="#FFFFFF" stroke-width="15"/>
|
||||
<g stroke="#FFFFFF" stroke-width="12" stroke-linecap="round">
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(0)"/>
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(51.4)"/>
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(102.8)"/>
|
||||
<line x1="0" y1="-80" x2="0" y2="80" transform="rotate(154.2)"/>
|
||||
</g>
|
||||
<circle cx="0" cy="0" r="25" fill="#FFFFFF"/>
|
||||
</g>
|
||||
|
||||
<!-- "N" Tech Detail -->
|
||||
<text x="220" y="280" font-family="Arial, sans-serif" font-size="100" font-weight="bold" fill="#0D1117" opacity="0.8">N</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="256" height="256" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Solid High-Contrast Background (LinkedIn/GitHub Style) -->
|
||||
<rect width="256" height="256" rx="48" fill="#0D1117"/>
|
||||
|
||||
<!-- Bold Stylized "N" (Nubenetes) with Cyan Accent -->
|
||||
<path d="M70 190V66L140 135V66H186V190L116 121V190H70Z" fill="#00E5FF"/>
|
||||
|
||||
<!-- Subtle Cloud Curve at the bottom for Cloud Context -->
|
||||
<path d="M116 190H186V170C186 160 178 152 168 152H134C124 152 116 160 116 170V190Z" fill="#00E5FF" opacity="0.3"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 537 B |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 905 KiB |
@@ -1,7 +1,7 @@
|
||||
# Nubenetes: Awesome Kubernetes & Cloud [](https://github.com/sindresorhus/awesome)
|
||||
|
||||
!!! tip "Nubenetes V2: Agentic Elite Edition is now live!"
|
||||
Looking for a high-density, AI-curated experience? Explore our [**V2 Elite Portal**](/v2) - Optimized for 2026 Architectural Standards.
|
||||
Looking for a high-density, AI-curated experience? Explore our [**V2 Elite Portal**](/v2/) - Optimized for 2026 Architectural Standards.
|
||||
|
||||
A curated list of awesome references collected since 2018. Microservices architectures rely on DevOps practices, automation, CI/CD (Continuous Integration & Delivery), and API-focused designs.
|
||||
|
||||
@@ -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/@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>
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -178,3 +178,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.
|
||||
@@ -1,5 +1,5 @@
|
||||
site_name: Nubenetes
|
||||
site_url: https://nubenetes.com
|
||||
site_url: https://nubenetes.com/
|
||||
site_description: A curated list of awesome IT projects and resources. Inspired by the awesome list.
|
||||
site_author: nubenetes@gmail.com
|
||||
docs_dir: docs/
|
||||
@@ -13,7 +13,7 @@ theme:
|
||||
icon:
|
||||
logo: logo
|
||||
repo: fontawesome/brands/github
|
||||
favicon: images/favicon-car-modern.png
|
||||
favicon: images/favicon-ultra.png
|
||||
palette:
|
||||
- scheme: default
|
||||
primary: indigo
|
||||
@@ -85,6 +85,7 @@ markdown_extensions:
|
||||
- abbr
|
||||
- def_list
|
||||
nav:
|
||||
- "🚀 Try Nubenetes V2 (Elite Portal)": https://nubenetes.com/v2/
|
||||
- Home: index.md
|
||||
- Intro:
|
||||
- Microservice Architecture. From Java EE To Cloud Native. Openshift VS Kubernetes: introduction.md
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
site_name: Nubenetes
|
||||
site_url: https://nubenetes.com
|
||||
site_url: https://nubenetes.com/
|
||||
site_description: A curated list of awesome IT projects and resources. Inspired by the awesome list.
|
||||
site_author: "Nubenetes"
|
||||
docs_dir: docs/
|
||||
@@ -11,7 +11,7 @@ edit_uri: ""
|
||||
theme:
|
||||
name: material
|
||||
prev_next_buttons_location: both
|
||||
favicon: images/favicon-modern.png
|
||||
favicon: images/favicon-ultra.png
|
||||
icon:
|
||||
logo: logo
|
||||
repo: fontawesome/brands/github
|
||||
@@ -56,7 +56,7 @@ plugins:
|
||||
background_color: "#263238"
|
||||
font_family: "Inter"
|
||||
custom_dir: "docs/images/"
|
||||
logo: favicon-car-modern.png
|
||||
logo: favicon-ultra.png
|
||||
extra_css:
|
||||
- static/extra.css
|
||||
extra_javascript:
|
||||
@@ -99,7 +99,7 @@ markdown_extensions:
|
||||
- abbr
|
||||
- def_list
|
||||
nav:
|
||||
- "🚀 Try Nubenetes V2 (Elite)": https://nubenetes.com/v2/
|
||||
- "🚀 Try Nubenetes V2 (Elite Portal)": https://nubenetes.com/v2/
|
||||
- Home: index.md
|
||||
- Intro:
|
||||
- Microservice Architecture. From Java EE To Cloud Native. Openshift VS Kubernetes: introduction.md
|
||||
@@ -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:
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
mkdocs-material>=9.5.0
|
||||
pymdown-extensions>=10.8.1
|
||||
mkdocs-material>=9.7.6
|
||||
pymdown-extensions>=10.21.3
|
||||
yt-dlp
|
||||
youtube-transcript-api
|
||||
mkdocs-redirects>=1.2.3
|
||||
mkdocs-minify-plugin>=0.8.0
|
||||
|
||||
@@ -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)...")
|
||||
|
||||
@@ -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:
|
||||
{{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
@@ -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:
|
||||
"""
|
||||
|
||||
@@ -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)\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
|
||||
@@ -867,9 +919,14 @@ class V2VisionEngine:
|
||||
with open("v2-mkdocs.yml", "r") as f: content = f.read()
|
||||
nav = [
|
||||
"nav:",
|
||||
" - \"🔙 Back to V1 (Exhaustive)\": https://nubenetes.com/",
|
||||
" - \"🔙 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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Java And Java Performance Optimization](./java-and-java-performance-optimization.md) | [Java_Frameworks](./java_frameworks.md) | [API](./api.md)
|
||||
💡 **Explore Related:** [Python](./python.md) | [Visual Studio](./visual-studio.md) | [API](./api.md)
|
||||
|
||||
|
||||
@@ -5,21 +5,22 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Config Sync](https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/overview) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [googlecloudcheatsheet.withgoogle.com: Google Cloud Developer cheat sheet](https://cloud.google.com/products) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud.google.com: Compare AWS and Azure services to Google Cloud](https://docs.cloud.google.com/docs/get-started/aws-azure-gcp-service-comparison) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Google Cloud Build](https://cloud.google.com/build) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Platform comparisons](https://docs.cloud.google.com/docs/get-started/aws-azure-gcp-service-comparison) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — - [AWS and GCP comparison](https://docs.cloud.google.com/docs/get-started/aws-azure-gcp-service-comparison/aws)
|
||||
- [Mapping of AWS services to Google Cloud](https://gregsramblings.com/blog/compare-google-cloud-to-aws)
|
||||
- [cloud.google.com: Secret Manager Best Practices](https://docs.cloud.google.com/secret-manager/docs/best-practices) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud.google.com: VPN network overview](https://docs.cloud.google.com/vpc/docs/vpc) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kinsta.com: Top 7 Advantages of Choosing Google Cloud Hosting](https://kinsta.com/blog/cloud-platform-for-developers) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Config Sync Overview](https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/overview) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Google Cloud AppSheet](https://about.appsheet.com/home) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [infoworld.com: Google Cloud AppSheet review: No-code with extras](https://www.infoworld.com/article/2270941/google-cloud-appsheet-review-no-code-with-extras.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud.google.com: The gcloud tool cheat sheet](https://docs.cloud.google.com/sdk/docs/cheatsheet?hl=en) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Google Cloud Code](https://cloud.google.com/code) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/GoogleCloudPlatform](https://github.com/GoogleCloudPlatform) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/GoogleCloudPlatform/cloud-code-samples 🌟](https://github.com/GoogleCloudPlatform/cloud-code-samples) <span class='md-tag md-tag--info'>⭐ 434</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud.google.com](https://cloud.google.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud.google.com: DevOps](https://cloud.google.com/devops) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Cloud Developer Tools](https://cloud.google.com/products/tools) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Google Cloud Code](https://cloud.google.com/code) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/google-cloud/tagged/devops](https://medium.com/google-cloud/tagged/devops) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [whizlabs.com: Introduction To Google Cloud Platform](https://www.whizlabs.com/blog/google-cloud-platform) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloud.google.com: Training more than 40 million new people on Google Cloud' skills](https://cloud.google.com/blog/topics/training-certifications/google-cloud-to-train-more-than-40-million-with-cloud-skills) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -55,8 +56,6 @@
|
||||
- [cloud.google.com: Service Directory cheat sheet](https://cloud.google.com/blog/topics/developers-practitioners/service-directory-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/google-cloud: Design your Landing Zone — Design Considerations' Part 4— IaC, GitOps and CI/CD (Google Cloud Adoption Series)](https://medium.com/google-cloud/design-your-landing-zone-design-considerations-part-4-iac-gitops-and-ci-cd-google-cloud-ae3f533c6dbd) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [devlibrary.withgoogle.com 🌟](https://devlibrary.withgoogle.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/GoogleCloudPlatform](https://github.com/GoogleCloudPlatform) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/GoogleCloudPlatform/cloud-code-samples 🌟](https://github.com/GoogleCloudPlatform/cloud-code-samples) <span class='md-tag md-tag--info'>⭐ 434</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kelseyhightower/cmd-tutorial](https://github.com/kelseyhightower/cmd-tutorial) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [engineering.mercari.com: Kubernetes based autoscaler for Cloud Spanner](https://engineering.mercari.com/en/blog/entry/20211222-kubernetes-based-spanner-autoscaler) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Cloud Functions, meet VPC functionality](https://cloud.google.com/blog/products/serverless/learn-how-to-use-advanced-vpc-functionality-with-your-cloud-functions) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -96,5 +95,5 @@
|
||||
Live Grounding: Delivers pre-integrated capabilities and action templates allowing Enterprise Gemini Agents to dynamically execute API operations, retrieve structured data, and handle multi-step workflows.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -5,27 +5,27 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Terraform Kubernetes Boilerplates 🌟](https://nubenetes.com/terraform/) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [getpostman.com](https://www.postman.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [nextplatform.com: KUBERNETES EXPANDS FROM CONTAINERS TO INFRASTRUCTURE MANAGEMENT 🌟](https://www.nextplatform.com/store/2021/08/02/kubernetes-expands-from-containers-to-infrastructure-management/1654000) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [docs.ansible.com: kubernetes.core.k8s – Manage Kubernetes (K8s) objects](https://docs.ansible.com/projects/ansible/latest/collections/kubernetes/core/k8s_module.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform Kubernetes Boilerplates 🌟](https://nubenetes.com/terraform/) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [nextplatform.com: KUBERNETES EXPANDS FROM CONTAINERS TO INFRASTRUCTURE MANAGEMENT 🌟](https://www.nextplatform.com/store/2021/08/02/kubernetes-expands-from-containers-to-infrastructure-management/1654000) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloudscaling.com: The History of Pets vs Cattle and How to Use the Analogy Properly](http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — - __In the old way of doing things, we treat our servers like pets, for example Bob the mail server. If Bob goes down, it’s all hands on deck. The CEO can’t get his email and it’s the end of the world. In the new way, servers are numbered, like cattle in a herd. For example, www001 to www100. When one server goes down, it’s taken out back, shot, and replaced on the line.__
|
||||
- ==Pets==: __Servers or server pairs that are treated as indispensable or unique systems that can never be down. Typically they are manually built, managed, and “hand fed”. Examples include mainframes, solitary servers, HA loadbalancers/firewalls (active/active or active/passive), database systems designed as master/slave (active/passive), and so on.__
|
||||
- ==Cattle==: __Arrays of more than two servers, that are built using automated tools, and are designed for failure, where no one, two, or even three servers are irreplaceable. Typically, during failure events no human intervention is required as the array exhibits attributes of “routing around failures” by restarting failed servers or replicating data through strategies like triple replication or erasure coding. Examples include web server arrays, multi-master datastores such as Cassandra clusters, multiple racks of gear put together in clusters, and just about anything that is load-balanced and multi-master.__
|
||||
- [Jenkins Configuration as Code Plugin](https://www.jenkins.io/projects/jcasc) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Jenkins CLI](https://www.jenkins.io/doc/book/managing/cli) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: GitOps vs. DevOps: What's the difference? 🌟](https://opensource.com/article/21/3/gitops) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: Kubernetes at Scale without GitOps Is a Bad Idea](https://thenewstack.io/kubernetes-at-scale-without-gitops-is-a-bad-idea) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kube.careers: Kubernetes jobs market trends for 2021 (Q4)](https://kube.careers/report-2021-q4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [fairwinds.com: Never Should You Ever In Kubernetes: #1 Do K8S The Hard Way](https://www.fairwinds.com/blog/never-should-you-ever-in-kubernetes-1-do-k8s-the-hard-way) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DZone: Defining Day-2 Operations](https://dzone.com/articles/defining-day-2-operations) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [jinja 🌟](https://github.com/pallets/jinja) <span class='md-tag md-tag--info'>⭐ 11634</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [opensource.com: Using Ansible with REST APIs](https://opensource.com/article/21/9/ansible-rest-apis) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [alexander-goida.medium.com: Thoughts about breaking silos of software engineering' teams 🌟](https://alexander-goida.medium.com/thoughts-about-breaking-silos-of-software-engineering-teams-323d1f78ef68) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [devdriven.by: Promotion Driven Development](https://devdriven.by/promotion) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [reddit.com: Promotion Driven Development](https://www.reddit.com/r/ExperiencedDevs/comments/pw6vuv/promotion_driven_development) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [en.wikipedia.org: Kiss up kick down](https://en.wikipedia.org/wiki/Kiss_up_kick_down) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [jinja 🌟](https://github.com/pallets/jinja) <span class='md-tag md-tag--info'>⭐ 11634</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [opensource.com: Using Ansible with REST APIs](https://opensource.com/article/21/9/ansible-rest-apis) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [https://swagger.io/](https://swagger.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DZone: Defining Day-2 Operations](https://dzone.com/articles/defining-day-2-operations) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kube.careers: Kubernetes jobs market trends for 2021 (Q4)](https://kube.careers/report-2021-q4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [fairwinds.com: Never Should You Ever In Kubernetes: #1 Do K8S The Hard Way](https://www.fairwinds.com/blog/never-should-you-ever-in-kubernetes-1-do-k8s-the-hard-way) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Jenkins Configuration as Code Plugin](https://www.jenkins.io/projects/jcasc) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Jenkins CLI](https://www.jenkins.io/doc/book/managing/cli) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: GitOps vs. DevOps: What's the difference? 🌟](https://opensource.com/article/21/3/gitops) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: Kubernetes at Scale without GitOps Is a Bad Idea](https://thenewstack.io/kubernetes-at-scale-without-gitops-is-a-bad-idea) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
## Cloud Native
|
||||
|
||||
@@ -45,5 +45,5 @@
|
||||
- [thenewstack.io: How the SRE Experience Is Changing with Cloud Native 🌟](https://thenewstack.io/how-the-sre-experience-is-changing-with-cloud-native) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — This high-density industry analysis examines how the rise of complex cloud-native architectures shifts SRE responsibilities. It addresses how microservices, service meshes, and dynamic scheduling require SREs to move from simple system monitoring to deep, code-level observability and platform design.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Mkdocs](./mkdocs.md) | [Cheatsheets](./cheatsheets.md) | [Git](./git.md)
|
||||
💡 **Explore Related:** [Other Awesome Lists](./other-awesome-lists.md) | [Mkdocs](./mkdocs.md) | [Demos](./demos.md)
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Tech companies cutting devs for AI](https://www.reddit.com/r/ProgrammerHumor/comments/1tbzih8/techcompaniescuttingdevsforai) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [guru99.com: Artificial Intelligence Tutorial for Beginners: Learn Basics' of AI 🌟🌟🌟](https://www.guru99.com/ai-tutorial.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [technologyreview.es: "Las empresas que empiezan a lo grande con la IA' fracasan más" 🌟](https://www.technologyreview.es/s/13258/las-empresas-que-empiezan-lo-grande-con-la-ia-fracasan-mas) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hipertextual.com: Diferencias entre Inteligencia Artificial, Machine Learning' y Deep Learning](https://hipertextual.com/2023/02/diferencias-ia-machine-learning) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -13,6 +12,7 @@
|
||||
- [Introducing Kiro: AWS Agentic AI-Based IDE](https://markrosscloud.medium.com/introducing-kiro-aws-agentic-ai-based-ide-cded711b1409) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Discussion: Where is AI Still Completely Useless?](https://www.reddit.com/r/Terraform/comments/1l7my1x/where_is_ai_still_completely_useless_for) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hashicorp.com: Accelerate your Terraform development with Amazon CodeWhisperer](https://www.hashicorp.com/blog/accelerate-your-terraform-development-with-amazon-codewhisperer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Tech companies cutting devs for AI](https://www.reddit.com/r/ProgrammerHumor/comments/1tbzih8/techcompaniescuttingdevsforai) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.redbrickai.com: F.A.S.T. ⚡️ Meta AI’s Segment Anything for Medical' Imaging](https://blog.redbrickai.com/blog-posts/fast-meta-sam-for-medical-imaging) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hashicorp.com: Accelerating AI adoption on Azure with Terraform](https://www.hashicorp.com/blog/accelerating-ai-adoption-on-azure-with-terraform) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hashicorp.com: AI for infrastructure management](https://www.hashicorp.com/solutions/ai-infrastructure-management) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
@@ -12,5 +12,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Java And Java Performance Optimization](./java-and-java-performance-optimization.md) | [Java_Frameworks](./java_frameworks.md) | [API](./api.md)
|
||||
💡 **Explore Related:** [Python](./python.md) | [Visual Studio](./visual-studio.md) | [API](./api.md)
|
||||
|
||||
|
||||
@@ -57,12 +57,9 @@
|
||||
- [docs.ansible.com: kubernetes.core.k8s – Manage Kubernetes (K8s) objects](https://docs.ansible.com/projects/ansible/latest/collections/kubernetes/core/k8s_module.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [redhat.com: Using Ansible to deploy Microsoft SQL Server 2019 on Red Hat Enterprise Linux 8](https://www.redhat.com/en/blog/mssql-linux-easy) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [oci-ansible-collection.readthedocs.io](https://oci-ansible-collection.readthedocs.io/en/latest) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Jenkins](https://www.jenkins.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Dzone: Running Ansible Playbooks From Jenkins](https://dzone.com/articles/running-ansible-playbooks-from-jenkins) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [itnext.io: Ansible and Jenkins — automate your scritps 🌟](https://itnext.io/ansible-and-jenkins-automate-your-scritps-8dff99ef653) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ansibleforkubernetes.com 🌟](https://www.ansibleforkubernetes.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube playlist: Ansible Tutorial - by Thetips4you 🌟](https://www.youtube.com/playlist?list=PLVx1qovxj-al0Knm1A0eEXfGyd5kCi16p) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [The Beginner’s Guide to the Ansible Inventory](https://www.packetcoders.io/the-beginners-guide-to-the-ansible-inventory) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [https://github.com/jdauphant/awesome-ansible](https://github.com/jdauphant/awesome-ansible) <span class='md-tag md-tag--info'>⭐ 1005</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ansibleforkubernetes.com 🌟](https://www.ansibleforkubernetes.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [docs.ansible.com](https://docs.ansible.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dureka.co: What Is Ansible?](https://www.edureka.co/blog/what-is-ansible) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Dzone: Part 2: Deploying Applications](https://dzone.com/articles/part-2-deploying-applications) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -134,9 +131,11 @@
|
||||
- [linuxctl.com: Ansible - Interacting with external REST API](https://linuxctl.com/2017/01/ansible---interacting-with-external-rest-api) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [steampunk.si: Let us give Ansible a REST](https://steampunk.si/blog/let-us-give-ansible-a-rest) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: Using Ansible with REST APIs](https://opensource.com/article/21/9/ansible-rest-apis) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube playlist: Ansible Tutorial - by Thetips4you 🌟](https://www.youtube.com/playlist?list=PLVx1qovxj-al0Knm1A0eEXfGyd5kCi16p) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube playlist: Ansible Tutorial - by Infra Xpertzz 🌟](https://www.youtube.com/playlist?list=PLOwxB_PX3s3WSfhzVtwhxXwy7QpkmtnzR) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: Ansible for beginners - by XavkiEn](https://www.youtube.com/playlist?list=PLWZKNB9waqIXEL-NIapWwIADPtkspe9vk) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: Exercises / Monitoring : How to install node exporter 🌟](https://www.youtube.com/watch?v=NgRuap0MmZw&ab_channel=XavkiEn) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Ansible for DevOps Examples](https://github.com/geerlingguy/ansible-for-devops) <span class='md-tag md-tag--info'>⭐ 9761</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [github.com/k3s-io/k3s-ansible 🌟](https://github.com/k3s-io/k3s-ansible) <span class='md-tag md-tag--info'>⭐ 2793</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/PyratLabs/ansible-role-k3s 🌟](https://github.com/PyratLabs/ansible-role-k3s) <span class='md-tag md-tag--info'>⭐ 712</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Set up mod_cluster for Red Hat JBoss Web Server with' Ansible](https://developers.redhat.com/articles/2021/09/28/set-modcluster-red-hat-jboss-web-server-ansible) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -158,6 +157,8 @@
|
||||
- [opensource.com: 5 tips for choosing an Ansible collection that's right' for you](https://opensource.com/article/21/3/ansible-collections) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: Ansible Collections 🌟](https://www.youtube.com/watch?app=desktop&v=AXnDrGgLaF0&feature=share&ab_channel=RobertdeBock) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [linuxtechi.com: How to Use Loops in Ansible Playbook](https://www.linuxtechi.com/how-to-use-loops-in-ansible-playbook) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Dzone: Running Ansible Playbooks From Jenkins](https://dzone.com/articles/running-ansible-playbooks-from-jenkins) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [itnext.io: Ansible and Jenkins — automate your scritps 🌟](https://itnext.io/ansible-and-jenkins-automate-your-scritps-8dff99ef653) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Ansible AWX](https://github.com/ansible/awx) <span class='md-tag md-tag--info'>⭐ 15428</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
- [AWX Operator](https://github.com/ansible/awx-operator) <span class='md-tag md-tag--info'>⭐ 1484</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [linuxsysadmins.com: Install Ansible AWX on Kubernetes in 5 minutes](https://www.linuxsysadmins.com/install-ansible-awx-on-kubernetes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -172,6 +173,7 @@
|
||||
- [github.com/jsmartin/ansible-tower-packer](https://github.com/jsmartin/ansible-tower-packer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [artifacthub.io: Helm Charts - AWX](https://artifacthub.io/packages/search?ts_query_web=awx&sort=relevance&page=1) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Marketplace (AMIs): AWX/Tower](https://aws.amazon.com/marketplace/search/results?searchTerms=tower) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Jenkins](https://www.jenkins.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Foreman](https://www.theforeman.org) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [jeffgeerling.com: Testing your Ansible roles with Molecule](https://www.jeffgeerling.com/blog/2018/testing-your-ansible-roles-molecule) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: Testing Ansible roles with Molecule](https://opensource.com/article/18/12/testing-ansible-roles-molecule) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -185,7 +187,6 @@
|
||||
- [Tronde/ansible-role-rhel-patchmanagement](https://github.com/Tronde/ansible-role-rhel-patchmanagement) <span class='md-tag md-tag--info'>⭐ 75</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [konstruktoid/ansible-hvault-inventory: Dynamic Ansible inventory using HashiCorp' Vault SSH OTP and local password rotation](https://github.com/konstruktoid/ansible-hvault-inventory) <span class='md-tag md-tag--info'>⭐ 23</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/opstree-technology: Understanding Ansible: Helm diff plugin 🌟](https://medium.com/opstree-technology/ansible-helm-diff-plugin-63e1cda299a3) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [The Beginner’s Guide to the Ansible Inventory](https://www.packetcoders.io/the-beginners-guide-to-the-ansible-inventory) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: AWS Configuration with Web Server in EC2 Using Ansible](https://medium.com/@ayushsingh1525/aws-configuration-with-apache-server-in-ec2-using-ansible-2ef61f98872e) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [adamtheautomator.com: How to Use the Ansible Kubernetes Module](https://adamtheautomator.com/ansible-kubernetes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [galaxy.ansible.com/nginxinc/nginx_core](https://galaxy.ansible.com/nginxinc/nginx_core) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -201,7 +202,21 @@
|
||||
- [opensource.com: How I use Ansible and anacron for automation](https://opensource.com/article/21/9/ansible-anacron-automation) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: Use anacron for a better crontab](https://opensource.com/article/21/2/linux-automation) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
## DevOps and Automation
|
||||
|
||||
### AI-Assisted Operations
|
||||
|
||||
#### Infrastructure as Code
|
||||
|
||||
- **(2023)** [ansible.com: Ansible and ChatGPT: Putting it to the test](https://www.redhat.com/en/blog/channel/open-source-communities) 🌟🌟🌟 <span class='md-tag md-tag--secondary'>[CASE STUDY]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> — Red Hat's experimental analysis testing generative AI capability against Ansible Playbook authoring constraints. Highlights current logical gaps and structural best practices for verification.
|
||||
## Security
|
||||
|
||||
### Certificates
|
||||
|
||||
#### TLS Automation
|
||||
|
||||
- **(2021)** [getbetterdevops.io: How to Secure K8S Nginx Ingress With Let’s Encrypt and Cert Manager](https://www.empowersurvivors.net) 🌟🌟🌟 <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Rescued guide detailing the technical orchestration steps of cert-manager and Let's Encrypt certificates mapping over NGINX Ingress controllers for ingress traffic protection.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Kubernetes Security](./kubernetes-security.md) | [Devsecops](./devsecops.md) | [Kustomize](./kustomize.md)
|
||||
💡 **Explore Related:** [IaC](./iac.md) | [Terraform](./terraform.md) | [Devsecops](./devsecops.md)
|
||||
|
||||
|
||||
@@ -25,17 +25,13 @@
|
||||
- [SwaggerHub: Free Web Service](https://swagger.io/product) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [any-api.com](https://marketplace.apilayer.com/?utm_source=any-api&utm_medium=any-api-redirection&utm_campaign=any-api-redirection) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Mux: The API to Video](https://www.mux.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — - [softwareengineeringdaily.com: Kubernetes vs. Serverless with Matt Ward (podcast) 🌟](https://softwareengineeringdaily.com/2020/12/29/kubernetes-vs-serverless-with-matt-ward-repeat)
|
||||
- [betterprogramming.pub: Lambda vs. Step Functions: The Battle of Cost and' Performance](https://betterprogramming.pub/lambda-vs-step-functions-the-battle-of-cost-and-performance-5f008045e2ab) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Public APIs Directory](https://publicapis.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Rapid API](https://rapidapi.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Open Banking](https://en.wikipedia.org/wiki/Open_banking) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Devdocs.io API Documentation 🌟](https://devdocs.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [wikipedia: API Application Programming Interface](https://simple.wikipedia.org/wiki/Application_programming_interface) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [postman.com: What is an API?](https://www.postman.com/what-is-an-api) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/public-apis/public-apis: Try Public APIs for free 🌟](https://github.com/public-apis/public-apis) <span class='md-tag md-tag--info'>⭐ 436518</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
- [apifriends.com: What is an API?](https://apifriends.com/api-management/what-is-an-api) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [axway.com: What is API Management?](https://www.axway.com/en/products/api-management/what-is-api-management) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Youtube Playlist: Introduction to APIs](https://www.youtube.com/playlist?list=PLM-7VG-sgbtBBnWb2Jc5kufgtWYEmiMAw) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Devdocs.io API Documentation 🌟](https://devdocs.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: 5 Ways to Succeed with an API Gateway](https://thenewstack.io/5-ways-to-succeed-with-an-api-gateway) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [amazicworld.com: Why APIs can’t be missed when it comes to DevOps](https://amazicworld.com/why-apis-cant-be-missed-when-it-comes-to-devops) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: API Gateway Part 1](https://medium.com/easyread/api-gateway-part-1-7901ba703f9) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -97,6 +93,7 @@
|
||||
- [SPDY and WebSocket Support at Akamai](https://blogs.akamai.com/2012/07/spdy-and-websocket-support-at-akamai.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [spring.io: YMNNALFT: Websockets](https://spring.io/blog/2021/01/25/ymnnalft-websockets) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.bitsrc.io: Deep Dive into WebSockets](https://blog.bitsrc.io/deep-dive-into-websockets-e6c4c7622423) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: Lambda vs. Step Functions: The Battle of Cost and' Performance](https://betterprogramming.pub/lambda-vs-step-functions-the-battle-of-cost-and-performance-5f008045e2ab) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Socket.io](https://socket.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [itnext.io: Differences between WebSockets and Socket.IO](https://itnext.io/differences-between-websockets-and-socket-io-a9e5fa29d3dc) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AsyncAPI](https://www.asyncapi.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -137,7 +134,10 @@
|
||||
- [biztechmagazine.com: 6 Steps to Improved API Security](https://biztechmagazine.com/article/2021/07/6-steps-improved-api-security) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: Developer, Beware: The 3 API Security Risks You Can’t Overlook](https://thenewstack.io/developer-beware-the-3-api-security-risks-you-cant-overlook) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/@sajjadfazlani: How to protect your APIs and Microservices?' 🌟](https://medium.com/@sajjadfazlani/how-to-protect-your-apis-and-microservices-f22b99ce2322) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Public APIs Directory](https://publicapis.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [programmableweb.com](https://www.programmableweb.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Rapid API](https://rapidapi.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Open Banking](https://en.wikipedia.org/wiki/Open_banking) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: A Digital Transformation Journey in the Banking Sector](https://thenewstack.io/a-digital-transformation-journey-in-the-banking-sector) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: True Success in Process Automation Requires Microservices](https://thenewstack.io/true-success-in-process-automation-requires-microservices) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: How Platform Ops Teams Should Think About API Strategy](https://thenewstack.io/how-platform-ops-teams-should-think-about-api-strategy) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -150,8 +150,8 @@
|
||||
- [openapi-comment-parser](https://github.com/bee-travels/openapi-comment-parser) <span class='md-tag md-tag--info'>⭐ 256</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [IBM creates an open source tool to simplify API documentation](https://www.techrepublic.com/article/ibm-creates-an-open-source-tool-to-simplify-api-documentation) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [API Business Models. 20 Models in 20 Minutes](https://www.infoq.com/presentations/API-Business-Models) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [softwareengineeringdaily.com: Kubernetes vs. Serverless with Matt Ward (podcast)' 🌟](https://softwareengineeringdaily.com/2020/12/29/kubernetes-vs-serverless-with-matt-ward-repeat) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [https://swagger.io/](https://swagger.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [softwareengineeringdaily.com: Kubernetes vs. Serverless with Matt Ward (podcast)' 🌟](https://softwareengineeringdaily.com/2020/12/29/kubernetes-vs-serverless-with-matt-ward-repeat) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
## Development Tools
|
||||
|
||||
@@ -169,5 +169,5 @@
|
||||
- [Cerebras AI](https://www.cerebras.ai) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Architectural hub detailing wafer-scale AI processors built to tackle compute limits. Facilitates unprecedented deep-learning model execution with extreme localized bandwidth optimizations.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Java And Java Performance Optimization](./java-and-java-performance-optimization.md) | [Java_Frameworks](./java_frameworks.md) | [JVM Parameters Matrix Table](./jvm-parameters-matrix-table.md)
|
||||
💡 **Explore Related:** [Python](./python.md) | [Visual Studio](./visual-studio.md) | [Golang](./golang.md)
|
||||
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Elearning](./elearning.md) | [Recruitment](./recruitment.md) | [Freelancing](./freelancing.md)
|
||||
💡 **Explore Related:** [Interview Questions](./interview-questions.md) | [Elearning](./elearning.md) | [Recruitment](./recruitment.md)
|
||||
|
||||
|
||||
@@ -222,5 +222,5 @@
|
||||
- [itnext.io: Build a Lightweight Internal Developer Platform with Argo CD' and Kubernetes Labels](https://itnext.io/build-a-lightweight-internal-developer-platform-with-argo-cd-and-kubernetes-labels-4c0e52c6c0f4) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Curator Insight: Proposes an innovative model for constructing a lightweight IDP by utilizing simple Kubernetes label configurations mapped to Argo CD ApplicationSets. Live Grounding: Demonstrates how platform teams can abstract direct Kubernetes complexity for application developers, promoting self-service deployment without security compromises.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Registries](./registries.md) | [Jenkins](./jenkins.md) | [CI/CD](./cicd.md)
|
||||
💡 **Explore Related:** [Gitops](./gitops.md) | [Flux](./flux.md) | [CI/CD](./cicd.md)
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -130,5 +127,5 @@
|
||||
- **(2021)** [**Clean Architecture on Frontend**](https://bespoyasov.me/blog/clean-architecture-on-frontend) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — An exceptional breakdown demonstrating the application of Clean Architecture principles to frontend systems. Illustrates isolation of business logic from UI components to enable extreme testability.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -27,5 +27,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
- [Get started with Amazon EC2 Container Registry (Amazon ECR)](http://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_GetStarted.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Using Docker Machine with AWS](http://blog.scottlowe.org/2016/03/22/using-docker-machine-with-aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.couchbase.com: Getting Started with Docker for AWS and Scaling Nodes](http://blog.couchbase.com/2016/july/docker-for-aws-getting-started-scaling-nodes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [neal-davis.medium.com: ECS vs EC2 vs Lambda](https://neal-davis.medium.com/ecs-vs-ec2-vs-lambda-36b8ca380dea) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ecrcp](https://github.com/bit-cloner/ecrcp) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: Creating CI/CD Pipeline for AWS ECS — Part I](https://medium.com/@harshvijaythakkar/creating-ci-cd-pipeline-for-aws-ecs-part-i-b2f61bb1522f) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dev.to: Sharing secrets to ECS in an AWS multi-account architecture](https://dev.to/aws-builders/sharing-secrets-to-ecs-in-an-aws-multi-account-architecture-5h1i) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [neal-davis.medium.com: ECS vs EC2 vs Lambda](https://neal-davis.medium.com/ecs-vs-ec2-vs-lambda-36b8ca380dea) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [faun.pub: Why We Moved From Lambda to ECS](https://faun.pub/why-we-moved-from-lambda-to-ecs-b84674f31869) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Automate rollbacks for Amazon ECS rolling deployments with CloudWatch alarms](https://aws.amazon.com/blogs/containers/automate-rollbacks-for-amazon-ecs-rolling-deployments-with-cloudwatch-alarms) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [aws.plainenglish.io: Choosing the Right AWS Container Service: ECS vs. EKS](https://aws.plainenglish.io/choosing-the-right-aws-container-service-ecs-vs-eks-3b11dd078c99) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -29,9 +29,10 @@
|
||||
|
||||
#### Container Orchestration Comparison
|
||||
|
||||
- **(2021)** [clickittech.com: Amazon ECS vs EKS : The Best Container Orchestration Platform 🌟](https://www.clickittech.com/cloud-services/amazon-ecs-vs-eks) 🌟🌟 <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — A comparative evaluation of AWS ECS and EKS architectures, evaluating setup speed, configuration overhead, and native AWS integrations. Perfect for planning engineering transitions from basic container platforms to complex, scalable orchestrators.
|
||||
- [cloudonaut.io: Scaling Container Clusters on AWS: ECS and EKS](https://cloudonaut.io/scaling-container-clusters-on-aws-ecs-eks) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Deep comparison analyzing container scaling mechanics and metrics between ECS (using ASGs) and EKS (using Cluster Autoscaler). The analysis explains scale-up and scale-down behaviors, node provisioning latencies, and resource utilization optimizations.
|
||||
- [cast.ai: AWS EKS vs. ECS vs. Fargate: Where to manage your Kubernetes?](https://cast.ai/blog/aws-eks-vs-ecs-vs-fargate-where-to-manage-your-kubernetes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Comparative evaluation analyzing resource isolation, infrastructure management, and compute overhead between EKS, ECS, and AWS Fargate. Highlights scheduling efficiency, control plane pricing, and cost-of-scale dynamics for enterprise systems.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -17,5 +17,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -114,5 +114,5 @@
|
||||
- **(2021)** [**Tutorial: Tuning Table Design**](http://docs.aws.amazon.com/redshift/latest/dg/tutorial-tuning-tables.html) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Curator Insight provides the authoritative AWS tutorial on optimizing Amazon Redshift table structures. Live Grounding highlights deep configurations including distribution styles (KEY, ALL, EVEN), sort keys (compound vs interleaved), and compression encodings. Essential reading for data platform engineers scaling cloud-native data warehouses.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Backup](./aws-backup.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -27,12 +27,6 @@ Live Grounding: Demonstrates step-by-step scheduling configurations, enabling cr
|
||||
Live Grounding: The active development has stalled, but the architecture remains highly relevant for federation research, featuring cross-cluster pod scheduling and proxy-pods.
|
||||
## Public Cloud Infrastructure
|
||||
|
||||
### AWS Architecture
|
||||
|
||||
#### Multi-Region Blueprints
|
||||
|
||||
- **(2021)** [**Multi-Region Infrastructure Deployment**](https://aws.amazon.com/solutions) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight: AWS Solutions library offering reference architectures for high-availability setups.
|
||||
Live Grounding: Provides automated CloudFormation and CDK deployment configurations to orchestrate secure application instances across multiple geographical AWS regions.
|
||||
### AWS Ecosystem
|
||||
|
||||
#### AI Ops
|
||||
@@ -77,5 +71,5 @@ Live Grounding: While primarily legacy, it outlines key patterns for mapping sta
|
||||
Live Grounding: Detailed comparative resource mapping the architectural equivalents between AWS developer tooling and Azure DevOps systems.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -34,5 +34,5 @@
|
||||
- [youtube.com: AWS Cloud Complete Bootcamp Course - CloudFormation | freeCodeCamp' 🌟](https://www.youtube.com/watch?v=zA8guDqfv40) <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — A comprehensive boot-camp produced by freeCodeCamp focusing on CloudFormation foundations. Details modular resource design, dependency mapping, drift protection, and secure infrastructure-as-code delivery pipelines.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -62,5 +62,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -28,5 +28,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Azure ExpressRoute Resiliency: Best Practices for Production-Critical Workloads](https://techcommunity.microsoft.com/blog/AzureInfrastructureBlog/azure-expressroute-resiliency-best-practices-for-production-critical-workloads/4394842) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Cloud Networking – Zero to Hero](http://www.netdesignarena.com/index.php/2020/04/15/new-blog-series-aws-cloud-networking-zero-to-hero) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [How do I transfer a domain to AWS from another registrar?](https://repost.aws/knowledge-center) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [docs.aws.amazon.com: What Is Elastic Load Balancing?](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Find the fastest region from your location](http://aws-latency.altaircp.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure ExpressRoute Resiliency: Best Practices for Production-Critical Workloads](https://techcommunity.microsoft.com/blog/AzureInfrastructureBlog/azure-expressroute-resiliency-best-practices-for-production-critical-workloads/4394842) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [linuxjournal.com: AWS EC2 VPC CLI](http://www.linuxjournal.com/content/aws-ec2-vpc-cli) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [tailscale.com: Connect to an AWS VPC using subnet routes](https://tailscale.com/docs/install/cloud/aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Networking for Developers](https://aws.amazon.com/es/blogs/apn/aws-networking-for-developers) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -59,5 +59,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -128,5 +128,5 @@
|
||||
- [Amazon EKS introduces EKS Pod Identity](https://aws.amazon.com/about-aws/whats-new/2023/11/amazon-eks-pod-identity) <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> — Highlights the launch of EKS Pod Identity, an evolved architectural alternative to IRSA (IAM Roles for Service Accounts). By utilizing a highly optimized local agent daemon on worker nodes, it simplifies IAM association, scales beyond IRSA session limits, and works across multiple clusters with ease. A fundamental improvement to EKS access management.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -27,5 +27,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -114,5 +114,5 @@
|
||||
- [How-To Secure A Linux Server](https://github.com/imthenachoman/How-To-Secure-A-Linux-Server) <span class='md-tag md-tag--info'>⭐ 27424</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — An exhaustive, highly popular guide for securing production Linux environments. Covers SSH hardening, firewalls, user permission boundaries, 2FA, kernel optimization, audit logs, and automated vulnerability scanning.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md) | [AWS Backup](./aws-backup.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
- [Build a Python Microservice with Amazon Web Services Lambda & API Gateway](http://www.giantflyingsaucer.com/blog/?p=5730) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.powerupcloud.com: AWS inventory details in CSV using lambda](http://blog.powerupcloud.com/2016/02/07/aws-inventory-details-in-csv-using-lambda) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: Lambda vs. Step Functions: The Battle of Cost and' Performance](https://betterprogramming.pub/lambda-vs-step-functions-the-battle-of-cost-and-performance-5f008045e2ab) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [npmjs.com: Lambda load test](https://www.npmjs.com/package/lambda-load-test) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.usejournal.com: Building a Serverless Back-end with AWS](https://blog.usejournal.com/building-a-serverless-back-end-with-aws-5bb3642a3f4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kothiyal-anuj.medium.com: Serverless Diary: The Ultimate Guide to **Caching' in the Cloud**](https://kothiyal-anuj.medium.com/serverless-diary-the-ultimate-guide-to-caching-in-the-cloud-249f6a06915f) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -16,7 +17,6 @@
|
||||
- [medium.com/@andrewjr350: Misunderstanding of Serverless (AWS)](https://medium.com/@andrewjr350/misunderstanding-of-serverless-aws-835c7076ea4c) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/aws-serverless-microservices-with-patterns-best: Cloud-Native' Microservices Evolves to AWS Serverless Event-driven Architectures](https://medium.com/aws-serverless-microservices-with-patterns-best/cloud-native-microservices-evolves-to-aws-serverless-event-driven-architectures-9a38c473f4f8) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: Exploring the Serverless Event-Driven Architecture](https://betterprogramming.pub/exploring-the-serverless-event-driven-architecture-8d6bda93e823) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: Lambda vs. Step Functions: The Battle of Cost and' Performance](https://betterprogramming.pub/lambda-vs-step-functions-the-battle-of-cost-and-performance-5f008045e2ab) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/awesome-cloud: AWS — Difference between Serverless (Lambda) and' Containers (Kubernetes)](https://medium.com/awesome-cloud/aws-difference-between-serverless-lambda-and-containers-kubernetes-serverless-vs-containers-lambda-vs-k8s-a166931870a2) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [aws.plainenglish.io: Let's design a serverless ETL pipeline with AWS services](https://aws.plainenglish.io/lets-design-a-serverless-etl-pipeline-with-aws-services-9ab88c95afd4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [faun.pub: Serverless With Spring Boot & AWS Lambda](https://faun.pub/serverless-with-spring-boot-aws-lambda-bc76c1de2b12) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -173,5 +173,5 @@
|
||||
- [terrateam.io: AWS Lambda Function with Terraform](https://terrateam.io/blog/aws-lambda-function-with-terraform) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A comprehensive operational guide explaining how to declare, compile, and manage AWS Lambda functions natively within Terraform infrastructure-as-code patterns. It maps IAM role dependencies, source code hash tracking, and automated zip compilation cycles. This is an essential blueprint for teams prioritizing Terraform-centric CI/CD environments.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -21,5 +21,5 @@
|
||||
- [AWS Transit Gateway is now available in Europe (Spain) Region](https://aws.amazon.com/about-aws/whats-new/2023/04/aws-transit-gateway-europe-spain-region) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — AWS announcement declaring the availability of Transit Gateway in the Europe (Spain) region. Enables cloud architects to build highly scalable hub-and-spoke virtual private networks natively.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
- [infoq.com: AWS Transfer Family Introduces Support for EFS](https://www.infoq.com/news/2021/01/aws-transfer-ftp-efs) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Reports on the strategic integration between AWS Transfer Family (SFTP/FTPS/FTP) and EFS. Enables developers to expose shared file systems securely directly to remote partners without managing SFTP instance clusters.
|
||||
#### Amazon S3
|
||||
|
||||
- **(2023)** [**blog.awsfundamentals.com: AWS S3 Sync - An Extensive Guide**](https://awsfundamentals.com/blog/aws-s3-sync) 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A detailed, high-density guide on utilizing the aws s3 sync CLI command. Includes performance tuning parameters like concurrency configs, exclusion patterns, and handling large scales securely.
|
||||
- **(2021)** [acloudguru.com: S3 Glacier Instant Retrieval deep dive: Which S3 Storage Class is right for me?](https://www.pluralsight.com/resources/blog/cloud/s3-glacier-instant-retrieval-deep-dive-which-s3-storage-class-is-right-for-me) 🌟🌟🌟 <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A deep dive into S3 Glacier Instant Retrieval, analyzing costs and access latency. Explains the strategic sweet spot of the tier for archival data that requires millisecond retrieval speeds without standard Glacier delays.
|
||||
- [S3 FAQ](https://aws.amazon.com/s3/faqs) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — The official AWS documentation addressing technical details of Simple Storage Service (S3). Provides absolute specifications for consistency models, replication capabilities, access control lists, and durability guarantees.
|
||||
- [cloudkatha.com: Is S3 Region Specific or Global? What do you think?](https://cloudkatha.com/is-s3-region-specific-or-global-what-do-you-think) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Clarifies the architectural paradox of Amazon S3's namespace being globally unique while data is stored physically in regional clusters. Details the implications on DNS, endpoint routing, and latency.
|
||||
@@ -59,5 +58,5 @@
|
||||
* Acts as a foundational storage engine for large-scale Kubernetes PV platforms (Rook-Ceph) and private clouds.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Databases](./aws-databases.md) | [AWS Backup](./aws-backup.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -6,13 +6,14 @@
|
||||
## Standard Reference
|
||||
|
||||
- [ec2-ssh-yplan: A pair of command line utilities for finding and SSH-ing into your Amazon EC2 instances by tag (such as ‘Name’)](https://pypi.org/project/ec2-ssh-yplan) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Amazon CodeWhisperer](https://aws.amazon.com/q/developer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ermetic/access-undenied-aws 🌟](https://github.com/tenable/access-undenied-aws) <span class='md-tag md-tag--info'>⭐ 271</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ermetic.com: Access Undenied on AWS](https://www.tenable.com/blog/access-undenied-on-aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/containerscrew/aws-sso-auth](https://github.com/containerscrew/aws-sso-rs) <span class='md-tag md-tag--info'>⭐ 4</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS CLI Command Reference](http://docs.aws.amazon.com/cli/latest/index.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [New usage examples have been added to the CLI for CodePipeline API Reference](http://docs.aws.amazon.com/cli/latest/reference/codepipeline/index.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.awsfundamentals.com: Step-By-Step: Emptying S3 Buckets and Directories Using the AWS CLI with S3 RM](https://awsfundamentals.com/blog/aws-s3-rm-removing-files) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Amazon CodeWhisperer 🌟](https://aws.amazon.com/q/developer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Toolkits for Cloud9, JetBrains and VS Code now support interaction with over 200 new resource types 🌟](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-toolkits-cloud9-jetbrains-vs-code) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hashicorp.com: Accelerate your Terraform development with Amazon CodeWhisperer](https://www.hashicorp.com/blog/accelerate-your-terraform-development-with-amazon-codewhisperer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Floci - An AWS Local Emulator Alternative](https://github.com/floci-io/floci) <span class='md-tag md-tag--info'>⭐ 12740</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [AWS IP inventory](https://github.com/okelet/awsipinventory) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -30,7 +31,6 @@
|
||||
- [cloudcatalog.dev](https://www.cloudcatalog.dev) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/infrahouse/infrahouse-toolkit](https://github.com/infrahouse/infrahouse-toolkit) <span class='md-tag md-tag--info'>⭐ 74</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dev.to: Continuous Integration and Deployment on AWS - and a wishlist' for CI/CD Tools on AWS](https://dev.to/aws-builders/continuous-integration-and-deployment-on-aws-and-a-wishlist-for-cicd-tools-on-aws-5a13) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Toolkits for Cloud9, JetBrains and VS Code now support interaction with over 200 new resource types 🌟](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-toolkits-cloud9-jetbrains-vs-code) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Management Tools Blog](https://aws.amazon.com/blogs/mt) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Metabadger](https://github.com/salesforce/metabadger) <span class='md-tag md-tag--info'>⭐ 143</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Amazon CLI Documentation](https://aws.amazon.com/cli) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -63,6 +63,11 @@
|
||||
#### Asset Management
|
||||
|
||||
- [Querying AWS at scale across APIs, Regions, and accounts](https://aws.amazon.com/blogs/opensource/querying-aws-at-scale-across-apis-regions-and-accounts) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An AWS blog post analyzing strategies and open-source tools (like Steampipe) to query and audit AWS resources at massive multi-region, multi-account scales. It breaks down API rate-limiting workarounds and security posture assessment methodologies.
|
||||
### AWS Storage
|
||||
|
||||
#### Amazon S3
|
||||
|
||||
- **(2023)** [**blog.awsfundamentals.com: AWS S3 Sync - An Extensive Guide**](https://awsfundamentals.com/blog/aws-s3-sync) 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A detailed, high-density guide on utilizing the aws s3 sync CLI command. Includes performance tuning parameters like concurrency configs, exclusion patterns, and handling large scales securely.
|
||||
## Cloud Security
|
||||
|
||||
### Asset Management (1)
|
||||
@@ -72,5 +77,5 @@
|
||||
- [steampipe 🌟](https://steampipe.io) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A zero-dependency CLI tool that allows querying of APIs and cloud infrastructure (AWS, Azure, GitHub, etc.) dynamically using Postgres-compatible SQL. It simplifies cloud infrastructure compliance, security audits, and resource inspection by exposing multi-platform APIs as regular database tables.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [Azure](./azure.md) | [AWS](./aws.md) | [AWS Architecture](./aws-architecture.md)
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
## Standard Reference
|
||||
|
||||
- [Amazon AWS Certification Preparation Tips](http://walkintocloud.com/index.php/2016/06/04/amazon-aws-certification-preparation-tips) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/towards-cloud-computing: 7 Free AWS Practice Labs and AWS Workshops' resources](https://medium.com/towards-cloud-computing/7-free-aws-practice-labs-and-aws-workshops-resources-d0a861f05d3) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hashnode.tpschmidt.com: My Top 10 Free Learning Resources for AWS](https://hashnode.tpschmidt.com/my-top-10-free-learning-resources-for-aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [satyenkumar.medium.com: My Youtube Channel is updated for AWS Certifications' (Over 150 Video list)](https://satyenkumar.medium.com/my-youtube-channel-is-updated-for-aws-certifications-over-150-video-list-1ae7aa81e99d) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/towards-cloud-computing: 7 Free AWS Practice Labs and AWS Workshops' resources](https://medium.com/towards-cloud-computing/7-free-aws-practice-labs-and-aws-workshops-resources-d0a861f05d3) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [devopsmonk.hashnode.dev: Learn AWS if you want to save your career..!!](https://devopsmonk.hashnode.dev/learn-aws-if-you-want-to-save-your-career) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
## Cloud Infrastructure
|
||||
@@ -29,7 +29,6 @@
|
||||
#### AWS Official
|
||||
|
||||
- **(2021)** [==explore.skillbuilder.aws/learn: AWS Skill Builder 🌟==](https://skillbuilder.aws) 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — AWS's official digital training hub, offering interactive learning models, gamified simulation sandboxes, and deep system architecture tracks compiled by primary cloud specialists.
|
||||
- **(2023)** [community.aws/training: Training and Certification](https://builder.aws.com/learn) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — An official community hub connecting cloud builders with modern development labs, learning blueprints, and architectural expert-led events.
|
||||
- [AWS Cloud Practitioner - Curso Completo 2023](https://www.youtube.com/watch?v=zQyrhjEAqLs) <span class='md-tag md-tag--warning'>[SPANISH CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — A complete video guide systematically mapping the official AWS Cloud Practitioner certification domains in Spanish. [SPANISH CONTENT]
|
||||
- [aws.amazon.com: Exámenes prácticos gratuitos y 100% en español para que' obtenga su certificación](https://aws.amazon.com/es/blogs/aws-spanish/examenes-practicos-gratuitos-y-100-en-espanol-para-que-obtenga-su-certificacion) <span class='md-tag md-tag--warning'>[SPANISH CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — AWS-published reference article detailing official practice examinations localized in Spanish to support accessible learning globally. [SPANISH CONTENT]
|
||||
- [Schedule an Exam](https://aws.amazon.com/certification/certification-prep/testing) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — The official registration and scheduling center for AWS Certification Exams. Provides standard instructions for coordinating remote proctoring environments.
|
||||
@@ -52,10 +51,7 @@
|
||||
#### Exam Practice
|
||||
|
||||
- [portal.tutorialsdojo.com: AWS Digital Courses (free)](https://portal.tutorialsdojo.com/product-category/aws/aws-digital-courses-2) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Highly-regarded training portal delivering structured practice tests and cheat sheets designed to replicate the logic and design depth of official AWS Associate and Professional certifications.
|
||||
#### Multi-Cloud Platforms
|
||||
|
||||
- **(2021)** [acloudguru.com](https://www.pluralsight.com/cloud-guru) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — A premier enterprise learning platform specialized in modern cloud-native system training. Delivers deep hands-on sandbox labs, certification preparation curricula, and continuous technical playground resources.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS](./aws.md)
|
||||
|
||||
|
||||
@@ -29,15 +29,10 @@
|
||||
- [Working with the AWS Management Console](http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Cloud Adoption Framework (AWS CAF)](https://aws.amazon.com/cloud-adoption-framework) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Convert AWS console actions to reusable code with AWS Console-to-Code, now generally available](https://aws.amazon.com/blogs/aws/convert-aws-console-actions-to-reusable-code-with-aws-console-to-code-now-generally-available/?trk=0d3532c8-5f49-4c86-9683-96c2417e9b4b&sc_channel=el) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Introducing Kiro: AWS Agentic AI-Based IDE](https://markrosscloud.medium.com/introducing-kiro-aws-agentic-ai-based-ide-cded711b1409) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/towards-cloud-computing: 7 Free AWS Practice Labs and AWS Workshops' resources](https://medium.com/towards-cloud-computing/7-free-aws-practice-labs-and-aws-workshops-resources-d0a861f05d3) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Cloudburn: An Open-Source Policy Engine for AWS Spending](https://github.com/towardsthecloud/cloudburn) <span class='md-tag md-tag--info'>⭐ 1757</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Cloud Products](https://aws.amazon.com/products) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Enhanced Local IDE Experience for AWS Step Functions](https://aws.amazon.com/blogs/compute/introducing-an-enhanced-local-ide-experience-for-aws-step-functions) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [docs.aws.amazon.com: Actions, resources, and condition keys for AWS services' 🌟🌟🌟](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform for Standardizing AWS Deployments](https://t.co/5E4FLUyh98) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DevOps Made Easy: Install AWS CLI, ECS CLI, Docker & Terraform Using Chocolatey](https://dev.to/aws-builders/devops-made-easy-install-aws-cli-ecs-cli-docker-terraform-using-chocolatey-2lld) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Awesome AWS 🌟](https://github.com/donnemartin/awesome-aws) <span class='md-tag md-tag--info'>⭐ 14033</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [Introducing Kiro: AWS Agentic AI-Based IDE](https://markrosscloud.medium.com/introducing-kiro-aws-agentic-ai-based-ide-cded711b1409) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [docs.aws.amazon.com: Actions, resources, and condition keys for AWS services' 🌟🌟🌟](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Cloud Products](https://aws.amazon.com/products) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Local Zones locations](https://aws.amazon.com/about-aws/global-infrastructure/localzones/locations) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [aws.amazon.com/new: What's New with AWS?](https://aws.amazon.com/new) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [repost.aws 🌟](https://repost.aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -79,12 +74,14 @@
|
||||
- [dev.to: Best Practices When Designing AWS Architecture 🌟🌟](https://dev.to/aws-builders/best-practices-when-designing-aws-architecture-4c8d) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [mrdevops.hashnode.dev: How to Create EC2 Instance in AWS: Step by Step' Tutorial](https://mrdevops.hashnode.dev/how-to-create-ec2-instance-in-aws-step-by-step-tutorial) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [infoq.com: AWS Publishes Reference Architecture and Implementations for' Deployment Pipelines](https://www.infoq.com/news/2023/02/aws-deployment-pipelines) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DevOps Made Easy: Install AWS CLI, ECS CLI, Docker & Terraform Using Chocolatey](https://dev.to/aws-builders/devops-made-easy-install-aws-cli-ecs-cli-docker-terraform-using-chocolatey-2lld) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Jayendra's Blog 🌟🌟](https://jayendrapatil.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [aws.plainenglish.io](https://aws.plainenglish.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWStip.com](https://awstip.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Everything AWS | Search and discover 6K+ quality AWS repositories](https://app.polymersearch.com/discover/aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Courses created by AWS experts](https://www.amazon.com/b/?node=14297978011) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dev.to: Many free and useful AWS official Dev and User guides!](https://dev.to/aws-builders/many-free-and-useful-aws-official-dev-and-user-guides-54ci) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/towards-cloud-computing: 7 Free AWS Practice Labs and AWS Workshops' resources](https://medium.com/towards-cloud-computing/7-free-aws-practice-labs-and-aws-workshops-resources-d0a861f05d3) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [vladionescu.me: Scaling containers on AWS in 2022 (comparison)](https://www.vladionescu.me/posts/scaling-containers-on-aws-in-2022) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [bitmovin: Improving Video Quality on the Web](https://medium.com/aws-activate-startup-blog/bitmovin-improving-video-quality-on-the-web-8670039c4334) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [What Startups Should Know about Amazon VPC — Part 1](https://medium.com/aws-activate-startup-blog/what-startups-should-know-about-amazon-vpc-part-1-bebe94b7f228) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -96,7 +93,10 @@
|
||||
- [AWS Webinar Channel](https://www.youtube.com/user/AWSwebinars) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Podcasts](https://aws.amazon.com/podcasts/aws-podcast) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Techchat](https://aws.amazon.com/podcasts/aws-techchat) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Enhanced Local IDE Experience for AWS Step Functions](https://aws.amazon.com/blogs/compute/introducing-an-enhanced-local-ide-experience-for-aws-step-functions) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [The AWS Developer Blog now includes Python & GoLang](https://aws.amazon.com/blogs/developer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform for Standardizing AWS Deployments](https://t.co/5E4FLUyh98) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Cloudburn: An Open-Source Policy Engine for AWS Spending](https://github.com/towardsthecloud/cloudburn) <span class='md-tag md-tag--info'>⭐ 1757</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: Top 4 AWS Patterns of Highly Available API](https://medium.com/greenm/top-4-aws-patterns-of-highly-available-api-d34599bfbb96) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: AWS configuration files, explained](https://medium.com/@ben11kehoe/aws-configuration-files-explained-9a7ea7a5b42e) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Config Rules now available in 4 new regions: US West (Oregon), EU (Ireland),' EU (Frankfurt) and Asia Pacific (Tokyo)](https://aws.amazon.com/about-aws/whats-new/2016/04/aws-config-rules-now-available-in-4-new-regions-us-west-oregon-eu-ireland-eu-frankfurt-and-asia-pacific-tokyo) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -132,5 +132,5 @@
|
||||
- [RunsOn: Self-hosted GitHub Actions Runners in AWS](https://runs-on.com) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — A commercial-grade, highly efficient solution for hosting ephemeral, auto-scaled GitHub Actions runners directly on your AWS account. Delivers a significant reduction in GitHub Actions spend (up to 10x) using cheap EC2 spot instances, fast cache persistence, and seamless setup.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [Azure](./azure.md) | [AWS Architecture](./aws-architecture.md)
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
## Standard Reference
|
||||
|
||||
- [Enterprise Web App Patterns - Azure Architecture Center](https://learn.microsoft.com/en-us/azure/architecture/web-apps/guides/enterprise-app-patterns/overview) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure ExpressRoute Resiliency: Best Practices for Production-Critical Workloads](https://techcommunity.microsoft.com/blog/AzureInfrastructureBlog/azure-expressroute-resiliency-best-practices-for-production-critical-workloads/4394842) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Products by Region Table](https://azure.microsoft.com/en-us/en-us/explore/global-infrastructure/products-by-region/table) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Microsoft Azure](https://azure.microsoft.com/en-us) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Microsoft Docs](https://learn.microsoft.com/en-us) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -41,6 +40,7 @@
|
||||
- [theregister.com: Microsoft has made Azure Linux generally available. Repeat, Azure Linux](https://www.theregister.com/software/2023/05/26/microsofts-azure-linux-distro-is-now-generally-available/568359) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [CommandLine Ninja](https://commandline.ninja) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [azurebrains.com: Azurebrains](https://blog.azurebrains.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure ExpressRoute Resiliency: Best Practices for Production-Critical Workloads](https://techcommunity.microsoft.com/blog/AzureInfrastructureBlog/azure-expressroute-resiliency-best-practices-for-production-critical-workloads/4394842) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [docs.microsoft.com: Understand Azure Load Balancing. Decision tree for load balancing in Azure](https://learn.microsoft.com/en-us/azure/architecture/guide/technology-choices/load-balancing-overview) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [mvark.blogspot.com: Comparison of Azure Front Door, Traffic Manager, Application Gateway & Load Balancer](http://mvark.blogspot.com/2019/12/comparison-of-azure-front-door-traffic.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Load Testing](https://azure.microsoft.com/en-us/en-gb/products/load-testing) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -120,23 +120,18 @@
|
||||
- [docs.microsoft.com: Using Policy with Azure Site Recovery](https://learn.microsoft.com/en-us/en-us/azure/site-recovery/azure-to-azure-how-to-enable-policy) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [infoworld.com: Getting started with Azure OpenAI](https://www.infoworld.com/article/2337918/getting-started-with-azure-openai.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [techcommunity.microsoft.com: The AI Study Guide: Azure’s top free resources for learning generative AI in 2024](https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/the-ai-study-guide-azure%E2%80%99s-top-free-resources-for-learning-generative-ai-in-2024/4036890) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Automating Microsoft Sentinel Deployment with Azure DevOps CI/CD](https://noodlemctwoodle.medium.com/automating-microsoft-sentinel-deployment-with-azure-devops-ci-cd-2d4ae0c4e254) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone IaC Accelerator](https://azure.github.io/Azure-Landing-Zones/accelerator) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Monitor your Azure cloud estate - Cloud Adoption Framework](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/manage/monitor#reference-for-monitoring-azure-services) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure App Service Auto-Heal: Capturing Relevant Data During Performance' Issues](https://techcommunity.microsoft.com/blog/appsonazureblog/azure-app-service-auto-heal-capturing-relevant-data-during-performance-issues/4390351) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/@mikakrief: Using Azure Service Operator v2](https://medium.com/@mikakrief/using-azure-service-operator-v2-4a1fa1f5e3b8) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Introduction to Azure Application Gateway for Containers (AGC)](https://blog.cloudtrooper.net/2025/02/28/application-gateway-for-containers-a-not-so-gentle-intro-1) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AZVerify: Bridging Azure Resources, Bicep Templates, and Diagrams with GitHub' Copilot](https://github.com/Azure/AZVerify) <span class='md-tag md-tag--info'>⭐ 94</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Products by Region Table](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/table) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Hub-Spoke Network Topology in Azure - Azure Architecture Center](https://learn.microsoft.com/en-us/azure/architecture/networking/architecture/hub-spoke) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone Technical Documentation](https://azure.github.io/Azure-Landing-Zones) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone - Microsoft Cloud Adoption Framework](https://learn.microsoft.com/nb-no/azure/cloud-adoption-framework/ready/landing-zone) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Architecture Best Practices for Azure Kubernetes Service (AKS)](https://learn.microsoft.com/en-us/azure/well-architected/service-guides/azure-kubernetes-service) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Which Azure Network is Cheaper?](https://blog.cloudtrooper.net/2026/01/16/which-azure-network-is-cheaper) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Building a FinOps-Ready Azure Landing Zone: Infrastructure Foundations for' Cost Optimization](https://techcommunity.microsoft.com/blog/AzureInfrastructureBlog/building-a-finops-ready-azure-landing-zone-infrastructure-foundations-for-cost-o/4411706) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Functions Cost Considerations and Optimization](https://build5nines.com/azure-functions-cost-considerations-and-optimization) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [A Guide to Azure Data Transfer Pricing](https://techcommunity.microsoft.com/blog/AzureNetworkingBlog/a-guide-to-azure-data-transfer-pricing/4374538) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [EntraExporter](https://github.com/microsoft/entraexporter) <span class='md-tag md-tag--info'>⭐ 860</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Announcing Private Preview: ArgoCD through Microsoft GitOps](https://techcommunity.microsoft.com/blog/azurearcblog/announcing-private-preview-argocd-through-microsoft-gitops/4399747) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Windows Package Manager CLI (aka winget)](https://github.com/microsoft/winget-cli) <span class='md-tag md-tag--info'>⭐ 25901</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
- [marketplace.visualstudio.com: Learn Cloud 🌟](https://marketplace.visualstudio.com/items?itemName=azurepaas-tools.vscode-learncloud) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Monitor your Azure cloud estate - Cloud Adoption Framework](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/manage/monitor#reference-for-monitoring-azure-services) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure App Service Auto-Heal: Capturing Relevant Data During Performance' Issues](https://techcommunity.microsoft.com/blog/appsonazureblog/azure-app-service-auto-heal-capturing-relevant-data-during-performance-issues/4390351) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Application Gateway for Containers with AKS Overlay Networking and VNet Flow Logs](https://blog.cloudtrooper.net/2025/04/02/application-gateway-for-containers-a-not-so-gentle-intro-4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Automated Let's Encrypt Certificates in Azure Key Vault with ACME Bot](https://cloudbuild.co.uk/free-automated-lets-encrypt-certificates-in-azure-key-vault-with-acme-bot-a-step-by-step-guide) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Application Network Security in Azure Subnets, Endpoints, DNS, NSGs with Terraform Code](https://medium.com/@codebob75/application-network-security-in-azure-subnets-endpoints-dns-nsgs-with-terraform-code-0bcabdb3a65b) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Network Security Perimeter Concepts](https://learn.microsoft.com/en-us/azure/private-link/network-security-perimeter-concepts) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -168,7 +163,6 @@
|
||||
- [nwktimes.blogspot.com: NVA Part IV: NVA Redundancy with Azure Internal Load' Balancer](https://nwktimes.blogspot.com/2023/06/azure-ilb-for-nva-ha.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.davesdomain.co.uk: A look at Azure RBAC Constrained Delegation](https://blog.davesdomain.co.uk/posts/azure-rbac-constrained-delegation) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [allazureblog.wordpress.com: Azure Bastion vs UDR](https://allazureblog.wordpress.com/2024/01/18/azure-bastion-and-udrs) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/@mikakrief: Using Azure Service Operator v2](https://medium.com/@mikakrief/using-azure-service-operator-v2-4a1fa1f5e3b8) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.cloudtrooper.net: Azure network monitoring with synthetic traffic](https://blog.cloudtrooper.net/2024/01/23/azure-network-monitoring-with-synthetic-traffic) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/Azure/Enterprise-Scale: ALZ AMA Update](https://github.com/Azure/Enterprise-Scale/wiki/ALZ-AMA-Update) <span class='md-tag md-tag--info'>⭐ 1940</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.siliconvalve.com: Analysing git commit history using Azure Data Explorer](https://blog.siliconvalve.com/posts/2024/02/06/analysing-git-commit-history-using-azure-data-explorer) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -192,6 +186,8 @@
|
||||
- [linkedin.com: CAF vs WAF: Which Framework to Use for Your Cloud Migration?](https://www.linkedin.com/pulse/caf-vs-waf-which-framework-use-your-cloud-migration-gregor-wohlfarter-hko0f) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Enterprise-Scale Azure Subscription Vending Using Azure Verified Modules (AVM)](https://techcommunity.microsoft.com/blog/azureinfrastructureblog/enterprise%e2%80%91scale-azure-subscription-vending-using-azure-verified-modules-avm/4507751) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone IaC Accelerator Release Notes](https://azure.github.io/Azure-Landing-Zones/accelerator/accelerator-release-notes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Building a FinOps-Ready Azure Landing Zone: Infrastructure Foundations for' Cost Optimization](https://techcommunity.microsoft.com/blog/AzureInfrastructureBlog/building-a-finops-ready-azure-landing-zone-infrastructure-foundations-for-cost-o/4411706) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone IaC Accelerator](https://azure.github.io/Azure-Landing-Zones/accelerator) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Announcing General Availability of Terraform Azure Verified Modules for Platform Landing Zone (ALZ)](https://techcommunity.microsoft.com/blog/azuretoolsblog/announcing-general-availability-of-terraform-azure-verified-modules-for-platform/4366027) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/microsoftazure: Ultimate guide for Enterprise-scale landing zone' for Azure](https://medium.com/microsoftazure/ultimate-guide-for-azure-cloud-adoption-framework-for-enterprise-scale-landing-zone-bba2a385134d) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thomasmaurer.ch: Azure Landing Zone Review Assessment](https://www.thomasmaurer.ch/2023/09/azure-landing-zone-review-assessment) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -201,7 +197,9 @@
|
||||
- [github.com/Azure/azqr](https://github.com/Azure/azqr) <span class='md-tag md-tag--info'>⭐ 765</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Introducing Subnet Peering in Azure](https://techcommunity.microsoft.com/blog/azurenetworkingblog/introducing-subnet-peering-in-azure/4383841) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hlokensgard.no: Azure Virtual Network Manager – A game changer or just a' costly upgrade?](https://hlokensgard.no/2024/07/01/azure-virtual-network-manager-a-game-changer-or-just-a-costly-upgrade) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Which Azure Network is Cheaper?](https://blog.cloudtrooper.net/2026/01/16/which-azure-network-is-cheaper) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Manage Azure IPAM with Terraform](https://mattias.engineer/blog/2025/azure-ipam-with-terraform) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [A Guide to Azure Data Transfer Pricing](https://techcommunity.microsoft.com/blog/AzureNetworkingBlog/a-guide-to-azure-data-transfer-pricing/4374538) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [techcommunity.microsoft.com](https://techcommunity.microsoft.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thomasthornton.cloud: Thomas Thornton](https://thomasthornton.cloud) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thomasmaurer.ch](https://www.thomasmaurer.ch) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -213,7 +211,6 @@
|
||||
- [learn.microsoft.com: Browse all courses, learning paths, and modules' 🌟🌟🌟](https://learn.microsoft.com/en-us/training/browse/?resource_type=course&products=azure) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [freecodecamp.org: Azure Fundamentals Certification (AZ-900) – Pass the Exam' With This Free 8-Hour Course](https://www.freecodecamp.org/news/azure-fundamentals-certification-az-900-exam-course) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [learn.microsoft.com: Practice Assessments for Microsoft Certifications](https://learn.microsoft.com/en-us/credentials/certifications/practice-assessments-for-microsoft-certifications) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [marketplace.visualstudio.com: Learn Cloud 🌟](https://marketplace.visualstudio.com/items?itemName=azurepaas-tools.vscode-learncloud) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [justinoconnor.codes: Azure Periodic Table of Resource Naming Convention' Shorthands](https://justinoconnor.codes/2022/08/19/azure-periodic-table-of-resource-naming-convention-shorthands) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [learn.microsoft.com: Mission-critical baseline architecture on Azure](https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/containers/aks-mission-critical/mission-critical-intro) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [learn.microsoft.com: Mission-critical workloads](https://learn.microsoft.com/en-us/azure/well-architected/mission-critical/mission-critical-overview) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -226,6 +223,7 @@
|
||||
- [Announcing Public Preview of Terraform Export from the Azure Portal](https://techcommunity.microsoft.com/blog/azuretoolsblog/announcing-public-preview-of-terraform-export-from-the-azure-portal/4409889) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform Provider for Azure IPAM](https://github.com/XtratusCloud/terraform-provider-azureipam) <span class='md-tag md-tag--info'>⭐ 9</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thomasmaurer.ch: Learn how to deploy and manage Azure resources with ARM' templates](https://www.thomasmaurer.ch/2020/12/learn-how-to-deploy-and-manage-azure-resources-with-arm-templates) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Automating Microsoft Sentinel Deployment with Azure DevOps CI/CD](https://noodlemctwoodle.medium.com/automating-microsoft-sentinel-deployment-with-azure-devops-ci-cd-2d4ae0c4e254) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform: Get User Principal Name (UPN) of User Running Deployment without' Entra ID Read Permissions](https://build5nines.com/terraform-get-user-principal-name-upn-of-user-running-deployment-without-entra-id-read-permissions) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure DevOps Labs 🌟](https://www.azuredevopslabs.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/nnellans/ado-pipelines-guide: Azure DevOps YAML Pipelines Guide' 🌟](https://github.com/nnellans/ado-pipelines-guide) <span class='md-tag md-tag--info'>⭐ 74</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -260,6 +258,7 @@
|
||||
- [github.com/JFolberth/TheYAMLPipelineOne 🌟](https://github.com/JFolberth/TheYAMLPipelineOne) <span class='md-tag md-tag--info'>⭐ 221</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [gist.github.com: This snippet contains the steps to generate a terraform' plan and post it as a comment of a pull request in Azure DevOps](https://gist.github.com/GTRekter/51f8be3fbfb13b3696f92e117d956597) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: Databricks CI/CD: Azure DevOps Pipeline + DABs](https://www.youtube.com/watch?v=SZM49lGovTg) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [EntraExporter](https://github.com/microsoft/entraexporter) <span class='md-tag md-tag--info'>⭐ 860</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [stackoverflow.com: What is the difference between an Azure tenant and' Azure subscription?](https://stackoverflow.com/questions/47307368/what-is-the-difference-between-an-azure-tenant-and-azure-subscription) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [marckean.com: Azure Vs Azure AD – Accounts / Tenants / Subscriptions](https://marckean.com/2016/06/01/azure-vs-azure-ad-accounts-tenants-subscriptions) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blogit.create.pt: Pros and Cons of Single Tenant vs Multiple Tenants in' Office 365](https://blogit.create.pt/miguelisidoro/2019/01/07/pros-and-cons-of-single-tenant-vs-multiple-tenants-in-office-365) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -283,6 +282,7 @@
|
||||
- [microsoftgraph/msgraph-sdk-powershell/samples: 9-Applications.ps1](https://github.com/microsoftgraph/msgraph-sdk-powershell) <span class='md-tag md-tag--info'>⭐ 865</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [nathannellans.com: App Registrations, Enterprise Apps, and Service Principals' 🌟](https://www.nathannellans.com/post/app-registrations-enterprise-apps-and-service-principals) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [zer1t0.gitlab.io: Attacking Active Directory: 0 to 0.9 🌟](https://zer1t0.gitlab.io/posts/attacking_ad) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Announcing Private Preview: ArgoCD through Microsoft GitOps](https://techcommunity.microsoft.com/blog/azurearcblog/announcing-private-preview-argocd-through-microsoft-gitops/4399747) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [architecture diagrams and slides](https://github.com/microsoft/azure_arc) <span class='md-tag md-tag--info'>⭐ 805</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thomasmaurer.ch: Run cloud-native apps on Azure PaaS anywhere](https://www.thomasmaurer.ch/2021/06/run-cloud-native-apps-on-azure-paas-anywhere) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Secure DevOps Kit for Azure](https://github.com/azsk/DevOpsKit) <span class='md-tag md-tag--info'>⭐ 222</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -292,10 +292,9 @@
|
||||
- [returngis.net: Acceder a un App Service con Private Endpoint desde otra' Vnet](https://www.returngis.net/2021/08/acceder-a-un-app-service-con-private-endpoint-desde-otra-vnet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: How to run an App Service Web App on Azure Arc-enabled Kubernetes' - Part 2 | Azure Tips and Tricks](https://www.youtube.com/watch?v=53-Y_aI0KpE&ab_channel=MicrosoftAzure) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [azure.github.io/AppService: General availability of Diagnostics tools for' App Service on Linux Node.js apps](https://azure.github.io/AppService/2024/01/05/Diagnose-Tools-for-NodeJs-Linux-apps.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Application Gateway for Containers with AKS Overlay Networking and VNet Flow Logs](https://blog.cloudtrooper.net/2025/04/02/application-gateway-for-containers-a-not-so-gentle-intro-4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Introduction to Azure Application Gateway for Containers (AGC)](https://blog.cloudtrooper.net/2025/02/28/application-gateway-for-containers-a-not-so-gentle-intro-1) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [nathannellans.com: Azure Application Gateway - Part 1 🌟](https://www.nathannellans.com/post/azure-application-gateway-part-1) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [acethecloud.com: Which is better Azure App Gateway or Nginx configured on' Azure VMs](https://acethecloud.com/blog/azure-application-gateway-and-nginx-on-vm) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Functions Cost Considerations and Optimization](https://build5nines.com/azure-functions-cost-considerations-and-optimization) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [learn.microsoft.com: AZ-204: Implement Azure Functions 🌟](https://learn.microsoft.com/en-us/training/paths/implement-azure-functions) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [havanrijn.wordpress.com: Don’t let Azure Log Analytics break the bank](https://havanrijn.wordpress.com/2024/04/01/dont-let-azure-log-analytics-break-the-bank) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [itnext.io: How to setup CI CD pipelines for Android with Azure DevOps](https://itnext.io/how-to-setup-ci-cd-pipelines-for-android-with-azure-devops-2a4ded0de0e7) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -371,6 +370,7 @@
|
||||
- [github.com/azure/fleet](https://github.com/azure/fleet) <span class='md-tag md-tag--info'>⭐ 224</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/codex: 7 Best Practices for Data Ingestion](https://medium.com/codex/7-best-practices-for-data-ingestion-f336c6b5128c) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [mssqltips.com: Choosing Between SQL Server Integration Services and Azure' Data Factory](https://www.mssqltips.com/sqlservertip/7094/azure-data-factory-vs-ssis-similarities-differences) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Windows Package Manager CLI (aka winget)](https://github.com/microsoft/winget-cli) <span class='md-tag md-tag--info'>⭐ 25901</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
- [muycomputer.com: WinGet 1.0, ya está aquí el administrador de paquetes para' Windows](https://www.muycomputer.com/2021/06/03/winget-1-0-paquetes-windows-10) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thomasmaurer.ch: Getting started with Windows Package Manager WinGet](https://www.thomasmaurer.ch/2021/07/getting-started-with-windows-package-manager-winget) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [thenewstack.io: This Week in Programming: Windows Opens Up to Android Developers](https://thenewstack.io/this-week-in-programming-windows-opens-up-to-android-developers) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -486,8 +486,8 @@ Live Grounding: Provides stable, secure integrations allowing compliant AI model
|
||||
|
||||
##### Azure DevOps (1)
|
||||
|
||||
- [Azure DevOps Terraform Pipeline (Complete Guide + YAML Examples)](https://deniscooper.co.uk/azure-devops-terraform-pipeline) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A production-grade, step-by-step tutorial on building a fully secure and automated Terraform deployment pipeline within Azure DevOps. Provides robust, reusable YAML template definitions, including state locking configurations, plan validations, and multi-environment promotions.
|
||||
- [Automate Terraform Testing with Azure DevOps Pipelines](https://skundunotes.com/2025/01/22/automate-terraform-testing-with-azure-devops-pipelines) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Provides a complete implementation walkthrough for embedding robust automated test suites (including tftest and checkov) inside Azure DevOps pipelines. Demonstrates how to validate infrastructure compliance and dry-run infrastructure updates early in the pipeline.
|
||||
- [Azure DevOps Terraform Pipeline (Complete Guide + YAML Examples)](https://deniscooper.co.uk/azure-devops-terraform-pipeline) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A production-grade, step-by-step tutorial on building a fully secure and automated Terraform deployment pipeline within Azure DevOps. Provides robust, reusable YAML template definitions, including state locking configurations, plan validations, and multi-environment promotions.
|
||||
#### Language Runtimes
|
||||
|
||||
##### Azure DevOps (2)
|
||||
@@ -498,13 +498,23 @@ Live Grounding: Provides stable, secure integrations allowing compliant AI model
|
||||
#### Azure DevOps (3)
|
||||
|
||||
- [Securing Azure DevOps When Using Private Repositories](https://www.linkedin.com/top-content/?trk=article_not_found) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Analyses secure integration patterns for private Azure DevOps environments. Offers standard reference controls for isolating source code hosting, managing external worker access, and mitigating common misconfiguration patterns across self-hosted agent pools.
|
||||
- [Update to Azure DevOps Allowed IP Addresses](https://devblogs.microsoft.com/devops/update-to-ado-allowed-ip-addresses) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official documentation outlines the network security updates for Azure DevOps, focusing on the transitioning IP address ranges and service tags. Crucial for security engineers managing firewalls and strict ingress/egress rules to maintain uninterrupted pipeline connectivity.
|
||||
- [Dependabot Version Updates in Azure DevOps](https://www.returngis.net/2025/02/dependabot-updates-en-azure-devops) <span class='md-tag md-tag--warning'>[SPANISH CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A practical guide explaining the installation and automated orchestration of Dependabot-style dependency scanning and automated PR version updates within Azure DevOps repositories. Written in Spanish. [SPANISH CONTENT]
|
||||
- [Update to Azure DevOps Allowed IP Addresses](https://devblogs.microsoft.com/devops/update-to-ado-allowed-ip-addresses) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official documentation outlines the network security updates for Azure DevOps, focusing on the transitioning IP address ranges and service tags. Crucial for security engineers managing firewalls and strict ingress/egress rules to maintain uninterrupted pipeline connectivity.
|
||||
### Cloud Security
|
||||
|
||||
#### Identity Federation
|
||||
|
||||
- [mattias.engineer: Azure Federated Identity Credentials for GitHub](https://mattias.engineer/blog/2024/azure-federated-credentials-github) <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — An in-depth configuration guide explaining how to design passwordless integrations between GitHub Actions and Microsoft Azure using OpenID Connect (OIDC). Eliminates long-lived static API secrets in favor of short-lived federated credentials.
|
||||
## Public Cloud Providers
|
||||
|
||||
### Azure Kubernetes Service AKS
|
||||
|
||||
#### Observability and Monitoring
|
||||
|
||||
- **(2024)** [techcommunity.microsoft.com: Advanced Network Observability for your Azure Kubernetes Service clusters through Azure Monitor](https://techcommunity.microsoft.com/blog/azureobservabilityblog/advanced-network-observability-for-your-azure-kubernetes-service-clusters-throug/4176736) <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[GUIDE]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Focuses on utilizing the Advanced Network Observability tool inside AKS. By using modern eBPF technology, it provides insights into packet loss, path drops, and end-to-end routing delays across clusters.
|
||||
#### Service Mesh
|
||||
|
||||
- **(2023)** [techcommunity.microsoft.com: How to install an AKS cluster with the Istio service mesh add-on via Bicep](https://techcommunity.microsoft.com/blog/fasttrackforazureblog/how-to-install-an-aks-cluster-with-the-istio-service-mesh-add-on-via-bicep/3802069) <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--primary'>[GUIDE]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — A declarative infrastructure blueprint outlining how to install and manage the native Istio Service Mesh add-on on AKS using Bicep. Highlights lifecycle management integrations, sidecar provisioning schemes, and traffic routing policies within secure Microsoft architectures.
|
||||
## Security
|
||||
|
||||
### Identity Management
|
||||
@@ -519,5 +529,5 @@ Live Grounding: Provides stable, secure integrations allowing compliant AI model
|
||||
- [Building a DDoS Response Plan with Azure DDoS Protection](https://techcommunity.microsoft.com/blog/azurenetworksecurityblog/building-a-ddos-response-plan/4372256) <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight: Architecture plan to withstand high-volume distributed denial-of-service attempts. Live Grounding: Focuses heavily on cloud-native patterns like rate-limiting, load-balancer protection, and Edge integration on Azure platforms.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AWS Security](./aws-security.md) | [AWS Storage](./aws-storage.md) | [AWS Databases](./aws-databases.md)
|
||||
💡 **Explore Related:** [AWS Tools Scripts](./aws-tools-scripts.md) | [AWS](./aws.md) | [AWS Architecture](./aws-architecture.md)
|
||||
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
- [highscalability.com: Building nginx and Tarantool based services 🌟](http://highscalability.com/blog/2016/2/17/building-nginx-and-tarantool-based-services.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kothiyal-anuj.medium.com: Serverless Diary: The Ultimate Guide to **Caching' in the Cloud**](https://kothiyal-anuj.medium.com/serverless-diary-the-ultimate-guide-to-caching-in-the-cloud-249f6a06915f) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DZone refcard: Java Caching](https://dzone.com/refcardz/java-caching) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [nixCraft: 9 Awesome Open Source Web Performance Software For Linux and Unix-like' Systems](https://www.cyberciti.biz/open-source/http-web-performance-proxy-load-balancer-accelerator-software) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Wikipedia: Web cache](https://en.wikipedia.org/wiki/Web_cache) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Wikipedia: Dynamic site acceleration](https://en.wikipedia.org/wiki/Dynamic_site_acceleration) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [nixCraft: 9 Awesome Open Source Web Performance Software For Linux and Unix-like' Systems](https://www.cyberciti.biz/open-source/http-web-performance-proxy-load-balancer-accelerator-software) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Dzone: An Introduction to Caching: How and Why We Do It 🌟](https://dzone.com/articles/introducing-amp-assimilating-caching-quick-read-fo) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: Caching — System Design Concept 🌟](https://medium.com/enjoy-algorithm/caching-system-design-concept-500134cff300) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium: Microservices Distributed Caching](https://medium.com/design-microservices-architecture-with-patterns/microservices-distributed-caching-76828817e41b) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -75,5 +75,5 @@
|
||||
- [github.com/taubyte/tau: Tau](https://github.com/taubyte/tau) <span class='md-tag md-tag--info'>⭐ 5030</span> <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <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--info'>[ENTERPRISE-STABLE]</span> — The main open-source repository for Tau. This platform handles autonomous routing, distributed database syncs, and scaling for multi-tenant edge services, running on WebAssembly.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Web Servers](./web-servers.md) | [Kubernetes Networking](./kubernetes-networking.md) | [Istio](./istio.md)
|
||||
💡 **Explore Related:** [Kubernetes Networking](./kubernetes-networking.md) | [Servicemesh](./servicemesh.md) | [Networking](./networking.md)
|
||||
|
||||
|
||||
@@ -67,5 +67,5 @@
|
||||
- [Chaos engineering on Amazon EKS using AWS Fault Injection Simulator](https://aws.amazon.com/blogs/devops/chaos-engineering-on-amazon-eks-using-aws-fault-injection-simulator) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Guided workflow utilizing AWS FIS (Fault Injection Simulator) to execute controlled resilience and disruption experiments against EKS node groups and containers. Demonstrates monitoring system reaction metrics and reinforcing application failover.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [DevOps](./devops.md) | [Project Management Methodology](./project-management-methodology.md) | [Scaffolding](./scaffolding.md)
|
||||
💡 **Explore Related:** [DevOps](./devops.md) | [QA](./qa.md) | [Project Management Methodology](./project-management-methodology.md)
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Tech companies cutting devs for AI](https://www.reddit.com/r/ProgrammerHumor/comments/1tbzih8/techcompaniescuttingdevsforai) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Discussion: Where is AI Still Completely Useless?](https://www.reddit.com/r/Terraform/comments/1l7my1x/where_is_ai_still_completely_useless_for) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Tech companies cutting devs for AI](https://www.reddit.com/r/ProgrammerHumor/comments/1tbzih8/techcompaniescuttingdevsforai) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [medium.com/@andretost_75145: Using ChatGPT to learn Kubernetes and OpenShift](https://medium.com/@andretost_75145/using-chatgpt-to-learn-kubernetes-and-openshift-15051bc95535) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: ChatGPT and Software Architecture](https://betterprogramming.pub/chatgpt-and-software-architecture-308b6e0cc25a) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [abcabhishek.substack.com: ChatGPT for generating SQL as a Data Engineer's' assistant](https://abcabhishek.substack.com/p/chatgpt-for-generating-sql-as-a-data) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -53,13 +53,6 @@
|
||||
#### Enterprise AI
|
||||
|
||||
- [thenewstack.io: Using ChatGPT for Questions Specific to Your Company Data](https://thenewstack.io/using-chatgpt-for-questions-specific-to-your-company-data) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Technical deep-dive on Retrieval-Augmented Generation (RAG). Outlines how to query private corporate document indexes using semantic vector databases paired with ChatGPT-style APIs securely.
|
||||
## DevOps and Automation
|
||||
|
||||
### AI-Assisted Operations
|
||||
|
||||
#### Infrastructure as Code (1)
|
||||
|
||||
- **(2023)** [ansible.com: Ansible and ChatGPT: Putting it to the test](https://www.redhat.com/en/blog/channel/open-source-communities) 🌟🌟🌟 <span class='md-tag md-tag--secondary'>[CASE STUDY]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> — Red Hat's experimental analysis testing generative AI capability against Ansible Playbook authoring constraints. Highlights current logical gaps and structural best practices for verification.
|
||||
## Healthcare Technology
|
||||
|
||||
### Artificial Intelligence (1)
|
||||
@@ -113,16 +106,11 @@
|
||||
- [GitHub Copilot Now Explains Failed Actions Jobs (GA)](https://github.blog/changelog/2025-01-15-copilot-users-can-ask-about-a-failed-actions-job-ga) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — An official GitHub product announcement marking the General Availability of GitHub Copilot's automated pipeline diagnostics. Empowers developers to quickly resolve failing CI/CD builds by getting clear, contextual, AI-driven summaries and remediation plans.
|
||||
## Software Engineering
|
||||
|
||||
### AI-Assisted Operations (1)
|
||||
### AI-Assisted Operations
|
||||
|
||||
#### Code Generation Quality
|
||||
|
||||
- [thenewstack.io: Developers Put AI Bots to the Test of Writing Code](https://thenewstack.io/developers-put-ai-bots-to-the-test-of-writing-code) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Empirical evaluation measuring code-generation accuracy across popular AI engines. Examines compiler error rates, structural vulnerabilities, and the necessity of developer supervision in AI workflows.
|
||||
### Programming Foundations
|
||||
|
||||
#### Python Language
|
||||
|
||||
- **(2025)** [**Think Python**](https://allendowney.github.io/ThinkPython) 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A classic computational thinking handbook utilizing Python. Focuses on algorithmic integrity, data structure designs, object-oriented implementations, and debug execution pipelines.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [AI](./ai.md) | [AI Agents MCP](./ai-agents-mcp.md) | [MLOps](./mlops.md)
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Kubectl Autocomplete](https://kubernetes.io/docs/reference/kubectl/quick-reference) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [googlecloudcheatsheet.withgoogle.com: Google Cloud Developer cheat sheet](https://cloud.google.com/products) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cheat-sheets.org 🌟](http://www.cheat-sheets.org) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ABZ-Aaron/CheatSheets](https://github.com/ABZ-Aaron/cheat-sheets) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [supple.com.au: Google advanced search operators tips and tricks](https://supple.com.au/tools/google-advance-search-operators) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [tutorialsdojo.com: AWS Cheat Sheets 🌟](https://tutorialsdojo.com/aws-cheat-sheets) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [googlecloudcheatsheet.withgoogle.com: Google Cloud Developer cheat sheet](https://cloud.google.com/products) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [kubernetes.io 🌟](https://kubernetes.io/docs/reference/kubectl/quick-reference) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [jimmysong.io: kubectl cheat sheet 🌟](https://jimmysong.io/zh/book/kubernetes-handbook) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github: K8s in 30 mins 🌟](https://github.com/rosehgal/k8s-In-30Mins) <span class='md-tag md-tag--info'>⭐ 211</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [computingforgeeks.com: Kubectl Cheat Sheet for Kubernetes Admins & CKA Exam Prep](https://computingforgeeks.com/kubectl-cheat-sheet-kubernetes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -40,10 +40,7 @@
|
||||
- [developer.mongodb.com: MongoDB Cheat Sheet](https://www.mongodb.com/docs) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [hackingcpp.com: C++ Cheat Sheets](https://hackingcpp.com/cpp/cheat_sheets) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [lambdatest.com: The Ultimate Selenium Python Cheat Sheet for Test Automation](https://www.testmuai.com/blog/selenium-python-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cyberciti.biz: Linux ip Command Examples](https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [simplecheatsheet.com/tag/golang-cheat-sheet](https://simplecheatsheet.com/tag/golang-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dzone.com: refcard - getting started with git](https://dzone.com/refcardz/getting-started-git) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dzone refcard: Getting Started With OpenShift 🌟](https://dzone.com/refcardz/getting-started-with-openshift) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Writing a Kubernetes Operator in Java using Quarkus' - **Cheat Sheet** 🌟](https://developers.redhat.com/cheat-sheets/writing-kubernetes-operator-java) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [wizardzines.com 🌟](https://wizardzines.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cheatography.com](https://cheatography.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [LeCoupa/awesome-cheatsheets](https://github.com/LeCoupa/awesome-cheatsheets) <span class='md-tag md-tag--info'>⭐ 45898</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
@@ -137,6 +134,7 @@
|
||||
- [The awesome git cheat sheet](https://the-awesome-git-cheat-sheet.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Git cheat sheet](https://developers.redhat.com/cheat-sheetsgit) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [education.github.com: Git cheat sheet 🌟](https://education.github.com/git-cheat-sheet-education.pdf) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dzone.com: refcard - getting started with git](https://dzone.com/refcardz/getting-started-git) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [git-tower.com: Git cheat sheet](https://www.git-tower.com/blog/git-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [rogerdudler.github.io: git - the simple guide 🌟](https://rogerdudler.github.io/git-guide) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [rogerdudler.github.io: git cheat sheet pdf](https://rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -173,6 +171,7 @@
|
||||
- [opensource.com: Linux Parted cheat sheet](https://opensource.com/downloads/parted-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: GNU Screen cheat sheet](https://opensource.com/downloads/gnu-screen-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [catonmat.net: GNU Coreutils Cheat Sheet](https://catonmat.net/gnu-coreutils-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cyberciti.biz: Linux ip Command Examples](https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [stationx.net: Hacking Tools Cheat Sheet](https://www.stationx.net/hacking-tools-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ssh cheat sheet](https://cheatsheet.dennyzhang.com/cheatsheet-ssh-a4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [opensource.com: Learn advanced SSH commands with this cheat sheet](https://opensource.com/article/18/4/learn-advanced-ssh-commands-new-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -183,10 +182,10 @@
|
||||
- [github.com: openshift cheat sheet 3](https://github.com/mhausenblas/openshift-cheat-sheet) <span class='md-tag md-tag--info'>⭐ 6</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [monodot.co.uk: openshift cheat sheet 4](https://monodot.co.uk/openshift-cheatsheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [openshift.tips](https://openshift.tips) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dzone refcard: Getting Started With OpenShift 🌟](https://dzone.com/refcardz/getting-started-with-openshift) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cookbook.openshift.org 🌟](https://cookbook.openshift.org) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cookbook.openshift.org: How do I import an image from an external image' registry? 🌟](https://cookbook.openshift.org/image-registry-and-image-streams/how-do-i-import-an-image-from-an-external-image.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Debezium on OpenShift Cheat Sheet](https://developers.redhat.com/cheat-sheets/debezium-openshift-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Writing a Kubernetes Operator in Java using Quarkus' - **Cheat Sheet** 🌟](https://developers.redhat.com/cheat-sheets/writing-kubernetes-operator-java) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [https://dev.to/aurelievache: Understanding Kubernetes: part 1 – Pods](https://dev.to/aurelievache/kubernetes-sketchnotes-pods-4ib0) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [garba.org: Kubernetes Pod Life Cycle Cheat Sheet](https://garba.org/posts/2018/k8s_pod_lc) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Buildah Cheat Sheet](https://developers.redhat.com/cheat-sheets/buildah-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -237,7 +236,7 @@
|
||||
- [intellipaat.com: Python Cheat Sheet Basics](https://intellipaat.com/blog/tutorial/python-tutorial/python-cheat-sheet-basics) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [websitesetup.org: Python Cheat Sheet](https://websitesetup.org/python-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [python.plainenglish.io: The Ultimate Python Cheat Sheet | Muhammad Umair](https://python.plainenglish.io/ultimate-python-cheat-sheet-f2930e08669c) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/ekramasif: Basic Machine Learning - Python Cheatsheet](https://github.com/ekramasif/Basic-Machine-Learning/blob/main/Extraa/PythonCheatSheet.ipynb) <span class='md-tag md-tag--info'>⭐ 80</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [simplecheatsheet.com/tag/golang-cheat-sheet](https://simplecheatsheet.com/tag/golang-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Node.js Cheat Sheet](https://developers.redhat.com/cheat-sheets/nodejs-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dev.to: Selenium Cheat Sheet](https://dev.to/razgandeanu/selenium-cheat-sheet-9lc) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [intellipaat.com: Selenium Cheat Sheet](https://intellipaat.com/blog/tutorial/selenium-tutorial/selenium-cheat-sheet) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -257,6 +256,13 @@
|
||||
- **(2024)** [**guides.github.com: Markdown Cheat Sheet 2**](https://docs.github.com/en) 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — The authoritative documentation portal for GitHub, offering deep-dives into GitHub Flavored Markdown (GFM) and integration patterns. It outlines security implications, task lists, and interactive rendering rules. Double-Evidence: While a generic entry point, live grounding confirms this repository of guides is the primary reference for understanding platform-specific rendering behaviors on the GitHub UI.
|
||||
- [markdownguide.org](https://www.markdownguide.org) <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — An exhaustive reference guide covering the syntax, best practices, and extended features of the Markdown markup language. It provides clear examples of basic syntax, extended elements, and compatibility matrices across parsers. Double-Evidence: This guide serves as the authoritative standard for syntax validation, and live grounding shows it is widely integrated into onboarding resources for junior developers and technical writers globally.
|
||||
- [Markdown Cheat Sheet 4](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) <span class='md-tag md-tag--info'>⭐ 60200</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — One of the most referenced cheat sheets on GitHub for fast, offline-compatible Markdown syntax lookups. Includes rendering comparisons for basic elements, blockquotes, code blocks, and inline HTML. Double-Evidence: Despite its age, live grounding confirms its massive utility and continued reference value in developer wikis, representing a classic standard for text formatting.
|
||||
## Cloud Infrastructure
|
||||
|
||||
### Orchestration
|
||||
|
||||
#### Managed Kubernetes
|
||||
|
||||
- **(2022)** [**learnk8s.io/research: Comparison of Kubernetes managed services 🌟**](https://learnkube.com/research) <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Comprehensive comparison matrix evaluating key metrics of major managed Kubernetes engines, mapping out scalability limits, upgrade strategies, and CNI setups.
|
||||
## Developer Reference
|
||||
|
||||
### Syntax Cheat Sheets
|
||||
@@ -271,6 +277,13 @@
|
||||
#### CLI
|
||||
|
||||
- [Quiz Grader](https://github.com/ned1313/quiz-grader) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A lightweight utility engineered to automate the grading and feedback of quizzes and programming assignments. It processes markdown-based inputs to generate structured performance assessments. Grounding highlights its utility in small-scale educational pipelines or self-assessment exercises.
|
||||
## Operating Systems
|
||||
|
||||
### Linux Utilities
|
||||
|
||||
#### CLI Curation
|
||||
|
||||
- **(2025)** [**CommandLineFu 🌟**](https://www.commandlinefu.com/commands/browse) 🌟🌟🌟🌟 <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — An immense, user-voted platform for sharing and assessing terminal tricks. Perfect for tracking down highly specific, multi-tool regex constructs or one-liners.
|
||||
## Programming Languages
|
||||
|
||||
### Go
|
||||
@@ -303,5 +316,5 @@
|
||||
- [atlassian.com: Git cheat sheet](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A comprehensive and beautifully formatted PDF and web-based Git command reference guide from Atlassian. Covers essential command categories including repository creation, local staging, history review, branch management, and remote synchronization.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Mkdocs](./mkdocs.md) | [Git](./git.md) | [Linux](./linux.md)
|
||||
💡 **Explore Related:** [Other Awesome Lists](./other-awesome-lists.md) | [Mkdocs](./mkdocs.md) | [Demos](./demos.md)
|
||||
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Kubernetes Security](./kubernetes-security.md) | [Devsecops](./devsecops.md) | [Kustomize](./kustomize.md)
|
||||
💡 **Explore Related:** [IaC](./iac.md) | [Terraform](./terraform.md) | [Ansible](./ansible.md)
|
||||
|
||||
|
||||
@@ -3,10 +3,6 @@
|
||||
!!! info "Architectural Context"
|
||||
Detailed reference for CI/CD Kubernetes Plugins in the context of Engineering Pipeline.
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [GitLab Kubernetes Agent available on GitLab.com](https://docs.gitlab.com/releases/#gitlab-kubernetes-agent-available-on-gitlabcom) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
## Continuous Delivery
|
||||
|
||||
### GitOps
|
||||
@@ -27,5 +23,5 @@
|
||||
- [openshift-client](https://plugins.jenkins.io/openshift-client) <span class='md-tag md-tag--warning'>[EN CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Exposes OpenShift's command-line tool definitions directly inside Jenkins jobs, enabling custom script actions to command remote clusters safely.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Registries](./registries.md) | [Jenkins](./jenkins.md) | [CI/CD](./cicd.md)
|
||||
💡 **Explore Related:** [Gitops](./gitops.md) | [Flux](./flux.md) | [Argo](./argo.md)
|
||||
|
||||
|
||||
@@ -5,9 +5,12 @@
|
||||
|
||||
## Standard Reference
|
||||
|
||||
- [Automating Kubernetes Deployments with Helm Charts](https://blog.devops.dev/automating-kubernetes-deployments-with-helm-charts-baaec0e6fbc5) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone IaC Accelerator](https://azure.github.io/Azure-Landing-Zones/accelerator) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Automating Microsoft Sentinel Deployment with Azure DevOps CI/CD](https://noodlemctwoodle.medium.com/automating-microsoft-sentinel-deployment-with-azure-devops-ci-cd-2d4ae0c4e254) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [FossFLOW](https://github.com/stan-smith/FossFLOW) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Automating Kubernetes Deployments with Helm Charts](https://blog.devops.dev/automating-kubernetes-deployments-with-helm-charts-baaec0e6fbc5) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Wikipedia.org: DevOps](https://en.wikipedia.org/wiki/DevOps) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform Enterprise 2.0](https://t.co/UmacHpStqI) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Wikipedia.org: Continuous Integration](https://en.wikipedia.org/wiki/Continuous_integration) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Wikipedia.org: Continuous Delivery](https://en.wikipedia.org/wiki/Continuous_delivery) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [DZone: Continuous Integration: Servers and Tools](https://dzone.com/refcardz/continuous-integration-servers) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -37,10 +40,7 @@
|
||||
- [gitconnected.com: Blue-Green with Canary Deployment — A Novel approach](https://levelup.gitconnected.com/blue-green-with-canary-deployment-a-novel-approach-2cee77ff564d) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cd.foundation: Intro to Deployment Strategies: Blue-Green, Canary, and More' 🌟](https://cd.foundation/blog/2021/03/24/intro-to-deployment-strategies-blue-green-canary-and-more) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [devopslearners.com: Blue-Green vs Canary Deployment](https://devopslearners.com/blue-green-vs-canary-deployment-76436d7f6bc1) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Azure Landing Zone IaC Accelerator](https://azure.github.io/Azure-Landing-Zones/accelerator) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [mediatemple.net: Cloud-Native CI/CD Workflows in AWS: 3 Use Cases](https://mediatemple.net/blog/cloud-hosting/cicd-workflows-aws-3-use-cases) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Terraform Enterprise 2.0](https://t.co/UmacHpStqI) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [FossFLOW](https://github.com/stan-smith/FossFLOW) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [dzone: DevOps: CI/CD Tools to Watch Out for in 2022](https://dzone.com/articles/devops-cicd-tools-to-watch-out-for-in-2022) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: When Should You Self-Host CI Tools? | William Anderson](https://betterprogramming.pub/when-should-you-self-host-ci-tools-330fc38d2a6) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
@@ -81,7 +81,6 @@
|
||||
|
||||
#### Blue-Green
|
||||
|
||||
- **(2022)** [==semaphoreci.com: Continuous Blue-Green Deployments With Kubernetes 🌟==](https://semaphore.io/blog/continuous-blue-green-deployments-with-kubernetes) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> 🌟🌟🌟🌟🌟 <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — A highly-rated technical guide illustrating step-by-step implementation of automated Blue-Green deployments within a Kubernetes cluster. Details traffic switching using Kubernetes Services and ingress resources, highlighting rollback procedures and pipeline workflow integration.
|
||||
- [opsmx.com: What is Blue Green Deployment ?](https://www.opsmx.com/blog/blue-green-deployment) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Explains the fundamental architecture of Blue-Green deployment models, evaluating how this strategy minimizes downtime and mitigates risks during production releases. Offers comparisons against canary configurations and covers prerequisite infrastructure needs.
|
||||
#### Overview
|
||||
|
||||
@@ -134,8 +133,8 @@
|
||||
|
||||
- [Draw.io MCP for Diagram Generation: Why It’s Worth Using](https://thomasthornton.cloud/draw-io-mcp-for-diagram-generation-why-its-worth-using) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An illustrative guide showing how the Draw.io Model Context Protocol (MCP) server allows AI assistants to programmatically generate and edit architecture diagrams. Bridges the gap between conversational design instructions and technical diagrams.
|
||||
- [Azure DevOps MCP Server Public Preview](https://devblogs.microsoft.com/devops/azure-devops-mcp-server-public-preview) <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — The official public announcement details the release and capabilities of the Azure DevOps MCP server. Highlights the architectural integration of Large Language Models directly into enterprise ADO workflows for automated engineering management.
|
||||
- [Kiro: Engineering Rigor for Agentic Development](https://kiro.dev) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — An emerging framework focused on enforcing software engineering rigor, test-driven validation, and deterministic guardrails within AI Agent-driven code generation and execution loops. Provides platform architectures for managing safe agent-based deployments.
|
||||
- [Azure DevOps MCP Server](https://github.com/microsoft/azure-devops-mcp) <span class='md-tag md-tag--info'>⭐ 1718</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — An official Microsoft MCP server repository enabling AI Agents (like Claude or GitHub Copilot) to interact seamlessly with Azure DevOps. Allows agents to manage work items, query repositories, inspect pipeline logs, and orchestrate PR reviews dynamically.
|
||||
- [Kiro: Engineering Rigor for Agentic Development](https://kiro.dev) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — An emerging framework focused on enforcing software engineering rigor, test-driven validation, and deterministic guardrails within AI Agent-driven code generation and execution loops. Provides platform architectures for managing safe agent-based deployments.
|
||||
- [Terraform & OpenTofu Skill for AI Agents](https://github.com/antonbabenko/terraform-skill) <span class='md-tag md-tag--info'>⭐ 1881</span> <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--warning'>[EMERGING]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — An experimental, open-source repository establishing unified Model Context Protocol (MCP) skills or AI tools for Terraform and OpenTofu. Empowers AI agents to dynamically generate, parse, validate, and execute infrastructure-as-code definitions with semantic awareness.
|
||||
#### Coding Assistants
|
||||
|
||||
@@ -175,8 +174,8 @@
|
||||
|
||||
##### Azure DevOps (1)
|
||||
|
||||
- [Azure DevOps Terraform Pipeline (Complete Guide + YAML Examples)](https://deniscooper.co.uk/azure-devops-terraform-pipeline) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A production-grade, step-by-step tutorial on building a fully secure and automated Terraform deployment pipeline within Azure DevOps. Provides robust, reusable YAML template definitions, including state locking configurations, plan validations, and multi-environment promotions.
|
||||
- [Automate Terraform Testing with Azure DevOps Pipelines](https://skundunotes.com/2025/01/22/automate-terraform-testing-with-azure-devops-pipelines) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Provides a complete implementation walkthrough for embedding robust automated test suites (including tftest and checkov) inside Azure DevOps pipelines. Demonstrates how to validate infrastructure compliance and dry-run infrastructure updates early in the pipeline.
|
||||
- [Azure DevOps Terraform Pipeline (Complete Guide + YAML Examples)](https://deniscooper.co.uk/azure-devops-terraform-pipeline) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A production-grade, step-by-step tutorial on building a fully secure and automated Terraform deployment pipeline within Azure DevOps. Provides robust, reusable YAML template definitions, including state locking configurations, plan validations, and multi-environment promotions.
|
||||
##### GitHub Actions (1)
|
||||
|
||||
- [Terraform Module Releaser GitHub Action](https://github.com/techpivot/terraform-module-releaser) <span class='md-tag md-tag--info'>⭐ 221</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A specialized GitHub Action designed to automate the release process, version tagging, and registry publication of Terraform modules. Resolves development overhead by automatically generating release logs and enforcing Semantic Versioning.
|
||||
@@ -196,8 +195,8 @@
|
||||
#### Azure DevOps (3)
|
||||
|
||||
- [Securing Azure DevOps When Using Private Repositories](https://www.linkedin.com/top-content/?trk=article_not_found) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Analyses secure integration patterns for private Azure DevOps environments. Offers standard reference controls for isolating source code hosting, managing external worker access, and mitigating common misconfiguration patterns across self-hosted agent pools.
|
||||
- [Update to Azure DevOps Allowed IP Addresses](https://devblogs.microsoft.com/devops/update-to-ado-allowed-ip-addresses) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official documentation outlines the network security updates for Azure DevOps, focusing on the transitioning IP address ranges and service tags. Crucial for security engineers managing firewalls and strict ingress/egress rules to maintain uninterrupted pipeline connectivity.
|
||||
- [Dependabot Version Updates in Azure DevOps](https://www.returngis.net/2025/02/dependabot-updates-en-azure-devops) <span class='md-tag md-tag--warning'>[SPANISH CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — A practical guide explaining the installation and automated orchestration of Dependabot-style dependency scanning and automated PR version updates within Azure DevOps repositories. Written in Spanish. [SPANISH CONTENT]
|
||||
- [Update to Azure DevOps Allowed IP Addresses](https://devblogs.microsoft.com/devops/update-to-ado-allowed-ip-addresses) <span class='md-tag md-tag--primary'>[DOCUMENTATION]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Official documentation outlines the network security updates for Azure DevOps, focusing on the transitioning IP address ranges and service tags. Crucial for security engineers managing firewalls and strict ingress/egress rules to maintain uninterrupted pipeline connectivity.
|
||||
#### Cloud Identity
|
||||
|
||||
- [Avoiding Mistakes with AWS OIDC Integration Conditions](https://www.wiz.io/blog/avoiding-mistakes-with-aws-oidc-integration-conditions) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — An in-depth security analysis detailing how to configure AWS OpenID Connect (OIDC) trust relationships correctly in GitHub Actions and other CI providers. Highlights major vulnerabilities arising from missing subject (sub) or audience (aud) validation and shows how to restrict access patterns safely.
|
||||
@@ -243,8 +242,8 @@
|
||||
|
||||
##### AWS (1)
|
||||
|
||||
- [Cloud Posse runs-on: GitHub Actions Self-Hosted Runners](https://docs.cloudposse.com/components/library/aws/runs-on) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A robust, production-tested Terraform component for deploying and autoscaling self-hosted GitHub Actions runners inside AWS. Integrates with AWS ECS, EKS, or EC2 to provide secure, ephemeral, and cost-effective pipeline execution environments.
|
||||
- [RunsOn: Self-hosted GitHub Actions Runners in AWS](https://runs-on.com) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span> — A commercial-grade, highly efficient solution for hosting ephemeral, auto-scaled GitHub Actions runners directly on your AWS account. Delivers a significant reduction in GitHub Actions spend (up to 10x) using cheap EC2 spot instances, fast cache persistence, and seamless setup.
|
||||
- [Cloud Posse runs-on: GitHub Actions Self-Hosted Runners](https://docs.cloudposse.com/components/library/aws/runs-on) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — A robust, production-tested Terraform component for deploying and autoscaling self-hosted GitHub Actions runners inside AWS. Integrates with AWS ECS, EKS, or EC2 to provide secure, ephemeral, and cost-effective pipeline execution environments.
|
||||
### Kubernetes Management
|
||||
|
||||
#### PaaS Solutions
|
||||
@@ -296,8 +295,8 @@
|
||||
- [sdtimes.com: The State of CI/CD](https://sdtimes.com/cicd/the-state-of-ci-cd) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight: Broad industry survey analyzing developer adoption and tool fragmentation in delivery architectures. Live Grounding: Highlights the continuous shift towards GitOps, automated security gates (DevSecOps), and platform orchestration. Useful for long-term strategic architectural planning.
|
||||
#### Open Source Pipelines
|
||||
|
||||
- [opensource.com: A beginner's guide to building DevOps pipelines with open' source tools](https://opensource.com/article/19/4/devops-pipeline) <span class='md-tag md-tag--primary'>[GUIDE]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Curator Insight: Demystifies CI/CD pipeline construction using classic open-source tools like Jenkins and GitLab CI. Live Grounding: Provides an educational blueprint on source control integration, build automation, and deployment validation. Highly suitable for teams transitioning from manual deployments to early automation.
|
||||
- [devops.com: 7 Popular Open Source CI/CD Tools](https://devops.com/7-popular-open-source-ci-cd-tools) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight: Comparative survey of prominent open-source continuous integration and deployment engines. Live Grounding: Analyzes Jenkins, GitLab, Tekton, and others, contrasting their resource overheads and declarative features. Useful for teams choosing a baseline deployment stack.
|
||||
- [opensource.com: A beginner's guide to building DevOps pipelines with open' source tools](https://opensource.com/article/19/4/devops-pipeline) <span class='md-tag md-tag--primary'>[GUIDE]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Curator Insight: Demystifies CI/CD pipeline construction using classic open-source tools like Jenkins and GitLab CI. Live Grounding: Provides an educational blueprint on source control integration, build automation, and deployment validation. Highly suitable for teams transitioning from manual deployments to early automation.
|
||||
#### Theory and Concepts (1)
|
||||
|
||||
- **(2023)** [infoworld.com: What is CI/CD? Continuous integration and continuous delivery explained](https://www.infoworld.com/article/2269266/what-is-cicd-continuous-integration-and-continuous-delivery-explained.html) 🌟🌟 <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight: Broad industry-focused definition of CI/CD pipeline automation and toolchains. Live Grounding: Explores the evolutionary shift from monolithic build scripts to declarative yaml-based pipeline orchestration. Provides a vendor-neutral high-level analysis of standard integration loops.
|
||||
@@ -313,8 +312,8 @@
|
||||
- **(2023)** [lambdatest.com: Top 10 CI/CD Pipeline Implementation Challenges And Solutions](https://www.testmuai.com/blog/cicd-pipeline-challenges) <span class='md-tag md-tag--primary'>[GUIDE]</span> 🌟🌟 <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — Curator Insight: Highlights common pipeline failure patterns (e.g., flaky testing, configuration drift) and mitigation techniques. Live Grounding: Discusses technical strategies such as containerizing run environments and orchestrating parallel testing clusters. Ideal for operational maintenance planning.
|
||||
#### Trunk-Based Development
|
||||
|
||||
- [thinkinglabs.io: Feature Branching considered evil 🌟](https://thinkinglabs.io/talks/feature-branching-considered-evil.html) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Curator Insight: A provocative analysis contrasting long-lived feature branches with trunk-based development. Live Grounding: Details how feature branches delay integration, hide conflicts, and impede actual continuous integration. Offers clear alternative patterns like branch-by-abstraction and feature flags.
|
||||
- [Purposeful Commits](https://chrisarcand.com/purposeful-commits) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Curator Insight: Explores the cultural developer hygiene of crafting clear, logical git commits. Live Grounding: Details how concise commit histories simplify pipeline automated testing, automated changelogs, and fast deployment troubleshooting. Essential software craft guidance.
|
||||
- [thinkinglabs.io: Feature Branching considered evil 🌟](https://thinkinglabs.io/talks/feature-branching-considered-evil.html) <span class='md-tag md-tag--critical'>[ADVANCED LEVEL]</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span> — Curator Insight: A provocative analysis contrasting long-lived feature branches with trunk-based development. Live Grounding: Details how feature branches delay integration, hide conflicts, and impede actual continuous integration. Offers clear alternative patterns like branch-by-abstraction and feature flags.
|
||||
### Cloud-Native Delivery
|
||||
|
||||
#### Best Practices (2)
|
||||
@@ -364,5 +363,5 @@
|
||||
- [The 12-Factor App: An Updated Guide](https://newsletter.francofernando.com/p/the-12-factor-app-an-updated-guide) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An updated architectural deep-dive into the Twelve-Factor App methodology. Reviews the classic software principles (like database separations, environment configs, and scaling processes) in modern Kubernetes environments.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Registries](./registries.md) | [Jenkins](./jenkins.md) | [Gitops](./gitops.md)
|
||||
💡 **Explore Related:** [Gitops](./gitops.md) | [Flux](./flux.md) | [Argo](./argo.md)
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
- [Lucidchart](https://lucid.co/marketplace/91074b9b/aws) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [What is the best way to generate a visual diagram of the AWS environment which includes VPC, VPN, EC2, and AMIs?](https://www.pluralsight.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [CloudCanvas - Diagramming for Cloud Infrastructure](https://cloudcanvas.co) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloudogu/k8s-diagrams](https://github.com/cloudogu/k8s-diagrams) <span class='md-tag md-tag--info'>⭐ 339</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [betterprogramming.pub: Solutions Architect Tips — The 5 Types of Architecture' Diagrams](https://betterprogramming.pub/solutions-architect-tips-the-5-types-of-architecture-diagrams-eb0c11996f9e) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [alibabacloud.com: How to Create an Effective Technical Architectural Diagram?](https://www.alibabacloud.com/blog/how-to-create-an-effective-technical-architectural-diagram_596100) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [learningdaily.dev: Software architecture diagramming and patterns](https://learningdaily.dev/software-architecture-diagramming-and-patterns-7d38999e7a12) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -36,6 +35,7 @@
|
||||
- [github.com/dcasati/kubernetes-PlantUML](https://github.com/dcasati/kubernetes-PlantUML) <span class='md-tag md-tag--info'>⭐ 281</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [excalidraw.com](https://excalidraw.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [diagrams.mingrammer.com: Diagram as Code](https://diagrams.mingrammer.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cloudogu/k8s-diagrams](https://github.com/cloudogu/k8s-diagrams) <span class='md-tag md-tag--info'>⭐ 339</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [AWS Architecture Icons](https://aws.amazon.com/architecture/icons) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Google Cloud Architecture Icons](https://cloud.google.com/icons) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [aquasecurity/cloudsec-icons](https://github.com/aquasecurity/cloudsec-icons) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -63,5 +63,5 @@
|
||||
- [Draw.io MCP for Diagram Generation: Why It’s Worth Using](https://thomasthornton.cloud/draw-io-mcp-for-diagram-generation-why-its-worth-using) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An illustrative guide showing how the Draw.io Model Context Protocol (MCP) server allows AI assistants to programmatically generate and edit architecture diagrams. Bridges the gap between conversational design instructions and technical diagrams.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Mkdocs](./mkdocs.md) | [Cheatsheets](./cheatsheets.md) | [Git](./git.md)
|
||||
💡 **Explore Related:** [Other Awesome Lists](./other-awesome-lists.md) | [Mkdocs](./mkdocs.md) | [Demos](./demos.md)
|
||||
|
||||
|
||||
@@ -58,5 +58,5 @@
|
||||
- [ServerlessHorrors: A Web Compiling Nightmares in the Serverless World](https://revistacloud.com/serverlesshorrors-la-web-que-recoge-las-peores-pesadillas-del-mundo-serverless) <span class='md-tag md-tag--warning'>[SPANISH CONTENT]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — Un compendio técnico sobre los errores más comunes y costosos en el diseño de arquitecturas serverless. Ofrece un análisis crítico de fallos reales de concurrencia, inicios en frío ("cold starts"), costos fuera de control e integración de servicios, sirviendo como guía de advertencia para diseñadores de sistemas distribuidos. [SPANISH CONTENT]
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Mkdocs](./mkdocs.md) | [Cheatsheets](./cheatsheets.md) | [Git](./git.md)
|
||||
💡 **Explore Related:** [Other Awesome Lists](./other-awesome-lists.md) | [Mkdocs](./mkdocs.md) | [Demos](./demos.md)
|
||||
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Caching](./caching.md) | [Web Servers](./web-servers.md) | [Kubernetes Networking](./kubernetes-networking.md)
|
||||
💡 **Explore Related:** [Kubernetes Networking](./kubernetes-networking.md) | [Servicemesh](./servicemesh.md) | [Networking](./networking.md)
|
||||
|
||||
|
||||
@@ -31,22 +31,24 @@
|
||||
- [Red Hat Ecosystem Catalog](https://catalog.redhat.com/en/software/containers/explore) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [How to use the --privileged flag with container engines](https://www.redhat.com/en/blog/privileged-flag-container-engines) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Promoting container images between registries with skopeo](https://www.redhat.com/en/blog/promoting-container-images-between-registries-with-skopeo) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [What is Podman and How Does it Compare to Docker?](https://build5nines.com/what-is-podman-and-how-does-it-compare-to-docker) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cri-o.io](https://cri-o.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Podman and Buildah for Docker users 🌟](https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Skopeo](https://github.com/containers/skopeo) <span class='md-tag md-tag--info'>⭐ 10891</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [A Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [sherifabdlnaby/kubephp](https://github.com/sherifabdlnaby/kubephp) <span class='md-tag md-tag--info'>⭐ 455</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [containerd - An open and reliable container runtime](https://github.com/containerd/containerd) <span class='md-tag md-tag--info'>⭐ 20746</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
- [What is Podman and How Does it Compare to Docker?](https://build5nines.com/what-is-podman-and-how-does-it-compare-to-docker) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.alexellis.io: Building containers without Docker 🌟](https://blog.alexellis.io/building-containers-without-docker) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Buildah.io](https://buildah.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Podman.io](https://podman.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [A Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [runc](https://github.com/opencontainers/runc) <span class='md-tag md-tag--info'>⭐ 13237</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [crun](https://github.com/containers/crun) <span class='md-tag md-tag--info'>⭐ 3933</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [Conmon](https://github.com/containers/conmon) <span class='md-tag md-tag--info'>⭐ 479</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [containerd - An open and reliable container runtime](https://github.com/containerd/containerd) <span class='md-tag md-tag--info'>⭐ 20746</span> <span class='md-tag md-tag--success'>[DE FACTO STANDARD]</span>
|
||||
- [Kubernetes.io: Container runtimes](https://kubernetes.io/docs/setup/production-environment/container-runtimes) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Docker](https://www.docker.com/products/container-runtime) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [containerd.io](https://containerd.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Podman.io](https://podman.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [cri-o.io](https://cri-o.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Intro to Podman](https://developers.redhat.com/blog/2018/08/29/intro-to-podman) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [redhat.com: Be careful when pulling images by short name](https://www.redhat.com/en/blog/be-careful-when-pulling-images-short-name) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Podman and Buildah for Docker users 🌟](https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [podmain.io: Announcing Podman v2](https://podman.io/blogs/2020/06/29/podman-v2-announce.html) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: Getting started with Podman](https://www.youtube.com/watch?v=Za36qHbrf3g) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Rootless containers with Podman: The basics](https://developers.redhat.com/blog/2020/09/25/rootless-containers-with-podman-the-basics) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -77,7 +79,6 @@
|
||||
- [dev.to: Containers without Docker (podman, buildah, and skopeo)](https://dev.to/cedricclyburn/containers-without-docker-podman-buildah-and-skopeo-1eal) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Podman Desktop](https://podman-desktop.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [developers.redhat.com: Podman expands to the Desktop](https://developers.redhat.com/articles/2022/10/24/podman-expands-desktop) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [sherifabdlnaby/kubephp](https://github.com/sherifabdlnaby/kubephp) <span class='md-tag md-tag--info'>⭐ 455</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [iximiuz.com: In Pursuit of Better Container Images: Alpine, Distroless,' Apko, Chisel, DockerSlim, oh my!](https://iximiuz.com/en/posts/containers-making-images-better) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Introducing the Red Hat Universal Base Image 🌟](https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [What is Red Hat Universal Base Image?](https://developers.redhat.com/blog/2019/10/09/what-is-red-hat-universal-base-image) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -86,7 +87,6 @@
|
||||
- [developers.redhat.com: How to pick the right container base image](https://developers.redhat.com/blog/2021/04/13/how-to-pick-the-right-container-base-image) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [itnext.io: Docker, Kaniko, Buildah](https://itnext.io/docker-kaniko-buildah-209abdde5f94) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [blog.kubesimplify.com: Getting started with ko: A fast container image builder' for your Go applications](https://blog.kubesimplify.com/getting-started-with-ko-a-fast-container-image-builder-for-your-go-applications) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Buildah.io](https://buildah.io) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/containers/buildah](https://github.com/containers/buildah) <span class='md-tag md-tag--info'>⭐ 8795</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
- [developers.redhat.com: Getting started with Buildah](https://developers.redhat.com/blog/2021/01/11/getting-started-with-buildah) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [youtube: How to live without Docker for developers - Part 1 | Migration' from Docker to Buildah and Podman](https://www.youtube.com/watch?app=desktop&v=Fl0iLoAMdzc&ab_channel=AndrewMalkov) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
@@ -114,5 +114,5 @@
|
||||
- [bul: Interactive TUI for Exploring Kubernetes Container Logs](https://github.com/ynqa/bul) <span class='md-tag md-tag--info'>⭐ 16</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — An interactive Terminal User Interface (TUI) written in Go for streaming and searching Kubernetes container logs. Grounding suggests that development has stalled (inactive for over 4 years), so while technically functional for local dev, tools like Stern or K9s are preferred in enterprise environments.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Kubernetes Monitoring](./kubernetes-monitoring.md) | [Kubernetes Troubleshooting](./kubernetes-troubleshooting.md) | [Kubernetes Storage](./kubernetes-storage.md)
|
||||
💡 **Explore Related:** [Kubernetes Bigdata](./kubernetes-bigdata.md) | [Kubernetes Operators Controllers](./kubernetes-operators-controllers.md) | [Openshift](./openshift.md)
|
||||
|
||||
|
||||
@@ -57,5 +57,5 @@
|
||||
- **(2023)** [codefresh.io: Using GitOps for Infrastructure and Applications With Crossplane and Argo CD](https://octopus.com/devops/gitops) <span class='md-tag md-tag--primary'>[GUIDE]</span> <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — This architectural study outlines the synchronization of infrastructure and application deployments using GitOps principles, examining the strategic union of Crossplane and continuous deployment tools.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Kubernetes Security](./kubernetes-security.md) | [Devsecops](./devsecops.md) | [Kustomize](./kustomize.md)
|
||||
💡 **Explore Related:** [IaC](./iac.md) | [Terraform](./terraform.md) | [Ansible](./ansible.md)
|
||||
|
||||
|
||||
@@ -48,6 +48,8 @@
|
||||
- [Crunchy PostgreSQL and Openshift](https://www.redhat.com/en/blog/leveraging-the-crunchy-postgresql) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ref1](https://www.redhat.com/en/blog/understanding-service-accounts-sccs) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> — - [ref2](https://docs.openshift.com/container-platform/4.1/authentication/understanding-and-creating-service-accounts.html)
|
||||
- [ref3](https://docs.openshift.com/container-platform/4.1/authentication/managing-security-context-constraints.html#role-based-access-to-ssc_configuring-internal-oauth)
|
||||
- [Kubernetes.io: Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ref3](https://dzone.com/articles/understanding-openshift-security-context-constrain) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [crunchydata.com](https://www.crunchydata.com) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/CrunchyData](https://github.com/CrunchyData) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [github.com/CrunchyData/postgres-operator](https://github.com/CrunchyData/postgres-operator) <span class='md-tag md-tag--info'>⭐ 4406</span> <span class='md-tag md-tag--info'>[ENTERPRISE-STABLE]</span>
|
||||
@@ -70,10 +72,15 @@
|
||||
- [ref1](https://access.crunchydata.com/documentation/postgres-operator/latest/operatorcli/pgo-overview) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [crunchy-pgadmin4](https://access.crunchydata.com/documentation/crunchy-postgres-containers/4.3.0/container-specifications/crunchy-pgadmin4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [pgAdmin 4](https://access.crunchydata.com/documentation/crunchy-postgres-containers/4.3.0/examples/administration/pgadmin4) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [ref3](https://dzone.com/articles/understanding-openshift-security-context-constrain) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
- [Kubernetes.io: Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator) <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span>
|
||||
|
||||
## Data Architecture
|
||||
|
||||
### Databases
|
||||
|
||||
#### PostgreSQL
|
||||
|
||||
- **(2025)** [learn.crunchydata.com](https://www.crunchydata.com/developers/tutorials) 🌟🌟🌟 <span class='md-tag md-tag--info'>[COMMUNITY-TOOL]</span> <span class='md-tag md-tag--secondary'>[GUIDE]</span> — An interactive database training portal detailing progressive PostgreSQL configuration, clustering, and troubleshooting. Crucial for architects planning highly available, stateful cloud-native storage engines.
|
||||
|
||||
---
|
||||
💡 **Explore Related:** [Yaml](./yaml.md) | [Message Queue](./message-queue.md) | [Databases](./databases.md)
|
||||
💡 **Explore Related:** [Databases](./databases.md) | [Message Queue](./message-queue.md) | [Yaml](./yaml.md)
|
||||
|
||||
|
||||