-
Notifications
You must be signed in to change notification settings - Fork 133
Add proxmox cloud provider #1352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
4c93f13
to
fe23392
Compare
0206312
to
e3b21de
Compare
41f7de3
to
9c20603
Compare
c389120
to
eb6aed2
Compare
/retest |
/retest-required |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tiny doc nitpicks from my side.
|
||
For VM templates to be available on all nodes, they need to be added to the `ha-manager`. | ||
|
||
Example for creating a VM template: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tiny nitpick: I think a link to the qm tool would be useful. Maybe it could be easily integrated like this
Example for creating a VM template: | |
Example for creating a VM template using [qm](https://pve.proxmox.com/pve-docs/qm.1.html): |
docs/proxmox.md
Outdated
Proxmox currently does not support the upload of "snippets" via API, but these snippets are used for | ||
cloud-init user-data which are required for the machine-controller to function. This provider | ||
implementation needs to copy the generated user-data yaml file to every proxmox node where a VM is | ||
created or migrated to. | ||
|
||
* A storage needs to be enabled for content `snippets` (e.g. `local`) | ||
* SSH private key of a user that exists on all nodes and has write permission to the path where | ||
snippets are stored (e.g. `/var/lib/vz/snippets`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reading this as a first time reader of the guide: I am not 100% sure if there is a call to action here for me. What I mean by that is: do I as the end-user have to do something?
@dermorz please update the what-works section by adding there Proxmox and highlight that it's a technology preview. Could you as well change KubeVirt (experimental) to KubeVirt (Technology Preview)? Maybe this section needs to be refreshed a little bit to be more readable, but probably not in that PR. |
/retest-required |
Add scaffold for proxmox cloud provider TODO: Implement remaining interface methods TerminalError on Validate() First implementation of Create (proxmox provider) Return vm ip addresses Complete Server return value Implement provider.Cleanup() for proxmox Slight refactoring Extend config values and start extending validation JSON roundtrip to cast to typed response Some refactoring Replace CreateVm with CloneVm(template) Wording on errors Implement provider.Get() for proxmox Drop unused return values (YAGNI) Use wrapper func that returns the expected error Docstring for Server struct Implement Metrics and Migrate methods Some refactoring Implement last method of Provider interface Improve proxmox docs Minor code styling Fix proxmox provider import Worship the linter gods Add ssh upload of cloud-init userdata I should run the linter before pushing Adjust example vm template creation Add default value for DiskName Rename ENV for api endpoint This was stupid :) Fix copy/paste error .yaml extension for userdata files Start/Stop VM after/before creating/deleting Resize to value of DiskSizeGB Lint: Proper error wrapping Strange that this is not set in the response… Names of VMs/templates are ambiguous :( Skip IP of loop device Userdata adjustments Wait for QEMU Agent to be up We assume DHCP Update example vm template creation snippet Add ProviderID() as no-op to fulfill changed interface Pick target node from all available nodes w/ sufficient resources Pick random target node without any further logic
ae0e8ec
to
d8d8984
Compare
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: dermorz The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Signed-off-by: Moritz Bracht <[email protected]>
@dermorz: The following test failed, say
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
@dermorz I forgot about this before, but would it be possible to add a Prow job for e2e testing? |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with /lifecycle stale |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with /lifecycle rotten |
Rotten issues close after 30d of inactivity. /close |
@kubermatic-bot: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
What this PR does / why we need it:
This is the first part of implementing proxmox as a new cloud provider in KKP.
Reference: kubermatic/kubermatic#9406
Which issue(s) this PR fixes (optional, in
fixes #<issue number>
format, will close the issue(s) when PR gets merged):Fixes #1325
Special notes for your reviewer:
Proxmox support is experimental and more a tech demo than anything close to being production ready. There are quite a few assumptions made about the Proxmox setup which need to be handled later on with follow-up tasks making things configurable.
TODO:
MachineDeployment
example yamlOptional Release Note: