container-superposition 0.1.1

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 (327) hide show
  1. package/README.md +843 -0
  2. package/dist/scripts/init.d.ts +3 -0
  3. package/dist/scripts/init.d.ts.map +1 -0
  4. package/dist/scripts/init.js +1190 -0
  5. package/dist/scripts/init.js.map +1 -0
  6. package/dist/scripts/migrate-to-manifests.d.ts +12 -0
  7. package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
  8. package/dist/scripts/migrate-to-manifests.js +230 -0
  9. package/dist/scripts/migrate-to-manifests.js.map +1 -0
  10. package/dist/tool/questionnaire/composer.d.ts +6 -0
  11. package/dist/tool/questionnaire/composer.d.ts.map +1 -0
  12. package/dist/tool/questionnaire/composer.js +1232 -0
  13. package/dist/tool/questionnaire/composer.js.map +1 -0
  14. package/dist/tool/readme/markdown-parser.d.ts +30 -0
  15. package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
  16. package/dist/tool/readme/markdown-parser.js +139 -0
  17. package/dist/tool/readme/markdown-parser.js.map +1 -0
  18. package/dist/tool/readme/readme-generator.d.ts +9 -0
  19. package/dist/tool/readme/readme-generator.d.ts.map +1 -0
  20. package/dist/tool/readme/readme-generator.js +422 -0
  21. package/dist/tool/readme/readme-generator.js.map +1 -0
  22. package/dist/tool/schema/custom-loader.d.ts +17 -0
  23. package/dist/tool/schema/custom-loader.d.ts.map +1 -0
  24. package/dist/tool/schema/custom-loader.js +149 -0
  25. package/dist/tool/schema/custom-loader.js.map +1 -0
  26. package/dist/tool/schema/overlay-loader.d.ts +47 -0
  27. package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
  28. package/dist/tool/schema/overlay-loader.js +252 -0
  29. package/dist/tool/schema/overlay-loader.js.map +1 -0
  30. package/dist/tool/schema/types.d.ts +212 -0
  31. package/dist/tool/schema/types.d.ts.map +1 -0
  32. package/dist/tool/schema/types.js +5 -0
  33. package/dist/tool/schema/types.js.map +1 -0
  34. package/docs/README.md +308 -0
  35. package/docs/architecture.md +233 -0
  36. package/docs/creating-overlays.md +549 -0
  37. package/docs/custom-patches.md +540 -0
  38. package/docs/dependencies.md +279 -0
  39. package/docs/examples/custom-patches-example.md +85 -0
  40. package/docs/examples.md +576 -0
  41. package/docs/messaging-comparison.md +265 -0
  42. package/docs/messaging-quick-start.md +385 -0
  43. package/docs/observability-workflow.md +537 -0
  44. package/docs/overlay-manifest-refactoring.md +214 -0
  45. package/docs/overlay-metadata-archive.md +54 -0
  46. package/docs/overlays.md +523 -0
  47. package/docs/presets-architecture.md +498 -0
  48. package/docs/presets.md +366 -0
  49. package/docs/publishing.md +476 -0
  50. package/docs/quick-reference.md +326 -0
  51. package/docs/ux.md +170 -0
  52. package/features/README.md +85 -0
  53. package/features/cross-distro-packages/README.md +146 -0
  54. package/features/cross-distro-packages/devcontainer-feature.json +20 -0
  55. package/features/cross-distro-packages/install.sh +58 -0
  56. package/features/local-secrets-manager/devcontainer-feature.json +18 -0
  57. package/features/local-secrets-manager/install.sh +127 -0
  58. package/features/project-scaffolder/devcontainer-feature.json +24 -0
  59. package/features/project-scaffolder/install.sh +100 -0
  60. package/features/team-conventions/devcontainer-feature.json +24 -0
  61. package/features/team-conventions/install.sh +93 -0
  62. package/overlays/.registry/README.md +14 -0
  63. package/overlays/.registry/base-images.yml +26 -0
  64. package/overlays/.registry/base-templates.yml +7 -0
  65. package/overlays/README.md +155 -0
  66. package/overlays/alertmanager/.env.example +5 -0
  67. package/overlays/alertmanager/README.md +465 -0
  68. package/overlays/alertmanager/alert-rules.yml +56 -0
  69. package/overlays/alertmanager/alertmanager.yml +42 -0
  70. package/overlays/alertmanager/devcontainer.patch.json +12 -0
  71. package/overlays/alertmanager/docker-compose.yml +20 -0
  72. package/overlays/alertmanager/overlay.yml +17 -0
  73. package/overlays/alertmanager/setup.sh +53 -0
  74. package/overlays/alertmanager/verify.sh +31 -0
  75. package/overlays/aws-cli/README.md +473 -0
  76. package/overlays/aws-cli/devcontainer.patch.json +13 -0
  77. package/overlays/aws-cli/overlay.yml +13 -0
  78. package/overlays/azure-cli/README.md +551 -0
  79. package/overlays/azure-cli/devcontainer.patch.json +8 -0
  80. package/overlays/azure-cli/overlay.yml +13 -0
  81. package/overlays/bun/README.md +312 -0
  82. package/overlays/bun/devcontainer.patch.json +41 -0
  83. package/overlays/bun/overlay.yml +16 -0
  84. package/overlays/bun/setup.sh +79 -0
  85. package/overlays/bun/verify.sh +30 -0
  86. package/overlays/codex/README.md +128 -0
  87. package/overlays/codex/devcontainer.patch.json +3 -0
  88. package/overlays/codex/overlay.yml +14 -0
  89. package/overlays/codex/setup.sh +24 -0
  90. package/overlays/codex/verify.sh +30 -0
  91. package/overlays/commitlint/README.md +333 -0
  92. package/overlays/commitlint/devcontainer.patch.json +8 -0
  93. package/overlays/commitlint/overlay.yml +16 -0
  94. package/overlays/commitlint/setup.sh +234 -0
  95. package/overlays/direnv/README.md +504 -0
  96. package/overlays/direnv/devcontainer.patch.json +6 -0
  97. package/overlays/direnv/overlay.yml +13 -0
  98. package/overlays/direnv/setup.sh +139 -0
  99. package/overlays/docker-in-docker/README.md +534 -0
  100. package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
  101. package/overlays/docker-in-docker/overlay.yml +13 -0
  102. package/overlays/docker-sock/README.md +256 -0
  103. package/overlays/docker-sock/devcontainer.patch.json +9 -0
  104. package/overlays/docker-sock/docker-compose.yml +8 -0
  105. package/overlays/docker-sock/overlay.yml +13 -0
  106. package/overlays/dotnet/README.md +147 -0
  107. package/overlays/dotnet/devcontainer.patch.json +51 -0
  108. package/overlays/dotnet/global-tools.txt +24 -0
  109. package/overlays/dotnet/overlay.yml +13 -0
  110. package/overlays/dotnet/setup.sh +51 -0
  111. package/overlays/dotnet/verify.sh +26 -0
  112. package/overlays/gcloud/README.md +269 -0
  113. package/overlays/gcloud/devcontainer.patch.json +14 -0
  114. package/overlays/gcloud/overlay.yml +14 -0
  115. package/overlays/gcloud/verify.sh +52 -0
  116. package/overlays/git-helpers/README.md +168 -0
  117. package/overlays/git-helpers/devcontainer.patch.json +33 -0
  118. package/overlays/git-helpers/overlay.yml +15 -0
  119. package/overlays/git-helpers/setup.sh +91 -0
  120. package/overlays/go/README.md +293 -0
  121. package/overlays/go/devcontainer.patch.json +43 -0
  122. package/overlays/go/overlay.yml +15 -0
  123. package/overlays/go/setup.sh +33 -0
  124. package/overlays/go/verify.sh +40 -0
  125. package/overlays/grafana/.env.example +9 -0
  126. package/overlays/grafana/README.md +462 -0
  127. package/overlays/grafana/dashboard-provider.yml +11 -0
  128. package/overlays/grafana/dashboards/observability-overview.json +263 -0
  129. package/overlays/grafana/devcontainer.patch.json +12 -0
  130. package/overlays/grafana/docker-compose.yml +27 -0
  131. package/overlays/grafana/grafana-datasources.yml +57 -0
  132. package/overlays/grafana/overlay.yml +21 -0
  133. package/overlays/grafana/verify.sh +34 -0
  134. package/overlays/jaeger/.env.example +7 -0
  135. package/overlays/jaeger/README.md +867 -0
  136. package/overlays/jaeger/devcontainer.patch.json +12 -0
  137. package/overlays/jaeger/docker-compose.yml +17 -0
  138. package/overlays/jaeger/overlay.yml +19 -0
  139. package/overlays/java/README.md +267 -0
  140. package/overlays/java/devcontainer.patch.json +44 -0
  141. package/overlays/java/overlay.yml +16 -0
  142. package/overlays/java/setup.sh +41 -0
  143. package/overlays/java/verify.sh +42 -0
  144. package/overlays/just/README.md +443 -0
  145. package/overlays/just/devcontainer.patch.json +3 -0
  146. package/overlays/just/overlay.yml +13 -0
  147. package/overlays/just/setup.sh +182 -0
  148. package/overlays/kubectl-helm/README.md +660 -0
  149. package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
  150. package/overlays/kubectl-helm/overlay.yml +13 -0
  151. package/overlays/loki/.env.example +5 -0
  152. package/overlays/loki/README.md +1156 -0
  153. package/overlays/loki/devcontainer.patch.json +12 -0
  154. package/overlays/loki/docker-compose.yml +18 -0
  155. package/overlays/loki/loki-config.yaml +45 -0
  156. package/overlays/loki/overlay.yml +17 -0
  157. package/overlays/minio/.env.example +9 -0
  158. package/overlays/minio/README.md +639 -0
  159. package/overlays/minio/devcontainer.patch.json +30 -0
  160. package/overlays/minio/docker-compose.yml +28 -0
  161. package/overlays/minio/overlay.yml +18 -0
  162. package/overlays/minio/setup.sh +61 -0
  163. package/overlays/minio/verify.sh +64 -0
  164. package/overlays/mkdocs/README.md +309 -0
  165. package/overlays/mkdocs/devcontainer.patch.json +24 -0
  166. package/overlays/mkdocs/overlay.yml +15 -0
  167. package/overlays/modern-cli-tools/README.md +556 -0
  168. package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
  169. package/overlays/modern-cli-tools/overlay.yml +13 -0
  170. package/overlays/modern-cli-tools/setup.sh +153 -0
  171. package/overlays/mongodb/.env.example +9 -0
  172. package/overlays/mongodb/README.md +481 -0
  173. package/overlays/mongodb/devcontainer.patch.json +32 -0
  174. package/overlays/mongodb/docker-compose.yml +44 -0
  175. package/overlays/mongodb/overlay.yml +17 -0
  176. package/overlays/mongodb/verify.sh +48 -0
  177. package/overlays/mysql/.env.example +11 -0
  178. package/overlays/mysql/README.md +542 -0
  179. package/overlays/mysql/devcontainer.patch.json +34 -0
  180. package/overlays/mysql/docker-compose.yml +55 -0
  181. package/overlays/mysql/overlay.yml +16 -0
  182. package/overlays/mysql/verify.sh +48 -0
  183. package/overlays/nats/.env.example +5 -0
  184. package/overlays/nats/README.md +762 -0
  185. package/overlays/nats/devcontainer.patch.json +24 -0
  186. package/overlays/nats/docker-compose.yml +31 -0
  187. package/overlays/nats/overlay.yml +18 -0
  188. package/overlays/nats/verify.sh +50 -0
  189. package/overlays/ngrok/README.md +503 -0
  190. package/overlays/ngrok/devcontainer.patch.json +3 -0
  191. package/overlays/ngrok/overlay.yml +14 -0
  192. package/overlays/ngrok/setup.sh +125 -0
  193. package/overlays/nodejs/README.md +192 -0
  194. package/overlays/nodejs/devcontainer.patch.json +49 -0
  195. package/overlays/nodejs/global-packages.txt +16 -0
  196. package/overlays/nodejs/overlay.yml +14 -0
  197. package/overlays/nodejs/setup.sh +46 -0
  198. package/overlays/nodejs/verify.sh +32 -0
  199. package/overlays/otel-collector/.env.example +9 -0
  200. package/overlays/otel-collector/README.md +1257 -0
  201. package/overlays/otel-collector/devcontainer.patch.json +28 -0
  202. package/overlays/otel-collector/docker-compose.yml +22 -0
  203. package/overlays/otel-collector/otel-collector-config.yaml +68 -0
  204. package/overlays/otel-collector/overlay.yml +21 -0
  205. package/overlays/otel-collector/setup.sh +49 -0
  206. package/overlays/otel-demo-nodejs/.env.example +2 -0
  207. package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
  208. package/overlays/otel-demo-nodejs/README.md +409 -0
  209. package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
  210. package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
  211. package/overlays/otel-demo-nodejs/overlay.yml +23 -0
  212. package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
  213. package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
  214. package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
  215. package/overlays/otel-demo-nodejs/verify.sh +31 -0
  216. package/overlays/otel-demo-python/.env.example +2 -0
  217. package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
  218. package/overlays/otel-demo-python/README.md +82 -0
  219. package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
  220. package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
  221. package/overlays/otel-demo-python/docker-compose.yml +19 -0
  222. package/overlays/otel-demo-python/overlay.yml +23 -0
  223. package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
  224. package/overlays/otel-demo-python/verify.sh +31 -0
  225. package/overlays/playwright/README.md +629 -0
  226. package/overlays/playwright/devcontainer.patch.json +9 -0
  227. package/overlays/playwright/overlay.yml +13 -0
  228. package/overlays/postgres/.env.example +6 -0
  229. package/overlays/postgres/README.md +602 -0
  230. package/overlays/postgres/devcontainer.patch.json +21 -0
  231. package/overlays/postgres/docker-compose.yml +22 -0
  232. package/overlays/postgres/overlay.yml +15 -0
  233. package/overlays/postgres/verify.sh +45 -0
  234. package/overlays/powershell/README.md +314 -0
  235. package/overlays/powershell/devcontainer.patch.json +22 -0
  236. package/overlays/powershell/overlay.yml +13 -0
  237. package/overlays/powershell/setup.sh +29 -0
  238. package/overlays/powershell/verify.sh +38 -0
  239. package/overlays/pre-commit/README.md +263 -0
  240. package/overlays/pre-commit/devcontainer.patch.json +9 -0
  241. package/overlays/pre-commit/overlay.yml +16 -0
  242. package/overlays/pre-commit/setup.sh +129 -0
  243. package/overlays/presets/docs-site.yml +118 -0
  244. package/overlays/presets/fullstack.yml +181 -0
  245. package/overlays/presets/microservice.yml +118 -0
  246. package/overlays/presets/web-api.yml +109 -0
  247. package/overlays/prometheus/.env.example +5 -0
  248. package/overlays/prometheus/README.md +1246 -0
  249. package/overlays/prometheus/devcontainer.patch.json +12 -0
  250. package/overlays/prometheus/docker-compose.yml +22 -0
  251. package/overlays/prometheus/overlay.yml +17 -0
  252. package/overlays/prometheus/prometheus.yml +12 -0
  253. package/overlays/prometheus/verify.sh +34 -0
  254. package/overlays/promtail/.env.example +2 -0
  255. package/overlays/promtail/README.md +357 -0
  256. package/overlays/promtail/devcontainer.patch.json +5 -0
  257. package/overlays/promtail/docker-compose.yml +16 -0
  258. package/overlays/promtail/overlay.yml +17 -0
  259. package/overlays/promtail/promtail-config.yaml +60 -0
  260. package/overlays/promtail/verify.sh +31 -0
  261. package/overlays/pulumi/README.md +472 -0
  262. package/overlays/pulumi/devcontainer.patch.json +13 -0
  263. package/overlays/pulumi/overlay.yml +14 -0
  264. package/overlays/pulumi/verify.sh +31 -0
  265. package/overlays/python/README.md +919 -0
  266. package/overlays/python/devcontainer.patch.json +41 -0
  267. package/overlays/python/overlay.yml +12 -0
  268. package/overlays/python/requirements-overlay.txt +13 -0
  269. package/overlays/python/setup.sh +47 -0
  270. package/overlays/python/verify.sh +32 -0
  271. package/overlays/rabbitmq/.env.example +7 -0
  272. package/overlays/rabbitmq/README.md +680 -0
  273. package/overlays/rabbitmq/devcontainer.patch.json +28 -0
  274. package/overlays/rabbitmq/docker-compose.yml +30 -0
  275. package/overlays/rabbitmq/overlay.yml +18 -0
  276. package/overlays/rabbitmq/verify.sh +41 -0
  277. package/overlays/redis/.env.example +4 -0
  278. package/overlays/redis/README.md +776 -0
  279. package/overlays/redis/devcontainer.patch.json +21 -0
  280. package/overlays/redis/docker-compose.yml +21 -0
  281. package/overlays/redis/overlay.yml +15 -0
  282. package/overlays/redis/verify.sh +41 -0
  283. package/overlays/redpanda/.env.example +10 -0
  284. package/overlays/redpanda/README.md +703 -0
  285. package/overlays/redpanda/devcontainer.patch.json +37 -0
  286. package/overlays/redpanda/docker-compose.yml +67 -0
  287. package/overlays/redpanda/overlay.yml +21 -0
  288. package/overlays/redpanda/verify.sh +48 -0
  289. package/overlays/rust/README.md +299 -0
  290. package/overlays/rust/devcontainer.patch.json +39 -0
  291. package/overlays/rust/overlay.yml +15 -0
  292. package/overlays/rust/setup.sh +36 -0
  293. package/overlays/rust/verify.sh +51 -0
  294. package/overlays/sqlite/README.md +584 -0
  295. package/overlays/sqlite/devcontainer.patch.json +14 -0
  296. package/overlays/sqlite/overlay.yml +15 -0
  297. package/overlays/sqlite/setup.sh +27 -0
  298. package/overlays/sqlite/verify.sh +43 -0
  299. package/overlays/sqlserver/.env.example +6 -0
  300. package/overlays/sqlserver/README.md +592 -0
  301. package/overlays/sqlserver/devcontainer.patch.json +22 -0
  302. package/overlays/sqlserver/docker-compose.yml +32 -0
  303. package/overlays/sqlserver/overlay.yml +17 -0
  304. package/overlays/sqlserver/verify.sh +30 -0
  305. package/overlays/tempo/.env.example +5 -0
  306. package/overlays/tempo/README.md +273 -0
  307. package/overlays/tempo/devcontainer.patch.json +12 -0
  308. package/overlays/tempo/docker-compose.yml +20 -0
  309. package/overlays/tempo/overlay.yml +20 -0
  310. package/overlays/tempo/tempo-config.yaml +32 -0
  311. package/overlays/tempo/verify.sh +31 -0
  312. package/overlays/terraform/README.md +389 -0
  313. package/overlays/terraform/devcontainer.patch.json +15 -0
  314. package/overlays/terraform/overlay.yml +14 -0
  315. package/overlays/terraform/verify.sh +63 -0
  316. package/package.json +74 -0
  317. package/templates/README.md +285 -0
  318. package/templates/compose/.devcontainer/devcontainer.json +46 -0
  319. package/templates/compose/.devcontainer/docker-compose.yml +12 -0
  320. package/templates/compose/README.md +20 -0
  321. package/templates/plain/.devcontainer/devcontainer.json +35 -0
  322. package/templates/plain/README.md +21 -0
  323. package/tool/README.md +281 -0
  324. package/tool/schema/base-images.schema.json +43 -0
  325. package/tool/schema/base-templates.schema.json +34 -0
  326. package/tool/schema/config.schema.json +71 -0
  327. package/tool/schema/overlay-manifest.schema.json +86 -0
