Qemu schema base
Title: VM Base Inventory
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Not allowed |
Description: Base inventory that gets inherited by qemu standalone and kubespray nodes.
| Property |
Pattern |
Type |
Deprecated |
Definition |
Title/Description |
| + target_pve |
No |
string |
No |
- |
Proxmox cluster name + . + pve cloud domain. This determines the cloud and the proxmox cluster the vms/lxc/k8s luster will be created in. |
| + stack_name |
No |
string |
No |
- |
Your stack name, needs to be unique within the cloud domain. |
| - static_includes |
No |
object |
No |
- |
For virtual machines we have the option to define tcp_proxies and ingress_domains. If those are set we need certain static includes.
|
| - include_stacks |
No |
array of object |
No |
- |
Include other stacks into the ansible inventory, from any pve cloud you are connected to. From here you can freely extend and write your own playbooks. |
| + root_ssh_pub_key |
No |
string |
No |
- |
trusted root key for the cloud init image. |
| - pve_ha_group |
No |
string |
No |
- |
PVE HA group this vm should be assigned to (optional). |
| - target_pve_hosts |
No |
array of string |
No |
- |
Array of proxmox hosts in the target pve that are eligible for scheduling. If not specified all online hosts are considered. |
| + qemus |
No |
array of object |
No |
- |
List of qemu vms for the stack. |
| - tcp_proxies |
No |
array of object |
No |
- |
Raw tcp forwards on the clusters haproxy to k8s services exposed via nodeport. |
| - qemu_default_user |
No |
string |
No |
- |
User for cinit. |
| - qemu_hashed_pw |
No |
string |
No |
- |
Pw for default user defaults to hashed 'password' for debian cloud init image. Different cloud init images require different hash methods. You cannot use the same from debian for ubuntu for example. |
| - qemu_base_parameters |
No |
object |
No |
- |
Base parameters applied to all qemus. passed to the proxmox qm cli tool for creating vm. |
| - qemu_image_url |
No |
string |
No |
- |
http(s) download link for cloud init image. |
| - qemu_keyboard_layout |
No |
string |
No |
- |
Keyboard layout for cloudinit. |
| - qemu_network_config |
No |
string |
No |
- |
Optional qemu network config as a yaml string that is merged into the cloudinit network config of all qemus. |
| - qemu_global_vars |
No |
object |
No |
- |
Variables that will be applied set for all qemus vms. |
| - plugin |
No |
enum (of string) |
No |
- |
Id of ansible inventory plugin |
18. Property VM Base Inventory > target_pve
Description: Proxmox cluster name + . + pve cloud domain. This determines the cloud and the proxmox cluster the vms/lxc/k8s luster will be created in.
Example:
"proxmox-cluster-a.your-cloud.domain"
19. Property VM Base Inventory > stack_name
Description: Your stack name, needs to be unique within the cloud domain.
20. Property VM Base Inventory > static_includes
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Not allowed |
Description: For virtual machines we have the option to define tcp_proxies and ingress_domains. If those are set we need certain static includes.
| Property |
Pattern |
Type |
Deprecated |
Definition |
Title/Description |
| - dhcp_stack |
No |
string |
No |
- |
For interacting with kea reservations. |
| - proxy_stack |
No |
string |
No |
- |
Reloading the proxy. |
| - postgres_stack |
No |
string |
No |
- |
The playbook needs the pve cloud postgres stack where state and general configuration is stored. |
| - bind_stack |
No |
string |
No |
- |
The playbook needs the bind stack to register the general masters recordset and for creating authoritative zones defined in cluster_cert_entries. |
20.1. Property VM Base Inventory > static_includes > dhcp_stack
Description: For interacting with kea reservations.
Example:
"dhcp.your-cloud.domain"
20.2. Property VM Base Inventory > static_includes > proxy_stack
Description: Reloading the proxy.
Example:
"proxy.your-cloud.domain"
20.3. Property VM Base Inventory > static_includes > postgres_stack
Description: The playbook needs the pve cloud postgres stack where state and general configuration is stored.
Example:
"patroni.your-cloud.domain"
20.4. Property VM Base Inventory > static_includes > bind_stack
Description: The playbook needs the bind stack to register the general masters recordset and for creating authoritative zones defined in cluster_cert_entries.
Example:
"bind.your-cloud.domain"
21. Property VM Base Inventory > include_stacks
|
|
| Type |
array of object |
| Required |
No |
Description: Include other stacks into the ansible inventory, from any pve cloud you are connected to. From here you can freely extend and write your own playbooks.
|
Array restrictions |
| Min items |
N/A |
| Max items |
N/A |
| Items unicity |
False |
| Additional items |
False |
| Tuple validation |
See below |
21.1. VM Base Inventory > include_stacks > include_stacks items
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Not allowed |
| Property |
Pattern |
Type |
Deprecated |
Definition |
Title/Description |
| + stack_fqdn |
No |
string |
No |
- |
Target stack fqdn to include (stack name + pve_cloud_domain). Will automatically include it from the right pve cluster. |
| + host_group |
No |
string |
No |
- |
This is the name of the hosts group of our ansible inventory the included vms/lxcs will be available under. |
| - qemu_ansible_user |
No |
string |
No |
- |
User ansible will use to connect, defaults to admin. If you dont want to use debian cinit images you might need to set something else than admin. Ubuntu for example wont work if you set the cloud init user to admin.
|
21.1.1. Property VM Base Inventory > include_stacks > include_stacks items > stack_fqdn
Description: Target stack fqdn to include (stack name + pve_cloud_domain). Will automatically include it from the right pve cluster.
Examples:
"bind.your-other-cloud.domain"
"other-k8s.your-other-cloud.domain"
21.1.2. Property VM Base Inventory > include_stacks > include_stacks items > host_group
Description: This is the name of the hosts group of our ansible inventory the included vms/lxcs will be available under.
21.1.3. Property VM Base Inventory > include_stacks > include_stacks items > qemu_ansible_user
Description: User ansible will use to connect, defaults to admin. If you dont want to use debian cinit images you might need to set something else than admin.
Ubuntu for example wont work if you set the cloud init user to admin.
22. Property VM Base Inventory > root_ssh_pub_key
Description: trusted root key for the cloud init image.
23. Property VM Base Inventory > pve_ha_group
Description: PVE HA group this vm should be assigned to (optional).
24. Property VM Base Inventory > target_pve_hosts
|
|
| Type |
array of string |
| Required |
No |
Description: Array of proxmox hosts in the target pve that are eligible for scheduling. If not specified all online hosts are considered.
|
Array restrictions |
| Min items |
N/A |
| Max items |
N/A |
| Items unicity |
False |
| Additional items |
False |
| Tuple validation |
See below |
| Each item of this array must be |
Description |
| target_pve_hosts items |
The hostname of the proxmox host. Just the hostname, no cluster name or cloud domain should be specified, as they are implicit. |
24.1. VM Base Inventory > target_pve_hosts > target_pve_hosts items
Description: The hostname of the proxmox host. Just the hostname, no cluster name or cloud domain should be specified, as they are implicit.
Example:
"proxmox-host-a"
25. Property VM Base Inventory > qemus
|
|
| Type |
array of object |
| Required |
Yes |
Description: List of qemu vms for the stack.
|
Array restrictions |
| Min items |
N/A |
| Max items |
N/A |
| Items unicity |
False |
| Additional items |
False |
| Tuple validation |
See below |
| Each item of this array must be |
Description |
| qemus items |
- |
25.1. VM Base Inventory > qemus > qemus items
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Not allowed |
| Property |
Pattern |
Type |
Deprecated |
Definition |
Title/Description |
| - hostname |
No |
string |
No |
- |
Optional unique hostname for this node, otherwise pet name random name will be generated. |
| - vars |
No |
object |
No |
- |
Custom variables for this node specifically, might be useful in your own custom playbooks. |
| - target_host |
No |
string |
No |
- |
Optional specific proxmox host you want to tie this node to on creation. Can of course still be moved afterwards. Cloud domain is implicit and should not be specified. |
| + parameters |
No |
object |
No |
- |
In accordance with pve qm cli tool, creation parameters mapped (key equals the --key part and value the passed value). |
| - network_config |
No |
string |
No |
- |
Cinit network config yaml string. Will be the last cfg piece that gets merged into the final cloudinit network config. Can be used for overrides. |
| + disk |
No |
object |
No |
- |
- |
25.1.1. Property VM Base Inventory > qemus > qemus items > hostname
Description: Optional unique hostname for this node, otherwise pet name random name will be generated.
25.1.2. Property VM Base Inventory > qemus > qemus items > vars
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Any type allowed |
Description: Custom variables for this node specifically, might be useful in your own custom playbooks.
25.1.3. Property VM Base Inventory > qemus > qemus items > target_host
Description: Optional specific proxmox host you want to tie this node to on creation. Can of course still be moved afterwards. Cloud domain is implicit and should not be specified.
Example:
"proxmox-host-B.proxmox-cluster-A"
25.1.4. Property VM Base Inventory > qemus > qemus items > parameters
|
|
| Type |
object |
| Required |
Yes |
| Additional properties |
Any type allowed |
Description: In accordance with pve qm cli tool, creation parameters mapped (key equals the --key part and value the passed value).
Example:
{
"cores": 1,
"memory": 1024
}
25.1.5. Property VM Base Inventory > qemus > qemus items > network_config
Description: Cinit network config yaml string. Will be the last cfg piece that gets merged into the final cloudinit network config. Can be used for overrides.
25.1.6. Property VM Base Inventory > qemus > qemus items > disk
|
|
| Type |
object |
| Required |
Yes |
| Additional properties |
Not allowed |
| Property |
Pattern |
Type |
Deprecated |
Definition |
Title/Description |
| + size |
No |
string |
No |
- |
Size of the vms disk. |
| - options |
No |
object |
No |
- |
Mount options |
| + pool |
No |
string |
No |
- |
Ceph pool name the vms disk will be created in. |
25.1.6.1. Property VM Base Inventory > qemus > qemus items > disk > size
Description: Size of the vms disk.
Example:
"25G"
25.1.6.2. Property VM Base Inventory > qemus > qemus items > disk > options
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Any type allowed |
Description: Mount options
25.1.6.3. Property VM Base Inventory > qemus > qemus items > disk > pool
Description: Ceph pool name the vms disk will be created in.
26. Property VM Base Inventory > tcp_proxies
|
|
| Type |
array of object |
| Required |
No |
Description: Raw tcp forwards on the clusters haproxy to k8s services exposed via nodeport.
|
Array restrictions |
| Min items |
N/A |
| Max items |
N/A |
| Items unicity |
False |
| Additional items |
False |
| Tuple validation |
See below |
26.1. VM Base Inventory > tcp_proxies > tcp_proxies items
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Not allowed |
| Property |
Pattern |
Type |
Deprecated |
Definition |
Title/Description |
| + proxy_name |
No |
string |
No |
- |
Simple name for the forward. Will be rendered in haproxy configuration so it shouldnt contain special characters. |
| + haproxy_port |
No |
number |
No |
- |
Frontend port of the proxmox clusters haproxy. |
| + node_port |
No |
number |
No |
- |
Nodeport of the k8s service. |
| - proxy_snippet |
No |
string |
No |
- |
Additional snippet that will be inserted into the haproxy listen block. Can be used to adjust the forwards settings. |
| - external |
No |
boolean |
No |
- |
Will also create a forward on the external floating ip of the proxy not only the internal. |
26.1.1. Property VM Base Inventory > tcp_proxies > tcp_proxies items > proxy_name
Description: Simple name for the forward. Will be rendered in haproxy configuration so it shouldnt contain special characters.
Examples:
"gitlab-ssh"
"example-postgres"
26.1.2. Property VM Base Inventory > tcp_proxies > tcp_proxies items > haproxy_port
Description: Frontend port of the proxmox clusters haproxy.
26.1.3. Property VM Base Inventory > tcp_proxies > tcp_proxies items > node_port
Description: Nodeport of the k8s service.
26.1.4. Property VM Base Inventory > tcp_proxies > tcp_proxies items > proxy_snippet
Description: Additional snippet that will be inserted into the haproxy listen block. Can be used to adjust the forwards settings.
Example:
"# long running tcp connections that only rarely transmit data\n# ssh client connection for example\ntimeout client 1h \ntimeout server 1h \n"
26.1.5. Property VM Base Inventory > tcp_proxies > tcp_proxies items > external
Description: Will also create a forward on the external floating ip of the proxy not only the internal.
27. Property VM Base Inventory > qemu_default_user
Description: User for cinit.
28. Property VM Base Inventory > qemu_hashed_pw
Description: Pw for default user defaults to hashed 'password' for debian cloud init image. Different cloud init images require different hash methods. You cannot use the same from debian for ubuntu for example.
29. Property VM Base Inventory > qemu_base_parameters
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Any type allowed |
Description: Base parameters applied to all qemus. passed to the proxmox qm cli tool for creating vm.
30. Property VM Base Inventory > qemu_image_url
Description: http(s) download link for cloud init image.
31. Property VM Base Inventory > qemu_keyboard_layout
Description: Keyboard layout for cloudinit.
32. Property VM Base Inventory > qemu_network_config
Description: Optional qemu network config as a yaml string that is merged into the cloudinit network config of all qemus.
33. Property VM Base Inventory > qemu_global_vars
|
|
| Type |
object |
| Required |
No |
| Additional properties |
Any type allowed |
Description: Variables that will be applied set for all qemus vms.
34. Property VM Base Inventory > plugin
|
|
| Type |
enum (of string) |
| Required |
No |
Description: Id of ansible inventory plugin
Must be one of: