I am creating a Kubernetes Job within NodeJS class After importing the library @kubernetes/client-node
, I created an object to use the module BatchV1Api
inside the function which I am exporting to other class in which I have defined the body of the Kubernetes job like this:
//listJobs.js
import { post } from '../kubeClient.js';
const kubeRoute = async (ctx) => {
const newJob = {
metadata: {
name: 'countdown',
},
spec: {
template: {
metadata: {
name: 'countdown',
},
},
spec: {
containers: [
{
name: 'counter',
image: 'centos:7',
command: 'bin/bash, -c, for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done',
}],
restartPolicy: 'Never',
},
},
};
const kubeClient = post();
kubeClient.createNamespacedJob('default', newJob);
ctx.body = {
// listConfigMap: (await kubeClient.listConfigMapForAllNamespaces()).body,
listJobs: (await kubeClient.listJobForAllNamespaces()).body,
// listService: (await kubeClient.listServiceForAllNamespaces()).body,
};
};
export default kubeRoute;
Then I created a router class to request the post method like:
import post from './listJobs.js';
const apiRouter = new Router();
apiRouter.post('/api/v1/newJob', post);
when executing the application and requesting the route localhost:3000/api/v1/newJob
as a post request in postman, it is showing status code 422
(with some very long output, as in the screenshot) in the vs code terminal and some Kubernetes information in postman body, but it is not creating any job or pod.
Does anyone have any idea, why there is 422
code at the end?