Skip to main content

CLI tool for building modular infrastructure

Project description

vinery is the simple, batteries-included infrastructure-as-code framework that leverages opinionated, plug-and-play Terraform/OpenTofu plans to programmatically generate data and analytics infrastructure in Azure.

What vinery Is Not

❌ A state management tool.

❌ For highly specialized workloads or infrastructure needs.

❌ For teams with many platform/infrastructure/devops specialists! Don't want to make it too easy for them.

Instead, vinery Is

✅ A Terraform/OpenTofu workspace management tool!

✅ Simple! Perfect for data people and other infrastructure non-specialists!

✅ For repeatable deployments, across many tenants!

vinery comes in two parts:

  • A library 📚 of plans for managing Azure infrastructure for data and analytics, that is:

    • Opinionated: reasonable choices are made for each resource, allowing for a sane amount of configuration.
    • Plug-and-play: each plan is designed to provide unique, but complementary, components to the infrastructure.
  • The vine 🍃 CLI, responsible for parsing through each plan's dependencies, builds the project's plan dependency graph, and batch execution of Terraform/OpenTofu commands on the selected plans.

Simply choose which components to include from the library - vine determines the required dependencies, tells you which inputs to provide, and executes everything in sequence - allowing you (or your CI) to sit back and pour some of your vinery's best grape juice. 🍷

Getting Started

clone repo

cd vinery

pip install .

vine -h

Pre-Requisites & Disclaimers

The vine CLI expects OpenTofu CLI/Terraform CLI, as well as Azure CLI to be installed.

vinery expects no different settings or configurations than how you would normally configure the Azure provider. However, our default plans do not support inline configuration of provider credentials, since we don't recommend it ourselves.

something something

This repository supports OpenTofu and Terraform

This project was tested on:

  • OpenTofu 1.9.0.
  • Terraform 1.6.0.

Both are great options, but we prefer OpenTofu.

Known Bugs / Issues

  • Changing an existing Databricks Workspace's public_network_access_enabled parameter via the private_frontend input variable (local.tfvars) causes the Terraform/Tofu runtime to get stuck in Still modifying.... Despite the message, if the execution is interrupted, the change is successful, as re-running the plan yields Your infrastructure matches the configuration. and the changes can be shown to have taken effect in the workspace.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vinery-0.1.0.tar.gz (76.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vinery-0.1.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file vinery-0.1.0.tar.gz.

File metadata

  • Download URL: vinery-0.1.0.tar.gz
  • Upload date:
  • Size: 76.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for vinery-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ff552d857318e121e39b304a592857535f8494bb23868d84918cb547bfaf29eb
MD5 0c8e60cc60ac5d532c3f8f21437c56b2
BLAKE2b-256 331892b7884b8dae31b54eac7e4efbd336c6ed6b6c6afe11b5d0d4b27dc4cd37

See more details on using hashes here.

File details

Details for the file vinery-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vinery-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for vinery-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 776d6aeaa4857449a58ffd2a4010fe53493fb0fa3b56880675d6944d9c7f97b8
MD5 c1c88dcaae9882d57094f9fd6beb0a8e
BLAKE2b-256 ff672c29da85edb040de4cdf6347aa9b6e132f25799cdd06ad1153172166a7bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page