Deploiement
###########

On commence par ce procurer une image raw de talos, ici `image builder`_.

Plus tard nous aurons besoin de `talosctl`_.

D'abord on creer les vms

- Pour une vms controlplane:

.. code-block:: bash

    qemu-img create -f qcow2 -b "/data/disks/root/nocloud-amd64.raw" -F raw "/data/disks/vms/i-talos-1.qcow2" 50G
    curl -X POST http://127.0.0.1:8080/vms -d '{"name": "i-talos-1","memory": 2048,"cpus": 2,"password": "","sshkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEL7V6RKvYPtzpk+Kb00e1mXiaqj8gZYIobavWQm1iBQ cardno:16_148_277","interfaces": [{"subnet": "sn-000000","ip": "192.168.14.171","primary": true}],"storage": [{"path": "/data/disks/vms/i-talos-1.qcow2","dev": "vda"}]}'

- Pour une vms worker:

.. code-block:: bash

    qemu-img create -f qcow2 -b "/data/disks/root/nocloud-amd64.raw" -F raw "/data/disks/vms/i-talos-2.qcow2" 50G
    qemu-img create -f qcow2 -b "/data/disks/root/nocloud-amd64.raw" -F raw "/data/disks/vms/i-talos-3.qcow2" 50G
    qemu-img create -f qcow2 -b "/data/disks/root/nocloud-amd64.raw" -F raw "/data/disks/vms/i-talos-4.qcow2" 50G
    curl -X POST http://127.0.0.1:8080/vms -d '{"name": "i-talos-2","memory": 2048,"cpus": 4,"password": "","sshkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEL7V6RKvYPtzpk+Kb00e1mXiaqj8gZYIobavWQm1iBQ cardno:16_148_277","interfaces": [{"subnet": "sn-000000","ip": "192.168.14.172","primary": true}],"storage": [{"path": "/data/disks/vms/i-talos-2.qcow2","dev": "vda"}]}'
    curl -X POST http://127.0.0.1:8080/vms -d '{"name": "i-talos-3","memory": 2048,"cpus": 4,"password": "","sshkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEL7V6RKvYPtzpk+Kb00e1mXiaqj8gZYIobavWQm1iBQ cardno:16_148_277","interfaces": [{"subnet": "sn-000000","ip": "192.168.14.173","primary": true}],"storage": [{"path": "/data/disks/vms/i-talos-3.qcow2","dev": "vda"}]}'
    curl -X POST http://127.0.0.1:8080/vms -d '{"name": "i-talos-4","memory": 2048,"cpus": 4,"password": "","sshkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEL7V6RKvYPtzpk+Kb00e1mXiaqj8gZYIobavWQm1iBQ cardno:16_148_277","interfaces": [{"subnet": "sn-000000","ip": "192.168.14.174","primary": true}],"storage": [{"path": "/data/disks/vms/i-talos-4.qcow2","dev": "vda"}]}'

Puis pour le moment on va juste suivre le `tuto`_.

Pour tout clean nous pouvons faire ce qui suis:

.. code-block:: bash

    curl -X DELETE http://127.0.0.1:8080/vms/i-talos-1
    curl -X DELETE http://127.0.0.1:8080/vms/i-talos-2
    curl -X DELETE http://127.0.0.1:8080/vms/i-talos-3
    curl -X DELETE http://127.0.0.1:8080/vms/i-talos-4

    rm -rf /data/disks/vms/i-talos-1.qcow2
    rm -rf /data/disks/vms/i-talos-2.qcow2
    rm -rf /data/disks/vms/i-talos-3.qcow2
    rm -rf /data/disks/vms/i-talos-4.qcow2

.. _image builder: https://factory.talos.dev/
.. _talosctl: https://docs.siderolabs.com/talos/v1.13/getting-started/talosctl
.. _tuto: https://docs.siderolabs.com/talos/v1.13/platform-specific-installations/virtualized-platforms/kvm#configure-the-cluster
