Skip to content

Shopkeeper is a python package that implements Data Platform Resources -- data producers, data consumers and datasets -- as custom infrastructure components

Notifications You must be signed in to change notification settings

jaketbouma/shopkeeper

Repository files navigation

🛍️ Shopkeeper

Shopkeeper is a python package that implements Data Platform Resources -- data producers, data consumers and datasets -- as custom infrastructure components. This project is in its early phases, exploring whether Pulumi can provide a rich self service interface to a data platform.

See honestgrowth.no for strategy and design.

The marketplace data model: data platform resources, their important attributes, and the simple relationships between them.

Trying out the marketplace

Coming soon! For now, you can peek at the test cases in pulumi-shopkeeper/tests.

Contributor setup

Prerequisites:

  • Docker
  • (recommended) Visual Studio Code, with the Dev Containers extension
  • A test AWS subscription (aws sso login)

This project can be tested and developed in a (rather opinionated) devcontainer based on the (rather large) Pulumi/Pulumi image. This image gives us Java, Go, dotnet and python, which we need to build and test pulumi packages across all supported languages.

To get started, build the container yourself, providing your own github handle as an arg. This will be used to create a non-root container user, and is later by the devcontainer configuration.

export GITHUB_USERNAME="jaketbouma"
cd .devcontainer
docker build -f dev.Dockerfile --build-arg GITHUB_USERNAME=$GITHUB_USERNAME$ -t shopkeeper-dev:latest ./

Review the .devcontainer/devcontainer.json file. I use chezmoi to sync dotfile configuration and secrets into the development container using a postStartCommand script. This is mostly for terminal cosmetics and to persist terminal history. You can create your own .devcontainer/${GITHUB_USERNAME}.postStartCommand.sh and adjust as needed.

Poetry Poe is used as the task runner, and has tasks for tests, cleanups, etc.

cd pulumi-shopkeeper
poetry install
poetry run poe

Happy hacking!

About

Shopkeeper is a python package that implements Data Platform Resources -- data producers, data consumers and datasets -- as custom infrastructure components

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published