Skip to content

deepshore/docker-machine-driver-proxmoxve

Repository files navigation

Docker Machine Driver for Proxmox VE (Deepshore edition)

This driver can be used to kickstart a VM in Proxmox VE to be used with Docker/Docker Machine.

  • NOTE: docker-machine is not actively developed anymore so rancher/machine should be used as cli: https://github.com/rancher/machine

  • Download and copy it into your PATH (don't forget to chmod +x) or build your own driver

  • Check if it works with this super long commandline:

      [[ $(docker-machine create --driver proxmoxve --help | grep -c "proxmoxve-proxmox-host") == 1 ]] && echo "Proxmox Driver is installed" || echo "Proxmox Driver not found"
    

Driver Options

explore them with docker-machine create --driver proxmoxve --help

Clone VM

To use this driver you need to have a VM template with cloud-init support.

But do not worry, we have everything in place to get you running: go to the ansible Folder and check the Readme.md

Build and Test

  • make
  • or to fully test create an .env file (example below) and run make create-machine:
         PVE_CLONE_VMID=100
         PVE_SSH_USER=ubuntu
         PVE_PASSWD=secret
         PVE_REALM=pam
         PVE_HOST=PVE01.local
         PVE_NODE=PVE01
         PVE_USER=root
         VM_NAME="docker-machine-pve-local"

Test

make test

Changes

Version v5.0.1-ds

  • Add settings for task timeout and task interval (for slow pve systems and connections)
  • Update of pve driver to v0.0.0-beta6

Version v5.0.0-ds

  • General Rewrite of driver by using a new api driver for pve https://github.com/luthermonson/go-proxmox (tested for pve6,7,8)
  • Dropped support for isos
  • Improved workflow to execute go test and produce outputs in PRs
  • Added Makefile for all ci / cd steps

Version v.4.0.4-ds

  • Dependency updates
  • automated go mod build and release point in github

Version 4

Version 3

Version 2

  • exclusive RancherOS support due to their special Proxmox VE iso files
  • adding wait cycles for asynchronous background tasks, e.g. create, stop etc.
  • use one logger engine
  • add guest username, password and ssh-port as new command line arguments
  • more and potentially better error handling

Version 1

  • Initial Version