Merge "[PORTAL] Use common aaf template in portal-sdk"
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Mon, 1 Jun 2020 22:06:23 +0000 (22:06 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 1 Jun 2020 22:06:23 +0000 (22:06 +0000)
91 files changed:
kubernetes/aaf/charts/aaf-cass/values.yaml
kubernetes/aaf/charts/aaf-hello/values.yaml
kubernetes/aaf/values.yaml
kubernetes/cds/charts/cds-blueprints-processor/values.yaml
kubernetes/cds/charts/cds-command-executor/values.yaml
kubernetes/cds/charts/cds-py-executor/values.yaml
kubernetes/cds/charts/cds-sdc-listener/values.yaml
kubernetes/cds/charts/cds-ui/values.yaml
kubernetes/clamp/charts/mariadb/resources/config/init/docker-entrypoint.sh [new file with mode: 0755]
kubernetes/clamp/charts/mariadb/templates/configmap.yaml
kubernetes/clamp/charts/mariadb/templates/deployment.yaml
kubernetes/common/dgbuilder/values.yaml
kubernetes/common/elasticsearch/requirements.yaml
kubernetes/common/elasticsearch/templates/configmap-aaf-add-config.yaml [deleted file]
kubernetes/common/elasticsearch/templates/coordinating-deploy.yaml
kubernetes/common/elasticsearch/values.yaml
kubernetes/common/postgres/templates/_deployment.tpl
kubernetes/contrib/components/ejbca/values.yaml
kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/provisioning/provision.sh
kubernetes/contrib/components/netbox/charts/netbox-app/templates/job.yaml
kubernetes/contrib/components/netbox/charts/netbox-app/values.yaml
kubernetes/dmaap/components/dmaap-dr-prov/requirements.yaml
kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml [deleted file]
kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml [deleted file]
kubernetes/dmaap/components/dmaap-dr-prov/values.yaml
kubernetes/msb/charts/msb-eag/templates/deployment.yaml
kubernetes/msb/charts/msb-iag/templates/deployment.yaml
kubernetes/msb/resources/config/certificates/cert.crt
kubernetes/msb/templates/secrets.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-has/resources/config/conductor.conf
kubernetes/oof/charts/oof-has/values.yaml
kubernetes/oof/resources/config/common_config.yaml
kubernetes/oof/values.yaml
kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf
kubernetes/policy/charts/brmsgw/values.yaml
kubernetes/policy/charts/drools/values.yaml
kubernetes/policy/charts/pap/templates/deployment.yaml
kubernetes/policy/charts/pap/templates/service.yaml
kubernetes/policy/charts/pap/values.yaml
kubernetes/policy/charts/pdp/values.yaml
kubernetes/policy/charts/policy-apex-pdp/values.yaml
kubernetes/policy/charts/policy-api/values.yaml
kubernetes/policy/charts/policy-distribution/values.yaml
kubernetes/policy/charts/policy-xacml-pdp/values.yaml
kubernetes/policy/values.yaml
kubernetes/portal/components/portal-app/requirements.yaml
kubernetes/portal/components/portal-app/resources/server/server.xml
kubernetes/portal/components/portal-app/templates/configmap.yaml
kubernetes/portal/components/portal-app/templates/deployment.yaml
kubernetes/portal/components/portal-app/values.yaml
kubernetes/portal/components/portal-mariadb/values.yaml
kubernetes/portal/components/portal-widget/values.yaml
kubernetes/readiness/src/main/scripts/ready.py
kubernetes/robot
kubernetes/sdc/charts/sdc-be/values.yaml
kubernetes/sdc/charts/sdc-cs/values.yaml
kubernetes/sdc/charts/sdc-fe/values.yaml
kubernetes/sdc/charts/sdc-onboarding-be/values.yaml
kubernetes/sdnc/charts/dmaap-listener/values.yaml
kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml
kubernetes/sdnc/charts/sdnc-portal/values.yaml
kubernetes/sdnc/charts/ueb-listener/values.yaml
kubernetes/sdnc/templates/statefulset.yaml
kubernetes/sdnc/values.yaml
kubernetes/so/charts/so-appc-orchestrator/Chart.yaml [new file with mode: 0644]
kubernetes/so/charts/so-appc-orchestrator/resources/config/overrides/override.yaml [new file with mode: 0644]
kubernetes/so/charts/so-appc-orchestrator/templates/configmap.yaml [new file with mode: 0755]
kubernetes/so/charts/so-appc-orchestrator/templates/deployment.yaml [new file with mode: 0644]
kubernetes/so/charts/so-appc-orchestrator/templates/secret.yaml [new file with mode: 0644]
kubernetes/so/charts/so-appc-orchestrator/templates/service.yaml [new file with mode: 0644]
kubernetes/so/charts/so-appc-orchestrator/values.yaml [new file with mode: 0644]
kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
kubernetes/so/charts/so-bpmn-infra/values.yaml
kubernetes/so/charts/so-catalog-db-adapter/values.yaml
kubernetes/so/charts/so-monitoring/values.yaml
kubernetes/so/charts/so-nssmf-adapter/values.yaml
kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-openstack-adapter/values.yaml
kubernetes/so/charts/so-request-db-adapter/values.yaml
kubernetes/so/charts/so-sdc-controller/values.yaml
kubernetes/so/charts/so-sdnc-adapter/values.yaml
kubernetes/so/charts/so-ve-vnfm-adapter/values.yaml
kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-vfc-adapter/values.yaml
kubernetes/so/charts/so-vnfm-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-vnfm-adapter/values.yaml
kubernetes/so/values.yaml
kubernetes/uui/charts/uui-server/values.yaml
kubernetes/uui/values.yaml
kubernetes/vnfsdk/values.yaml

index e347df2..3d9f21e 100644 (file)
@@ -34,7 +34,7 @@ liveness:
   enabled: true
   port: tcp-cql
 
-image: onap/aaf/aaf_cass:2.1.22
+image: onap/aaf/aaf_cass:2.1.20
 
 config:
   cluster_name: osaaf
index 786f0b0..aeb6590 100644 (file)
@@ -41,7 +41,7 @@ aaf_init:
 
 replicaCount: 0
 
-image: onap/aaf/aaf_hello:2.1.22
+image: onap/aaf/aaf_hello:2.1.20
 
 service:
   name: aaf-hello
index cc97e98..bedf243 100644 (file)
@@ -42,10 +42,10 @@ global:
 
   aaf:
     readiness: false
-    image: onap/aaf/aaf_core:2.1.22
+    image: onap/aaf/aaf_core:2.1.20
     aaf_env: "DEV"
     public_fqdn: "aaf.osaaf.org"
-    aaf_release: "Frankfurt"
+    aaf_release: "El Alto"
   # DUBLIN ONLY - for M4 compatibility with Casablanca
   #  aaf_locator_name: "public.%NS.%N"
   #  aaf_locator_name_oom: "%NS.%N"
@@ -57,7 +57,7 @@ global:
     cadi_x509_issuers: "CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US"
 
     config:
-      image: onap/aaf/aaf_config:2.1.22
+      image: onap/aaf/aaf_config:2.1.20
 
     service:
       fqdn: "aaf-service"
index a14dbad..c8921f9 100755 (executable)
@@ -62,7 +62,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-blueprintsprocessor:0.7.2
+image: onap/ccsdk-blueprintsprocessor:0.7.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 2bc84bd..8b4dbbf 100755 (executable)
@@ -40,7 +40,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-commandexecutor:0.7.2
+image: onap/ccsdk-commandexecutor:0.7.3
 pullPolicy: Always
 
 # application configuration
index 206ae10..bbae1b9 100755 (executable)
@@ -38,7 +38,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-py-executor:0.7.2
+image: onap/ccsdk-py-executor:0.7.3
 pullPolicy: Always
 
 # default number of instances
index c784a82..57b9e49 100644 (file)
@@ -37,7 +37,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-sdclistener:0.7.2
+image: onap/ccsdk-sdclistener:0.7.3
 name: sdc-listener
 pullPolicy: Always
 
index d084307..aea1202 100644 (file)
@@ -28,7 +28,7 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-cds-ui-server:0.7.2
+image: onap/ccsdk-cds-ui-server:0.7.3
 pullPolicy: Always
 
 # application configuration
diff --git a/kubernetes/clamp/charts/mariadb/resources/config/init/docker-entrypoint.sh b/kubernetes/clamp/charts/mariadb/resources/config/init/docker-entrypoint.sh
new file mode 100755 (executable)
index 0000000..6c69694
--- /dev/null
@@ -0,0 +1,193 @@
+#!/bin/bash
+set -eo pipefail
+shopt -s nullglob
+
+# if command starts with an option, prepend mysqld
+if [ "${1:0:1}" = '-' ]; then
+       set -- mysqld "$@"
+fi
+
+# skip setup if they want an option that stops mysqld
+wantHelp=
+for arg; do
+       case "$arg" in
+               -'?'|--help|--print-defaults|-V|--version)
+                       wantHelp=1
+                       break
+                       ;;
+       esac
+done
+
+# usage: file_env VAR [DEFAULT]
+#    ie: file_env 'XYZ_DB_PASSWORD' 'example'
+# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
+#  "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
+file_env() {
+       local var="$1"
+       local fileVar="${var}_FILE"
+       local def="${2:-}"
+       if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
+               echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
+               exit 1
+       fi
+       local val="$def"
+       if [ "${!var:-}" ]; then
+               val="${!var}"
+       elif [ "${!fileVar:-}" ]; then
+               val="$(< "${!fileVar}")"
+       fi
+       val=`echo -n $val | sed -e "s/'/''/g"`
+       export "$var"="$val"
+       unset "$fileVar"
+}
+
+_check_config() {
+       toRun=( "$@" --verbose --help --log-bin-index="$(mktemp -u)" )
+       if ! errors="$("${toRun[@]}" 2>&1 >/dev/null)"; then
+               cat >&2 <<-EOM
+
+                       ERROR: mysqld failed while attempting to check config
+                       command was: "${toRun[*]}"
+
+                       $errors
+               EOM
+               exit 1
+       fi
+}
+
+# Fetch value from server config
+# We use mysqld --verbose --help instead of my_print_defaults because the
+# latter only show values present in config files, and not server defaults
+_get_config() {
+       local conf="$1"; shift
+       "$@" --verbose --help --log-bin-index="$(mktemp -u)" 2>/dev/null \
+               | awk '$1 == "'"$conf"'" && /^[^ \t]/ { sub(/^[^ \t]+[ \t]+/, ""); print; exit }'
+       # match "datadir      /some/path with/spaces in/it here" but not "--xyz=abc\n     datadir (xyz)"
+}
+
+# allow the container to be started with `--user`
+if [ "$1" = 'mysqld' -a -z "$wantHelp" -a "$(id -u)" = '0' ]; then
+       _check_config "$@"
+       DATADIR="$(_get_config 'datadir' "$@")"
+       mkdir -p "$DATADIR"
+       find "$DATADIR" \! -user mysql -exec chown mysql '{}' +
+       exec gosu mysql "$BASH_SOURCE" "$@"
+fi
+
+if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then
+       # still need to check config, container may have started with --user
+       _check_config "$@"
+       # Get config
+       DATADIR="$(_get_config 'datadir' "$@")"
+
+       if [ ! -d "$DATADIR/mysql" ]; then
+               file_env 'MYSQL_ROOT_PASSWORD'
+               if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" -a -z "$MYSQL_RANDOM_ROOT_PASSWORD" ]; then
+                       echo >&2 'error: database is uninitialized and password option is not specified '
+                       echo >&2 '  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD'
+                       exit 1
+               fi
+
+               mkdir -p "$DATADIR"
+
+               echo 'Initializing database'
+               # "Other options are passed to mysqld." (so we pass all "mysqld" arguments directly here)
+               mysql_install_db --datadir="$DATADIR" --rpm "${@:2}"
+               echo 'Database initialized'
+
+               SOCKET="$(_get_config 'socket' "$@")"
+               "$@" --skip-networking --socket="${SOCKET}" &
+               pid="$!"
+
+               mysql=( mysql --protocol=socket -uroot -hlocalhost --socket="${SOCKET}" )
+
+               for i in {30..0}; do
+                       if echo 'SELECT 1' | "${mysql[@]}" &> /dev/null; then
+                               break
+                       fi
+                       echo 'MySQL init process in progress...'
+                       sleep 1
+               done
+               if [ "$i" = 0 ]; then
+                       echo >&2 'MySQL init process failed.'
+                       exit 1
+               fi
+
+               if [ -z "$MYSQL_INITDB_SKIP_TZINFO" ]; then
+                       # sed is for https://bugs.mysql.com/bug.php?id=20545
+                       mysql_tzinfo_to_sql /usr/share/zoneinfo | sed 's/Local time zone must be set--see zic manual page/FCTY/' | "${mysql[@]}" mysql
+               fi
+
+               if [ ! -z "$MYSQL_RANDOM_ROOT_PASSWORD" ]; then
+                       export MYSQL_ROOT_PASSWORD="$(pwgen -1 32)"
+                       echo "GENERATED ROOT PASSWORD: $MYSQL_ROOT_PASSWORD"
+               fi
+
+               rootCreate=
+               # default root to listen for connections from anywhere
+               file_env 'MYSQL_ROOT_HOST' '%'
+               if [ ! -z "$MYSQL_ROOT_HOST" -a "$MYSQL_ROOT_HOST" != 'localhost' ]; then
+                       # no, we don't care if read finds a terminating character in this heredoc
+                       # https://unix.stackexchange.com/questions/265149/why-is-set-o-errexit-breaking-this-read-heredoc-expression/265151#265151
+                       read -r -d '' rootCreate <<-EOSQL || true
+                               CREATE USER 'root'@'${MYSQL_ROOT_HOST}' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
+                               GRANT ALL ON *.* TO 'root'@'${MYSQL_ROOT_HOST}' WITH GRANT OPTION ;
+                       EOSQL
+               fi
+
+               "${mysql[@]}" <<-EOSQL
+                       -- What's done in this file shouldn't be replicated
+                       --  or products like mysql-fabric won't work
+                       SET @@SESSION.SQL_LOG_BIN=0;
+
+                       DELETE FROM mysql.user WHERE user NOT IN ('mysql.sys', 'mysqlxsys', 'root') OR host NOT IN ('localhost') ;
+                       SET PASSWORD FOR 'root'@'localhost'=PASSWORD('${MYSQL_ROOT_PASSWORD}') ;
+                       GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION ;
+                       ${rootCreate}
+                       DROP DATABASE IF EXISTS test ;
+                       FLUSH PRIVILEGES ;
+               EOSQL
+
+               if [ ! -z "$MYSQL_ROOT_PASSWORD" ]; then
+                       mysql+=( -p"${MYSQL_ROOT_PASSWORD}" )
+               fi
+
+               file_env 'MYSQL_DATABASE'
+               if [ "$MYSQL_DATABASE" ]; then
+                       echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" | "${mysql[@]}"
+                       mysql+=( "$MYSQL_DATABASE" )
+               fi
+
+               file_env 'MYSQL_USER'
+               file_env 'MYSQL_PASSWORD'
+               if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
+                       echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" | "${mysql[@]}"
+
+                       if [ "$MYSQL_DATABASE" ]; then
+                               echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* TO '$MYSQL_USER'@'%' ;" | "${mysql[@]}"
+                       fi
+               fi
+
+               echo
+               for f in /docker-entrypoint-initdb.d/*; do
+                       case "$f" in
+                               *.sh)     echo "$0: running $f"; . "$f" ;;
+                               *.sql)    echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;;
+                               *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
+                               *)        echo "$0: ignoring $f" ;;
+                       esac
+                       echo
+               done
+
+               if ! kill -s TERM "$pid" || ! wait "$pid"; then
+                       echo >&2 'MySQL init process failed.'
+                       exit 1
+               fi
+
+               echo
+               echo 'MySQL init process done. Ready for start up.'
+               echo
+       fi
+fi
+
+exec "$@"
index 522c5f9..01420aa 100644 (file)
@@ -39,4 +39,17 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/conf.d/conf1/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ include "common.release" . }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/init/*").AsConfig . | indent 2 }}
 #{{ end }}
index 7d22930..b6af4e3 100644 (file)
@@ -61,6 +61,9 @@ spec:
           - name: MYSQL_DATABASE
             value: {{ tpl .Values.db.databaseName .}}
           volumeMounts:
+          - mountPath: /docker-entrypoint.sh
+            subPath: docker-entrypoint.sh
+            name: init-script
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
@@ -97,5 +100,9 @@ spec:
         - name: localtime
           hostPath:
             path: /etc/localtime
+        - name: init-script
+          configMap:
+            name: {{ include "common.fullname" . }}
+            defaultMode: 0755
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 6586573..a1f637b 100644 (file)
@@ -84,7 +84,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-dgbuilder-image:0.7.2
+image: onap/ccsdk-dgbuilder-image:0.7.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 8a02fef..5900f41 100644 (file)
@@ -27,3 +27,6 @@ dependencies:
     version: ~6.x-0
     repository: 'file://components/curator'
     condition: elasticsearch.curator.enabled,curator.enabled
+  - name: certInitializer
+    version: ~6.x-0
+    repository: 'file://../certInitializer'
diff --git a/kubernetes/common/elasticsearch/templates/configmap-aaf-add-config.yaml b/kubernetes/common/elasticsearch/templates/configmap-aaf-add-config.yaml
deleted file mode 100644 (file)
index b4e0044..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-
-{{ if .Values.global.aafEnabled }}
-{{/*
-# Copyright Â© 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
-#
-# 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.
-*/}}
-{{- if .Values.aafConfig.addconfig -}}
-apiVersion: v1
-kind: ConfigMap
-{{ $suffix := "aaf-add-config" -}}
-metadata: {{- include "common.resourceMetadata" (dict "suffix" $suffix "dot" . )| nindent 2 }}
-data:
-  aaf-add-config.sh: |-
-    cd /opt/app/osaaf/local
-    mkdir -p certs
-    export $(/opt/app/aaf_config/bin/agent.sh local showpass | grep '^c' | xargs -0)
-    keytool -exportcert -rfc -file certs/cacert.pem -keystore {{ .Values.aafConfig.fqi_namespace }}.trust.jks -alias ca_local_0 -storepass $cadi_truststore_password
-    openssl pkcs12 -in {{ .Values.aafConfig.fqi_namespace }}.p12 -out certs/cert.pem -passin pass:$cadi_keystore_password_p12 -passout pass:$cadi_keystore_password_p12
-    cp {{ .Values.aafConfig.fqi_namespace }}.key certs/key.pem
-    chmod -R 755 certs
-{{- end -}}
-{{- end -}}
index 65a7f46..1ab5b59 100644 (file)
@@ -61,7 +61,7 @@ spec:
           securityContext:
             privileged: true
       {{- end }}
