diff options
author | Renu Kumari <renu.kumari@bell.ca> | 2021-09-16 15:36:23 -0400 |
---|---|---|
committer | Renu Kumari <renu.kumari@bell.ca> | 2021-09-23 22:17:54 -0400 |
commit | bcacd7748bd62a84a33cd4e8324fee0c19323374 (patch) | |
tree | 46611b54e608eb3d34e363ab0c834dce0f2c625c /kubernetes/cps/components | |
parent | 6e7db9c8de14f16087c14dc8992b8611d0442b39 (diff) |
[CPS] Fix issues in the ncmp-dmi-plugin charts
- added serviceMonitor and removed annotation for prometheus scraping
- changed readiness dependency from core-db to core app
- removed unused environment variables
- make cps-core and sdnc url configurable
- Added rolling restart in ncmp-dmi-plugin
Issue-ID: CPS-669
Signed-off-by: Renu Kumari <renu.kumari@bell.ca>
Change-Id: Ia4c3ccdac32a97d75b98ce4cbadaf74c5493f06c
Diffstat (limited to 'kubernetes/cps/components')
6 files changed, 77 insertions, 109 deletions
diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/application-helm.yml b/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/application-helm.yml index d388823f9e..2e5018807c 100644 --- a/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/application-helm.yml +++ b/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/application-helm.yml @@ -18,19 +18,19 @@ # ============LICENSE_END========================================================= */}} -server: - port: 8080 +dmi: + service: + name: {{ .Values.config.dmiServiceName }} cps-core: - baseUrl: http://${CPS_CORE_HOST:cps}:${CPS_CORE_PORT:8080} - dmiRegistrationUrl : /cps-ncmp/api/ncmp-dmi/v1/ch + baseUrl: {{ .Values.config.cpsCore.url }} auth: username: ${CPS_CORE_USERNAME} password: ${CPS_CORE_PASSWORD} sdnc: - baseUrl: http://${SDNC_HOST:sdnc}:${SDNC_PORT:8181} - topologyId: ${SDNC_TOPOLOGY_ID:topology-netconf} + baseUrl: {{ .Values.config.sdnc.url }} + topologyId: {{ .Values.config.sdnc.topologyId }} auth: username: ${SDNC_USERNAME} password: ${SDNC_PASSWORD} diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/logback.xml b/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/logback.xml deleted file mode 100644 index 2a62c86e77..0000000000 --- a/kubernetes/cps/components/ncmp-dmi-plugin/resources/config/logback.xml +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - ============LICENSE_START======================================================= - Copyright (C) 2021 Nordix Foundation - ================================================================================ - 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. - SPDX-License-Identifier: Apache-2.0 - ============LICENSE_END========================================================= ---> - -<configuration scan="true" scanPeriod="30 seconds" debug="false"> - - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>%d - %highlight(%-5level) [%-20.20thread] %cyan(%logger{36}) - %msg%n</pattern> - </encoder> - </appender> - <appender name="AsyncSysOut" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="STDOUT" /> - </appender> - - <root level="INFO"> - <appender-ref ref="AsyncSysOut" /> - </root> - -</configuration> - diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/templates/NOTES.txt b/kubernetes/cps/components/ncmp-dmi-plugin/templates/NOTES.txt deleted file mode 100644 index 66f5302a11..0000000000 --- a/kubernetes/cps/components/ncmp-dmi-plugin/templates/NOTES.txt +++ /dev/null @@ -1,39 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2021 Nordix Foundation -# ================================================================================ -# 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. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} - http://{{ . }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - export SERVICE_PORT=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.spec.ports[0].port}') - echo http://$SERVICE_IP:$SERVICE_PORT -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - export POD_PORT=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].spec.containers[0].ports[0].containerPort}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl port-forward $POD_NAME 8080:$POD_PORT -{{- end }} diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/templates/deployment.yaml b/kubernetes/cps/components/ncmp-dmi-plugin/templates/deployment.yaml index d2fd5c9c49..3d154dba64 100644 --- a/kubernetes/cps/components/ncmp-dmi-plugin/templates/deployment.yaml +++ b/kubernetes/cps/components/ncmp-dmi-plugin/templates/deployment.yaml @@ -23,18 +23,18 @@ kind: Deployment metadata: {{- include "common.resourceMetadata" . | nindent 2 }} spec: replicas: {{ .Values.replicaCount }} + minReadySeconds: {{ index .Values.minReadySeconds }} + strategy: + type: {{ index .Values.updateStrategy.type }} + rollingUpdate: + maxUnavailable: {{ index .Values.updateStrategy.maxUnavailable }} + maxSurge: {{ index .Values.updateStrategy.maxSurge }} selector: {{- include "common.selectors" . | nindent 4 }} template: metadata: labels: app.kubernetes.io/name: {{ include "common.name" . }} app.kubernetes.io/instance: {{ include "common.release" . }} - {{- if .Values.prometheus.enabled }} - annotations: - prometheus.io/scrape: "true" - prometheus.io/path: 'manage/prometheus' - prometheus.io/port: {{ .Values.managementPort | quote }} - {{- end }} spec: {{ include "common.podSecurityContext" . | indent 6 | trim}} serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . ) }} @@ -49,17 +49,17 @@ spec: - "cd /config-input && for PFILE in `find . -not -type d | grep -v -F ..`; do envsubst <${PFILE} >/config/${PFILE}; done" env: - name: DMI_PLUGIN_USERNAME - {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "user-creds" "key" "login") | indent 12 }} + {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "app-user-creds" "key" "login") | indent 12 }} - name: DMI_PLUGIN_PASSWORD - {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "user-creds" "key" "password") | indent 12 }} + {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "app-user-creds" "key" "password") | indent 12 }} - name: SDNC_USERNAME {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdnc-creds" "key" "login") | indent 12 }} - name: SDNC_PASSWORD {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdnc-creds" "key" "password") | indent 12 }} - name: CPS_CORE_USERNAME - {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "core-creds" "key" "login") | indent 12 }} + {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cps-core-creds" "key" "login") | indent 12 }} - name: CPS_CORE_PASSWORD - {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "core-creds" "key" "password") | indent 12 }} + {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cps-core-creds" "key" "password") | indent 12 }} volumeMounts: - mountPath: /config-input name: init-data-input @@ -101,9 +101,6 @@ spec: - mountPath: /app/resources/application-helm.yml subPath: application-helm.yml name: init-data - - mountPath: /app/resources/logback.xml - subPath: logback.xml - name: init-data - mountPath: /tmp name: init-temp volumes: diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/templates/serviceMonitor.yaml b/kubernetes/cps/components/ncmp-dmi-plugin/templates/serviceMonitor.yaml new file mode 100644 index 0000000000..a49a662aed --- /dev/null +++ b/kubernetes/cps/components/ncmp-dmi-plugin/templates/serviceMonitor.yaml @@ -0,0 +1,23 @@ +{{/* +# ============LICENSE_START======================================================= +# Copyright (c) 2021 Bell Canada +# ================================================================================ +# 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +*/}} + +{{- if .Values.prometheus.enabled }} +{{ include "common.serviceMonitor" . }} +{{- end }}
\ No newline at end of file diff --git a/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml b/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml index d616195fbc..3f40a79b84 100644 --- a/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml +++ b/kubernetes/cps/components/ncmp-dmi-plugin/values.yaml @@ -20,7 +20,7 @@ # Secrets. ################################################################# secrets: - - uid: user-creds + - uid: app-user-creds type: basicAuth externalSecret: '{{ tpl (default "" .Values.config.appUserExternalSecret) . }}' login: '{{ .Values.config.appUserName }}' @@ -29,14 +29,14 @@ secrets: - uid: sdnc-creds type: basicAuth externalSecret: '{{ tpl (default "" .Values.config.odlCredsExternalSecret) . }}' - login: '{{ .Values.config.sdncUser }}' - password: '{{ .Values.config.sdncPassword }}' + login: '{{ .Values.config.sdnc.username }}' + password: '{{ .Values.config.sdnc.password }}' passwordPolicy: required - - uid: core-creds + - uid: cps-core-creds type: basicAuth - externalSecret: '{{ tpl (default "" .Values.config.coreCredsExternalSecret) . }}' - login: '{{ .Values.config.coreUser }}' - password: '{{ .Values.config.corePassword }}' + externalSecret: '{{ tpl (default "" .Values.config.cpsCore.credsExternalSecret) . }}' + login: '{{ .Values.config.cpsCore.username }}' + password: '{{ .Values.config.cpsCore.password }}' passwordPolicy: generate ################################################################# @@ -53,11 +53,10 @@ managementPort: &mgt_port 8081 prometheus: enabled: true - interval: 60s service: type: ClusterIP - name: ncmp-dmi-plugin + name: &svc_name ncmp-dmi-plugin ports: - name: &port http port: *svc_port @@ -65,6 +64,18 @@ service: port: *mgt_port targetPort: *mgt_port +metrics: + serviceMonitor: + enabled: true + port: management + ## specify target port if name is not given to the port in the service definition + ## + # targetPort: 8080 + path: /manage/prometheus + interval: 60s + basicAuth: + enabled: false + pullPolicy: IfNotPresent # flag to enable debugging - application support required debugEnabled: false @@ -112,7 +123,7 @@ ingress: service: - baseaddr: "ncmp-dmi-plugin" path: "/" - name: "ncmp-dmi-plugin" + name: *svc_name port: *svc_port serviceAccount: @@ -132,14 +143,20 @@ config: # REST API basic authentication credentials (passsword is generated if not provided) appUserName: ncmpuser + #appUserPassword: spring: profile: helm - #appUserPassword: - sdncUser: admin - sdncPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U - - coreUser: cpsuser + dmiServiceName: http://*svc_name:*svc_port + sdnc: + url: http://sdnc:8181 + username: admin + password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U + topologyId: topology-netconf + cpsCore: + url: http://cps-core:8080 + username: cpsuser + #password: # Any new property can be added in the env by setting in overrides in the format mentioned below # All the added properties must be in "key: value" format insead of yaml. @@ -155,3 +172,9 @@ logging: readinessCheck: wait_for: - cps-core + +minReadySeconds: 10 +updateStrategy: + type: RollingUpdate + maxUnavailable: 0 + maxSurge: 1 |