From 7e17237fec212166d766d9b7f00d4b7ff8b60c31 Mon Sep 17 00:00:00 2001 From: raffis Date: Thu, 21 Feb 2019 17:19:59 +0100 Subject: [PATCH 1/2] fixes #10 --- CHANGELOG.md | 9 +++- README.md | 46 +++++++++---------- src/config.ts | 119 +++++++++++++++++++++++++++++++++----------------- 3 files changed, 109 insertions(+), 65 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51bac79..8dfd15b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ +## 2.0.1 +**Maintainer**: Raffael Sahli \ +**Date**: Thu 21 Feb 2019 17:14:20 PM ET + +* [FIX] none string environment variables not parsed correctly into config #10 + + ## 2.0.0 **Maintainer**: Raffael Sahli \ -**Date**: Thur 14 Feb 2019 14:28:20 PM ET +**Date**: Thu 21 Feb 2019 14:28:20 PM ET * [FIX] Fixes "(node:25116) UnhandledPromiseRejectionWarning: TypeError: result is not iterable" due error response from icinga * [FIX] Better error handling and catching various uncaught promises diff --git a/README.md b/README.md index a89bbbf..f02f1f6 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ The kubernetes deployment can simply be added like this: ```sh kubectl -f https://raw.githubusercontent.com/gyselroth/kube-icinga/master/kube-icinga.yaml ``` -(Change the secret password and ICINGA_ADDRESS value accordingly) +(Change the secret password and KUBERNETES_ADDRESS value accordingly) >**Note**: kube-icinga will be created as single pod deployment in the kubernetes kube-system namespace. You may changes this behaviour. @@ -197,42 +197,42 @@ List of configurable values: |`icinga.apiPassword`|Icinga2 API password|`ICINGA_API_PASSWORD`|`admin`| |`cleanup`|If `true` all kubernetes objects get removed from icinga at startup|`CLEANUP`|`true`| |`kubernetes.nodes.discover`|Deploy kubernetes node objects|`KUBERNETES_NODES_DISCOVER`|`true`| -|`kubernetes.nodes.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`ICINGA_NODES_HOST_DEFINITION`|`{}`| -|`kubernetes.nodes.hostTemplates`|Specify a list of host templates|`ICINGA_NODES_HOST_TEMPLATES`|`['generic-host']`| +|`kubernetes.nodes.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`KUBERNETES_NODES_HOST_DEFINITION`|`{}`| +|`kubernetes.nodes.hostTemplates`|Specify a list of host templates (comma separated string if defined via env variable)|`KUBERNETES_NODES_HOST_TEMPLATES`|`['generic-host']`| |`kubernetes.ingresses.discover`|Deploy kubernetes ingress objects|`KUBERNETES_INGRESSES_DISCOVER`|`true`| |`kubernetes.ingresses.hostName`|The name of the icinga host object to attach services to (May also be null to enabled host object provisioning)|`KUBERNETES_INGRESSES_HOSTNAME`|`kubernetes-ingresses`| -|`kubernetes.ingresses.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`ICINGA_INGRESSES_SERVICE_DEFINITION`|'{}'| -|`kubernetes.ingresses.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`ICINGA_INGRESSES_SERVICE_DEFINITION`|`{}`| -|`kubernetes.ingresses.serviceTemplates`|Specify a list of icinga service templates|`ICINGA_INGRESSES_SERVICE_TEMPLATES`|`['generic-service']`| -|`kubernetes.ingresses.hostTemplates`|Specify a list of host templates|`ICINGA_INGRESSES_HOST_TEMPLATES`|`['generic-host']`| +|`kubernetes.ingresses.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`KUBERNETES_INGRESSES_SERVICE_DEFINITION`|'{}'| +|`kubernetes.ingresses.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`KUBERNETES_INGRESSES_SERVICE_DEFINITION`|`{}`| +|`kubernetes.ingresses.serviceTemplates`|Specify a list of icinga service templates (comma separated string if defined via env variable)|`KUBERNETES_INGRESSES_SERVICE_TEMPLATES`|`['generic-service']`| +|`kubernetes.ingresses.hostTemplates`|Specify a list of host templates (comma separated string if defined via env variable)|`KUBERNETES_INGRESSES_HOST_TEMPLATES`|`['generic-host']`| |`kubernetes.ingresses.applyServices`|Apply ingress paths as icinga services attached to the icinga ingress host|`KUBERNETES_INGRESSES_APPLYSERVICES`|`true`| |`kubernetes.ingresses.attachToNodes`|If `true` instead attaching port services to a dummy host object `metadata.name` all services get attached to each kubernetes worker node!|`KUBERNETES_INGRESSES_ATTACHTONODES`|`false`| |`kubernetes.volumes.discover`|Deploy kubernetes ingress objects|`KUBERNETES_VOLUMES_DISCOVER`|`true`| |`kubernetes.volumes.hostName`|The name of the icinga host object to attach services to (May also be null to enabled host object provisioning)|`KUBERNETES_VOLUMES_HOSTNAME`|`kubernetes-volumes`| -|`kubernetes.volumes.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`ICINGA_VOLUMES_SERVICE_DEFINITION`|'{}'| -|`kubernetes.volumes.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`ICINGA_VOLUMES_SERVICE_DEFINITION`|`{}`| -|`kubernetes.volumes.serviceTemplates`|Specify a list of icinga service templates|`ICINGA_VOLUMES_SERVICE_TEMPLATES`|`['generic-service']`| -|`kubernetes.volumes.hostTemplates`|Specify a list of host templates|`ICINGA_VOLUMES_HOST_TEMPLATES`|`['generic-host']`| +|`kubernetes.volumes.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`KUBERNETES_VOLUMES_SERVICE_DEFINITION`|'{}'| +|`kubernetes.volumes.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`KUBERNETES_VOLUMES_SERVICE_DEFINITION`|`{}`| +|`kubernetes.volumes.serviceTemplates`|Specify a list of icinga service templates (comma separated string if defined via env variable)|`KUBERNETES_VOLUMES_SERVICE_TEMPLATES`|`['generic-service']`| +|`kubernetes.volumes.hostTemplates`|Specify a list of host templates (comma separated string if defined via env variable)|`KUBERNETES_VOLUMES_HOST_TEMPLATES`|`['generic-host']`| |`kubernetes.volumes.applyServices`|Apply volumes as icinga services attached to a icinga host object|`KUBERNETES_VOLUMES_APPLYSERVICES`|`true`| |`kubernetes.volumes.attachToNodes`|If `true` instead attaching port services to a dummy host object `metadata.name` all services get attached to each kubernetes worker node!|`KUBERNETES_VOLUMES_ATTACHTONODES`|`false`| |`kubernetes.services.ClusterIP.discover`|Deploy kubernetes service objects|`KUBERNETES_SERVICES_CLUSTERIP_DISCOVER`|`false`| |`kubernetes.services.ClusterIP.hostName`|The name of the icinga host object to attach services to (May also be null to enabled host object provisioning)|`KUBERNETES_SERVICES_CLUSTERIP_HOSTNAME`|`kubernetes-clusterip-services`| -|`kubernetes.services.ClusterIP.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`ICINGA_SERVICES_CLUSTERIP_SERVICE_DEFINITION`|`{}`| -|`kubernetes.services.ClusterIP.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`ICINGA_SERVICES_CLUSTERIP_HOST_DEFINITION`|`{}`| -|`kubernetes.services.ClusterIP.serviceTemplates`|Specify a list of icinga service templates|`ICINGA_SERVICES_CLUSTERIP_SERVICE_TEMPLATES`|`['generic-service']`| -|`kubernetes.services.ClusterIP.hostTemplates`|Specify a list of host templates|`ICINGA_SERVICES_CLUSTERIP_HOST_TEMPLATES`|`['generic-host']`| +|`kubernetes.services.ClusterIP.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`KUBERNETES_SERVICES_CLUSTERIP_SERVICE_DEFINITION`|`{}`| +|`kubernetes.services.ClusterIP.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`KUBERNETES_SERVICES_CLUSTERIP_HOST_DEFINITION`|`{}`| +|`kubernetes.services.ClusterIP.serviceTemplates`|Specify a list of icinga service templates (comma separated string if defined via env variable)|`KUBERNETES_SERVICES_CLUSTERIP_SERVICE_TEMPLATES`|`['generic-service']`| +|`kubernetes.services.ClusterIP.hostTemplates`|Specify a list of host templates (comma separated string if defined via env variable)|`KUBERNETES_SERVICES_CLUSTERIP_HOST_TEMPLATES`|`['generic-host']`| |`kubernetes.services.ClusterIP.applyServices`|URI of LDAP server|`KUBERNETES_SERVICES_CLUSTERIP_APPLYSERVICES`|`true`| |`kubernetes.services.NodePort.discover`|Deploy kubernetes service objects|`KUBERNETES_SERVICES_NODEPORT_DISCOVER`|`true`| -|`kubernetes.services.NodePort.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`ICINGA_SERVICES_SERVICE_DEFINITION`|`{}`| -|`kubernetes.services.NodePort.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`ICINGA_SERVICES_NODEPORT_HOST_DEFINITION`|`{}`| -|`kubernetes.services.NodePort.serviceTemplates`|Specify a list of icinga service templates|`ICINGA_SERVICES_NODEPORT_SERVICE_TEMPLATES`|`['generic-service']`| -|`kubernetes.services.NodePort.hostTemplates`|Specify a list of host templates|`ICINGA_SERVICES_NODEPORT_HOST_TEMPLATES`|`['generic-host']`| +|`kubernetes.services.NodePort.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`KUBERNETES_SERVICES_SERVICE_DEFINITION`|`{}`| +|`kubernetes.services.NodePort.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`KUBERNETES_SERVICES_NODEPORT_HOST_DEFINITION`|`{}`| +|`kubernetes.services.NodePort.serviceTemplates`|Specify a list of icinga service templates (comma separated string if defined via env variable)|`KUBERNETES_SERVICES_NODEPORT_SERVICE_TEMPLATES`|`['generic-service']`| +|`kubernetes.services.NodePort.hostTemplates`|Specify a list of host templates (comma separated string if defined via env variable)|`KUBERNETES_SERVICES_NODEPORT_HOST_TEMPLATES`|`['generic-host']`| |`kubernetes.services.NodePort.applyServices`|URI of LDAP server|`KUBERNETES_SERVICES_NODEPORT_APPLYSERVICES`|`true`| |`kubernetes.services.NodePort.hostName`|The name of the icinga host object to attach services to (May also be null to enabled host object provisioning)|`KUBERNETES_SERVICES_NODEPORT_HOSTNAME`|`kubernetes-nodeport-services`| |`kubernetes.services.LoadBalancer.discover`|Deploy kubernetes service objects|`KUBERNETES_SERVICES_LOADBALANCER_DISCOVER`|`true`| |`kubernetes.services.LoadBalancer.hostName`|The name of the icinga host object to attach services to (May also be null to enabled host object provisioning)|`KUBERNETES_SERVICES_LOADBALANCER_HOSTNAME`|`kubernetes-loadbalancer-services`| -|`kubernetes.services.LoadBalancer.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`ICINGA_SERVICES_LOADBALANCER_SERVICE_DEFINITION`|`{}`| -|`kubernetes.services.LoadBalancer.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`ICINGA_SERVICES_LOADBALANCER_HOST_DEFINITION`|`{}`| -|`kubernetes.services.LoadBalancer.serviceTemplates`|Specify a list of icinga service templates|`ICINGA_SERVICES_LOADBALANCER_SERVICE_TEMPLATES`|`['generic-service']`| -|`kubernetes.services.LoadBalancer.hostTemplates`|Specify a list of host templates|`ICINGA_SERVICES_LOADBALANCER_HOST_TEMPLATES`|`['generic-host']`| +|`kubernetes.services.LoadBalancer.serviceDefinition`|You may overwrite specific attributes of the icinga [service definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#service). |`KUBERNETES_SERVICES_LOADBALANCER_SERVICE_DEFINITION`|`{}`| +|`kubernetes.services.LoadBalancer.hostDefinition`|You may overwrite specific attributes of the icinga [host definiton](https://www.icinga.com/docs/icinga2/latest/doc/09-object-types/#host).|`KUBERNETES_SERVICES_LOADBALANCER_HOST_DEFINITION`|`{}`| +|`kubernetes.services.LoadBalancer.serviceTemplates`|Specify a list of icinga service templates (comma separated string if defined via env variable)|`KUBERNETES_SERVICES_LOADBALANCER_SERVICE_TEMPLATES`|`['generic-service']`| +|`kubernetes.services.LoadBalancer.hostTemplates`|Specify a list of host templates (comma separated string if defined via env variable)|`KUBERNETES_SERVICES_LOADBALANCER_HOST_TEMPLATES`|`['generic-host']`| |`kubernetes.services.LoadBalancer.applyServices`|URI of LDAP server|`KUBERNETES_SERVICES_LOADBALANCER_APPLYSERVICES`|`true`| diff --git a/src/config.ts b/src/config.ts index 41a5a94..e16ff66 100644 --- a/src/config.ts +++ b/src/config.ts @@ -7,11 +7,48 @@ try { defaultConfig = {}; } +/** + * Decode json + */ +function jsonParse(name: string, value) { + if (process.env[name]) { + return JSON.parse(process.env[name]); + } + + return value; +} + +/** + * Comma separated string to array + */ +function split(name: string, value) { + if (process.env[name]) { + return process.env[name].split(','); + } + + return value; +} + +/** + * Parse env string + */ +function stringParse(name: string, value) { + if (process.env[name]) { + if (process.env[name] == '') { + return null; + } + + return process.env[name]; + } + + return value; +} + const config = { log: { level: process.env.LOG_LEVEL || defaultConfig.log.level, }, - cleanup: process.env.CLEANUP || defaultConfig.cleanup, + cleanup: jsonParse('CLEANUP', defaultConfig.cleanup), icinga: { address: process.env.ICINGA_ADDRESS || defaultConfig.icinga.address, port: process.env.ICINGA_PORT || defaultConfig.icinga.port, @@ -20,57 +57,57 @@ const config = { }, kubernetes: { nodes: { - discover: process.env.KUBERNETES_NODES_DISCOVER || defaultConfig.kubernetes.nodes.discover, - hostDefinition: process.env.KUBERNETES_NODES_HOST_DEFINITION || defaultConfig.kubernetes.nodes.hostDefinition, - hostTemplates: process.env.KUBERNETES_NODES_HOST_TEMPLATES || defaultConfig.kubernetes.nodes.hostTemplates, + discover: jsonParse('KUBERNETES_NODES_DISCOVER', defaultConfig.kubernetes.nodes.discover), + hostDefinition: jsonParse('KUBERNETES_NODES_HOST_DEFINITION', defaultConfig.kubernetes.nodes.hostDefinition), + hostTemplates: jsonParse('KUBERNETES_NODES_HOST_TEMPLATES', defaultConfig.kubernetes.nodes.hostTemplates), }, ingresses: { - discover: process.env.KUBERNETES_INGRESSES_DISCOVER || defaultConfig.kubernetes.ingresses.discover, - hostName: process.env.KUBERNETES_INGRESSES_HOSTNAME || defaultConfig.kubernetes.ingresses.hostName, - applyServices: process.env.KUBERNETES_INGRESSES_APPLYSERVICES || defaultConfig.kubernetes.ingresses.applyServices, - serviceDefinition: process.env.KUBERNETES_INGRESSES_SERVICE_DEFINITION || defaultConfig.kubernetes.ingresses.serviceDefinition, - hostDefinition: process.env.KUBERNETES_INGRESSES_HOST_DEFINITION || defaultConfig.kubernetes.ingresses.hostDefinition, - serviceTemplates: process.env.KUBERNETES_INGRESSES_SERVICE_TEMPLATES || defaultConfig.kubernetes.ingresses.serviceTemplates, - hostTemplates: process.env.KUBERNETES_INGRESSES_HOST_TEMPLATES || defaultConfig.kubernetes.ingresses.hostTemplates, - attachToNodes: process.env.KUBERNETES_INGRESSES_ATTACHTONODES || defaultConfig.kubernetes.ingresses.attachToNodes, + discover: jsonParse('KUBERNETES_INGRESSES_DISCOVER', defaultConfig.kubernetes.ingresses.discover), + hostName: stringParse('KUBERNETES_INGRESSES_HOSTNAME', defaultConfig.kubernetes.ingresses.hostName), + applyServices: jsonParse('KUBERNETES_INGRESSES_APPLYSERVICES', defaultConfig.kubernetes.ingresses.applyServices), + serviceDefinition: jsonParse('KUBERNETES_INGRESSES_SERVICE_DEFINITION', defaultConfig.kubernetes.ingresses.serviceDefinition), + hostDefinition: jsonParse('KUBERNETES_INGRESSES_HOST_DEFINITION', defaultConfig.kubernetes.ingresses.hostDefinition), + serviceTemplates: split('KUBERNETES_INGRESSES_SERVICE_TEMPLATES', defaultConfig.kubernetes.ingresses.serviceTemplates), + hostTemplates: split('KUBERNETES_INGRESSES_HOST_TEMPLATES', defaultConfig.kubernetes.ingresses.hostTemplates), + attachToNodes: jsonParse('KUBERNETES_INGRESSES_ATTACHTONODES', defaultConfig.kubernetes.ingresses.attachToNodes), }, volumes: { - discover: process.env.KUBERNETES_VOLUMES_DISCOVER || defaultConfig.kubernetes.volumes.discover, - hostName: process.env.KUBERNETES_VOLUMES_HOSTNAME || defaultConfig.kubernetes.volumes.hostName, - applyServices: process.env.KUBERNETES_VOLUMES_APPLYSERVICES || defaultConfig.kubernetes.volumes.applyServices, - serviceDefinition: process.env.KUBERNETES_VOLUMES_SERVICE_DEFINITION || defaultConfig.kubernetes.volumes.serviceDefinition, - hostDefinition: process.env.KUBERNETES_VOLUMES_HOST_DEFINITION || defaultConfig.kubernetes.volumes.hostDefinition, - serviceTemplates: process.env.KUBERNETES_VOLUMES_SERVICE_TEMPLATES || defaultConfig.kubernetes.volumes.serviceTemplates, - hostTemplates: process.env.KUBERNETES_VOLUMES_HOST_TEMPLATES || defaultConfig.kubernetes.volumes.hostTemplates, - attachToNodes: process.env.KUBERNETES_VOLUMES_ATTACHTONODES || defaultConfig.kubernetes.volumes.attachToNodes, + discover: jsonParse('KUBERNETES_VOLUMES_DISCOVER', defaultConfig.kubernetes.volumes.discover), + hostName: stringParse('KUBERNETES_VOLUMES_HOSTNAME', defaultConfig.kubernetes.volumes.hostName), + applyServices: jsonParse('KUBERNETES_VOLUMES_APPLYSERVICES', defaultConfig.kubernetes.volumes.applyServices), + serviceDefinition: jsonParse('KUBERNETES_VOLUMES_SERVICE_DEFINITION', defaultConfig.kubernetes.volumes.serviceDefinition), + hostDefinition: jsonParse('KUBERNETES_VOLUMES_HOST_DEFINITION', defaultConfig.kubernetes.volumes.hostDefinition), + serviceTemplates: split('KUBERNETES_VOLUMES_SERVICE_TEMPLATES', defaultConfig.kubernetes.volumes.serviceTemplates), + hostTemplates: split('KUBERNETES_VOLUMES_HOST_TEMPLATES', defaultConfig.kubernetes.volumes.hostTemplates), + attachToNodes: jsonParse('KUBERNETES_VOLUMES_ATTACHTONODES', defaultConfig.kubernetes.volumes.attachToNodes), }, services: { ClusterIP: { - discover: process.env.KUBERNETES_SERVICES_CLUSTERIP_DISCOVER || defaultConfig.kubernetes.services.ClusterIP.discover, - hostName: process.env.KUBERNETES_SERVICES_CLUSTERIP_HOSTNAME || defaultConfig.kubernetes.services.ClusterIP.hostName, - applyServices: process.env.KUBERNETES_SERVICES_CLUSTERIP_APPLYSERVICES || defaultConfig.kubernetes.services.ClusterIP.applyServices, - serviceDefinition: process.env.KUBERNETES_SERVICES_CLUSTERIP_SERVICE_DEFINITION || defaultConfig.kubernetes.services.ClusterIP.serviceDefinition, - hostDefinition: process.env.KUBERNETES_SERVICES_CLUSTERIP_HOST_DEFINITION || defaultConfig.kubernetes.services.ClusterIP.hostDefinition, - serviceTemplates: process.env.KUBERNETES_SERVICES_CLUSTERIP_SERVICE_TEMPLATES || defaultConfig.kubernetes.services.ClusterIP.serviceTemplates, - hostTemplates: process.env.KUBERNETES_SERVICES_CLUSTERIP_HOST_TEMPLATES || defaultConfig.kubernetes.services.ClusterIP.hostTemplates, + discover: jsonParse('KUBERNETES_SERVICES_CLUSTERIP_DISCOVER', defaultConfig.kubernetes.services.ClusterIP.discover), + hostName: stringParse('KUBERNETES_SERVICES_CLUSTERIP_HOSTNAME', defaultConfig.kubernetes.services.ClusterIP.hostName), + applyServices: jsonParse('KUBERNETES_SERVICES_CLUSTERIP_APPLYSERVICES', defaultConfig.kubernetes.services.ClusterIP.applyServices), + serviceDefinition: jsonParse('KUBERNETES_SERVICES_CLUSTERIP_SERVICE_DEFINITION', defaultConfig.kubernetes.services.ClusterIP.serviceDefinition), + hostDefinition: jsonParse('KUBERNETES_SERVICES_CLUSTERIP_HOST_DEFINITION', defaultConfig.kubernetes.services.ClusterIP.hostDefinition), + serviceTemplates: split('KUBERNETES_SERVICES_CLUSTERIP_SERVICE_TEMPLATES', defaultConfig.kubernetes.services.ClusterIP.serviceTemplates), + hostTemplates: split('KUBERNETES_SERVICES_CLUSTERIP_HOST_TEMPLATES', defaultConfig.kubernetes.services.ClusterIP.hostTemplates), }, NodePort: { - discover: process.env.KUBERNETES_SERVICES_NODEPORT_DISCOVER || defaultConfig.kubernetes.services.NodePort.discover, - hostName: process.env.KUBERNETES_SERVICES_NODEPORT_HOSTNAME || defaultConfig.kubernetes.services.NodePort.hostName, - applyServices: process.env.KUBERNETES_SERVICES_NODEPORT_APPLYSERVICES || defaultConfig.kubernetes.services.NodePort.applyServices, - serviceDefinition: process.env.KUBERNETES_SERVICES_NODEPORT_SERVICE_DEFINITION || defaultConfig.kubernetes.services.NodePort.serviceDefinition, - hostDefinition: process.env.KUBERNETES_SERVICES_NODEPORT_HOST_DEFINITION || defaultConfig.kubernetes.services.NodePort.hostDefinition, - serviceTemplates: process.env.KUBERNETES_SERVICES_NODEPORT_SERVICE_TEMPLATES || defaultConfig.kubernetes.services.NodePort.serviceTemplates, - hostTemplates: process.env.KUBERNETES_SERVICES_NODEPORT_HOST_TEMPLATES || defaultConfig.kubernetes.services.NodePort.hostTemplates, + discover: jsonParse('KUBERNETES_SERVICES_NODEPORT_DISCOVER', defaultConfig.kubernetes.services.NodePort.discover), + hostName: jsonParse('KUBERNETES_SERVICES_NODEPORT_HOSTNAME', defaultConfig.kubernetes.services.NodePort.hostName), + applyServices: jsonParse('KUBERNETES_SERVICES_NODEPORT_APPLYSERVICES', defaultConfig.kubernetes.services.NodePort.applyServices), + serviceDefinition: jsonParse('KUBERNETES_SERVICES_NODEPORT_SERVICE_DEFINITION', defaultConfig.kubernetes.services.NodePort.serviceDefinition), + hostDefinition: jsonParse('KUBERNETES_SERVICES_NODEPORT_HOST_DEFINITION', defaultConfig.kubernetes.services.NodePort.hostDefinition), + serviceTemplates: split('KUBERNETES_SERVICES_NODEPORT_SERVICE_TEMPLATES', defaultConfig.kubernetes.services.NodePort.serviceTemplates), + hostTemplates: split('KUBERNETES_SERVICES_NODEPORT_HOST_TEMPLATES', defaultConfig.kubernetes.services.NodePort.hostTemplates), }, LoadBalancer: { - discover: process.env.KUBERNETES_SERVICES_LOADBALANCER_DISCOVER || defaultConfig.kubernetes.services.LoadBalancer.discover, - hostName: process.env.KUBERNETES_SERVICES_LOADBALANCER_HOSTNAME || defaultConfig.kubernetes.services.LoadBalancer.hostName, - applyServices: process.env.KUBERNETES_SERVICES_LOADBALANCER_APPLYSERVICES || defaultConfig.kubernetes.services.LoadBalancer.applyServices, - serviceDefinition: process.env.KUBERNETES_SERVICES_LOADBALANCER_SERVICE_DEFINITION || defaultConfig.kubernetes.services.LoadBalancer.serviceDefinition, - hostDefinition: process.env.KUBERNETES_SERVICES_LOADBALANCER_HOST_DEFINITION || defaultConfig.kubernetes.services.LoadBalancer.hostDefinition, - serviceTemplates: process.env.KUBERNETES_SERVICES_LOADBALANCER_SERVICE_TEMPLATES || defaultConfig.kubernetes.services.LoadBalancer.serviceTemplates, - hostTemplates: process.env.KUBERNETES_SERVICES_LOADBALANCER_HOST_TEMPLATES || defaultConfig.kubernetes.services.LoadBalancer.hostTemplates, + discover: jsonParse('KUBERNETES_SERVICES_LOADBALANCER_DISCOVER', defaultConfig.kubernetes.services.LoadBalancer.discover), + hostName: stringParse('KUBERNETES_SERVICES_LOADBALANCER_HOSTNAME', defaultConfig.kubernetes.services.LoadBalancer.hostName), + applyServices: jsonParse('KUBERNETES_SERVICES_LOADBALANCER_APPLYSERVICES', defaultConfig.kubernetes.services.LoadBalancer.applyServices), + serviceDefinition: jsonParse('KUBERNETES_SERVICES_LOADBALANCER_SERVICE_DEFINITION', defaultConfig.kubernetes.services.LoadBalancer.serviceDefinition), + hostDefinition: jsonParse('KUBERNETES_SERVICES_LOADBALANCER_HOST_DEFINITION', defaultConfig.kubernetes.services.LoadBalancer.hostDefinition), + serviceTemplates: split('KUBERNETES_SERVICES_LOADBALANCER_SERVICE_TEMPLATES', defaultConfig.kubernetes.services.LoadBalancer.serviceTemplates), + hostTemplates: split('KUBERNETES_SERVICES_LOADBALANCER_HOST_TEMPLATES', defaultConfig.kubernetes.services.LoadBalancer.hostTemplates), }, }, }, From 834d21a9ea1516c3e49932b0810f7a6a9bb9a2cb Mon Sep 17 00:00:00 2001 From: raffis Date: Fri, 22 Feb 2019 09:08:14 +0100 Subject: [PATCH 2/2] readme fixes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f02f1f6..87a78f2 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ The kubernetes deployment can simply be added like this: ```sh kubectl -f https://raw.githubusercontent.com/gyselroth/kube-icinga/master/kube-icinga.yaml ``` -(Change the secret password and KUBERNETES_ADDRESS value accordingly) +(Change the secret password and ICINGA_ADDRESS value accordingly) >**Note**: kube-icinga will be created as single pod deployment in the kubernetes kube-system namespace. You may changes this behaviour.