{"id":13829256,"url":"https://github.com/kubernetes-sigs/apiserver-builder-alpha","last_synced_at":"2025-07-09T09:33:11.423Z","repository":{"id":41001840,"uuid":"89638209","full_name":"kubernetes-sigs/apiserver-builder-alpha","owner":"kubernetes-sigs","description":"apiserver-builder-alpha implements libraries and tools to quickly and easily build Kubernetes apiservers/controllers to support custom resource types based on APIServer Aggregation","archived":false,"fork":false,"pushed_at":"2024-01-11T14:22:35.000Z","size":144633,"stargazers_count":790,"open_issues_count":3,"forks_count":235,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-11-15T01:18:47.149Z","etag":null,"topics":["apiserver-aggregation","k8s-sig-api-machinery","kubernetes","server-sdk"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kubernetes-sigs.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":null,"security":"SECURITY_CONTACTS","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-27T20:35:24.000Z","updated_at":"2024-11-06T10:00:54.000Z","dependencies_parsed_at":"2024-01-18T05:29:39.595Z","dependency_job_id":"18e021a6-2769-46b0-921f-95ab8b2a8ac7","html_url":"https://github.com/kubernetes-sigs/apiserver-builder-alpha","commit_stats":{"total_commits":696,"total_committers":59,"mean_commits":"11.796610169491526","dds":0.5747126436781609,"last_synced_commit":"ba22a63c6f739eef533979e20427bd470de1909f"},"previous_names":["kubernetes-incubator/apiserver-builder-alpha","kubernetes-incubator/apiserver-builder"],"tags_count":80,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fapiserver-builder-alpha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fapiserver-builder-alpha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fapiserver-builder-alpha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes-sigs%2Fapiserver-builder-alpha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubernetes-sigs","download_url":"https://codeload.github.com/kubernetes-sigs/apiserver-builder-alpha/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225533011,"owners_count":17484179,"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","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":["apiserver-aggregation","k8s-sig-api-machinery","kubernetes","server-sdk"],"created_at":"2024-08-04T10:00:30.239Z","updated_at":"2024-11-20T10:30:34.444Z","avatar_url":"https://github.com/kubernetes-sigs.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"## `apiserver-builder-alpha`\n\n![build](https://github.com/kubernetes-sigs/apiserver-builder-alpha/workflows/build/badge.svg)\n[![Go Report Card](https://goreportcard.com/badge/sigs.k8s.io/apiserver-builder-alpha)](https://goreportcard.com/report/sigs.k8s.io/apiserver-builder-alpha)\n\nUnless you absolutely need apiserver-aggregation, you are recommended to use [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) instead of apiserver-builder for\nbuilding Kubernetes APIs.  Kubebuilder builds APIs using CRDs and addresses limitations and feedback from\napiserver-builder.\n\nApiserver Builder is a collection of libraries and tools to build native\nKubernetes extensions using Kubernetes apiserver aggregation. Aggregated\napiserver empowers you to customize your apiserver to do following things\ncannot achieved by CR\\[D\\]:\n- Makes your apiserver adopt different storage APIs rather than ETCDv3\n- Extends long-running subresources/endpoints like websocket for your own resources\n- Integrates your apiserver with whatever other external systems\n\n![DEMO](./docs/static_includes/demo.gif)\n\n## Installation\n\n```bash\ngo install sigs.k8s.io/apiserver-builder-alpha/cmd/apiserver-boot@v1.23.0\n```\n\nor manual download from [release pages](https://github.com/kubernetes-sigs/apiserver-builder-alpha/releases).\n\n## Motivation\n\n*Addon apiservers* are a Kubernetes extension point allowing fully featured Kubernetes\nAPIs to be developed on the same api-machinery used to build the core Kubernetes APIS,\nbut with the flexibility of being distributed and installed separately from\nthe Kubernetes project.  This allows APIs to be developed outside of the\nKubernetes repo and installed separately as a package.\n\nBuilding addon apiservers directly on the raw api-machinery libraries requires non-trivial\ncode that must be maintained and rebased as the raw libraries change. The goal of this project is\nto make building apiservers in *Go* simple and accessible to everyone in the\nKubernetes community.\n\napiserver-builder provides libraries, code generators, and tooling to make it possible to build\nand run a basic apiserver in an afternoon, while providing all of the hooks to offer the\nsame capabilities when building from scratch.\n\n## Highlights\n\n- Tools to bootstrap type definitions, controllers (powered by [controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) framework), tests and documentation for new resources\n- Tools to build and run the extension control plane standalone and in minikube and remote clusters.\n- Easily watch and update Kubernetes API types from your controller\n- Easily add new resources and subresources\n- Provides sane defaults for most values, but can be overridden\n\n## Examples\n\n- [BasicExample](https://sigs.k8s.io/apiserver-builder-alpha/example/basic): Various simple resource examples.\n- [KineExample](https://sigs.k8s.io/apiserver-builder-alpha/example/kine): Plumbs aggregated apiserver over SQL-storages including sqlite, mysql, etc..\n- [PodLogsExample](https://sigs.k8s.io/apiserver-builder-alpha/example/podlogs): Serves `pod/logs` in aggregation layer to offload kube-apiserver connections.\n- [PodExecExample](https://sigs.k8s.io/apiserver-builder-alpha/example/podexec): Serves `pod/exec` in aggregation layer to offload kube-apiserver connections.\n\n## Guides\n\n**Note:** The guides are presented roughly in the order of recommended progression.\n\n#### Building APIs concept guide\n\nConceptual information on how APIs and the Kubernetes control plane is structure and how to\nbuild new API extensions using apiserver-builder.\n\nIf you want to get straight to building something without knowing all the details of what is going on,\nskip ahead to the tools guide and come back to this later.\n\n[api building concept guide](docs/concepts/api_building_overview.md)\n\n\n#### Tools user guide\n\nInstructions on how to use the tools packaged with apiserver-builder to build and run a new apiserver.\n\n[tools guide](docs/tools_user_guide.md)\n\n#### Step by step example\n\nList of commits showing `apiserver-boot` commands run and the corresponding changes:\n\nhttps://github.com/kubernetes-sigs/apiserver-builder-alpha/commits/example-simple\n\n#### Coding and libraries user guide\n\nInstructions for how to implement custom APIs on top of the apiserver-builder libraries.\n\n[libraries guide](docs/libraries_user_guide.md)\n\n#### Concept guides\n\nConceptual information on addon apiservers, such as how auth works and how they interact\nwith the main Kubernetes API server and API aggregator.\n\n[Concepts](docs/concepts/README.md)\n\n## Additional material\n\n##### Using delegated auth with minikube\n\nInstructions on how to run an apiserver using delegated auth with a minikube cluster\n\nDetails [here](https://sigs.k8s.io/apiserver-builder-alpha/docs/using_minikube.md)\n\n## Community, discussion, contribution, and support\n\nLearn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).\n\nYou can reach the maintainers of this project at:\n\n- [Slack channel](https://kubernetes.slack.com/messages/kubebuilder)\n- [Mailing list](https://groups.google.com/forum/#!forum/kubebuilder)\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes-sigs%2Fapiserver-builder-alpha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubernetes-sigs%2Fapiserver-builder-alpha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes-sigs%2Fapiserver-builder-alpha/lists"}