Merge "[COMMON] Use common aaf template in elasticsearch"
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>
Wed, 27 May 2020 07:40:56 +0000 (07:40 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 27 May 2020 07:40:56 +0000 (07:40 +0000)
38 files changed:
kubernetes/aaf/charts/aaf-cass/values.yaml
kubernetes/aaf/charts/aaf-hello/values.yaml
kubernetes/aaf/values.yaml
kubernetes/appc/charts/appc-cdt/values.yaml
kubernetes/appc/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/certInitializer/templates/_certInitializer.yaml
kubernetes/common/common/templates/_pod.tpl
kubernetes/common/common/templates/_utils.tpl [new file with mode: 0644]
kubernetes/common/postgres/templates/_deployment.tpl
kubernetes/common/readinessCheck/Chart.yaml [moved from kubernetes/common/common/templates/_tplValue.tpl with 59% similarity]
kubernetes/common/readinessCheck/requirements.yaml [new file with mode: 0644]
kubernetes/common/readinessCheck/templates/_readinessCheck.tpl [new file with mode: 0644]
kubernetes/common/readinessCheck/values.yaml [new file with mode: 0644]
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/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/policy/charts/brmsgw/resources/config/pe/brmsgw.conf
kubernetes/policy/charts/brmsgw/values.yaml
kubernetes/policy/charts/drools/values.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/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-vnfm-adapter/resources/config/overrides/override.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 bd99bca..e850820 100644 (file)
@@ -26,7 +26,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/appc-cdt-image:1.7.1
+image: onap/appc-cdt-image:1.7.2
 pullPolicy: Always
 
 # application configuration
index 45a9b4c..1386a06 100644 (file)
@@ -57,7 +57,7 @@ secrets:
 flavor: small
 # application image
 repository: nexus3.onap.org:10001
-image: onap/appc-image:1.7.1
+image: onap/appc-image:1.7.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
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 7ac360b..eddc7bc 100644 (file)
@@ -41,8 +41,7 @@
 {{-   $dot := default . .dot -}}
 {{-   $initRoot := default $dot.Values.certInitializer .initRoot -}}
 {{-   $initName := default "certInitializer" -}}
-{{/* Our version of helm doesn't support deepCopy so we need this nasty trick */}}
-{{- $subchartDot := mergeOverwrite (deepCopy (omit $dot "Values")) (dict "Chart" (set (fromJson (toJson $dot.Chart)) "Name" $initRoot.nameOverride) "Values" (mergeOverwrite (deepCopy $initRoot) (dict "global" $dot.Values.global))) }}
+{{- $subchartDot := fromJson (include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot)) }}
 - name: {{ include "common.name" $dot }}-aaf-readiness
   image: "{{ $subchartDot.Values.global.readinessRepository }}/{{ $subchartDot.Values.global.readinessImage }}"
   imagePullPolicy: {{ $subchartDot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }}
index d3fc25a..de25485 100644 (file)
 {{-     end }}
 {{-   end }}
 {{- end -}}
+
+{{/*
+   Generate securityContext for pod
+*/}}
+{{- define "common.podSecurityContext" -}}
+securityContext:
+  runAsUser: {{ .Values.securityContext.user_id }}
+  runAsGroup: {{ .Values.securityContext.group_id }}
+  fsGroup: {{ .Values.securityContext.group_id }}
+{{- end }}
+
+{{/*
+   Generate securityContext for container
+*/}}
+{{- define "common.containerSecurityContext" -}}
+securityContext:
+  readOnlyRootFilesystem: true
+  privileged: false
+  allowPrivilegeEscalation: false
+{{- end }}
+
diff --git a/kubernetes/common/common/templates/_utils.tpl b/kubernetes/common/common/templates/_utils.tpl
new file mode 100644 (file)
index 0000000..ece786f
--- /dev/null
@@ -0,0 +1,41 @@
+{{/*
+# Copyright © 2019 Orange
+#
+# 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.
+*/}}
+
+{{/*
+Renders a value that contains template.
+Usage:
+{{ include "common.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }}
+*/}}
+{{- define "common.tplValue" -}}
+    {{- if typeIs "string" .value }}
+        {{- tpl .value .context }}
+    {{- else }}
+        {{- tpl (.value | toYaml) .context }}
+    {{- end }}
+{{- end -}}
+
+{{/*
+Retrieve values from the subchart, not from the main chart
+Usage:
+{{- $initRoot := default $dot.Values.subChartName .initRoot -}}
+{{  $subchartDot := fromJson (include "common.subChartDot" (dict "dot" . "initRoot" $initRoot)) }}
+*/}}
+{{- define "common.subChartDot" }}
+{{- $initRoot := .initRoot }}
+{{- $dot := .dot }}
+{{/* Our version of helm doesn't support deepCopy so we need this nasty trick */}}
+{{ mergeOverwrite (deepCopy (omit $dot "Values")) (dict "Chart" (set (fromJson (toJson $dot.Chart)) "Name" $initRoot.nameOverride) "Values" (mergeOverwrite (deepCopy $initRoot) (dict "global" $dot.Values.global))) | toJson }}
+{{- end -}}
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
@@ -1,5 +1,4 @@
-{{/*
-# Copyright © 2019 Orange
+# Copyright © 2017 Amdocs, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # 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.
-*/}}
 