-          {{ include "common.aaf-config" . | nindent 8}}
+          {{ include "common.certInitializer.initContainer" . | nindent 8 }}
 
       containers:
         - name: {{ include "common.name" . }}-nginx
@@ -82,7 +82,7 @@ spec:
           - name: nginx-server-block
             mountPath: /opt/bitnami/nginx/conf/server_blocks
           {{- end }}
-          {{- include "common.aaf-config-volume-mountpath" . | nindent 10 }}
+          {{- include "common.certInitializer.volumeMount" . | nindent 10 }}
 
         - name: {{ include "common.name" . }}-elasticsearch
           image: {{ printf "%s/%s:%s" (include "common.repository" .)  .Values.image.imageName  .Values.image.tag }}
@@ -163,5 +163,4 @@ spec:
           configMap:
             name: {{ include "common.fullname" . }}-nginx-server-block
         {{- end }}
-        {{- include "common.aaf-config-volumes" . | nindent 8}}
-
+         {{ include "common.certInitializer.volumes" . | nindent 8 }}
index 3627b2e..b128943 100644 (file)
@@ -17,7 +17,6 @@
 #################################################################
 global:
   aafEnabled: true
-  aafAgentImage: onap/aaf/aaf_agent:2.1.15
   nodePortPrefix: 302
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.2
@@ -275,34 +274,32 @@ service:
   # loadBalancerIP:
   ## Provide functionality to use RBAC
   ##
+
 #################################################################
-# Secrets metaconfig
-#################################################################
-secrets:
-  - uid: &aaf_secret_uid elasticsearch-aaf-deploy-creds
-    type: basicAuth
-    externalSecret: '{{ ternary (tpl (default "" .Values.aafConfig.aafDeployCredsExternalSecret) .) "aafIsDisabled" .Values.global.aafEnabled }}'
-    login: '{{ .Values.aafConfig.aafDeployFqi }}'
-    password: '{{ .Values.aafConfig.aafDeployPass }}'
-    passwordPolicy: required
-#################################################################
-# aaf configuration defaults.
+# Certificate configuration
 #################################################################
-aafConfig:
-  addconfig: true
+certInitializer:
+  nameOverride: elasticsearch-cert-initializer
+  aafDeployFqi: deployer@people.osaaf.org
+  aafDeployPass: demo123456!
+  # aafDeployCredsExternalSecret: some secret
   fqdn: "elastic"
-  image: onap/aaf/aaf_agent:2.1.15
   app_ns: "org.osaaf.aaf"
-  fqi_namespace: org.onap.elastic
+  fqi_namespace: "org.onap.elastic"
   fqi: "elastic@elastic.onap.org"
   public_fqdn: "aaf.osaaf.org"
-  deploy_fqi: "deployer@people.osaaf.org"
-  aafDeployFqi: "deployer@people.osaaf.org"
-  aafDeployPass: demo123456!
-  #aafDeployCredsExternalSecret: some secret
-  #cadi_latitude: "52.5"
-  #cadi_longitude: "13.4"
-  secret_uid: *aaf_secret_uid
+  cadi_longitude: "0.0"
+  cadi_latitude: "0.0"
+  credsPath: /opt/app/osaaf/local
+  aaf_add_config: >
+    cd {{ .Values.credsPath }};
+    mkdir -p certs;
+    export $(/opt/app/aaf_config/bin/agent.sh local showpass | grep '^c' | xargs -0);
+    keytool -exportcert -rfc -file certs/cacert.pem -keystore {{ .Values.fqi_namespace }}.trust.jks -alias ca_local_0 -storepass $cadi_truststore_password;
+    openssl pkcs12 -in {{ .Values.fqi_namespace }}.p12 -out certs/cert.pem -passin pass:$cadi_keystore_password_p12 -passout pass:$cadi_keystore_password_p12;
+    cp {{ .Values.fqi_namespace }}.key certs/key.pem;
+    chmod -R 755 certs;
+
 #################################################################
 # subcharts configuration defaults.
 #################################################################
index e3ac669..b1aae5f 100644 (file)
@@ -44,19 +44,26 @@ spec:
         - sh
         args:
         - -c
-        - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        - |
+          function prepare_password {
+            echo -n $1 | sed -e "s/'/''/g"
+          }
+          export PG_PRIMARY_PASSWORD=`prepare_password $PG_PRIMARY_PASSWORD_INPUT`;
+          export PG_PASSWORD=`prepare_password $PG_PASSWORD_INPUT`;
+          export PG_ROOT_PASSWORD=`prepare_password $PG_ROOT_PASSWORD_INPUT`;
+          cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done
         env:
         - name: PG_PRIMARY_USER
           value: primaryuser
-        - name: PG_PRIMARY_PASSWORD
+        - name: PG_PRIMARY_PASSWORD_INPUT
           {{- include "common.secret.envFromSecretFast" (dict "global" $dot "uid" (include "common.postgres.secret.primaryPasswordUID" .) "key" "password") | indent 10 }}
         - name: PG_USER
           {{- include "common.secret.envFromSecretFast" (dict "global" $dot "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "login") | indent 10 }}
-        - name: PG_PASSWORD
+        - name: PG_PASSWORD_INPUT
           {{- include "common.secret.envFromSecretFast" (dict "global" $dot "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "password") | indent 10 }}
         - name: PG_DATABASE
           value: "{{ $dot.Values.config.pgDatabase }}"
-        - name: PG_ROOT_PASSWORD
+        - name: PG_ROOT_PASSWORD_INPUT
           {{- include "common.secret.envFromSecretFast" (dict "global" $dot "uid" (include "common.postgres.secret.rootPassUID" .) "key" "password") | indent 10 }}
         volumeMounts:
         - mountPath: /config-input/setup.sql
index 0db7ca1..82bc03c 100644 (file)
@@ -98,6 +98,7 @@ readiness:
 
 service:
   type: ClusterIP
+  both_tls_and_plain: true
   ports:
     - name: api
       port: 8443
index f400277..7586a6c 100644 (file)
@@ -48,12 +48,12 @@ spec:
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-provisioning-job
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
         volumeMounts:
         - name: {{ include "common.fullname" . }}-provisioning
           mountPath: /tmp
         command:
-        - /bin/bash
+        - /bin/sh
         - ./tmp/provision.sh
       volumes:
         - name: {{ include "common.fullname" . }}-provisioning
index ddfdc4b..ff02e27 100755 (executable)
@@ -42,6 +42,9 @@ config:
   superuserName: admin
   superuserEmail: admin@onap.org
 
+  curlImage: curlimages/curl:7.69.1
+  dockerHubRepository: docker.io
+
 repository: netboxcommunity
 image: netbox:v2.5.8
 
index 94b026f..a873762 100644 (file)
@@ -25,4 +25,7 @@ dependencies:
   - name: mariadb-galera
     alias: mariadb
     version: ~6.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: certInitializer
+    version: ~6.x-0
+    repository: '@local'
index adbdb68..8db6edb 100644 (file)
@@ -46,61 +46,15 @@ spec:
                 apiVersion: v1
                 fieldPath: metadata.namespace
         {{- if .Values.global.aafEnabled }}
-        - name: {{ include "common.name" . }}-aaf-readiness
-          image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          command:
-          - /root/ready.py
-          args:
-          - --container-name
-          - aaf-locate
-          - --container-name
-          - aaf-cm
-          - --container-name
-          - aaf-service
-          env:
-          - name: NAMESPACE
-            valueFrom:
-              fieldRef:
-                apiVersion: v1
-                fieldPath: metadata.namespace
-        - name: {{ include "common.name" . }}-dr-prov-aaf-config
-          image: "{{ include "common.repository" . }}/{{ .Values.global.aafAgentImage }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          command: ["bash","-c","exec /opt/app/aaf_config/bin/agent.sh"]
-          volumeMounts:
-          - mountPath: {{ .Values.persistence.aafCredsPath }}
-            name: {{ include "common.fullname" . }}-aaf-config-vol
-          env:
-            - name: APP_FQI
-              value: "{{ .Values.aafConfig.fqi }}"
-            - name: aaf_locate_url
-              value: "https://aaf-locate.{{ .Release.Namespace }}:8095"
-            - name: aaf_locator_container
-              value: "{{ .Values.global.aafLocatorContainer }}"
-            - name: aaf_locator_container_ns
-              value: "{{ .Release.Namespace }}"
-            - name: aaf_locator_fqdn
-              value: "{{ .Values.aafConfig.fqdn }}"
-            - name: aaf_locator_public_fqdn
-              value: "{{.Values.aafConfig.publicFqdn}}"
-            - name: aaf_locator_app_ns
-              value: "{{ .Values.global.aafAppNs }}"
-            - name: DEPLOY_FQI
-              value: "{{ .Values.aafConfig.aafDeployFqi }}"
-            - name: DEPLOY_PASSWORD
-              value: "{{ .Values.aafConfig.aafDeployPass }}"
-            - name: cadi_longitude
-              value: "{{ .Values.aafConfig.cadiLongitude }}"
-            - name: cadi_latitude
-              value: "{{ .Values.aafConfig.cadiLatitude }}"
+
+        {{ include "common.certInitializer.initContainer" . | nindent 8 }}
+
         - name: {{ include "common.name" . }}-permission-fixer
           image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          volumeMounts:
-          - mountPath: {{ .Values.persistence.aafCredsPath }}
-            name: {{ include "common.fullname" . }}-aaf-config-vol
+          volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
           command: ["chown","-Rf","1000:1001", "/opt/app/"]
+
         {{ end }}
       containers:
         - name: {{ include "common.name" . }}
@@ -125,11 +79,7 @@ spec:
             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-dr-db-user-secret" "key" "login") | indent 12 }}
           - name: DB_PASSWORD
             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-dr-db-user-secret" "key" "password") | indent 12 }}
-          volumeMounts:
-          {{- if .Values.global.aafEnabled }}
-          - mountPath: {{ .Values.persistence.aafCredsPath }}
-            name: {{ include "common.fullname" . }}-aaf-config-vol
-          {{- end }}
+          volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
           - mountPath: /etc/localtime
             name: localtime
             readOnly: false
@@ -163,7 +113,7 @@ spec:
             mountPath: /usr/share/filebeat/data
           - name: {{ include "common.fullname" . }}-logs
             mountPath: /var/log/onap/datarouter-prov
-      volumes:
+      volumes: {{ include "common.certInitializer.volumes" . | nindent 6 }}
       - name: localtime
         hostPath:
           path: /etc/localtime
@@ -183,14 +133,5 @@ spec:
         emptyDir: {}
       - name:  {{ include "common.fullname" . }}-logs
         emptyDir: {}
-      {{- if .Values.global.aafEnabled }}
-      - name: {{ include "common.fullname" . }}-aaf-config-vol
-        {{- if .Values.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}-aaf-props
-        {{- else }}
-        emptyDir: {}
-        {{- end }}
-      {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pv.yaml
deleted file mode 100644 (file)
index 1a09a81..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-{{/*
-  # ============LICENSE_START=======================================================
-  #  Copyright (C) 2019 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=========================================================
-*/}}
-{{- if .Values.global.aafEnabled }}
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
-{{- if eq "True" (include "common.needPV" .) -}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-aaf-props
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}-aaf-props
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ include "common.release" . }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}-aaf-props
-spec:
-  capacity:
-    storage: {{ .Values.persistence.aafCredsSize}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  hostPath:
-    path: {{ .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.aafCredsMountSubPath }}
-{{ end -}}
-{{- end -}}
-{{- end -}}
diff --git a/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml b/kubernetes/dmaap/components/dmaap-dr-prov/templates/pvc.yaml
deleted file mode 100644 (file)
index c6ac749..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-{{/*
-  # ============LICENSE_START=======================================================
-  #  Copyright (C) 2019 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=========================================================
-*/}}
-{{- if .Values.global.aafEnabled }}
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}-aaf-props
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ include "common.release" . }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: {{ include "common.storageClass" . }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.aafCredsSize }}
-{{ end -}}
-{{ end -}}
index 3fb90f0..1cf2e58 100644 (file)
@@ -25,7 +25,7 @@ global:
 #################################################################
 secrets:
   - uid: dmaap-dr-db-user-secret
-    name: '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
+    name: &dbSecretName '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
     type: basicAuth
     externalSecret: '{{ tpl (default "" .Values.config.dmaapDrDb.userCredentialsExternalSecret) . }}'
     login: '{{ .Values.config.dmaapDrDb.userName }}'
@@ -69,10 +69,6 @@ persistence:
   accessMode: ReadWriteOnce
   mountPath: /dockerdata-nfs
 
-  aafCredsMountSubPath: data-router/dr-prov/aaf-props
-  aafCredsSize: 10M
-  aafCredsPath: /opt/app/osaaf/local
-
 ingress:
   enabled: false
   service:
@@ -111,7 +107,7 @@ mariadb:
   nameOverride: dmaap-dr-db
   replicaCount: 2
   config:
-    userCredentialsExternalSecret: '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
+    userCredentialsExternalSecret: *dbSecretName
     mysqlDatabase: datarouter
   service:
     name: dmaap-dr-db-svc
@@ -121,15 +117,22 @@ mariadb:
     size: 1Gi
     mountSubPath: data-router/dr-db-data
 
-#AAF local config
-aafConfig:
+#################################################################
+# AAF part
+#################################################################
+certInitializer:
+  nameOverride: dmaap-dr-prov-cert-initializer
   aafDeployFqi: deployer@people.osaaf.org
   aafDeployPass: demo123456!
+# aafDeployCredsExternalSecret: some secret
   fqdn: dmaap-dr-prov
   fqi: dmaap-dr-prov@dmaap-dr.onap.org
   publicFqdn: dmaap-dr.onap.org
   cadiLatitude: 0.0
   cadiLongitude: 0.0
+  app_ns: org.osaaf.aaf
+  credsPath: /opt/app/osaaf/local
+
 
 # Resource Limit flavor -By Default using small
 flavor: small
index fd16a0c..95f0e34 100644 (file)
@@ -81,6 +81,14 @@ spec:
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
+          - name: {{ include "common.fullname" . }}-cert
+            mountPath: /usr/local/openresty/nginx/ssl/cert/cert.crt
+            readOnly: true
+            subPath: "cert.crt"
+          - name: {{ include "common.fullname" . }}-cert
+            mountPath: /usr/local/openresty/nginx/html/cert/ca.crt
+            readOnly: true
+            subPath: "ca.crt"
           - mountPath: /usr/local/apiroute-works/logs
             name: {{ include "common.fullname" . }}-logs
           resources:
@@ -109,6 +117,9 @@ spec:
             name: {{ include "common.fullname" . }}-log-conf
             subPath: logback.xml
       volumes:
+        - name: {{ include "common.fullname" . }}-cert
+          secret:
+            secretName: {{ include "common.release" . }}-msb-https-cert
         - name: {{ include "common.fullname" . }}-log-conf
           configMap:
             name: {{ include "common.fullname" . }}-log
index 8975a32..f95f105 100644 (file)
@@ -81,6 +81,14 @@ spec:
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
+          - name: {{ include "common.fullname" . }}-cert
+            mountPath: /usr/local/openresty/nginx/ssl/cert/cert.crt
+            readOnly: true
+            subPath: "cert.crt"
+          - name: {{ include "common.fullname" . }}-cert
+            mountPath: /usr/local/openresty/nginx/html/cert/ca.crt
+            readOnly: true
+            subPath: "ca.crt"
           - mountPath: /usr/local/apiroute-works/logs
             name: {{ include "common.fullname" . }}-logs
           resources:
@@ -109,6 +117,9 @@ spec:
             name: {{ include "common.fullname" . }}-log-conf
             subPath: logback.xml
       volumes:
+        - name: {{ include "common.fullname" . }}-cert
+          secret:
+            secretName: {{ include "common.release" . }}-msb-https-cert
         - name: {{ include "common.fullname" . }}-log-conf
           configMap:
             name: {{ include "common.fullname" . }}-log
index 7d1314f..e718c8d 100644 (file)
@@ -1,22 +1,23 @@
 -----BEGIN CERTIFICATE-----
-MIIDqjCCApKgAwIBAgIJAOQWcdss4Qu5MA0GCSqGSIb3DQEBCwUAMIGKMQswCQYD
+MIID0TCCArmgAwIBAgIJAOQWcdss4QvKMA0GCSqGSIb3DQEBCwUAMIGKMQswCQYD
 VQQGEwJDTjERMA8GA1UECAwIc2ljaHVhbmcxEDAOBgNVBAcMB2NoZW5nZHUxDDAK
 BgNVBAoMA3p0ZTEOMAwGA1UECwwFemVuYXAxODA2BgNVBAMML1pURSBPcGVuUGFs
-ZXR0ZSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE3MB4XDTIwMDQyMjAy
-NTc1MFoXDTIyMDQyMjAyNTc1MFowYDELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB1Np
-Y2h1YW4xEDAOBgNVBAcMB0NoZW5nZHUxDTALBgNVBAoMBE9OQVAxDDAKBgNVBAsM
-A01TQjEQMA4GA1UEAwwHbXNiLWlhZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMa1YlTIL8APcmASbxrD7Q9BhWL9Hwi+FKO4HsIrSiJj/A/FLVe3kV2a
-xA7b5wdv44P0qQnh3pc0djlnZ47Fgli3lhEZ33+j5vrXHCjEFKiZZVeO+y/p+OcZ
-VMNiL+MPJNTNgMkPoaljs/U6fn6fFyAgMMIqqigxHJaNvz7IH+UpqbWWzZo7+JqC
-lBi8t5ZIDk18/3cPQWXIne+3MoYULdEayAS8/4wYoJANH1knmSG+J07f9uCXniiz
-4zFFngMGHm4kuKXJCAl5E6S5fPzsLKqtwbbn9kJNyWoNFDuc7zW5dPfqPVckHHQ8
-Dx0q2111UgrzrBZMW1RKmcwB+1YXip8CAwEAAaM8MDowCQYDVR0TBAIwADALBgNV
-HQ8EBAMCBeAwIAYDVR0RBBkwF4IVKi5zaW1wbGVkZW1vLm9uYXAub3JnMA0GCSqG
-SIb3DQEBCwUAA4IBAQCXSECDNzsg2MhVIVvviqxhpZWZ3sa7KxXlyd9iSmBzkneS
-+XiyUC575ZM3lmh1Kme35bWgz5R/w76XLSMBPxIX6uZ4HVNQqwSPv63Nk9+ON3IN
-iCn6ehHKJgT0rpx/aB3sIcE1hEtIWLGaaKVEb3DOuDbkbBT9eJbIgHKkT80PKynK
-l35dQRMiGBQiD8cBUxTOJaj7QohZ/aUWArZCOl0uvddkrs/IOCMY3BDQ0WZ7RYp3
-LwpgZVPzkVRaSLSq3TS07Re+nZcaht69T6mdMY5V0gW20O4J2nWMaldSmlNqcddb
-Nl5Xn0lRMW651ZzxEkcaXNtR78yLYi2JXtyQBgVA
+ZXR0ZSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE3MB4XDTIwMDUxMzAy
+MjIyN1oXDTIyMDUxMzAyMjIyN1owgYwxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdT
+aWNodWFuMRAwDgYDVQQHDAdDaGVuZ2R1MQ0wCwYDVQQKDARPTkFQMQwwCgYDVQQL
+DANNU0IxEDAOBgNVBAMMB21zYi1pYWcxKjAoBgkqhkiG9w0BCQEWG29uYXAtZGlz
+Y3Vzc0BsaXN0cy5vbmFwLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMa1YlTIL8APcmASbxrD7Q9BhWL9Hwi+FKO4HsIrSiJj/A/FLVe3kV2axA7b
+5wdv44P0qQnh3pc0djlnZ47Fgli3lhEZ33+j5vrXHCjEFKiZZVeO+y/p+OcZVMNi
+L+MPJNTNgMkPoaljs/U6fn6fFyAgMMIqqigxHJaNvz7IH+UpqbWWzZo7+JqClBi8
+t5ZIDk18/3cPQWXIne+3MoYULdEayAS8/4wYoJANH1knmSG+J07f9uCXniiz4zFF
+ngMGHm4kuKXJCAl5E6S5fPzsLKqtwbbn9kJNyWoNFDuc7zW5dPfqPVckHHQ8Dx0q
+2111UgrzrBZMW1RKmcwB+1YXip8CAwEAAaM2MDQwMgYDVR0RBCswKYIHbXNiLWlh
+Z4IHbXNiLWVhZ4IVKi5zaW1wbGVkZW1vLm9uYXAub3JnMA0GCSqGSIb3DQEBCwUA
+A4IBAQC9KKJ5x+EBHfdODbMIAufYinlbNRQ4xdG7tlRk0cRXnZoWi6yObQXmZuHV
+56M2ZIylKNab2Z0VBluQqoLJvByAHQJO1r+qsAMG/LXBRC1x3y5344vtEPbikpMs
+GHtxHomAu/JtSAlSL1Wvj7co3OUgVH/yNbccysVtqxxrfPrBhLfH/yDrFehmQ00T
+P8mmJG3qeOUII0pgUjBkGL52+YMN0qy0SgryBx86fR9Y1bQLdWNfsM1CUXE2q9xs
+FmU5Ry1pemTo68THSJs4wOnjLZ4kWTseTcEmQ6X2lfah8Ch0ffd3tttguNXnT1Xc
+axgwv2Cypja3bPbq9t8kfJhbDrYO
 -----END CERTIFICATE-----
diff --git a/kubernetes/msb/templates/secrets.yaml b/kubernetes/msb/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..7dcec5a
--- /dev/null
@@ -0,0 +1,26 @@
+{{/*
+# Copyright Â© 2020 Samsung Electronics
+#
+# 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.
+*/}}
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.release" . }}-msb-https-cert
+  labels: {{ include "common.labels" . | nindent 4 }}
+    app: {{ include "common.name" . }}
+    chart: {{ include "common.chart" . }}
+    release: {{ include "common.release" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/certificates/*").AsSecrets . | indent 2 }}
index 94a47fe..881ed22 100755 (executable)
@@ -238,7 +238,7 @@ server_url = https://{{.Values.config.aai.serviceName}}.{{ include "common.names
 #aai_retries = 3
 
 # The version of A&AI in v# format. (string value)
-server_url_version = v14
+server_url_version = v19
 
 # SSL/TLS certificate file in pem format. This certificate must be registered
 # with the A&AI endpoint. (string value)
index f4debe9..309b59c 100755 (executable)
@@ -25,7 +25,7 @@ global:
   commonConfigPrefix: onap-oof-has
   image:
     readiness: oomk8s/readiness-check:2.0.0
-    optf_has: onap/optf-has:2.0.3
+    optf_has: onap/optf-has:2.0.4
     filebeat: docker.elastic.co/beats/filebeat:5.5.0
 
 pullPolicy: Always
index bfee39b..9515f30 100644 (file)
@@ -44,8 +44,7 @@ osdf_temp:  # special configuration required for "workarounds" or testing
         slice_selection_policy_dir_urllc_1: "./test/policy-local-files/"
         slice_selection_policy_files_urllc_1:
             - vnfPolicy_URLLC_Core_1.json
-            - thresholdPolicy_URLLC_Core_1_reliability.json
-            - thresholdPolicy_URLLC_Core_1_latency.json
+            - thresholdPolicy_URLLC_Core_1.json
             - subscriber_policy_URLLC_1.json
 
 service_info:
index 5205a1d..13e0045 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/optf-osdf:2.0.3
+image: onap/optf-osdf:2.0.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -49,7 +49,7 @@ config:
 
   # Url and credentials for Conductor.
   conductorUrl: https://oof-has-api:8091/v1/plans/
-  conductorPingWaitTime: 60
+  conductorPingWaitTime: 10
   conductorMaxRetries: 30
   # versions to be set in HTTP header
   conductorMinorVersion: 0
index 90248b8..a0e5d1e 100644 (file)
@@ -63,5 +63,5 @@ BRMS_UEB_API_KEY=
 BRMS_UEB_API_SECRET=
 
 #Dependency.json file version
-BRMS_DEPENDENCY_VERSION=1.6.3
-BRMS_MODELS_DEPENDENCY_VERSION=2.2.5
+BRMS_DEPENDENCY_VERSION=1.6.4
+BRMS_MODELS_DEPENDENCY_VERSION=2.2.6
index b906e46..70a2e3e 100644 (file)
@@ -56,7 +56,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pe:1.6.3
+image: onap/policy-pe:1.6.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 3552b2e..7e332b7 100644 (file)
@@ -40,7 +40,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pdpd-cl:1.6.3
+image: onap/policy-pdpd-cl:1.6.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 39ac8a8..e8c96ce 100644 (file)
@@ -1,20 +1,11 @@
 apiVersion: extensions/v1beta1
 kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
+  selector: {{- include "common.selectors" . | nindent 4 }}
   replicas: {{ .Values.replicaCount }}
   template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
+    metadata: {{- include "common.templateMetadata" . | nindent 6 }}
     spec:
       initContainers:
       - command:
@@ -68,20 +59,19 @@ spec:
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command: ["/opt/app/policy/pap/bin/policy-pap.sh"]
           args: ["/opt/app/policy/pap/etc/mounted/config.json"]
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
+          ports: {{ include "common.containerPorts" . | nindent 12  }}
           # disable liveness probe when breakpoints set in debugger
           # so K8s doesn't restart unresponsive container
           {{- if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+              port: {{ .Values.liveness.port }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
           {{ end -}}
           readinessProbe:
             tcpSocket:
-              port: {{ .Values.service.internalPort }}
+              port: {{ .Values.readiness.port }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           volumeMounts:
index b6deb5c..5c4061e 100644 (file)
 #  SPDX-License-Identifier: Apache-2.0
 #  ============LICENSE_END=========================================================
 
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
+{{ include "common.service" . }}
index e5eef01..2bbefa1 100644 (file)
@@ -60,7 +60,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pap:2.2.2
+image: onap/policy-pap:2.2.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -96,18 +96,21 @@ liveness:
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
+  port: http-api
 
 readiness:
   initialDelaySeconds: 20
   periodSeconds: 10
+  port: http-api
 
 service:
   type: ClusterIP
   name: policy-pap
-  portName: policy-pap
-  internalPort: 6969
-  externalPort: 6969
-  nodePort: 42
+  useNodePortExt: true
+  ports:
+  - name: http-api
+    port: 6969
+    nodePort: 42
 
 ingress:
   enabled: false
index fa6c141..8921eab 100644 (file)
@@ -51,7 +51,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pe:1.6.3
+image: onap/policy-pe:1.6.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 8730c9e..9d52812 100644 (file)
@@ -44,7 +44,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-apex-pdp:2.3.1
+image: onap/policy-apex-pdp:2.3.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 906e86a..ba12db2 100644 (file)
@@ -46,7 +46,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-api:2.2.3
+image: onap/policy-api:2.2.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index c8d24e5..73c9e99 100644 (file)
@@ -58,7 +58,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-distribution:2.3.1
+image: onap/policy-distribution:2.3.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 63f50fd..c9ced1f 100644 (file)
@@ -51,7 +51,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-xacml-pdp:2.2.1
+image: onap/policy-xacml-pdp:2.2.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index f283d90..4de13ee 100644 (file)
@@ -67,7 +67,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pe:1.6.3
+image: onap/policy-pe:1.6.4
 mariadb_image: library/mariadb:10
 pullPolicy: Always
 
index c5d7864..00b9223 100644 (file)
@@ -16,3 +16,6 @@ dependencies:
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: certInitializer
+    version: ~6.x-0
+    repository: '@local'
index 420dbd3..38391ae 100644 (file)
@@ -94,7 +94,7 @@
     {{ if .Values.global.aafEnabled }}
     <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
-               keystoreFile="{{.Values.aafConfig.credsPath}}/{{.Values.aafConfig.keystoreFile}}"
+               keystoreFile="{{.Values.certInitializer.credsPath}}/{{.Values.certInitializer.keystoreFile}}"
                keystorePass="${javax.net.ssl.keyStorePassword}"
                clientAuth="false" sslProtocol="TLS" />
     {{ end }}
index d514fe6..feaee66 100644 (file)
@@ -26,17 +26,3 @@ metadata:
 data:
 {{ tpl (.Files.Glob "resources/config/deliveries/properties/ONAPPORTAL/*").AsConfig . | indent 2 }}
 {{ tpl (.Files.Glob "resources/server/*").AsConfig . | indent 2 }}
-
-{{ if .Values.global.aafEnabled }}
-{{- if .Values.aafConfig.addconfig -}}
----
-apiVersion: v1
-kind: ConfigMap
-{{- $suffix := "aaf-add-config" }}
-metadata: {{- include "common.resourceMetadata" (dict "suffix" $suffix "dot" . )| nindent 2 }}
-data:
-  aaf-add-config.sh: |-
-    /opt/app/aaf_config/bin/agent.sh;/opt/app/aaf_config/bin/agent.sh local showpass \
-    {{.Values.aafConfig.fqi}} {{ .Values.aafConfig.fqdn }} > {{ .Values.aafConfig.credsPath }}/mycreds.prop
-{{- end -}}
-{{- end -}}
index af00b5f..26d8ba5 100644 (file)
@@ -46,24 +46,22 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-      {{- if .Values.global.aafEnabled }}
-{{ include "common.aaf-config" . | indent 6 }}
-      {{- end }}
+{{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["bash","-c"]
         {{- if .Values.global.aafEnabled }}
-        args: ["export $(grep '^c' {{ .Values.aafConfig.credsPath }}/mycreds.prop | xargs -0);\
+        args: ["export $(grep '^c' {{ .Values.certInitializer.credsPath }}/mycreds.prop | xargs -0);\
                export _JAVA_OPTIONS=\"-Djavax.net.ssl.trustStorePassword=$cadi_truststore_password \
               -Djavax.net.ssl.keyStorePassword=$cadi_keystore_password_p12\";\
               /start-apache-tomcat.sh -i \"\" -n \"\" -b {{ .Values.global.env.tomcatDir }}"]
         env:
           - name: CATALINA_OPTS
             value: >
-              -Djavax.net.ssl.keyStore="{{ .Values.aafConfig.credsPath }}/{{ .Values.aafConfig.keystoreFile }}"
-              -Djavax.net.ssl.trustStore="{{ .Values.aafConfig.credsPath }}/{{ .Values.aafConfig.truststoreFile }}"
+              -Djavax.net.ssl.keyStore="{{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.keystoreFile }}"
+              -Djavax.net.ssl.trustStore="{{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.truststoreFile }}"
         {{- else }}
         args: ["/start-apache-tomcat.sh -i "" -n "" -b {{ .Values.global.env.tomcatDir }}"]
         {{- end }}
@@ -85,9 +83,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         volumeMounts:
-        {{- if .Values.global.aafEnabled }}
-{{ include "common.aaf-config-volume-mountpath" . | indent 8 }}
-        {{- end }}
+{{ include "common.certInitializer.volumeMount" . | indent 8 }}
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -139,9 +135,7 @@ spec:
         - name: var-log-onap
           mountPath: /var/log/onap
       volumes:
-        {{- if .Values.global.aafEnabled }}
-{{ include "common.aaf-config-volumes" . | indent 8 }}
-        {{- end }}
+{{ include "common.certInitializer.volumes" . | indent 8 }}
         - name: localtime
           hostPath:
             path: /etc/localtime
index cfab8e6..9564723 100644 (file)
@@ -26,7 +26,6 @@ global:
   loggingImage: beats/filebeat:5.5.0
   #AAF service
   aafEnabled: true
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
 
 #################################################################
 # Application configuration defaults.
@@ -34,36 +33,31 @@ global:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-app:3.2.2
+image: onap/portal-app:3.2.3
 pullPolicy: Always
 
 #AAF local config
 
 aafURL: https://aaf-service:8100/authz/
-aafConfig:
+certInitializer:
+  nameOverride: portal-app-cert-initializer
   aafDeployFqi: deployer@people.osaaf.org
   aafDeployPass: demo123456!
   fqdn: portal
   fqi: portal@portal.onap.org
-  publicFqdn: portal.onap.org
+  public_fqdn: portal.onap.org
   cadi_latitude: "38.0"
   cadi_longitude: "-72.0"
   credsPath: /opt/app/osaaf/local
   app_ns: org.osaaf.aaf
   permission_user: 1000
   permission_group: 999
-  addconfig: true
-  secret_uid: &aaf_secret_uid portal-app-aaf-deploy-creds
   keystoreFile: "org.onap.portal.p12"
   truststoreFile: "org.onap.portal.trust.jks"
-
-secrets:
-  - uid: *aaf_secret_uid
-    type: basicAuth
-    externalSecret: '{{ ternary (tpl (default "" .Values.aafConfig.aafDeployCredsExternalSecret) .) "aafIsDiabled" .Values.global.aafEnabled }}'
-    login: '{{ .Values.aafConfig.aafDeployFqi }}'
-    password: '{{ .Values.aafConfig.aafDeployPass }}'
-    passwordPolicy: required
+  aaf_add_config: >
+    /opt/app/aaf_config/bin/agent.sh;
+    /opt/app/aaf_config/bin/agent.sh local showpass \
+    {{.Values.fqi}} {{ .Values.fqdn }} > {{ .Values.credsPath }}/mycreds.prop
 
 # default number of instances
 replicaCount: 1
index 0ae7f4e..08157f7 100644 (file)
@@ -25,7 +25,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-db:3.2.2
+image: onap/portal-db:3.2.3
 pullPolicy: Always
 
 
index 3692579..079847c 100644 (file)
@@ -29,7 +29,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-wms:3.2.2
+image: onap/portal-wms:3.2.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 9393207..b932b04 100644 (file)
@@ -60,10 +60,8 @@ def wait_for_statefulset_complete(statefulset_name):
     try:
         response = api.read_namespaced_stateful_set(statefulset_name, namespace)
         s = response.status
-        if (s.updated_replicas == response.spec.replicas and
-                s.replicas == response.spec.replicas and
+        if (s.replicas == response.spec.replicas and
                 s.ready_replicas == response.spec.replicas and
-                s.current_replicas == response.spec.replicas and
                 s.observed_generation == response.metadata.generation):
             log.info("Statefulset " + statefulset_name + "  is ready")
             return True
index 77f1d25..51322d3 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 77f1d25542848d7a5fd32f57436c9f413e0a5919
+Subproject commit 51322d3b374588a051b4a5522fbd25ac92ffb328
index a0e9b53..ac0403b 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-backend:1.6.5
-backendInitImage: onap/sdc-backend-init:1.6.5
+image: onap/sdc-backend:1.6.6
+backendInitImage: onap/sdc-backend-init:1.6.6
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 3cef2cf..cabf2c1 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-cassandra:1.6.5
-cassandraInitImage: onap/sdc-cassandra-init:1.6.5
+image: onap/sdc-cassandra:1.6.6
+cassandraInitImage: onap/sdc-cassandra-init:1.6.6
 
 pullPolicy: Always
 
index 8754d0f..98452c2 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-frontend:1.6.5
+image: onap/sdc-frontend:1.6.6
 pullPolicy: Always
 
 config:
index 0471c03..f83000f 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-onboard-backend:1.6.5
-onboardingInitImage: onap/sdc-onboard-cassandra-init:1.6.5
+image: onap/sdc-onboard-backend:1.6.6
+onboardingInitImage: onap/sdc-onboard-cassandra-init:1.6.6
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index bcbad0d..5713b09 100644 (file)
@@ -56,7 +56,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-dmaap-listener-image:1.8.2
+image: onap/sdnc-dmaap-listener-image:1.8.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index d0455d5..749fe62 100644 (file)
@@ -56,7 +56,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ansible-server-image:1.8.2
+image: onap/sdnc-ansible-server-image:1.8.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 71ebb69..029159d 100644 (file)
@@ -73,7 +73,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/admportal-sdnc-image:1.8.2
+image: onap/admportal-sdnc-image:1.8.3
 config:
   dbFabricDB: mysql
   dbFabricUser: admin
index 7a19b12..2754ab2 100644 (file)
@@ -62,7 +62,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ueb-listener-image:1.8.2
+image: onap/sdnc-ueb-listener-image:1.8.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 6b2f662..a7ca81c 100644 (file)
@@ -106,7 +106,7 @@ spec:
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command: ["/bin/bash"]
-          args: ["-c", "/opt/sdnc/bin/startODL.sh"]
+          args: ["-c", "/opt/onap/sdnc/bin/startODL.sh"]
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.internalPort2 }}
index c8e9745..6001fab 100644 (file)
@@ -112,7 +112,7 @@ secrets:
 # application images
 repository: nexus3.onap.org:10001
 pullPolicy: Always
-image: onap/sdnc-image:1.8.2
+image: onap/sdnc-image:1.8.3
 
 
 # flag to enable debugging - application support required
@@ -302,7 +302,7 @@ localElasticCluster: true
 elasticsearch:
   nameOverride: sdnrdb
   name: sdnrdb-cluster
-  aafConfig:
+  certInitializer:
     fqdn: "sdnc"
     fqi_namespace: org.onap.sdnc
     fqi: "sdnc@sdnc.onap.org"
diff --git a/kubernetes/so/charts/so-appc-orchestrator/Chart.yaml b/kubernetes/so/charts/so-appc-orchestrator/Chart.yaml
new file mode 100644 (file)
index 0000000..ab2bad3
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2020 AT&T USA
+#
+# 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.
+
+apiVersion: v1
+description: A Helm chart for so appc orchestrator
+name: so-appc-orchestrator
+version: 6.0.0
diff --git a/kubernetes/so/charts/so-appc-orchestrator/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-appc-orchestrator/resources/config/overrides/override.yaml
new file mode 100644 (file)
index 0000000..c897f48
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright Â© 2020 AT&T USA
+#
+# 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.
+
+server:
+  port: {{ index .Values.containerPort }}
+  tomcat:
+    max-threads: 50
+  ssl-enable: false
+mso:
+  logPath: ./logs/soappcorch
+  auth: {{ include "helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" .Values.auth.rest.aafEncrypted "value2" .Values.mso.auth )}}
+  msoKey: {{ .Values.global.app.msoKey }}
+  config:
+    {{ if eq .Values.global.security.aaf.enabled true }}
+    cadi: {{ include "cadi.keys" . | nindent 8}}
+    {{- else }}
+    cadi:
+      aafId: {{ .Values.mso.basicUser }}
+    {{- end }}
+  workflow:
+    endpoint: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/sobpmnengine
+    topics:
+      retryMultiplier: 1000
+appc:
+  client:
+    topic:
+      read:
+        name: {{ .Values.appc.client.topic.read.name }}
+        timeout: {{ .Values.appc.client.topic.read.timeout }}
+      write: {{ .Values.appc.client.topic.write }}
+      sdnc:
+        read: {{ .Values.appc.client.topic.sdnc.read }}
+        write: {{ .Values.appc.client.topic.sdnc.write }}
+    response:
+      timeout: {{ .Values.appc.client.response.timeout }}
+    key: {{ .Values.appc.client.key }}
+    secret: {{ .Values.appc.client.secret }}
+    service: ueb
+    poolMembers: message-router.{{ include "common.namespace" . }}:3904,message-router.{{ include "common.namespace" . }}:3904
+spring:
+  security:
+    usercredentials:
+    -
+      username: ${ACTUATOR_USERNAME}
+      password: ${ACTUATOR_PASSWORD}
+      role: ACTUATOR
diff --git a/kubernetes/so/charts/so-appc-orchestrator/templates/configmap.yaml b/kubernetes/so/charts/so-appc-orchestrator/templates/configmap.yaml
new file mode 100755 (executable)
index 0000000..8c0ee29
--- /dev/null
@@ -0,0 +1,41 @@
+# Copyright Â© 2020 AT&T USA
+#
+# 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.
+
+apiVersion: v1
+data:
+  LOG_PATH: {{ index .Values.logPath }}
+  APP: {{ index .Values.app }}
+  ACTIVE_PROFILE: {{ include "helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" "aaf" "value2" "basic")}}
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ include "common.release" . }}
+    heritage: {{ .Release.Service }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-app-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ include "common.release" . }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/so-appc-orchestrator/templates/deployment.yaml b/kubernetes/so/charts/so-appc-orchestrator/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..b9a39fe
--- /dev/null
@@ -0,0 +1,83 @@
+# Copyright Â© 2020 AT&T USA
+#
+# 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.
+
+apiVersion: apps/v1
+kind: Deployment
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+spec:
+  selector: {{- include "common.selectors" . | nindent 4 }}
+  replicas: {{ index .Values.replicaCount }}
+  minReadySeconds: {{ index .Values.minReadySeconds }}
+  strategy:
+    type: {{ index .Values.updateStrategy.type }}
+    rollingUpdate:
+      maxUnavailable: {{ index .Values.updateStrategy.maxUnavailable }}
+      maxSurge: {{ index .Values.updateStrategy.maxSurge }}
+  template:
+    metadata:
+      labels: {{- include "common.labels" . | nindent 8 }}
+    spec:
+      initContainers: {{ include "so.certificate.container_importer" . | nindent 6 }}
+      - name: {{ include "common.name" . }}-pass-encoder
+        command:
+        - sh
+        args:
+        {{/* bcrypt plain text and convert to OpenBSD variant using sed */}}
+        - -c
+        - htpasswd -bnBC 10 "" "${ACTUATOR_PASSWORD}" | tr -d ':\n' | sed 's/\$2y/\$2a/' 1>/tmp/app/encoded;
+        env:
+        - name: ACTUATOR_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "server-actuator-creds" "key" "password") | indent 10 }}
+        image: {{ .Values.global.dockerHubRepository }}/{{ .Values.global.htpasswdImage }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: encoder
+          mountPath: /tmp/app
+      containers:
+      - name: {{ include "common.name" . }}
+        command:
+          - sh
+        args:
+          - -c
+          - export ACTUATOR_PASSWORD="$(cat /tmp/app/encoded)"; ./start-app.sh
+        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        resources: {{ include "common.resources" . | nindent 12 }}
+        env:
+        - name: ACTUATOR_USERNAME
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "server-actuator-creds" "key" "login") | indent 10 }}
+        envFrom:
+        - configMapRef:
+            name: {{ include "common.fullname" . }}-configmap
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        ports: {{- include "common.containerPorts" . | nindent 10 }}
+        volumeMounts: {{ include "so.certificate.volume-mounts" . | nindent 8 }}
+        - name: logs
+          mountPath: /app/logs
+        - name: encoder
+          mountPath: /tmp/app
+        - name: config
+          mountPath: /app/config
+          readOnly: true
+{{ include "helpers.livenessProbe" .| indent 8 }}
+      volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
+      - name: logs
+        emptyDir: {}
+      - name: encoder
+        emptyDir:
+          medium: Memory
+      - name: config
+        configMap:
+            name: {{ include "common.fullname" . }}-app-configmap
+      imagePullSecrets:
+        - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/so/charts/so-appc-orchestrator/templates/secret.yaml b/kubernetes/so/charts/so-appc-orchestrator/templates/secret.yaml
new file mode 100644 (file)
index 0000000..bd7eb8e
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright Â© 2020 Samsung Electronics
+#
+# 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.
+
+{{ include "common.secretFast" . }}
diff --git a/kubernetes/so/charts/so-appc-orchestrator/templates/service.yaml b/kubernetes/so/charts/so-appc-orchestrator/templates/service.yaml
new file mode 100644 (file)
index 0000000..fc3e287
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright Â© 2020 AT&T USA
+#
+# 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.
+
+{{ include "common.service" . }}
diff --git a/kubernetes/so/charts/so-appc-orchestrator/values.yaml b/kubernetes/so/charts/so-appc-orchestrator/values.yaml
new file mode 100644 (file)
index 0000000..f10873d
--- /dev/null
@@ -0,0 +1,125 @@
+# Copyright Â© 2020 AT&T USA
+#
+# 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.
+#################################################################
+# Global configuration defaults.
+#################################################################
+
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.2
+  persistence:
+    mountPath: /dockerdata-nfs
+  htpasswdImage: xmartlabs/htpasswd
+  dockerHubRepository: docker.io
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: db-user-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.db.userCredsExternalSecret) . }}'
+    login: '{{ .Values.db.userName }}'
+    password: '{{ .Values.db.userPassword }}'
+    passwordPolicy: required
+  - uid: db-admin-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.db.adminCredsExternalSecret) . }}'
+    login: '{{ .Values.db.adminName }}'
+    password: '{{ .Values.db.adminPassword }}'
+    passwordPolicy: required
+  - uid: "so-onap-certs"
+    externalSecret: '{{ tpl (default "" .Values.certSecret) . }}'
+    type: generic
+    filePaths: '{{ .Values.secretsFilePaths }}'
+  - uid: server-actuator-creds
+    name: '{{ include "common.release" . }}-so-appc-actuator-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.actuatorCredsExternalSecret) . }}'
+    login: '{{ .Values.server.actuator.username }}'
+    password: '{{ .Values.server.actuator.password }}'
+    passwordPolicy: required
+
+#secretsFilePaths: |
+#  - 'my file 1'
+#  - '{{ include "templateThatGeneratesFileName" . }}'
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+repository: nexus3.onap.org:10001
+image: onap/so/so-appc-orchestrator:1.6.0
+pullPolicy: Always
+
+db:
+  userName: so_user
+  userPassword: so_User123
+  # userCredsExternalSecret: some secret
+  adminName: so_admin
+  adminPassword: so_Admin123
+  # adminCredsExternalSecret: some secret
+server:
+  actuator:
+    username: mso_admin
+    password: password1$
+replicaCount: 1
+minReadySeconds: 10
+containerPort: 8080
+logPath: ./logs/soappcorch
+app: appc-orchestrator
+service:
+  name: so-appc-orchestrator
+  type: ClusterIP
+  ports:
+  - port: 8080
+    name: http
+updateStrategy:
+  type: RollingUpdate
+  maxUnavailable: 1
+  maxSurge: 1
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      memory: 4Gi
+      cpu: 2000m
+    requests:
+      memory: 1Gi
+      cpu: 500m
+  large:
+    limits:
+      memory: 8Gi
+      cpu: 4000m
+    requests:
+      memory: 2Gi
+      cpu: 1000m
+  unlimited: {}
+livenessProbe:
+    path: /manage/health
+    port: 8083
+    scheme: HTTP
+    initialDelaySeconds: 600
+    periodSeconds: 60
+    timeoutSeconds: 10
+    successThreshold: 1
+    failureThreshold: 3
+ingress:
+  enabled: false
+nodeSelector: {}
+tolerations: []
+affinity: {}
index 8c21a99..e57ea34 100755 (executable)
@@ -45,7 +45,7 @@ pnf:
     consumerId: consumerId
     topicListenerDelayInSeconds: 5
 bpelURL: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081
-msb-ip: msb-iag.{{ include "common.namespace" . }}
+msb-ip: msb-iag
 msb-port: 80
 mso:
   rainyDay:
index 71c7cee..b6ba63e 100755 (executable)
@@ -57,7 +57,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/bpmn-infra:1.6.1
+image: onap/so/bpmn-infra:1.6.2
 pullPolicy: Always
 
 db:
index 4d30ae7..70d008b 100755 (executable)
@@ -54,7 +54,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/catalog-db-adapter:1.6.1
+image: onap/so/catalog-db-adapter:1.6.2
 pullPolicy: Always
 
 db:
index e3f5c3c..1272dbd 100644 (file)
@@ -57,7 +57,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/so-monitoring:1.6.1
+image: onap/so/so-monitoring:1.6.2
 pullPolicy: Always
 
 db:
index 6a5f5fb..7412dfa 100755 (executable)
@@ -69,7 +69,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/nssmf-adapter:1.6.1
+image: onap/so/nssmf-adapter:1.6.2
 pullPolicy: Always
 
 db:
index 3ecf3f5..dde3b3e 100755 (executable)
@@ -102,7 +102,7 @@ mso:
       auth: {{ include "helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" .Values.global.aaf.auth.encrypted "value2" .Values.mso.db.auth )}}
   auth: {{ include "helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" .Values.aaf.auth.encrypted "value2" .Values.mso.auth )}}
   logPath: ./logs/openstack
