diff --git a/Changelog.md b/Changelog.md index c0ce759..933d873 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,6 +2,18 @@ ## [Unreleased] +## [0.2.2] - 07/05/2025 + +### Fixed + +- Use `NB_CLUSTER_ID` even for VM update. + +## [0.2.1] - 01/05/2025 + +### Fixed + +- [#7] Improve tag handling. + ## [0.2.0] - 21/04/2025 ### New diff --git a/README.md b/README.md index 666a6ef..2911245 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,9 @@ The following env variables will need to be set: - **NB_API_URL**: The URL to your NetBox instance. (ex: https://netbox.example.org) - **NB_API_TOKEN**: The token created previously. (ex: f74cb99cf552b7005fd1a616b53efba2ce0c9656) +You can also set the `NB_CLUSTER_ID` env variable in order to indicate the ID of the cluster that will be used in +NetBox. + You'll also need to perform a minimal configuration on NetBox: - Create the physical nodes hosting the cluster. (The name should match the one on Proxmox, so that the script can @@ -60,5 +63,5 @@ The following env variables will need to be set: You can then execute the script using the following command: ``` -PVE_API_HOST=xx PVE_API_USER=xx PVE_API_TOKEN=xx PVE_API_SECRET=xx NB_API_URL=xx NB_API_TOKEN=xx python3 -m netbox_pve_sync -``` \ No newline at end of file +PVE_API_HOST=xx PVE_API_USER=xx PVE_API_TOKEN=xx PVE_API_SECRET=xx NB_API_URL=xx NB_API_TOKEN=xx nbpxsync +``` diff --git a/netbox_pve_sync/__init__.py b/netbox_pve_sync/__init__.py index 882b503..de581bd 100644 --- a/netbox_pve_sync/__init__.py +++ b/netbox_pve_sync/__init__.py @@ -88,6 +88,7 @@ def _process_pve_tags( slug=f'pool-{_pve_pool["poolid"]}'.lower(), description=f'Proxmox pool {_pve_pool["poolid"]}', ) + _nb_objects['tags'][_nb_tag.name] = _nb_tag return _nb_objects @@ -142,7 +143,7 @@ def _process_pve_virtual_machine( else: nb_virtual_machine.name = _pve_virtual_machine['name'] nb_virtual_machine.site = _nb_device.site.id - nb_virtual_machine.cluster = 1 + nb_virtual_machine.cluster = os.environ.get('NB_CLUSTER_ID', 1) nb_virtual_machine.device = _nb_device.id nb_virtual_machine.vcpus = pve_virtual_machine_config['cores'] nb_virtual_machine.memory = int(pve_virtual_machine_config['memory']) @@ -433,7 +434,8 @@ def main(): for pve_vm_resource in pve_api.cluster.resources.get(type='vm'): pve_vm_tags[pve_vm_resource['vmid']] = [] - pve_vm_tags[pve_vm_resource['vmid']].append(f'Pool/{pve_vm_resource["pool"]}') + if 'pool' in pve_vm_resource: + pve_vm_tags[pve_vm_resource['vmid']].append(f'Pool/{pve_vm_resource["pool"]}') if 'tags' in pve_vm_resource: pass # TODO: pve_vm_tags[pve_vm_resource['vmid']].append(pve_vm_resource['tags']) diff --git a/pyproject.toml b/pyproject.toml index 72095db..37f5f13 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" [project] name = "netbox-pve-sync" -version = "0.2.0" +version = "0.2.2" authors = [ { name = "Aloïs Micard", email = "alois@micard.lu" }, ]