Skip to main content

No project description provided

Project description

Logo

Vendorless is a Python-based templating engine for rendering Docker Compose projects. In vendorless, blueprints are Python modules that configures the services that make up an application, like databases and servers. A blueprint can be rendered to Docker Compose files that run an instance of the application. The basic functionality of vendorless is provided by the vendorless.core package, and other packages provide specific service templates and blueprints. For example, the vendorless.postgres package provides service templates for running a PostGreSQL database, and the vendorless.keycloak package provides a blueprint for running a Keycloak authentication server (which uses service templates provided by vendorless.postgres).

The goal of vendorless is to make it easier to build your application's backbone using free and open-source services. Vendorless is designed for small- to medium-sized projects that value self-containment over infinite scalability, and pragmatic tooling that prioritizes development efficency, and maintainability.

Key Features

  1. Python-based infrastructure-as-code (IaC). Blueprints are Python modules, which allows of the use of complex scriping, looping, and logic to configure service templates.
  2. Parameter linking allows the outputs of one service template to be linked to the inputs of other service templates. Service templates are effectively black boxes that are configured via their input parameters. Service templates also have output parameters, and these output parameters (e.g., ports, URLs, file paths, service names) can be linked to the input parameters of other service templates.
  3. Extensibility is provided by namespace packaging. Vendorless packages provide service templates (for use in blueprints), CLI commands (e.g., key generation), and/or blueprints (ready-made applications). You can leverage community maintained packages, or create your own.

Commands

vl is an extensible command-line tool that runs commands from vendorless packages. The functionality for working with vendorless blueprints and packages is provided by vendorless.core which includes:

  1. Rendering blueprints
  2. Developing new vendorless packages (creating, documenting, testing, and publishing)

Vendorless packages may add additional commands that are related to the package's services (e.g., key generation, certificate generation, secret generation, etc.).

The format of vl commands is

vl <package> <command> <arguments>...

where <package> is the vendorless package (e.g., core) that provides <command>. For example:

$ vl core render -m vendorless.keycloak.blueprints.auth_server

You can always use --help to see command documentation.

Commands via Docker

You can run vendorless commands via docker like so:

docker run ghcr.io/liambindle/vendorless:latest \
    vendorless.<packages>... \
    <package> <command> <arguments>...

This is useful if you're running vendorless in an environment that doesn't have Python (e.g., a production server). The first set of arguments (packages prefixed with vendorless.) is the list of vendorless packages that need to be installed. The subsequent arguments are the arguments to the vl command. For example

$ docker run ghcr.io/liambindle/vendorless:latest \
    vendorless.core vendorless.keycloak \
    core render -m vendorless.keycloak.blueprints.auth_server

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

vendorless_core-0.1.5.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

vendorless_core-0.1.5-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file vendorless_core-0.1.5.tar.gz.

File metadata

  • Download URL: vendorless_core-0.1.5.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.10 Linux/6.12.16

File hashes

Hashes for vendorless_core-0.1.5.tar.gz
Algorithm Hash digest
SHA256 0cce3962a2d5d376476132f9d4ed32b7a55339b478a742eeaa3935dd3090b2d9
MD5 e9215c7c27a7e6350dbf041afa1b565d
BLAKE2b-256 2d3aeaf9a3ced6459c75e27e0021667a2f753af5ac868fafbd9d43ec390857af

See more details on using hashes here.

File details

Details for the file vendorless_core-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: vendorless_core-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.10 Linux/6.12.16

File hashes

Hashes for vendorless_core-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ed369c1ec9beb4009f690f9a99ac7760b8879d9c479844685638ea12a77d8875
MD5 a1db49eba72c009d32589402a884a4f8
BLAKE2b-256 b011a1e9edb9451edd7dfe5caecb85d6f50b4f5f1c68a7ccdbe899fe1796b9b6

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