k8sinclient

A small client to manage jobs inside Kubernetes clusters easily as pc processes

Usage no npm install needed!

<script type="module">
  import k8sinclient from 'https://cdn.skypack.dev/k8sinclient';
</script>

README

Kubernetes In-Cluster Client

Dedicated in-cluster client for object management

Maintenance HitCount HitCount npm

Using k8sInClient you get ready to create, kill and search for resources in your cluster like processes inside a PC.

GETTING STARTED

Before install please install docker and kubernetes.

Prerequisites

  • nodejs 12.x +
  • docker
  • kubernetes

Installing

npm install k8sinclient --save

Testing

This project uses Mocha-Chai combination in /test folder

npm test

EXAMPLES

Inserting a job

const Client = require('k8sinclient')
const { Job } = require('../')
const job = new Job()

const jobYaml = {
    "apiVersion": "batch/v1",
    "kind": "Job",
    "metadata": {
        "name": "pi-with-ttl"
    },
    "spec": {
        "ttlSecondsAfterFinished": 10,
        "template": {
            "spec": {
                "containers": [{
                    "name": "pi",
                    "image": "perl",
                    "command": [
                        "perl",
                        "-Mbignum=bpi",
                        "-wle",
                        "print bpi(2000)"
                    ]
                }],
                "restartPolicy": "Never"
            }
        }
    }
}

job.create('default', jobYaml, (res) => console.log(res.body.metadata))

To get a job

const Client = require('k8sinclient')
const client = new Client()
  
job.read('default', 'pi-with-ttl', (res) => console.log(res.body))

To delete a job

const Client = require('k8sinclient')
const client = new Client()
  
job.delete('namespace', 'job', (res) => console.log(res.body))

NOTE: For other resources, just use <object>.<action>

Where implemented object is instantiated of:

  1. Job()
  2. CronJob()
  3. Deployment()

And implemented action is

  1. create (message, callback)
  2. read (message, callback)
  3. delete (message, callback)

Running

npm start

Release History

  • 0.0.1
    • CHANGE: Work in progress
  • 0.1.1
    • ADD: Cronjob and deployment objects
  • 0.1.2
    • ADD: PVs and PV claims
  • 0.1.5
    • UPDATE: security faults

Authors

  • GH3S - Initial work - gh3s@protonmail.ch

License

This project is licensed under the MIT License - see the LICENSE file for details

Contributing

  1. Fork it (https://github.com/gh3s/k8sinclient/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request