Atualmente, estou trabalhando em um manual para criar um cluster K8s no Nutanix Prism Central. Tudo funciona sem problemas, mas enfrento um problema enquanto existe uma VLAN em um ou mais clusters.
No meu caso, uma VLAN é representada por seu nome, mas também por seu UUID (este pode ser recuperado em metadados em todos os índices dentro de entidades[]).
Como uma VLAN pode existir muitas vezes (porque está configurada em clusters diferentes), isso significa que o valor UUID pode diferir nos metadados {}, mas nunca no nome. Abaixo segue o resultado que obtive:
ok: [localhost] => {
"msg": {
"changed": false,
"error": null,
"failed": false,
"response": {
"api_version": "3.1",
"entities": [
{
"metadata": {
"categories": {},
"categories_mapping": {},
"creation_time": "2023-03-08T10:11:44Z",
"kind": "subnet",
"last_update_time": "2023-03-08T10:11:44Z",
"spec_hash": "00000000000000000000000000000000000000000000000000",
"spec_version": 0,
"uuid": "aaaa-bbbb-cccc-dddddd"
},
"spec": {
"cluster_reference": {
"kind": "cluster",
"name": "Cluster02",
"uuid": "123123-123123-123123"
},
"name": "MY-VLAN",
"resources": {
"subnet_type": "VLAN",
"virtual_switch_uuid": "321-321-321-321-321",
"vlan_id": 66,
"vswitch_name": "br0"
}
},
"status": {
"cluster_reference": {
"kind": "cluster",
"name": "Cluster02",
"uuid": "123123-123123-123123"
},
"name": "MY-VLAN",
"resources": {
"ip_usage_stats": {
"num_macs": 0
},
"subnet_type": "VLAN",
"virtual_switch_uuid": "321-321-321-321-321",
"vlan_id": 66,
"vswitch_name": "br0"
},
"state": "COMPLETE"
}
},
{
"metadata": {
"categories": {},
"categories_mapping": {},
"creation_time": "2023-03-08T10:11:42Z",
"kind": "subnet",
"last_update_time": "2023-03-08T10:11:42Z",
"spec_hash": "00000000000000000000000000000000000000000000000000",
"spec_version": 0,
"uuid": "999-999-999-999-999"
},
"spec": {
"cluster_reference": {
"kind": "cluster",
"name": "Cluster01",
"uuid": "0005f64b-e395-8cc2-16af-88e9a456e31a"
},
"name": "MY-VLAN",
"resources": {
"subnet_type": "VLAN",
"virtual_switch_uuid": "d4f9ed4f-72c3-4ad0-8223-070fba6a9aea",
"vlan_id": 66,
"vswitch_name": "br0"
}
},
"status": {
"cluster_reference": {
"kind": "cluster",
"name": "Cluster01",
"uuid": "0005f64b-e395-8cc2-16af-88e9a456e31a"
},
"name": "MY-VLAN",
"resources": {
"ip_usage_stats": {
"num_macs": 0
},
"subnet_type": "VLAN",
"virtual_switch_uuid": "d4f9ed4f-72c3-4ad0-8223-070fba6a9aea",
"vlan_id": 66,
"vswitch_name": "br0"
},
"state": "COMPLETE"
}
}
}
}
}
No momento, sei como recuperar manualmente o UUID se souber o número do índice com uma tarefa como:
- name: Get Network
ntnx_subnets_info:
filter:
#subnet_type: "VLAN"
name: "MY-VLAN"
kind: subnet
register: result
ignore_errors: True
- name: output of identified network
debug:
msg: '{{ result.response.entities[0].metadata.uuid }}'
Mas atualmente não consigo obter o UUID em um cluster dedicado. Por exemplo, se eu precisar recuperar vlan uuid de Cluster01 , devo selecionar '{{ result.response.entities[1].metadata.uuid }}'
Alguém sabe se é possível recuperar um valor dinamicamente, com base em uma propriedade aninhada (no meu caso spec.cluster_reference.name)?
Muito obrigado !
Eu acho que você poderia usar o
selectattr
filtro junto commap
Você pode recuperar o UUID da VLAN assim: