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.
TODO(@jakob): write this
TODO(@jakob): write this
The roadmap of the project is documented as GitHub projects.
To install
busted
, runluarocks install busted
.
Testing is done with busted
:
busted --exclude-tags=system --lua=$(which lua) spec
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.
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.
- 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)
- Pods
- BatchV1
- Jobs
- CronJobs
- AppsV1
- Deployments
- StatefulSets
- DaemonSets
- NetworkingV1
- Ingresses
- IngressClasses