-  msb-ip: msb-iag.{{ include "common.namespace" . }}
+  msb-ip: msb-iag
   msb-port: 443
   msb-scheme: https
   workflow:
index f2cd74d..e611ee3 100755 (executable)
@@ -51,7 +51,7 @@ secrets:
 #################################################################
 # Application configuration defaults.
 #################################################################
-image: onap/so/openstack-adapter:1.6.1
+image: onap/so/openstack-adapter:1.6.2
 pullPolicy: Always
 repository: nexus3.onap.org:10001
 
index 9018c09..2541d0e 100755 (executable)
@@ -52,7 +52,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/request-db-adapter:1.6.1
+image: onap/so/request-db-adapter:1.6.2
 pullPolicy: Always
 
 db:
index 31fdb63..3cba4a0 100755 (executable)
@@ -52,7 +52,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/sdc-controller:1.6.1
+image: onap/so/sdc-controller:1.6.2
 pullPolicy: Always
 
 db:
index ce42af0..0ea7e69 100755 (executable)
@@ -55,7 +55,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/sdnc-adapter:1.6.1
+image: onap/so/sdnc-adapter:1.6.2
 pullPolicy: Always
 
 db:
index 434a3e1..5f9d584 100755 (executable)
@@ -37,7 +37,7 @@ secrets:
 #################################################################
 # Application configuration defaults.
 #################################################################
