This repository contains modernized infrastructure-as-code for deploying Neo4j on Azure, migrating from ARM JSON templates to Azure Bicep.
📚 Deployment & Testing Guide - Automated deployment framework for testing and validating templates
This project modernizes the Neo4j Azure deployment infrastructure with:
- Azure Bicep - Modern, declarative infrastructure-as-code replacing ARM JSON
- Cloud-Init - Declarative VM provisioning replacing complex bash scripts
- Automated Linting - Quality and security validation via Bicep linter
- Simplified Architecture - Clean, maintainable templates without over-engineering
├── bicepconfig.json # Bicep linter configuration
├── marketplace/
│ ├── neo4j-enterprise/ # Enterprise edition templates
│ ├── neo4j-community/ # Community edition templates
│ └── neo4j-enterprise-aks/ # AKS-based Enterprise templates
├── deployments/ # Automated testing framework (see deployments/README.md)
│ ├── neo4j_deploy.py # CLI for deployment testing
│ └── src/ # Testing modules
├── scripts/
│ ├── neo4j-enterprise/ # Enterprise installation scripts (being modernized)
│ ├── neo4j-community/ # Community installation scripts (being modernized)
│ ├── pre-commit-bicep # Git pre-commit hook for Bicep validation
│ ├── install-git-hooks.sh # Hook installation script
│ └── validate-environment.sh # Development environment validation
Required:
- Azure CLI 2.50.0+
- Bicep CLI 0.20.0+ (bundled with Azure CLI)
- Python 3.12+ with uv
- Git 2.30.0+
Recommended:
- Visual Studio Code with Bicep extension
./scripts/validate-environment.shThe deployments/ directory contains a comprehensive CLI for deployment testing:
cd deployments
# First-time setup
uv run neo4j-deploy setup
# Deploy a scenario
uv run neo4j-deploy deploy --scenario standalone-v5
# Check deployment status
uv run neo4j-deploy status
# Test the deployment
uv run neo4j-deploy test
# Clean up resources
uv run neo4j-deploy cleanup --all --forceSee deployments/README.md for full command reference.
cd deployments
# Setup: copy .env.sample to .env and add your Partner Center PID
cp ../.env.sample ../.env
# Build enterprise package (creates mainTemplate.json and neo4j-enterprise.zip)
uv run neo4j-deploy package
# Build community package
uv run neo4j-deploy package --template communityGenerate Azure Service Principal credentials for GitHub Actions CI/CD:
cd deployments
uv run setup-azure-credentialsThis will:
- Create a Service Principal with Contributor role
- Save credentials to
azure-credentials.json - Provide instructions for adding to GitHub Secrets
cd marketplace/neo4j-enterprise
./deploy.sh <resource-group-name>cd marketplace/neo4j-community
./deploy.sh <resource-group-name>The templates in this repository are used for:
- Standalone (1 node) or cluster (3-10 nodes) deployments
- Neo4j version 5.x support
- Enterprise and Evaluation license types
- Standalone deployment
- Neo4j version 5.x support