Skip to content

NewRefProposal

Anton Kremenetsky edited this page May 19, 2025 · 2 revisions

Example of manifests with new reference proposal.

Name: foo_element
SchemaVersion: 1
Version: "0.0.1"

Requires:
  core: [">= 0.0.0", "< 1.0.0"] 

Resources:
  $core.object.artifacts:
    controller:
      source: "https://github.com/orgs/infraguys/images/controller.img"
    template:
      source: "https://github.com/orgs/infraguys/templates/template.j2"

  $core.compute.sets:
    controller:
      replicas: 3
      cores: 1
      ram: 1024
      image: "$core.object.artifacts.$controller.image_uuid"
      node_type: "VM"

  $core.config.configs:
    controller_conf:
      path: "/etc/controller/controller.env"
      target:
        kind: "set"
        node: "$core.compute.sets.$controller.uuid"
      body:
        kind: "collection_template"
        template: "$core.object.artifacts.$template.location"
        params:
          node_ip: "$core.compute.sets.$controller.nodes[].ipv4"
      on_change:
        kind: "command"
        command: "systemctl restart controller.service"

Nested resource reference example:

$core.compute.sets.$xxx.nodes.$yyy.ports:
    main_port:
      ipv4: "127.0.0.1"
      ipv6: "::1"

Collection reference example:

$core.compute.sets:
    controller:
      replicas: 3
      cores: 1
      ram: 1024
      image: "$core.object.artifacts[]"
      node_type: "VM"

Clone this wiki locally