From ec09fd5a219e49e1be9eaddf9e2cb2f7f5d2f662 Mon Sep 17 00:00:00 2001 From: Jack Lucas Date: Mon, 1 Nov 2021 16:54:12 -0400 Subject: [DCAEGEN2] Updates for R10 By default, disable all dcaegen2 components except config-binding-service, healthcheck, and ves-openapi-manager. Fix DNS name for the ONAP consul instance. Move mongodb dependency from dcae-bootstrap to dcae-tcagen2. Fix the generation of the JSON list of expected components for the healthcheck services. (Previously could have a spurious leading ",") Update healthcheck-container version to 2.3.0 for logging enhancements and updated base image. Issue-ID: DCAEGEN2-2968 Issue-ID: DCAEGEN2-2958 Issue-ID: DCAEGEN2-2983 Signed-off-by: Jack Lucas Change-Id: I4bcce1d3e43e2e5c7cc2c3179870de72b55d5d2e --- .../templates/_deployment.tpl | 3 + .../components/dcae-ms-healthcheck/values.yaml | 2 +- .../components/dcae-tcagen2/requirements.yaml | 3 + .../components/dcae-tcagen2/values.yaml | 15 +++++ .../resources/expected-components.json | 74 ++++++++++++++-------- .../components/dcae-bootstrap/requirements.yaml | 3 - .../dcaegen2/components/dcae-bootstrap/values.yaml | 14 ---- .../templates/deployment.yaml | 5 +- .../components/dcae-healthcheck/values.yaml | 2 +- .../dcaegen2/resources/expected-components.json | 59 ++++++++++++++--- kubernetes/dcaegen2/values.yaml | 14 ++-- 11 files changed, 132 insertions(+), 62 deletions(-) (limited to 'kubernetes') diff --git a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl index dd0bf4bd48..aac0f4b3a9 100644 --- a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl +++ b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl @@ -272,6 +272,9 @@ spec: args: - --key-yaml - "{{ include "common.name" . }}|/app-config/application_config.yaml" + env: + - name: CONSUL_HOST + value: {{ .Values.consulHost | default "consul-server-ui" }}.{{ include "common.namespace" . }} resources: {{ include "common.resources" . | nindent 2 }} volumeMounts: - mountPath: /app-config diff --git a/kubernetes/dcaegen2-services/components/dcae-ms-healthcheck/values.yaml b/kubernetes/dcaegen2-services/components/dcae-ms-healthcheck/values.yaml index 8ec60a7bd1..58ae706e0a 100644 --- a/kubernetes/dcaegen2-services/components/dcae-ms-healthcheck/values.yaml +++ b/kubernetes/dcaegen2-services/components/dcae-ms-healthcheck/values.yaml @@ -43,7 +43,7 @@ readiness: initialDelaySeconds: 10 periodSeconds: 10 # application image -image: onap/org.onap.dcaegen2.deployments.healthcheck-container:2.2.0 +image: onap/org.onap.dcaegen2.deployments.healthcheck-container:2.3.0 # Resource Limit flavor -By Default using small flavor: small diff --git a/kubernetes/dcaegen2-services/components/dcae-tcagen2/requirements.yaml b/kubernetes/dcaegen2-services/components/dcae-tcagen2/requirements.yaml index 48673feda4..a5ab9d6e2f 100644 --- a/kubernetes/dcaegen2-services/components/dcae-tcagen2/requirements.yaml +++ b/kubernetes/dcaegen2-services/components/dcae-tcagen2/requirements.yaml @@ -33,3 +33,6 @@ dependencies: - name: serviceAccount version: ~9.x-0 repository: '@local' + - name: mongo + version: ~9.x-0 + repository: '@local' \ No newline at end of file diff --git a/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml b/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml index e7707dcdb0..2ba8edbc68 100644 --- a/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml +++ b/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml @@ -86,6 +86,21 @@ service: - port: 9091 name: http +# mongoDB overrides +mongo: + nameOverride: dcae-mongo + config: + dbName: dcaecommondb + service: + name: dcae-mongohost + internalPort: 27017 + nfsprovisionerPrefix: dcaemongo + sdnctlPrefix: tcagen2 + persistence: + mountSubPath: dcae/mongo/data + enabled: true + disableNfsProvisioner: true + # Policy configuraiton properties # if enabled, policy-sync side car will be deployed #dcaePolicySyncImage: onap/org.onap.dcaegen2.deployments.dcae-services-policy-sync:1.0.1 diff --git a/kubernetes/dcaegen2-services/resources/expected-components.json b/kubernetes/dcaegen2-services/resources/expected-components.json index 948c479430..f654ac8dc3 100644 --- a/kubernetes/dcaegen2-services/resources/expected-components.json +++ b/kubernetes/dcaegen2-services/resources/expected-components.json @@ -1,28 +1,52 @@ {{/* -#============LICENSE_START======================================================== -# ================================================================================ -# Copyright (c) 2021 J. F. Lucas. All rights reserved. -# ================================================================================ -# 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. -# ============LICENSE_END========================================================= + ============LICENSE_START======================================================== + ================================================================================= + Copyright (c) 2021 J. F. Lucas. All rights reserved. + ================================================================================= + 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. + =============LICENSE_END========================================================= */}} -[ -{{- $ctx := . }} -{{- $components := tuple "dcae-hv-ves-collector" "dcae-prh" "dcae-tcagen2" "dcae-ves-collector" }} -{{- range $i, $v := $components }} -{{- if index $ctx.Values . "enabled" }} -{{- if $i }},{{ end }} -{{ $v | quote | indent 2 }} + +{{/* + + This template generates a JSON file with an array containing the names of the + components that the healthcheck container always expects to see--that is, the + components that are enabled in the top-level values.yaml file. + + The code loops through the list of components ($components) and checks each component's + entry in the values.yaml file is set to "enabled". It adds the name of each enabled + component to the list. + + There is a bit of Helm trickery here--the code uses a dict ($enabled), because that's + apparently the only way to create a variable outside of a range loop that can be updated + from within the range loop. The code here generates a list of the components that are + enabled in values.yaml, and stores it into the list called "enabled" in the dictionary + $enabled. + + Note also the assignment to an otherwise unused variable ($x) in the loop. Without that + assignment, the updated value of the $enabled.enabled list would be rendered into the + file each time an enabled component is found. + +*/}} + +{{- $ctx := . -}} +{{- $components := list "dcae-hv-ves-collector" "dcae-prh" "dcae-tcagen2" "dcae-ves-collector" -}} +{{- $enabled := dict "enabled" list -}} +{{- range $components -}} + {{- if index $ctx.Values . "enabled" -}} + {{- $x:= . | append $enabled.enabled | set $enabled "enabled" -}} + {{- end -}} {{- end -}} -{{- end }} -] +{{- $enabled.enabled | toJson }} + + diff --git a/kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml index 4dcaff6c1b..aa47c669d3 100644 --- a/kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml +++ b/kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml @@ -27,9 +27,6 @@ dependencies: version: ~9.x-0 repository: '@local' alias: postgres - - name: mongo - version: ~9.x-0 - repository: '@local' - name: repositoryGenerator version: ~9.x-0 repository: '@local' diff --git a/kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml index b012ee4942..5b568c6088 100644 --- a/kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml +++ b/kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml @@ -89,20 +89,6 @@ postgres: mountSubPath: dcae/data mountInitPath: dcae -mongo: - nameOverride: dcae-mongo - config: - dbName: dcaecommondb - service: - name: dcae-mongohost - internalPort: 27017 - nfsprovisionerPrefix: dcaemongo - sdnctlPrefix: tcagen2 - persistence: - mountSubPath: dcae/mongo/data - enabled: true - disableNfsProvisioner: true - # application image image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:3.3.5 default_k8s_location: central diff --git a/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml b/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml index c7e1d70030..171fc7c807 100644 --- a/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml +++ b/kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml @@ -2,6 +2,7 @@ #============LICENSE_START======================================================== # ================================================================================ # Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2021 J. F. Lucas. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -106,7 +107,7 @@ spec: mountPath: /opt/tls env: - name: CONSUL_HOST - value: consul.{{ include "common.namespace" . }} + value: consul-server-ui.{{ include "common.namespace" . }} - name: USE_HTTPS value: "1" - name: HTTPS_CERT_PATH @@ -154,7 +155,7 @@ spec: mountPath: /opt/logs env: - name: CONSUL_HOST - value: consul.{{ include "common.namespace" . }} + value: consul-server-ui.{{ include "common.namespace" . }} - name: {{ include "common.name" . }}-fb-onap-i image: {{ include "repositoryGenerator.image.logging" . }} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} diff --git a/kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml b/kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml index 1c6cff0657..8134e0df9d 100644 --- a/kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml +++ b/kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml @@ -42,7 +42,7 @@ readiness: initialDelaySeconds: 10 periodSeconds: 10 # application image -image: onap/org.onap.dcaegen2.deployments.healthcheck-container:2.2.0 +image: onap/org.onap.dcaegen2.deployments.healthcheck-container:2.3.0 # Resource Limit flavor -By Default using small flavor: small diff --git a/kubernetes/dcaegen2/resources/expected-components.json b/kubernetes/dcaegen2/resources/expected-components.json index 6b3a221661..50c31845e1 100644 --- a/kubernetes/dcaegen2/resources/expected-components.json +++ b/kubernetes/dcaegen2/resources/expected-components.json @@ -1,10 +1,51 @@ -[ -{{- $ctx := . }} -{{- $components := tuple "dcae-cloudify-manager" "dcae-config-binding-service" "dcae-dashboard" "dcae-deployment-handler" "dcae-inventory-api" "dcae-policy-handler" "dcae-servicechange-handler" "dcae-ves-openapi-manager" }} -{{- range $i, $v := $components }} -{{- if index $ctx.Values . "enabled" }} -{{- if $i }},{{ end }} -{{ $v | quote | indent 2 }} +{{/* + ============LICENSE_START======================================================== + ================================================================================= + Copyright (c) 2021 J. F. Lucas. All rights reserved. + ================================================================================= + 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. + =============LICENSE_END========================================================= +*/}} + +{{/* + + This template generates a JSON file with an array containing the names of the + components that the healthcheck container always expects to see--that is, the + components that are enabled in the top-level values.yaml file. + + The code loops through the list of components ($components) and checks each component's + entry in the values.yaml file is set to "enabled". It adds the name of each enabled + component to the list. + + There is a bit of Helm trickery here--the code uses a dict ($enabled), because that's + apparently the only way to create a variable outside of a range loop that can be updated + from within the range loop. The code here generates a list of the components that are + enabled in values.yaml, and stores it into the list called "enabled" in the dictionary + $enabled. + + Note also the assignment to an otherwise unused variable ($x) in the loop. Without that + assignment, the updated value of the $enabled.enabled list would be rendered into the + file each time an enabled component is found. + +*/}} + +{{- $ctx := . -}} +{{- $components := list "dcae-cloudify-manager" "dcae-config-binding-service" "dcae-dashboard" "dcae-deployment-handler" "dcae-inventory-api" "dcae-policy-handler" "dcae-servicechange-handler" "dcae-ves-openapi-manager" -}} +{{- $enabled := dict "enabled" list -}} +{{- range $components -}} + {{- if index $ctx.Values . "enabled" -}} + {{- $x:= . | append $enabled.enabled | set $enabled "enabled" -}} + {{- end -}} {{- end -}} -{{- end }} -] +{{- $enabled.enabled | toJson }} + diff --git a/kubernetes/dcaegen2/values.yaml b/kubernetes/dcaegen2/values.yaml index 17b077b987..7ce58ba88b 100644 --- a/kubernetes/dcaegen2/values.yaml +++ b/kubernetes/dcaegen2/values.yaml @@ -40,32 +40,32 @@ passwordStrengthOverride: basic # Enable all DCAE components by default dcae-bootstrap: - enabled: true + enabled: false config: cloudifyManagerPasswordExternalSecret: *cmPassSecretName dcae-cloudify-manager: - enabled: true + enabled: false config: cloudifyManagerPasswordExternalSecret: *cmPassSecretName dcae-config-binding-service: enabled: true dcae-dashboard: - enabled: true + enabled: false config: cloudifyManagerPasswordExternalSecret: *cmPassSecretName dcae-deployment-handler: - enabled: true + enabled: false config: cloudifyManagerPasswordExternalSecret: *cmPassSecretName dcae-healthcheck: enabled: true dcae-inventory-api: - enabled: true + enabled: false dcae-policy-handler: - enabled: true + enabled: false config: cloudifyManagerPasswordExternalSecret: *cmPassSecretName dcae-servicechange-handler: - enabled: true + enabled: false dcae-ves-openapi-manager: enabled: true -- cgit 1.2.3-korg