diff --git a/.devcontainer/03-azure-01-01-app-innovation-02-aks/devcontainer.json b/.devcontainer/03-azure-01-01-app-innovation-02-aks/devcontainer.json new file mode 100644 index 00000000..c53d47fb --- /dev/null +++ b/.devcontainer/03-azure-01-01-app-innovation-02-aks/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / App Innovation / AKS", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-01-App Innovation/02_AKS", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-01-app-innovation-03-ghcpappmodernization/Dockerfile b/.devcontainer/03-azure-01-01-app-innovation-03-ghcpappmodernization/Dockerfile new file mode 100644 index 00000000..87b399e1 --- /dev/null +++ b/.devcontainer/03-azure-01-01-app-innovation-03-ghcpappmodernization/Dockerfile @@ -0,0 +1,6 @@ +FROM mcr.microsoft.com/devcontainers/base:ubuntu + +RUN curl -fsSL https://raw.githubusercontent.com/microsoft/modernize-cli/main/scripts/install.sh | \ + MODERNIZE_INSTALL_DIR=/usr/local/lib/modernize \ + MODERNIZE_BIN_DIR=/usr/local/bin \ + sh \ No newline at end of file diff --git a/.devcontainer/03-azure-01-01-app-innovation-03-ghcpappmodernization/devcontainer.json b/.devcontainer/03-azure-01-01-app-innovation-03-ghcpappmodernization/devcontainer.json new file mode 100644 index 00000000..2f01226b --- /dev/null +++ b/.devcontainer/03-azure-01-01-app-innovation-03-ghcpappmodernization/devcontainer.json @@ -0,0 +1,45 @@ +{ + "name": "Azure / App Innovation / GHCP App Modernization", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/dotnet:2": { + "version": "10.0" + }, + "ghcr.io/devcontainers/features/java:1": { + "version": "25" + }, + "ghcr.io/devcontainers/features/node:1": { + "version": "24" + }, + "ghcr.io/devcontainers/features/azure-cli:1": {}, + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}, + "ghcr.io/devcontainers/features/github-cli:1": {}, + "ghcr.io/devcontainers/features/copilot-cli:1": {} + }, + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/dotnet", + "ghcr.io/devcontainers/features/java", + "ghcr.io/devcontainers/features/node", + "ghcr.io/devcontainers/features/azure-cli", + "ghcr.io/devcontainers/features/docker-outside-of-docker", + "ghcr.io/devcontainers/features/github-cli", + "ghcr.io/devcontainers/features/copilot-cli" + ], + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-01-App Innovation/03_GHCPAppModernization", + "customizations": { + "vscode": { + "extensions": [ + "GitHub.copilot", + "GitHub.copilot-chat" + ], + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-01-sovereign-cloud/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-01-sovereign-cloud/devcontainer.json new file mode 100644 index 00000000..0f6d9ab3 --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-01-sovereign-cloud/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Sovereign Cloud", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/01_Sovereign_Cloud", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-02-hybrid-azure-arc-servers/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-02-hybrid-azure-arc-servers/devcontainer.json new file mode 100644 index 00000000..fa2171b2 --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-02-hybrid-azure-arc-servers/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Hybrid Azure Arc Servers", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/02_Hybrid_Azure_Arc_Servers", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-03-hybrid-azure-arc-kubernetes/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-03-hybrid-azure-arc-kubernetes/devcontainer.json new file mode 100644 index 00000000..f8cfffad --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-03-hybrid-azure-arc-kubernetes/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Hybrid Azure Arc Kubernetes", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/03_Hybrid_Azure_Arc_Kubernetes", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-04-bcdr-azure-native/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-04-bcdr-azure-native/devcontainer.json new file mode 100644 index 00000000..e8b8ae81 --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-04-bcdr-azure-native/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / BCDR Azure Native", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/04_BCDR_Azure_Native", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-05-azure-vmware-solution/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-05-azure-vmware-solution/devcontainer.json new file mode 100644 index 00000000..153daf8b --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-05-azure-vmware-solution/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Azure VMware Solution", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/05_Azure_VMware_Solution", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-06-migration-secure-ai-ready/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-06-migration-secure-ai-ready/devcontainer.json new file mode 100644 index 00000000..d87afaf3 --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-06-migration-secure-ai-ready/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Migration Secure AI Ready", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/06_Migration_Secure_AI_Ready", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-07-azure-monitor/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-07-azure-monitor/devcontainer.json new file mode 100644 index 00000000..e4e68f59 --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-07-azure-monitor/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Azure Monitor", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/07_Azure_Monitor", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-10-oracle-on-azure/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-10-oracle-on-azure/devcontainer.json new file mode 100644 index 00000000..6d586fa7 --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-10-oracle-on-azure/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Oracle on Azure", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/10_Oracle_on_Azure", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-03-infrastructure-12-azure-copilot/devcontainer.json b/.devcontainer/03-azure-01-03-infrastructure-12-azure-copilot/devcontainer.json new file mode 100644 index 00000000..6e105ffa --- /dev/null +++ b/.devcontainer/03-azure-01-03-infrastructure-12-azure-copilot/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / Infra / Azure Copilot", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-03-Infrastructure/12_Azure_Copilot", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-04-ai-01-agentic-sdlc/devcontainer.json b/.devcontainer/03-azure-01-04-ai-01-agentic-sdlc/devcontainer.json new file mode 100644 index 00000000..e896bda2 --- /dev/null +++ b/.devcontainer/03-azure-01-04-ai-01-agentic-sdlc/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / AI / Agentic SDLC", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-04-AI/01_Agentic_SDLC", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-04-ai-02-inventory-planning-fabric/devcontainer.json b/.devcontainer/03-azure-01-04-ai-02-inventory-planning-fabric/devcontainer.json new file mode 100644 index 00000000..e04ac64e --- /dev/null +++ b/.devcontainer/03-azure-01-04-ai-02-inventory-planning-fabric/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / AI / Inventory Planning Fabric", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-04-AI/02_Inventory_Planning_Fabric", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-04-ai-03-inventory-planning-agentic/devcontainer.json b/.devcontainer/03-azure-01-04-ai-03-inventory-planning-agentic/devcontainer.json new file mode 100644 index 00000000..c6f2d89b --- /dev/null +++ b/.devcontainer/03-azure-01-04-ai-03-inventory-planning-agentic/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / AI / Inventory Planning Agentic", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-04-AI/03_Inventory_Planning_Agentic", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-04-ai-04-agentic-contract-lifecycle-management/devcontainer.json b/.devcontainer/03-azure-01-04-ai-04-agentic-contract-lifecycle-management/devcontainer.json new file mode 100644 index 00000000..1cc9cd1e --- /dev/null +++ b/.devcontainer/03-azure-01-04-ai-04-agentic-contract-lifecycle-management/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / AI / Agentic Contract Lifecycle Management", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-04-AI/04_Agentic_Contract_Lifecycle_Management", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/03-azure-01-05-sap-01-microhack-sap-cashflow-prediction/devcontainer.json b/.devcontainer/03-azure-01-05-sap-01-microhack-sap-cashflow-prediction/devcontainer.json new file mode 100644 index 00000000..9d251d27 --- /dev/null +++ b/.devcontainer/03-azure-01-05-sap-01-microhack-sap-cashflow-prediction/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Azure / SAP / Cashflow Prediction", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/microhack,type=bind,consistency=cached", + "workspaceFolder": "/workspaces/microhack/03-Azure/01-05-SAP/01_MicroHack-SAP-Cashflow-Prediction", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "bash" + } + } + }, + "remoteUser": "vscode", + "postAttachCommand": "bash /workspaces/microhack/.devcontainer/welcome.sh" +} diff --git a/.devcontainer/welcome.sh b/.devcontainer/welcome.sh new file mode 100755 index 00000000..eac8fe4f --- /dev/null +++ b/.devcontainer/welcome.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# Shared welcome banner for all MicroHack devcontainers. +# Invoked via each config's "postAttachCommand" with the working directory +# set to that MicroHack's workspaceFolder. +set -uo pipefail + +name="$(basename "$PWD")" + +echo "" +echo "👋 Welcome to the ${name} MicroHack!" +echo "" + +if [ -f "$PWD/README.md" ]; then + echo "Opening README.md to get you started..." + code "$PWD/README.md" >/dev/null 2>&1 || true +else + echo "No README.md found in this folder yet — check the MicroHack docs to get started." +fi + +echo ""