Skip to content
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

Validation permits having cloudProvider.none and machineController.deploy=true #3366

Open
kron4eg opened this issue Sep 3, 2024 · 4 comments
Labels
kind/bug Categorizes issue or PR as related to a bug. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management.
Milestone

Comments

@kron4eg
Copy link
Member

kron4eg commented Sep 3, 2024

What happened?

Sometimes people can be confused and try to set unsupported config combination that lead to very obscure error messages, for example in this case:

Task failed, error was: runtime: unmarshalling manifest "deployment-controller.yaml"
error converting YAML to JSON: yaml: line 64: could not find expected ':'

Expected behavior

KubeOne should error out early, clearly indicating that such a config is not supported.

What KubeOne version are you using?

Any of them.

Provide your KubeOneCluster manifest here (if applicable)

apiVersion: kubeone.k8c.io/v1beta2
kind: KubeOneCluster
name: kubeone
versions:
  kubernetes: 1.29.7

cloudProvider:
  none: {}

controlPlane:
  hosts:
    - privateAddress: 10.xxx
    - privateAddress: 10.xxx
    - privateAddress: 10.xxx

apiEndpoint:
  host: 10.xxx
  alternativeNames:
    - seed.xxx
  port: 6443

machineController:
  deploy: true
operatingSystemManager:
  deploy: true
@kron4eg kron4eg added kind/bug Categorizes issue or PR as related to a bug. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. labels Sep 3, 2024
@kron4eg kron4eg added this to the KubeOne 1.9 milestone Sep 3, 2024
@kron4eg kron4eg changed the title Validation allow having cloudProvider.none and machineController.deploy=true Validation permits having cloudProvider.none and machineController.deploy=true Sep 3, 2024
@xmudrii
Copy link
Member

xmudrii commented Sep 17, 2024

KubeOne should error out early, clearly indicating that such a config is not supported.

This config should be supported, but we shouldn't deploy any credentials.

@kron4eg
Copy link
Member Author

kron4eg commented Sep 18, 2024

KubeOne should error out early, clearly indicating that such a config is not supported.

This config should be supported, but we shouldn't deploy any credentials.

How so? What's the purpose of credential-less and cloud-less machine-controller and osm?

@xmudrii
Copy link
Member

xmudrii commented Sep 18, 2024

@kron4eg machine-controller has more providers than what we support in KubeOne. The most notable example is Kubevirt, I could create a KubeOne cluster, deploy machine-controller and OSM, deploy credentials, and then use the machine-controller to create Kubevirt-based nodes.

@kron4eg
Copy link
Member Author

kron4eg commented Sep 19, 2024

In that case we should start supporting kubevirt. But until we not, this is an invalid configuration from K1 PoV.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management.
Projects
None yet
2 participants