Merge "[POLICY] Uses new tpls for repos / images"
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Mon, 30 Nov 2020 09:17:45 +0000 (09:17 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 30 Nov 2020 09:17:45 +0000 (09:17 +0000)
114 files changed:
docs/oom_setup_kubernetes_rancher.rst
docs/openstack-k8s-controlnode.sh
kubernetes/common/network-name-gen/requirements.yaml
kubernetes/common/network-name-gen/templates/deployment.yaml
kubernetes/common/network-name-gen/values.yaml
kubernetes/consul/charts/consul-server/templates/statefulset.yaml
kubernetes/consul/charts/consul-server/values.yaml
kubernetes/consul/templates/deployment.yaml
kubernetes/consul/values.yaml
kubernetes/contrib/Makefile
kubernetes/contrib/components/Makefile [new file with mode: 0644]
kubernetes/contrib/components/awx/Makefile
kubernetes/contrib/components/awx/charts/awx/values.yaml [deleted file]
kubernetes/contrib/components/awx/components/Makefile [new file with mode: 0644]
kubernetes/contrib/components/awx/components/awx-postgres/Chart.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/Chart.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/awx/components/awx-postgres/templates/NOTES.txt [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/deployment.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/deployment.yaml with 96% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/pv.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/pv.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/pvc.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/pvc.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/service.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/values.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/values.yaml with 98% similarity]
kubernetes/contrib/components/awx/requirements.yaml
kubernetes/contrib/components/awx/resources/config/credentials.py [moved from kubernetes/contrib/components/awx/charts/awx/resources/config/credentials.py with 100% similarity]
kubernetes/contrib/components/awx/resources/config/environment.sh [moved from kubernetes/contrib/components/awx/charts/awx/resources/config/environment.sh with 100% similarity]
kubernetes/contrib/components/awx/templates/configmap.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/job.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/job.yaml with 95% similarity]
kubernetes/contrib/components/awx/templates/secret.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/secret.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/service.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/serviceaccout.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/serviceaccout.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/statefulset.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/statefulset.yaml with 93% similarity]
kubernetes/contrib/components/awx/values.yaml
kubernetes/contrib/components/ejbca/requirements.yaml
kubernetes/contrib/components/ejbca/templates/deployment.yaml
kubernetes/contrib/components/ejbca/values.yaml
kubernetes/contrib/components/netbox/Makefile
kubernetes/contrib/components/netbox/components/Makefile [new file with mode: 0644]
kubernetes/contrib/components/netbox/components/netbox-app/.helmignore [moved from kubernetes/contrib/components/netbox/charts/netbox-app/.helmignore with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/Chart.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/Chart.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/configuration/configuration.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/configuration/configuration.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/configuration/gunicorn_config.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/configuration/gunicorn_config.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/configuration/ldap_config.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/configuration/ldap_config.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/initializers/custom_fields.yml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/initializers/custom_fields.yml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/initializers/groups.yml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/initializers/groups.yml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/initializers/users.yml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/initializers/users.yml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/provisioning/provision.sh [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/provisioning/provision.sh with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/startup_scripts/00_users.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/startup_scripts/00_users.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/startup_scripts/10_groups.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/startup_scripts/10_groups.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/startup_scripts/20_custom_fields.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/startup_scripts/20_custom_fields.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/NOTES.txt [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/configmap.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/deployment.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/deployment.yaml with 98% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/job.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/job.yaml with 92% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/pv.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/pv.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/pvc.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/pvc.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/secrets.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/secrets.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/service.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/values.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/values.yaml with 95% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/.helmignore [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/.helmignore with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/Chart.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/Chart.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/netbox/components/netbox-nginx/resources/config/nginx.conf [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/resources/config/nginx.conf with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/NOTES.txt [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/configmap.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/deployment.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/deployment.yaml with 96% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/service.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/values.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/values.yaml with 99% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/.helmignore [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/.helmignore with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/Chart.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/Chart.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/NOTES.txt [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/configmap.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/deployment.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/deployment.yaml with 96% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/pv.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/pv.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/pvc.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/pvc.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/service.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/values.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/values.yaml with 98% similarity]
kubernetes/contrib/components/netbox/requirements.yaml
kubernetes/contrib/components/netbox/values.yaml
kubernetes/contrib/dns-server-for-vhost-ingress-testing/bind9dns/templates/deployment.yaml
kubernetes/contrib/requirements.yaml
kubernetes/platform/components/oom-cert-service/Makefile
kubernetes/sdnc/components/dmaap-listener/requirements.yaml
kubernetes/sdnc/components/dmaap-listener/templates/deployment.yaml
kubernetes/sdnc/components/dmaap-listener/values.yaml
kubernetes/sdnc/components/sdnc-ansible-server/requirements.yaml
kubernetes/sdnc/components/sdnc-ansible-server/templates/deployment.yaml
kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
kubernetes/sdnc/components/sdnc-prom/requirements.yaml
kubernetes/sdnc/components/sdnc-prom/templates/deployment.yaml
kubernetes/sdnc/components/sdnc-prom/values.yaml
kubernetes/sdnc/components/sdnc-web/requirements.yaml
kubernetes/sdnc/components/sdnc-web/templates/deployment.yaml
kubernetes/sdnc/components/sdnc-web/values.yaml
kubernetes/sdnc/components/ueb-listener/requirements.yaml
kubernetes/sdnc/components/ueb-listener/templates/deployment.yaml
kubernetes/sdnc/components/ueb-listener/values.yaml
kubernetes/sdnc/requirements.yaml
kubernetes/sdnc/templates/job.yaml
kubernetes/sdnc/templates/sdnrdb-init-job.yaml
kubernetes/sdnc/templates/statefulset.yaml
kubernetes/sdnc/values.yaml
kubernetes/so/components/so-cnf-adapter/Chart.yaml [new file with mode: 0755]
kubernetes/so/components/so-cnf-adapter/requirements.yaml [new file with mode: 0755]
kubernetes/so/components/so-cnf-adapter/resources/config/overrides/override.yaml [new file with mode: 0755]
kubernetes/so/components/so-cnf-adapter/templates/configmap.yaml [new file with mode: 0755]
kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml [new file with mode: 0755]
kubernetes/so/components/so-cnf-adapter/templates/secret.yaml [moved from kubernetes/contrib/components/awx/charts/awx/Chart.yaml with 83% similarity, mode: 0644]
kubernetes/so/components/so-cnf-adapter/templates/service.yaml [new file with mode: 0755]
kubernetes/so/components/so-cnf-adapter/values.yaml [new file with mode: 0755]
kubernetes/so/requirements.yaml
kubernetes/so/resources/config/overrides/override.yaml
kubernetes/so/values.yaml

index 67ebca5..eea46c0 100644 (file)
@@ -275,6 +275,13 @@ Install RKE
 Download and install RKE on a VM, desktop or laptop.
 Binaries can be found here for Linux and Mac: https://github.com/rancher/rke/releases/tag/v1.0.6
 
+.. note::
+  There are several ways to install RKE. Further parts of this documentation assumes that you have rke command available.
+  If you don't know how to install RKE you may follow the below steps:
+
+  * chmod +x ./rke_linux-amd64
+  * sudo mv ./rke_linux-amd64 /user/local/bin/rke
+
 RKE requires a *cluster.yml* as input. An example file is show below that
 describes a Kubernetes cluster that will be mapped onto the OpenStack VMs
 created earlier in this guide.
@@ -357,6 +364,8 @@ Validate deployment
 
 ::
 
+  > mkdir -p ~/.kube
+
   > cp kube_config_cluster.yml ~/.kube/config.onap
 
   > export KUBECONFIG=~/.kube/config.onap
index 1d230c2..cd219aa 100644 (file)
@@ -27,5 +27,10 @@ docker login -u docker -p docker nexus3.onap.org:10001
 
 sudo apt-get install make -y
 
+#nfs server
+sudo apt-get install nfs-kernel-server -y
+sudo mkdir -p /dockerdata-nfs
+sudo chown nobody:nogroup /dockerdata-nfs/
+
 
 exit 0
index 8c2277c..63e1330 100644 (file)
@@ -16,6 +16,9 @@ dependencies:
   - name: common\r
     version: ~6.x-0\r
     repository: 'file://../common'\r
+  - name: repositoryGenerator\r
+    version: ~6.x-0\r
+    repository: 'file://../repositoryGenerator'\r
   - name: mariadb-galera\r
     version: ~6.x-0\r
     repository: 'file://../mariadb-galera'\r
index c97c048..16d93c6 100644 (file)
@@ -53,7 +53,7 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
@@ -62,7 +62,7 @@ spec:
         args:
           - '-c'
           - 'export POL_BASIC_AUTH=`echo -n $POL_BASIC_AUTH_USER:$POL_BASIC_AUTH_PASSWORD | base64`; /startService.sh'
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: SPRING_PROFILE
index ade8a20..d38d6e2 100644 (file)
@@ -21,13 +21,6 @@ global:
   # with other instances running within the same k8s cluster
   nodePortPrefix: 302
 
-  # image repositories
-  repository: nexus3.onap.org:10001
-
-
-  # readiness check
-  readinessImage: onap/oom/readiness:3.0.1
-
   # image pull policy
   pullPolicy: IfNotPresent
 
@@ -77,7 +70,6 @@ mariadb-init:
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/ccsdk-apps-ms-neng:1.0.2
 pullPolicy: IfNotPresent
 
index 882e98f..16fda3a 100644 (file)
@@ -41,7 +41,10 @@ spec:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
+        securityContext:
+          runAsUser: {{ .Values.securityContext.runAsUser }}
+          runAsGroup: {{ .Values.securityContext.runAsGroup }}
         command: ["/usr/local/bin/docker-entrypoint.sh"]
         args:
         - "agent"
index 0039aa6..48a26ef 100644 (file)
 #################################################################
 global:
   nodePortPrefix: 302
+  repository: nexus3.onap.org:10001
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-image: consul:1.0.6
+image: onap/oom/consul:2.1.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -86,3 +87,8 @@ resources:
       cpu: 1
       memory: 2Gi
   unlimited: {}
+
+securityContext:
+  fsGroup: 1000
+  runAsUser: 100
+  runAsGroup: 1000
index be15ecb..31546ab 100644 (file)
@@ -39,15 +39,36 @@ spec:
     spec:
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
-      containers:
-      - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
+      initContainers:
+      - name: {{ include "common.name" . }}-chown
+        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
         command:
-        - /bin/sh
-        - "-c"
+        - sh
+        args:
+        - -c
         - |
-          apk update && apk add jq
-          cp /tmp/consul/config/* /consul/config
-          /usr/local/bin/docker-entrypoint.sh agent -client 0.0.0.0 -enable-script-checks -retry-join {{ .Values.consulServer.nameOverride }}
+          cp -r -L /tmp/consul/config/* /consul/config/
+          chown -R {{ .Values.consulUID }}:{{ .Values.consulGID }} /consul/config
+          ls -la /consul/config
+        volumeMounts:
+        - mountPath: /tmp/consul/config
+          name: consul-agent-config
+        - mountPath: /consul/config
+          name: consul-agent-config-dir
+      containers:
+      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
+        securityContext:
+          runAsUser: {{ .Values.securityContext.runAsUser }}
+          runAsGroup: {{ .Values.securityContext.runAsGroup }}
+        command:
+        - docker-entrypoint.sh
+        args:
+        - agent
+        - -client
+        - 0.0.0.0
+        - -enable-script-checks
+        - -retry-join
+        - {{ .Values.consulServer.nameOverride }}
         name: {{ include "common.name" . }}
         env:
           - name: SDNC_ODL_COUNT
@@ -55,14 +76,16 @@ spec:
           - name: SDNC_IS_PRIMARY_CLUSTER
             value: "{{ .Values.sdnc.config.isPrimaryCluster }}"
         volumeMounts:
-        - mountPath: /tmp/consul/config
-          name: consul-agent-config
+        - mountPath: /consul/config
+          name: consul-agent-config-dir
         - mountPath: /consul/scripts
           name: consul-agent-scripts-config
         - mountPath: /consul/certs
           name: consul-agent-certs-config
         resources: {{ include "common.resources" . | nindent 10 }}
       volumes:
+      - name: consul-agent-config-dir
+        emptyDir: {}
       - configMap:
           name: {{ include "common.fullname" . }}-configmap
         name: consul-agent-config
index faebd8d..639e4eb 100644 (file)
 #################################################################
 global:
   nodePortPrefix: 302
+  busyboxRepository: registry.hub.docker.com
+  busyboxImage: library/busybox:latest
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-image: oomk8s/consul:1.0.0
+image: onap/oom/consul:2.1.0
 pullPolicy: Always
 
 #subchart name
 consulServer:
   nameOverride: consul-server
 
+consulUID: 100
+consulGID: 1000
+
 # flag to enable debugging - application support required
 debugEnabled: false
 
@@ -99,3 +104,8 @@ sdnc:
   config:
     isPrimaryCluster: true
   replicaCount: 1
+
+securityContext:
+  fsGroup: 1000
+  runAsUser: 100
+  runAsGroup: 1000
index 32386fc..4d35146 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2018  AT&T Intellectual Property.  All rights reserved.
+# 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.
 # 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dns-server-for-vhost-ingress-testing ingress-nginx-post-inst metallb-loadbalancer-inst tools
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
 
-make-contrib: make-contrib-awx make-contrib-netbox make-contrib-ejbca make-contrib-core
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
 
-make-contrib-awx:
-       cd components && $(HELM_BIN) dep up awx && $(HELM_BIN) lint awx
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
 
-make-contrib-ejbca:
-       cd components && $(HELM_BIN) dep up ejbca && $(HELM_BIN) lint ejbca
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
 
-make-contrib-netbox:
-       cd components && $(HELM_BIN) dep up netbox && $(HELM_BIN) lint netbox
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
 
-make-contrib-core:
-       $(HELM_BIN) dep up . && $(HELM_BIN) lint .
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
 
 clean:
-       @find . -type f -name '*.tgz' -delete
-       @find . -type f -name '*.lock' -delete
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/Makefile b/kubernetes/contrib/components/Makefile
new file mode 100644 (file)
index 0000000..bf267b7
--- /dev/null
@@ -0,0 +1,51 @@
+# 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
index cb88b57..4c79718 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2019 Bell Canada
+# 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.
 # 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dist resources templates charts docker
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
 
-make-awx:
-       cd charts && $(HELM_BIN) dep up awx-postgres
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/awx/charts/awx/values.yaml b/kubernetes/contrib/components/awx/charts/awx/values.yaml
deleted file mode 100755 (executable)
index fd77a12..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright © 2019 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.
-
-# Default values for mariadb.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
-
-global: # global defaults
-  nodePortPrefixExt: 304
-  persistence: {}
-
-# application image
-repository: ansible
-image:
-  web: awx_web:9.0.1
-  task: awx_task:9.0.1
-  rabbitmq: awx_rabbitmq:3.7.4
-  memcached: memcached:1.5.20
-pullPolicy: Always
-
-# application configuration
-config:
-  postgresUser: awx
-  postgresPassword: awx
-  postgresDB: awx
-# RabbitMQ Configuration
-  rabbitmqUser: awx
-  rabbitmqPassword: awxpass
-  rabbitmqVhost: awx
-  rabbitmqErlangCookie: cookiemonster3
-# This will create or update a default admin (superuser) account in AWX, if not provided
-# then these default values are used
-  awxAdminUser: admin
-  awxAdminPassword: password
-  awxAdminEmail: cds@onap.org
-# AWX Secret key
-# It's *very* important that this stay the same between upgrades or you will lose the ability to decrypt
-# your credentials
-  secretKey: awxsecret
-
-ingress:
-  enabled: false
-
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-  enabled: true
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-  volumeReclaimPolicy: Retain
-
-  # Uncomment the storageClass parameter to use an existing PV
-  # that will match the following class.
-  # When uncomment the storageClass, the PV is not created anymore.
-
-  # storageClass: "nfs-dev-sc"
-
-  accessMode: ReadWriteOnce
-  size: 5Gi
-
-  # When using storage class, mountPath and mountSubPath are
-  # simply ignored.
-
-  mountPath: /dockerdata-nfs
-  mountSubPath: awx/pgdata
-
-service:
-  rmqmgmt:
-    type: ClusterIP
-    portName: rmqmgmt
-    internalPort: 15672
-    externalPort: 15672
-  web:
-    type: NodePort
-    portName: web
-    internalPort: 8052
-    externalPort: 80
-    nodePort: 78
-  rabbitmq:
-    type: ClusterIP
-    http:
-      portName: http
-      internalPort: 15672
-      externalPort: 15672
-    amqp:
-      portName: amqp
-      internalPort: 5672
-      externalPort: 5672
-
-resources: {}
diff --git a/kubernetes/contrib/components/awx/components/Makefile b/kubernetes/contrib/components/awx/components/Makefile
new file mode 100644 (file)
index 0000000..bf267b7
--- /dev/null
@@ -0,0 +1,51 @@
+# 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/awx/components/awx-postgres/requirements.yaml b/kubernetes/contrib/components/awx/components/awx-postgres/requirements.yaml
new file mode 100755 (executable)
index 0000000..a93a429
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2019 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: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
index a748aff..5eda4db 100755 (executable)
 dependencies:
   - name: common
     version: ~6.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
+  - name: awx-postgres    
+    version: ~6.x-0
+    repository: 'file://components/awx-postgres'
@@ -37,7 +37,7 @@ spec:
       restartPolicy: Never
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -53,7 +53,7 @@ spec:
       containers:
       - command: ["/bin/sh","-c"]
         args: ["/etc/tower/job-entrypoint.sh"]
-        image: "{{ .Values.repository }}/{{ .Values.image.task }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.task }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-mgnt
         resources:
@@ -44,7 +44,7 @@ spec:
 
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -60,7 +60,7 @@ spec:
 
       containers:
 
-      - image: "{{ .Values.repository }}/{{ .Values.image.web }}"
+      - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.web }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-web
         ports:
@@ -88,7 +88,7 @@ spec:
         - name: AWX_SKIP_MIGRATIONS
           value: "1"
 
-        image: "{{ .Values.repository }}/{{ .Values.image.task }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.task }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-celery
         resources:
@@ -127,7 +127,7 @@ spec:
         - name: K8S_SERVICE_NAME
           value: {{ include "common.servicename" . }}-rabbitmq
 
-        image: "{{ .Values.repository }}/{{ .Values.image.rabbitmq }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.rabbitmq }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-rabbit
         livenessProbe:
@@ -165,7 +165,7 @@ spec:
         - mountPath: /etc/rabbitmq
           name: rabbitmq-config
 
-      - image: "{{ .Values.image.memcached }}"
+      - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.memcached }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-memcached
         resources:
index 1ed35c2..a29866d 100755 (executable)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  readinessRepository: nexus3.onap.org:10001
+# Default values for mariadb.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+global: # global defaults
   nodePortPrefixExt: 304
   commonConfigPrefix: awx
-  readinessImage: onap/oom/readiness:3.0.1
+  persistence: {}
 
-#################################################################
-# Application configuration defaults.
-#################################################################
 # application image
-repository: hub.docker.io
+image:
+  web: ansible/awx_web:9.0.1
+  task: ansible/awx_task:9.0.1
+  rabbitmq: ansible/awx_rabbitmq:3.7.4
+  memcached: memcached:1.5.20
 pullPolicy: Always
 
+# application configuration
+config:
+  postgresUser: awx
+  postgresPassword: awx
+  postgresDB: awx
+# RabbitMQ Configuration
+  rabbitmqUser: awx
+  rabbitmqPassword: awxpass
+  rabbitmqVhost: awx
+  rabbitmqErlangCookie: cookiemonster3
+# This will create or update a default admin (superuser) account in AWX, if not provided
+# then these default values are used
+  awxAdminUser: admin
+  awxAdminPassword: password
+  awxAdminEmail: cds@onap.org
+# AWX Secret key
+# It's *very* important that this stay the same between upgrades or you will lose the ability to decrypt
+# your credentials
+  secretKey: awxsecret
+
+ingress:
+  enabled: false
+
 # default number of instances
 replicaCount: 1
+
 nodeSelector: {}
+
 affinity: {}
 
-ingress:
-  enabled: false
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  enabled: true
+
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+
+  # Uncomment the storageClass parameter to use an existing PV
+  # that will match the following class.
+  # When uncomment the storageClass, the PV is not created anymore.
+
+  # storageClass: "nfs-dev-sc"
+
+  accessMode: ReadWriteOnce
+  size: 5Gi
+
+  # When using storage class, mountPath and mountSubPath are
+  # simply ignored.
+
+  mountPath: /dockerdata-nfs
+  mountSubPath: awx/pgdata
+
+service:
+  rmqmgmt:
+    type: ClusterIP
+    portName: rmqmgmt
+    internalPort: 15672
+    externalPort: 15672
+  web:
+    type: NodePort
+    portName: web
+    internalPort: 8052
+    externalPort: 80
+    nodePort: 78
+  rabbitmq:
+    type: ClusterIP
+    http:
+      portName: http
+      internalPort: 15672
+      externalPort: 15672
+    amqp:
+      portName: amqp
+      internalPort: 5672
+      externalPort: 5672
 
 resources: {}
index e87bc08..0054203 100644 (file)
@@ -23,3 +23,6 @@ dependencies:
     version: ~6.x-0
     repository: '@local'
     condition: not global.mariadbGalera.localCluster
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
index 55de54f..a10b059 100644 (file)
@@ -40,11 +40,11 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}-ejbca
-        image: {{ .Values.ejbca.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.ejbca.image }}
         imagePullPolicy: {{ .Values.pullPolicy }}
         lifecycle:
           postStart:
index 35160e4..c26bfe2 100644 (file)
@@ -12,8 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  mariadbGalera: &mariadbGalera 
+  mariadbGalera: &mariadbGalera
     #This flag allows EJBCA to instantiate its own mariadb-galera cluster
     localCluster: false
     service: mariadb-galera
@@ -37,7 +36,6 @@ secrets:
     password: '{{ .Values.config.ejbca.clientIak }}'
 
 # application configuration
-repository: nexus3.onap.org:10001
 config:
   db:
     userName: ejbca
index da18203..4c79718 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2018 Amdocs, Bell Canada
+# 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.
 # 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dist resources templates charts docker
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
 
-make-netbox:
-       cd charts && $(HELM_BIN) dep up netbox-postgres && $(HELM_BIN) dep up netbox-nginx && $(HELM_BIN) dep up netbox-app
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/netbox/components/Makefile b/kubernetes/contrib/components/netbox/components/Makefile
new file mode 100644 (file)
index 0000000..bf267b7
--- /dev/null
@@ -0,0 +1,51 @@
+# 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/netbox/components/netbox-app/requirements.yaml b/kubernetes/contrib/components/netbox/components/netbox-app/requirements.yaml
new file mode 100755 (executable)
index 0000000..9a0c10d
--- /dev/null
@@ -0,0 +1,21 @@
+# 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: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
@@ -35,7 +35,7 @@ spec:
       restartPolicy: Never
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -50,7 +50,7 @@ spec:
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-provisioning-job
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-provisioning
           mountPath: /tmp
@@ -42,11 +42,7 @@ config:
   superuserName: admin
   superuserEmail: admin@onap.org
 
-  curlImage: curlimages/curl:7.69.1
-  dockerHubRepository: docker.io
-
-repository: netboxcommunity
-image: netbox:v2.5.8
+image: netboxcommunity/netbox:v2.5.8
 
 # probe configuration parameters
 liveness:
diff --git a/kubernetes/contrib/components/netbox/components/netbox-nginx/requirements.yaml b/kubernetes/contrib/components/netbox/components/netbox-nginx/requirements.yaml
new file mode 100755 (executable)
index 0000000..9a0c10d
--- /dev/null
@@ -0,0 +1,21 @@
+# 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: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["nginx"]
         args: ["-c", "/etc/netbox-nginx/nginx.conf","-g", "daemon off;"]
diff --git a/kubernetes/contrib/components/netbox/components/netbox-postgres/requirements.yaml b/kubernetes/contrib/components/netbox/components/netbox-postgres/requirements.yaml
new file mode 100755 (executable)
index 0000000..9a0c10d
--- /dev/null
@@ -0,0 +1,21 @@
+# 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: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
index 6e0025e..29cf5e2 100755 (executable)
 dependencies:
   - name: common
     version: ~6.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
+  - name: netbox-app
+    version: ~6.x-0
+    repository: 'file://components/netbox-app'
+  - name: netbox-nginx
+    version: ~6.x-0
+    repository: 'file://components/netbox-nginx'
+  - name: netbox-postgres
+    version: ~6.x-0
+    repository: 'file://components/netbox-postgres'
\ No newline at end of file
index 5dc4535..04d2f27 100755 (executable)
 # Global configuration defaults.
 #################################################################
 global:
-  readinessRepository: nexus3.onap.org:10001
   nodePortPrefixExt: 304
   commonConfigPrefix: netbox
-  readinessImage: onap/oom/readiness:3.0.1
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-repository: hub.docker.io
 pullPolicy: Always
 
 # default number of instances
index 1a76ba0..7640be6 100644 (file)
@@ -36,7 +36,7 @@ spec:
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+          image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: DNS_FORWARDER
index b173931..7e60bfa 100644 (file)
@@ -28,3 +28,6 @@ dependencies:
     version: ~6.x-0
     repository: 'file://components/netbox'
     condition: netbox.enabled
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
index c15fdc7..736a19f 100644 (file)
@@ -30,9 +30,9 @@ start_docker:
        $(eval REPOSITORY := $(shell cat ./values.yaml | grep -i "^[ \t]*repository" -m1 | xargs | cut -d ' ' -f2))
        $(eval JAVA_IMAGE := $(shell cat ./values.yaml | grep -i "^[ \t]*certificateGenerationImage" -m1 | xargs | cut -d ' ' -f2))
        $(eval FULL_JAVA_IMAGE := $(REPOSITORY)/$(JAVA_IMAGE))
-       $(eval USER :=$(shell id -u))
+       $(eval USERNAME :=$(shell id -u))
        $(eval GROUP :=$(shell id -g))
-       docker run --rm --name ${DOCKER_CONTAINER} --user "$(USER):$(GROUP)" --mount type=bind,source=${CURRENT_DIR}/${CERTS_DIR},target=/app -w /app --entrypoint "sh" -td $(FULL_JAVA_IMAGE)
+       docker run --rm --name ${DOCKER_CONTAINER} --user "$(USERNAME):$(GROUP)" --mount type=bind,source=${CURRENT_DIR}/${CERTS_DIR},target=/app -w /app --entrypoint "sh" -td $(FULL_JAVA_IMAGE)
 
 # Stops docker container for generating  certificates. 'true' is used to return 0 status code, if container is already deleted
 stop_docker:
index f994771..fbe5155 100644 (file)
@@ -16,3 +16,6 @@ dependencies:
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
index e3dfa86..fd45eae 100644 (file)
@@ -46,7 +46,7 @@ spec:
           name: config-input
         - mountPath: /config
           name: properties
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-update-config
 
@@ -65,14 +65,14 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       containers:
       - command:
         - /opt/onap/sdnc/dmaap-listener/bin/start-dmaap-listener.sh
         name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: PROPERTY_DIR
index 0f3f18b..27876cb 100644 (file)
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  # envsusbt
-  envsubstImage: dibi/envsubst
   mariadbGalera:
     #This flag allows SO to instantiate its own mariadb-galera cluster
     #If shared instance is used, this chart assumes that DB already exists
@@ -54,7 +49,6 @@ secrets:
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/sdnc-dmaap-listener-image:2.0.4
 pullPolicy: Always
 
index 6a61926..b8e59b0 100644 (file)
@@ -14,5 +14,8 @@
 
 dependencies:
   - name: common
+    version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
     version: ~6.x-0
     repository: '@local'
\ No newline at end of file
index d6d05ef..41a5c09 100644 (file)
@@ -46,7 +46,7 @@ spec:
           name: config-input
         - mountPath: /config
           name: config
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-update-config
 
@@ -61,7 +61,7 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       containers:
@@ -69,7 +69,7 @@ spec:
           command: ["/bin/bash"]
           args: ["-c", "cd /opt/onap/ccsdk && ./startAnsibleServer.sh"]
 
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
index 080ae9c..858ff71 100644 (file)
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  # envsusbt
-  envsubstImage: dibi/envsubst
   mariadbGalera:
     #This flag allows SO to instantiate its own mariadb-galera cluster
     #If shared instance is used, this chart assumes that DB already exists
@@ -54,7 +49,6 @@ secrets:
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/sdnc-ansible-server-image:2.0.4
 pullPolicy: Always
 
index e4c7240..6317f58 100644 (file)
@@ -16,3 +16,6 @@ dependencies:
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
index 1853ab9..1c9adad 100644 (file)
@@ -40,12 +40,12 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         envFrom:
           - configMapRef:
index 9551bc4..d9afd1a 100644 (file)
 #################################################################
 global:
   nodePortPrefix: 302
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   persistence:
     mountPath: /dockerdata-nfs
 
@@ -28,7 +24,6 @@ global:
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 pullPolicy: Always
 image: onap/music/prom:1.0.5
 
index dcb280d..fbf6d0d 100644 (file)
@@ -18,5 +18,8 @@ dependencies:
     version: ~6.x-0
     repository: '@local'
   - name: certInitializer
+    version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
     version: ~6.x-0
     repository: '@local'
\ No newline at end of file
index 7c1f262..a2e3a48 100644 (file)
@@ -18,7 +18,6 @@ apiVersion: apps/v1
 kind: Deployment
 metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
-  serviceName: "sdnc-web"
   replicas: {{ .Values.replicaCount }}
   selector: {{- include "common.selectors" . | nindent 4 }}
   template:
@@ -26,7 +25,7 @@ spec:
     spec:
       initContainers: {{ include "common.certInitializer.initContainer" . | indent 6 }}
       - name: {{ include "common.name" . }}-readiness
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -42,7 +41,7 @@ spec:
 
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports: {{- include "common.containerPorts" . | indent 10 }}
           # disable liveness probe when breakpoints set in debugger
index 136379a..f040736 100644 (file)
 global:
   aafEnabled: true
   nodePortPrefix: 322
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   k8scluster: svc.cluster.local
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: "onap/sdnc-web-image:2.0.4"
 pullPolicy: Always
 
index f994771..fbe5155 100644 (file)
@@ -16,3 +16,6 @@ dependencies:
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
index 63a1f8a..385fd9b 100644 (file)
@@ -50,7 +50,7 @@ spec:
           name: config-input
         - mountPath: /config
           name: properties
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-update-config
       - command:
@@ -70,14 +70,14 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       containers:
       - command:
         - /opt/onap/sdnc/ueb-listener/bin/start-ueb-listener.sh
         name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: PROPERTY_DIR
index 2b0da14..6de8947 100644 (file)
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-    # envsusbt
-  envsubstImage: dibi/envsubst
   mariadbGalera:
     #This flag allows SO to instantiate its own mariadb-galera cluster
     #If shared instance is used, this chart assumes that DB already exists
@@ -60,7 +55,6 @@ secrets:
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/sdnc-ueb-listener-image:2.0.4
 pullPolicy: Always
 
index fd57517..e201a02 100644 (file)
@@ -60,6 +60,8 @@ dependencies:
     version: ~6.x-0
     repository: 'file://components/sdnc-web/'
     condition: sdnc.sdnc-web.enabled,sdnc-web.enabled
-
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
 
 
index e0f0e55..897a0ba 100755 (executable)
@@ -76,7 +76,7 @@ spec:
           name: config-input
         - mountPath: /config
           name: properties
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-update-config
 
@@ -92,11 +92,11 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
           - name: MYSQL_ROOT_PASSWORD
index 7975b70..cb8d757 100755 (executable)
@@ -26,7 +26,7 @@ spec:
       {{ include "common.certInitializer.initContainer" . | indent 6 }}
       {{ if .Values.global.aafEnabled }}
       - name: {{ include "common.name" . }}-chown
-        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         command: ["sh", "-c", "chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.certInitializer.credsPath }}"]
         volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
       {{ end }}
@@ -46,11 +46,11 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}-sdnrdb-init-job
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["/bin/bash"]
         args: ["-c", "{{ .Values.config.binDir }}/startODL.sh"]
index 98ad43e..4fa6b70 100644 (file)
@@ -72,7 +72,7 @@ spec:
           name: config-input
         - mountPath: /config
           name: properties
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-update-config
       {{ if .Values.dgbuilder.enabled -}}
@@ -93,7 +93,7 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
         {{ end -}}
@@ -101,7 +101,7 @@ spec:
 
       {{ if .Values.global.cmpv2Enabled }}
       - name: certs-init
-        image: "{{ .Values.global.repository }}/{{ .Values.global.platform.certServiceClient.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.platform.certServiceClient.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
           - name: REQUEST_URL
@@ -142,7 +142,7 @@ spec:
       {{ end }}
 
       - name: {{ include "common.name" . }}-chown
-        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         command:
         - sh
         args:
@@ -157,7 +157,7 @@ spec:
             name: {{ include "common.fullname" . }}-data
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command: ["/bin/bash"]
           args: ["-c", "/opt/onap/sdnc/bin/startODL.sh"]
@@ -293,7 +293,7 @@ spec:
 
         # side car containers
         - name: filebeat-onap
-          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          image: {{ include "repositoryGenerator.image.logging" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           volumeMounts:
           - mountPath: /usr/share/filebeat/filebeat.yml
index af5a6f4..edac61b 100644 (file)
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   persistence:
     mountPath: /dockerdata-nfs
   aafEnabled: true
-  # envsusbt
-  envsubstImage: dibi/envsubst
   mariadbGalera:
     #This flag allows SO to instantiate its own mariadb-galera cluster
     #If shared instance is used, this chart assumes that DB already exists
@@ -134,11 +128,8 @@ secrets:
 #################################################################
 # application images
 
-repository: nexus3.onap.org:10001
 pullPolicy: Always
 image: onap/sdnc-image:2.0.4
-busyboxRepository: docker.io
-busyboxImage: busybox:1.30
 
 # flag to enable debugging - application support required
 debugEnabled: false
diff --git a/kubernetes/so/components/so-cnf-adapter/Chart.yaml b/kubernetes/so/components/so-cnf-adapter/Chart.yaml
new file mode 100755 (executable)
index 0000000..4b507c1
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright © 2020 Huawei Technologies Co., Ltd.
+#
+# 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
+appVersion: "1.7.1"
+description: A Helm chart for Kubernetes
+name: so-cnf-adapter
+version: 6.0.0
+
diff --git a/kubernetes/so/components/so-cnf-adapter/requirements.yaml b/kubernetes/so/components/so-cnf-adapter/requirements.yaml
new file mode 100755 (executable)
index 0000000..ecba826
--- /dev/null
@@ -0,0 +1,28 @@
+# 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.
+# 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
+    # local reference to common chart, as it is
+    # a part of this chart's package and will not
+    # be published independently to a repo (at this point)
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
+  - name: soHelpers
+    version: ~6.x-0
+    repository: 'file://../soHelpers'
+
diff --git a/kubernetes/so/components/so-cnf-adapter/resources/config/overrides/override.yaml b/kubernetes/so/components/so-cnf-adapter/resources/config/overrides/override.yaml
new file mode 100755 (executable)
index 0000000..c513589
--- /dev/null
@@ -0,0 +1,50 @@
+{{/*
+# Copyright © 2020 Huawei Technologies Co., Ltd.
+#
+# 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.
+*/}}
+
+aai:
+  auth: {{ include "so.helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" .Values.global.aaf.auth.header "value2" .Values.server.aai.auth ) }}
+  endpoint: https://aai.{{ include "common.namespace" . }}:8443
+logging:
+  path: logs
+spring:
+  security:
+    usercredentials:
+      - username: ${ACTUATOR_USERNAME}
+        password: ${ACTUATOR_PASSWORD}
+        role: ACTUATOR
+server:
+  port: {{ index .Values.containerPort }}
+  tomcat:
+    max-threads: 50
+mso:
+  site-name: localSite
+  logPath: ./logs/cnf
+  msb-ip: msb-iag.{{ include "common.namespace" . }}
+  msb-port: 80
+#Actuator
+management:
+  endpoints:
+    web:
+      base-path: /manage
+      exposure:
+        include: "*"
+  metrics:
+    se-global-registry: false
+    export:
+      prometheus:
+        enabled: true # Whether exporting of metrics to Prometheus is enabled.
+        step: 1m # Step size (i.e. reporting frequency) to use.
+
diff --git a/kubernetes/so/components/so-cnf-adapter/templates/configmap.yaml b/kubernetes/so/components/so-cnf-adapter/templates/configmap.yaml
new file mode 100755 (executable)
index 0000000..c5ebec0
--- /dev/null
@@ -0,0 +1,30 @@
+{{/*
+# Copyright © 2020 Huawei Technologies Co., Ltd.
+#
+# 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: ConfigMap
+metadata: {{- include "common.resourceMetadata" (dict "dot" . "suffix" "env") | nindent 2 }}
+data:
+  LOG_PATH: {{ index .Values.logPath }}
+  APP: {{ index .Values.app }}
+  ACTIVE_PROFILE: {{ include "so.helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" "aaf" "value2" "basic")}}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+data:
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml b/kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml
new file mode 100755 (executable)
index 0000000..3c13132
--- /dev/null
@@ -0,0 +1,132 @@
+{{/*
+# Copyright © 2020 Huawei Technologies Co., Ltd.
+#
+# 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 8 }}
+        - name: {{ include "common.name" . }}-encrypter
+          command:
+            - sh
+          args:
+            - -c
+            - |
+              java Crypto "${AAI_USERNAME}:${AAI_PASSWORD}" "${MSO_KEY}" > /output/.aai_creds
+          env:
+            - name: AAI_USERNAME
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-aai-creds" "key" "login") | indent 14 }}
+            - name: AAI_PASSWORD
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-aai-creds" "key" "password") | indent 14 }}
+            - name: MSO_KEY
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cnf-adapter-mso-key" "key" "password") | indent 14 }}
+          image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.global.soCryptoImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+            - name: encoder
+              mountPath: /output
+        - name: {{ include "common.name" . }}-readiness
+          command:
+            - /app/ready.py
+          args:
+            - --job-name
+            - {{ include "common.release" . }}-so-mariadb-config-job
+          env:
+            - name: NAMESPACE
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: metadata.namespace
+          image: {{ include "repositoryGenerator.image.readiness" . }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+      containers:
+        - name: {{ include "common.name" . }}
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
+          command:
+            - sh
+          args:
+            - -c
+            - |
+              export AAF_BASE64=$(echo -n "${AAF_USERNAME}:${AAF_PASSWORD}" | base64)
+              export AAF_AUTH=$(echo "Basic ${AAF_BASE64}")
+              export AAI_AUTH=$(cat /input/.aai_creds)
+              {{- if .Values.global.aafEnabled }}
+              export $(grep '^c' {{ .Values.soHelpers.certInitializer.credsPath }}/mycreds.prop | xargs -0)
+              export TRUSTSTORE_PASSWORD="${cadi_truststore_password}"
+              {{- if .Values.global.security.aaf.enabled }}
+              export KEYSTORE_PASSWORD="${cadi_keystore_password}"
+              {{- end }}
+              {{- end }}
+              ./start-app.sh
+          resources: {{ include "common.resources" . | nindent 12 }}
+          ports: {{- include "common.containerPorts" . | nindent 12  }}
+          env:
+            - name: AAF_USERNAME
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-aaf-creds" "key" "login") | indent 14 }}
+            - name: AAF_PASSWORD
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-aaf-creds" "key" "password") | indent 14 }}
+            - name: ACTUATOR_USERNAME
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "server-actuator-creds" "key" "login") | indent 14 }}
+            - name: ACTUATOR_PASSWORD
+              {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "server-actuator-creds" "key" "password") | indent 14 }}
+            {{ include "so.certificates.env" . | indent 12 | trim }}
+          envFrom:
+            - configMapRef:
+                name: {{ include "common.fullname" . }}-env
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts: {{ include "so.certificate.volumeMount" . | nindent 12 }}
+            - name: logs
+              mountPath: /app/logs
+            - name: config
+              mountPath: /app/config
+              readOnly: true
+              readOnly: true
+            - name: encoder
+              mountPath: /input
+          livenessProbe:
+            httpGet:
+              path: {{ index .Values.livenessProbe.path}}
+              port: {{ index .Values.containerPort }}
+              scheme: {{ index .Values.livenessProbe.scheme}}
+            initialDelaySeconds: {{ index .Values.livenessProbe.initialDelaySeconds}}
+            periodSeconds: {{ index .Values.livenessProbe.periodSeconds}}
+            timeoutSeconds: {{ index .Values.livenessProbe.timeoutSeconds}}
+            successThreshold: {{ index .Values.livenessProbe.successThreshold}}
+            failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+      volumes: {{ include "so.certificate.volumes" . | nindent 8 }}
+        - name: logs
+          emptyDir: {}
+        - name: config
+          configMap:
+            name: {{ include "common.fullname" . }}
+        - name: encoder
+          emptyDir:
+            medium: Memory
+      imagePullSecrets:
+        - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
old mode 100755 (executable)
new mode 100644 (file)
similarity index 83%
rename from kubernetes/contrib/components/awx/charts/awx/Chart.yaml
rename to kubernetes/so/components/so-cnf-adapter/templates/secret.yaml
index 00dca3f..dfeae80
@@ -1,4 +1,5 @@
-# Copyright © 2019 Bell Canada
+{{/*
+# Copyright © 2020 Huawei Technologies Co., Ltd.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,8 +12,7 @@
 # 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" . }}
 
-apiVersion: v1
-description: Ansible AWX application
-name: awx
-version: 6.0.0
diff --git a/kubernetes/so/components/so-cnf-adapter/templates/service.yaml b/kubernetes/so/components/so-cnf-adapter/templates/service.yaml
new file mode 100755 (executable)
index 0000000..0c34660
--- /dev/null
@@ -0,0 +1,18 @@
+{{/*
+# Copyright © 2020 Huawei Technologies Co., Ltd.
+#
+# 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/components/so-cnf-adapter/values.yaml b/kubernetes/so/components/so-cnf-adapter/values.yaml
new file mode 100755 (executable)
index 0000000..0fdd4f2
--- /dev/null
@@ -0,0 +1,161 @@
+# Copyright © 2020 Huawei Technologies Co., Ltd.
+#
+# 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
+  soCryptoImage: sdesbure/so_crypto:latest
+  persistence:
+    mountPath: /dockerdata-nfs
+  security:
+    aaf:
+      enabled: false
+  aaf:
+    auth:
+      header: ${AAF_AUTH}
+#################################################################
+# 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: server-actuator-creds
+    name: '{{ include "common.release" . }}-so-cnf-actuator-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.actuatorCredsExternalSecret) . }}'
+    login: '{{ .Values.server.actuator.username }}'
+    password: '{{ .Values.server.actuator.password }}'
+    passwordPolicy: required
+  - uid: so-aaf-creds
+    name: '{{ include "common.release" . }}-so-cnf-aaf-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.aafCredsExternalSecret) . }}'
+    login: '{{ .Values.server.aaf.username }}'
+    password: '{{ .Values.server.aaf.password }}'
+    passwordPolicy: required
+  - uid: so-aai-creds
+    name: '{{ include "common.release" . }}-so-cnf-aai-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.aaiCredsExternalSecret) . }}'
+    login: '{{ .Values.server.aai.username }}'
+    password: '{{ .Values.server.aai.password }}'
+    passwordPolicy: required
+  - uid: cnf-adapter-mso-key
+    name: '{{ include "common.release" . }}-so-cnf-mso-key'
+    type: password
+    externalSecret: '{{ tpl (default "" .Values.mso.msoKeySecret) . }}'
+    password: '{{ .Values.mso.msoKey }}'
+#secretsFilePaths: |
+#  - 'my file 1'
+#  - '{{ include "templateThatGeneratesFileName" . }}'
+#################################################################
+# Application configuration defaults.
+#################################################################
+image: onap/so/mso-cnf-adapter:1.7.1
+pullPolicy: Always
+db:
+  userName: so_user
+  userPassword: so_User123
+  # userCredsExternalSecret: some secret
+  adminName: so_admin
+  adminPassword: so_Admin123
+  # adminCredsExternalSecret: some secret
+server:
+  aaf:
+    username: so@so.onap.org
+    password: demo123456
+  # aafCredsExternalSecret: some secret
+  aai:
+    username: aai@aai.onap.org
+    password: demo123456!
+    auth: ${AAI_AUTH}
+  # aaiCredsExternalSecret: some secret
+  actuator:
+    username: mso_admin
+    password: password1$
+  # actuatorCredsExternalSecret: some secret
+mso:
+  msoKey: 07a7159d3bf51a0e53be7a8f89699be7
+  # msoKeySecret: some secret
+  adapters:
+    requestDb:
+      auth: ${REQUEST_AUTH}
+replicaCount: 1
+minReadySeconds: 10
+containerPort: &containerPort 8090
+logPath: ./logs/cnf/
+app: cnf-adapter
+service:
+  type: ClusterIP
+  ports:
+    - name: http-api
+      port: *containerPort
+updateStrategy:
+  type: RollingUpdate
+  maxUnavailable: 1
+  maxSurge: 1
+soHelpers:
+  nameOverride: so-cnf-cert-init
+  certInitializer:
+    nameOverride: so-cnf-cert-init
+    credsPath: /opt/app/osaaf/local
+  cadi:
+    apiEnforcement: org.onap.so.openStackAdapterPerm
+  containerPort: *containerPort
+# 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: 8090
+  scheme: HTTP
+  initialDelaySeconds: 600
+  periodSeconds: 60
+  timeoutSeconds: 10
+  successThreshold: 1
+  failureThreshold: 3
+ingress:
+  enabled: false
+nodeSelector: {}
+tolerations: []
+affinity: {}
+
index 2e0a406..2b60a69 100755 (executable)
@@ -42,6 +42,10 @@ dependencies:
     version: ~6.x-0
     repository: 'file://components/so-catalog-db-adapter'
     condition: so-catalog-db-adapter.enabled
+  - name: so-cnf-adapter
+    version: ~6.x-0
+    repository: "file://components/so-cnf-adapter"
+    condition: so-cnf-adapter.enabled
   - name: so-etsi-nfvo-ns-lcm
     version: ~6.x-0
     repository: 'file://components/so-etsi-nfvo-ns-lcm'
index efcf029..efb3fab 100755 (executable)
@@ -7,7 +7,7 @@ server:
         max-threads: 50
 ssl-enable: false
 mso:
-  msoKey: {{ .Values.global.app.msoKey }}
+  msoKey: {{ .Values.mso.msoKey }}
   logPath: ./logs/apih
   site-name: {{ index .Values.global.app.siteName }}
   adapters:
@@ -124,4 +124,4 @@ org:
       cloud-owner: CloudOwner
       adapters:
         network:
-          encryptionKey: {{ .Values.global.app.msoKey }}
+          encryptionKey: {{ .Values.mso.msoKey }}
index de1918b..358b104 100755 (executable)
@@ -55,7 +55,7 @@ global:
     siteName: onapheat
     auth: 3EDC974C5CD7FE54C47C7490AF4D3B474CDD7D0FFA35A7ACDE3E209631E45F428976EAC0858874F17390A13149E63C90281DD8D20456
     defaultCloudOwner: onap
-    msoKey: 07a7159d3bf51a0e53be7a8f89699be7
+
   client:
     certs:
       truststore: /app/client/org.onap.so.trust.jks
@@ -110,16 +110,44 @@ secrets:
     type: generic
     filePaths:
       - resources/config/certificates/msb-ca.crt
-  - uid: "mso-key"
+  - uid: 'mso-key'
     name: &mso-key '{{ include "common.release" . }}-mso-key'
     type: password
-    password: '{{ .Values.global.app.msoKey }}'
+    password: '{{ .Values.mso.msoKey }}'
   - uid: mso-oof-auth
     name: &mso-oof-auth '{{ include "common.release" . }}-mso-oof-auth'
     type: basicAuth
     login: '{{ .Values.mso.oof.login }}'
     password: '{{ .Values.mso.oof.password }}'
     passwordPolicy: required
+  - uid: server-actuator-creds
+    name: &actuator-secrets '{{ include "common.release" . }}-so-server-actuator-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.actuatorCredsExternalSecret) . }}'
+    login: '{{ .Values.server.actuator.username }}'
+    password: '{{ .Values.server.actuator.password }}'
+    passwordPolicy: required
+  - uid: server-bpel-creds
+    name: &bpel-secrets '{{ include "common.release" . }}-so-server-bpel-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.bpelCredsExternalSecret) . }}'
+    login: '{{ .Values.server.bpel.username }}'
+    password: '{{ .Values.server.bpel.password }}'
+    passwordPolicy: required
+  - uid: so-aaf-creds
+    name: &aaf-secrets '{{ include "common.release" . }}-so-server-aaf-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.aafCredsExternalSecret) . }}'
+    login: '{{ .Values.server.aaf.username }}'
+    password: '{{ .Values.server.aaf.password }}'
+    passwordPolicy: required
+  - uid: so-aai-creds
+    name: &aai-secrets '{{ include "common.release" . }}-so-server-aai-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.server.aaiCredsExternalSecret) . }}'
+    login: '{{ .Values.server.aai.username }}'
+    password: '{{ .Values.server.aai.password }}'
+    passwordPolicy: required
 
 aafConfig:
   permission_user: 1000
@@ -142,6 +170,25 @@ dbCreds:
   adminName: so_admin
 
 image: onap/so/api-handler-infra:1.7.10
+
+server:
+  aaf:
+    username: so@so.onap.org
+    password: demo123456
+  # aafCredsExternalSecret: some secret
+  aai:
+    username: aai@aai.onap.org
+    password: demo123456!
+  # aaiCredsExternalSecret: some secret
+  actuator:
+    username: mso_admin
+    password: password1$
+  # actuatorCredsExternalSecret: some secret
+  bpel:
+    username: bpel
+    password: password1$
+  # bpelCredsExternalSecret: some secret
+
 pullPolicy: Always
 replicaCount: 1
 minReadySeconds: 10
@@ -230,6 +277,7 @@ mso:
     requestDb:
       auth: Basic YnBlbDpwYXNzd29yZDEk
   camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
+  msoKey: 07a7159d3bf51a0e53be7a8f89699be7
   sdc:
     client:
       auth: 878785F4F31BC9CFA5AB52A172008212D8845ED2DE08AD5E56AF114720A4E49768B8F95CDA2EB971765D28EDCDAA24
@@ -247,6 +295,8 @@ mso:
 
 so-appc-orchestrator:
   enabled: false
+  server:
+    actuatorCredsExternalSecret: *actuator-secrets
   db:
     <<: *dbSecrets
 
@@ -259,16 +309,53 @@ so-catalog-db-adapter:
   db:
     <<: *dbSecrets
 
+so-cnf-adapter:
+  enabled: true
+  db:
+    <<: *dbSecrets
+  server:
+    aafCredsExternalSecret: *aaf-secrets
+    aaiCredsExternalSecret: *aai-secrets
+    actuatorCredsExternalSecret: *actuator-secrets
+  mso:
+    msoKeySecret: *mso-key
+
 so-etsi-nfvo-ns-lcm:
   enabled: true
   db:
     <<: *dbSecrets
 
+so-mariadb:
+  db:
+    rootPasswordExternalSecretLocalDb: *dbRootPassSecretName
+    rootPasswordExternalSecret: '{{ ternary .Values.db.rootPasswordExternalSecretLocalDb (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) .Values.global.mariadbGalera.localCluster }}'
+    backupCredsExternalSecret: *dbBackupCredsSecretName
+    userCredsExternalSecret: *dbUserCredsSecretName
+    adminCredsExternalSecret: *dbAdminCredsSecretName
+
 so-monitoring:
   enabled: true
   db:
     <<: *dbSecrets
 
+so-nssmf-adapter:
+  enabled: true
+  server:
+    actuatorCredsExternalSecret: *actuator-secrets
+    bpelCredsExternalSecret: *bpel-secrets
+  db:
+    <<: *dbSecrets
+
+so-oof-adapter:
+  enabled: true
+  db:
+    <<: *dbSecrets
+  mso:
+    msoKeySecret: *mso-key
+    camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
+    oof:
+      authSecret: *mso-oof-auth
+
 so-openstack-adapter:
   enabled: true
   db:
@@ -295,28 +382,6 @@ so-vfc-adapter:
   db:
     <<: *dbSecrets
 
-so-nssmf-adapter:
-  enabled: true
-  db:
-    <<: *dbSecrets
-
-so-oof-adapter:
-  enabled: true
-  db:
-    <<: *dbSecrets
-  mso:
-    msoKeySecret: *mso-key
-    camundaAuth: AE2E9BE6EF9249085AF98689C4EE087736A5500629A72F35068FFB88813A023581DD6E765071F1C04075B36EA4213A
-    oof:
-      authSecret: *mso-oof-auth
-
 so-vnfm-adapter:
   enabled: true
 
-so-mariadb:
-  db:
-    rootPasswordExternalSecretLocalDb: *dbRootPassSecretName
-    rootPasswordExternalSecret: '{{ ternary .Values.db.rootPasswordExternalSecretLocalDb (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) .Values.global.mariadbGalera.localCluster }}'
-    backupCredsExternalSecret: *dbBackupCredsSecretName
-    userCredsExternalSecret: *dbUserCredsSecretName
-    adminCredsExternalSecret: *dbAdminCredsSecretName