UNPKG

openshift-rest-client

Version:
92 lines (57 loc) 3.74 kB
[![Build Status](https://travis-ci.org/nodeshift/openshift-rest-client.svg?branch=master)](https://travis-ci.org/nodeshift/openshift-rest-client) [![Coverage Status](https://coveralls.io/repos/github/nodeshift/openshift-rest-client/badge.svg?branch=master)](https://coveralls.io/github/nodeshift/openshift-rest-client?branch=master) ### Openshift Client [![Greenkeeper badge](https://badges.greenkeeper.io/nodeshift/openshift-rest-client.svg)](https://greenkeeper.io/) Node.js based client for the Openshift REST API, not unlike the Fabric8 Maven Plugin, but for node clients/builds. ### Basic Usage `npm install --save openshift-rest-client` Code: const openshiftRestClient = require('openshift-rest-client').OpenshiftClient; openshiftRestClient().then((client) => { // Use the client object to find a list of projects, for example client.apis['project.openshift.io'].v1.projects.get().then((response) => { console.log(response.body); }); }); The openshift-rest-client translates Path Item Objects \[[1]\] (*e.g*., `/apis/project.openshift.io/v1/projects`) to object chains ending in HTTP methods (*e.g.*, `apis['project.openshift.io'].v1.projects.get`). So, to fetch all Projects: ```js const projects = await client.apis['project.openshift.io'].v1.projects.get() ``` The openshift-rest-client translates Path Templating \[[2]\] (*e.g.*, `/apis/build.openshift.io/v1/namespaces/$NAMESPACE/buildconfigs`) to function calls (*e.g.*, `apis['build.openshift.io'].v1.namespaces('default').buildconfigs`). So, to create a new Build Config in the default Namespace: ```js const buildConfig = require('./build-config.json') const create = await client.apis['build.openshift.io'].v1.namespaces('default').buildconfigs.post({ body: buildConfig }) ``` and then fetch your newly created Build Config: ```js const deployment = await client.apis['build.openshift.io'].v1.namespaces('default').buildconfigs(buildConfig.metadata.name).get() ``` and finally, remove the Build Config: ```js await client.apis['build.openshift.io'].v1.namespaces('default').buildconfigs(buildConfig.metadata.name).delete() ``` The openshift-rest-client supports `.delete`, `.get`, `.patch`, `.post`, and `.put`. There are also aliases defined, so instead of writing `client.apis['build.openshift.io']`, you can just use `client.apis.build` for example. The list of aliases can be seen here: https://github.com/nodeshift/openshift-rest-client/blob/master/lib/openshift-rest-client.js ### Advanced Usage By default, the openshift-rest-client will use the [kubernetes-client](https://www.npmjs.com/package/kubernetes-client) module to get your configuration. The openshift-rest-client exposes the config module from the kubernetes client for ease of use. For example, if you want to provide a different path to your configuration, you can do something like this: const openshiftRestClient = require('openshift-rest-client').OpenshiftClient; const config = require('openshift-rest-client').config; const path '~/some/path/config'; const customConfig = config.fromKubeconfig(path); openshiftRestClient({config: customConfig}).then((client) => { // Use the client object to find a list of projects, for example client.apis['project.openshift.io'].v1.project.get().then((response) => { console.log(response.body); }); }); To see more examples of how to customize your config, check out the [kubernetes-client Initializing section](https://www.npmjs.com/package/kubernetes-client#initializing) #### Changes in 2.0 The client has been totally rewritten for the 2.0 release. This includes a new, more fluent, API. The old API will live in the 1.x branch.