@@ -0,0 +1,551 @@
1
+ # Azure CLI Overlay
2
+
3
+ Azure Command Line Interface for managing Microsoft Azure resources from your development container.
4
+
5
+ ## Features
6
+
7
+ - **Azure CLI** - Latest Azure command-line interface (az)
8
+ - **Multi-service support** - Manage VMs, Storage, App Service, AKS, and 100+ Azure services
9
+ - **Interactive mode** - `az interactive` for easier command discovery
10
+ - **Cloud Shell parity** - Same experience as Azure Cloud Shell
11
+ - **JSON/YAML/Table output** - Flexible output formats
12
+
13
+ ## Authentication
14
+
15
+ ### Interactive Login
16
+
17
+ ```bash
18
+ # Login with browser-based authentication
19
+ az login
20
+
21
+ # Login with device code (for remote/SSH scenarios)
22
+ az login --use-device-code
23
+
24
+ # Verify authentication
25
+ az account show
26
+ ```
27
+
28
+ ### Service Principal (CI/CD)
29
+
30
+ ```bash
31
+ # Create service principal
32
+ az ad sp create-for-rbac --name myapp --role Contributor
33
+
34
+ # Login with service principal
35
+ az login --service-principal \
36
+ --username <app-id> \
37
+ --password <password-or-cert> \
38
+ --tenant <tenant-id>
39
+
40
+ # Or use environment variables
41
+ export ARM_CLIENT_ID=<app-id>
42
+ export ARM_CLIENT_SECRET=<password>
43
+ export ARM_SUBSCRIPTION_ID=<subscription-id>
44
+ export ARM_TENANT_ID=<tenant-id>
45
+ ```
46
+
47
+ ### Managed Identity
48
+
49
+ When running in Azure (VM, App Service, Functions):
50
+
51
+ ```bash
52
+ # Login with system-assigned managed identity
53
+ az login --identity
54
+
55
+ # Login with user-assigned managed identity
56
+ az login --identity --username <client-id>
57
+ ```
58
+
59
+ ## Common Commands
60
+
61
+ ### Account and Subscription Management
62
+
63
+ ```bash
64
+ # List subscriptions
65
+ az account list --output table
66
+
67
+ # Show current subscription
68
+ az account show
69
+
70
+ # Set active subscription
71
+ az account set --subscription "My Subscription"
72
+
73
+ # Get access token (useful for API calls)
74
+ az account get-access-token
75
+ ```
76
+
77
+ ### Resource Groups
78
+
79
+ ```bash
80
+ # List resource groups
81
+ az group list --output table
82
+
83
+ # Create resource group
84
+ az group create \
85
+ --name myResourceGroup \
86
+ --location eastus
87
+
88
+ # Delete resource group (deletes all resources)
89
+ az group delete --name myResourceGroup --yes --no-wait
90
+
91
+ # Export resource group template
92
+ az group export --name myResourceGroup
93
+ ```
94
+
95
+ ### Virtual Machines
96
+
97
+ ```bash
98
+ # List VMs
99
+ az vm list --output table
100
+
101
+ # Create VM
102
+ az vm create \
103
+ --resource-group myResourceGroup \
104
+ --name myVM \
105
+ --image Ubuntu2204 \
106
+ --size Standard_B2s \
107
+ --admin-username azureuser \
108
+ --generate-ssh-keys
109
+
110
+ # Start VM
111
+ az vm start --resource-group myResourceGroup --name myVM
112
+
113
+ # Stop VM (deallocate to stop billing)
114
+ az vm deallocate --resource-group myResourceGroup --name myVM
115
+
116
+ # Get VM IP address
117
+ az vm show \
118
+ --resource-group myResourceGroup \
119
+ --name myVM \
120
+ --show-details \
121
+ --query publicIps \
122
+ --output tsv
123
+
124
+ # SSH into VM
125
+ ssh azureuser@<vm-ip>
126
+ ```
127
+
128
+ ### Storage Accounts
129
+
130
+ ```bash
131
+ # List storage accounts
132
+ az storage account list --output table
133
+
134
+ # Create storage account
135
+ az storage account create \
136
+ --name mystorageaccount \
137
+ --resource-group myResourceGroup \
138
+ --location eastus \
139
+ --sku Standard_LRS
140
+
141
+ # Get storage account keys
142
+ az storage account keys list \
143
+ --account-name mystorageaccount \
144
+ --resource-group myResourceGroup
145
+
146
+ # Create blob container
147
+ az storage container create \
148
+ --name mycontainer \
149
+ --account-name mystorageaccount
150
+
151
+ # Upload file to blob storage
152
+ az storage blob upload \
153
+ --account-name mystorageaccount \
154
+ --container-name mycontainer \
155
+ --name myfile.txt \
156
+ --file ./local-file.txt
157
+
158
+ # Download blob
159
+ az storage blob download \
160
+ --account-name mystorageaccount \
161
+ --container-name mycontainer \
162
+ --name myfile.txt \
163
+ --file ./downloaded-file.txt
164
+ ```
165
+
166
+ ### App Service (Web Apps)
167
+
168
+ ```bash
169
+ # List app service plans
170
+ az appservice plan list --output table
171
+
172
+ # Create app service plan
173
+ az appservice plan create \
174
+ --name myAppServicePlan \
175
+ --resource-group myResourceGroup \
176
+ --sku B1
177
+
178
+ # Create web app
179
+ az webapp create \
180
+ --name myWebApp \
181
+ --resource-group myResourceGroup \
182
+ --plan myAppServicePlan \
183
+ --runtime "NODE:20-lts"
184
+
185
+ # Deploy from GitHub
186
+ az webapp deployment source config \
187
+ --name myWebApp \
188
+ --resource-group myResourceGroup \
189
+ --repo-url https://github.com/user/repo \
190
+ --branch main \
191
+ --manual-integration
192
+
193
+ # View logs
194
+ az webapp log tail --name myWebApp --resource-group myResourceGroup
195
+
196
+ # Restart web app
197
+ az webapp restart --name myWebApp --resource-group myResourceGroup
198
+ ```
199
+
200
+ ### AKS (Azure Kubernetes Service)
201
+
202
+ ```bash
203
+ # List AKS clusters
204
+ az aks list --output table
205
+
206
+ # Create AKS cluster
207
+ az aks create \
208
+ --resource-group myResourceGroup \
209
+ --name myAKSCluster \
210
+ --node-count 2 \
211
+ --enable-addons monitoring \
212
+ --generate-ssh-keys
213
+
214
+ # Get credentials for kubectl
215
+ az aks get-credentials \
216
+ --resource-group myResourceGroup \
217
+ --name myAKSCluster
218
+
219
+ # Verify kubectl context
220
+ kubectl config current-context
221
+
222
+ # Scale cluster
223
+ az aks scale \
224
+ --resource-group myResourceGroup \
225
+ --name myAKSCluster \
226
+ --node-count 3
227
+
228
+ # Upgrade cluster
229
+ az aks upgrade \
230
+ --resource-group myResourceGroup \
231
+ --name myAKSCluster \
232
+ --kubernetes-version 1.28.0
233
+ ```
234
+
235
+ ### Azure Functions
236
+
237
+ ```bash
238
+ # Create function app
239
+ az functionapp create \
240
+ --resource-group myResourceGroup \
241
+ --consumption-plan-location eastus \
242
+ --runtime node \
243
+ --runtime-version 20 \
244
+ --functions-version 4 \
245
+ --name myFunctionApp \
246
+ --storage-account mystorageaccount
247
+
248
+ # Deploy function code
249
+ az functionapp deployment source config-zip \
250
+ --resource-group myResourceGroup \
251
+ --name myFunctionApp \
252
+ --src function.zip
253
+
254
+ # List functions
255
+ az functionapp function show \
256
+ --resource-group myResourceGroup \
257
+ --name myFunctionApp
258
+ ```
259
+
260
+ ### Azure SQL Database
261
+
262
+ ```bash
263
+ # Create SQL server
264
+ az sql server create \
265
+ --name myserver \
266
+ --resource-group myResourceGroup \
267
+ --location eastus \
268
+ --admin-user myadmin \
269
+ --admin-password MyP@ssw0rd!
270
+
271
+ # Create SQL database
272
+ az sql db create \
273
+ --resource-group myResourceGroup \
274
+ --server myserver \
275
+ --name mydb \
276
+ --service-objective S0
277
+
278
+ # Configure firewall rule
279
+ az sql server firewall-rule create \
280
+ --resource-group myResourceGroup \
281
+ --server myserver \
282
+ --name AllowMyIP \
283
+ --start-ip-address 1.2.3.4 \
284
+ --end-ip-address 1.2.3.4
285
+ ```
286
+
287
+ ### Container Instances (ACI)
288
+
289
+ ```bash
290
+ # Create container instance
291
+ az container create \
292
+ --resource-group myResourceGroup \
293
+ --name mycontainer \
294
+ --image mcr.microsoft.com/azuredocs/aci-helloworld \
295
+ --dns-name-label mycontainer-demo \
296
+ --ports 80
297
+
298
+ # Show container details
299
+ az container show \
300
+ --resource-group myResourceGroup \
301
+ --name mycontainer
302
+
303
+ # View logs
304
+ az container logs \
305
+ --resource-group myResourceGroup \
306
+ --name mycontainer
307
+
308
+ # Delete container
309
+ az container delete \
310
+ --resource-group myResourceGroup \
311
+ --name mycontainer \
312
+ --yes
313
+ ```
314
+
315
+ ## Configuration
316
+
317
+ ### Set Default Values
318
+
319
+ ```bash
320
+ # Set default resource group
321
+ az configure --defaults group=myResourceGroup
322
+
323
+ # Set default location
324
+ az configure --defaults location=eastus
325
+
326
+ # View all defaults
327
+ az configure --list-defaults
328
+ ```
329
+
330
+ ### Output Formats
331
+
332
+ ```bash
333
+ # JSON (default)
334
+ az vm list --output json
335
+
336
+ # Table (human-readable)
337
+ az vm list --output table
338
+
339
+ # TSV (tab-separated, good for scripting)
340
+ az vm list --output tsv
341
+
342
+ # YAML
343
+ az vm list --output yaml
344
+
345
+ # JSONC (JSON with comments)
346
+ az vm list --output jsonc
347
+ ```
348
+
349
+ ### Query with JMESPath
350
+
351
+ ```bash
352
+ # Filter VMs by name
353
+ az vm list --query "[?name=='myVM']"
354
+
355
+ # Get specific fields
356
+ az vm list --query "[].{Name:name, ResourceGroup:resourceGroup}" --output table
357
+
358
+ # Filter by location
359
+ az vm list --query "[?location=='eastus']" --output table
360
+ ```
361
+
362
+ ## Use Cases
363
+
364
+ ### Cloud Infrastructure Management
365
+
366
+ - Deploy and manage virtual machines
367
+ - Configure load balancers and networking
368
+ - Manage storage accounts and databases
369
+
370
+ ### Container and Kubernetes Operations
371
+
372
+ - Deploy to Azure Container Instances
373
+ - Manage AKS clusters
374
+ - Push images to Azure Container Registry
375
+
376
+ ### Application Deployment
377
+
378
+ - Deploy web apps and functions
379
+ - Configure CI/CD pipelines
380
+ - Manage application settings
381
+
382
+ ### DevOps and Automation
383
+
384
+ - Infrastructure as Code with ARM templates
385
+ - Automated resource provisioning
386
+ - Integration with CI/CD pipelines
387
+
388
+ ## Interactive Mode
389
+
390
+ For easier command discovery and auto-completion:
391
+
392
+ ```bash
393
+ # Start interactive mode
394
+ az interactive
395
+
396
+ # Features:
397
+ # - Auto-completion
398
+ # - Command descriptions
399
+ # - Example snippets
400
+ # - Parameter help
401
+ ```
402
+
403
+ ## Security Best Practices
404
+
405
+ ### Credential Management
406
+
407
+ ⚠️ **Never commit Azure credentials to version control**
408
+
409
+ **Secure Methods:**
410
+
411
+ 1. **Interactive Login** - For development
412
+
413
+ ```bash
414
+ az login
415
+ ```
416
+
417
+ 2. **Service Principal** - For automation
418
+
419
+ ```bash
420
+ # Create with limited permissions
421
+ az ad sp create-for-rbac \
422
+ --name myapp \
423
+ --role Reader \
424
+ --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group}
425
+ ```
426
+
427
+ 3. **Managed Identity** - For Azure resources
428
+ - No credentials needed
429
+ - Automatically managed by Azure
430
+
431
+ 4. **Azure Key Vault** - Store secrets
432
+
433
+ ```bash
434
+ # Create key vault
435
+ az keyvault create --name myKeyVault --resource-group myResourceGroup
436
+
437
+ # Store secret
438
+ az keyvault secret set --vault-name myKeyVault --name mySecret --value "secretValue"
439
+
440
+ # Retrieve secret
441
+ az keyvault secret show --vault-name myKeyVault --name mySecret --query value -o tsv
442
+ ```
443
+
444
+ ### Least Privilege
445
+
446
+ Always use role-based access control (RBAC) with minimal permissions:
447
+
448
+ ```bash
449
+ # Assign role to service principal
450
+ az role assignment create \
451
+ --assignee <app-id> \
452
+ --role "Storage Blob Data Contributor" \
453
+ --scope /subscriptions/{subscription-id}/resourceGroups/{resource-group}
454
+
455
+ # List available roles
456
+ az role definition list --output table
457
+ ```
458
+
459
+ ## Troubleshooting
460
+
461
+ ### az command not found
462
+
463
+ Rebuild container:
464
+
465
+ - **VS Code:** `Cmd+Shift+P` → "Dev Containers: Rebuild Container"
466
+
467
+ ### Authentication failures
468
+
469
+ ```bash
470
+ # Clear cached credentials
471
+ az account clear
472
+
473
+ # Re-login
474
+ az login
475
+
476
+ # Verify authentication
477
+ az account show
478
+ ```
479
+
480
+ ### Wrong subscription active
481
+
482
+ ```bash
483
+ # List all subscriptions
484
+ az account list --output table
485
+
486
+ # Set correct subscription
487
+ az account set --subscription "My Subscription"
488
+ ```
489
+
490
+ ### Permission errors
491
+
492
+ ```bash
493
+ # Check current identity
494
+ az account show
495
+
496
+ # List role assignments
497
+ az role assignment list --assignee <your-email> --output table
498
+ ```
499
+
500
+ ### Resource already exists
501
+
502
+ Azure resource names often need to be globally unique (e.g., storage accounts, web apps):
503
+
504
+ ```bash
505
+ # Check name availability
506
+ az storage account check-name --name mystorageaccount
507
+
508
+ # Use unique suffix
509
+ UNIQUE_SUFFIX=$RANDOM
510
+ az storage account create --name mystorageaccount$UNIQUE_SUFFIX ...
511
+ ```
512
+
513
+ ## Azure CLI Extensions
514
+
515
+ Install additional functionality:
516
+
517
+ ```bash
518
+ # List available extensions
519
+ az extension list-available --output table
520
+
521
+ # Install extension
522
+ az extension add --name azure-devops
523
+
524
+ # Update extension
525
+ az extension update --name azure-devops
526
+
527
+ # List installed extensions
528
+ az extension list
529
+ ```
530
+
531
+ Popular extensions:
532
+
533
+ - **azure-devops** - Azure DevOps integration
534
+ - **aks-preview** - AKS preview features
535
+ - **application-insights** - Application Insights management
536
+
537
+ ## Related Overlays
538
+
539
+ - **terraform** - Infrastructure as Code for Azure resources
540
+ - **pulumi** - Modern IaC using TypeScript/Python/Go
541
+ - **kubectl-helm** - For AKS cluster management
542
+ - **nodejs/python/dotnet** - For Azure Functions development
543
+ - **docker-sock/docker-in-docker** - For container development
544
+
545
+ ## Additional Resources
546
+
547
+ - [Azure CLI Documentation](https://docs.microsoft.com/en-us/cli/azure/)
548
+ - [Azure CLI Command Reference](https://docs.microsoft.com/en-us/cli/azure/reference-index)
549
+ - [Azure CLI Interactive Mode](https://docs.microsoft.com/en-us/cli/azure/interactive-azure-cli)
550
+ - [Azure RBAC Documentation](https://docs.microsoft.com/en-us/azure/role-based-access-control/)
551
+ - [JMESPath Tutorial](https://jmespath.org/tutorial.html) - For query filtering
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
3
+ "features": {
4
+ "ghcr.io/devcontainers/features/azure-cli:1": {
5
+ "version": "latest"
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,13 @@
1
+ id: azure-cli
2
+ name: Azure CLI
3
+ description: Microsoft Azure command-line tools
4
+ category: cloud
5
+ supports: []
6
+ requires: []
7
+ suggests: []
8
+ conflicts: []
9
+ tags:
10
+ - cloud
11
+ - azure
12
+ - cli
13
+ ports: []