Skip to content

[BUG] uc machine init keeps attempting to install binaries even when they are present #122

@luislavena

Description

@luislavena

Describe the bug

The install script invoked by machine init or machine add uses INSTALL_BIN_DIR variable with a default of /usr/local/bin path.

While the script could support setting the path to something different, machine init or machine add does not pass the local variable or option to the invoked script, thus failing when the binaries were placed in a different place.

How to reproduce

  1. Launch a Flatcar machine
  2. Setup SSH to access it
  3. Run uc machine init user@server and see the error

Expected behavior

Perhaps the install script could check if uncloudd and uncloud-corrosion binaries are available (using command -v) instead of checking if those were in the specific directory.

The other would be to --skip-install and jump to the cluster initialization, assuming all the pieces are running within the machine.

I'm not sure if the bug is that or the script should be able to identify Flatcar as option (inspecting /etc/os-release) and adjust accordingly.

Environment:

  • Uncloud versions:
    • Control (client) node (uc --version): 0.12.1
    • Uncloud daemon (from the server) (uncloudd --version): 0.12.1
  • OS version (uname -a):
    • Client (control node): Darwin Kernel Version 24.6.0: Mon Jul 14 11:29:54 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T8122 arm64
    • Server: Linux core01 6.6.100-flatcar Great work #1 SMP PREEMPT Tue Aug 12 21:42:02 -00 2025 aarch64 GNU/Linux

Additional context

I'm working on adapting and deploying Uncloud to an immutable Linux distro named Flatcar.

Flatcar filesystem is read only, so only way to place certain files is during the initialization process.

I'm loading Uncloud binaries, user and setup the services as part of Flatcar Butane configuration as a proof of concept (for later working on getting it as a sysext).

So not sure precisely what is the bug here: the script, the env variable or all the stuff that I'm trying 😆

Thank you for your patience and 🫶 if you reached this point reading all my sleep-deprived testing
❤️ ❤️ ❤️

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions