Skip to content
This repository has been archived by the owner on Aug 27, 2020. It is now read-only.

Rainist/k8s-ops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k8s-ops

Collective useful k8s ops features built on top of awesome kubernetes-client

Installation

Install via npm:

$ npm i k8s-ops --save

Example

const { Apis, K8SAuthType, Features, DeploymentStatusType, Transformers } = require('k8s-ops')
const { 
  hpa: HPA,
  pod: Pod,
  deploy: Deploy,
  service: Service
} = Features

const namespace = 'kube-system'

const apis = Apis(K8SAuthType.FromKubeconfig, namespace)
const hpa = HPA(apis, 'your-hpa')

hpa.scale({ minReplicas: 5, maxReplicas: 9 }) // Scale HPA with given min/max replicas
  .then(() => hpa.assertScale({ minReplicas: 5, maxReplicas: 9 })) // check if scale is set correctly
  .then(console.log)

const deploy = Deploy(apis, 'heapster')

deploy.assertStatus(DeploymentStatusType.AsDesired) // check if all pods are all up-to-date and available
  .then(console.log)

deploy.pods(Transformers.pod.readyAt) //Using optional transformer to get more consize data and you can implement your own
  .then(console.log)

const pod = Pod(apis, 'your-pod-755b9c7968-r889w')

pod.terminate().then(console.log)

pod.res.get().then(console.log) // use kubernetes-client's objects' feature directly by accessing .res

const service = Service(apis, 'your-service')

service.res.get().then(console.log) // use kubernetes-client's objects' feature directly by accessing .res