Skip to content

FRI-DAY/project-configurator

Repository files navigation

Project Configurator

Developers describe their projects in a YAML file. Project Configurator reads that file and creates or updates the corresponding resources on GitLab, Sentry, and Kubernetes -- namespaces, CI/CD settings, Jira integrations, pipeline schedules, Docker registry cleanup rules, and so on.

The idea is simple: instead of every developer clicking through three different UIs to set up a new service (and forgetting half the steps), they add a few lines of YAML and Project Configurator does the rest with sane defaults and the conventions your team agreed on.

[[TOC]]

Background

Project Configurator was built at FRI:DAY, a German digital insurance company, to standardize how engineering teams create and manage their services. It ensures every project is set up with sane defaults and agreed-upon conventions, every time.

FRI:DAY agreed to open-source it when the company wound down. Whether it's useful to anyone else is an open question -- it was built for our specific stack and conventions. But if you run GitLab, Sentry, and Kubernetes and are tired of manually configuring the same things over and over, it might save you some time. At the very least, it might give you ideas for building your own.

User Manual

Configuration File Schema

The application outputs the JSON schema that validates its configuration via the sub-command jsonschema:

docker run --rm -it project-configurator jsonschema > project-configurator.schema.json

It is the one-and-only source of documentation for the configuration file's schema.

Development

Requirements

Entrypoints

python main.py --help

Parameters

All program parameters can be passed in multiple ways:

  • via the command line switches: --some-param
  • via environment variables: APP_<subcommand>_<name>, e.g. APP_SYNC_SOME_PARAM
  • For sensitive variables, if not given, the application will ask with a silent input.

Misc

  • We ship simple_sentry_client because it is not registered on PyPi and installing packages from GitLab is always a hassle regarding availability and tool support.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors