{"id":37191957,"url":"https://github.com/ereslibre/cluster-api-provider-proxmox","last_synced_at":"2026-01-14T22:14:42.999Z","repository":{"id":141710650,"uuid":"183692890","full_name":"ereslibre/cluster-api-provider-proxmox","owner":"ereslibre","description":"Kubernetes cluster-api provider for Proxmox VE","archived":true,"fork":false,"pushed_at":"2019-06-28T16:53:35.000Z","size":43441,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-06-20T09:20:49.394Z","etag":null,"topics":["cluster-api","kubernetes","proxmox"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ereslibre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-26T20:53:58.000Z","updated_at":"2023-07-09T16:30:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"39fb20af-20e9-4447-9c89-81840fbf73ee","html_url":"https://github.com/ereslibre/cluster-api-provider-proxmox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ereslibre/cluster-api-provider-proxmox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ereslibre%2Fcluster-api-provider-proxmox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ereslibre%2Fcluster-api-provider-proxmox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ereslibre%2Fcluster-api-provider-proxmox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ereslibre%2Fcluster-api-provider-proxmox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ereslibre","download_url":"https://codeload.github.com/ereslibre/cluster-api-provider-proxmox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ereslibre%2Fcluster-api-provider-proxmox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28436268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T21:32:52.117Z","status":"ssl_error","status_checked_at":"2026-01-14T21:32:33.442Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cluster-api","kubernetes","proxmox"],"created_at":"2026-01-14T22:14:42.291Z","updated_at":"2026-01-14T22:14:42.992Z","avatar_url":"https://github.com/ereslibre.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cluster-api-provider-proxmox\n\nThis repository contains a `cluster-api` provider for [`Proxmox VE`](https://www.proxmox.com/en/proxmox-ve).\n\nPlease, check the [`cluster-api` project](https://github.com/kubernetes-sigs/cluster-api).\n\n## Prerequisites\n\n### Patched `Proxmox VE`\n\nThis project leverages `Proxmox VE` snippets to pass arbitrary\n`cloud-init` contents to machines upon booting. While `Proxmox VE`\nallows you to create `snippets` either by SSH'ing into the hypervisor,\nor by using the UI, none of this solutions is optimal for creating\nVM's: SSH'ing into the hypervisors is not desired, and snippet\ncreation through the UI is not programmatic.\n\nBecause of this reason, [a small patch needs to be applied to your\n`Proxmox VE` installation](https://bugzilla.proxmox.com/show_bug.cgi?id=2208).\n\n**Without this patch, this provider won't work**. If `Proxmox`\nprovides an official way of uploading snippets using the API, that\nsolution will be used instead of this patch.\n\n### Create a VM template\n\nMachines are created by cloning a template, and then booting the\ncloned VM with some specific custom `cloud-init` scripts.\n\nCreate a VM template that will contain the minimum requirements for\ndeploying Kubernetes. While this is not strictly required, it's a good\nidea so new machine creation and join will be much faster and less\nexposed to temporary errors when installing packages on first boot.\n\nYou can follow this instructions:\n\n* [Installing kubeadm toolbox](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)\n* [Creating a cloud-init template on `Proxmox VE`](https://pve.proxmox.com/wiki/Cloud-Init_Support#_preparing_cloud_init_templates)\n\n### Environment variables\n\nThe manager needs to be started with certain environment variables set:\n\n* `PROXMOX_HOSTPORT`\n  * Example: `a-proxmox.some-company.intra.net:8006`\n* `PROXMOX_USERNAME`\n  * Example: `root@pam`\n* `PROXMOX_PASSWORD`\n  * Example: `mypassword`\n* `PROXMOX_HYPERVISOR_NAME`\n  * Example: `proxmox`\n* `PROXMOX_HYPERVISOR_SNIPPETS_STORAGE`\n  * Example: `ci-snippets`\n  * Important: make sure you create this volume using the Proxmox UI\n    with `Snippets` content.\n* `VM_TEMPLATE_ID`\n  * Example: `9000`\n  * Important: make sure you have created this template beforehand.\n\n## `TODO`\n\nAll the previous environment variables should be removed as\ndevelopment on this provider evolves.\n\n- [ ] Support a list of hypervisors\n  * Removes the need for `PROXMOX_HOSTPORT`, `PROXMOX_USERNAME`, `PROXMOX_PASSWORD`, `PROXMOX_HYPERVISOR_NAME`, `PROXMOX_HYPERVISOR_SNIPPETS_STORAGE` envvars\n- [ ] Support machine classes\n  * Removes the need for `VM_TEMPLATE_ID` envvar\n  * Makes it possible to have different machine specs instead of\n    hardcoded ones\n- [ ] Support SSH keys when deploying machines on `cloud-init`\n      configuration\n- [ ] Do not always ignore certificate errors when talking to the\n      `Proxmox VE` api, make it configurable\n- [ ] Make kubeadm join token generic on `cloud-init` configuration\n- [ ] Support openSUSE Leap\n- [ ] Support openSUSE Tumbleweed\n- [ ] Investigate what network settings can be tweaked (bridge, vlan tagging...)\n- [ ] Test `clusterctl`\n\n## License\n\n```\nCopyright 2019 Rafael Fernández López \u003cereslibre@ereslibre.es\u003e\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fereslibre%2Fcluster-api-provider-proxmox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fereslibre%2Fcluster-api-provider-proxmox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fereslibre%2Fcluster-api-provider-proxmox/lists"}