https://github.com/mcasimir/kubernetes-resource-controller
Api to build kubernetes resource controllers and operators. Features: auto config, registering of custom resources, validation, reconnect.
https://github.com/mcasimir/kubernetes-resource-controller
Last synced: 2 months ago
JSON representation
Api to build kubernetes resource controllers and operators. Features: auto config, registering of custom resources, validation, reconnect.
- Host: GitHub
- URL: https://github.com/mcasimir/kubernetes-resource-controller
- Owner: mcasimir
- Created: 2018-01-21T22:28:00.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-01-22T11:05:24.000Z (over 7 years ago)
- Last Synced: 2025-01-28T03:17:37.930Z (4 months ago)
- Language: JavaScript
- Size: 141 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kubernetes Api Client for Node.js
## Install
```
npm install --save kubernetes-resource-controller
```## Usage
### Standard resources
``` js
const KubernetesController = require('kubernetes-resource-controller');class RegsecretCreator extends KubernetesController {
constructor(options) {
super('v1/namespaces', options);
}async added(metadata, spec) {
try {
await this.api.post(`v1/secrets`, {
metadata: {
name: 'regsecret',
namespace: metadata.name
},
type: 'kubernetes.io/dockercfg',
data: '... base64Data ...'
});
} catch (e) {
if (e.statusCode !== 409) {
throw e;
}
}
}
}controller.run()
.catch(function(err) {
console.error(err);
process.exit(1);
});
```### Custom resources
``` js
const KubernetesController = require('kubernetes-resource-controller');class CustomResourceController extends KubernetesController {
constructor(options = {}) {
super(
'my.api.com/v1/something',
Object.assign(options, {
resourceDefinitionPath: 'something.yaml'
})
);
}async added(metadata, spec) {
// ...
}async modified(metadata, spec) {
// ...
}async deleted(metadata, spec) {
// ...
}
}
```## Getting Started