{"id":25047126,"url":"https://github.com/spinframework/spin-operator","last_synced_at":"2025-10-10T05:09:56.741Z","repository":{"id":226574903,"uuid":"751438064","full_name":"spinframework/spin-operator","owner":"spinframework","description":"Spin Operator is a Kubernetes operator that empowers platform engineers to deploy Spin applications as custom resources to their Kubernetes clusters","archived":false,"fork":false,"pushed_at":"2025-07-09T18:17:56.000Z","size":1623,"stargazers_count":260,"open_issues_count":55,"forks_count":28,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-07-10T02:22:15.834Z","etag":null,"topics":["kubernetes","spin","webassembly"],"latest_commit_sha":null,"homepage":"https://www.spinkube.dev/docs/overview/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spinframework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-02-01T16:02:25.000Z","updated_at":"2025-07-09T17:57:15.000Z","dependencies_parsed_at":"2024-05-20T17:10:25.213Z","dependency_job_id":"7eb21339-c3b9-44c4-94bf-0c2303fb0407","html_url":"https://github.com/spinframework/spin-operator","commit_stats":null,"previous_names":["spinkube/spin-operator","spinframework/spin-operator"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/spinframework/spin-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spinframework%2Fspin-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spinframework%2Fspin-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spinframework%2Fspin-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spinframework%2Fspin-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spinframework","download_url":"https://codeload.github.com/spinframework/spin-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spinframework%2Fspin-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002787,"owners_count":26083468,"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-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["kubernetes","spin","webassembly"],"created_at":"2025-02-06T07:01:55.852Z","updated_at":"2025-10-10T05:09:56.692Z","avatar_url":"https://github.com/spinframework.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Spin Operator\n\nSpin Operator enables deploying Spin applications to Kubernetes. It watches [SpinApp Custom\nResources](https://www.spinkube.dev/docs/glossary/#spinapp-crd) and realizes the desired state in\nthe Kubernetes cluster.\n\nThis project was built using the Kubebuilder framework and contains a Spin App CRD and controller.\n\nAll documentation is available online at https://www.spinkube.dev/docs/. If you're just getting\nstarted, the [quickstart guide](https://www.spinkube.dev/docs/install/quickstart/) will guide you to\na minimal installation that'll work while you walk through the introduction.\n\nTo get more help:\n\n- Join the #spinkube channel on Slack at https://cncf.slack.com.\n\nTo contribute to SpinKube, check out the [contributing\nguide](https://www.spinkube.dev/docs/contrib/) for information about getting involved.\n\n## Running the test suite\n\nTo run the test suite, execute the following command:\n\n```shell\nmake test\n```\n\n## Building\n\nTo build the Spin Operator binary, execute the following command:\n\n```shell\nmake\n```\n\n## Running a local development environment\n\nThere are two options to run spin-operator:\n\n1. Run spin-operator on your computer\n1. Deploy spin-operator to a remote Kubernetes cluster\n\n### Option 1: Run spin-operator on your computer\n\nk3d is a lightweight Kubernetes distribution that runs on Docker. This is the standard development\nworkflow most spin-operator developers use to test their changes.\n\nEnsure that your system has all the prerequisites installed before continuing:\n\n- [Go](https://go.dev/)\n- [Docker](https://docs.docker.com/engine/install/)\n- [k3d](https://k3d.io/)\n- [kubectl](https://kubernetes.io/docs/tasks/tools/)\n\nCreate a k3d cluster:\n\n```shell\nk3d cluster create wasm-cluster \\\n    --image ghcr.io/spinkube/containerd-shim-spin/k3d:v0.16.0 \\\n    -p \"8081:80@loadbalancer\" \\\n    --agents 2\n```\n\nInstall the `SpinApp` and `SpinAppExecutor` Custom Resource Definitions into the cluster:\n\n```shell\nmake install\n```\n\nCreate a `RuntimeClass` and `SpinAppExecutor`:\n\n```shell\nkubectl apply -f config/samples/spin-runtime-class.yaml\nkubectl apply -f config/samples/spin-shim-executor.yaml\n```\n\nRun spin-operator:\n\n```shell\nmake run\n```\n\nRun the sample application:\n\n```shell\nkubectl apply -f ./config/samples/simple.yaml\n```\n\nForward a local port to the application so that it can be reached:\n\n```shell\nkubectl port-forward svc/simple-spinapp 8083:80\n```\n\nIn a different terminal window, make a request to the application:\n\n```shell\ncurl localhost:8083/hello\n```\n\nYou should see \"Hello world from Spin!\".\n\n### Option 2: Deploy spin-operator to a remote Kubernetes cluster\n\nThis is harder than running Spin Operator on your computer, but deploying Spin Operator into a\nremote cluster lets you test things like webhook support.\n\nEnsure that your system has all the prerequisites installed before continuing:\n\n- [Go](https://go.dev/)\n- [kubectl](https://kubernetes.io/docs/tasks/tools/)\n- [Docker](https://docs.docker.com/engine/install/) (optional: for building and pushing your own\n  Docker image)\n\nInstall cert-manager into your cluster for webhook support:\n\n```shell\nkubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.3/cert-manager.yaml\nkubectl wait --for=condition=available --timeout=300s deployment/cert-manager-webhook -n cert-manager\n```\n\nInstall the `SpinApp` and `SpinAppExecutor` Custom Resource Definitions into the cluster:\n\n```shell\nmake install\n```\n\nCreate a `RuntimeClass` and `SpinAppExecutor`:\n\n```shell\nkubectl apply -f config/samples/spin-runtime-class.yaml\nkubectl apply -f config/samples/spin-shim-executor.yaml\n```\n\n\u003e OPTIONAL: You can build and push the Spin Operator image using `make docker-build` and\n\u003e `make docker-push`.\n\u003e\n\u003e     export IMG_REPO=\u003csome-registry\u003e/spin-operator\n\u003e     make docker-build docker-push\n\nDeploy Spin Operator to the cluster:\n\n```shell\nmake deploy\n```\n\nRun the sample application:\n\n```shell\nkubectl apply -f ./config/samples/simple.yaml\n```\n\nForward a local port to the application so that it can be reached:\n\n```shell\nkubectl port-forward svc/simple-spinapp 8083:80\n```\n\nIn a different terminal window, make a request to the application:\n\n```shell\ncurl localhost:8083/hello\n```\n\nYou should see \"Hello world from Spin!\".\n\n\u003e NOTE: If you encounter RBAC errors, you may need to grant yourself cluster-admin privileges or be\n\u003e logged in as admin.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspinframework%2Fspin-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspinframework%2Fspin-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspinframework%2Fspin-operator/lists"}