Перейти к содержанию

Манифест#

Пример манифеста#

name: "core_service_example"
description: "Пример сервиса Exordos Core"
schema_version: 1
version: "1.0.3"
api_version: "v1"

requirements:  # Требования манифеста
  core:
    from_version: "0.0.0"
    to_version: "1.0.0"

resources: 
  $core.compute.nodes:
    example_node:
      name: "example-service-node"
      description: "Узел примера сервиса"
      cores: "$core_service_example.imports.$var_default_cores:value"
      ram: "$core_service_example.imports.$var_default_ram:value"
      project_id: "12345678-c625-4fee-81d5-f691897b8142"
      disk_spec:
        kind: "root_disk"
        size: 10
        image: "{{ base_image_url | default('https://repository.exordos.com/exordos-base/0.4.1/exordos-base.raw.gz') }}"
  
  $core.em.services:
    example_service:
      project_id: "12345678-c625-4fee-81d5-f691897b8142"
      name: "example-service"
      path: "/usr/bin/python3 -m http.server 8080"
      user: "ubuntu"
      group: "ubuntu"
      target:
        kind: "node"
        node: "$core_service_example.compute.nodes.$example_node:uuid"
      service_type:
        kind: "simple"
        count: 1
      target_status: "enabled"

exports:
  my_service:
    link: "$core_service_example.em.services.$example_service"
    kind: "resource"
  my_node:
    link: "$core_service_example.em.services.$example_node"
    
imports:
  var_default_cores:
    element: "$core"
    kind: "resource"
    link: "$core.vs.variables.$default_cores"
  var_default_ram:
    element: "$core"
    kind: "resource"
    link: "$core.vs.variables.$default_ram"

name#

Имя манифеста.

description#

Описание манифеста.

schema_version#

Версия схемы манифеста, сейчас 1.

version#

Версия манифеста, см. документацию в exordos_devtools

api_version#

Версия API манифеста, сейчас v1

requirements#

core:
  from_version: "0.0.0"
  to_version: "1.0.0"

Требования используются для указания версий элементов, необходимых для запуска манифеста.

Resources#

Ресурсы используются для указания ресурсов, необходимых для запуска манифеста.

exports#

my_service:
  link: "$core_service_example.em.services.$example_service"
  kind: "resource" # вид экспорта, сейчас поддерживается только `resource`, может быть опущено

imports#

var_default_cores:
  element: "$core"  # элемент, из которого выполняется импорт
  kind: "resource" # вид импорта, сейчас поддерживается только `resource`, может быть опущено
  link: "$core.vs.variables.$default_cores"   # ссылка на ресурс (элемент, из которого выполняется импорт, может быть другим)

Импорты используются для указания ресурсов, импортируемых манифестом.