kubermatic / kubermatic/machine-controller

VMware Cloud Director Machines are not getting provisioned if a SSH key is provided

Open
#1,886 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/bug lifecycle/frozen sig/cluster-management sig/infra
Dominant language
Go
Stars
326
Forks
138
Avg merge
2d 46m
Merged PRs (30d)
12

Description

If you create a VMware Cloud Director (VCD) based Machine with a SSH key, the Machine/VM never gets fully-provisioned. The VM is created, it has an IP address assigned, but it doesn't join the cluster. These are the findings after some initial debugging:

  • The SSH key is picked up and it's possible to access the Machine via SSH
  • There are some problems with cloud-init and the bootstrap service that we run as part of OSM (which can be seen from the logs)

Removing the SSH key from the Machine mitigates the issue. In this case, the VM gets fully provisioned and it joins the cluster.

Some additional breadcrumbs for debugging this:

  • We should check the OVF property vcloudapp.enable_ssh.VMware_vCloud_Director, if you have this enabled, whatever you add to the OS will be overwritten
  • This was tested on Ubuntu, we should also test Flatcar to check if it's affected
  • This is affecting both KKP and KubeOne, this issue might span across VCD, machine-controller and operating-system-manager

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with an Ubuntu VMware Cloud Director machine and an SSH key, then inspect the cloud-init and bootstrap-service logs. Check the OVF property vcloudapp.enable_ssh.VMware_vCloud_Director and compare behavior with Flatcar across VCD, machine-controller, and operating-system-manager. Done means the machine provisions fully and joins the cluster when an SSH key is provided.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cloud, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.