-{{/*
-Renders a value that contains template.
-Usage:
-{{ include "common.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }}
-*/}}
-{{- define "common.tplValue" -}}
-    {{- if typeIs "string" .value }}
-        {{- tpl .value .context }}
-    {{- else }}
-        {{- tpl (.value | toYaml) .context }}
-    {{- end }}
-{{- end -}}
+apiVersion: v1
+description: Template used to wait for other deployment/sts/jobs in onap
+name: readinessCheck
+version: 6.0.0
diff --git a/kubernetes/common/readinessCheck/requirements.yaml b/kubernetes/common/readinessCheck/requirements.yaml
new file mode 100644 (file)
index 0000000..237f1d1
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2018 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~6.x-0
+    repository: 'file://../common'
diff --git a/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl b/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl
new file mode 100644 (file)
index 0000000..5c70e78
--- /dev/null
@@ -0,0 +1,68 @@
+{{/*
+# Copyright © 2020 Orange
+#
+# 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.
+*/}}
+
+{{/*
+  Generate readiness part for a pod
+  Will look by default to .Values.wait_for
+
+  Value of wait_for is an array of all pods /jobs to wait:
+
+  Example:
+
+  wait_for:
+    - aaf-locate
+    - aaf-cm
+    - aaf-service
+
+  The function can takes two arguments (inside a dictionary):
+     - .dot : environment (.)
+     - .wait_for : list of containers / jobs to wait for (default to
+                   .Values.wait_for)
+
+  Example calls:
+    {{ include "common.readinessCheck.waitFor" . }}
+    {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.where.my.wait_for.is ) }}
+*/}}
+{{- define "common.readinessCheck.waitFor" -}}
+{{-   $dot := default . .dot -}}
+{{-   $initRoot := default $dot.Values.readinessCheck .initRoot -}}
+{{/*  Our version of helm doesn't support deepCopy so we need this nasty trick */}}
+{{-   $subchartDot := include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot) }}
+{{-   $wait_for := default $dot.Values.wait_for .wait_for -}}
+- name: {{ include "common.name" $dot }}-{{ $wait_for.name }}-readiness
+  image: "{{ $subchartDot.Values.global.readinessRepository }}/{{ $subchartDot.Values.global.readinessImage }}"
+  imagePullPolicy: {{ $subchartDot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }}
+  command:
+  - /root/ready.py
+  args:
+  {{- range $container := $wait_for.containers }}
+  - --container-name
+  - {{ tpl $container $dot }}
+  {{- end }}
+  env:
+  - name: NAMESPACE
+    valueFrom:
+      fieldRef:
+        apiVersion: v1
+        fieldPath: metadata.namespace
+  resources:
+    limits:
+      cpu: {{ $subchartDot.Values.limits.cpu }}
+      memory: {{ $subchartDot.Values.limits.memory }}
+    requests:
+      cpu: {{ $subchartDot.Values.requests.cpu }}
+      memory: {{ $subchartDot.Values.requests.memory }}
+{{- end -}}
diff --git a/kubernetes/common/readinessCheck/values.yaml b/kubernetes/common/readinessCheck/values.yaml
new file mode 100644 (file)
index 0000000..8417407
--- /dev/null
@@ -0,0 +1,25 @@
+# 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.
+
+global:
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.2.1
+  pullPolicy: Always
+
+limits:
+  cpu: 100m
+  memory: 100Mi
+requests:
+  cpu: 3m
+  memory: 20Mi
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 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 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 e5eef01..dc7a58d 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
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 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 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 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 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 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