Skip to content

Commit

Permalink
v1.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
raffis committed Jun 1, 2018
1 parent 34a3fe5 commit 7210ecb
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 7 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.0.1
**Maintainer**: Raffael Sahli <[email protected]>\
**Date**: Fri 01 Jun 2018 01:18:20 PM CEST

* [FIX] fixed protocol (service ports.protocol) lowercase
* [CHANGE] config logger.level => log.level
* [FIX] catch error objects from kube watchers

## 1.0.0
**Maintainer**: Raffael Sahli <[email protected]>\
**Date**: Thu May 24 14:52:11 CEST 2018
Expand Down
7 changes: 6 additions & 1 deletion src/kube/ingress.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,11 @@ export default class Ingress {
this.jsonStream.on('data', async (object) => {
this.logger.debug('received kubernetes ingress', {object});

if(object.object.kind !== 'Ingress') {
this.logger.error('skip invalid ingress object', {object: object});
return;
}

if (object.type == 'MODIFIED' || object.type == 'DELETED') {
await this.icinga.deleteHost(object.object.metadata.name);
}
Expand All @@ -128,7 +133,7 @@ export default class Ingress {
this.kubeListener();
});
} catch (err) {
this.logger.emerg('failed start ingresses listener', {error: err});
this.logger.error('failed start ingresses listener', {error: err});
}
}
}
4 changes: 4 additions & 0 deletions src/kube/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ export default class Node {
}

this.logger.debug('received kubernetes host', {object});
if(object.object.kind !== 'Node') {
this.logger.error('skip invalid node object', {object: object});
return;
}

if (object.type == 'DELETED') {
await this.icinga.deleteHost(object.object.metadata.name);
Expand Down
15 changes: 11 additions & 4 deletions src/kube/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,16 +124,17 @@ export default class Service {
}

if (!service) {
let name = servicePort.name || servicePort.protocol+':'+servicePort.port;
let protocol = servicePort.protocol.toLowerCase();
let name = servicePort.name || protocol+':'+servicePort.port;
service = {
'check_command': servicePort.protocol.toLowerCase(),
'check_command': servicePort.protocol,
'display_name': name.toLowerCase(),
'vars._kubernetes': true,
'vars.kubernetes': definition,
'groups': [definition.metadata.namespace],
};

service['vars.'+servicePort.protocol+'_port'] = servicePort.nodePort || servicePort.port;
service['vars.'+protocol+'_port'] = servicePort.nodePort || servicePort.port;
}

Object.assign(service, options.serviceDefinition);
Expand All @@ -152,7 +153,13 @@ export default class Service {
this.jsonStream.on('data', async (object) => {
this.logger.debug('received kubernetes service', {object});

if(object.object.kind !== 'Service') {
this.logger.error('skip invalid service object', {object: object});
return;
}

if (!this.options[object.object.spec.type].discover) {
this.logger.debug('skip service object, since ['+object.object.spec.type+'] is not enabled for discovery', {object: object});
return;
}

Expand All @@ -169,7 +176,7 @@ export default class Service {
this.kubeListener();
});
} catch (err) {
this.logger.emerg('failed start services listener', {error: err});
this.logger.error('failed start services listener', {error: err});
}
}
}
4 changes: 2 additions & 2 deletions tests/kube/ingress.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import Ingress from '../../src/kube/ingress';
import Node from '../../src/kube/node';
import Icinga from '../../src/icinga';
import {LoggerInstance} from 'winston';
import JSONStream from 'json-stream';
import * as JSONStream from 'json-stream';
const KubeApi = require('kubernetes-client').Client;
jest.mock('../../src/icinga');
jest.mock('../../src/kube/node');
jest.mock('json-stream');
jest.mock(KubeApi.Client);
jest.mock('kubernetes-client');

const fixture = {
"apiVersion": "extensions/v1beta1",
Expand Down

0 comments on commit 7210ecb

Please sign in to comment.