Skip to content
/ luakube Public

LuaKube is a simple client library to access the Kubernetes API. It does not abstract much from the API, allowing for full control, but provides some convenience functions for quick scripting.

License

Notifications You must be signed in to change notification settings

f4z3r/luakube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

luakube

build status

LuaKube is a simple client library to access the Kubernetes API. It does not abstract much from the API, allowing for full control, but provides some convenience functions for quick scripting.

Getting Started

TODO(@jakob): write this

Documentation

TODO(@jakob): write this

Roadmap

The roadmap of the project is documented as GitHub projects.

Contributing

Testing

Unit Tests

To install busted, run luarocks install busted.

Testing is done with busted:

busted --exclude-tags=system --lua=$(which lua) spec

System Tests

The system tests require k3d to be installed, and the docker service to be running.

To run the system tests:

Careful, these test take a decent time to complete, as they create several testing clusters.

busted --defer-print --lua=$(which lua) -t system spec
# or combined with unit tests
busted --defer-print --lua=$(which lua) spec

The --lua flag is required when running shims with several lua installations other than the system installation.

Development

This is used to track the progress of the development. It should show the current state of the library, including what is supported and what not.

Progress

  • Accept both strings and tables for objects
  • Define examples and run them as tests with #example tag.
  • System Tests (covering entire implemented API)
  • Authentication
    • Service Account Token
    • Bootstrap Token
    • Static Token
    • X509 Certificate
    • Webhook Token
    • OIDC
    • Proxy
  • CoreV1
    • Pods
      • Get
      • Get Status
      • Update
      • Update Status
      • Patch
      • Create
      • Delete
      • Delete Collection
      • Logs
      • EphemeralContainers
      • Exec
    • Namespaces
    • Nodes
    • Services
    • PodTemplates
    • ConfigMap
    • Secret
    • ServiceAccounts
    • Endpoints
    • PersistentVolumeClaims
    • PersistentVolumes
    • ReplicationController
    • LimitRange
    • ResourceQuota
    • Binding (not meant to be used by end user)
    • ComponentStatus (deprecated)
  • BatchV1
    • Jobs
    • CronJobs
  • AppsV1
    • Deployments
    • StatefulSets
    • DaemonSets
  • NetworkingV1
    • Ingresses
    • IngressClasses

About

LuaKube is a simple client library to access the Kubernetes API. It does not abstract much from the API, allowing for full control, but provides some convenience functions for quick scripting.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages