diff --git a/Kubernetes/KubernetesCluster/package/Classes/KubernetesMinionNode.yaml b/Kubernetes/KubernetesCluster/package/Classes/KubernetesMinionNode.yaml index b617026..bf62bb6 100644 --- a/Kubernetes/KubernetesCluster/package/Classes/KubernetesMinionNode.yaml +++ b/Kubernetes/KubernetesCluster/package/Classes/KubernetesMinionNode.yaml @@ -99,6 +99,10 @@ Methods: _registerNode: Body: + - $resources: new(sys:Resources) + - $template: $resources.yaml('GetNodeCapabilities.template') + - $capacity: $.instance.agent.call($template, $resources) + - $nodeDefinition: kind: Node apiVersion: v1beta3 @@ -109,11 +113,8 @@ Methods: spec: externalID: $.id() status: - capacity: - cpu: 200 - memory: 4145438720 + capacity: $capacity - - $resources: new(sys:Resources) - $template: $resources.yaml('KubeRegisterNode.template').bind(dict( nodeDefinition => $nodeDefinition )) diff --git a/Kubernetes/KubernetesCluster/package/Resources/GetNodeCapabilities.template b/Kubernetes/KubernetesCluster/package/Resources/GetNodeCapabilities.template new file mode 100644 index 0000000..02309b6 --- /dev/null +++ b/Kubernetes/KubernetesCluster/package/Resources/GetNodeCapabilities.template @@ -0,0 +1,38 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +FormatVersion: 2.0.0 +Version: 1.0.0 +Name: Get Node capabilities + +Body: | + return { + 'cpu': int(getCpuCoresCount().stdout) * 100, + 'memory': int(getMemoryBytes().stdout) + } + +Scripts: + getCpuCoresCount: + Type: Application + Version: 1.0.0 + EntryPoint: getCpuCoresCount.sh + Options: + captureStdout: true + captureStderr: true + + getMemoryBytes: + Type: Application + Version: 1.0.0 + EntryPoint: getMemoryBytes.sh + Options: + captureStdout: true + captureStderr: true diff --git a/Kubernetes/KubernetesCluster/package/Resources/scripts/getCpuCoresCount.sh b/Kubernetes/KubernetesCluster/package/Resources/scripts/getCpuCoresCount.sh new file mode 100644 index 0000000..4bfb0a3 --- /dev/null +++ b/Kubernetes/KubernetesCluster/package/Resources/scripts/getCpuCoresCount.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +nproc \ No newline at end of file diff --git a/Kubernetes/KubernetesCluster/package/Resources/scripts/getMemoryBytes.sh b/Kubernetes/KubernetesCluster/package/Resources/scripts/getMemoryBytes.sh new file mode 100644 index 0000000..3092303 --- /dev/null +++ b/Kubernetes/KubernetesCluster/package/Resources/scripts/getMemoryBytes.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +vmstat -s -SB | head -n1 | grep "[0-9]*" -o \ No newline at end of file