The Proxmox API in golang. This Framework is still work in progress.
- Version Endpoint
- Get Next VM ID
- List all Nodes
- List all VMs of the Node
- Get Node Status of a specific Node
- Get Time Configuration of a specific Node
- Update Time Zone of a specific node
- Create VM
- Create VNC TCP Proxy
- Get VM Status
- Update VM Status
- Get Firewall Log
- Get Firewall Options
- Update Firewall Options
- List IPSets
- Create IPSets
- Delete IPSets
- Add CIDR to IPSet
- Remove CIDR from IPSet
- Copy a specific VM
- Update the config of a VM
- Resize a disk of a VM
- Set CloudInitOptions
- Create Pool
- List All Pools
- Show Pool Details
go get github.com/dragse/proxmox-api-go@v1.1.0
Create at first a client object. This objects manage and handle the http connections to the nodes
proxClient := client.NewProxmoxClient()
After that you need to add all Nodes you want to connect. It is recommended to connect to multiple nodes if you have a
cluster and want high availability
The Cluster work with api tokens, you need to generate before.
session := client.ProxmoxSession{
Hostname: "hostname of the proxmox node",
Username: "username@pve!token-name",
Token: "apitoken",
}
err := proxClient.AddSession(&session)
if err != nil {
log.Fatal(err)
}
The last step is to create the Cluster and init the information
proxCluster := proxmox.NewProxmoxCluster(proxClient)
err = proxCluster.InitInformation()
if err != nil {
log.Fatal(err)
}
Now you can use the different methods to get or change Information of the cluster
If you are having issues, please let us know. We have a mailing list located at: proxmox-apit@dragse.de
The project is licensed under the GPL-3.0 License.