This project was/is an attempt to recreate the core functionality of v1.29.1 Kubernetes in NodeJS, while being fully compatible with the kubectl
CLI. Though this project only implements some resources, the resources which were partially/fully implemented seem to be the most used (i.e. Pods, Services, etc) and the others may be implemented in the future.
- Pod (volume mounts are not supported)
- ClusterRole
- ClusterRoleBinding
- Ingress
- Role
- RoleBinding
- Endpoints (untested)
- CertificateSigningRequest
- ConfigMap
- Secret
- Deployment
- Namespace
- Service
- NodeJS v20 or higher
- Docker Engine v25.0.3 or higher
It is also recommended you install kubectl, though it is not required
- Install NodeJS and Docker
- Install the project dependencies by running
npm i
- If you have your own MongDB instance, create a
.env
file and setDB_URL
to yourMongoDB
instance. If you do not have aMongoDB
instance, aMongoDB
instance will be spun up with Docker for you when you run the project (in the next step). - Run
npm start
(you may need to allow the start script to run by modifying the permissions ofstart.sh
(withchmod
) - Set your
kubectl
to use this project by runningkubectl config use-context /localhost:8080/admin
in your shell - Create Kubernetes resources with
kubectl
Upon running the project you can use the examples in examples/helloworld
or your own YAML to create resources.
Feel free to open an issue and/or make a PR if something is broken.
Licensed under the MIT License, full license is available in LICENSE.md