Skip to content

DEVELOP.md

Amit Malav edited this page Apr 17, 2020 · 1 revision

Repository Structure

The source code repository of service-fabrik follows Mono Repo pattern with a single repository hosting multiple projects. The monorepo is facilitated through lerna. Following is summary for important modules-

  1. applications - Each directory in this folder contains code for an application, which can be run as separate independent process.
  2. core - This module comprises of core functionality used by applications
  3. data-access-layer - Clients required to connect to external components.
.
|-- applications
|   |-- admin
|   |-- deployment_hooks
|   |-- extensions
|   |-- operators
|   |   |-- backup-operator
|   |   |-- bosh-operator
|   |   |-- bosh-restore-operator
|   |   |-- docker-operator
|   |   |-- multitenancy-operator
|   |   |-- restore-operator
|   |   |-- serviceflow-operator
|   |   `-- virtualhost-operator
|   |-- osb-broker
|   |-- reports
|   `-- scheduler
|-- bin
|-- config
|   |-- certs
|   |-- crds
|   |-- samples
|   `-- templates
|-- core
|   |-- app-config
|   |-- controllers
|   |-- express-commons
|   |-- logging
|   |-- models
|   |-- platform-managers
|   |-- scheduler-jobs
|   `-- utils
|-- data-access-layer
|   |-- bosh
|   |-- broker-client
|   |-- cf
|   |-- db
|   |-- docker
|   |-- event-logger
|   |-- eventmesh
|   |-- iaas
|   |-- metering
|   |-- oob-manager
|   |-- quota
|   `-- service-agent
|-- helm-charts
|   `-- interoperator
|-- interoperator
|   |-- api
|   |-- config
|   |-- controllers
|   |-- hack
|   |-- images
|   |-- internal
|   |-- pkg
|   `-- scripts
|-- logs
|-- store
|   `-- sessions
|-- test
|   |-- test_broker
|   `-- test_deployment_hooks
|-- tools
|   `-- module-generator
|-- webhooks
|   `-- pkg
|-- package.json

Using lerna to create new package

./bin/setup-module </path/to/package> # creates skeleton for new package
lerna link convert  # to add newly created node package on top package.json
lerna add <some-local-package>  # Adds dependency to *some-local-package* in current module