-image: onap/so/ve-vnfm-adapter:1.6.1
+image: onap/so/ve-vnfm-adapter:1.6.2
 pullPolicy: Always
 replicaCount: 1
 service:
index ea61f50..dec3448 100755 (executable)
@@ -39,7 +39,7 @@ mso:
   logPath: ./logs/vfc
   config:
     cadi: {{ include "cadi.keys" . | nindent 8}}
-  msb-ip: msb-iag.{{ include "common.namespace" . }}
+  msb-ip: msb-iag
   msb-port: 80
   adapters:
     requestDb:
index 28ca701..d139b49 100755 (executable)
@@ -52,7 +52,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/vfc-adapter:1.6.1
+image: onap/so/vfc-adapter:1.6.2
 pullPolicy: Always
 
 db:
index 10846cf..1166eab 100755 (executable)
@@ -42,7 +42,7 @@ mso:
   logPath: ./logs/vnfm-adapter
   config:
     cadi: {{ include "cadi.keys" . | nindent 8}}
-  msb-ip: msb-iag.{{ include "common.namespace" . }}
+  msb-ip: msb-iag
   msb-port: 80
 sdc:
   username: {{ include "helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" .Values.aaf.auth.username "value2" .Values.sdc.username )}}
@@ -54,7 +54,7 @@ vnfmadapter:
 etsi-catalog-manager:
   vnfpkgm:
   {{- if .Values.global.msbEnabled }}
