holos-run / holos

Holos - The Holistic platform manager
https://holos.run
Apache License 2.0
19 stars 0 forks source link

Holos Demo task list #175

Closed jeffmccune closed 5 months ago

jeffmccune commented 5 months ago

holos #demo #mvp

What is the minimum viable demo / minimum viable product?

[!NOTE] The first pass through focuses on the platform itself, not on projects. A follow up pass will focus on projects within a platform.

Journey

holos login

Obtain an oidc id token. Outcomes:

  1. [x] User is registered in the ZITADEL identity provider
  2. [x] holos has an id token capable of making API requests to holos server.

    holos register user

    Provision SaaS resources necessary to manage a platform. Outcomes:

  3. [x] User is registered in holos server
  4. [x] User is linked to one Holos Organization.
  5. [x] Holos Organization has the bare platform.
  6. [x] Holos Organization has the reference platform.
  7. [x] Ensure ~/.holos/client-context.json contains the user id and an org id.

Complete in 0.77.0.

holos generate platform bare

Generate the platform config code in the current working directory. Outcomes:

  1. [x] CLI obtains the platform id by name from the holos server.
  2. [x] CLI Writes platform.metadata.json to the local file system with name, display name, id.
  3. [x] CUE code is written to the local file system.
  4. [x] Everything is in place to allow the user to push the platform form to the web ui.

Complete in 0.78.0

holos push platform form

Push changes to platform form CUE config to holos server so the updated form shows up nicely. This sub-command enables the platform designer to iterate on the form.

  1. [x] Form is rendered into a proto buffer.
  2. [x] Platform ID is loaded from platform.metadata.json
  3. [x] Platform Form is updated using holos.platform.v1alpha1.PlatformService.
  4. [x] User can view the updated form and save the form model back to holos server

Complete in 0.79.0

holos pull platform bare

Pull the Platform Model from the PlatformService and store it in a PlatformConfig. Marshal the message to a JSON file for re-use by holos render without needing rpc calls.

Complete in 0.80.2

holos generate component cue minimal

Generate a holos component that manages kubernetes api objects as CUE code. Outcomes:

  1. [x] Fills in template values from cli flags.
  2. [x] Additional schematics can easily be added.
  3. [x] Writes the component to the local file system.

Complete in 0.81.0

holos generate component helm

Generates a holos component that manages a Helm chart.

  1. [x] Generates a component that manages cert-manager from the upstream helm chart.
  2. [x] Simplify down to a #HelmChart definition.
  3. [x] Writes the component to the local file system.
  4. [x] Example Helm chart using oci:// images
  5. [x] podinfo example
  6. [x] cert-manager example
  7. [x] schematic.json default flag values, short help, long help. Complete in v0.81.2

    holos generate platform reference

    Repeat the steps of the bare platform for the reference platform.

    Follow up tasks

    • Manage holos components with ArgoCD
jeffmccune commented 5 months ago

Closing this for now. Major items and onboarding steps are complete.

Follow up with a second pass to define the project data model and build out the reference platform.