I've been trying to figure out how to use Omni to provision a Talos cluster completely headless and I've learned a couple things:
Just for some context, I've got a local docker compose stack going with Keycloak 26.4 and Omni 1.2.1. I realize this isn't anywhere near prod-worthy but I'm still just poking around.
First, to make it headless, the default SAML flow isn't going to work, so you have to use a service account with OIDC. I needed a minimal OIDC client in Keycloak to make this work. (I just set the client ID to omni and root and home URLs to https://omni.example.com.)
Second, you can pass a --create-initial-service-account flag to the Omni start command, it will do that for you on first run.
Third, if you expose the /_out directory from the Omni container to the host, you can get access to initial-service-account-key.
Finally, set OMNI_ENDPOINT and OMNI_SERVICE_ACCOUNT_KEY like so:
export OMNI_ENDPOINT=https://omni.example.com:443
export OMNI_SERVICE_ACCOUNT_KEY=$(cat initial-service-account-key)And now to verify, run omnictl get rd, and you should see a list of resource definitions