mirror of
https://github.com/holos-run/holos.git
synced 2026-03-22 02:05:00 +00:00
We need to output a kind: Platform resource from cue so holos can iterate over each build plan. The platform resource itself should also contain a copy of the platform model obtained from the PlatformService so holos can easily pass the model to each BuildPlan it needs to execute to render the full platform. This patch lays the groundwork for the Platform resource. A future patch will have the holos cli obtain the platform model and inject it as a JSON encoded string to CUE. CUE will return the Platform resource which is a list of references to build plans. Holos will then iterate over each build plan, pass the model back in, and execute the build plan. To illustrate where we're headed, the `cue export` step will move into `holos` with a future patch. ``` ❯ holos register user 3:34PM INF register.go:77 user version=0.80.0 email=jeff@ois.run server=https://app.dev.k2.holos.run:443 user_id=018f8839-3d74-7e39-afe9-181ad2fc8abe org_id=018f8839-3d74-7e3a-918c-b36494da0115 ❯ holos generate platform bare 3:34PM INF generate.go:79 wrote platform.metadata.json version=0.80.0 platform_id=018f8839-3d74-7e3b-8cb8-77a2c124d173 path=/home/jeff/holos/dev/bare/platform.metadata.json 3:34PM INF generate.go:91 generated platform bare version=0.80.0 platform_id=018f8839-3d74-7e3b-8cb8-77a2c124d173 path=/home/jeff/holos/dev/bare ❯ holos push platform form . 3:34PM INF push.go:70 pushed: https://app.dev.k2.holos.run:443/ui/platform/018f8839-3d74-7e3b-8cb8-77a2c124d173 version=0.80.0 ❯ cue export ./platform/ { "metadata": { "name": "bare", "labels": {}, "annotations": {} }, "spec": { "model": {} }, "kind": "Platform", "apiVersion": "holos.run/v1alpha1" } ```