-    endpoint: https://msb-iag.{{ include "common.namespace" . }}:443/api/vnfpkgm/v1
+    endpoint: https://msb-iag:443/api/vnfpkgm/v1
     http:
       client:
         ssl:
index f911e49..9ddc0dd 100755 (executable)
@@ -40,7 +40,7 @@ secrets:
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/vnfm-adapter:1.6.1
+image: onap/so/vnfm-adapter:1.6.2
 pullPolicy: Always
 
 replicaCount: 1
index a8910b2..02c4d6e 100755 (executable)
@@ -137,7 +137,7 @@ dbCreds:
   adminName: so_admin
 
 repository: nexus3.onap.org:10001
-image: onap/so/api-handler-infra:1.6.1
+image: onap/so/api-handler-infra:1.6.2
 pullPolicy: Always
 replicaCount: 1
 minReadySeconds: 10
@@ -457,3 +457,35 @@ so-mariadb:
     backupCredsExternalSecret: *dbBackupCredsSecretName
     userCredsExternalSecret: *dbUserCredsSecretName
     adminCredsExternalSecret: *dbAdminCredsSecretName
+so-appc-orchestrator:
+  certSecret: *so-certs
+  db:
+    <<: *dbSecrets
+  mso:
+    basicUser: poBpmn
+    auth: BEA8637716A7EB617DF472BA6552D22F68C1CB17B0D094D77DDA562F4ADAAC4457CAB848E1A4
+    config:
+      cadi:
+        aafId: so@so.onap.org
+        aafPassword: enc:EME-arXn2lx8PO0f2kEtyK7VVGtAGWavXorFoxRmPO9
+        apiEnforcement: org.onap.so.openStackAdapterPerm
+        noAuthn: /manage/health
+  appc:
+    client:
+      topic:
+        read:
+          name: APPC-LCM-WRITE
+          timeout: 360000
+        write: APPC-LCM-READ
+        sdnc:
+          read: SDNC-LCM-WRITE
+          write: SDNC-LCM-READ
+      response:
+        timeout: 3600000
+      key: VIlbtVl6YLhNUrtU
+      secret: 64AG2hF4pYeG2pq7CT6XwUOT
+      service: ueb
+  auth:
+    rest:
+      aaf: Basic c29Ac28ub25hcC5vcmc6ZGVtbzEyMzQ1Ngo=
+      aafEncrypted: 3EDC974C5CD7FE54C47C7490AF4D3B474CDD7D0FFA35A7ACDE3E209631E45F428976EAC0858874F17390A13149E63C90281DD8D20456
index 03265d4..be34e3e 100644 (file)
@@ -25,7 +25,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/usecase-ui-server:3.0.1
+image: onap/usecase-ui-server:3.0.4
 pullPolicy: Always
 
 # application configuration
index 2c15c96..79b649c 100644 (file)
@@ -25,7 +25,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/usecase-ui:3.0.1
+image: onap/usecase-ui:3.0.4
 pullPolicy: Always
 
 # application configuration
index 82bef2d..e6a489b 100644 (file)
@@ -44,7 +44,7 @@ secrets:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/vnfsdk/refrepo:1.5.1
+image: onap/vnfsdk/refrepo:1.5.2
 postgresRepository: crunchydata
 postgresImage: crunchy-postgres:centos7-10.3-1.8.2
 pullPolicy: Always