blockmine 1.24.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/package.json +2 -2
  5. package/backend/prisma/migrations/20260328173000_add_plugin_source_ref/migration.sql +2 -0
  6. package/backend/prisma/migrations/migration_lock.toml +2 -2
  7. package/backend/prisma/schema.prisma +2 -0
  8. package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
  9. package/backend/src/api/routes/apiKeys.js +8 -0
  10. package/backend/src/api/routes/bots.js +271 -9
  11. package/backend/src/api/routes/eventGraphs.js +151 -1
  12. package/backend/src/api/routes/health.js +38 -0
  13. package/backend/src/api/routes/nodeRegistry.js +63 -0
  14. package/backend/src/api/routes/plugins.js +254 -29
  15. package/backend/src/api/routes/servers.js +14 -2
  16. package/backend/src/container.js +11 -8
  17. package/backend/src/core/BotCommandLoader.js +161 -0
  18. package/backend/src/core/BotConnection.js +125 -0
  19. package/backend/src/core/BotEventHandlers.js +234 -0
  20. package/backend/src/core/BotIPCHandler.js +445 -0
  21. package/backend/src/core/BotManager.js +15 -7
  22. package/backend/src/core/BotProcess.js +169 -140
  23. package/backend/src/core/EventGraphManager.js +7 -3
  24. package/backend/src/core/GraphDebugHandler.js +229 -0
  25. package/backend/src/core/GraphDebugIPC.js +117 -0
  26. package/backend/src/core/GraphExecutionEngine.js +545 -978
  27. package/backend/src/core/GraphTraversal.js +80 -0
  28. package/backend/src/core/GraphValidation.js +73 -0
  29. package/backend/src/core/NodeDefinition.js +138 -0
  30. package/backend/src/core/NodeRegistry.js +153 -141
  31. package/backend/src/core/PluginLoader.js +83 -3
  32. package/backend/src/core/PluginManager.js +346 -35
  33. package/backend/src/core/RewindSignal.js +9 -0
  34. package/backend/src/core/config/ConfigValidator.js +72 -0
  35. package/backend/src/core/config/FeatureFlags.js +52 -0
  36. package/backend/src/core/config/__tests__/ConfigValidator.test.js +232 -0
  37. package/backend/src/core/domain/entities/Bot.js +39 -0
  38. package/backend/src/core/domain/entities/Command.js +41 -0
  39. package/backend/src/core/domain/entities/EventGraph.js +39 -0
  40. package/backend/src/core/domain/entities/Plugin.js +45 -0
  41. package/backend/src/core/domain/entities/User.js +40 -0
  42. package/backend/src/core/domain/services/DependencyResolver.js +168 -0
  43. package/backend/src/core/domain/services/GraphValidator.js +117 -0
  44. package/backend/src/core/domain/services/PermissionChecker.js +34 -0
  45. package/backend/src/core/domain/services/__tests__/DependencyResolver.test.js +126 -0
  46. package/backend/src/core/domain/valueObjects/BotConfig.js +27 -0
  47. package/backend/src/core/domain/valueObjects/DependencyGraph.js +86 -0
  48. package/backend/src/core/domain/valueObjects/PluginManifest.js +36 -0
  49. package/backend/src/core/errors/BaseError.js +29 -0
  50. package/backend/src/core/errors/ErrorHandler.js +81 -0
  51. package/backend/src/core/errors/__tests__/ErrorHandler.test.js +188 -0
  52. package/backend/src/core/errors/index.js +68 -0
  53. package/backend/src/core/infrastructure/BatchingUtility.js +66 -0
  54. package/backend/src/core/infrastructure/CircuitBreaker.js +103 -0
  55. package/backend/src/core/infrastructure/ConnectionPool.js +81 -0
  56. package/backend/src/core/infrastructure/RateLimiter.js +64 -0
  57. package/backend/src/core/infrastructure/__tests__/BatchingUtility.test.js +86 -0
  58. package/backend/src/core/infrastructure/__tests__/CircuitBreaker.test.js +156 -0
  59. package/backend/src/core/infrastructure/__tests__/ConnectionPool.test.js +146 -0
  60. package/backend/src/core/infrastructure/__tests__/RateLimiter.test.js +171 -0
  61. package/backend/src/core/ipc/botApiFactory.js +72 -0
  62. package/backend/src/core/ipc/ipcMessageTypes.js +115 -0
  63. package/backend/src/core/logging/AuditLogger.js +61 -0
  64. package/backend/src/core/logging/StructuredLogger.js +80 -0
  65. package/backend/src/core/logging/__tests__/StructuredLogger.test.js +213 -0
  66. package/backend/src/core/logging/index.js +7 -0
  67. package/backend/src/core/metrics/MetricsCollector.js +104 -0
  68. package/backend/src/core/metrics/__tests__/MetricsCollector.test.js +131 -0
  69. package/backend/src/core/node-registries/actionsNodes.js +191 -0
  70. package/backend/src/core/node-registries/arraysNodes.js +152 -0
  71. package/backend/src/core/node-registries/botNodes.js +48 -0
  72. package/backend/src/core/node-registries/containerNodes.js +141 -0
  73. package/backend/src/core/node-registries/dataNodes.js +284 -0
  74. package/backend/src/core/node-registries/debugNodes.js +23 -0
  75. package/backend/src/core/node-registries/eventsNodes.js +223 -0
  76. package/backend/src/core/node-registries/flowNodes.js +151 -0
  77. package/backend/src/core/node-registries/furnaceNodes.js +123 -0
  78. package/backend/src/core/node-registries/index.js +108 -0
  79. package/backend/src/core/node-registries/inventory.js +102 -106
  80. package/backend/src/core/node-registries/logicNodes.js +54 -0
  81. package/backend/src/core/node-registries/mathNodes.js +38 -0
  82. package/backend/src/core/node-registries/navigationNodes.js +109 -0
  83. package/backend/src/core/node-registries/objectsNodes.js +90 -0
  84. package/backend/src/core/node-registries/stringsNodes.js +165 -0
  85. package/backend/src/core/node-registries/timeNodes.js +105 -0
  86. package/backend/src/core/node-registries/typeNodes.js +22 -0
  87. package/backend/src/core/node-registries/usersNodes.js +126 -0
  88. package/backend/src/core/nodes/arrays/shuffle.js +14 -0
  89. package/backend/src/core/nodes/bot/get_name.js +8 -0
  90. package/backend/src/core/nodes/bot/stop_bot.js +5 -0
  91. package/backend/src/core/nodes/container/open.js +101 -111
  92. package/backend/src/core/nodes/data/store_read.js +26 -0
  93. package/backend/src/core/nodes/data/store_write.js +23 -0
  94. package/backend/src/core/nodes/event/call_event.js +31 -0
  95. package/backend/src/core/nodes/event/custom_event.js +8 -0
  96. package/backend/src/core/nodes/flow/timer.js +35 -0
  97. package/backend/src/core/nodes/inventory/drop.js +73 -65
  98. package/backend/src/core/nodes/inventory/equip.js +54 -45
  99. package/backend/src/core/nodes/inventory/select_slot.js +48 -46
  100. package/backend/src/core/nodes/navigation/follow.js +54 -51
  101. package/backend/src/core/nodes/navigation/go_to.js +41 -53
  102. package/backend/src/core/nodes/navigation/go_to_entity.js +65 -69
  103. package/backend/src/core/nodes/navigation/go_to_player.js +65 -70
  104. package/backend/src/core/nodes/navigation/stop.js +17 -26
  105. package/backend/src/core/nodes/users/add_to_group.js +24 -0
  106. package/backend/src/core/nodes/users/check_permission.js +26 -0
  107. package/backend/src/core/nodes/users/remove_from_group.js +24 -0
  108. package/backend/src/core/services/BotIPCMessageRouter.js +337 -0
  109. package/backend/src/core/services/BotLifecycleService.js +43 -450
  110. package/backend/src/core/services/CacheManager.js +83 -23
  111. package/backend/src/core/services/CrashRestartManager.js +42 -0
  112. package/backend/src/core/services/DebugSessionManager.js +114 -12
  113. package/backend/src/core/services/EventGraphService.js +69 -0
  114. package/backend/src/core/services/MinecraftBotManager.js +9 -1
  115. package/backend/src/core/services/PluginManagementService.js +84 -0
  116. package/backend/src/core/services/TestModeContext.js +65 -0
  117. package/backend/src/core/services/__tests__/CacheManager.test.js +168 -0
  118. package/backend/src/core/services.js +1 -11
  119. package/backend/src/core/validation/InputValidator.js +167 -0
  120. package/backend/src/core/validation/__tests__/InputValidator.test.js +296 -0
  121. package/backend/src/real-time/botApi/index.js +1 -1
  122. package/backend/src/real-time/socketHandler.js +26 -0
  123. package/backend/src/server.js +21 -6
  124. package/frontend/dist/assets/browser-ponyfill-D8y0Ty7C.js +2 -0
  125. package/frontend/dist/assets/index-CFJLS0dk.css +32 -0
  126. package/frontend/dist/assets/index-D91UGNMG.js +11260 -0
  127. package/frontend/dist/flags/en.svg +32 -0
  128. package/frontend/dist/flags/ru.svg +5 -0
  129. package/frontend/dist/index.html +2 -2
  130. package/frontend/dist/locales/en/admin.json +100 -0
  131. package/frontend/dist/locales/en/api-keys.json +58 -0
  132. package/frontend/dist/locales/en/bots.json +113 -0
  133. package/frontend/dist/locales/en/common.json +53 -0
  134. package/frontend/dist/locales/en/configuration.json +22 -0
  135. package/frontend/dist/locales/en/console.json +10 -0
  136. package/frontend/dist/locales/en/dashboard.json +85 -0
  137. package/frontend/dist/locales/en/dialogs.json +70 -0
  138. package/frontend/dist/locales/en/event-graphs.json +50 -0
  139. package/frontend/dist/locales/en/graph-store.json +70 -0
  140. package/frontend/dist/locales/en/login.json +36 -0
  141. package/frontend/dist/locales/en/management.json +192 -0
  142. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  143. package/frontend/dist/locales/en/nodes.json +1132 -0
  144. package/frontend/dist/locales/en/permissions.json +50 -0
  145. package/frontend/dist/locales/en/plugin-detail.json +69 -0
  146. package/frontend/dist/locales/en/plugins.json +329 -0
  147. package/frontend/dist/locales/en/proxies.json +81 -0
  148. package/frontend/dist/locales/en/servers.json +39 -0
  149. package/frontend/dist/locales/en/setup.json +19 -0
  150. package/frontend/dist/locales/en/sidebar.json +195 -0
  151. package/frontend/dist/locales/en/tasks.json +62 -0
  152. package/frontend/dist/locales/en/visual-editor.json +418 -0
  153. package/frontend/dist/locales/en/websocket.json +86 -0
  154. package/frontend/dist/locales/ru/admin.json +100 -0
  155. package/frontend/dist/locales/ru/api-keys.json +58 -0
  156. package/frontend/dist/locales/ru/bots.json +113 -0
  157. package/frontend/dist/locales/ru/common.json +49 -0
  158. package/frontend/dist/locales/ru/configuration.json +22 -0
  159. package/frontend/dist/locales/ru/console.json +10 -0
  160. package/frontend/dist/locales/ru/dashboard.json +85 -0
  161. package/frontend/dist/locales/ru/dialogs.json +70 -0
  162. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  163. package/frontend/dist/locales/ru/graph-store.json +70 -0
  164. package/frontend/dist/locales/ru/login.json +36 -0
  165. package/frontend/dist/locales/ru/management.json +192 -0
  166. package/frontend/dist/locales/ru/minecraft-viewer.json +30 -0
  167. package/frontend/dist/locales/ru/nodes.json +1131 -0
  168. package/frontend/dist/locales/ru/permissions.json +50 -0
  169. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  170. package/frontend/dist/locales/ru/plugins.json +209 -0
  171. package/frontend/dist/locales/ru/proxies.json +81 -0
  172. package/frontend/dist/locales/ru/servers.json +39 -0
  173. package/frontend/dist/locales/ru/setup.json +19 -0
  174. package/frontend/dist/locales/ru/sidebar.json +195 -0
  175. package/frontend/dist/locales/ru/tasks.json +62 -0
  176. package/frontend/dist/locales/ru/visual-editor.json +420 -0
  177. package/frontend/dist/locales/ru/websocket.json +86 -0
  178. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  179. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  180. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  181. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  182. package/frontend/package.json +6 -0
  183. package/nul +12 -0
  184. package/package.json +3 -3
  185. package/screen/3dviewer.png +0 -0
  186. package/screen/console.png +0 -0
  187. package/screen/dashboard.png +0 -0
  188. package/screen/graph_collabe.png +0 -0
  189. package/screen/graph_live_debug.png +0 -0
  190. package/screen/language_selector.png +0 -0
  191. package/screen/management_command.png +0 -0
  192. package/screen/node_debug_trace.png +0 -0
  193. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  194. package/screen/websocket.png +0 -0
  195. package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
  196. package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
  197. package/.claude/agents/README.md +0 -469
  198. package/.claude/agents/auth-route-debugger.md +0 -118
  199. package/.claude/agents/auth-route-tester.md +0 -93
  200. package/.claude/agents/auto-error-resolver.md +0 -97
  201. package/.claude/agents/build-optimizer.md +0 -236
  202. package/.claude/agents/code-architect.md +0 -34
  203. package/.claude/agents/code-architecture-reviewer.md +0 -83
  204. package/.claude/agents/code-explorer.md +0 -51
  205. package/.claude/agents/code-refactor-master.md +0 -94
  206. package/.claude/agents/code-reviewer.md +0 -46
  207. package/.claude/agents/cost-optimizer.md +0 -134
  208. package/.claude/agents/deployment-orchestrator.md +0 -113
  209. package/.claude/agents/documentation-architect.md +0 -82
  210. package/.claude/agents/frontend-error-fixer.md +0 -77
  211. package/.claude/agents/iac-code-generator.md +0 -71
  212. package/.claude/agents/incident-responder.md +0 -346
  213. package/.claude/agents/infrastructure-architect.md +0 -31
  214. package/.claude/agents/kubernetes-specialist.md +0 -56
  215. package/.claude/agents/migration-planner.md +0 -181
  216. package/.claude/agents/network-architect.md +0 -196
  217. package/.claude/agents/plan-reviewer.md +0 -52
  218. package/.claude/agents/refactor-planner.md +0 -63
  219. package/.claude/agents/security-scanner.md +0 -102
  220. package/.claude/agents/web-research-specialist.md +0 -78
  221. package/.claude/commands/cost-analysis.md +0 -315
  222. package/.claude/commands/dev-docs-update.md +0 -55
  223. package/.claude/commands/dev-docs.md +0 -51
  224. package/.claude/commands/feature-dev.md +0 -125
  225. package/.claude/commands/incident-debug.md +0 -247
  226. package/.claude/commands/infra-plan.md +0 -81
  227. package/.claude/commands/migration-plan.md +0 -478
  228. package/.claude/commands/route-research-for-testing.md +0 -37
  229. package/.claude/commands/security-review.md +0 -66
  230. package/.claude/hooks/CONFIG.md +0 -448
  231. package/.claude/hooks/README.md +0 -163
  232. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  233. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  234. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  235. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  236. package/.claude/hooks/error-handling-reminder.sh +0 -12
  237. package/.claude/hooks/error-handling-reminder.ts +0 -222
  238. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  239. package/.claude/hooks/package-lock.json +0 -556
  240. package/.claude/hooks/package.json +0 -16
  241. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  242. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  243. package/.claude/hooks/security-policy-check.sh +0 -247
  244. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  245. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  246. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  247. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  248. package/.claude/hooks/terraform-validator.sh +0 -53
  249. package/.claude/hooks/test-input.json +0 -7
  250. package/.claude/hooks/test-skill-activation.ts +0 -427
  251. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  252. package/.claude/hooks/tsc-check.sh +0 -173
  253. package/.claude/hooks/tsconfig.json +0 -19
  254. package/.claude/settings.json +0 -59
  255. package/.claude/settings.local.json +0 -67
  256. package/.claude/skills/README.md +0 -507
  257. package/.claude/skills/api-engineering/SKILL.md +0 -63
  258. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  259. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  260. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  261. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  262. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  263. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  264. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  265. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  266. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  267. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  268. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  269. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  270. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  271. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  272. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  273. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  274. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  275. package/.claude/skills/build-engineering/SKILL.md +0 -431
  276. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  277. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  278. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  279. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  280. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  281. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  282. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  283. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  284. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  285. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  286. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  287. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  288. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  289. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  290. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  291. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  292. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  293. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  294. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  295. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  296. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  297. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  298. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  299. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  300. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  301. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  302. package/.claude/skills/database-engineering/SKILL.md +0 -61
  303. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  304. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  305. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  306. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  307. package/.claude/skills/devsecops/SKILL.md +0 -374
  308. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  309. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  310. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  311. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  312. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  313. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  314. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  315. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  316. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  317. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  318. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  319. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  320. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  321. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  322. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  323. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  324. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  325. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  326. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  327. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  328. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  329. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  330. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  331. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  332. package/.claude/skills/engineering-management/SKILL.md +0 -356
  333. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  334. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  335. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  336. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  337. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  338. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  339. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  340. package/.claude/skills/error-tracking/SKILL.md +0 -379
  341. package/.claude/skills/frontend-design/SKILL.md +0 -42
  342. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  343. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  344. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  345. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  346. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  347. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  348. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  349. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  350. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  351. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  352. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  353. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  354. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  355. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  356. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  357. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  358. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  359. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  360. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  361. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  362. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  363. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  364. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  365. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  366. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  367. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  368. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  369. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  370. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  371. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  372. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  373. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  374. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  375. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  376. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  377. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  378. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  379. package/.claude/skills/network-engineering/SKILL.md +0 -385
  380. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  381. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  382. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  383. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  384. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  385. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  386. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  387. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  388. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  389. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  390. package/.claude/skills/node-development/SKILL.md +0 -317
  391. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  392. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  393. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  394. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  395. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  396. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  397. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  398. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  399. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  400. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  401. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  402. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  403. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  404. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  405. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  406. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  407. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  408. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  409. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  410. package/.claude/skills/release-engineering/SKILL.md +0 -393
  411. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  412. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  413. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  414. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  415. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  416. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  417. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  418. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  419. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  420. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  421. package/.claude/skills/route-tester/SKILL.md +0 -392
  422. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  423. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  424. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  425. package/.claude/skills/skill-developer/SKILL.md +0 -430
  426. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  427. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  428. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  429. package/.claude/skills/skill-rules.json +0 -2989
  430. package/.claude/skills/sre/SKILL.md +0 -464
  431. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  432. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  433. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  434. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  435. package/.claude/skills/sre/resources/incident-management.md +0 -436
  436. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  437. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  438. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  439. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  440. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  441. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  442. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  443. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  444. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  445. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  446. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  447. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  448. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  449. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  450. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  451. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  452. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  453. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  454. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  455. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  456. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  457. package/backend/package-lock.json +0 -6801
  458. package/backend/src/core/node-registries/actions.js +0 -202
  459. package/backend/src/core/node-registries/arrays.js +0 -155
  460. package/backend/src/core/node-registries/bot.js +0 -23
  461. package/backend/src/core/node-registries/container.js +0 -162
  462. package/backend/src/core/node-registries/data.js +0 -290
  463. package/backend/src/core/node-registries/debug.js +0 -26
  464. package/backend/src/core/node-registries/events.js +0 -201
  465. package/backend/src/core/node-registries/flow.js +0 -139
  466. package/backend/src/core/node-registries/furnace.js +0 -143
  467. package/backend/src/core/node-registries/logic.js +0 -62
  468. package/backend/src/core/node-registries/math.js +0 -42
  469. package/backend/src/core/node-registries/navigation.js +0 -111
  470. package/backend/src/core/node-registries/objects.js +0 -98
  471. package/backend/src/core/node-registries/strings.js +0 -187
  472. package/backend/src/core/node-registries/time.js +0 -113
  473. package/backend/src/core/node-registries/type.js +0 -25
  474. package/backend/src/core/node-registries/users.js +0 -79
  475. package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
  476. package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
