resource-proxmox-cloud

Profile to bootstrap the cloud-wrappers content pack

Manages Proxmox Instances via Resource Brokers - currently only supports Proxmox VMs via PXE boot, and not Cloud Image deploy (eg deployed from "templates").

There are multiple scenarios that the Cluster create process needs to support with regard to Virtual Machines created on a Proxmox cluster. Depending on the desired behavior for newly created Cluster resources (eg machines); you will need to specify the cluster behaviors appropriately.

Potentially desired behaviors:

  • Machines PXE boot in to Discovery (sledgehammer), and wait for interactive input
  • Machines PXE boot and are automatically assigned a Pipeline for installation (either by setting the Pipeline in the Cluster configuration, or via a Classifier that performs the same action)
  • Machines are created from a "Cloud Image" similar to a Public Cloud behavior

It is important to note that the cluster/wait-filter is used to handle the status management of the synchronization between the DRP based Machine object, and the backing resource that is created.

The PXE boot behaviors are supported with this Resource Broker, but each behavior requies a different Filter and/or Workflow setting to correctly instantiate resources to a successful state. This must be done on a cluster-by-cluster basis and you can not mix and match the behaviors on the same cluster.

The "Cloud Image", behavior is not supported in the DRP Proxmox Cluster capability yet, and as such has no defined Filter specifications. Presumably, the behavior will be supported by the default Filter specification, but has not yet been tested.

Machines that PXE boot and are assigned an OS install Pipeline will very often end up with a Runnable: false condition. The default defined Filter will cause a Cluster provision failure in this case.

The cluster/wait-filter is required for the synchronization between the DRP Machine object, and the backing resource that is created by the Resource Broker.

PXE boot with Install Pipeline

For Machines that are discovered via the standard Sledgehammer discovery process, and then transitioned manually by an operator to an OS Install require a different Filter. This Resource Broker sets the Param cluster/wait-filter to the following:

  • And(Workflow=Eq(universal-runbook),WorkflowComplete=Eq(true),BootEnv=Eq(local))

Note

This assumes that the Pipeline ends with the final chained workflow being set to universal-runbook. If the Pipeline uses a different Workflow as the final/finishing workflow, this Filter needs to be adjusted to reference the last Workflow in the chain

You MUST also set the Pipeline and Workflow Params on the Cluster, and example which defines Photon Linux 4 OS install would look like:

  • EXAMPLE
  • broker-set-pipeline: universal-application-photon4
  • broker-set-workflow: universal-discover

The universal-discover workflow is usually the correct starting point for the OS install pipelines, as defined by the universal/workflow-chain-map (or via some other override param value being set)

Warning

If the cluster/wait-filter is NOT set as defined above, the cluster-provision task WILL fail when the machine chains in to the OS installer workflow.

PXE boot and Discovery Only

If the intent is to have Machines created and stop and wait in Sledgehammer without zero-touch provisioning / automation transition to an OS install Pipeline, you MUST leave the Filter for the Cluster at the default value, which is the following:S

  • Or(Runnable=Eq(false),WorkflowComplete=Eq(true))

AND you must set broker/set-pipeline and broker/set-workflow Params to:

  • broker-set-pipeline: universal-application-discover
  • broker-set-workflow: universal-discover

Note

Normally cluster configuration values should be changed on the dynamically created Profile with the same name as the cluster.

Warning

If the backing Machine object encounters any Workflow failures, the cluster provision operation will fail. In many cases, if the cluster-provision Task hasn't failed, but the backing Machine can be corrected (eg getting stuck in centos-only-repos) then the cluster-provision may succeed.