kubernetes-sigs / cluster-api

Home for Cluster API, a subproject of sig-cluster-lifecycle
https://cluster-api.sigs.k8s.io
Apache License 2.0
3.51k stars 1.3k forks source link

Quick start instructions for Proxmox provider result in error #10107

Closed stmcginnis closed 7 months ago

stmcginnis commented 7 months ago

What steps did you take and what happened?

Following the quick start guide to set up a cluster using the Proxmox provider, the clusterctl init command fails with an invalid version message.

$ clusterctl init --infrastructure proxmox --ipam in-cluster
Fetching providers
Skipping installing cert-manager as it is already installed
Installing Provider="cluster-api" Version="v1.6.1" TargetNamespace="capi-system"
Installing Provider="bootstrap-kubeadm" Version="v1.6.1" TargetNamespace="capi-kubeadm-bootstrap-system"
Installing Provider="control-plane-kubeadm" Version="v1.6.1" TargetNamespace="capi-kubeadm-control-plane-system"
Installing Provider="infrastructure-proxmox" Version="v0.2.0" TargetNamespace="capmox-system"
Error: action failed after 10 attempts: failed to patch provider object: CustomResourceDefinition.apiextensions.k8s.io "proxmoxclusters.infrastructure.cluster.x-k8s.io" is invalid: status.storedVersions[0]: Invalid value: "v1beta1": must appear in spec.versions

It looks like the provider it installs is an older release that I am assuming is no longer valid.

There are instructions in the Proxmox provider repo that use a newer version, but the instructions differ enough between the two that it isn't clear how the CAPI book docs should be updated.

It is also slightly confusing that there are instructions for adding the IPAM provider, but there is no context or instructions on why this is needed and what, if anything, needs to be configured with the IPAM provider other than just including it in the init command.

What did you expect to happen?

Quick start instructions should work without errors and result in a working CAPI deployment.

Cluster API version

$ clusterctl version
clusterctl version: &version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.1", GitCommit:"a150f715f5a607ef172dbe96615ffdf1d51220b3", GitTreeState:"clean", BuildDate:"2024-01-16T17:57:59Z", GoVersion:"go1.20.12", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes version

Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.1

Anything else you would like to add?

No response

Label(s) to be applied

/kind bug /area documentation

fabriziopandini commented 7 months ago

/triage unresolved /close

The Cluster API project supports ecosystem growth and extensibility by giving visibility about third-party open-source providers, however is the responsibility of the respective maintainers, to ensure quality standards and support. I would suggest moving this issue to the Promox repository, so they can follow up

PS. @stmcginnis sorry I'm not being more helpful here, but we recently clarified our support stance about external providers in https://github.com/kubernetes-sigs/cluster-api/pull/9975 😅

cc @mcbenjemaa who did the work on https://github.com/kubernetes-sigs/cluster-api/pull/9829

k8s-ci-robot commented 7 months ago

@fabriziopandini: Closing this issue.

In response to [this](https://github.com/kubernetes-sigs/cluster-api/issues/10107#issuecomment-1930552432): >/triage unresolved >/close > >The Cluster API project supports ecosystem growth and extensibility by giving visibility about third-party open-source providers, however is the responsibility of the respective maintainers, to ensure quality standards and support. >I would suggest moving this issue to the Promox repository, so they can follow up > >PS. @stmcginnis sorry I'm not being more helpful here, but we recently clarified our support stance about external providers in https://github.com/kubernetes-sigs/cluster-api/pull/9975 😅 > >cc @mcbenjemaa who did the work on https://github.com/kubernetes-sigs/cluster-api/pull/9829 > Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
mcbenjemaa commented 7 months ago

Yeah. I was looking to fix this issue, But didn't get time yet.

mcbenjemaa commented 7 months ago

Alright, moving it to Capmox repo.

mcbenjemaa commented 7 months ago

@stmcginnis

You're using a different proxmox provider. https://github.com/k8s-proxmox/cluster-api-provider-proxmox?tab=readme-ov-file#quick-start

But the clusterctl tries to install this provider https://github.com/ionos-cloud/cluster-api-provider-proxmox

The docs in the Quickstart are OK regarding the provider I mentioned.

You will need to adjust your clusterctl config to include https://github.com/k8s-proxmox/cluster-api-provider-proxmox

Or you can follow our quickstart docs

mcbenjemaa commented 7 months ago

/kind support /triage resolved

k8s-ci-robot commented 7 months ago

@mcbenjemaa: The label(s) triage/resolved cannot be applied, because the repository doesn't have them.

In response to [this](https://github.com/kubernetes-sigs/cluster-api/issues/10107#issuecomment-1932152937): >/kind support >/triage resolved Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
stmcginnis commented 7 months ago

Thanks, I did realize much later that there were actually two different providers involved here, adding to the confusion. I still think it would be good to add a little more context on the IPAM requirement, but the main issue was resolved by recreating my test cluster. It appears something was left behind from earlier attempts using the other provider.

mcbenjemaa commented 7 months ago

You're right. It's not documented why we need IPAM, but it's usually necessary to reserve IP addresses for the machines.

I will document that, thanks.