instance-kvm-export.cfg.jinja2 2.02 KB
Newer Older
1
[buildout]
2 3 4
extends =
  {{ kvm_template }}
  {{ pbsready_export_template }}
5 6 7

parts +=
  cron-entry-backup
8
  ${instance-kvm-parts:parts}
9
  check-backup-directory-promise
10

11 12
[slap-parameter]
{% for k, v in slapparameter_dict.items() -%}
13 14 15
{%-  if k == 'namebase' %}
{{ k }} = {{ v }}
{%-  else %}
16
{{ k }} = {{ dumps(v) }}
17
{%-  endif %}
18 19
{% endfor -%}

20 21 22 23
[directory]
tmp = ${buildout:directory}/tmp

[disk]
24 25 26 27 28 29 30 31 32
{%- set disk_type = slapparameter_dict.get('disk-type', 'virtio') %}
{%- if disk_type == "virtio" %}
device = virtio0
{%- elif disk_type == "ide" %}
{#-   Manually found device name in case of disk-type == ide #}
device = ide0-hd0
{%- else %}
# unsupported disk-type {{ disk_type }}
{%- endif %}
33 34 35 36 37 38 39

[exporter]
recipe = slapos.recipe.template:jinja2
url = {{ template_kvm_export }}
output = ${directory:bin}/${slap-parameter:namebase}-exporter
# Resilient stack wants a "wrapper" parameter
wrapper = ${:output}
40 41 42 43
context =
    section directory directory
    section buildout buildout
    key socket_path kvm-instance:socket-path
44 45
    section disk disk
    raw qmpbackup {{ qmpbackup }}
46 47 48 49

# Extends publish section with resilient parameters
[publish-connection-information]
<= resilient-publish-connection-parameter
50 51
monitor-base-url = ${monitor-publish:monitor-base-url}
monitor-setup-url = ${monitor-publish:monitor-setup-url}
52

53 54 55 56
[monitor-instance-parameter]
monitor-httpd-port = 8026
monitor-title = {{ slapparameter_dict.get('name', 'KVM Standalone') }}
cors-domains = {{ slapparameter_dict.get('monitor-cors-domains', 'monitor.app.officejs.com') }}
57
{% if slapparameter_dict.get('monitor-username', '') -%}
58
username = {{ slapparameter_dict['monitor-username'] }}
59 60
{% endif -%}
{% if slapparameter_dict.get('monitor-password', '') -%}
61 62
password = {{ slapparameter_dict['monitor-password'] }}
{% endif -%}
63

64 65 66 67 68 69 70
[check-backup-directory-promise]
# Check that disk image is not corrupted
<= monitor-promise-base
promise = check_command_execute
name = check-backup-directory.py
config-command = {{ check_backup_directory }} ${directory:backup}/${disk:device} ${directory:tmp}
failure_amount = 5