flightctl / flightctl-demos

Fleet git management demo
1 stars 9 forks source link

Conventions on repo structure and artefact naming #21

Open fzdarsky opened 1 week ago

fzdarsky commented 1 week ago

It would be useful to define and implement a convention on the structure of this repo and how produced artefacts (images, fleets, etc.) are named. This would make it easier

Below is a proposal to illustrate and start the discussion.

Repo structure and naming:

/
├── images  # images that just contain the base OS + FC agent, used for testing and as base for demo images
│   ├── bootc 
│   │   ├── centos-bootc  # directory name == name of base distro image
│   │   ├── fedora-bootc
│   │   ├── rhel-bootc
│   │   └── ...
│   └── rpm-ostree
│       ├── rhel8
│       └── ...
├── demos
│   ├── demo1  # directory name == name of Container image == name of fleet when deployed
│   │   ├── bootc  # optional: contains everything that'll get built into thedirectory name == name of base distro image
│   │   │   ├── configuration  # build-time configuration (built into the image)
│   │   │   │   ├── etc  # structure config like it should appear on the target filesystem to make it easier to read
│   │   │   │   └── ...
│   │   │   ├── Containerfile
│   │   │   └── Containerfile.rhel9  # optional: if distro or arch or ... needs special-casing
│   │   ├── configuration  # optional: run-time configuration (to be applied by Flight Control)
│   │   │   ├── factoryA  # optional: substructure for device- or group-specific configurations
│   │   │   │   ├── etc  # structure config like it should appear on the target filesystem to make it easier to read
│   │   │   │   └── ...
│   │   │   └── factoryB
│   │   └── deployment  # fleet resource manifests to be applied to Flight Control
│   │           └── fleet.yaml
│   ├── demo2
│   │   └── ...
...

Demo naming:

Artefact naming:

astoycos commented 6 days ago

I think we can also include some conventions on how we store the github actions workflows if that's the automation platform we'll be sticking with, that could also include naming conventions for shared workflows, I'll think on a structure and post back here.