{"id":43715569,"url":"https://github.com/oxidecomputer/omni-infra-provider-oxide","last_synced_at":"2026-02-05T07:07:08.737Z","repository":{"id":316461968,"uuid":"1036213999","full_name":"oxidecomputer/omni-infra-provider-oxide","owner":"oxidecomputer","description":"Sidero Omni infrastructure provider for Oxide.","archived":false,"fork":false,"pushed_at":"2026-01-27T22:15:31.000Z","size":47,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-28T10:57:46.372Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oxidecomputer.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-11T18:18:37.000Z","updated_at":"2026-01-27T22:15:34.000Z","dependencies_parsed_at":"2025-10-29T20:33:34.446Z","dependency_job_id":"d1407ee8-8755-4e00-a5ce-221a374698e6","html_url":"https://github.com/oxidecomputer/omni-infra-provider-oxide","commit_stats":null,"previous_names":["oxidecomputer/omni-infra-provider-oxide"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/oxidecomputer/omni-infra-provider-oxide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fomni-infra-provider-oxide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fomni-infra-provider-oxide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fomni-infra-provider-oxide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fomni-infra-provider-oxide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxidecomputer","download_url":"https://codeload.github.com/oxidecomputer/omni-infra-provider-oxide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Fomni-infra-provider-oxide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29115023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T05:31:32.482Z","status":"ssl_error","status_checked_at":"2026-02-05T05:31:29.075Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-05T07:07:08.597Z","updated_at":"2026-02-05T07:07:08.731Z","avatar_url":"https://github.com/oxidecomputer.png","language":"Go","funding_links":[],"categories":["Table of Contents"],"sub_categories":[],"readme":"= Oxide Omni Infrastructure Provider\n\nThe Oxide Omni infrastructure provider is used to provision Talos Linux\ninstances on Oxide and connect those instances to Omni where they will be\nconfigured as nodes in a Kubernetes cluster.\n\n\n== Usage\n\nPlease note the following before using the Oxide Omni infrastructure provider.\n\n* The infrastructure provider is a dynamic provider, meaning it provisions and\ndeprovisions Oxide instances on demand as Omni users create and scale Kubernetes\nclusters.\n\n* The infrastructure provider is designed to manage resources within a single\nOxide silo. To support multiple Oxide silos, run a separate instance of the\ninfrastructure provider using a different provider ID. The infrastructure\nprovider uses machine classes to specify the Oxide project instances are\nprovisioned within.\n\nWith the above noted, let's run the Oxide Omni infrastructure provider.\n\n. Create the infrastructure provider in Omni.\n+\n[source,shell]\n----\nomnictl --omniconfig omniconfig.yaml infraprovider create oxide\n----\n\n. Export the `OMNI_ENDPOINT` and `OMNI_SERVICE_ACCOUNT_KEY` environment variables.\n+\n[source,shell]\n----\nexport OMNI_ENDPOINT=https://example.na-west-1.omni.siderolabs.io:443\nexport OMNI_SERVICE_ACCOUNT_KEY=ZXhhbXBsZQ==\n----\n\n. Export the `OXIDE_HOST` and `OXIDE_TOKEN` environment variables.\n+\n[source,shell]\n----\nexport OXIDE_HOST='https://oxide.sys.example.com'\nexport OXIDE_TOKEN='oxide-token-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n----\n\n. Run the infrastructure provider. Update `${TAG}` to use the latest stable\nOxide infrastructure provider, without the `v` prefix, which can be found on\nhttps://github.com/oxidecomputer/omni-infra-provider-oxide/releases[GitHub\nreleases].\n+\n----\ndocker run --rm \\\n  --env OMNI_ENDPOINT \\\n  --env OMNI_SERVICE_ACCOUNT_KEY \\\n  --env OXIDE_HOST \\\n  --env OXIDE_TOKEN \\\n  ghcr.io/oxidecomputer/omni-infra-provider-oxide:${TAG}\n----\n\n== Development\n\nThe `Makefile` is the primary method of interfacing with this project. Refer to\nits targets for more information. The build artifact is a container image to be\nrun wherever it'll have access to the Oxide silo it's configured to connect to.\n\n=== Running Locally\n\n. Export the necessary environment variables.\n+\n[source,shell]\n----\nexport OMNI_ENDPOINT=https://example.na-west-1.omni.siderolabs.io:443\nexport OMNI_SERVICE_ACCOUNT_KEY=ZXhhbXBsZQ==\nexport OXIDE_HOST='https://oxide.sys.example.com'\nexport OXIDE_TOKEN='oxide-token-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n----\n\n. Run the infrastructure provider.\n+\n[source,shell]\n----\nmake dev\n----\n\n== Release Process\n\nThe release process is manual and runs from a developer's workstation for now.\n\n. Check out the revision to be released. Ensure the working copy is clean.\n\n. Build the container image.\n+\n[source,shell]\n----\nRELEASE=true make build\n----\n\n. Push the container image.\n+\n[source,shell]\n----\nRELEASE=true make push\n----\n\n. Create a GitHub release.\n\n.. Create and push a Git tag with the v-prefixed `VERSION` (e.g., v0.1.0).\n\n.. Create the GitHub release for the newly pushed tag. Automatically generate the release notes.\n\n. Open a pull request with the following changes.\n\n.. Update the `VERSION` within the `Makefile` to the next version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Fomni-infra-provider-oxide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxidecomputer%2Fomni-infra-provider-oxide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Fomni-infra-provider-oxide/lists"}