mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
proxmox: support param timezone
when creating container (#6510)
* proxmox: support param `timezone` when creating container * add changelog fragments for #6510 * Apply suggestions from code review Co-authored-by: Felix Fontein <felix@fontein.de> * Improved param description * Use major.minor version comparison for options --------- Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Sergei Antipov <s.antipov@mulesoft.com>
This commit is contained in:
parent
59db302deb
commit
f71a474726
2 changed files with 29 additions and 6 deletions
|
@ -0,0 +1,3 @@
|
||||||
|
minor_changes:
|
||||||
|
- proxmox - support ``timezone`` parameter at container creation
|
||||||
|
(https://github.com/ansible-collections/community.general/pull/6510).
|
|
@ -168,6 +168,12 @@ options:
|
||||||
- Script that will be executed during various steps in the containers lifetime.
|
- Script that will be executed during various steps in the containers lifetime.
|
||||||
type: str
|
type: str
|
||||||
version_added: '0.2.0'
|
version_added: '0.2.0'
|
||||||
|
timezone:
|
||||||
|
description:
|
||||||
|
- Timezone used by the container, accepts values like C(Europe/Paris).
|
||||||
|
- The special value C(host) configures the same timezone used by Proxmox host.
|
||||||
|
type: str
|
||||||
|
version_added: '7.1.0'
|
||||||
proxmox_default_behavior:
|
proxmox_default_behavior:
|
||||||
description:
|
description:
|
||||||
- As of community.general 4.0.0, various options no longer have default values.
|
- As of community.general 4.0.0, various options no longer have default values.
|
||||||
|
@ -314,6 +320,18 @@ EXAMPLES = r'''
|
||||||
ostemplate: local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
|
ostemplate: local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
|
||||||
cores: 2
|
cores: 2
|
||||||
|
|
||||||
|
- name: Create new container with minimal options and same timezone as proxmox host
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: 100
|
||||||
|
node: uk-mc02
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: 1q2w3e
|
||||||
|
api_host: node1
|
||||||
|
password: 123456
|
||||||
|
hostname: example.org
|
||||||
|
ostemplate: 'local:vztmpl/ubuntu-14.04-x86_64.tar.gz'
|
||||||
|
timezone: host
|
||||||
|
|
||||||
- name: Create a new container with nesting enabled and allows the use of CIFS/NFS inside the container.
|
- name: Create a new container with nesting enabled and allows the use of CIFS/NFS inside the container.
|
||||||
community.general.proxmox:
|
community.general.proxmox:
|
||||||
vmid: 100
|
vmid: 100
|
||||||
|
@ -432,21 +450,21 @@ class ProxmoxLxcAnsible(ProxmoxAnsible):
|
||||||
|
|
||||||
# Version limited features
|
# Version limited features
|
||||||
minimum_version = {
|
minimum_version = {
|
||||||
'tags': 7,
|
'tags': '6.1',
|
||||||
|
'timezone': '6.3'
|
||||||
}
|
}
|
||||||
proxmox_node = self.proxmox_api.nodes(node)
|
proxmox_node = self.proxmox_api.nodes(node)
|
||||||
|
|
||||||
# Remove all empty kwarg entries
|
# Remove all empty kwarg entries
|
||||||
kwargs = dict((k, v) for k, v in kwargs.items() if v is not None)
|
kwargs = dict((k, v) for k, v in kwargs.items() if v is not None)
|
||||||
|
|
||||||
version = self.version()
|
pve_version = self.version()
|
||||||
pve_major_version = 3 if version < LooseVersion('4.0') else version.version[0]
|
|
||||||
|
|
||||||
# Fail on unsupported features
|
# Fail on unsupported features
|
||||||
for option, version in minimum_version.items():
|
for option, version in minimum_version.items():
|
||||||
if pve_major_version < version and option in kwargs:
|
if pve_version < LooseVersion(version) and option in kwargs:
|
||||||
self.module.fail_json(changed=False, msg="Feature {option} is only supported in PVE {version}+, and you're using PVE {pve_major_version}".
|
self.module.fail_json(changed=False, msg="Feature {option} is only supported in PVE {version}+, and you're using PVE {pve_version}".
|
||||||
format(option=option, version=version, pve_major_version=pve_major_version))
|
format(option=option, version=version, pve_version=pve_version))
|
||||||
|
|
||||||
if VZ_TYPE == 'lxc':
|
if VZ_TYPE == 'lxc':
|
||||||
kwargs['cpulimit'] = cpus
|
kwargs['cpulimit'] = cpus
|
||||||
|
@ -602,6 +620,7 @@ def main():
|
||||||
unprivileged=dict(type='bool', default=True),
|
unprivileged=dict(type='bool', default=True),
|
||||||
description=dict(type='str'),
|
description=dict(type='str'),
|
||||||
hookscript=dict(type='str'),
|
hookscript=dict(type='str'),
|
||||||
|
timezone=dict(type='str'),
|
||||||
proxmox_default_behavior=dict(type='str', default='no_defaults', choices=['compatibility', 'no_defaults']),
|
proxmox_default_behavior=dict(type='str', default='no_defaults', choices=['compatibility', 'no_defaults']),
|
||||||
clone=dict(type='int'),
|
clone=dict(type='int'),
|
||||||
clone_type=dict(default='opportunistic', choices=['full', 'linked', 'opportunistic']),
|
clone_type=dict(default='opportunistic', choices=['full', 'linked', 'opportunistic']),
|
||||||
|
@ -704,6 +723,7 @@ def main():
|
||||||
unprivileged=ansible_to_proxmox_bool(module.params['unprivileged']),
|
unprivileged=ansible_to_proxmox_bool(module.params['unprivileged']),
|
||||||
description=module.params['description'],
|
description=module.params['description'],
|
||||||
hookscript=module.params['hookscript'],
|
hookscript=module.params['hookscript'],
|
||||||
|
timezone=module.params['timezone'],
|
||||||
tags=module.params['tags'])
|
tags=module.params['tags'])
|
||||||
|
|
||||||
module.exit_json(changed=True, msg="Deployed VM %s from template %s" % (vmid, module.params['ostemplate']))
|
module.exit_json(changed=True, msg="Deployed VM %s from template %s" % (vmid, module.params['ostemplate']))
|
||||||
|
|
Loading…
Reference in a new issue