Skip to content
/ vai Public

A Kubernetes' client-go Indexer backed by SQL database

License

Notifications You must be signed in to change notification settings

moio/vai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vai - SQLite-based client-go alternative components

Kubernetes API caching layer according to Stable Diffusion

This project contains alternative versions of client-go concepts - Stores, Indexers, ThreadSafeStores, Reflectors and possibly Informers backed by lightweight SQLite databases.

For a gentle introduction on client-go's basic projects see this excellent guide.

The aim is to allow memory-efficient and still fast enough contstructs when dealing with large Kubernetes installations with hundreds of thousands of resources and more.

Additionally, SQLite make it easier to develop custom sorting, filtering, pagination, aggregation and so on - eg. to build GUIs.

Current status

  • sqlcache.NewStore returns a SQLite-backed cache.Store instance that passes client-go's unit tests
  • sqlcache.NewIndexer returns a SQLite-backed cache.Indexer instance that passes client-go's unit tests
  • sqlcache.NewThreadSafeStore returns a SQLite-backed cache.NewThreadSafeStore instance that passes client-go's unit tests
  • sqlcache.NewVersionedIndexer returns a SQLite-backed cache.Indexer instance that keeps track of past versions of resources
  • sqlcache.NewListOptionIndexer returns a SQLite-backed cache.Indexer instance that can satisfy a Rancher steve's ListOptions query object
  • it is possible to set up a Reflector to populate a ListOptionIndexer from a Kubernetes API, see examples/reflector/main.go for an example
  • it is possible to set up a SharedIndexInformer to populate a ListOptionIndexer from a Kubernetes API, see examples/informer/main.go for an example

Next steps:

  • try to integrate in steve
  • add garbage collector

This project has originated in SUSE HackWeek.

About

A Kubernetes' client-go Indexer backed by SQL database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages