A custom template for Databricks Asset Bundles that generates production-ready, multi-environment projects with configurable compute, permissions, and CI/CD pipelines.
Setting up a production-grade Databricks project involves many decisions: environment isolation, compute configuration, RBAC permissions, service principal setup, CI/CD pipelines, and Unity Catalog schemas. This template encodes proven patterns for all of these so you can go from zero to a deployable bundle in minutes, not days.
- Databricks CLI v0.274.0+ (
pip install databricks-cli) - Unity Catalog enabled workspace
databricks bundle init https://github.com/vmariiechko/databricks-bundle-templateOr from a local clone:
databricks bundle init /path/to/databricks-bundle-templateThe CLI will guide you through configuration options. Your generated project includes complete documentation for deployment and customization.
Windows users: Use PowerShell or Command Prompt for interactive prompts. Git Bash is not supported for interactive mode.
For a quick, non-interactive setup or if you prefer to skip the prompts:
# From remote (create config.json with your values first):
databricks bundle init https://github.com/vmariiechko/databricks-bundle-template \
--config-file config.json# From local clone:
cp tests/configs/full_with_sp.json my-config.json # Copy and edit with your values
databricks bundle init . --config-file my-config.jsonSee example configs for options and refer to Template Options for available values.
- Multi-environment deployment (user/stage/prod, optional dev)
- Unity Catalog integration with medallion architecture schemas
- Sample ETL jobs and pipelines
- Optional RBAC with environment-aware group permissions
- Configurable compute (classic clusters, serverless, or both)
- CI/CD pipeline templates (Azure DevOps, GitHub Actions, GitLab)
| Option | Choices | Default |
|---|---|---|
| Environment setup | full (user/stage/prod) / minimal (user/stage) |
full |
| Include dev environment | yes / no |
no |
| Compute type | classic / serverless / both |
classic |
| Cloud provider | azure / aws / gcp |
azure |
| Include permissions | yes / no |
yes |
| Include CI/CD | yes / no |
yes |
| CI/CD platform | azure_devops / github_actions / gitlab |
azure_devops |
| Default branch | string | main |
| Release branch | string (full mode only) | release |
This section is for developers modifying the template itself.
databricks-bundle-template/
├── databricks_template_schema.json # Prompt definitions
├── library/helpers.tmpl # Go template helpers
├── template/
│ ├── update_layout.tmpl # Conditional directory/file skipping
│ └── {{.project_name}}/ # Generated project structure
│ ├── .azure/ # Azure DevOps CI/CD pipelines
│ ├── .github/ # GitHub Actions workflows
│ ├── .gitlab-ci.yml.tmpl # GitLab CI/CD pipeline
│ ├── docs/ # Setup guides (CI/CD, permissions, groups)
│ └── ... # Bundle config, resources, src
├── tests/ # Pytest test suite
├── ARCHITECTURE.md # Technical design
└── DEVELOPMENT.md # Developer notes
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
# Install dependencies
pip install -r tests/requirements_dev.txt
# Run automated tests
pytest tests/ -V# Manual testing
databricks bundle init . --output-dir ../test-output --config-file tests/configs/full_with_dev.json
# Validate (requires Databricks CLI authentication)
cd ../test-output/test_full_with_dev/
databricks bundle validate -t user- ARCHITECTURE.md - Design decisions and technical architecture
- DEVELOPMENT.md - Development notes and testing matrix
- tests/README.md - Tests setup and guide
Contributions are welcome! See CONTRIBUTING.md for guidelines on how to get started.
See ROADMAP.md for planned features and the project direction. Highlights include configurable git branching models, asset sub-templates, and advanced permissions profiles.
- Questions & help: GitHub Discussions
- Bug reports: Issue tracker
- Feature ideas: Feature requests
This project is licensed under the MIT License.