{"id":17209242,"url":"https://github.com/dixudx/yacht","last_synced_at":"2025-04-13T22:32:14.744Z","repository":{"id":46589248,"uuid":"501995234","full_name":"dixudx/yacht","owner":"dixudx","description":"Most Light-weighted Kubernetes controller-runtime Framework","archived":false,"fork":false,"pushed_at":"2025-03-24T06:26:25.000Z","size":144,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T07:32:32.719Z","etag":null,"topics":["controller-runtime","framework","golang","kubernetes","operator"],"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/dixudx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-10T10:11:58.000Z","updated_at":"2025-03-24T06:26:20.000Z","dependencies_parsed_at":"2024-11-08T00:04:05.730Z","dependency_job_id":"44f45eb0-b15b-4642-803b-acc03cf404c6","html_url":"https://github.com/dixudx/yacht","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dixudx%2Fyacht","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dixudx%2Fyacht/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dixudx%2Fyacht/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dixudx%2Fyacht/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dixudx","download_url":"https://codeload.github.com/dixudx/yacht/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248790690,"owners_count":21162072,"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":["controller-runtime","framework","golang","kubernetes","operator"],"created_at":"2024-10-15T02:51:07.265Z","updated_at":"2025-04-13T22:32:14.337Z","avatar_url":"https://github.com/dixudx.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yacht\n\n[![GoPkg Widget](https://pkg.go.dev/badge/github.com/dixudx/yacht.svg)](https://pkg.go.dev/github.com/dixudx/yacht)\n[![License](https://img.shields.io/github/license/dixudx/yacht)](https://www.apache.org/licenses/LICENSE-2.0.html)\n![GoVersion](https://img.shields.io/github/go-mod/go-version/dixudx/yacht)\n[![Go Report Card](https://goreportcard.com/badge/github.com/dixudx/yacht)](https://goreportcard.com/report/github.com/dixudx/yacht)\n![build](https://github.com/dixudx/yacht/actions/workflows/ci.yml/badge.svg)\n[![Version](https://img.shields.io/github/v/tag/dixudx/yacht)](https://github.com/dixudx/yacht/tags)\n[![codecov](https://codecov.io/gh/dixudx/yacht/branch/main/graph/badge.svg)](https://codecov.io/gh/dixudx/yacht)\n\n---\n\nLight-weighted Kubernetes controller-runtime Framework with Minimal Dependencies\n\n---\n\n## Why Building Yacht\n\nWell, there are quite a few controller/operator frameworks out there, such\nas [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder),\n[operator-sdk](https://github.com/operator-framework/operator-sdk),\n[controller-runtime](https://github.com/kubernetes-sigs/controller-runtime). But they are not quite handy.\n\nFirst of all, building a scaffold project may not be what we really need. Most of the time, we are not trying to build a\nproject from scratch, but rather adding new controllers on an existing project. Moreover, the structure of the scaffold\nproject does not suit all. It is not easy to customize the scaffolds according to our own preferences.\n\nSecondly, **backwards compatibility**. Most frameworks **DO NOT** guarantee any particular compatibility matrix between\nkubernetes library dependencies ([client-go](https://github.com/kubernetes/client-go),\n[apimachinery](https://github.com/kubernetes/apimachinery), etc). This is painful when we want to pin Kubernetes library\ndependencies to any specific lower versions. It has always been a headache to upgrade/downgrade the versions of\nframeworks and Kubernetes library dependencies.\n\nLast but not least, we **DO** want a light-weighted framework with minimal dependencies.\n\nThat's why I build [yacht](https://github.com/dixudx/yacht), which brings pleasure user experiences on writing\nKubernetes controllers. It is built with minimal dependencies, which makes it easier to downgrade/upgrade module\nversions.\n\n## To Start Using Yacht\n\n1. Add `github.com/dixudx/yacht` to your `go.mod` file.\n2. Follow [yacht examples](./examples) and learn how to use.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdixudx%2Fyacht","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdixudx%2Fyacht","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdixudx%2Fyacht/lists"}