{"id":29675850,"url":"https://github.com/oxidecomputer/rancher-machine-driver-oxide","last_synced_at":"2025-07-22T23:38:54.809Z","repository":{"id":265015435,"uuid":"880449725","full_name":"oxidecomputer/rancher-machine-driver-oxide","owner":"oxidecomputer","description":"This repository contains the Rancher Node Driver for provisioning hosts on Oxide that can be used by Rancher to deploy Kubernetes clusters.","archived":false,"fork":false,"pushed_at":"2025-06-07T03:36:44.000Z","size":81,"stargazers_count":4,"open_issues_count":7,"forks_count":5,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-06-07T04:26:53.604Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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}},"created_at":"2024-10-29T18:40:14.000Z","updated_at":"2025-06-07T03:36:47.000Z","dependencies_parsed_at":"2025-06-07T04:23:00.170Z","dependency_job_id":"a46a937d-2a84-4795-8fbf-b11097527d91","html_url":"https://github.com/oxidecomputer/rancher-machine-driver-oxide","commit_stats":null,"previous_names":["oxidecomputer/rancher-machine-driver-oxide"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/oxidecomputer/rancher-machine-driver-oxide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Francher-machine-driver-oxide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Francher-machine-driver-oxide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Francher-machine-driver-oxide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Francher-machine-driver-oxide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxidecomputer","download_url":"https://codeload.github.com/oxidecomputer/rancher-machine-driver-oxide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxidecomputer%2Francher-machine-driver-oxide/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266591233,"owners_count":23953082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-07-22T23:38:54.143Z","updated_at":"2025-07-22T23:38:54.782Z","avatar_url":"https://github.com/oxidecomputer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Oxide Rancher Machine Driver\n\nThis repository contains the Oxide Rancher machine driver, also known as a node\ndriver in Rancher parlance. Rancher uses this node driver to provision virtual\nmachines on Oxide that can then be used to deploy Kubernetes clusters.\n\n== Building\n\nBuild the binary using `make`.\n\n[source,sh]\n----\nmake\n----\n\n== Deploying\n\nThe binary name must match the format `docker-machine-driver-*` (e.g.,\n`docker-machine-driver-oxide`) otherwise Rancher will error when trying to use\nthe node driver.\n\n=== Rancher Kubernetes\n\nIMPORTANT: You must deploy the Oxide node driver using\nthe Kubernetes API rather than the Rancher UI otherwise\nRancher will be unable to use the Oxide node driver. See\nhttps://github.com/oxidecomputer/rancher-machine-driver-oxide/issues/11 for\nmore information.\n\n. Upload the `docker-machine-driver-oxide` binary somewhere accessible from\nRancher Kubernetes.\n\n. Ensure your `kubectl` context is configured to use your Rancher Kubernetes\ncluster.\n\n. Create the following `oxide-nodedriver.yaml` Kubernetes manifest.\n+\n[source,yaml]\n----\n---\napiVersion: management.cattle.io/v3\nkind: NodeDriver\nmetadata:\n  name: oxide\n  annotations:\n    privateCredentialFields: token\n    publicCredentialFields: host\n  finalizers:\n  - controller.cattle.io/node-driver-controller\nspec:\n  active: true\n  addCloudCredential: true\n  builtin: false\n  checksum: \u003cSHA256SUM_OF_NODE_DRIVER_BINARY\u003e\n  description: \"Oxide Rancher node driver.\"\n  displayName: oxide\n  externalId: \"\"\n  uiUrl: \"\"\n  url: \"https://example.com/docker-machine-driver-oxide\"\n----\n\n. Apply the Kubernetes manifest to create the Oxide Rancher node driver.\n+\n[source,sh]\n----\nkubectl apply -f oxide-nodedriver.yaml\n----\n\n=== Rancher Machine CLI\n\n. Install https://github.com/rancher/machine[`rancher-machine`].\n\n. Place the `docker-machine-driver-oxide` binary somewhere on `PATH`.\n\n. Use `rancher-machine` to create an Oxide instance.\n+\n[source,sh]\n----\nrancher-machine create \\\n  --driver oxide \\\n  --oxide-additional-ssh-public-key-ids 529885a0-2919-463a-a588-ac48f100a165 \\\n  --oxide-boot-disk-image-id feb2c8ee-5a1d-4d66-beeb-289b860561bf \\\n  --oxide-boot-disk-size \"21474836480\" \\\n  --oxide-host https://silo01.oxide.example.com \\\n  --oxide-memory \"4294967296\" \\\n  --oxide-project exampleproject \\\n  --oxide-ssh-user ubuntu \\\n  --oxide-subnet \"default\" \\\n  --oxide-token oxide-token-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \\\n  --oxide-vcpus \"2\" \\\n  --oxide-vpc \"default\" \\\n  example-oxide-machine\n----\n\n== Releasing\n\nThis project uses https://goreleaser.com/[GoReleaser] to build binaries and\ncreate GitHub releases. The release process is as follows.\n\n. Determine the version to be released. This could be a new major version or a\nminor or patch version (e.g., `v1.0.0`).\n\n. Determine the version control revision to be released (e.g., `1a0acaf`).\nUsually this is the latest revision on the default branch for major version\nreleases but it could be another revision for minor or patch releases.\n\n. Create a Git tag on the version control revision with a name that matches the\nversion to be released (e.g., `git tag -a v1.0.0 1a0acaf`).\n\n. Push the newly created Git tag to GitHub (e.g., `git push origin v1.0.0`).\n\n. Monitor the latest\nhttps://github.com/oxidecomputer/rancher-machine-driver-oxide/actions/workflows/release.yaml[Release]\nGitHub Actions job to ensure it runs successfully.\n\n. Ensure the\nhttps://github.com/oxidecomputer/rancher-machine-driver-oxide/releases[GitHub Releases]\npage shows a new release for the desired version.\n\n.. Update the description for the release as necessary.\n\n.. Ensure the release is published, not a draft.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Francher-machine-driver-oxide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxidecomputer%2Francher-machine-driver-oxide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxidecomputer%2Francher-machine-driver-oxide/lists"}