Repository navigation
Conversation
Adds optional ORKA_VM_USERDATA / ORKA_VM_USERDATA_FILE_PATH settings: a bootstrap script executed as root inside each runner VM on its first boot, before the GitHub runner starts. This prepares the integration for Orka 3.7, which introduces VM userdata - one base image can serve many runner pools without baking bootstrap steps into the image. - The script (from env content or a file, mirroring the GitHub App private key pattern) is validated against the 64KiB encoded size cap at startup and stored in a file readable only by the current user; deploys pass the file path to orka3 --userdata, so the script content never appears in command lines or error logs - Startup fails fast with a clear error when the installed orka3 CLI predates the --userdata flag (requires orka3 3.7.0+) - Userdata never delays or gates runner VM boot; output is written to /var/log/orka/userdata.log inside the VM Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collaborator
|
I wouldn't add user data just yet (not in this form) I want to use userdata to replace the SSH configuration of runners. Rn the whole agent provisioning depends on the connectivity to the VMs. And people need to provide VM credentials in addition to that. So I would take it slowly here - test the SSH replacement first and then determine if/how we want to expose user data to end users. WDYT? |
Contributor
Author
|
Closing this one for now -- we can reference it in the future if necessary |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds optional
ORKA_VM_USERDATA/ORKA_VM_USERDATA_FILE_PATHsettings (OK-6038, part of epic OK-6037): a bootstrap script executed as root inside each runner VM on its first boot, before the GitHub runner starts. One base image can then serve many runner pools - toolchain installs, MDM enrollment, and service registration no longer need to be baked into the VM image.How
ORKA_VM_USERDATAholds the script content directly, orORKA_VM_USERDATA_FILE_PATHpoints at a script file read at startup (content wins when both are set). The 64KiB encoded size cap is validated at startup for fail-fast behavior.orka3 vm deploy --userdata(the CLI reads and base64-encodes it) - so the script content never appears in command lines, and therefore never in the integration's error logs, which embed command args./var/log/orka/userdata.loginside the VM.examples/.envdocument the new settings, semantics, and version requirements.Testing
go build ./...,go vet ./...,gofmt -l, and the fullgo test ./...suite are green.writeUserdataFile→deployArgs→orka3 vm deploy --userdata) provisioned a VM whose script ran on first boot - confirmed via the VM'suserdataPhase=success, the marker file the script wrote in the guest, and the guest'suserdata.log(finished with status "success" (exit code 0)).🤖 Generated with Claude Code