@@ -1,695 +0,0 @@
1
- # Software-Defined Networking (SDN)
2
-
3
- Comprehensive guide to software-defined networking covering SDN architecture, network overlays, Kubernetes CNI plugins (Calico, Cilium), network policies, and modern networking paradigms.
4
-
5
- ## Table of Contents
6
-
7
- - [Overview](#overview)
8
- - [SDN Architecture](#sdn-architecture)
9
- - [Network Overlays](#network-overlays)
10
- - [Kubernetes CNI](#kubernetes-cni)
11
- - [Calico](#calico)
12
- - [Cilium](#cilium)
13
- - [Flannel](#flannel)
14
- - [Network Policies](#network-policies)
15
- - [Service Discovery](#service-discovery)
16
- - [Best Practices](#best-practices)
17
- - [Anti-Patterns](#anti-patterns)
18
-
19
- ## Overview
20
-
21
- Software-Defined Networking (SDN) separates the control plane from the data plane, enabling programmatic network management and dynamic configuration.
22
-
23
- **Key Benefits:**
24
- - Centralized network control
25
- - Dynamic configuration
26
- - Programmable networks
27
- - Vendor independence
28
- - Automation and orchestration
29
-
30
- ## SDN Architecture
31
-
32
- ### Traditional vs SDN
33
-
34
- ```
35
- Traditional Network: SDN Network:
36
- ┌─────────────────┐ ┌─────────────────┐
37
- │ Control Plane │ │ SDN Controller │
38
- │ (Routing) │ │ (Centralized) │
39
- └────────┬────────┘ └────────┬────────┘
40
- │ │
41
- ┌────▼─────┐ │ API
42
- │ Switch 1 │ ┌──────┴──────┐
43
- └──────────┘ │ │
44
- ┌─────▼──┐ ┌─────▼──┐
45
- │Switch 1│ │Switch 2│
46
- │(Data) │ │(Data) │
47
- └────────┘ └────────┘
48
- ```
49
-
50
- ### SDN Layers
51
-
52
- ```
53
- ┌─────────────────────────────────────┐
54
- │ Application Layer │
55
- │ (Network apps, orchestration) │
56
- ├─────────────────────────────────────┤
57
- │ Control Layer │
58
- │ (SDN controller, network logic) │
59
- ├─────────────────────────────────────┤
60
- │ Infrastructure Layer │
61
- │ (Physical/virtual network devices) │
62
- └─────────────────────────────────────┘
63
- ```
64
-
65
- ## Network Overlays
66
-
67
- ### VXLAN (Virtual Extensible LAN)
68
-
69
- **Characteristics:**
70
- - Layer 2 over Layer 3 tunneling
71
- - 24-bit VNID (16M networks)
72
- - UDP encapsulation (port 4789)
73
- - Multi-tenancy support
74
-
75
- **VXLAN Frame:**
76
- ```
77
- ┌────────────────────────────────────────┐
78
- │ Outer Ethernet Header │
79
- ├────────────────────────────────────────┤
80
- │ Outer IP Header │
81
- ├────────────────────────────────────────┤
82
- │ Outer UDP Header (port 4789) │
83
- ├────────────────────────────────────────┤
84
- │ VXLAN Header (VNI) │
85
- ├────────────────────────────────────────┤
86
- │ Inner Ethernet Header │
87
- ├────────────────────────────────────────┤
88
- │ Inner IP Header │
89
- ├────────────────────────────────────────┤
90
- │ Payload │
91
- └────────────────────────────────────────┘
92
- ```
93
-
94
- **Configuration Example:**
95
- ```bash
96
- # Create VXLAN interface
97
- ip link add vxlan0 type vxlan \
98
- id 100 \
99
- dev eth0 \
100
- dstport 4789 \
101
- local 10.0.1.10
102
-
103
- # Assign IP address
104
- ip addr add 192.168.100.1/24 dev vxlan0
105
-
106
- # Bring up interface
107
- ip link set vxlan0 up
108
-
109
- # Add remote endpoint
110
- bridge fdb append 00:00:00:00:00:00 dev vxlan0 dst 10.0.1.20
111
- ```
112
-
113
- ### GENEVE (Generic Network Virtualization Encapsulation)
114
-
115
- **Advantages over VXLAN:**
116
- - Flexible option TLVs
117
- - Better extensibility
118
- - Standardized by IETF
119
-
120
- ### GRE (Generic Routing Encapsulation)
121
-
122
- ```bash
123
- # Create GRE tunnel
124
- ip tunnel add gre1 mode gre \
125
- remote 203.0.113.20 \
126
- local 203.0.113.10 \
127
- ttl 255
128
-
129
- ip addr add 10.10.10.1/30 dev gre1
130
- ip link set gre1 up
131
- ```
132
-
133
- ## Kubernetes CNI
134
-
135
- ### Container Network Interface (CNI)
136
-
137
- **CNI Plugin Workflow:**
138
- ```
139
- 1. Kubernetes creates pod
140
- 2. Calls CNI plugin ADD command
141
- 3. CNI plugin:
142
- - Assigns IP address
143
- - Creates network interface
144
- - Sets up routes
145
- - Configures network policies
146
- 4. Returns network config to Kubernetes
147
- ```
148
-
149
- ### CNI Configuration
150
-
151
- ```json
152
- {
153
- "cniVersion": "0.4.0",
154
- "name": "k8s-pod-network",
155
- "plugins": [
156
- {
157
- "type": "calico",
158
- "log_level": "info",
159
- "datastore_type": "kubernetes",
160
- "nodename": "node1",
161
- "ipam": {
162
- "type": "calico-ipam"
163
- },
164
- "policy": {
165
- "type": "k8s"
166
- },
167
- "kubernetes": {
168
- "kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
169
- }
170
- },
171
- {
172
- "type": "portmap",
173
- "capabilities": {"portMappings": true}
174
- }
175
- ]
176
- }
177
- ```
178
-
179
- ## Calico
180
-
181
- ### Architecture
182
-
183
- ```
184
- ┌────────────────────────────────────────┐
185
- │ Calico Components │
186
- ├────────────────────────────────────────┤
187
- │ Felix (Agent on each node) │
188
- │ - Routing, ACLs, policy enforcement │
189
- ├────────────────────────────────────────┤
190
- │ BIRD (BGP client) │
191
- │ - Route distribution │
192
- ├────────────────────────────────────────┤
193
- │ Confd (Config manager) │
194
- │ - Monitors datastore, updates config │
195
- ├────────────────────────────────────────┤
196
- │ Typha (Optional) │
197
- │ - Scaling component for large clusters│
198
- └────────────────────────────────────────┘
199
- ```
200
-
201
- ### Installation
202
-
203
- ```yaml
204
- # Install Calico operator
205
- kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/tigera-operator.yaml
206
-
207
- # Configure Calico
208
- apiVersion: operator.tigera.io/v1
209
- kind: Installation
210
- metadata:
211
- name: default
212
- spec:
213
- calicoNetwork:
214
- ipPools:
215
- - blockSize: 26
216
- cidr: 192.168.0.0/16
217
- encapsulation: VXLANCrossSubnet
218
- natOutgoing: Enabled
219
- nodeSelector: all()
220
- registry: quay.io/
221
- ```
222
-
223
- ### IP Pool Configuration
224
-
225
- ```yaml
226
- apiVersion: crd.projectcalico.org/v1
227
- kind: IPPool
228
- metadata:
229
- name: default-ipv4-ippool
230
- spec:
231
- cidr: 192.168.0.0/16
232
- blockSize: 26
233
- ipipMode: Never
234
- vxlanMode: CrossSubnet
235
- natOutgoing: true
236
- nodeSelector: all()
237
- ```
238
-
239
- ### BGP Configuration
240
-
241
- ```yaml
242
- # BGP peer configuration
243
- apiVersion: crd.projectcalico.org/v1
244
- kind: BGPPeer
245
- metadata:
246
- name: rack1-tor
247
- spec:
248
- peerIP: 10.0.1.1
249
- asNumber: 65001
250
-
251
- ---
252
- # Node-specific BGP config
253
- apiVersion: crd.projectcalico.org/v1
254
- kind: BGPConfiguration
255
- metadata:
256
- name: default
257
- spec:
258
- logSeverityScreen: Info
259
- nodeToNodeMeshEnabled: true
260
- asNumber: 64512
261
- ```
262
-
263
- ### Network Policies
264
-
265
- ```yaml
266
- # Deny all ingress
267
- apiVersion: crd.projectcalico.org/v1
268
- kind: GlobalNetworkPolicy
269
- metadata:
270
- name: deny-all-ingress
271
- spec:
272
- order: 1000
273
- selector: all()
274
- types:
275
- - Ingress
276
-
277
- ---
278
- # Allow DNS
279
- apiVersion: crd.projectcalico.org/v1
280
- kind: GlobalNetworkPolicy
281
- metadata:
282
- name: allow-dns
283
- spec:
284
- order: 100
285
- selector: all()
286
- types:
287
- - Egress
288
- egress:
289
- - action: Allow
290
- protocol: UDP
291
- destination:
292
- selector: k8s-app == "kube-dns"
293
- ports:
294
- - 53
295
-
296
- ---
297
- # Allow specific service communication
298
- apiVersion: crd.projectcalico.org/v1
299
- kind: NetworkPolicy
300
- metadata:
301
- name: allow-frontend-to-backend
302
- namespace: production
303
- spec:
304
- selector: app == "backend"
305
- types:
306
- - Ingress
307
- ingress:
308
- - action: Allow
309
- protocol: TCP
310
- source:
311
- selector: app == "frontend"
312
- destination:
313
- ports:
314
- - 8080
315
- ```
316
-
317
- ## Cilium
318
-
319
- ### Architecture
320
-
321
- ```
322
- ┌────────────────────────────────────────┐
323
- │ Cilium Components │
324
- ├────────────────────────────────────────┤
325
- │ Cilium Agent │
326
- │ - eBPF program management │
327
- │ - Policy enforcement │
328
- ├────────────────────────────────────────┤
329
- │ Cilium Operator │
330
- │ - Cluster-wide operations │
331
- │ - IPAM, CEP garbage collection │
332
- ├────────────────────────────────────────┤
333
- │ Hubble (Optional) │
334
- │ - Observability, service map │
335
- └────────────────────────────────────────┘
336
- ```
337
-
338
- ### Installation with Helm
339
-
340
- ```bash
341
- # Add Cilium helm repo
342
- helm repo add cilium https://helm.cilium.io/
343
-
344
- # Install Cilium
345
- helm install cilium cilium/cilium \
346
- --version 1.14.0 \
347
- --namespace kube-system \
348
- --set ipam.mode=kubernetes \
349
- --set kubeProxyReplacement=strict \
350
- --set hubble.relay.enabled=true \
351
- --set hubble.ui.enabled=true
352
- ```
353
-
354
- ### Cilium Network Policy
355
-
356
- ```yaml
357
- # L3/L4 policy
358
- apiVersion: cilium.io/v2
359
- kind: CiliumNetworkPolicy
360
- metadata:
361
- name: allow-frontend-to-backend
362
- namespace: production
363
- spec:
364
- endpointSelector:
365
- matchLabels:
366
- app: backend
367
- ingress:
368
- - fromEndpoints:
369
- - matchLabels:
370
- app: frontend
371
- toPorts:
372
- - ports:
373
- - port: "8080"
374
- protocol: TCP
375
-
376
- ---
377
- # L7 HTTP policy
378
- apiVersion: cilium.io/v2
379
- kind: CiliumNetworkPolicy
380
- metadata:
381
- name: l7-http-policy
382
- namespace: production
383
- spec:
384
- endpointSelector:
385
- matchLabels:
386
- app: api
387
- ingress:
388
- - fromEndpoints:
389
- - matchLabels:
390
- app: frontend
391
- toPorts:
392
- - ports:
393
- - port: "80"
394
- protocol: TCP
395
- rules:
396
- http:
397
- - method: "GET"
398
- path: "/api/v1/.*"
399
- - method: "POST"
400
- path: "/api/v1/users"
401
-
402
- ---
403
- # DNS-aware policy
404
- apiVersion: cilium.io/v2
405
- kind: CiliumNetworkPolicy
406
- metadata:
407
- name: allow-external-api
408
- namespace: production
409
- spec:
410
- endpointSelector:
411
- matchLabels:
412
- app: backend
413
- egress:
414
- - toFQDNs:
415
- - matchName: "api.github.com"
416
- - matchPattern: "*.amazonaws.com"
417
- - toEndpoints:
418
- - matchLabels:
419
- "k8s:io.kubernetes.pod.namespace": kube-system
420
- "k8s:k8s-app": kube-dns
421
- toPorts:
422
- - ports:
423
- - port: "53"
424
- protocol: UDP
425
- ```
426
-
427
- ### Hubble Observability
428
-
429
- ```bash
430
- # Install Hubble CLI
431
- curl -L https://github.com/cilium/hubble/releases/latest/download/hubble-linux-amd64.tar.gz | tar xz
432
- sudo mv hubble /usr/local/bin
433
-
434
- # Enable port-forward to Hubble relay
435
- kubectl port-forward -n kube-system svc/hubble-relay 4245:80
436
-
437
- # Observe flows
438
- hubble observe
439
-
440
- # Filter by pod
441
- hubble observe --pod production/frontend
442
-
443
- # Filter by verdict
444
- hubble observe --verdict DROPPED
445
-
446
- # Service map
447
- hubble observe --http-status
448
-
449
- # Top connections
450
- hubble observe --last 1000 -o jsonpb | \
451
- jq -r '.flow | "\(.source.namespace)/\(.source.pod_name) -> \(.destination.namespace)/\(.destination.pod_name)"' | \
452
- sort | uniq -c | sort -rn
453
- ```
454
-
455
- ## Flannel
456
-
457
- ### Configuration
458
-
459
- ```yaml
460
- apiVersion: v1
461
- kind: ConfigMap
462
- metadata:
463
- name: kube-flannel-cfg
464
- namespace: kube-system
465
- data:
466
- net-conf.json: |
467
- {
468
- "Network": "10.244.0.0/16",
469
- "Backend": {
470
- "Type": "vxlan",
471
- "Port": 8472
472
- }
473
- }
474
- ```
475
-
476
- ### Backend Types
477
-
478
- **VXLAN:**
479
- ```json
480
- {
481
- "Backend": {
482
- "Type": "vxlan",
483
- "Port": 8472,
484
- "VNI": 1
485
- }
486
- }
487
- ```
488
-
489
- **Host-GW (No overlay):**
490
- ```json
491
- {
492
- "Backend": {
493
- "Type": "host-gw"
494
- }
495
- }
496
- ```
497
-
498
- **WireGuard:**
499
- ```json
500
- {
501
- "Backend": {
502
- "Type": "wireguard",
503
- "PersistentKeepalive": 25,
504
- "ListenPort": 51820
505
- }
506
- }
507
- ```
508
-
509
- ## Network Policies
510
-
511
- ### Default Deny All
512
-
513
- ```yaml
514
- apiVersion: networking.k8s.io/v1
515
- kind: NetworkPolicy
516
- metadata:
517
- name: default-deny-all
518
- namespace: production
519
- spec:
520
- podSelector: {}
521
- policyTypes:
522
- - Ingress
523
- - Egress
524
- ```
525
-
526
- ### Allow All Egress
527
-
528
- ```yaml
529
- apiVersion: networking.k8s.io/v1
530
- kind: NetworkPolicy
531
- metadata:
532
- name: allow-all-egress
533
- namespace: production
534
- spec:
535
- podSelector: {}
536
- policyTypes:
537
- - Egress
538
- egress:
539
- - to:
540
- - podSelector: {}
541
- ```
542
-
543
- ### Multi-Tier Application Policy
544
-
545
- ```yaml
546
- # Database tier - only from app tier
547
- apiVersion: networking.k8s.io/v1
548
- kind: NetworkPolicy
549
- metadata:
550
- name: database-policy
551
- namespace: production
552
- spec:
553
- podSelector:
554
- matchLabels:
555
- tier: database
556
- policyTypes:
557
- - Ingress
558
- ingress:
559
- - from:
560
- - podSelector:
561
- matchLabels:
562
- tier: application
563
- ports:
564
- - protocol: TCP
565
- port: 5432
566
-
567
- ---
568
- # Application tier - from frontend and to database
569
- apiVersion: networking.k8s.io/v1
570
- kind: NetworkPolicy
571
- metadata:
572
- name: application-policy
573
- namespace: production
574
- spec:
575
- podSelector:
576
- matchLabels:
577
- tier: application
578
- policyTypes:
579
- - Ingress
580
- - Egress
581
- ingress:
582
- - from:
583
- - podSelector:
584
- matchLabels:
585
- tier: frontend
586
- ports:
587
- - protocol: TCP
588
- port: 8080
589
- egress:
590
- - to:
591
- - podSelector:
592
- matchLabels:
593
- tier: database
594
- ports:
595
- - protocol: TCP
596
- port: 5432
597
- - to:
598
- - namespaceSelector:
599
- matchLabels:
600
- name: kube-system
601
- ports:
602
- - protocol: UDP
603
- port: 53
604
-
605
- ---
606
- # Frontend tier - from ingress
607
- apiVersion: networking.k8s.io/v1
608
- kind: NetworkPolicy
609
- metadata:
610
- name: frontend-policy
611
- namespace: production
612
- spec:
613
- podSelector:
614
- matchLabels:
615
- tier: frontend
616
- policyTypes:
617
- - Ingress
618
- - Egress
619
- ingress:
620
- - from:
621
- - namespaceSelector:
622
- matchLabels:
623
- name: ingress-nginx
624
- ports:
625
- - protocol: TCP
626
- port: 80
627
- egress:
628
- - to:
629
- - podSelector:
630
- matchLabels:
631
- tier: application
632
- ports:
633
- - protocol: TCP
634
- port: 8080
635
- ```
636
-
637
- ## Service Discovery
638
-
639
- ### CoreDNS Configuration
640
-
641
- ```yaml
642
- apiVersion: v1
643
- kind: ConfigMap
644
- metadata:
645
- name: coredns
646
- namespace: kube-system
647
- data:
648
- Corefile: |
649
- .:53 {
650
- errors
651
- health {
652
- lameduck 5s
653
- }
654
- ready
655
- kubernetes cluster.local in-addr.arpa ip6.arpa {
656
- pods insecure
657
- fallthrough in-addr.arpa ip6.arpa
658
- ttl 30
659
- }
660
- prometheus :9153
661
- forward . /etc/resolv.conf {
662
- max_concurrent 1000
663
- }
664
- cache 30
665
- loop
666
- reload
667
- loadbalance
668
- }
669
- ```
670
-
671
- ## Best Practices
672
-
673
- 1. **Choose appropriate CNI** - Calico for policy, Cilium for eBPF, Flannel for simplicity
674
- 2. **Enable network policies** - Default deny, explicit allow
675
- 3. **Use eBPF when possible** - Better performance than iptables
676
- 4. **Monitor network traffic** - Use Hubble or flow logs
677
- 5. **Implement proper IPAM** - Avoid IP exhaustion
678
- 6. **Use BGP for large clusters** - Better than full mesh
679
- 7. **Enable encryption** - WireGuard or IPsec for pod-to-pod
680
- 8. **Test failover** - Ensure network resilience
681
- 9. **Document network architecture** - IP ranges, policies
682
- 10. **Use L7 policies** - Fine-grained HTTP/gRPC control
683
-
684
- ## Anti-Patterns
685
-
686
- - **No network policies** - All pods can communicate
687
- - **Using deprecated CNI** - Stick to maintained plugins
688
- - **Ignoring MTU** - Can cause packet fragmentation
689
- - **Overlapping IP ranges** - Conflicts with on-prem networks
690
- - **No monitoring** - Can't diagnose network issues
691
- - **Single CNI plugin** - No failover capability
692
- - **Insufficient IP space** - Running out of addresses
693
- - **Complex policy chains** - Hard to debug
694
- - **No encryption** - Pod traffic exposed
695
- - **Ignoring performance** - Not optimizing for workload