theforeman / foreman_fog_proxmox

Foreman plugin to add Proxmox compute resource based on fog-proxmox gem
GNU General Public License v3.0
106 stars 31 forks source link

Improve compute profiles and deployment #128

Closed jacac closed 3 years ago

jacac commented 4 years ago

Many thanks to @tristanrobert for fixing #97. This gives us now the ability to deploy containers inside foreman without the need to access the Proxmox interface. This is just an improvement to the deployment flow. The idea is to have pre-filled values for compute profiles to ease the deployment.

Add fields to the Compute Profile

Host: Those are standard host fields I'm not sure if this could be done with partials.

Operating System

Interfaces

*For the Subnet selection the network prefix, VLAN, Gateway and DNS server are already set. This could be used to pre-fill the information for Proxmox Nics.

tristanrobert commented 4 years ago

Indeed, architecture could be easily removed from Virtual machine (Proxmox) with type lxc (container) > cpu options and set from Operating system. But for a vm (qemu) host it is more complicated to translate it because Proxmox needs a more detailed cpu type: kvm64, qemu64, etc.

We should consider fields in Virtual machine tab as Proxmox specific hardware configuration in order to create a vm (qemu or lxc) and others fields in other tabs as necessary information used to provision the host after its creation. Then foreman offers many ways to do it: pxe, ipxe, templates, cloud-init (#70), puppet, etc. These two steps are separated: create then provision. Compute and Network resources (cloud) are responsible to create and puppet or other plugins (ansible, chef) are responsible to provision.

jacac commented 4 years ago

I've edit the issue to make it more clear which fields would be good to add to the Compute Profile and which ones to remove during Create Host. Removing Media, Partition Table, and Custom Partition Table looks important to me or at least to make them not required. Otherwise it adds another layer of configuration like associating operating system with media and linking partitions and so on on top of filling in unused information.

We should consider fields in Virtual machine tab as Proxmox specific hardware configuration in order to create a vm (qemu or lxc) and others fields in other tabs as necessary information used to provision the host after its creation.

Virtual Machine tab looks good to me. Most of the values I can specify in the Compute Profile.

Then foreman offers many ways to do it: pxe, ipxe, templates, cloud-init (#70), puppet, etc.

I'm using cloud-init to do provisioning. It joins IPA and auto-enrols to puppet which does the rest of the configuration.

Maybe adding fields to the compute profiles needs to be moved to the Fog-Proxmox project. It is not clear to me what separates those two and how they are linked. I looked into those commits fixing #97 and could not follow it.