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
.envfile and setDB_URLto yourMongoDBinstance. If you do not have aMongoDBinstance, aMongoDBinstance 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
kubectlto use this project by runningkubectl config use-context /localhost:8080/adminin 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