- User creates a branch and checkout this branch (we need to detect the references)
- changes input (data, reconcilers, library) -> we map these files to the database (db directory) -> we keep the input seperate in memory (to allow) -> alternative is using an api model where the user creates a script to import (this allows to restire)
- run the reconcilers
- iterate between 2/3
- stash changes
- push to remote
- pull + iterate
- merge
Is the directory a source of truth or not
- apis
- reconcilers
- libs
- input is used as examples -> maybe we use a testdb to test things out
flow
- create a repo dir (git init -b main)
- create api(s) - generate using crdgen
- create reconcilers/libs
- create test input -> unit test environment
- test with choreo run
- validate
- checkin
flow
- create a repo dir (git init -b main)
- using a ref we copy clone the data from an existing repo (in this repo)
- add your input
- choreo run
- iterate
- validate
- checkin
upstream ref -> copy the data in the repo, in the respective directories data ref -> need to data to run the reconciler (you cannot change the data but just use it/consume it) -> maybe for identifiers: like ip/vlan/as/etc we might need to provide an update
repo1 (blueprint) -> dir1 -> dir2
apiVersion: choreo.kform.dev/v1alpha1
kind: UpstreamRef
metadata:
name: topology
spec:
url: guthub.com/org/repo
directory: a/b/topology
ref:
type: hash
id: 1234567
local repo
- apis
- reconciler/libs
- inputs
- refs/upstreamref.yaml
- refs/dataref.yaml
- refs//
- refs//