Merge "5.1.0 policy-handler - policy-updates from new PDP"
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Tue, 10 Mar 2020 17:57:30 +0000 (17:57 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 10 Mar 2020 17:57:30 +0000 (17:57 +0000)
188 files changed:
docs/oom_cloud_setup_guide.rst
docs/oom_developer_guide.rst
docs/oom_user_guide.rst
kubernetes/aaf/charts/aaf-gui/values.yaml
kubernetes/aaf/charts/aaf-sms/values.yaml
kubernetes/aai
kubernetes/cds/charts/cds-blueprints-processor/values.yaml
kubernetes/cds/charts/cds-sdc-listener/resources/config/application.yaml
kubernetes/clamp/charts/clamp-dash-es/values.yaml
kubernetes/clamp/charts/clamp-dash-kibana/values.yaml
kubernetes/clamp/charts/clamp-dash-logstash/values.yaml
kubernetes/common/cassandra/values.yaml
kubernetes/common/common/documentation.rst [new file with mode: 0644]
kubernetes/common/common/templates/_pod.tpl
kubernetes/common/common/templates/_secret.yaml
kubernetes/common/common/templates/_service.tpl
kubernetes/common/common/templates/_serviceMesh.tpl [new file with mode: 0644]
kubernetes/common/common/templates/_storage.tpl
kubernetes/common/postgres-legacy/.helmignore [deleted file]
kubernetes/common/postgres-legacy/charts/pgpool/configs/pgpool.conf [deleted file]
kubernetes/common/postgres-legacy/charts/pgpool/configs/pool_hba.conf [deleted file]
kubernetes/common/postgres-legacy/charts/pgpool/configs/pool_passwd [deleted file]
kubernetes/common/postgres-legacy/charts/pgpool/templates/deployment.yaml [deleted file]
kubernetes/common/postgres-legacy/charts/pgpool/templates/service.yaml [deleted file]
kubernetes/common/postgres-legacy/charts/pgpool/values.yaml [deleted file]
kubernetes/common/postgres-legacy/templates/pv.yaml [deleted file]
kubernetes/common/postgres-legacy/templates/secrets.yaml [deleted file]
kubernetes/common/postgres-legacy/templates/service.yaml [deleted file]
kubernetes/common/postgres-legacy/templates/statefulset.yaml [deleted file]
kubernetes/common/postgres-legacy/values.yaml [deleted file]
kubernetes/consul/charts/consul-server/values.yaml
kubernetes/contrib/tools/rke/rke_setup.sh
kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/resources/config/k8s-plugin.json
kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-hv_ves-inputs.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-tcagen2-inputs.yaml [new file with mode: 0644]
kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs-tls.yaml [new file with mode: 0644]
kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml
kubernetes/dcaegen2/components/dcae-cloudify-manager/values.yaml
kubernetes/dcaegen2/components/dcae-config-binding-service/values.yaml
kubernetes/dcaegen2/components/dcae-dashboard/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-dashboard/values.yaml
kubernetes/dcaegen2/components/dcae-deployment-handler/values.yaml
kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/requirements.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/resources/config/config.json
kubernetes/dcaegen2/components/dcae-inventory-api/resources/log/filebeat.yml [new file with mode: 0644]
kubernetes/dcaegen2/components/dcae-inventory-api/templates/configmap.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/values.yaml
kubernetes/dcaegen2/values.yaml
kubernetes/dmaap/components/dmaap-bc/values.yaml
kubernetes/dmaap/components/dmaap-dr-node/values.yaml
kubernetes/dmaap/components/dmaap-dr-prov/resources/config/provserver.properties
kubernetes/dmaap/components/dmaap-dr-prov/templates/deployment.yaml
kubernetes/dmaap/components/dmaap-dr-prov/templates/secret.yaml [moved from kubernetes/common/postgres-legacy/requirements.yaml with 81% similarity]
kubernetes/dmaap/components/dmaap-dr-prov/values.yaml
kubernetes/dmaap/components/message-router/resources/config/dmaap/logback.xml
kubernetes/dmaap/components/message-router/resources/topics/mirrormakeragent.json
kubernetes/dmaap/components/message-router/templates/service.yaml
kubernetes/dmaap/components/message-router/templates/statefulset.yaml
kubernetes/dmaap/components/message-router/values.yaml
kubernetes/dmaap/values.yaml
kubernetes/esr/charts/esr-gui/values.yaml
kubernetes/esr/charts/esr-server/values.yaml
kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml [new file with mode: 0644]
kubernetes/onap/values.yaml
kubernetes/oof/charts/oof-has/resources/config/conductor.conf
kubernetes/portal/charts/portal-app/resources/server/web.xml [new file with mode: 0644]
kubernetes/portal/charts/portal-app/templates/deployment.yaml
kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties
kubernetes/portal/charts/portal-sdk/resources/server/server.xml [new file with mode: 0644]
kubernetes/portal/charts/portal-sdk/templates/configmap.yaml
kubernetes/portal/charts/portal-sdk/templates/deployment.yaml
kubernetes/portal/charts/portal-sdk/templates/secrets.yaml [moved from kubernetes/common/postgres-legacy/charts/pgpool/requirements.yaml with 81% similarity]
kubernetes/portal/charts/portal-sdk/values.yaml
kubernetes/robot
kubernetes/sdc/charts/sdc-be/templates/deployment.yaml
kubernetes/sdc/charts/sdc-be/values.yaml
kubernetes/sdc/charts/sdc-cs/values.yaml
kubernetes/sdc/charts/sdc-es/.helmignore [deleted file]
kubernetes/sdc/charts/sdc-es/Chart.yaml [deleted file]
kubernetes/sdc/charts/sdc-es/templates/NOTES.txt [deleted file]
kubernetes/sdc/charts/sdc-es/templates/deployment.yaml [deleted file]
kubernetes/sdc/charts/sdc-es/templates/job.yaml [deleted file]
kubernetes/sdc/charts/sdc-es/templates/pv.yaml [deleted file]
kubernetes/sdc/charts/sdc-es/templates/pvc.yaml [deleted file]
kubernetes/sdc/charts/sdc-es/templates/service.yaml [deleted file]
kubernetes/sdc/charts/sdc-es/values.yaml [deleted file]
kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml
kubernetes/sdc/charts/sdc-fe/values.yaml
kubernetes/sdc/charts/sdc-kb/.helmignore [deleted file]
kubernetes/sdc/charts/sdc-kb/Chart.yaml [deleted file]
kubernetes/sdc/charts/sdc-kb/templates/NOTES.txt [deleted file]
kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml [deleted file]
kubernetes/sdc/charts/sdc-kb/templates/service.yaml [deleted file]
kubernetes/sdc/charts/sdc-kb/values.yaml [deleted file]
kubernetes/sdc/charts/sdc-onboarding-be/values.yaml
kubernetes/sdc/charts/sdc-wfd-be/templates/job.yaml
kubernetes/sdc/charts/sdc-wfd-be/values.yaml
kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
kubernetes/sdc/resources/config/environments/AUTO.json
kubernetes/sdc/values.yaml
kubernetes/sdnc/charts/dmaap-listener/templates/secret.yaml [moved from kubernetes/common/postgres-legacy/Chart.yaml with 80% similarity]
kubernetes/sdnc/charts/dmaap-listener/values.yaml
kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml
kubernetes/sdnc/charts/sdnc-portal/resources/config/admportal.json
kubernetes/sdnc/charts/sdnc-portal/resources/config/dblib.properties
kubernetes/sdnc/charts/sdnc-portal/resources/config/svclogic.properties
kubernetes/sdnc/charts/sdnc-portal/resources/config/svclogic.properties.sdnctldb02
kubernetes/sdnc/charts/sdnc-portal/templates/deployment.yaml
kubernetes/sdnc/charts/sdnc-portal/templates/secrets.yaml
kubernetes/sdnc/charts/sdnc-portal/values.yaml
kubernetes/sdnc/charts/ueb-listener/values.yaml
kubernetes/sdnc/requirements.yaml
kubernetes/sdnc/resources/config/bin/installSdncDb.sh [changed mode: 0644->0755]
kubernetes/sdnc/resources/config/bin/startODL.sh
kubernetes/sdnc/resources/config/conf/aaiclient.properties
kubernetes/sdnc/resources/config/conf/blueprints-processor-adaptor.properties
kubernetes/sdnc/resources/config/conf/dblib.properties
kubernetes/sdnc/resources/config/conf/lcm-dg.properties
kubernetes/sdnc/resources/config/conf/netbox.properties
kubernetes/sdnc/resources/config/conf/svclogic.properties
kubernetes/sdnc/templates/job.yaml
kubernetes/sdnc/templates/secret-aaf.yaml [deleted file]
kubernetes/sdnc/templates/secrets.yaml
kubernetes/sdnc/templates/statefulset.yaml
kubernetes/sdnc/values.yaml
kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
kubernetes/so/charts/so-bpmn-infra/templates/configmap.yaml
kubernetes/so/charts/so-bpmn-infra/templates/deployment.yaml
kubernetes/so/charts/so-bpmn-infra/templates/secret.yaml [new file with mode: 0644]
kubernetes/so/charts/so-bpmn-infra/values.yaml
kubernetes/so/charts/so-catalog-db-adapter/templates/deployment.yaml
kubernetes/so/charts/so-catalog-db-adapter/templates/secret.yaml [new file with mode: 0644]
kubernetes/so/charts/so-catalog-db-adapter/values.yaml
kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-openstack-adapter/templates/configmap.yaml
kubernetes/so/charts/so-openstack-adapter/templates/deployment.yaml
kubernetes/so/charts/so-sdc-controller/templates/configmap.yaml
kubernetes/so/charts/so-sdc-controller/templates/deployment.yaml
kubernetes/so/charts/so-sdnc-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-sdnc-adapter/templates/configmap.yaml
kubernetes/so/charts/so-sdnc-adapter/templates/deployment.yaml
kubernetes/so/charts/so-ve-vnfm-adapter/Chart.yaml [moved from kubernetes/common/postgres-legacy/charts/pgpool/Chart.yaml with 85% similarity, mode: 0755]
kubernetes/so/charts/so-ve-vnfm-adapter/resources/config/overrides/override.yaml [new file with mode: 0755]
kubernetes/so/charts/so-ve-vnfm-adapter/templates/configmap.yaml [moved from kubernetes/common/postgres-legacy/charts/pgpool/templates/configmap.yaml with 58% similarity]
kubernetes/so/charts/so-ve-vnfm-adapter/templates/deployment.yaml [new file with mode: 0755]
kubernetes/so/charts/so-ve-vnfm-adapter/templates/service.yaml [new file with mode: 0755]
kubernetes/so/charts/so-ve-vnfm-adapter/values.yaml [new file with mode: 0755]
kubernetes/so/templates/configmap.yaml
kubernetes/so/templates/deployment.yaml
kubernetes/so/values.yaml
kubernetes/uui/charts/uui-server/templates/service.yaml
kubernetes/uui/charts/uui-server/values.yaml
kubernetes/vfc/charts/vfc-catalog/templates/deployment.yaml
kubernetes/vfc/charts/vfc-catalog/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-catalog/values.yaml
kubernetes/vfc/charts/vfc-ems-driver/values.yaml
kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml
kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-nslcm/templates/deployment.yaml
kubernetes/vfc/charts/vfc-nslcm/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-nslcm/values.yaml
kubernetes/vfc/charts/vfc-redis/values.yaml
kubernetes/vfc/charts/vfc-resmgr/values.yaml
kubernetes/vfc/charts/vfc-vnflcm/templates/deployment.yaml
kubernetes/vfc/charts/vfc-vnflcm/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-vnflcm/values.yaml
kubernetes/vfc/charts/vfc-vnfmgr/templates/deployment.yaml
kubernetes/vfc/charts/vfc-vnfmgr/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-vnfmgr/values.yaml
kubernetes/vfc/charts/vfc-vnfres/templates/deployment.yaml
kubernetes/vfc/charts/vfc-vnfres/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-vnfres/values.yaml
kubernetes/vfc/charts/vfc-workflow-engine/values.yaml
kubernetes/vfc/charts/vfc-workflow/values.yaml
kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml
kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml
kubernetes/vfc/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vfc/values.yaml
kubernetes/vid/values.yaml
kubernetes/vnfsdk/values.yaml

index 899f0d7..e3790f8 100644 (file)
@@ -53,6 +53,7 @@ The versions of Kubernetes that are supported by OOM are as follows:
   casablanca         1.11.5       2.9.1   1.11.5    17.03.x
   dublin             1.13.5       2.12.3  1.13.5    18.09.5
   el alto            1.15.2       2.14.2  1.15.2    18.09.x
+  frankfurt          1.15.9       2.16.3  1.15.9    18.09.x
   ==============     ===========  ======  ========  ========
 
 Minimum Hardware Configuration
index c3fb603..3cced83 100644 (file)
@@ -373,6 +373,9 @@ Templates are provided in order to create Kubernetes resources (Secrets,
 Ingress, Services, ...) or part of Kubernetes resources (names, labels,
 resources requests and limits, ...).
 
+a full list and simple description is done in
+`kubernetes/common/common/documentation.rst`.
+
 Service template
 ----------------
 
index 48701f7..4cc1ab6 100644 (file)
@@ -114,7 +114,7 @@ stable which should be removed to avoid confusion::
 
 To prepare your system for an installation of ONAP, you'll need to::
 
-  > git clone -b casablanca http://gerrit.onap.org/r/oom
+  > git clone -b frankfurt http://gerrit.onap.org/r/oom
   > cd oom/kubernetes
 
 
@@ -294,7 +294,7 @@ value for the vnfDeployment/openstack/oam_network_cidr key as shown below.
 
 To deploy ONAP with this environment file, enter::
 
-  > helm deploy local/onap -n casablanca -f environments/onap-production.yaml
+  > helm deploy local/onap -n onap -f environments/onap-production.yaml
 
 .. include:: environments_onap_demo.yaml
    :code: yaml
@@ -600,14 +600,14 @@ sequence of events described in the previous paragraph would be initiated.
 For example, to upgrade a container by changing configuration, specifically an
 environment value::
 
-  > helm deploy casablanca onap/so --version 2.0.1 --set enableDebug=true
+  > helm deploy onap onap/so --version 2.0.1 --set enableDebug=true
 
 Issuing this command will result in the appropriate container being stopped by
 Kubernetes and replaced with a new container with the new environment value.
 
 To upgrade a component to a new version with a new configuration file enter::
 
-  > helm deploy casablanca onap/so --version 2.0.2 -f environments/demo.yaml
+  > helm deploy onbap onap/so --version 2.0.2 -f environments/demo.yaml
 
 To fetch release history enter::
 
@@ -700,19 +700,19 @@ from a running deployment the operator perform a 'dry-run' to display exactly
 what will happen with a given command prior to actually deleting anything.  For
 example::
 
-  > helm undeploy casablanca --dry-run
+  > helm undeploy onap --dry-run
 
-will display the outcome of deleting the 'casablanca' release from the
+will display the outcome of deleting the 'onap' release from the
 deployment.
 To completely delete a release and remove it from the internal store enter::
 
-  > helm undeploy casablanca --purge
+  > helm undeploy onap --purge
 
 One can also remove individual components from a deployment by changing the
 ONAP configuration values.  For example, to remove `so` from a running
 deployment enter::
 
-  > helm undeploy casablanca-so --purge
+  > helm undeploy onap-so --purge
 
 will remove `so` as the configuration indicates it's no longer part of the
 deployment. This might be useful if a one wanted to replace just `so` by
index 1f7abd4..a603322 100644 (file)
@@ -67,7 +67,7 @@ ingress:
 resources:
  small:
    limits:
-     cpu: 20m
+     cpu: 200m
      memory: 280Mi
    requests:
      cpu: 1m
index 41bde75..c0d43b8 100644 (file)
@@ -89,7 +89,7 @@ resources:
   small:
     limits:
       cpu: 100m
-      memory: 30Mi
+      memory: 400Mi
     requests:
       cpu: 25m
       memory: 10Mi
@@ -98,6 +98,6 @@ resources:
       cpu: 400m
       memory: 1Gi
     requests:
-      cpu: 10m
+      cpu: 25m
       memory: 100Mi
   unlimited: {}
index 23f0764..4f4d14a 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 23f076495d36081f34a367067918d15fcc5ada8d
+Subproject commit 4f4d14ab45a2225953961136220041189d566015
index 35661c2..9bcf03a 100755 (executable)
@@ -76,11 +76,10 @@ readiness:
 
 service:
   http:
-    type: NodePort
+    type: ClusterIP
     portName: blueprints-processor-http
     internalPort: 8080
     externalPort: 8080
-    nodePort: 99
   grpc:
     type: ClusterIP
     portName: blueprints-processor-grpc
index cc611a1..b3e95a2 100644 (file)
@@ -1,8 +1,8 @@
 listenerservice:
   config:
-    asdcAddress: sdc-be:8443 #SDC-BE
-    messageBusAddress: message-router #Message-Router
-    user: vid #SDC-username
+    asdcAddress: sdc-be.{{include "common.namespace" .}}:8443 #SDC-BE
+    messageBusAddress: message-router.{{include "common.namespace" .}} #Message-Router
+    user: cds #SDC-username
     password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U #SDC-password
     pollingInterval: 15
     pollingTimeout: 60
index ae7abd5..27158a6 100644 (file)
@@ -32,7 +32,7 @@ busyboxImage: library/busybox:latest
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/clamp-dashboard-elasticsearch:5.0.2
+image: onap/clamp-dashboard-elasticsearch:5.0.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index be0c40e..8e640a4 100644 (file)
@@ -34,7 +34,7 @@ busyboxImage: library/busybox:latest
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/clamp-dashboard-kibana:5.0.2
+image: onap/clamp-dashboard-kibana:5.0.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 9a0321a..3ec5684 100644 (file)
@@ -30,7 +30,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/clamp-dashboard-logstash:5.0.2
+image: onap/clamp-dashboard-logstash:5.0.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index dfa0a3e..090dbcc 100644 (file)
@@ -27,7 +27,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: library/cassandra:2.2.14
+image: library/cassandra:3.11.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -90,6 +90,7 @@ service:
     port: 7199
   - name: tcp-cql
     port: 9042
+    ## thrift protocol is  deprecated . Should be removed. Being left until all project removes it.
   - name: tcp-thrift
     port: 9160
   - name: tcp-agent
diff --git a/kubernetes/common/common/documentation.rst b/kubernetes/common/common/documentation.rst
new file mode 100644 (file)
index 0000000..e6cf948
--- /dev/null
@@ -0,0 +1,549 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2020 Orange.  All rights reserved.
+
+.. _developer-guide-label:
+
+
+Current given templating functions
+==================================
+
+
+In order to have a consistent deployments of ONAP components, several templating
+functions are proposed in  `kubernets/common/common/templates` folder.
+This file list them and gives examples for the most used.
+All these templating functions have a description in their own file, here we
+only give an overview.
+
+* conditional functions
+
+  +----------------------------------------------------+-----------------------+
+  | Function                                           | File                  |
+  +----------------------------------------------------+-----------------------+
+  | `common.needPV`                                    | `_storage.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.onServiceMesh`                             | `_serviceMesh.tpl`    |
+  +----------------------------------------------------+-----------------------+
+  | `common.common.needTLS`                             | `_service.tpl`       |
+  +----------------------------------------------------+-----------------------+
+
+* template generation functions
+
+  +----------------------------------------------------+-----------------------+
+  | Function                                           | File                  |
+  +----------------------------------------------------+-----------------------+
+  | `common.masterPassword`                            | `_createPassword.tpl` |
+  +----------------------------------------------------+-----------------------+
+  | `common.createPassword`                            | `_createPassword.tpl` |
+  +----------------------------------------------------+-----------------------+
+  | `common.secret.genName`                            | `_secret.yaml`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.secret.getSecretName`                      | `_secret.yaml`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.secret.envFromSecret`                      | `_secret.yaml`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.secret`                                    | `_secret.yaml`        |
+  +----------------------------------------------------+-----------------------+
+  | `ingress.config.port`                              | `_ingress.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `ingress.config.annotations.ssl`                   | `_ingress.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `ingress.config.annotations`                       | `_ingress.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.ingress`                                   | `_ingress.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.labels`                                    | `_labels.tpl`         |
+  +----------------------------------------------------+-----------------------+
+  | `common.matchLabels`                               | `_labels.tpl`         |
+  +----------------------------------------------------+-----------------------+
+  | `common.resourceMetadata`                          | `_labels.tpl`         |
+  +----------------------------------------------------+-----------------------+
+  | `common.templateMetadata`                          | `_labels.tpl`         |
+  +----------------------------------------------------+-----------------------+
+  | `common.selectors`                                 | `_labels.tpl`         |
+  +----------------------------------------------------+-----------------------+
+  | `common.name`                                      | `_name.tpl`           |
+  +----------------------------------------------------+-----------------------+
+  | `common.fullname`                                  | `_name.tpl`           |
+  +----------------------------------------------------+-----------------------+
+  | `common.fullnameExplicit`                          | `_name.tpl`           |
+  +----------------------------------------------------+-----------------------+
+  | `common.release`                                   | `_name.tpl`           |
+  +----------------------------------------------------+-----------------------+
+  | `common.chart`                                     | `_name.tpl`           |
+  +----------------------------------------------------+-----------------------+
+  | `common.namespace`                                 | `_namespace.tpl`      |
+  +----------------------------------------------------+-----------------------+
+  | `common.repository`                                | `_repository.tpl`     |
+  +----------------------------------------------------+-----------------------+
+  | `common.repository.secret`                         | `_repository.tpl`     |
+  +----------------------------------------------------+-----------------------+
+  | `common.flavor`                                    | `_resources.tpl`      |
+  +----------------------------------------------------+-----------------------+
+  | `common.resources`                                 | `_resources.tpl`      |
+  +----------------------------------------------------+-----------------------+
+  | `common.storageClass`                              | `_storage.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.replicaPV`                                 | `_storage.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.servicename`                               | `_service.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.serviceMetadata`                           | `_service.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.servicePorts`                              | `_service.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.genericService`                            | `_service.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.service`                                   | `_service.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.headlessService`                           | `_service.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadb.secret.rootPassUID`                | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadb.secret.rootPassSecretName`         | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadb.secret.userCredentialsUID`         | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadb.secret.userCredentialsSecretName`  | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadbService`                            | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadbPort`                               | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadbSecret`                             | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.mariadbSecretParam`                        | `_mariadb.tpl`        |
+  +----------------------------------------------------+-----------------------+
+  | `common.postgres.secret.rootPassUID`               | `_postgres.tpl`       |
+  +----------------------------------------------------+-----------------------+
+  | `common.postgres.secret.rootPassSecretName`        | `_postgres.tpl`       |
+  +----------------------------------------------------+-----------------------+
+  | `common.postgres.secret.userCredentialsUID`        | `_postgres.tpl`       |
+  +----------------------------------------------------+-----------------------+
+  | `common.postgres.secret.userCredentialsSecretName` | `_postgres.tpl`       |
+  +----------------------------------------------------+-----------------------+
+  | `common.postgres.secret.primaryPasswordUID`        | `_postgres.tpl`       |
+  +----------------------------------------------------+-----------------------+
+  | `common.postgres.secret.primaryPasswordSecretName` | `_postgres.tpl`       |
+  +----------------------------------------------------+-----------------------+
+  | `common.tplValue`                                  | `_tplValue.tpl`       |
+  +----------------------------------------------------+-----------------------+
+
+
+Passwords
+---------
+
+These functions are defined in
+`kubernetes/common/common/templates/_createPassword.tpl`.
+
+* `common.masterPassword`: Resolve the master password to be used to derive
+  other passwords.
+* `common.createPassword`: Generate a new password based on masterPassword.
+
+Secrets
+-------
+
+These functions are defined in
+`kubernetes/common/common/templates/_secret.yaml`.
+
+* `common.secret.genName`: Generate a secret name based on provided name or UID.
+* `common.secret.getSecretName`: Get the real secret name by UID or name, based
+  on the configuration provided by user.
+* `common.secret.envFromSecret`: Convenience template which can be used to
+  easily set the value of environment variable to the value of a key in a
+  secret.
+* `common.secret`: Define secrets to be used by chart.
+
+The most widely use templates is the last (`common.secret`).
+It should be the only (except license part) line of your secret file:
+
+.. code-block:: yaml
+
+  {{ include "common.secret" . }}
+
+In order to have the right values set, you need to create the right
+configuration in `values.yaml` (example taken from mariadb configuration):
+
+.. code-block:: yaml
+
+  secrets:
+  - uid: 'db-root-password'
+    type: password
+    externalSecret: '{{ tpl (default "" .Values.config.db.rootPasswordExternalSecret) . }}'
+    password: '{{ .Values.config.dbRootPassword }}'
+  - uid: 'db-user-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.db.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.db.userName }}'
+    password: '{{ .Values.config.dbSdnctlPassword }}'
+
+Ingress
+-------
+
+These functions are defined in
+`kubernetes/common/common/templates/_ingress.tpl`.
+
+* `ingress.config.port`: generate the port path on an Ingress resource.
+* `ingress.config.annotations.ssl`: generate the ssl annotations of an Ingress
+  resource.
+* `ingress.config.annotations`: generate the annotations of an Ingress resource.
+* `common.ingress`: generate an Ingress resource (if needed).
+
+The most widely use templates is the last (`common.ingress`) .
+
+It should be the only (except license part) line of your ingress file:
+
+.. code-block:: yaml
+
+  {{ include "common.ingress" . }}
+
+In order to have the right values set, you need to create the right
+configuration in `values.yaml` (example taken from clamp configuration):
+
+.. code-block:: yaml
+
+  ingress:
+    enabled: false
+    service:
+      - baseaddr: "clamp"
+        name: "clamp"
+        port: 443
+    config:
+      ssl: "redirect"
+
+Labels
+------
+
+These functions are defined in `kubernetes/common/common/templates/_labels.tpl`.
+
+The goal of these functions is to always create the right labels for all the
+resource in a consistent way.
+
+* `common.labels`: generate the common labels for a resource
+* `common.matchLabels`: generate the labels to match (to be used in conjunction
+  with `common.labels` or `common.resourceMetadata`)
+* `common.resourceMetadata`: generate the "top" metadatas for a resource
+  (Deployment, StatefulSet, Service, ConfigMap, ...)
+* `common.templateMetadata`: generate the metadata put in the template part
+  (for example `spec.template.metadata` for a Deployment)
+* `common.selectors`: generate the right selectors for Service / Deployment /
+  StatefulSet, ... (to be used in conjunction with `common.labels` or
+  `common.resourceMetadata`)
+
+
+Here's an example of use of these functions in a Deployment template (example
+taken on nbi):
+
+.. code-block:: yaml
+
+  apiVersion: apps/v1
+  kind: Deployment
+  metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+  spec:
+    selector: {{- include "common.selectors" . | nindent 4 }}
+    replicas: {{ .Values.replicaCount }}
+    template:
+      metadata: {{- include "common.templateMetadata" . | nindent 6 }}
+      spec:
+        ...
+
+Name
+----
+
+These functions are defined in `kubernetes/common/common/templates/_name.tpl`.
+
+The goal of these functions is to always name the resource the same way.
+
+* `common.name`: Generate the name for a chart.
+* `common.fullname`: Create a default fully qualified application name.
+* `common.fullnameExplicit`: The same as common.full name but based on passed
+  dictionary instead of trying to figure out chart name on its own.
+* `common.release`: Retrieve the "original" release from the component release.
+* `common.chart`: Generate the chart name
+
+Here's an example of use of these functions in a Deployment template (example
+taken on mariadb-galera):
+
+.. code-block:: yaml
+
+  apiVersion: apps/v1beta1
+  kind: StatefulSet
+  ...
+  spec:
+    serviceName: {{ .Values.service.name }}
+    replicas: {{ .Values.replicaCount }}
+    template:
+      ...
+      spec:
+      {{- if .Values.nodeSelector }}
+        nodeSelector:
+  {{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end }}
+        volumes:
+        {{- if .Values.externalConfig }}
+          - name: config
+            configMap:
+              name: {{ include "common.fullname" . }}-external-config
+        {{- end}}
+        ...
+        containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        ...
+
+Namespace
+---------
+
+These functions are defined in
+`kubernetes/common/common/templates/_namespace.tpl`.
+
+The goal of these functions is to always retrieve the namespace the same way.
+
+* `common.namespace`: Generate the namespace for a chart. Shouldn't be used
+  directly but use `common.resourceMetadata` (which uses it).
+
+
+Repository
+----------
+
+These functions are defined in
+`kubernetes/common/common/templates/_repository.tpl`.
+
+The goal of these functions is to generate image name the same way.
+
+* `common.repository`: Resolve the name of the common image repository.
+* `common.repository.secret`: Resolve the image repository secret token.
+
+
+Resources
+---------
+
+These functions are defined in
+`kubernetes/common/common/templates/_resources.tpl`.
+
+The goal of these functions is to generate resources for pods the same way.
+
+* `common.flavor`: Resolve the name of the common resource limit/request flavor.
+  Shouldn't be used alone.
+* `common.resources`: Resolve the resource limit/request flavor using the
+  desired flavor value.
+
+
+Storage
+-------
+
+These functions are defined in
+`kubernetes/common/common/templates/_storage.tpl`.
+
+The goal of these functions is to generate storage part of Deployment /
+Statefulset and storage resource (PV, PVC, ...) in a consistent way.
+
+* `common.storageClass`: Expand the name of the storage class.
+* `common.needPV`: Calculate if we need a PV. If a storageClass is provided,
+  then we don't need.
+* `common.replicaPV`: Generate N PV for a statefulset
+
+
+Pod
+---
+
+These functions are defined in `kubernetes/common/common/templates/_pod.tpl`.
+
+* `common.containerPorts`: generate the port list for containers. See Service
+  part to know how to declare the port list.
+
+Here's an example of use of these functions in a Deployment template (example
+taken on nbi):
+
+.. code-block:: yaml
+
+  apiVersion: apps/v1
+  kind: Deployment
+  ...
+  spec:
+    ...
+    template:
+      ...
+      spec:
+        containers:
+        - name:  {{ include "common.name" . }}
+          ports: {{- include "common.containerPorts" . | nindent 8  }
+
+
+Service
+-------
+
+These functions are defined in
+`kubernetes/common/common/templates/_service.tpl`.
+
+The goal of these functions is to generate services in a consistent way.
+
+* `common.servicename`: Expand the service name for a chart.
+* `common.serviceMetadata`: Define the metadata of Service. Shouldn't be used
+  directly but used through `common.service` or `common.headlessService`.
+* `common.servicePorts`: Define the ports of Service. Shouldn't be used directly
+  but used through `common.service` or `common.headlessService`.
+* `common.genericService`: Template for creating any Service. Shouldn't be used
+  directly but used through `common.service` or `common.headlessService`. May be
+  used if you want to create a Service with some specificities (on the ports for
+  example).
+* `common.needTLS`: Calculate if we need to use TLS ports on services
+* `common.service`: Create service template.
+* `common.headlessService`: Create headless service template
+
+
+The most widely used templates are the two last (`common.service` and
+`common.headlessService`).
+It should use with only one (except license part) line of your service (or
+service-headless) file:
+
+.. code-block:: yaml
+
+  {{ include "common.service" . }}
+
+In order to have the right values set, you need to create the right
+configuration in `values.yaml` (example taken from nbi configuration + other
+part):
+
+.. code-block:: yaml
+
+  service:
+    type: NodePort
+    name: nbi
+    annotations:
+      my: super-annotation
+    ports:
+      - name: api
+        port: 8443
+        plain_port: 8080
+        port_protocol: http
+        nodePort: 74
+      - name: tcp-raw
+        port: 8459
+        nodePort: 89
+
+
+would generate:
+
+.. code-block:: yaml
+
+  apiVersion: v1
+  kind: Service
+  metadata:
+    annotations:
+      my: super-annotation
+    name: nbi
+    namespace: default
+    labels:
+      app.kubernetes.io/name: nbi
+      helm.sh/chart: nbi-5.0.0
+      app.kubernetes.io/instance: release
+      app.kubernetes.io/managed-by: Tiller
+  spec:
+    ports:
+    - port: 8443
+      targetPort: api
+      name: https-api
+      nodePort: 30274
+    - port: 8459
+      targetPort: tcp-raw
+      name: tcp-raw
+      nodePort: 30289
+    type: NodePort
+    selector:
+      app.kubernetes.io/name: nbi
+      app.kubernetes.io/instance: release
+
+
+`plain_port` is used only if we mandate to use http (see ServiceMesh part).
+Today a port can be http or https but not both.
+headless configuration is equivalent (example taken from cassandra):
+
+.. code-block:: yaml
+
+  service:
+    name: cassandra
+    headless:
+      suffix: ""
+      annotations:
+        service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+      publishNotReadyAddresses: true
+    headlessPorts:
+    - name: tcp-intra
+      port: 7000
+    - name: tls
+      port: 7001
+    - name: tcp-jmx
+      port: 7199
+    - name: tcp-cql
+      port: 9042
+    - name: tcp-thrift
+      port: 9160
+    - name: tcp-agent
+      port: 61621
+
+
+ServiceMesh
+-----------
+
+These functions are defined in
+`kubernetes/common/common/templates/_serviceMesh.tpl`.
+
+The goal of these functions is to handle onboarding of ONAP on service mesh.
+
+* `common.onServiceMesh`: Calculate if we if we are on service mesh
+
+
+
+MariaDB
+-------
+
+These functions are defined in
+`kubernetes/common/common/templates/_mariadb.tpl`.
+
+The goal of these functions is to simplify use of mariadb and its different
+values.
+
+* `common.mariadb.secret.rootPassUID`: UID of mariadb root password
+* `common.mariadb.secret.rootPassSecretName`: Name of mariadb root password
+  secret
+* `common.mariadb.secret.userCredentialsUID`: UID of mariadb user credentials
+* `common.mariadb.secret.userCredentialsSecretName`: Name of mariadb user
+  credentials secret
+* `common.mariadbService`: Choose the name of the mariadb service to use
+* `common.mariadbPort`: Choose the value of mariadb port to use
+* `common.mariadbSecret`: Choose the value of secret to retrieve user value
+* `common.mariadbSecretParam`: Choose the value of secret param to retrieve user
+  value
+
+PostgreSQL
+----------
+
+These functions are defined in
+`kubernetes/common/common/templates/_postgres.tpl`.
+
+The goal of these functions is to simplify use of postgres and its different
+values.
+
+* `common.postgres.secret.rootPassUID`: UID of postgres root password
+* `common.postgres.secret.rootPassSecretName`: Name of postgres root password
+  secret
+* `common.postgres.secret.userCredentialsUID`: UID of postgres user credentials
+* `common.postgres.secret.userCredentialsSecretName`: Name of postgres user
+  credentials secret
+* `common.postgres.secret.primaryPasswordUID`: UID of postgres primary password
+* `common.postgres.secret.primaryPasswordSecretName`: Name of postgres primary
+  credentials secret
+
+
+Utilities
+---------
+
+These functions are defined in
+`kubernetes/common/common/templates/_tplValue.tpl`.
+
+The goal of these functions is provide utility function, usually used in other
+templating functions.
+
+* `common.tplValue`: Renders a value that contains template.
index 9329572..d3fc25a 100644 (file)
   Will use first ".Values.service.ports" list.
   Will append ports from ".Values.service.headlessPorts" only if port number is
   not already in port list.
+  Will add tls port AND plain port if both_tls_and_plain is set to true
 */}}
 {{- define "common.containerPorts" -}}
 {{-   $ports := default (list) .Values.service.ports }}
 {{-   $portsNumber := list }}
+{{-   $both_tls_and_plain:= default false .Values.service.both_tls_and_plain }}
 {{-   range $index, $port := $ports }}
 {{-     $portsNumber = append $portsNumber $port.port }}
 {{-   end }}
 {{-       $ports = append $ports $port }}
 {{-     end }}
 {{-   end }}
+{{- $global := . }}
 {{-   range $index, $port := $ports }}
+{{-     if (include "common.needTLS" $global) }}
 - containerPort: {{ $port.port }}
+{{-     else }}
+- containerPort: {{ default $port.port $port.plain_port }}
+{{-     end }}
   name: {{ $port.name }}
+{{-     if (and $port.plain_port (and (include "common.needTLS" $global) $both_tls_and_plain))  }}
+- containerPort: {{ $port.plain_port }}
+  name: {{ $port.name }}-plain
+{{-     end }}
 {{-   end }}
 {{- end -}}
index e24a2e4..9f41906 100644 (file)
@@ -22,6 +22,7 @@
   The template takes two arguments:
     - .global: environment (.)
     - .name: name of the secret
+    - .annotations: annotations which should be used
 
   Example call:
     {{ include "common.secret._header" (dict "global" . "name" "myFancyName") }}
@@ -39,6 +40,9 @@ metadata:
     chart: {{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}
     release: {{ include "common.release" $global }}
     heritage: {{ $global.Release.Service }}
+{{- if .annotations }}
+  annotations: {{- include "common.tplValue" (dict "value" .annotations "context" $global) | nindent 4 }}
+{{- end }}
 type: Opaque
 {{- end -}}
 
@@ -204,6 +208,8 @@ valueFrom:
     - name:
         Overrides default secret name generation and allows to set immutable
         and globaly unique name
+    - annotations:
+        List of annotations to be used while defining a secret
 
   To allow sharing a secret between the components and allow to pre-deploy secrets
   before ONAP deployment it is possible to use already existing secret instead of
@@ -239,11 +245,12 @@ valueFrom:
   {{- range $secret := .Values.secrets }}
     {{- $uid := tpl (default "" $secret.uid) $global }}
     {{- $name := include "common.secret.genName" (dict "global" $global "uid" $uid "name" $secret.name) }}
+    {{- $annotations := default "" $secret.annotations }}
     {{- $type := default "generic" $secret.type }}
     {{- $externalSecret := tpl (default "" $secret.externalSecret) $global }}
     {{- if not $externalSecret }}
 ---
-      {{ include "common.secret._header" (dict "global" $global "name" $name) }}
+      {{ include "common.secret._header" (dict "global" $global "name" $name "annotations" $annotations) }}
 
       {{- if eq $type "generic" }}
 data:
index 075f796..cd1595b 100644 (file)
@@ -35,6 +35,7 @@
      - .dot : environment (.)
      - .suffix : a string which will be added at the end of the name (with a '-').
      - .annotations: the annotations to add
+     - .msb_informations: msb information in order to create msb annotation
      Usage example:
       {{ include "common.serviceMetadata" ( dict "suffix" "myService" "dot" .) }}
       {{ include "common.serviceMetadata" ( dict "annotations" .Values.service.annotation "dot" .) }}
   {{- $dot := default . .dot -}}
   {{- $suffix := default "" .suffix -}}
   {{- $annotations := default "" .annotations -}}
-{{- if $annotations -}}
-annotations: {{- include "common.tplValue" (dict "value" $annotations "context" $dot) | nindent 2 }}
+  {{- $msb_informations := default "" .msb_informations -}}
+{{- if or $annotations $msb_informations -}}
+annotations:
+{{-   if $annotations }}
+{{      include "common.tplValue" (dict "value" $annotations "context" $dot) | indent 2 }}
+{{-   end }}
+{{-   if $msb_informations }}
+  msb.onap.org/service-info: '[
+      {
+          "serviceName": "{{ include "common.servicename" $dot }}",
+          "version": "{{ default "v1" $msb_informations.version }}",
+          "url": "{{ default "/" $msb_informations.url }}",
+          "protocol": "{{ default "REST" $msb_informations.protocol }}",
+          "port": "{{ $msb_informations.port }}",
+          "visualRange":"{{ default "1" $msb_informations.visualRange }}"
+      }
+      ]'
+{{-   end}}
 {{- end }}
 name: {{ include "common.servicename" $dot }}{{ if $suffix }}{{ print "-" $suffix }}{{ end }}
 namespace: {{ include "common.namespace" $dot }}
@@ -55,62 +72,121 @@ labels: {{- include "common.labels" $dot | nindent 2 -}}
      The function takes three arguments (inside a dictionary):
      - .dot : environment (.)
      - .ports : an array of ports
-     - .portType: the type of the service
+     - .serviceType: the type of the service
+     - .add_plain_port: add tls port AND plain port
 */}}
 {{- define "common.servicePorts" -}}
-{{- $portType := .portType -}}
-{{- $dot := .dot -}}
-{{- range $index, $port := .ports }}
+{{- $serviceType := .serviceType }}
+{{- $dot := .dot }}
+{{- $add_plain_port := default false .add_plain_port }}
+{{-   range $index, $port := .ports }}
+{{-     if (include "common.needTLS" $dot) }}
 - port: {{ $port.port }}
   targetPort: {{ $port.name }}
-  {{- if (eq $portType "NodePort") }}
+{{-       if $port.port_protocol }}
+  name: {{ printf "%ss-%s" $port.port_protocol $port.name }}
+{{-       else }}
+  name: {{ $port.name }}
+{{-       end }}
+{{-       if (eq $serviceType "NodePort") }}
   nodePort: {{ $dot.Values.global.nodePortPrefix | default $dot.Values.nodePortPrefix }}{{ $port.nodePort }}
-  {{- end }}
+{{-       end }}
+{{-     else }}
+- port: {{ default $port.port $port.plain_port }}
+  targetPort: {{ $port.name }}
+{{-       if $port.port_protocol }}
+  name: {{ printf "%s-%s" $port.port_protocol $port.name }}
+{{-       else }}
   name: {{ $port.name }}
-{{- end -}}
+{{-       end }}
+{{-     end }}
+{{-     if (and (and (include "common.needTLS" $dot) $add_plain_port) $port.plain_port)  }}
+{{-       if (eq $serviceType "ClusterIP")  }}
+- port: {{ $port.plain_port }}
+  targetPort: {{ $port.name }}-plain
+{{-         if $port.port_protocol }}
+  name: {{ printf "%s-%s" $port.port_protocol $port.name }}
+{{-         else }}
+  name: {{ $port.name }}-plain
+{{-         end }}
+{{-       end }}
+{{-     end }}
+{{-   end }}
 {{- end -}}
 
 {{/* Create generic service template
      The function takes several arguments (inside a dictionary):
      - .dot : environment (.)
      - .ports : an array of ports
-     - .portType: the type of the service
+     - .serviceType: the type of the service
      - .suffix : a string which will be added at the end of the name (with a '-')
      - .annotations: the annotations to add
+     - .msb_informations: msb information in order to create msb annotation
      - .publishNotReadyAddresses: if we publish not ready address
      - .headless: if the service is headless
+     - .add_plain_port: add tls port AND plain port
 */}}
 {{- define "common.genericService" -}}
 {{- $dot := default . .dot -}}
 {{- $suffix := default "" .suffix -}}
 {{- $annotations := default "" .annotations -}}
+{{- $msb_informations := default "" .msb_informations -}}
 {{- $publishNotReadyAddresses := default false .publishNotReadyAddresses -}}
-{{- $portType := .portType -}}
+{{- $serviceType := .serviceType -}}
 {{- $ports := .ports -}}
 {{- $headless := default false .headless -}}
+{{- $add_plain_port := default false .add_plain_port }}
 apiVersion: v1
 kind: Service
-metadata: {{ include "common.serviceMetadata" (dict "suffix" $suffix "annotations" $annotations "dot" $dot ) | nindent 2 }}
+metadata: {{ include "common.serviceMetadata" (dict "suffix" $suffix "annotations" $annotations "msb_informations" $msb_informations "dot" $dot) | nindent 2 }}
 spec:
   {{- if $headless }}
   clusterIP: None
   {{- end }}
-  ports: {{- include "common.servicePorts" (dict "portType" $portType "ports" $ports "dot" $dot) | nindent 4 }}
+  ports: {{- include "common.servicePorts" (dict "serviceType" $serviceType "ports" $ports "dot" $dot "add_plain_port" $add_plain_port) | nindent 4 }}
   {{- if $publishNotReadyAddresses }}
   publishNotReadyAddresses: true
   {{- end }}
-  type: {{ $portType }}
+  type: {{ $serviceType }}
   selector: {{- include "common.matchLabels" $dot | nindent 4 }}
 {{- end -}}
 
-{{/* Create service template */}}
+{{/*
+    Create service template
+    Will create one or two service templates according to this table:
+
+    | serviceType   | both_tls_and_plain | result       |
+    |---------------|--------------------|--------------|
+    | ClusterIP     | any                | one Service  |
+    | Not ClusterIP | not present        | one Service  |
+    | Not ClusterIP | false              | one Service  |
+    | Not ClusterIP | true               | two Services |
+
+    If two services are created, one is ClusterIP with both crypted and plain
+    ports and the other one is NodePort (or LoadBalancer) with crypted port only.
+*/}}
 {{- define "common.service" -}}
-{{- $suffix := default "" .Values.service.suffix -}}
-{{- $annotations := default "" .Values.service.annotations -}}
-{{- $publishNotReadyAddresses := default false .Values.service.publishNotReadyAddresses -}}
-{{- $portType := .Values.service.type -}}
-{{- $ports := .Values.service.ports -}}
-{{ include "common.genericService" (dict "suffix" $suffix "annotations" $annotations "dot" . "publishNotReadyAddresses" $publishNotReadyAddresses "ports" $ports "portType" $portType) }}
+{{-   $suffix := default "" .Values.service.suffix -}}
+{{-   $annotations := default "" .Values.service.annotations -}}
+{{-   $publishNotReadyAddresses := default false .Values.service.publishNotReadyAddresses -}}
+{{-   $msb_informations := default "" .Values.service.msb -}}
+{{-   $serviceType := .Values.service.type -}}
+{{-   $ports := .Values.service.ports -}}
+{{-   $both_tls_and_plain:= default false .Values.service.both_tls_and_plain }}
+{{-   if (and (include "common.needTLS" .) $both_tls_and_plain) }}
+{{      include "common.genericService" (dict "suffix" $suffix "annotations" $annotations "msb_informations" $msb_informations "dot" . "publishNotReadyAddresses" $publishNotReadyAddresses "ports" $ports "serviceType" "ClusterIP" "add_plain_port" true) }}
+{{-     if (ne $serviceType "ClusterIP") }}
+---
+{{-       if $suffix }}
+{{-         $suffix = printf "%s-external" $suffix }}
+{{-       else }}
+{{-         $suffix = "external" }}
+{{-       end }}
+{{        include "common.genericService" (dict "suffix" $suffix "annotations" $annotations "dot" . "publishNotReadyAddresses" $publishNotReadyAddresses "ports" $ports "serviceType" $serviceType) }}
+{{-     end }}
+{{-   else }}
+{{      include "common.genericService" (dict "suffix" $suffix "annotations" $annotations "dot" . "publishNotReadyAddresses" $publishNotReadyAddresses "ports" $ports "serviceType" $serviceType) }}
+{{-   end }}
 {{- end -}}
 
 {{/* Create headless service template */}}
@@ -119,7 +195,7 @@ spec:
 {{- $annotations := default "" .Values.service.headless.annotations -}}
 {{- $publishNotReadyAddresses := default false .Values.service.headless.publishNotReadyAddresses -}}
 {{- $ports := .Values.service.headlessPorts -}}
-{{ include "common.genericService" (dict "suffix" $suffix "annotations" $annotations "dot" . "publishNotReadyAddresses" $publishNotReadyAddresses "ports" $ports "portType" "ClusterIP" "headless" true ) }}
+{{ include "common.genericService" (dict "suffix" $suffix "annotations" $annotations "dot" . "publishNotReadyAddresses" $publishNotReadyAddresses "ports" $ports "serviceType" "ClusterIP" "headless" true ) }}
 {{- end -}}
 
 {{/*
@@ -132,3 +208,45 @@ spec:
 {{-     print "headless" }}
 {{-   end }}
 {{- end -}}
+
+{{/*
+  Calculate if we need to use TLS ports.
+  We use TLS by default unless we're on service mesh with TLS.
+  We can also override this behavior with override toggles:
+  - .Values.global.tlsEnabled  : override default TLS behavior for all charts
+  - .Values.tlsOverride : override global and default TLS on a per chart basis
+
+  this will give these combinations:
+  | tlsOverride | global.tlsEnabled | global.serviceMesh.enabled | global.serviceMesh.tls | result |
+  |-------------|-------------------|----------------------------|------------------------|--------|
+  | not present | not present       | not present                | any                    | true   |
+  | not present | not present       | false                      | any                    | true   |
+  | not present | not present       | true                       | false                  | true   |
+  | not present | not present       | true                       | true                   | false  |
+  | not present | true              | any                        | any                    | true   |
+  | not present | false             | any                        | any                    | false  |
+  | true        | any               | any                        | any                    | true   |
+  | false       | any               | any                        | any                    | false  |
+
+*/}}
+{{- define "common.needTLS" -}}
+{{-   if hasKey .Values "tlsOverride" }}
+{{-     if .Values.tlsOverride -}}
+true
+{{-       end }}
+{{-   else }}
+{{-     if hasKey .Values.global "tlsEnabled" }}
+{{-       if .Values.global.tlsEnabled }}
+true
+{{-       end }}
+{{-     else }}
+{{-       if not (include "common.onServiceMesh" .) -}}
+true
+{{-       else }}
+{{-         if not (default false .Values.global.serviceMesh.tls) -}}
+true
+{{-         end }}
+{{-       end }}
+{{-     end }}
+{{-   end }}
+{{- end -}}
diff --git a/kubernetes/common/common/templates/_serviceMesh.tpl b/kubernetes/common/common/templates/_serviceMesh.tpl
new file mode 100644 (file)
index 0000000..6b6a26f
--- /dev/null
@@ -0,0 +1,27 @@
+{/*
+# Copyright Â© 2020 Amdocs, Bell Canada, Orange
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+
+{/*
+  Calculate if we are on service mesh.
+*/}}
+{{- define "common.onServiceMesh" -}}
+{{-   if .Values.global.serviceMesh -}}
+{{-     if (default false .Values.global.serviceMesh.enabled) -}}
+true
+{{-     end -}}
+{{-   end -}}
+{{- end -}}
index ae93359..45c8b75 100644 (file)
 # limitations under the License.
 */}}
 
+{{/*
+  Give the root folder for ONAP when using host pathes
+*/}}
+{{- define "common.persistencePath" -}}
+{{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
+
 {{/*
   Expand the name of the storage class.
   The value "common.fullname"-data is used by default,
 {{- end -}}
 {{- end -}}
 
+{{/*
+  Generate a PV
+*/}}
+{{- define "common.PV" -}}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{- if (include "common.needPV" .) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data
+  namespace: {{ include "common.namespace" . }}
+  labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ include "common.persistencePath" . }}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
 {{/*
   Generate N PV for a statefulset
 */}}
@@ -77,8 +109,30 @@ spec:
   persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
   storageClassName: "{{ include "common.fullname" $global }}-data"
   hostPath:
-    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ include "common.release" $global }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
+    path: {{ include "common.persistencePath" $global }}-{{$i}}
+{{- end -}}
+{{- end -}}
 {{- end -}}
 {{- end -}}
+
+{{/*
+  Generate a PVC
+*/}}
+{{- define "common.PVC" -}}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: {{ include "common.storageClass" . }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
 {{- end -}}
 {{- end -}}
diff --git a/kubernetes/common/postgres-legacy/.helmignore b/kubernetes/common/postgres-legacy/.helmignore
deleted file mode 100644 (file)
index f0c1319..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# Patterns to ignore when building packages.
-# This supports shell glob matching, relative path matching, and
-# negation (prefixed with !). Only one pattern per line.
-.DS_Store
-# Common VCS dirs
-.git/
-.gitignore
-.bzr/
-.bzrignore
-.hg/
-.hgignore
-.svn/
-# Common backup files
-*.swp
-*.bak
-*.tmp
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
diff --git a/kubernetes/common/postgres-legacy/charts/pgpool/configs/pgpool.conf b/kubernetes/common/postgres-legacy/charts/pgpool/configs/pgpool.conf
deleted file mode 100644 (file)
index f335174..0000000
+++ /dev/null
@@ -1,677 +0,0 @@
-# ----------------------------
-# pgPool-II configuration file a custom version
-# ----------------------------
-#
-# This file consists of lines of the form:
-#
-#   name = value
-#
-# Whitespace may be used.  Comments are introduced with "#" anywhere on a line.
-# The complete list of parameter names and allowed values can be found in the
-# pgPool-II documentation.
-#
-# This file is read on server startup and when the server receives a SIGHUP
-# signal.  If you edit the file on a running system, you have to SIGHUP the
-# server for the changes to take effect, or use "pgpool reload".  Some
-# parameters, which are marked below, require a server shutdown and restart to
-# take effect.
-#
-
-
-#------------------------------------------------------------------------------
-# CONNECTIONS
-#------------------------------------------------------------------------------
-
-# - pgpool Connection Settings -
-
-listen_addresses = '*'
-                                   # Host name or IP address to listen on:
-                                   # '*' for all, '' for no TCP/IP connections
-                                   # (change requires restart)
-#port = 9999
-port = 5432
-                                   # Port number
-                                   # (change requires restart)
-socket_dir = '/tmp'
-                                   # Unix domain socket path
-                                   # The Debian package defaults to
-                                   # /var/run/postgresql
-                                   # (change requires restart)
-
-
-# - pgpool Communication Manager Connection Settings -
-
-pcp_port = 9898
-                                   # Port number for pcp
-                                   # (change requires restart)
-pcp_socket_dir = '/tmp'
-                                   # Unix domain socket path for pcp
-                                   # The Debian package defaults to
-                                   # /var/run/postgresql
-                                   # (change requires restart)
-
-# - Backend Connection Settings -
-
-backend_hostname0 = '{{.Values.container.name.primary}}'
-backend_port0 = 5432
-backend_weight0= 1
-backend_flag0= 'DISALLOW_TO_FAILOVER'
-
-backend_hostname1 = '{{.Values.container.name.replica}}'
-backend_port1 = 5432
-backend_weight1= 1
-backend_flag1= 'DISALLOW_TO_FAILOVER'
-
-#backend_hostname0 = 'master'
-                                   # Host name or IP address to connect to for backend 0
-#backend_port0 = 5432
-                                   # Port number for backend 0
-#backend_weight0 = 1
-                                   # Weight for backend 0 (only in load balancing mode)
-#backend_data_directory0 = '/data'
-                                   # Data directory for backend 0
-#backend_flag0 = 'ALLOW_TO_FAILOVER'
-                                   # Controls various backend behavior
-                                   # ALLOW_TO_FAILOVER or DISALLOW_TO_FAILOVER
-#backend_hostname1 = 'standby'
-#backend_port1 = 5432
-#backend_weight1 = 1
-#backend_data_directory1 = '/data1'
-#backend_flag1 = 'ALLOW_TO_FAILOVER'
-
-# - Authentication -
-
-enable_pool_hba = on
-                                   # Use pool_hba.conf for client authentication
-pool_passwd = 'pool_passwd'
-                                   # File name of pool_passwd for md5 authentication.
-                                   # "" disables pool_passwd.
-                                   # (change requires restart)
-authentication_timeout = 60
-                                   # Delay in seconds to complete client authentication
-                                   # 0 means no timeout.
-
-# - SSL Connections -
-
-ssl = off
-                                   # Enable SSL support
-                                   # (change requires restart)
-#ssl_key = './server.key'
-                                   # Path to the SSL private key file
-                                   # (change requires restart)
-#ssl_cert = './server.cert'
-                                   # Path to the SSL public certificate file
-                                   # (change requires restart)
-#ssl_ca_cert = ''
-                                   # Path to a single PEM format file
-                                   # containing CA root certificate(s)
-                                   # (change requires restart)
-#ssl_ca_cert_dir = ''
-                                   # Directory containing CA root certificate(s)
-                                   # (change requires restart)
-
-
-#------------------------------------------------------------------------------
-# POOLS
-#------------------------------------------------------------------------------
-
-# - Pool size -
-
-num_init_children = 5
-                                   # Number of pools
-                                   # (change requires restart)
-max_pool = 1
-                                   # Number of connections per pool
-                                   # (change requires restart)
-
-# - Life time -
-
-child_life_time = 300
-                                   # Pool exits after being idle for this many seconds
-child_max_connections = 0
-                                   # Pool exits after receiving that many connections
-                                   # 0 means no exit
-connection_life_time = 0
-                                   # Connection to backend closes after being idle for this many seconds
-                                   # 0 means no close
-client_idle_limit = 0
-                                   # Client is disconnected after being idle for that many seconds
-                                   # (even inside an explicit transactions!)
-                                   # 0 means no disconnection
-
-
-#------------------------------------------------------------------------------
-# LOGS
-#------------------------------------------------------------------------------
-
-# - Where to log -
-
-log_destination = 'stderr'
-                                   # Where to log
-                                   # Valid values are combinations of stderr,
-                                   # and syslog. Default to stderr.
-
-# - What to log -
-
-print_timestamp = on
-                                   # Print timestamp on each line
-                                   # (change requires restart)
-
-log_connections = on
-                                   # Log connections
-log_hostname = on
-                                   # Hostname will be shown in ps status
-                                   # and in logs if connections are logged
-log_statement = on
-                                   # Log all statements
-log_per_node_statement = off
-                                   # Log all statements
-                                   # with node and backend informations
-log_standby_delay = 'if_over_threshold'
-                                   # Log standby delay
-                                   # Valid values are combinations of always,
-                                   # if_over_threshold, none
-
-# - Syslog specific -
-
-syslog_facility = 'LOCAL0'
-                                   # Syslog local facility. Default to LOCAL0
-syslog_ident = 'pgpool'
-                                   # Syslog program identification string
-                                   # Default to 'pgpool'
-
-# - Debug -
-
-debug_level = 1
-                                   # Debug message verbosity level
-                                   # 0 means no message, 1 or more mean verbose
-
-
-#------------------------------------------------------------------------------
-# FILE LOCATIONS
-#------------------------------------------------------------------------------
-
-pid_file_name = '/tmp/pgpool.pid'
-                                   # PID file name
-                                   # (change requires restart)
-logdir = '/tmp'
-                                   # Directory of pgPool status file
-                                   # (change requires restart)
-
-
-#------------------------------------------------------------------------------
-# CONNECTION POOLING
-#------------------------------------------------------------------------------
-
-connection_cache = off
-                                   # Activate connection pools
-                                   # (change requires restart)
-
-                                   # Semicolon separated list of queries
-                                   # to be issued at the end of a session
-                                   # The default is for 8.3 and later
-reset_query_list = 'ABORT; DISCARD ALL'
-                                   # The following one is for 8.2 and before
-#reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
-
-
-#------------------------------------------------------------------------------
-# REPLICATION MODE
-#------------------------------------------------------------------------------
-
-replication_mode = off
-                                   # Activate replication mode
-                                   # (change requires restart)
-replicate_select = off
-                                   # Replicate SELECT statements
-                                   # when in replication or parallel mode
-                                   # replicate_select is higher priority than
-                                   # load_balance_mode.
-
-insert_lock = off
-                                   # Automatically locks a dummy row or a table
-                                   # with INSERT statements to keep SERIAL data
-                                   # consistency
-                                   # Without SERIAL, no lock will be issued
-lobj_lock_table = ''
-                                   # When rewriting lo_creat command in
-                                   # replication mode, specify table name to
-                                   # lock
-
-# - Degenerate handling -
-
-replication_stop_on_mismatch = off
-                                   # On disagreement with the packet kind
-                                   # sent from backend, degenerate the node
-                                   # which is most likely "minority"
-                                   # If off, just force to exit this session
-
-failover_if_affected_tuples_mismatch = off
-                                   # On disagreement with the number of affected
-                                   # tuples in UPDATE/DELETE queries, then
-                                   # degenerate the node which is most likely
-                                   # "minority".
-                                   # If off, just abort the transaction to
-                                   # keep the consistency
-
-
-#------------------------------------------------------------------------------
-# LOAD BALANCING MODE
-#------------------------------------------------------------------------------
-
-load_balance_mode = on
-                                   # Activate load balancing mode
-                                   # (change requires restart)
-ignore_leading_white_space = on
-                                   # Ignore leading white spaces of each query
-white_function_list = ''
-                                   # Comma separated list of function names
-                                   # that don't write to database
-                                   # Regexp are accepted
-black_function_list = 'currval,lastval,nextval,setval'
-                                   # Comma separated list of function names
-                                   # that write to database
-                                   # Regexp are accepted
-
-
-#------------------------------------------------------------------------------
-# MASTER/SLAVE MODE
-#------------------------------------------------------------------------------
-
-master_slave_mode = on
-                                   # Activate master/slave mode
-                                   # (change requires restart)
-master_slave_sub_mode = 'stream'
-                                   # Master/slave sub mode
-                                   # Valid values are combinations slony or
-                                   # stream. Default is slony.
-                                   # (change requires restart)
-
-# - Streaming -
-
-sr_check_period = 10
-                                   # Streaming replication check period
-                                   # Disabled (0) by default
-sr_check_user = '{{.Values.credentials.pgusername}}'
-                                   # Streaming replication check user
-                                   # This is neccessary even if you disable streaming
-                                   # replication delay check by sr_check_period = 0
-sr_check_password = '{{.Values.credentials.pgpassword}}'
-                                   # Password for streaming replication check user
-delay_threshold = 10000000
-                                   # Threshold before not dispatching query to standby node
-                                   # Unit is in bytes
-                                   # Disabled (0) by default
-
-# - Special commands -
-
-follow_master_command = ''
-                                   # Executes this command after master failover
-                                   # Special values:
-                                   #   %d = node id
-                                   #   %h = host name
-                                   #   %p = port number
-                                   #   %D = database cluster path
-                                   #   %m = new master node id
-                                   #   %H = hostname of the new master node
-                                   #   %M = old master node id
-                                   #   %P = old primary node id
-                                                                  #   %r = new master port number
-                                                                  #   %R = new master database cluster path
-                                   #   %% = '%' character
-
-
-#------------------------------------------------------------------------------
-# PARALLEL MODE
-#------------------------------------------------------------------------------
-
-parallel_mode = off
-                                   # Activates parallel query mode
-                                   # (change requires restart)
-pgpool2_hostname = ''
-                                   # Set pgpool2 hostname
-                                   # (change requires restart)
-
-# - System DB info -
-
-#system_db_hostname  = 'localhost'
-                                   # (change requires restart)
-#system_db_port = 5432
-                                   # (change requires restart)
-#system_db_dbname = 'pgpool'
-                                   # (change requires restart)
-#system_db_schema = 'pgpool_catalog'
-                                   # (change requires restart)
-#system_db_user = 'pgpool'
-                                   # (change requires restart)
-#system_db_password = ''
-                                   # (change requires restart)
-
-
-#------------------------------------------------------------------------------
-# HEALTH CHECK
-#------------------------------------------------------------------------------
-
-health_check_period = 20
-                                   # Health check period
-                                   # Disabled (0) by default
-health_check_timeout = 10
-                                   # Health check timeout
-                                   # 0 means no timeout
-health_check_user = '{{.Values.credentials.pgusername}}'
-                                   # Health check user
-health_check_password = '{{.Values.credentials.pgpassword}}'
-                                   # Password for health check user
-health_check_max_retries = 3
-connect_timeout = 10000                # Timeout value in milliseconds before giving up to connect to backend.
-
-                                   # Maximum number of times to retry a failed health check before giving up.
-health_check_retry_delay = 1
-                                   # Amount of time to wait (in seconds) between retries.
-
-
-#------------------------------------------------------------------------------
-# FAILOVER AND FAILBACK
-#------------------------------------------------------------------------------
-
-failover_command = ''
-                                   # Executes this command at failover
-                                   # Special values:
-                                   #   %d = node id
-                                   #   %h = host name
-                                   #   %p = port number
-                                   #   %D = database cluster path
-                                   #   %m = new master node id
-                                   #   %H = hostname of the new master node
-                                   #   %M = old master node id
-                                   #   %P = old primary node id
-                                                                  #   %r = new master port number
-                                                                  #   %R = new master database cluster path
-                                   #   %% = '%' character
-failback_command = ''
-                                   # Executes this command at failback.
-                                   # Special values:
-                                   #   %d = node id
-                                   #   %h = host name
-                                   #   %p = port number
-                                   #   %D = database cluster path
-                                   #   %m = new master node id
-                                   #   %H = hostname of the new master node
-                                   #   %M = old master node id
-                                   #   %P = old primary node id
-                                                                  #   %r = new master port number
-                                                                  #   %R = new master database cluster path
-                                   #   %% = '%' character
-
-fail_over_on_backend_error = off
-                                   # Initiates failover when reading/writing to the
-                                   # backend communication socket fails
-                                   # If set to off, pgpool will report an
-                                   # error and disconnect the session.
-
-search_primary_node_timeout = 10
-                                   # Timeout in seconds to search for the
-                                   # primary node when a failover occurs.
-                                   # 0 means no timeout, keep searching
-                                   # for a primary node forever.
-
-#------------------------------------------------------------------------------
-# ONLINE RECOVERY
-#------------------------------------------------------------------------------
-
-recovery_user = '{{.Values.credentials.pgusername}}'
-                                   # Online recovery user
-recovery_password = '{{.Values.credentials.pgpassword}}'
-                                   # Online recovery password
-recovery_1st_stage_command = ''
-                                   # Executes a command in first stage
-recovery_2nd_stage_command = ''
-                                   # Executes a command in second stage
-recovery_timeout = 90
-                                   # Timeout in seconds to wait for the
-                                   # recovering node's postmaster to start up
-                                   # 0 means no wait
-client_idle_limit_in_recovery = 0
-                                   # Client is disconnected after being idle
-                                   # for that many seconds in the second stage
-                                   # of online recovery
-                                   # 0 means no disconnection
-                                   # -1 means immediate disconnection
-
-
-#------------------------------------------------------------------------------
-# WATCHDOG
-#------------------------------------------------------------------------------
-
-# - Enabling -
-
-use_watchdog = off
-                                    # Activates watchdog
-                                    # (change requires restart)
-
-# -Connection to up stream servers -
-
-trusted_servers = ''
-                                    # trusted server list which are used
-                                    # to confirm network connection
-                                    # (hostA,hostB,hostC,...)
-                                    # (change requires restart)
-ping_path = '/bin'
-                                    # ping command path
-                                    # (change requires restart)
-
-# - Watchdog communication Settings -
-
-wd_hostname = ''
-                                    # Host name or IP address of this watchdog
-                                    # (change requires restart)
-wd_port = 9000
-                                    # port number for watchdog service
-                                    # (change requires restart)
-wd_authkey = ''
-                                    # Authentication key for watchdog communication
-                                    # (change requires restart)
-
-# - Virtual IP control Setting -
-
-delegate_IP = ''
-                                    # delegate IP address
-                                    # If this is empty, virtual IP never bring up. 
-                                    # (change requires restart)
-ifconfig_path = '/sbin'
-                                    # ifconfig command path
-                                    # (change requires restart)
-if_up_cmd = 'ifconfig eth0:0 inet $_IP_$ netmask 255.255.255.0'
-                                    # startup delegate IP command
-                                    # (change requires restart)
-if_down_cmd = 'ifconfig eth0:0 down'
-                                    # shutdown delegate IP command
-                                    # (change requires restart)
-
-arping_path = '/usr/sbin'           # arping command path
-                                    # (change requires restart)
-
-arping_cmd = 'arping -U $_IP_$ -w 1'
-                                    # arping command
-                                    # (change requires restart)
-
-# - Behaivor on escalation Setting -
-
-clear_memqcache_on_escalation = on
-                                    # Clear all the query cache on shared memory
-                                    # when standby pgpool escalate to active pgpool
-                                    # (= virtual IP holder).
-                                    # This should be off if client connects to pgpool
-                                    # not using virtual IP.
-                                    # (change requires restart)
-wd_escalation_command = ''
-                                    # Executes this command at escalation on new active pgpool.
-                                    # (change requires restart)
-
-# - Lifecheck Setting - 
-
-# -- common --
-
-wd_lifecheck_method = 'heartbeat'
-                                    # Method of watchdog lifecheck ('heartbeat' or 'query')
-                                    # (change requires restart)
-wd_interval = 10
-                                    # lifecheck interval (sec) > 0
-                                    # (change requires restart)
-
-# -- heartbeat mode --
-
-wd_heartbeat_port = 9694
-                                    # Port number for receiving heartbeat signal
-                                    # (change requires restart)
-wd_heartbeat_keepalive = 2
-                                    # Interval time of sending heartbeat signal (sec)
-                                    # (change requires restart)
-wd_heartbeat_deadtime = 30
-                                    # Deadtime interval for heartbeat signal (sec)
-                                    # (change requires restart)
-heartbeat_destination0 = 'host0_ip1'
-                                    # Host name or IP address of destination 0
-                                    # for sending heartbeat signal.
-                                    # (change requires restart)
-heartbeat_destination_port0 = 9694 
-                                    # Port number of destination 0 for sending
-                                    # heartbeat signal. Usually this is the
-                                    # same as wd_heartbeat_port.
-                                    # (change requires restart)
-heartbeat_device0 = ''
-                                    # Name of NIC device (such like 'eth0')
-                                    # used for sending/receiving heartbeat
-                                    # signal to/from destination 0.
-                                    # This works only when this is not empty
-                                    # and pgpool has root privilege.
-                                    # (change requires restart)
-
-#heartbeat_destination1 = 'host0_ip2'
-#heartbeat_destination_port1 = 9694
-#heartbeat_device1 = ''
-
-# -- query mode --
-
-wd_life_point = 3
-                                    # lifecheck retry times
-                                    # (change requires restart)
-wd_lifecheck_query = 'SELECT 1'
-                                    # lifecheck query to pgpool from watchdog
-                                    # (change requires restart)
-wd_lifecheck_dbname = 'template1'
-                                    # Database name connected for lifecheck
-                                    # (change requires restart)
-wd_lifecheck_user = 'nobody'
-                                    # watchdog user monitoring pgpools in lifecheck
-                                    # (change requires restart)
-wd_lifecheck_password = ''
-                                    # Password for watchdog user in lifecheck
-                                    # (change requires restart)
-
-# - Other pgpool Connection Settings -
-
-#other_pgpool_hostname0 = 'host0'
-                                    # Host name or IP address to connect to for other pgpool 0
-                                    # (change requires restart)
-#other_pgpool_port0 = 5432
-                                    # Port number for othet pgpool 0
-                                    # (change requires restart)
-#other_wd_port0 = 9000
-                                    # Port number for othet watchdog 0
-                                    # (change requires restart)
-#other_pgpool_hostname1 = 'host1'
-#other_pgpool_port1 = 5432
-#other_wd_port1 = 9000
-
-
-#------------------------------------------------------------------------------
-# OTHERS
-#------------------------------------------------------------------------------
-relcache_expire = 0
-                                   # Life time of relation cache in seconds.
-                                   # 0 means no cache expiration(the default).
-                                   # The relation cache is used for cache the
-                                   # query result against PostgreSQL system
-                                   # catalog to obtain various information
-                                   # including table structures or if it's a
-                                   # temporary table or not. The cache is
-                                   # maintained in a pgpool child local memory
-                                   # and being kept as long as it survives.
-                                   # If someone modify the table by using
-                                   # ALTER TABLE or some such, the relcache is
-                                   # not consistent anymore.
-                                   # For this purpose, cache_expiration
-                                   # controls the life time of the cache.
-relcache_size = 256
-                                   # Number of relation cache
-                                   # entry. If you see frequently:
-                                                                  # "pool_search_relcache: cache replacement happend"
-                                                                  # in the pgpool log, you might want to increate this number.
-
-check_temp_table = on
-                                   # If on, enable temporary table check in SELECT statements.
-                                   # This initiates queries against system catalog of primary/master
-                                                                  # thus increases load of master.
-                                                                  # If you are absolutely sure that your system never uses temporary tables
-                                                                  # and you want to save access to primary/master, you could turn this off.
-                                                                  # Default is on.
-
-
-#------------------------------------------------------------------------------
-# ON MEMORY QUERY MEMORY CACHE
-#------------------------------------------------------------------------------
-memory_cache_enabled = off
-                                                                  # If on, use the memory cache functionality, off by default
-memqcache_method = 'shmem'
-                                                                  # Cache storage method. either 'shmem'(shared memory) or
-                                                                  # 'memcached'. 'shmem' by default
-                                   # (change requires restart)
-memqcache_memcached_host = 'localhost'
-                                                                  # Memcached host name or IP address. Mandatory if
-                                                                  # memqcache_method = 'memcached'.
-                                                                  # Defaults to localhost.
-                                   # (change requires restart)
-memqcache_memcached_port = 11211
-                                                                  # Memcached port number. Mondatory if memqcache_method = 'memcached'.
-                                                                  # Defaults to 11211.
-                                   # (change requires restart)
-memqcache_total_size = 67108864
-                                                                  # Total memory size in bytes for storing memory cache.
-                                                                  # Mandatory if memqcache_method = 'shmem'.
-                                                                  # Defaults to 64MB.
-                                   # (change requires restart)
-memqcache_max_num_cache = 1000000
-                                                                  # Total number of cache entries. Mandatory
-                                                                  # if memqcache_method = 'shmem'.
-                                                                  # Each cache entry consumes 48 bytes on shared memory.
-                                                                  # Defaults to 1,000,000(45.8MB).
-                                   # (change requires restart)
-memqcache_expire = 0
-                                                                  # Memory cache entry life time specified in seconds.
-                                                                  # 0 means infinite life time. 0 by default.
-                                   # (change requires restart)
-memqcache_auto_cache_invalidation = on
-                                                                  # If on, invalidation of query cache is triggered by corresponding
-                                                                  # DDL/DML/DCL(and memqcache_expire).  If off, it is only triggered
-                                                                  # by memqcache_expire.  on by default.
-                                   # (change requires restart)
-memqcache_maxcache = 409600
-                                                                  # Maximum SELECT result size in bytes.
-                                                                  # Must be smaller than memqcache_cache_block_size. Defaults to 400KB.
-                                   # (change requires restart)
-memqcache_cache_block_size = 1048576
-                                                                  # Cache block size in bytes. Mandatory if memqcache_method = 'shmem'.
-                                                                  # Defaults to 1MB.
-                                   # (change requires restart)
-memqcache_oiddir = '/var/log/pgpool/oiddir'
-                                                                  # Temporary work directory to record table oids
-                                   # (change requires restart)
-white_memqcache_table_list = ''
-                                   # Comma separated list of table names to memcache
-                                   # that don't write to database
-                                   # Regexp are accepted
-black_memqcache_table_list = ''
-                                   # Comma separated list of table names not to memcache
-                                   # that don't write to database
-                                   # Regexp are accepted
diff --git a/kubernetes/common/postgres-legacy/charts/pgpool/configs/pool_hba.conf b/kubernetes/common/postgres-legacy/charts/pgpool/configs/pool_hba.conf
deleted file mode 100644 (file)
index d891840..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# pgpool Client Authentication Configuration File a custom version
-# ===============================================
-#
-# The format rule in this file follows the rules in the PostgreSQL
-# Administrator's Guide. Refer to chapter "Client Authentication" for a
-# complete description.  A short synopsis follows.
-#
-# This file controls: which hosts are allowed to connect, how clients
-# are authenticated, which user names they can use, which databases they
-# can access.  Records take one of these forms:
-#
-# local      DATABASE  USER  METHOD  [OPTION]
-# host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
-#
-# (The uppercase items must be replaced by actual values.)
-#
-# The first field is the connection type: "local" is a Unix-domain
-# socket, "host" is either a plain or SSL-encrypted TCP/IP socket.
-#
-# DATABASE can be "all", "sameuser", a database name, or a comma-separated
-# list thereof. Note that "samegroup" like in PostgreSQL's pg_hba.conf
-# file is not supported, since pgpool does not know which group a user
-# belongs to. Also note that the database specified here may not exist in
-# the backend PostgreSQL. pgpool will authenticate based on the database's
-# name, not based on whether it exists or not.
-#
-# USER can be "all", a user name, or a comma-separated list thereof.  In
-# both the DATABASE and USER fields you can also write a file name prefixed
-# with "@" to include names from a separate file. Note that a group name
-# prefixed with "+" like in PostgreSQL's pg_hba.conf file is not supported
-# because of the same reason as "samegroup" token. Also note that a user
-# name specified here may not exist in the backend PostgreSQL. pgpool will
-# authenticate based on the user's name, not based on whether he/she exists.
-#
-# CIDR-ADDRESS specifies the set of hosts the record matches.
-# It is made up of an IP address and a CIDR mask that is an integer
-# (between 0 and 32 (IPv4) that specifies the number of significant bits in
-# the mask.  Alternatively, you can write an IP address and netmask in
-# separate columns to specify the set of hosts.
-#
-# METHOD can be "trust", "reject", "md5" or "pam".  Note that "pam" sends passwords
-# in clear text.
-#
-# OPTION is the name of the PAM service. Default service name is "pgpool"
-#
-# Database and user names containing spaces, commas, quotes and other special
-# characters must be quoted. Quoting one of the keywords "all" or "sameuser"
-# makes the name lose its special character, and just match a database or
-# username with that name.
-#
-# This file is read on pgpool startup.  If you edit the file on a running
-# system, you have to restart the pgpool  for the changes to take effect.
-
-# Put your actual configuration here
-# ----------------------------------
-#
-# If you want to allow non-local connections, you need to add more
-# "host" records. In that case you will also need to make pgpool listen
-# on a non-local interface via the listen_addresses configuration parameter.
-#
-
-# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
-
-# "local" is for Unix domain socket connections only
-#local   all         all                               trust
-# IPv4 local connections:
-host    all         all         0.0.0.0/0          md5
diff --git a/kubernetes/common/postgres-legacy/charts/pgpool/configs/pool_passwd b/kubernetes/common/postgres-legacy/charts/pgpool/configs/pool_passwd
deleted file mode 100644 (file)
index 3636d1d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-testuser:md599e8713364988502fa6189781bcf648f
-postgres:md53175bce1d3201d16594cebf9d7eb3f9d
diff --git a/kubernetes/common/postgres-legacy/charts/pgpool/templates/deployment.yaml b/kubernetes/common/postgres-legacy/charts/pgpool/templates/deployment.yaml
deleted file mode 100644 (file)
index 7572d7f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-{{/*
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-*/}}
-kind: Deployment
-apiVersion: extensions/v1beta1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: 2
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
-    spec:
-      containers:
-      - image: "{{.Values.repository}}/{{.Values.image}}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}
-        env:
-        - name: PG_PRIMARY_SERVICE_NAME
-          value: {{.Values.container.name.primary}}
-        - name: PG_REPLICA_SERVICE_NAME
-          value: {{.Values.container.name.replica}}
-        - name: PG_USERNAME
-          value: {{.Values.credentials.pgusername}}
-        - name: PG_PASSWORD
-          value: {{.Values.credentials.pgpassword}}
-        ports:
-        - containerPort: 5432
-          name: pgpool
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 5432
-          initialDelaySeconds: 20
-          periodSeconds: 10
-        livenessProbe:
-          tcpSocket:
-            port: 5432
-        initialDelaySeconds: 15
-        periodSeconds: 20
-        volumeMounts:
-        - name: pgpool-pgconf
-          mountPath: /pgconf/pgpoolconfigdir
-          readOnly: false
-      volumes:
-      - name: pgpool-pgconf
-        configMap:
-          name: {{ include "common.fullname" . }}-pgpool-configmap
diff --git a/kubernetes/common/postgres-legacy/charts/pgpool/templates/service.yaml b/kubernetes/common/postgres-legacy/charts/pgpool/templates/service.yaml
deleted file mode 100644 (file)
index 8c066e5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Values.service.name }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-  annotations:
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.name }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.name }}
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
diff --git a/kubernetes/common/postgres-legacy/charts/pgpool/values.yaml b/kubernetes/common/postgres-legacy/charts/pgpool/values.yaml
deleted file mode 100644 (file)
index cb732b7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 302
-  persistence: {}
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-# application image
-repository: crunchydata
-image: crunchy-pgpool:centos7-10.4-2.0.0
-pullPolicy: Always
-
-container:
-  port: 5432
-  name:
-    primary: pgset-primary
-    replica: pgset-replica
-credentials:
-  pgusername: testuser
-  pgpassword: password
-service:
-  name: pgpool 
-  type: ClusterIP
-  externalPort: 5432
-  internalPort: 5432
diff --git a/kubernetes/common/postgres-legacy/templates/pv.yaml b/kubernetes/common/postgres-legacy/templates/pv.yaml
deleted file mode 100644 (file)
index 2ac5d97..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-{{/*
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-*/}}
-{{- $global := . }}
-{{- if and $global.Values.persistence.enabled (not $global.Values.persistence.existingClaim) }}
-{{- if eq "True" (include "common.needPV" .) -}}
-{{- range $i := until (int $global.Values.replicaCount)}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" $global }}-data-{{ $i }}
-  namespace: {{ include "common.namespace" $global }}
-  labels:
-    app: {{ include "common.fullname" $global }}
-    chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
-    release: "{{ include "common.release" $global }}"
-    heritage: "{{ $global.Release.Service }}"
-    name: {{ include "common.fullname" $global }}
-spec:
-  capacity:
-    storage: {{ $global.Values.persistence.size}}
-  accessModes:
-    - {{ $global.Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ $global.Values.persistence.volumeReclaimPolicy }}
-  storageClassName: "{{ include "common.fullname" $global }}-data"
-  hostPath:
-    path: {{ $global.Values.global.persistence.mountPath | default $global.Values.persistence.mountPath }}/{{ include "common.release" $global }}/{{ $global.Values.persistence.mountSubPath }}-{{$i}}
-{{if ne $i (int $global.Values.replicaCount) }}
----
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
diff --git a/kubernetes/common/postgres-legacy/templates/secrets.yaml b/kubernetes/common/postgres-legacy/templates/secrets.yaml
deleted file mode 100644 (file)
index db1bc5b..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-{{/*
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-*/}}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-type: Opaque
-data:
-  pg-primary-password: {{ .Values.config.pgPrimaryPassword | b64enc | quote }}
-  pg-user-password: {{ .Values.config.pgUserPassword | b64enc | quote }}
-  pg-root-password: {{ .Values.config.pgRootPassword | b64enc | quote }}
-  
diff --git a/kubernetes/common/postgres-legacy/templates/service.yaml b/kubernetes/common/postgres-legacy/templates/service.yaml
deleted file mode 100644 (file)
index 30d824b..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-{{/*
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-*/}}
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Values.service.name }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-  annotations:
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.name }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.name }}
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Values.service.name2 }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-  annotations:
-spec:
-  type: {{ .Values.service.type2 }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort2 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
-      name: {{ .Values.service.name2 }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort2 }}
-      targetPort: {{ .Values.service.internalPort2 }}
-      name: {{ .Values.service.name2 }}
-    {{- end}}
-  selector:
-    name: "{{.Values.container.name.primary}}"
-    release: {{ include "common.release" . }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Values.service.name3 }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-  annotations:
-spec:
-  type: {{ .Values.service.type3 }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort3 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
-      name: {{ .Values.service.name3 }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort3 }}
-      targetPort: {{ .Values.service.internalPort3 }}
-      name: {{ .Values.service.name3 }}
-    {{- end}}
-  selector:
-    name: "{{.Values.container.name.replica}}"
-    release: {{ include "common.release" . }}
diff --git a/kubernetes/common/postgres-legacy/templates/statefulset.yaml b/kubernetes/common/postgres-legacy/templates/statefulset.yaml
deleted file mode 100644 (file)
index 5333a0d..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-{{/*
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-*/}}
-apiVersion: apps/v1beta1
-kind: StatefulSet
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  serviceName: {{ .Values.service.name }}
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
-    spec:
-      initContainers:
-      - command:
-        - /bin/sh
-        - -c
-        - |
-          chown -R 26:26 /podroot/;
-          chmod 700 /podroot/;
-        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        name: {{ include "common.name" . }}-prepare
-        volumeMounts:
-        - name: {{ include "common.fullname" . }}-data
-          mountPath: /podroot/
-      containers:
-      - name: {{ include "common.name" . }}
-        image: "{{ .Values.postgresRepository }}/{{ .Values.image }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        ports:
-        - containerPort: {{ .Values.service.internalPort }}
-          name: postgres
-        # disable liveness probe when breakpoints set in debugger
-        # so K8s doesn't restart unresponsive container
-        {{- if eq .Values.liveness.enabled true }}
-        livenessProbe:
-          tcpSocket:
-            port: {{ .Values.service.internalPort }}
-          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-          periodSeconds: {{ .Values.liveness.periodSeconds }}
-          timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
-        {{end -}}
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.service.internalPort }}
-          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-          periodSeconds: {{ .Values.readiness.periodSeconds }}
-        env:
-        - name: PGHOST
-          value: /tmp
-        - name: PG_PRIMARY_USER
-          value: primaryuser
-        - name: PG_MODE
-          value: set
-        - name: PG_PRIMARY_HOST
-          value: "{{.Values.container.name.primary}}"
-        - name: PG_REPLICA_HOST
-          value: "{{.Values.container.name.replica}}"
-        - name: PG_PRIMARY_PORT
-          value: "{{.Values.service.internalPort}}"
-        - name: PG_PRIMARY_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "common.fullname" . }}
-              key: pg-primary-password
-        - name: PG_USER
-          value: "{{.Values.config.pgUserName}}"
-        - name: PG_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "common.fullname" . }}
-              key: pg-user-password
-        - name: PG_DATABASE
-          value: "{{.Values.config.pgDatabase}}"
-        - name: PG_ROOT_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "common.fullname" . }}
-              key: pg-root-password
-        volumeMounts:
-        - mountPath: /pgdata
-          name: {{ include "common.fullname" . }}-data
-        - mountPath: /backup
-          name: {{ include "common.fullname" . }}-backup
-          readOnly: true
-        resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: {{ include "common.fullname" . }}-backup
-        emptyDir: {}
-{{- if not .Values.persistence.enabled }}
-      - name: {{ include "common.fullname" . }}-data
-        emptyDir: {}
-{{- else }}
-  volumeClaimTemplates:
-  - metadata:
-      name: {{ include "common.fullname" . }}-data
-      labels:
-        name: {{ include "common.fullname" . }}
-        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-        release: "{{ include "common.release" . }}"
-        heritage: "{{ .Release.Service }}"
-    spec:
-      accessModes:
-      - {{ .Values.persistence.accessMode | quote }}
-      storageClassName: {{ include "common.storageClass" . }}
-      resources:
-        requests:
-          storage: {{ .Values.persistence.size | quote }}
-{{- end }}
diff --git a/kubernetes/common/postgres-legacy/values.yaml b/kubernetes/common/postgres-legacy/values.yaml
deleted file mode 100644 (file)
index 8dd5d0a..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright Â© 2018 Amdocs, AT&T, 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.
-
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  nodePortPrefix: 302
-  persistence: {}
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-
-# BusyBox image
-busyboxRepository: registry.hub.docker.com
-busyboxImage: library/busybox:latest
-
-postgresRepository: crunchydata
-image: crunchy-postgres:centos7-10.4-2.0.0
-pullPolicy: Always
-
-# application configuration
-config:
-  pgUserName: testuser
-  pgDatabase: userdb
-  pgPrimaryPassword: password
-  pgUserPassword: password
-  pgRootPassword: password
-
-container:
-  name:
-    primary: pgset-primary
-    replica: pgset-replica
-
-pgpool:
-  container:
-    port: 5432
-    name:
-      primary: pgset-primary
-      replica: pgset-replica
-  credentials:
-    pgusername: testuser
-    pgpassword: password
-  service:
-    name: pgpool
-
-
-# default number of instances
-replicaCount: 2
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 300
-  periodSeconds: 10
-  timeoutSeconds: 5
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
-
-readiness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-
-  ## A manually managed Persistent Volume and Claim
-  ## Requires persistence.enabled: true
-  ## If defined, PVC must be created manually before volume will be bound
-  # existingClaim:
-  volumeReclaimPolicy: Retain
-
-  ## database data Persistent Volume Storage Class
-  ## If defined, storageClassName: <storageClass>
-  ## If set to "-", storageClassName: "", which disables dynamic provisioning
-  ## If undefined (the default) or set to null, no storageClassName spec is
-  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
-  ##   GKE, AWS & OpenStack)
-  accessMode: ReadWriteOnce
-  size: 1Gi
-  mountPath: /dockerdata-nfs
-  mountSubPath: postgres/data
-  mountInitPath: postgres
-
-service:
-  type: ClusterIP
-  name: pgset
-  externalPort: 5432
-  internalPort: 5432
-  type2: ClusterIP
-  name2: pgset-primary
-  externalPort2: 5432
-  internalPort2: 5432
-  type3: ClusterIP
-  name3: pgset-replica
-  externalPort3: 5432
-  internalPort3: 5432
-
-ingress:
-  enabled: false
-
-resources: {}
-  # We usually recommend not to specify default resources and to leave this as a conscious
-  # choice for the user. This also increases chances charts run on environments with little
-  # resources, such as Minikube. If you do want to specify resources, uncomment the following
-  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
-  #
-  # Example:
-  # Configure resource requests and limits
-  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
-  # Minimum memory for development is 2 CPU cores and 4GB memory
-  # Minimum memory for production is 4 CPU cores and 8GB memory
-#resources:
-#  limits:
-#    cpu: 2
-#    memory: 4Gi
-#  requests:
-#    cpu: 2
-#    memory: 4Gi
-
index 2eb3c25..e9c96d1 100644 (file)
@@ -56,7 +56,7 @@ service:
   name: consul-server
   portName: consul-join
   internalPort: 8301
-  type2: NodePort
+  type2: ClusterIP
   portName2: consul-ui
   internalPort2: 8500
   nodePort2: 70
index 409da39..cde7d4c 100755 (executable)
@@ -21,7 +21,7 @@
 # https://wiki.onap.org/display/DW/OOM+RKE+Kubernetes+Deployment
 # source from https://jira.onap.org/browse/OOM-1598
 #
-# master/dublin 
+# master/dublin
 #     RKE 0.1.16 Kubernetes 1.11.6, kubectl 1.11.6, Helm 2.9.1, Docker 18.06
 #     20190428 RKE 0.2.1, Kubernetes 1.13.5, kubectl 1.13.5, Helm 2.12.3, Docker 18.09.5
 # single node install, HA pending
@@ -30,7 +30,7 @@ usage() {
 cat <<EOF
 Usage: $0 [PARAMs]
 example
-sudo ./rke_setup.sh -b dublin -s rke.onap.cloud -e onap -l amdocs -v true
+sudo ./rke_setup.sh -b master -s rke.onap.cloud -e onap -l amdocs -v true
 -u                  : Display usage
 -b [branch]         : branch = master or dublin (required)
 -s [server]         : server = IP or DNS name (required)
@@ -48,16 +48,16 @@ install_onap() {
   KUBECTL_VERSION=1.13.5
   HELM_VERSION=2.12.3
   DOCKER_VERSION=18.09
+
   # copy your private ssh key and cluster.yml file to the vm
   # on your dev machine
   #sudo cp ~/.ssh/onap_rsa .
-  #sudo chmod 777 onap_rsa 
+  #sudo chmod 777 onap_rsa
   #scp onap_rsa ubuntu@192.168.241.132:~/
   # on this vm
-  #sudo chmod 400 onap_rsa 
+  #sudo chmod 400 onap_rsa
   #sudo cp onap_rsa ~/.ssh
-  # make sure public key is insetup correctly in 
+  # make sure public key is insetup correctly in
   # sudo vi ~/.ssh/authorized_keys
 
   echo "please supply your ssh key as provided by the -k keyname - it must be be chmod 400 and chown user:user in ~/.ssh/"
@@ -66,8 +66,8 @@ install_onap() {
   echo "specifically"
   echo "address: $SERVER"
   echo "user: $USERNAME"
-  echo "ssh_key_path: $SSHPATH_PREFIX/$SSHKEY" 
-  
+  echo "ssh_key_path: $SSHPATH_PREFIX/$SSHKEY"
+
   RKETOOLS=
   HYPERCUBE=
   POD_INFRA_CONTAINER=
index 6b90aa3..c404c32 100644 (file)
@@ -20,7 +20,10 @@ dependencies:
   - name: common
     version: ~5.x-0
     repository: '@local'
-  - name: postgres-legacy
+  - name: postgres
     version: ~5.x-0
     repository: '@local'
     alias: postgres
+  - name: mongo
+    version: ~5.x-0
+    repository: '@local'
index e505742..a0ec3b4 100644 (file)
@@ -1,6 +1,6 @@
 #============LICENSE_START========================================================
 #=================================================================================
-# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2018-2020 AT&T Intellectual Property. All rights reserved.
 # Modifications Copyright Â© 2018 Amdocs, Bell Canada
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,6 +34,7 @@
     {
       "cert_path": "/opt/app/osaaf",
       "image": "{{ .Values.global.tlsRepository }}/{{ .Values.global.tlsImage }}",
+      "component_cert_dir": "/opt/dcae/cacert",
       "component_ca_cert_path": "/opt/dcae/cacert/cacert.pem",
       "ca_cert_configmap": "{{ include "common.fullname" . }}-dcae-cacert"
     }
index a6fbea1..5ece12c 100644 (file)
@@ -18,3 +18,4 @@
 {{ if .Values.componentImages.hv_ves }}
 tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.hv_ves }}
 {{ end }}
+use_tls: true
\ No newline at end of file
diff --git a/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-tcagen2-inputs.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-tcagen2-inputs.yaml
new file mode 100644 (file)
index 0000000..5074cb8
--- /dev/null
@@ -0,0 +1,22 @@
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+{{ if .Values.componentImages.tcagen2 }}
+tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.tcagen2 }}
+{{ end }}
+tca_handle_in_subscribe_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/"
+tca_handle_out_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.TCAGEN2_OUTPUT/"
diff --git a/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs-tls.yaml b/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs-tls.yaml
new file mode 100644 (file)
index 0000000..17d0fc4
--- /dev/null
@@ -0,0 +1,32 @@
+#============LICENSE_START========================================================
+#=================================================================================
+# Copyright (c) 2020 Nokia. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+{{ if .Values.componentImages.ves }}
+tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.ves }}
+{{ end }}
+external_port: 0
+external_port_tls: {{ .Values.config.address.ves.portSecure }}
+auth_method: "certBasicAuth"
+component_name: "dcae-ves-collector-tls"
+dns_component_name: "dcae-ves-collector-tls"
+enable_tls: true
+ves_other_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_OTHER_OUTPUT/"
+ves_heartbeat_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/"
+ves_fault_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT/"
+ves_measurement_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/"
+ves_pnfRegistration_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_PNFREG_OUTPUT/"
+ves_notification_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/"
\ No newline at end of file
index 69e7cb7..c113d64 100644 (file)
@@ -2,6 +2,7 @@
 #=================================================================================
 # Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
 # Modifications Copyright Â© 2018 Amdocs, Bell Canada
+# Modifications (c) 2020 Nokia. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 {{ if .Values.componentImages.ves }}
 tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.ves }}
 {{ end }}
-external_port : {{ .Values.config.address.ves.port }}
-external_tls_port : {{ .Values.config.address.ves.portSecure }}
+external_port_tls: 0
+external_port: {{ .Values.config.address.ves.port }}
+auth_method: "noAuth"
+component_name: "dcae-ves-collector"
+dns_component_name: "dcae-ves-collector"
 ves_other_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_OTHER_OUTPUT/"
 ves_heartbeat_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/"
 ves_fault_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT/"
 ves_measurement_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/"
 ves_pnfRegistration_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_PNFREG_OUTPUT/"
-ves_notification_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/"
+ves_notification_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/"
\ No newline at end of file
index 7a28812..a36164d 100644 (file)
@@ -53,8 +53,11 @@ spec:
           - dcae-config-binding-service\r
           - --container-name\r
           - dcae-db\r
+          - --container-name\r
+          - dcae-inventory-api\r
           - "-t"\r
           - "15"\r
+\r
         env:\r
         - name: NAMESPACE\r
           valueFrom:\r
index 20caa5c..872d01d 100644 (file)
@@ -93,9 +93,23 @@ postgres:
         primary: dcae-pgpool-primary
         replica: dcae-pgpool-replica
 
+mongo:
+  nameOverride: dcae-mongo
+  config:
+    dbName: dcaecommondb
+  service:
+    name: dcae-mongohost
+    internalPort: 27017
+  nfsprovisionerPrefix: dcaemongo
+  sdnctlPrefix: tcagen2
+  persistence:
+    mountSubPath: dcae/mongo/data
+    enabled: true
+  disableNfsProvisioner: true
+
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.9.0
+image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.12.0
 default_k8s_location: central
 
 # DCAE component images to be deployed via Cloudify Manager
@@ -104,10 +118,11 @@ componentImages:
   holmes_rules: onap/holmes/rule-management:1.2.7
   holmes_engine: onap/holmes/engine-management:1.2.6
   tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.2.2
-  ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.2
+  tcagen2: onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.0.0
+  ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.3
   snmptrap: onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
   prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.5.0
-  hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.3.0
+  hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.4.0
 
 # Resource Limit flavor -By Default using small
 flavor: small
index 673b017..d2bda88 100644 (file)
@@ -46,7 +46,7 @@ config:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.cm-container:2.0.2
+image: onap/org.onap.dcaegen2.deployments.cm-container:2.1.0
 pullPolicy: Always
 
 # name of shared ConfigMap with kubeconfig for multiple clusters
index 98faef0..a27fba5 100644 (file)
@@ -63,7 +63,7 @@ readiness:
   path: /healthcheck
 
 service:
-  type: NodePort
+  type: ClusterIP
   name: config-binding-service
   # TLS service
   secure:
index 116a77f..a926fb3 100644 (file)
@@ -104,6 +104,8 @@ spec:
           volumeMounts:
             - mountPath: /usr/local/share/ca-certificates/
               name: tls-info
+            - mountPath: /opt/logs/dcae/dashboard
+              name: component-log
           env:
             - name: CONSUL_HOST
               value: consul-server.{{ include "common.namespace" . }}
index 03cb99a..9d38659 100644 (file)
@@ -1,6 +1,6 @@
 #============LICENSE_START========================================================
 # ================================================================================
-# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -44,7 +44,7 @@ config:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.1.0
+image: onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.3.1
 pullPolicy: Always
 
 # probe configuration parameters
@@ -60,13 +60,13 @@ readiness:
   initialDelaySeconds: 30
   periodSeconds: 30
   path: /ccsdk-app/health
-  scheme: HTTP
+  scheme: HTTPS
 
 service:
   type: NodePort
   name: dashboard
-  externalPort: 8080
-  internalPort: 8080
+  externalPort: 8443
+  internalPort: 8443
   nodePort: 18
 # application configuration override for postgres
 postgres:
index c786252..8a3440d 100644 (file)
@@ -46,7 +46,7 @@ config:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.platform.deployment-handler:4.2.0
+image: onap/org.onap.dcaegen2.platform.deployment-handler:4.3.0
 pullPolicy: Always
 
 # probe configuration parameters
index fb5a195..ba8648a 100644 (file)
@@ -28,7 +28,7 @@ global:
 
 service:
   name: dcae-healthcheck
-  internalPort: 80
+  internalPort: 8080
   externalPort: 80
   type: ClusterIP
 
@@ -45,7 +45,7 @@ readiness:
   periodSeconds: 10
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.healthcheck-container:1.2.5
+image: onap/org.onap.dcaegen2.deployments.healthcheck-container:1.3.0
 
 # Resource Limit flavor -By Default using small
 flavor: small
index 3e79830..4c4f567 100644 (file)
@@ -17,7 +17,7 @@ dependencies:
   - name: common
     version: ~5.x-0
     repository: '@local'
-  - name: postgres-legacy
+  - name: postgres
     version: ~5.x-0
     repository: '@local'
     alias: postgres
index c8c7dd7..d992731 100644 (file)
@@ -36,7 +36,7 @@
           "type": "https",
           "port": 8080,
           "keyStorePath": "/opt/cert/cert.jks",
-          "keyStorePassword": "hD:!w:CxF]lGvM6Mz9l^j[7U",
+          "keyStorePassword": "/opt/cert/jks.pass",
           "keyStoreType": "JKS"
         }]
     }
diff --git a/kubernetes/dcaegen2/components/dcae-inventory-api/resources/log/filebeat.yml b/kubernetes/dcaegen2/components/dcae-inventory-api/resources/log/filebeat.yml
new file mode 100644 (file)
index 0000000..0e5ee9b
--- /dev/null
@@ -0,0 +1,72 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2018-2019 AT&T Intellectual Property. All rights reserved.
+# Modifications 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.
+# ============LICENSE_END=========================================================
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+  paths:
+    - /var/log/onap/*/*/*/*.log
+    - /var/log/onap/*/*/*.log
+    - /var/log/onap/*/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
+
+logging:
+  level: debug
+
+  # enable file rotation with default configuration
+  to_files: true
+
+  # do not log to syslog
+  to_syslog: false
+
+  files:
+    path: /usr/share/filebeat/logs
+    name: mybeat.log
+    keepfiles: 7
index 96ba64f..5b7a244 100644 (file)
@@ -24,3 +24,11 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{include "common.fullname" . }}-filebeat-configmap
+  namespace: {{include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/log/*").AsConfig . | indent 2 }}
index 2bfb01d..6769c00 100644 (file)
@@ -52,6 +52,8 @@ spec:
                 fieldPath: metadata.namespace
         - name: init-tls
           env:
+          - name: aaf_locator_fqdn
+            value: dcae
           - name: POD_IP
             valueFrom:
               fieldRef:
@@ -61,7 +63,7 @@ spec:
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           resources: {}
           volumeMounts:
-            - mountPath: /opt/tls/shared
+            - mountPath: /opt/app/osaaf
               name: tls-info
       containers:
         - name: {{ include "common.name" . }}
@@ -101,10 +103,38 @@ spec:
               subPath: config.json
             - mountPath: /opt/cert/
               name: tls-info
+            - mountPath: /opt/logs/
+              name: component-log
           env:
             - name: CONSUL_HOST
               value: consul.{{ include "common.namespace" . }}
+        - name: {{ include "common.name" . }}-filebeat
+          env:
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: status.podIP
+          image: {{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}
+          imagePullPolicy: IfNotPresent
+          resources: {}
+          volumeMounts:
+          - mountPath: /var/log/onap/inventory
+            name: component-log
+          - mountPath: /usr/share/filebeat/data
+            name: filebeat-data
+          - mountPath: /usr/share/filebeat/filebeat.yml
+            name: filebeat-conf
+            subPath: filebeat.yml
       volumes:
+        - emptyDir: {}
+          name: component-log
+        - emptyDir: {}
+          name: filebeat-data
+        - configMap:
+            defaultMode: 420
+            name: {{ include "common.fullname" . }}-filebeat-configmap
+          name: filebeat-conf
         - name: {{ include "common.fullname" . }}-inv-config
           configMap:
             name: {{ include "common.fullname" . }}-configmap
@@ -112,3 +142,4 @@ spec:
           name: tls-info
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
index 8e4430c..51af963 100644 (file)
@@ -25,7 +25,7 @@ global:
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
   tlsRepository: nexus3.onap.org:10001
-  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.3
+  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
   repositoryCred:
     user: docker
     password: docker
@@ -44,7 +44,7 @@ config:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.platform.inventory-api:3.4.0
+image: onap/org.onap.dcaegen2.platform.inventory-api:3.4.1
 
 pullPolicy: Always
 
index dfc4dbf..25ddfc7 100644 (file)
@@ -19,8 +19,7 @@
 global:
   nodePortPrefix: 302
   tlsRepository: nexus3.onap.org:10001
-# Have to use locally-define tlsImage until inventory API can use 2.x.y
-#  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
+  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:2.1.0
   consulLoaderRepository: nexus3.onap.org:10001
   consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.0.0
 redis:
index 5139630..046f64d 100644 (file)
@@ -30,7 +30,7 @@ pullPolicy: Always
 
 # application images
 repository: nexus3.onap.org:10001
-image: onap/dmaap/dmaap-bc:1.1.5
+image: onap/dmaap/dmaap-bc:2.0.3
 
 
 # application configuration
index 871a422..84dadaf 100644 (file)
@@ -22,7 +22,7 @@ global:
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/dmaap/datarouter-node:2.1.4
+image: onap/dmaap/datarouter-node:2.1.5
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -69,7 +69,7 @@ persistence:
 
 #AAF local config
 aafConfig:
-  aafDeployFqi: dmaap-dr@dmaap-dr.onap.org
+  aafDeployFqi: deployer@people.osaaf.org
   aafDeployPass: demo123456!
   fqdn: dmaap-dr-node
   fqi: dmaap-dr-node@dmaap-dr.onap.org
index 34662ae..b672311 100644 (file)
@@ -7,9 +7,9 @@
 # * 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.
@@ -40,9 +40,9 @@ org.onap.dmaap.datarouter.provserver.isaddressauthenabled = false
 
 # Database access
 org.onap.dmaap.datarouter.db.driver   = org.mariadb.jdbc.Driver
-org.onap.dmaap.datarouter.db.url      = jdbc:mariadb://{{.Values.config.dmaapDrDb.mariadbServiceName}}:{{.Values.config.dmaapDrDb.mariadbServicePort}}/datarouter
-org.onap.dmaap.datarouter.db.login    = datarouter
-org.onap.dmaap.datarouter.db.password = datarouter
+org.onap.dmaap.datarouter.db.url      = jdbc:mariadb://{{.Values.config.dmaapDrDb.mariadbServiceName}}:{{.Values.config.dmaapDrDb.mariadbServicePort}}/{{.Values.mariadb.config.mysqlDatabase}}
+org.onap.dmaap.datarouter.db.login    = ${DB_USERNAME}
+org.onap.dmaap.datarouter.db.password = ${DB_PASSWORD}
 
 # PROV - DEFAULT ENABLED TLS PROTOCOLS
 org.onap.dmaap.datarouter.provserver.https.include.protocols = TLSv1.1|TLSv1.2
@@ -55,4 +55,3 @@ org.onap.dmaap.datarouter.provserver.aaf.sub.type         = org.onap.dmaap-dr.su
 org.onap.dmaap.datarouter.provserver.aaf.instance         = legacy
 org.onap.dmaap.datarouter.provserver.aaf.action.publish   = publish
 org.onap.dmaap.datarouter.provserver.aaf.action.subscribe = subscribe
-
index 6435b0a..104fcdc 100644 (file)
@@ -56,6 +56,8 @@ spec:
           - aaf-locate
           - --container-name
           - aaf-cm
+          - --container-name
+          - aaf-service
           env:
           - name: NAMESPACE
             valueFrom:
@@ -118,6 +120,11 @@ spec:
               port: {{ .Values.config.dmaapDrProv.internalPort }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          - name: DB_USERNAME
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "dmaap-dr-db-user-secret" "key" "login") | indent 12 }}
+          - name: DB_PASSWORD
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "dmaap-dr-db-user-secret" "key" "password") | indent 12 }}
           volumeMounts:
           {{- if .Values.global.aafEnabled }}
           - mountPath: {{ .Values.persistence.aafCredsPath }}
@@ -1,4 +1,4 @@
-# Copyright Â© 2018 Amdocs, AT&T, 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.
@@ -12,7 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-dependencies:
-  - name: common
-    version: ~5.x-0
-    repository: '@local'
+{{ include "common.secret" . }}
index 4dcd7c3..4619069 100644 (file)
@@ -19,11 +19,22 @@ global:
   nodePortPrefix: 302
   loggingDirectory: /opt/app/datartr/logs
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: dmaap-dr-db-user-secret
+    name: '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.dmaapDrDb.userCredentialsExternalSecret) . }}'
+    login: '{{ .Values.config.dmaapDrDb.userName }}'
+    password: '{{ .Values.config.dmaapDrDb.userPassword }}'
+
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/dmaap/datarouter-prov:2.1.4
+image: onap/dmaap/datarouter-prov:2.1.5
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -88,6 +99,9 @@ config:
     mariadbServiceName: dmaap-dr-db-svc
     mariadbServicePort: 3306
     mariadbContName: dmaap-dr-db
+    userName: datarouter
+#    userPassword: password
+#    userCredentialsExternalSecret: some secret
 
 # mariadb-galera configuration
 mariadb:
@@ -95,9 +109,7 @@ mariadb:
   nameOverride: dmaap-dr-db
   replicaCount: 2
   config:
-    mariadbRootPassword: datarouter
-    userName: datarouter
-    userPassword: datarouter
+    userCredentialsExternalSecret: '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
     mysqlDatabase: datarouter
   service:
     name: dmaap-dr-db-svc
@@ -110,7 +122,7 @@ mariadb:
 
 #AAF local config
 aafConfig:
-  aafDeployFqi: dmaap-dr@dmaap-dr.onap.org
+  aafDeployFqi: deployer@people.osaaf.org
   aafDeployPass: demo123456!
   fqdn: dmaap-dr-prov
   fqi: dmaap-dr-prov@dmaap-dr.onap.org
@@ -136,4 +148,4 @@ resources:
     requests:
       cpu: 1000m
       memory: 2Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index 5dac1c0..f02a2db 100644 (file)
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
            http://www.apache.org/licenses/LICENSE-2.0
-     
+
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
-     ============LICENSE_END=========================================================  
+     ============LICENSE_END=========================================================
  -->
 
 <configuration scan="true" scanPeriod="3 seconds" debug="false">
-       <contextName>${module.ajsc.namespace.name}</contextName>
-       <jmxConfigurator />
-       <property name="logDirectory" value="${AJSC_HOME}/log" />
-       <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>ERROR</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <encoder>
-                       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
-                       </pattern>
-               </encoder>
-       </appender>
-
-       <appender name="INFO"
-               class="ch.qos.logback.core.ConsoleAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-       </appender>
-
-       <appender name="DEBUG" class="ch.qos.logback.core.ConsoleAppender">
-
-               <encoder>
-                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="ERROR" class="ch.qos.logback.core.ConsoleAppender">
-               class="ch.qos.logback.core.ConsoleAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>ERROR</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <encoder>
-                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-               </encoder>
-       </appender>
-
-
-       <!-- Msgrtr related loggers -->
-       <logger name="org.onap.dmaap.dmf.mr.service" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.service.impl" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.resources" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.resources.streamReaders" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.backends" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.backends.kafka" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.backends.memory" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.beans" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.constants" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.exception" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.listener" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.metabroker" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.metrics.publisher" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.metrics.publisher.impl" level="INFO" />
-       
-       
-       
-       <logger name="org.onap.dmaap.dmf.mr.security" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.security.impl" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.transaction" level="INFO" />
-       <logger name="com.att.dmf.mr.transaction.impl" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.metabroker" level="INFO" />
-       <logger name="org.onap.dmaap.dmf.mr.metabroker" level="INFO" />
-       
-       <logger name="org.onap.dmaap.dmf.mr.utils" level="INFO" />
-       <logger name="org.onap.dmaap.mr.filter" level="INFO" /> 
-       
-       <!--<logger name="com.att.nsa.cambria.*" level="INFO" />-->
-       
-       <!-- Msgrtr loggers in ajsc -->
-       <logger name="org.onap.dmaap.service" level="INFO" />
-       <logger name="org.onap.dmaap" level="INFO" />
-       
-       
-       <!-- Spring related loggers -->
-       <logger name="org.springframework" level="WARN" additivity="false"/>
-       <logger name="org.springframework.beans" level="WARN" additivity="false"/>
-       <logger name="org.springframework.web" level="WARN" additivity="false" />
-       <logger name="com.blog.spring.jms" level="WARN" additivity="false" />
-
-       <!-- AJSC Services (bootstrap services) -->
-       <logger name="ajsc" level="WARN" additivity="false"/>
-       <logger name="ajsc.RouteMgmtService" level="INFO" additivity="false"/>
-       <logger name="ajsc.ComputeService" level="INFO" additivity="false" />
-       <logger name="ajsc.VandelayService" level="WARN" additivity="false"/>
-       <logger name="ajsc.FilePersistenceService" level="WARN" additivity="false"/>
-       <logger name="ajsc.UserDefinedJarService" level="WARN" additivity="false" />
-       <logger name="ajsc.UserDefinedBeansDefService" level="WARN" additivity="false" />
-       <logger name="ajsc.LoggingConfigurationService" level="WARN" additivity="false" />
-
-       <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet 
-               logging) -->
-       <logger name="ajsc.utils" level="WARN"  additivity="false"/>
-       <logger name="ajsc.utils.DME2Helper" level="INFO" additivity="false" />
-       <logger name="ajsc.filters" level="DEBUG" additivity="false" />
-       <logger name="ajsc.beans.interceptors" level="DEBUG" additivity="false" />
-       <logger name="ajsc.restlet" level="DEBUG" additivity="false"  />
-       <logger name="ajsc.servlet" level="DEBUG" additivity="false" />
-       <logger name="com.att" level="WARN" additivity="false"  />
-       <logger name="com.att.ajsc.csi.logging" level="WARN" additivity="false" />
-       <logger name="com.att.ajsc.filemonitor" level="WARN" additivity="false"/>
-       
-       <logger name="com.att.nsa.dmaap.util" level="INFO" additivity="false"/> 
-       <logger name="com.att.cadi.filter" level="INFO"  additivity="false" /> 
-       
-
-       <!-- Other Loggers that may help troubleshoot -->
-       <logger name="net.sf" level="WARN" additivity="false" />
-       <logger name="org.apache.commons.httpclient" level="WARN" additivity="false"/>
-       <logger name="org.apache.commons" level="WARN" additivity="false" />
-       <logger name="org.apache.coyote" level="WARN"  additivity="false"/>
-       <logger name="org.apache.jasper" level="WARN"  additivity="false"/>
-
-       <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. 
-               May aid in troubleshooting) -->
-       <logger name="org.apache.camel" level="WARN" additivity="false" />
-       <logger name="org.apache.cxf" level="WARN" additivity="false" />
-       <logger name="org.apache.camel.processor.interceptor" level="WARN"  additivity="false"/>
-       <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" additivity="false" />
-       <logger name="org.apache.cxf.service" level="WARN" additivity="false" />
-       <logger name="org.restlet" level="DEBUG" additivity="false" />
-       <logger name="org.apache.camel.component.restlet" level="DEBUG" additivity="false" />
-       <logger name="org.apache.kafka" level="DEBUG" additivity="false" />
-       <logger name="org.apache.zookeeper" level="INFO" additivity="false" />
-       <logger name="org.I0Itec.zkclient" level="DEBUG" additivity="false" />
-
-       <!-- logback internals logging -->
-       <logger name="ch.qos.logback.classic" level="INFO" additivity="false"/>
-       <logger name="ch.qos.logback.core" level="INFO" additivity="false" />
-
-       <!-- logback jms appenders & loggers definition starts here -->
-       <!-- logback jms appenders & loggers definition starts here -->
-       <appender name="auditLogs"
-               class="ch.qos.logback.core.ConsoleAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-               </filter>
-               <encoder>
-                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-               </encoder>
-       </appender>
-       <appender name="perfLogs"
-               class="ch.qos.logback.core.ConsoleAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-               </filter>
-               <encoder>
-                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-               </encoder>
-       </appender>
-       <appender name="ASYNC-audit" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <discardingThreshold>0</discardingThreshold>
-               <appender-ref ref="Audit-Record-Queue" />
-       </appender>
-
-       <logger name="AuditRecord" level="INFO" additivity="FALSE">
-               <appender-ref ref="STDOUT" />
-       </logger>
-       <logger name="AuditRecord_DirectCall" level="INFO" additivity="FALSE">
-               <appender-ref ref="STDOUT" />
-       </logger>
-       <appender name="ASYNC-perf" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <discardingThreshold>0</discardingThreshold>
-               <appender-ref ref="Performance-Tracker-Queue" />
-       </appender>
-       <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE">
-               <appender-ref ref="ASYNC-perf" />
-               <appender-ref ref="perfLogs" />
-       </logger>
-       <!-- logback jms appenders & loggers definition ends here -->
-
-       <root level="DEBUG">
-               <appender-ref ref="DEBUG" />
-               <appender-ref ref="ERROR" />
-               <appender-ref ref="INFO" />
-               <appender-ref ref="STDOUT" />
-       </root>
-
-</configuration>
\ No newline at end of file
+  <contextName>${module.ajsc.namespace.name}</contextName>
+  <jmxConfigurator />
+  <property name="logDirectory" value="${AJSC_HOME}/log" />
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>ERROR</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+      </pattern>
+    </encoder>
+  </appender>
+
+  <appender name="INFO" class="ch.qos.logback.core.ConsoleAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+  </appender>
+
+  <appender name="DEBUG" class="ch.qos.logback.core.ConsoleAppender">
+
+    <encoder>
+      <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="ERROR" class="ch.qos.logback.core.ConsoleAppender"> class="ch.qos.logback.core.ConsoleAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>ERROR</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <encoder>
+      <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+    </encoder>
+  </appender>
+
+
+  <!-- Msgrtr related loggers -->
+  <logger name="org.onap.dmaap.dmf.mr.service" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.service.impl" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.resources" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.resources.streamReaders" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.backends" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.backends.kafka" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.backends.memory" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.beans" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.constants" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.exception" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.listener" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.metabroker" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.metrics.publisher" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.metrics.publisher.impl" level="INFO" />
+
+
+
+  <logger name="org.onap.dmaap.dmf.mr.security" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.security.impl" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.transaction" level="INFO" />
+  <logger name="com.att.dmf.mr.transaction.impl" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.metabroker" level="INFO" />
+  <logger name="org.onap.dmaap.dmf.mr.metabroker" level="INFO" />
+
+  <logger name="org.onap.dmaap.dmf.mr.utils" level="INFO" />
+  <logger name="org.onap.dmaap.mr.filter" level="INFO" />
+
+  <!--<logger name="com.att.nsa.cambria.*" level="INFO" />-->
+
+  <!-- Msgrtr loggers in ajsc -->
+  <logger name="org.onap.dmaap.service" level="INFO" />
+  <logger name="org.onap.dmaap" level="INFO" />
+
+
+  <!-- Spring related loggers -->
+  <logger name="org.springframework" level="WARN" additivity="false"/>
+  <logger name="org.springframework.beans" level="WARN" additivity="false"/>
+  <logger name="org.springframework.web" level="WARN" additivity="false" />
+  <logger name="com.blog.spring.jms" level="WARN" additivity="false" />
+
+  <!-- AJSC Services (bootstrap services) -->
+  <logger name="ajsc" level="WARN" additivity="false"/>
+  <logger name="ajsc.RouteMgmtService" level="INFO" additivity="false"/>
+  <logger name="ajsc.ComputeService" level="INFO" additivity="false" />
+  <logger name="ajsc.VandelayService" level="WARN" additivity="false"/>
+  <logger name="ajsc.FilePersistenceService" level="WARN" additivity="false"/>
+  <logger name="ajsc.UserDefinedJarService" level="WARN" additivity="false" />
+  <logger name="ajsc.UserDefinedBeansDefService" level="WARN" additivity="false" />
+  <logger name="ajsc.LoggingConfigurationService" level="WARN" additivity="false" />
+
+  <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
+    logging) -->
+  <logger name="ajsc.utils" level="WARN" additivity="false"/>
+  <logger name="ajsc.utils.DME2Helper" level="INFO" additivity="false" />
+  <logger name="ajsc.filters" level="DEBUG" additivity="false" />
+  <logger name="ajsc.beans.interceptors" level="DEBUG" additivity="false" />
+  <logger name="ajsc.restlet" level="DEBUG" additivity="false" />
+  <logger name="ajsc.servlet" level="DEBUG" additivity="false" />
+  <logger name="com.att" level="WARN" additivity="false" />
+  <logger name="com.att.ajsc.csi.logging" level="WARN" additivity="false" />
+  <logger name="com.att.ajsc.filemonitor" level="WARN" additivity="false"/>
+
+  <logger name="com.att.nsa.dmaap.util" level="INFO" additivity="false"/>
+  <logger name="com.att.cadi.filter" level="INFO" additivity="false" />
+
+
+  <!-- Other Loggers that may help troubleshoot -->
+  <logger name="net.sf" level="WARN" additivity="false" />
+  <logger name="org.apache.commons.httpclient" level="WARN" additivity="false"/>
+  <logger name="org.apache.commons" level="WARN" additivity="false" />
+  <logger name="org.apache.coyote" level="WARN" additivity="false"/>
+  <logger name="org.apache.jasper" level="WARN" additivity="false"/>
+
+  <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+    May aid in troubleshooting) -->
+  <logger name="org.apache.camel" level="WARN" additivity="false" />
+  <logger name="org.apache.cxf" level="WARN" additivity="false" />
+  <logger name="org.apache.camel.processor.interceptor" level="WARN" additivity="false"/>
+  <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" additivity="false" />
+  <logger name="org.apache.cxf.service" level="WARN" additivity="false" />
+  <logger name="org.restlet" level="DEBUG" additivity="false" />
+  <logger name="org.apache.camel.component.restlet" level="DEBUG" additivity="false" />
+  <logger name="org.apache.kafka" level="DEBUG" additivity="false" />
+  <logger name="org.apache.zookeeper" level="INFO" additivity="false" />
+  <logger name="org.I0Itec.zkclient" level="DEBUG" additivity="false" />
+
+  <!-- logback internals logging -->
+  <logger name="ch.qos.logback.classic" level="INFO" additivity="false"/>
+  <logger name="ch.qos.logback.core" level="INFO" additivity="false" />
+
+  <!-- logback jms appenders & loggers definition starts here -->
+  <!-- logback jms appenders & loggers definition starts here -->
+  <appender name="auditLogs" class="ch.qos.logback.core.ConsoleAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+    </filter>
+    <encoder>
+      <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+    </encoder>
+  </appender>
+  <appender name="perfLogs" class="ch.qos.logback.core.ConsoleAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+    </filter>
+    <encoder>
+      <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+    </encoder>
+  </appender>
+  <appender name="ASYNC-audit" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <discardingThreshold>0</discardingThreshold>
+    <appender-ref ref="Audit-Record-Queue" />
+  </appender>
+
+  <logger name="AuditRecord" level="INFO" additivity="FALSE">
+    <appender-ref ref="STDOUT" />
+  </logger>
+  <logger name="AuditRecord_DirectCall" level="INFO" additivity="FALSE">
+    <appender-ref ref="STDOUT" />
+  </logger>
+  <appender name="ASYNC-perf" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <discardingThreshold>0</discardingThreshold>
+    <appender-ref ref="Performance-Tracker-Queue" />
+  </appender>
+  <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE">
+    <appender-ref ref="ASYNC-perf" />
+    <appender-ref ref="perfLogs" />
+  </logger>
+  <!-- logback jms appenders & loggers definition ends here -->
+
+  <root level="DEBUG">
+    <appender-ref ref="DEBUG" />
+    <appender-ref ref="ERROR" />
+    <appender-ref ref="INFO" />
+    <appender-ref ref="STDOUT" />
+  </root>
+
+</configuration>
index 7ae77cd..ff1a573 100644 (file)
@@ -1,7 +1,7 @@
 {
   "topicName": "mirrormakeragent",
   "topicDescription": "the topic used to provision the MM agent whitelist",
- "replicationCase": "REPLICATION_NONE",
 "replicationCase": "REPLICATION_NONE",
   "owner": "dmaap",
   "txenabled": false,
   "partitionCount": "1",
       "dcaeLocationName": "san-francisco",
       "clientIdentity": "dmaap-bc-mm-prov@dmaap-bc-mm-prov.onap.org",
       "action": [
-        "pub", 
+        "pub",
         "sub",
-               "view"
+        "view"
       ]
     },
-       {
+    {
       "dcaeLocationName": "san-francisco",
       "clientIdentity": "dmaap-bc-topic-mgr@dmaap-bc-topic-mgr.onap.org",
       "action": [
-        "pub", 
+        "pub",
         "sub",
-               "view"
+        "view"
       ]
     },
-       {
+    {
       "dcaeLocationName": "san-francisco",
       "clientIdentity": "demo@people.osaaf.org",
       "action": [
-        "pub", 
+        "pub",
         "sub",
-               "view"
+        "view"
       ]
     }
-       
   ]
-}
-
+}
\ No newline at end of file
index db3bc76..2b0b44e 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" .  }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-      {
-          "serviceName": "{{ include "common.servicename" . }}",
-          "version": "v1",
-          "url": "/",
-          "protocol": "REST",
-          "port": "{{.Values.service.internalPort}}",
-          "visualRange":"1"
-      }
-      ]'
-
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    {{- if .Values.global.allow_http }}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}-{{ .Values.service.externalPort }}
-    {{- end}}
-    - port: {{ .Values.service.externalPort2 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
-      name: {{ .Values.service.portName }}-{{ .Values.service.externalPort2 }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
+{{ include "common.service" . }}
index 35cc5e7..c17fda1 100644 (file)
 # 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/v1beta1
+
+apiVersion: apps/v1
 kind: StatefulSet
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
+  selector: {{- include "common.selectors" . | nindent 4 }}
+  serviceName: {{ include "common.servicename" . }}
   replicas: {{ .Values.replicaCount }}
   template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
+    metadata: {{- include "common.templateMetadata" . | nindent 6 }}
     spec:
       initContainers:
       - command:
@@ -51,20 +44,18 @@ spec:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.externalPort }}
-          - containerPort: {{ .Values.service.externalPort2 }}
+          ports: {{ include "common.containerPorts" . | nindent 10  }}
           {{- if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
-              port: {{ .Values.service.externalPort }}
+              port: {{ .Values.liveness.port }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
           {{ end -}}
           readinessProbe:
             tcpSocket:
-              port: {{ .Values.service.externalPort }}
+              port: {{ .Values.readiness.port }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
@@ -87,8 +78,7 @@ spec:
           - mountPath: /appl/dmaapMR1/etc/keyfile
             subPath: mykey
             name: mykey
-          resources:
-{{ include "common.resources" . }}
+          resources: {{ include "common.resources" . | nindent 12 }}
       volumes:
         - name: localtime
           hostPath:
index 935c090..b14c35f 100644 (file)
@@ -58,21 +58,31 @@ liveness:
   timeoutSeconds: 1
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
+  port: api
   enabled: true
 
 readiness:
   initialDelaySeconds: 70
   periodSeconds: 10
   timeoutSeconds: 1
+  port: api
 
 service:
   type: NodePort
   name: message-router
-  portName: message-router
-  externalPort: 3904
-  nodePort: 27
-  externalPort2: 3905
-  nodePort2: 26
+  both_tls_and_plain: true
+  msb:
+   port: api
+   url: "/"
+   version: "v1"
+   protocol: "REST"
+   visualRange: "1"
+  ports:
+    - name: api
+      port: 3905
+      plain_port: 3904
+      port_protocol: http
+      nodePort: 26
 
 ingress:
   enabled: false
index 4c0d8d5..ecc5689 100644 (file)
@@ -29,7 +29,7 @@ global:
   busyBoxRepository: docker.io
 
 #Global DMaaP app config
-  allow_http: true
+  allow_http: false
 
   #Logstash config
   logstashServiceName: log-ls
index 952dd0a..a191739 100644 (file)
@@ -26,7 +26,7 @@ global:
 repository: nexus3.onap.org:10001
 image: onap/aai/esr-gui:1.4.0
 pullPolicy: Always
-msbaddr: msb-iag.{{ include "common.namespace" . }}:80
+msbaddr: msb-iag.{{ include "common.namespace" . }}:443
 
 # default number of instances
 replicaCount: 1
index 5316210..f3f4f88 100644 (file)
@@ -27,9 +27,9 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai/esr-server:1.5.1
+image: onap/aai/esr-server:1.5.2
 pullPolicy: Always
-msbaddr: msb-iag.{{ include "common.namespace" . }}:80
+msbaddr: msb-iag.{{ include "common.namespace" . }}:443
 
 # application configuration
 config:
diff --git a/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml b/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
new file mode 100644 (file)
index 0000000..545359e
--- /dev/null
@@ -0,0 +1,172 @@
+# Copyright Â© 2019 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.
+
+#################################################################
+# Global configuration overrides.
+#
+# These overrides will affect all helm charts (ie. applications)
+# that are listed below and are 'enabled'.
+#################################################################
+global:
+  # Change to an unused port prefix range to prevent port conflicts
+  # with other instances running within the same k8s cluster
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+
+  # ONAP Repository
+  # Uncomment the following to enable the use of a single docker
+  # repository but ONLY if your repository mirrors all ONAP
+  # docker images. This includes all images from dockerhub and
+  # any other repository that hosts images for ONAP components.
+  #repository: nexus3.onap.org:10001
+  repositoryCred:
+    user: docker
+    password: docker
+
+  # readiness check - temporary repo until images migrated to nexus3
+  readinessRepository: oomk8s
+  # logging agent - temporary repo until images migrated to nexus3
+  loggingRepository: docker.elastic.co
+
+  # image pull policy
+  pullPolicy: IfNotPresent
+
+  # default mount path root directory referenced
+  # by persistent volumes and log files
+  persistence:
+    mountPath: /dockerdata-nfs
+    enableDefaultStorageclass: false
+    parameters: {}
+    storageclassProvisioner: kubernetes.io/no-provisioner
+    volumeReclaimPolicy: Retain
+
+  # override default resource limit flavor for all charts
+  flavor: small
+
+  # flag to enable debugging - application support required
+  debugEnabled: false
+
+  #Global ingress configuration
+  ingress:
+    enabled: false
+    virtualhost:
+        enabled: true
+        baseurl: "simpledemo.onap.org"
+#################################################################
+# Enable/disable and configure helm charts (ie. applications)
+# to customize the ONAP deployment.
+#################################################################
+aaf:
+  enabled: true
+aai:
+  enabled: true
+appc:
+  enabled: false
+  config:
+    openStackType: OpenStackProvider
+    openStackName: OpenStack
+    openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html
+    openStackServiceTenantName: default
+    openStackDomain: default
+    openStackUserName: admin
+    openStackEncryptedPassword: admin
+cassandra:
+  enabled: true
+cds:
+  enabled: true
+clamp:
+  enabled: false
+cli:
+  enabled: false
+consul:
+  enabled: false
+contrib:
+  enabled: false
+dcaegen2:
+  enabled: false
+pnda:
+  enabled: false
+dmaap:
+  enabled: true
+esr:
+  enabled: true
+log:
+  enabled: true
+sniro-emulator:
+  enabled: false
+oof:
+  enabled: true
+mariadb-galera:
+  enabled: true
+msb:
+  enabled: true
+multicloud:
+  enabled: false
+nbi:
+  enabled: false
+  config:
+    # openstack configuration
+    openStackRegion: "Yolo"
+    openStackVNFTenantId: "1234"
+policy:
+  enabled: true
+pomba:
+  enabled: false
+portal:
+  enabled: true
+robot:
+  enabled: false
+  config:
+    # openStackEncryptedPasswordHere should match the encrypted string used in SO and APPC and overridden per environment
+    openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+sdc:
+  enabled: true
+sdnc:
+  enabled: false
+
+  replicaCount: 1
+
+  mysql:
+    replicaCount: 1
+so:
+  enabled: true
+
+  replicaCount: 1
+
+  liveness:
+    # necessary to disable liveness probe when setting breakpoints
+    # in debugger so K8s doesn't restart unresponsive container
+    enabled: false
+
+  # so server configuration
+  config:
+    # message router configuration
+    dmaapTopic: "AUTO"
+    # openstack configuration
+    openStackUserName: "vnf_user"
+    openStackRegion: "RegionOne"
+    openStackKeyStoneUrl: "http://1.2.3.4:5000"
+    openStackServiceTenantName: "service"
+    openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+
+uui:
+  enabled: true
+vfc:
+  enabled: false
+vid:
+  enabled: false
+vnfsdk:
+  enabled: false
+modeling:
+  enabled: false
index 2395495..86fd263 100755 (executable)
@@ -63,6 +63,57 @@ global:
     virtualhost:
         enabled: true
         baseurl: "simpledemo.onap.org"
+
+  # Global Service Mesh configuration
+  # POC Mode, don't use it in production
+  serviceMesh:
+    enabled: false
+    tls: true
+
+  # Disabling AAF
+  # POC Mode, don't use it in production
+  aafEnabled: true
+
+  # TLS
+  # Set to false if you want to disable TLS for NodePorts. Be aware that this
+  # will loosen your security.
+  # if set this element will force or not tls even if serviceMesh.tls is set.
+  # tlsEnabled: false
+
+
+# Example of specific for the components where you want to disable TLS only for
+# it:
+# if set this element will force or not tls even if global.serviceMesh.tls and
+# global.tlsEnabled is set otherwise.
+# robot:
+#   tlsOverride: false
+
+  # Global storage configuration
+  #    Set to "-" for default, or with the name of the storage class
+  #    Please note that if you use AAF, CDS, SDC, Netbox or Robot, you need a
+  #    storageclass with RWX capabilities (or set specific configuration for these
+  #    components).
+  # persistence:
+  #   storageClass: "-"
+
+# Example of specific for the components which requires RWX:
+# aaf:
+#   persistence:
+#     storageClassOverride: "My_RWX_Storage_Class"
+# contrib:
+#   netbox:
+#     netbox-app:
+#       persistence:
+#         storageClassOverride: "My_RWX_Storage_Class"
+# cds:
+#   cds-blueprints-processor:
+#     persistence:
+#       storageClassOverride: "My_RWX_Storage_Class"
+# sdc:
+#   sdc-onboarding-be:
+#     persistence:
+#       storageClassOverride: "My_RWX_Storage_Class"
+
 #################################################################
 # Enable/disable and configure helm charts (ie. applications)
 # to customize the ONAP deployment.
index 2b5a011..fd87adc 100755 (executable)
@@ -560,8 +560,7 @@ concurrent = true
 #table_prefix = sdnc
 
 # Base URL for SDN-C, up to and including the version. (string value)
-#server_url = https://controller:8443/restconf/
-server_url = https://sdncodl-conexus-e2e.ecomp.cci.att.com:8543/restconf/
+server_url = https://controller:8443/restconf/
 
 # Basic Authentication Username (string value)
 #username = <None>
@@ -577,7 +576,6 @@ password = Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
 # Retry Numbers for SDNC Rest Call (string value)
 #sdnc_retries = 3
 
-
 [service_controller]
 
 #
diff --git a/kubernetes/portal/charts/portal-app/resources/server/web.xml b/kubernetes/portal/charts/portal-app/resources/server/web.xml
new file mode 100644 (file)
index 0000000..8f88e12
--- /dev/null
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============LICENSE_START==========================================
+  ONAP Portal
+  ===================================================================
+  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+  ===================================================================
+  Unless otherwise specified, all software contained herein is licensed
+  under the Apache License, Version 2.0 (the "License");
+  you may not use this software 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.
+  Unless otherwise specified, all documentation contained herein is licensed
+  under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+  you may not use this documentation except in compliance with the License.
+  You may obtain a copy of the License at
+              https://creativecommons.org/licenses/by/4.0/
+  Unless required by applicable law or agreed to in writing, documentation
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ============LICENSE_END============================================
+  
+  -->
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+       <display-name>fusion</display-name>
+       
+       <!--  
+       <context-param>
+       <param-name>log4jConfigLocation</param-name>
+       <param-value>/WEB-INF/conf/log4j.properties</param-value>
+       </context-param>
+
+       <listener>
+       <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
+       </listener>     
+        -->
+        
+       <!-- The Portal app can function on a HA cluster -->
+       <distributable/>
+       
+       <!-- <context-param>
+       <param-name>contextConfigLocation</param-name>
+               <param-value>/WEB-INF/oid-context.xml</param-value>
+       </context-param>
+
+       <listener>
+          <listener-class>
+               org.springframework.web.context.ContextLoaderListener
+          </listener-class>
+       </listener>  -->
+
+
+       <listener>
+       <listener-class>org.onap.portalapp.portal.listener.UserSessionListener</listener-class>
+       </listener>
+       <!--
+       <filter>
+               <filter-name>springSessionRepositoryFilter</filter-name>
+               <filter-class>org.onap.portalapp.music.filter.MusicSessionRepositoryFilter</filter-class>
+       </filter>
+       <filter-mapping>
+               <filter-name>springSessionRepositoryFilter</filter-name>
+               <url-pattern>/*</url-pattern>
+               <dispatcher>REQUEST</dispatcher>
+               <dispatcher>ERROR</dispatcher>
+       </filter-mapping>
+       -->
+       <filter>
+       <filter-name>CorsFilter</filter-name>
+               <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
+               <init-param>
+                       <param-name>cors.allowed.origins</param-name>
+                       <param-value>http://www.portal.onap.org:9200,http://www.portal.onap.org:9000</param-value>
+               </init-param>
+           <init-param>
+               <param-name>cors.allowed.methods</param-name>
+               <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
+           </init-param>
+           <init-param>
+               <param-name>cors.allowed.headers</param-name>
+               <param-value>EPService,JSESSIONID,X-ECOMP-RequestID,X-Widgets-Type,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
+           </init-param> 
+           <init-param>
+                       <param-name>cors.exposed.headers</param-name>
+                       <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
+               </init-param>
+               <init-param>
+                       <param-name>cors.support.credentials</param-name>
+                       <param-value>true</param-value>
+               </init-param>
+               <init-param>
+                       <param-name>cors.preflight.maxage</param-name>
+                       <param-value>10</param-value>  
+               </init-param>    
+       </filter>
+    
+    <filter-mapping>
+      <filter-name>CorsFilter</filter-name>
+      <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    
+       <filter>
+           <filter-name>SecurityXssFilter</filter-name>
+           <filter-class>org.onap.portalapp.filter.SecurityXssFilter</filter-class>
+       </filter>
+       
+       <filter-mapping>
+           <filter-name>SecurityXssFilter</filter-name>
+           <url-pattern>/*</url-pattern>
+       </filter-mapping>
+<!--   <filter> -->
+<!--           <filter-name>CadiAuthFilter</filter-name> -->
+<!--           <filter-class>org.onap.portalsdk.core.onboarding.crossapi.CadiAuthFilter</filter-class> -->
+<!--           <init-param> -->
+<!--                   <param-name>cadi_prop_files</param-name> -->
+<!--         Add Absolute path of cadi.properties -->
+<!--                   <param-value>{Path}/cadi.properties -->
+<!--                   </param-value> -->
+<!--           </init-param> -->
+<!--          Add param values with comma delimited values -->
+<!--           <init-param> -->
+<!--                   <param-name>include_url_endpoints</param-name> -->
+<!--                   <param-value>/auxapi/*</param-value> -->
+<!--           </init-param> -->
+<!--           <init-param> -->
+<!--                   <param-name>exclude_url_endpoints</param-name> -->
+<!--                   <param-value>/api/v3/analytics,/api/v3/storeAnalytics</param-value> -->
+<!--           </init-param> -->
+<!--   </filter> -->
+<!--   <filter-mapping> -->
+<!--           <filter-name>CadiAuthFilter</filter-name> -->
+<!--           <url-pattern>/auxapi/v3/*</url-pattern> -->
+<!--   </filter-mapping> -->
+<!--   <filter-mapping> -->
+<!--           <filter-name>CadiAuthFilter</filter-name> -->
+<!--           <url-pattern>/auxapi/v4/*</url-pattern> -->
+               
+<!--   </filter-mapping>   -->
+</web-app>
index fe44c76..eb0dee0 100644 (file)
@@ -114,6 +114,9 @@ spec:
         - name: properties-onapportal
           mountPath: "{{ .Values.global.env.tomcatDir }}/conf/server.xml"
           subPath: server.xml
+        - name: properties-onapportal
+          mountPath: "{{ .Values.global.env.tomcatDir }}/webapps/ONAPPORTAL/WEB-INF/web.xml"
+          subPath: web.xml
         - name: authz-onapportal
           mountPath: "{{ .Values.global.env.tomcatDir }}/{{ .Values.global.keystoreFile}}"
           subPath: {{ .Values.global.keystoreFile}}
index 3bbb1a7..063ba3d 100755 (executable)
@@ -81,3 +81,14 @@ authenticate_user_server=http://{{.Values.global.portalHostName}}:8383/openid-co
 
 #cookie domain
 cookie_domain = onap.org
+
+{{- if .Values.global.aafEnabled }}
+# External Access System Basic Auth Credentials & Rest endpoint(These credentials doesn't work as these are place holders for now)
+ext_central_access_user_name = aaf_admin@people.osaaf.org
+ext_central_access_password = thiswillbereplacedatruntime
+ext_central_access_url = {{ .Values.aafURL }}/authz/
+ext_central_access_user_domain = @people.osaaf.org
+
+# External Central Auth system access
+remote_centralized_system_access = true
+{{- end }}
\ No newline at end of file
diff --git a/kubernetes/portal/charts/portal-sdk/resources/server/server.xml b/kubernetes/portal/charts/portal-sdk/resources/server/server.xml
new file mode 100644 (file)
index 0000000..506a1ca
--- /dev/null
@@ -0,0 +1,155 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+
+  Modifications to this file for use in ONAP are also subject to the Apache-2.0 license.
+-->
+<!-- Note:  A "Server" is not itself a "Container", so you may not
+     define subcomponents such as "Valves" at this level.
+     Documentation at /docs/config/server.html
+ -->
+<Server port="8005" shutdown="SHUTDOWN">
+  <Listener className="org.apache.catalina.startup.VersionLoggerListener" logArgs="false"/>
+  <!-- Security listener. Documentation at /docs/config/listeners.html
+  <Listener className="org.apache.catalina.security.SecurityListener" />
+  -->
+  <!--APR library loader. Documentation at /docs/apr.html -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
+  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
+
+  <!-- Global JNDI resources
+       Documentation at /docs/jndi-resources-howto.html
+  -->
+  <GlobalNamingResources>
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users
+    -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+              description="User database that can be updated and saved"
+              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+              pathname="conf/tomcat-users.xml" />
+  </GlobalNamingResources>
+
+  <!-- A "Service" is a collection of one or more "Connectors" that share
+       a single "Container" Note:  A "Service" is not itself a "Container",
+       so you may not define subcomponents such as "Valves" at this level.
+       Documentation at /docs/config/service.html
+   -->
+  <Service name="Catalina">
+
+    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
+    <!--
+    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
+        maxThreads="150" minSpareThreads="4"/>
+    -->
+
+
+    <!-- A "Connector" represents an endpoint by which requests are received
+         and responses are returned. Documentation at :
+         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
+         Java AJP  Connector: /docs/config/ajp.html
+         APR (HTTP/AJP) Connector: /docs/apr.html
+         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
+    -->
+    <Connector port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+    {{ if .Values.global.aafEnabled }}
+               redirectPort="8443"
+    {{ end }}
+    />
+    <!-- A "Connector" using the shared thread pool-->
+    <!--
+    <Connector executor="tomcatThreadPool"
+               port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+    -->
+    <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
+         This connector uses the NIO implementation that requires the JSSE
+         style configuration. When using the APR/native implementation, the
+         OpenSSL style configuration is required as described in the APR/native
+         documentation -->
+    <!--
+    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
+               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
+               clientAuth="false" sslProtocol="TLS" />
+    -->
+    {{ if .Values.global.aafEnabled }}
+    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
+               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
+               keystoreFile="{{.Values.persistence.aafCredsPath}}/{{.Values.aafConfig.keystoreFile}}"
+               keystorePass="${javax.net.ssl.keyStorePassword}"
+               clientAuth="false" sslProtocol="TLS" />
+    {{ end }}
+    <!-- Define an AJP 1.3 Connector on port 8009 -->
+    <Connector port="8009" protocol="AJP/1.3"
+    {{ if .Values.global.aafEnabled }}
+              redirectPort="8443"
+    {{ end }}
+    />
+
+
+    <!-- An Engine represents the entry point (within Catalina) that processes
+         every request.  The Engine implementation for Tomcat stand alone
+         analyzes the HTTP headers included with the request, and passes them
+         on to the appropriate Host (virtual host).
+         Documentation at /docs/config/engine.html -->
+
+    <!-- You should set jvmRoute to support load-balancing via AJP ie :
+    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
+    -->
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <!--For clustering, please take a look at documentation at:
+          /docs/cluster-howto.html  (simple how to)
+          /docs/config/cluster.html (reference documentation) -->
+      <!--
+      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
+      -->
+
+      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
+           via a brute-force attack -->
+      <Realm className="org.apache.catalina.realm.LockOutRealm">
+        <!-- This Realm uses the UserDatabase configured in the global JNDI
+             resources under the key "UserDatabase".  Any edits
+             that are performed against this UserDatabase are immediately
+             available for use by the Realm.  -->
+        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+               resourceName="UserDatabase"/>
+      </Realm>
+
+      <Host name="localhost"  appBase="webapps"
+            unpackWARs="true" autoDeploy="true">
+
+        <!-- SingleSignOn valve, share authentication between web applications
+             Documentation at: /docs/config/valve.html -->
+        <!--
+        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+        -->
+        <!-- Access log processes all example.
+             Documentation at: /docs/config/valve.html
+             Note: The pattern used is equivalent to using pattern="common" -->
+        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+               prefix="localhost_access_log" suffix=".txt"
+               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
+      </Host>
+    </Engine>
+  </Service>
+</Server>
\ No newline at end of file
index 5134619..154276e 100644 (file)
@@ -25,3 +25,4 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/deliveries/properties/ONAPPORTALSDK/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/server/*").AsConfig . | indent 2 }}
\ No newline at end of file
index ccdd013..09080fc 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T
+# Modifications Copyright Â© 2018,2020 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -46,14 +46,75 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
+      {{- if .Values.global.aafEnabled }}
+      - name: {{ include "common.name" . }}-aaf-readiness
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+          - /root/ready.py
+        args:
+          - --container-name
+          - aaf-locate
+          - --container-name
+          - aaf-cm
+        env:
+          - name: NAMESPACE
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: metadata.namespace
+      - name: {{ include "common.name" . }}-aaf-config
+        image: "{{ include "common.repository" . }}/{{ .Values.global.aafAgentImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c"]
+        args: ["/opt/app/aaf_config/bin/agent.sh;/opt/app/aaf_config/bin/agent.sh local showpass \
+        {{.Values.aafConfig.fqi}} {{ .Values.aafConfig.fqdn }} > {{ .Values.persistence.aafCredsPath }}/mycreds.prop"]
+        volumeMounts:
+          - mountPath: {{ .Values.persistence.aafCredsPath }}
+            name: {{ include "common.fullname" . }}-aaf-config-vol
+        env:
+          - name: APP_FQI
+            value: "{{ .Values.aafConfig.fqi }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace }}:8095"
+          - name: aaf_locator_container
+            value: "{{ .Values.global.aafLocatorContainer }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_fqdn
+            value: "{{ .Values.aafConfig.fqdn }}"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.aafConfig.publicFqdn}}"
+          - name: aaf_locator_app_ns
+            value: "{{ .Values.global.aafAppNs }}"
+          - name: DEPLOY_FQI
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aaf-deploy-creds" "key" "login") | indent 12 }}
+          - name: DEPLOY_PASSWORD
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aaf-deploy-creds" "key" "password") | indent 12 }}
+          - name: cadi_longitude
+            value: "{{ .Values.aafConfig.cadiLongitude }}"
+          - name: cadi_latitude
+            value: "{{ .Values.aafConfig.cadiLatitude }}"
+      {{ end }}
       containers:
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        command:
-          - /start-apache-tomcat.sh
-          - -b
-          - "{{ .Values.global.env.tomcatDir }}"
+        command: ["bash","-c"]
+        {{- if .Values.global.aafEnabled }}
+        args: ["export $(grep '^c' {{ .Values.persistence.aafCredsPath }}/mycreds.prop | xargs -0);\
+        export _JAVA_OPTIONS=\"-Djavax.net.ssl.trustStorePassword=$cadi_truststore_password \
+        -Djavax.net.ssl.keyStorePassword=$cadi_keystore_password_p12\";\
+        cat /dev/null > {{ .Values.persistence.aafCredsPath }}/mycreds.prop;\
+        /start-apache-tomcat.sh -b {{ .Values.global.env.tomcatDir }}"]
+        env:
+          - name: _CATALINA_OPTS
+            value: >
+              -Djavax.net.ssl.keyStore="{{ .Values.persistence.aafCredsPath }}/{{ .Values.aafConfig.keystoreFile }}"
+              -Djavax.net.ssl.trustStore="{{ .Values.persistence.aafCredsPath }}/{{ .Values.aafConfig.truststoreFile }}"
+        {{- else }}
+        args: ["/start-apache-tomcat.sh -b {{ .Values.global.env.tomcatDir }}"]
+        {{- end }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
         {{- if eq .Values.liveness.enabled true }}
@@ -69,6 +130,13 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         volumeMounts:
+        {{- if .Values.global.aafEnabled }}
+        - mountPath: {{ .Values.persistence.aafCredsPath }}
+          name: {{ include "common.fullname" . }}-aaf-config-vol
+        {{- end }}
+        - name: properties-onapportalsdk
+          mountPath: "{{ .Values.global.env.tomcatDir }}/conf/server.xml"
+          subPath: server.xml
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -129,5 +197,10 @@ spec:
           emptyDir: {}
         - name: portal-tomcat-logs
           emptyDir: {}
+        {{- if .Values.global.aafEnabled }}
+        - name: {{ include "common.fullname" . }}-aaf-config-vol
+          emptyDir:
+            medium: Memory
+        {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
@@ -1,4 +1,4 @@
-# Copyright Â© 2018 Amdocs, AT&T, Bell Canada
+# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,7 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-dependencies:
-  - name: common
-    version: ~5.x-0
-    repository: '@local'
+{{ include "common.secret" . }}
index 8572ff8..34c29b5 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T
+# Modifications Copyright Â© 2018, 2020 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -22,15 +22,48 @@ global:
   readinessImage: readiness-check:2.0.0
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
-
+  persistence: {}
+  #AAF global config overrides
+  aafEnabled: true
+  aafAgentImage: onap/aaf/aaf_agent:2.1.15
+  aafAppNs: org.osaaf.aaf
+  aafLocatorContainer: oom
 #################################################################
 # Application configuration defaults.
 #################################################################
+secrets:
+  - uid: aaf-deploy-creds
+    type: basicAuth
+    externalSecret: '{{ ternary (tpl (default "" .Values.aafConfig.aafDeployCredsExternalSecret) .) "aafIsDiabled" .Values.global.aafEnabled }}'
+    login: '{{ .Values.aafConfig.aafDeployFqi }}'
+    password: '{{ .Values.aafConfig.aafDeployPass }}'
+    passwordPolicy: required
+
+## Persist cert data to a memory volume
+persistence:
+  aafCredsPath: /opt/app/osaaf/local
+
 # application image
 repository: nexus3.onap.org:10001
 image: onap/portal-sdk:2.6.0
 pullPolicy: Always
 
+#AAF service
+aafURL: https://aaf-service:8100/
+aafLocateUrl: https://aaf-locate:8095
+
+#AAF local config
+aafConfig:
+  aafDeployFqi: deployer@people.osaaf.org
+  aafDeployPass: demo123456!
+  fqdn: portal
+  fqi: portal@portal.onap.org
+  publicFqdn: portal.onap.org
+  cadiLatitude: 0.0
+  cadiLongitude: 0.0
+  keystoreFile: "org.onap.portal.p12"
+  truststoreFile: "org.onap.portal.trust.jks"
+
 # flag to enable debugging - application support required
 debugEnabled: false
 
@@ -57,8 +90,8 @@ service:
   type: NodePort
   name: portal-sdk
   portName: portal-sdk
-  internalPort: 8080
-  externalPort: 8080
+  internalPort: 8443
+  externalPort: 8443
   nodePort: 12
 
 mariadb:
@@ -85,7 +118,7 @@ ingress:
   service:
     - baseaddr: portalsdk
       name: "portal-sdk"
-      port: 8080
+      port: 8443
   config:
     ssl: "none"
 
index 591bfde..c854b48 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 591bfdea4f1d833abee3c7e60f084da546d9082a
+Subproject commit c854b484ebbd5e0c1be1e6a032a79beeb4cab6ff
index ca1390a..1aa0010 100644 (file)
@@ -70,7 +70,7 @@ spec:
           {{ if eq .Values.liveness.enabled true }}
           livenessProbe:
             httpGet:
-              path: /sdc2/rest/version
+              path: /sdc2/rest/healthCheck
               port: {{ .Values.service.internalPort }}
               scheme: HTTPS
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
index 8ac6c27..a9e5b29 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-backend:1.5.2
-backendInitImage: onap/sdc-backend-init:1.5.2
+image: onap/sdc-backend:1.6.1
+backendInitImage: onap/sdc-backend-init:1.6.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 21b35ce..150b961 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-cassandra:1.5.2
-cassandraInitImage: onap/sdc-cassandra-init:1.5.2
+image: onap/sdc-cassandra:1.6.1
+cassandraInitImage: onap/sdc-cassandra-init:1.6.1
 
 pullPolicy: Always
 
@@ -61,10 +61,8 @@ service:
   type: ClusterIP
   name: sdc-cs
   portName: sdc-cs
-  externalPort: 9160
-  internalPort: 9160
-  externalPort2: 9042
-  internalPort2: 9042
+  externalPort: 9042
+  internalPort: 9042
 
 
 ## Persist data to a persitent volume
diff --git a/kubernetes/sdc/charts/sdc-es/.helmignore b/kubernetes/sdc/charts/sdc-es/.helmignore
deleted file mode 100644 (file)
index 542b339..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# Patterns to ignore when building packages.\r
-# This supports shell glob matching, relative path matching, and\r
-# negation (prefixed with !). Only one pattern per line.\r
-.DS_Store\r
-# Common VCS dirs\r
-.git/\r
-.gitignore\r
-.bzr/\r
-.bzrignore\r
-.hg/\r
-.hgignore\r
-.svn/\r
-# Common backup files\r
-*.swp\r
-*.bak\r
-*.tmp\r
-*~\r
-# Various IDEs\r
-.project\r
-.idea/\r
-*.tmproj
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-es/Chart.yaml b/kubernetes/sdc/charts/sdc-es/Chart.yaml
deleted file mode 100644 (file)
index d1c46d0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-apiVersion: v1
-description: ONAP Service Design and Creation Elasticsearch
-name: sdc-es
-version: 5.0.0
diff --git a/kubernetes/sdc/charts/sdc-es/templates/NOTES.txt b/kubernetes/sdc/charts/sdc-es/templates/NOTES.txt
deleted file mode 100644 (file)
index 3a5553b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright Â© 2018 Amdocs, Bell Canada, AT&T, ZTE
-#
-# 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.
-
-1. Get the application URL by running these commands:
-{{- if .Values.ingress.enabled }}
-{{- range .Values.ingress.hosts }}
-  http://{{ . }}
-{{- end }}
-{{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
-  echo http://$NODE_IP:$NODE_PORT
-{{- else if contains "LoadBalancer" .Values.service.type }}
-     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
-           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
-  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
-  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
-{{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
-  echo "Visit http://127.0.0.1:8080 to use your application"
-  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
-{{- end }}
diff --git a/kubernetes/sdc/charts/sdc-es/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-es/templates/deployment.yaml
deleted file mode 100644 (file)
index c5ab2be..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright Â© 2017 Amdocs, AT&T, Bell Canada
-# Modifications Copyright Â© 2018 ZTE
-#
-# 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: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
-    spec:
-      containers:
-        - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          - containerPort: {{ .Values.service.internalPort2 }}
-          {{ if eq .Values.liveness.enabled true }}
-          livenessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end }}
-          readinessProbe:
-            httpGet:
-              path: "_cluster/health?wait_for_status=yellow&timeout=120s"
-              port: {{ .Values.service.internalPort }}
-              scheme: HTTP
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          resources:
-{{ include "common.resources" . | indent 12 }}
-          env:
-          - name: ENVNAME
-            value: {{ .Values.global.env.name }}
-          - name: HOST_IP
-            valueFrom:
-              fieldRef:
-                fieldPath: status.podIP
-          - name: ES_HEAP_SIZE
-            value: {{ .Values.config.JvmHeapSize }}
-          - name: ES_JAVA_OPTS
-            value: {{ .Values.config.JvmOptions }}
-          volumeMounts:
-          - name: {{ include "common.fullname" . }}-environments
-            mountPath: /root/chef-solo/environments/
-          - name: {{ include "common.fullname" . }}-localtime
-            mountPath: /etc/localtime
-            readOnly: true
-          - name: {{ include "common.fullname" . }}-data
-            mountPath: /usr/share/elasticsearch/data/
-      volumes:
-        - name: {{ include "common.fullname" . }}-localtime
-          hostPath:
-            path: /etc/localtime
-      {{- if .Values.persistence.enabled }}
-        - name: {{ include "common.fullname" . }}-data
-          persistentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}
-      {{- else }}
-          emptyDir: {}
-      {{- end }}
-        - name: {{ include "common.fullname" . }}-environments
-          configMap:
-            name: {{ include "common.release" . }}-sdc-environments-configmap
-            defaultMode: 0755
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/sdc/charts/sdc-es/templates/job.yaml b/kubernetes/sdc/charts/sdc-es/templates/job.yaml
deleted file mode 100644 (file)
index 8a73eae..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright Â© 2017 Amdocs, AT&T, Bell Canada
-# Modifications Copyright Â© 2018  ZTE
-#
-# 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: batch/v1
-kind: Job
-metadata:
-  name: {{ include "common.fullname" . }}-config-elasticsearch
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}-job
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  backoffLimit: 20
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}-job
-        release: {{ include "common.release" . }}
-    spec:
-      restartPolicy: Never
-      initContainers:
-      - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - sdc-es
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-      containers:
-      - name: {{ include "common.name" . }}-job
-        image: "{{ include "common.repository" . }}/{{ .Values.elasticInitImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - name: {{ include "common.fullname" . }}-environments
-          mountPath: /root/chef-solo/environments/
-        env:
-        - name: ENVNAME
-          value: {{ .Values.global.env.name }}
-      volumes:
-        - name: {{ include "common.fullname" . }}-environments
-          configMap:
-            name: {{ include "common.release" . }}-sdc-environments-configmap
-            defaultMode: 0755
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
-      restartPolicy: Never
diff --git a/kubernetes/sdc/charts/sdc-es/templates/pv.yaml b/kubernetes/sdc/charts/sdc-es/templates/pv.yaml
deleted file mode 100644 (file)
index 4733fed..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-{{/*
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-{{- if eq "True" (include "common.needPV" .) -}}
-kind: PersistentVolume
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
-    release: "{{ include "common.release" . }}"
-    heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
-spec:
-  capacity:
-    storage: {{ .Values.persistence.size}}
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-  hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ include "common.release" . }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
-{{- end -}}
diff --git a/kubernetes/sdc/charts/sdc-es/templates/pvc.yaml b/kubernetes/sdc/charts/sdc-es/templates/pvc.yaml
deleted file mode 100644 (file)
index ab97f95..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-{{/*
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-*/}}
-
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ include "common.release" . }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  storageClassName: {{ include "common.storageClass" . }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-es/templates/service.yaml b/kubernetes/sdc/charts/sdc-es/templates/service.yaml
deleted file mode 100644 (file)
index a49982c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# 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: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    - port: {{ .Values.service.internalPort2 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
-      name: {{ .Values.service.portName }}2
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    - port: {{ .Values.service.externalPort2 }}
-      targetPort: {{ .Values.service.internalPort2 }}
-      name: {{ .Values.service.portName }}2
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
diff --git a/kubernetes/sdc/charts/sdc-es/values.yaml b/kubernetes/sdc/charts/sdc-es/values.yaml
deleted file mode 100644 (file)
index adb0595..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# 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
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.2
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  ubuntuInitRepository: oomk8s
-  ubuntuInitImage: ubuntu-init:1.0.0
-
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-# application image
-repository: nexus3.onap.org:10001
-image: onap/sdc-elasticsearch:1.5.2
-elasticInitImage: onap/sdc-init-elasticsearch:1.5.2
-pullPolicy: Always
-
-# flag to enable debugging - application support required
-debugEnabled: false
-
-# application configuration
-config:
-  JvmHeapSize: "1024M"
-  JvmOptions: "-Xms512m -Xmx512m"
-
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 60
-  periodSeconds: 10
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
-
-readiness:
-  initialDelaySeconds: 60
-  periodSeconds: 10
-
-service:
-  type: ClusterIP
-  name: sdc-es
-  portName: sdc-es
-  externalPort: 9200
-  internalPort: 9200
-  externalPort2: 9300
-  internalPort2: 9300
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-
-  ## A manually managed Persistent Volume and Claim
-  ## Requires persistence.enabled: true
-  ## If defined, PVC must be created manually before volume will be bound
-  # existingClaim:
-  volumeReclaimPolicy: Retain
-
-  ## database data Persistent Volume Storage Class
-  ## If defined, storageClassName: <storageClass>
-  ## If set to "-", storageClassName: "", which disables dynamic provisioning
-  ## If undefined (the default) or set to null, no storageClassName spec is
-  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
-  ##   GKE, AWS & OpenStack)
-  ##
-  # storageClass: "-"
-  accessMode: ReadWriteOnce
-  size: 2Gi
-  mountPath: /dockerdata-nfs
-  mountSubPath: /sdc/sdc-es/ES
-
-ingress:
-  enabled: false
-
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      cpu: 1
-      memory: 4Gi
-    requests:
-      cpu: 10m
-      memory: 1Gi
-  large:
-    limits:
-      cpu: 2
-      memory: 8Gi
-    requests:
-      cpu: 20m
-      memory: 2Gi
-  unlimited: {}
-
index 4c2baaf..6f35f6b 100644 (file)
@@ -32,20 +32,6 @@ spec:
         release: {{ include "common.release" . }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - "sdc-kb"
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       - name: {{ include "common.name" . }}-job-completion
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
index c6f39f9..78f8b90 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-frontend:1.5.2
+image: onap/sdc-frontend:1.6.1
 pullPolicy: Always
 
 config:
diff --git a/kubernetes/sdc/charts/sdc-kb/.helmignore b/kubernetes/sdc/charts/sdc-kb/.helmignore
deleted file mode 100644 (file)
index ce90c2d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# Patterns to ignore when building packages.\r
-# This supports shell glob matching, relative path matching, and\r
-# negation (prefixed with !). Only one pattern per line.\r
-.DS_Store\r
-# Common VCS dirs\r
-.git/\r
-.gitignore\r
-.bzr/\r
-.bzrignore\r
-.hg/\r
-.hgignore\r
-.svn/\r
-# Common backup files\r
-*.swp\r
-*.bak\r
-*.tmp\r
-*~\r
-# Various IDEs\r
-.project\r
-.idea/\r
-*.tmproj\r
-\r
-\r
-#TODO:REMOVE\r
-sdc-kb.yaml
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-kb/Chart.yaml b/kubernetes/sdc/charts/sdc-kb/Chart.yaml
deleted file mode 100644 (file)
index d6f0b32..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-apiVersion: v1
-description: ONAP Service Design and Creation Kibana
-name: sdc-kb
-version: 5.0.0
diff --git a/kubernetes/sdc/charts/sdc-kb/templates/NOTES.txt b/kubernetes/sdc/charts/sdc-kb/templates/NOTES.txt
deleted file mode 100644 (file)
index 3a5553b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright Â© 2018 Amdocs, Bell Canada, AT&T, ZTE
-#
-# 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.
-
-1. Get the application URL by running these commands:
-{{- if .Values.ingress.enabled }}
-{{- range .Values.ingress.hosts }}
-  http://{{ . }}
-{{- end }}
-{{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
-  echo http://$NODE_IP:$NODE_PORT
-{{- else if contains "LoadBalancer" .Values.service.type }}
-     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
-           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
-  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
-  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
-{{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
-  echo "Visit http://127.0.0.1:8080 to use your application"
-  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
-{{- end }}
diff --git a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml
deleted file mode 100644 (file)
index 8911dbc..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# 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: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}
-        release: {{ include "common.release" . }}
-    spec:
-      initContainers:
-      - name: {{ include "common.name" . }}-job-completion
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ include "common.release" . }}-sdc-es-config-elasticsearch
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-      containers:
-        - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          {{ if eq .Values.liveness.enabled true }}
-          livenessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end }}
-          readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          resources:
-{{ include "common.resources" . | indent 12 }}
-          env:
-          - name: ENVNAME
-            value: {{ .Values.global.env.name }}
-          - name: NODE_OPTIONS
-            value: {{ .Values.config.nodeOptions }}
-          - name: HOST_IP
-            valueFrom:
-              fieldRef:
-                fieldPath: status.podIP
-          volumeMounts:
-          - name: {{ include "common.fullname" . }}-environments
-            mountPath: /root/chef-solo/environments/
-          - name: {{ include "common.fullname" . }}-localtime
-            mountPath: /etc/localtime
-            readOnly: true
-      volumes:
-      - name: {{ include "common.fullname" . }}-localtime
-        hostPath:
-          path: /etc/localtime
-      - name: {{ include "common.fullname" . }}-environments
-        configMap:
-          name: {{ include "common.release" . }}-sdc-environments-configmap
-          defaultMode: 0755
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/sdc/charts/sdc-kb/templates/service.yaml b/kubernetes/sdc/charts/sdc-kb/templates/service.yaml
deleted file mode 100644 (file)
index 2d1c27d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# 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: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ include "common.release" . }}
diff --git a/kubernetes/sdc/charts/sdc-kb/values.yaml b/kubernetes/sdc/charts/sdc-kb/values.yaml
deleted file mode 100644 (file)
index c2859e2..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T, ZTE
-#
-# 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
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.2
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-# application image
-repository: nexus3.onap.org:10001
-image: onap/sdc-kibana:1.5.2
-pullPolicy: Always
-
-config:
-  nodeOptions: "--max-old-space-size=200"
-
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: false
-
-readiness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-
-service:
-  type: ClusterIP
-  name: sdc-kb
-  portName: sdc-kb
-  externalPort: 5601
-  internalPort: 5601
-
-
-sdc-es:
-  service:
-    name: sdc-es
-
-ingress:
-  enabled: false
-
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      cpu: 1
-      memory: 4Gi
-    requests:
-      cpu: 10m
-      memory: 1Gi
-  large:
-    limits:
-      cpu: 2
-      memory: 8Gi
-    requests:
-      cpu: 20m
-      memory: 2Gi
-  unlimited: {}
index a7deeae..7e026f9 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-onboard-backend:1.5.2
-onboardingInitImage: onap/sdc-onboard-cassandra-init:1.5.2
+image: onap/sdc-onboard-backend:1.6.1
+onboardingInitImage: onap/sdc-onboard-cassandra-init:1.6.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 97caae2..cc9f38b 100644 (file)
@@ -56,7 +56,7 @@ spec:
         - name: CS_HOST
           value: "{{ .Values.global.cassandra.serviceName }}"
         - name: CS_PORT
-          value: "{{ .Values.config.cassandraThriftClientPort }}"
+          value: "{{ .Values.config.cassandraClientPort }}"
         - name: CS_AUTHENTICATE
           value: "{{ .Values.config.cassandraAuthenticationEnabled }}"
         - name: CS_USER
index 68f4876..3e5a83a 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-backend:1.6.0
-configInitImage: onap/workflow-init:1.6.0
+image: onap/workflow-backend:1.6.1
+configInitImage: onap/workflow-init:1.6.1
 pullPolicy: Always
 
 initJob:
@@ -38,7 +38,6 @@ initJob:
 config:
   javaOptions: "-Xmx1536m -Xms1536m"
   cassandraAuthenticationEnabled: true
-  cassandraThriftClientPort: 9160
   cassandraClientPort: 9042
 
   sdcProtocol: HTTPS
index fc30297..66eb22e 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-frontend:1.6.0
+image: onap/workflow-frontend:1.6.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index b642e85..67ee6f9 100755 (executable)
@@ -16,8 +16,6 @@
         "DCAE_FE_VIP": "sdc-dcae-fe.{{include "common.namespace" .}}",
         "DCAE_TOSCA_LAB_VIP": "sdc-dcae-tosca-lab.{{include "common.namespace" .}}",
         "FE_VIP": "sdc-fe.{{include "common.namespace" .}}",
-        "ES_VIP": "sdc-es.{{include "common.namespace" .}}",
-        "KB_VIP": "sdc-kb.{{include "common.namespace" .}}",
         "interfaces": {
             "application": "eth0",
             "private": "eth0"
             ],
             "BE": "sdc-be.{{include "common.namespace" .}}",
             "ONBOARDING_BE": "sdc-onboarding-be.{{include "common.namespace" .}}",
-            "FE": "sdc-fe.{{include "common.namespace" .}}",
-            "ES": [
-                "sdc-es.{{include "common.namespace" .}}"
-            ],
-            "KB": "sdc-kb.{{include "common.namespace" .}}"
+            "FE": "sdc-fe.{{include "common.namespace" .}}"
         },
         "VnfRepo": {
             "vnfRepoPort": "{{.Values.config.environment.vnfRepoPort}}",
             "https_port": "8445",
             "catalog_notification_url": "%s://%s:%s/sdc2/rest/v1/catalog/notif/vsp/"
         },
-        "elasticsearch": {
-            "cluster_name": "SDC-ES-",
-            "ES_path_home": "/usr/share/elasticsearch",
-            "ES_path_data": "/usr/share/elasticsearch/data",
-            "num_of_replicas": "0",
-            "num_of_shards": "1"
-        },
-
         "cassandra": {
             "cassandra_port": 9042,
             "concurrent_reads": "32",
             "socket_connect_timeout": "20000",
             "janusgraph_connection_timeout": "10000",
             "replication_factor": "{{.Values.global.cassandra.replicaCount}}"
-        }
+        },
+      "DMAAP": {
+         "consumer": {
+            "host": "dcae-mrtr.com:3905",
+            "topic": "operationalEnvironmentEvent",
+            "serviceName": "dcae-mrtr.com:3905/events",
+            "environment": "TEST",
+            "partner": "BOT_R",
+            "username": "user1@sdc.com",
+            "password": "password=="
+         },
+         "producer": {
+            "host": "olsd004.com:3905",
+            "topic": "SDC-FACADE-NOTIF-v1 ",
+            "serviceName": "dmaap.com:3905/events",
+            "environment": "TEST",
+            "username": "user1@sdc.com",
+            "password": "password=="
+         }
+      }
     }
 }
index 6abf911..3d35814 100644 (file)
@@ -47,10 +47,6 @@ config:
     workflowUrl: 10.0.2.15
     vnfRepoPort: 8702
 
-sdc-es:
-  service:
-    name: sdc-es
-
 #Used only if localCluster is enabled. Instantiates SDC's own cassandra cluster
 cassandra:
   nameOverride: sdc-cs
@@ -1,4 +1,4 @@
-# Copyright Â© 2018 Amdocs, AT&T, 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.
@@ -12,7 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-description: ONAP Postgres Server
-name: postgres-legacy
-version: 5.0.0
+{{ include "common.secret" . }}
index d90da63..bec4d1c 100644 (file)
@@ -46,7 +46,7 @@ secrets:
     passwordPolicy: required
   - uid: odl-creds
     type: basicAuth
-    externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
+    externalSecret: '{{ tpl (default "" .Values.config.odlCredsExternalSecret) . }}'
     login: '{{ .Values.config.odlUser }}'
     password: '{{ .Values.config.odlPassword }}'
     passwordPolicy: required
index b0b3c81..4ee7c6f 100644 (file)
@@ -46,7 +46,7 @@ secrets:
     passwordPolicy: required
   - uid: rest-creds
     type: basicAuth
-    externalSecret: '{{ .Values.config.restCredsExternalSecret }}'
+    externalSecret: '{{ tpl (default "" .Values.config.restCredsExternalSecret) . }}'
     login: '{{ .Values.config.restUser }}'
     password: '{{ .Values.config.restPassword }}'
     passwordPolicy: required
index 8560ca1..e845e96 100644 (file)
   },
   "svclogicPropertiesDb01": "{{.Values.config.configDir}}/svclogic.properties.sdnctldb01",
   "databases": [
-    "{{.Values.config.mariadbGalera.serviceName}}.{{.Release.Namespace}}|sdnc-sdnctldb01.{{.Release.Namespace}}"
+    "{{include "common.mariadbService" $}}|sdnc-sdnctldb01.{{.Release.Namespace}}"
   ],
   "dbFabricServer": "localhost",
   "dbFabricPort": "32275",
   "dbFabricGroupId": "hagroup1",
-  "dbFabricUser": "admin",
-  "dbFabricPassword": "admin",
-  "dbFabricDB": "mysql",
-  "dbUser": "sdnctl",
-  "dbPassword": "{{.Values.config.dbSdnctlPassword}}",
-  "dbName": "sdnctl",
+  "dbFabricUser": "${DB_FABRIC_USER}",
+  "dbFabricPassword": "${DB_FABRIC_PASSWORD",
+  "dbFabricDB": "{{.Values.config.dbFabricDB}}",
+  "dbUser": "${SDNC_DB_USER}",
+  "dbPassword": "${SDNC_DB_PASSWORD}",
+  "dbName": "{{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}",
   "odlProtocol": "http",
   "odlHost": "sdnc.{{.Release.Namespace}}",
   "odlConexusHost": "sdnc.{{.Release.Namespace}}",
   "odlPort": "8181",
   "odlConexusPort": "8181",
-  "odlUser": "admin",
-  "odlPasswd": "{{.Values.config.odlPassword}}",
+  "odlUser": "${ODL_USER}",
+  "odlPasswd": "${ODL_PASSWORD}",
   "ConexusNetwork_sslCert": "{{.Values.config.storesDir}}/org.onap.sdnc.p12",
-  "ConexusNetwork_sslKey": "{{.Values.config.keystorePwd}}",
+  "ConexusNetwork_sslKey": "${KEYSTORE_PASSWORD}",
   "AppNetwork_sslCert": "",
   "AppNetwork_sslKey": "",
   "hostnameList": [
index 7a5475e..beb514e 100644 (file)
@@ -1,7 +1,6 @@
 ###
 # ============LICENSE_START=======================================================
-# Copyright (C) 2018 ONAP Intellectual Property. All rights
-#                                              reserved.
+# Copyright (C) 2018 ONAP Intellectual Property. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 ###
 org.onap.ccsdk.sli.dbtype=jdbc
 org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
-org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.config.mariadbGalera.serviceName}}.{{.Release.Namespace}}:{{.Values.config.mariadbGalera.internalPort}}/sdnctl
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{include "common.mariadbService" $}}:{{include "common.mariadbPort" $}}/{{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}
 org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
-org.onap.ccsdk.sli.jdbc.database=sdnctl
-org.onap.ccsdk.sli.jdbc.user=sdnctl
-org.onap.ccsdk.sli.jdbc.password={{.Values.config.dbSdnctlPassword}}
+org.onap.ccsdk.sli.jdbc.database={{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}
+org.onap.ccsdk.sli.jdbc.user=${SDNC_DB_USER}
+org.onap.ccsdk.sli.jdbc.password=${SDNC_DB_PASSWORD}
 org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
 org.onap.ccsdk.sli.jdbc.connection.timeout=50
 org.onap.ccsdk.sli.jdbc.request.timeout=100
index cc13a9d..a2570cd 100644 (file)
@@ -1,5 +1,5 @@
 org.openecomp.sdnctl.sli.dbtype = jdbc
-org.openecomp.sdnctl.sli.jdbc.url = jdbc:mysql://sdnc-sdnctldb01:3306/sdnctl
-org.openecomp.sdnctl.sli.jdbc.database = sdnctl
-org.openecomp.sdnctl.sli.jdbc.user = sdnctl
-org.openecomp.sdnctl.sli.jdbc.password = {{.Values.config.dbSdnctlPassword}}
\ No newline at end of file
+org.openecomp.sdnctl.sli.jdbc.url = jdbc:mysql://sdnc-sdnctldb01:3306/{{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}
+org.openecomp.sdnctl.sli.jdbc.database = {{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}
+org.openecomp.sdnctl.sli.jdbc.user = ${SDNC_DB_USER}
+org.openecomp.sdnctl.sli.jdbc.password = ${SDNC_DB_PASSWORD}
index c75c603..267bc20 100644 (file)
@@ -1,5 +1,5 @@
 org.openecomp.sdnctl.sli.dbtype = jdbc
-org.openecomp.sdnctl.sli.jdbc.url = jdbc:mysql://sdnc-sdnctldb02:3306/sdnctl
-org.openecomp.sdnctl.sli.jdbc.database = sdnctl
-org.openecomp.sdnctl.sli.jdbc.user = sdnctl
-org.openecomp.sdnctl.sli.jdbc.password = {{.Values.config.dbSdnctlPassword}}
\ No newline at end of file
+org.openecomp.sdnctl.sli.jdbc.url = jdbc:mysql://sdnc-sdnctldb02:3306/{{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}
+org.openecomp.sdnctl.sli.jdbc.database = {{index $.Values "mariadb-galera" "config" "mysqlDatabase"}}
+org.openecomp.sdnctl.sli.jdbc.user = ${SDNC_DB_USER}
+org.openecomp.sdnctl.sli.jdbc.password = ${SDNC_DB_PASSWORD}
index db92b20..3a728ad 100644 (file)
@@ -31,11 +31,40 @@ spec:
         release: {{ include "common.release" . }}
     spec:
       initContainers:
+      - command:
+        - sh
+        args:
+        - -c
+        - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        env:
+        - name: SDNC_DB_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
+        - name: SDNC_DB_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
+        - name: DB_FABRIC_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "fabric-db-creds" "key" "login") | indent 10 }}
+        - name: DB_FABRIC_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "fabric-db-creds" "key" "password") | indent 10 }}
+        - name: ODL_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "odl-creds" "key" "login") | indent 10 }}
+        - name: ODL_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "odl-creds" "key" "password") | indent 10 }}
+        - name: KEYSTORE_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "keystore-password" "key" "password") | indent 10 }}
+        volumeMounts:
+        - mountPath: /config-input
+          name: config-input
+        - mountPath: /config
+          name: properties
+        image: "{{ .Values.global.envsubstImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-update-config
+
       - command:
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.config.mariadbGalera.chartName }}
+        - {{ include "common.mariadbService" . }}
         - --container-name
         - {{ .Values.config.sdncChartName }}
         env:
@@ -71,10 +100,7 @@ spec:
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
             - name: MYSQL_ROOT_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: db-root-password
+              {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-password" "key" "password") | indent 14 }}
             - name: SDNC_CONFIG_DIR
               value: "{{ .Values.config.configDir }}"
           volumeMounts:
@@ -110,9 +136,12 @@ spec:
         - name: localtime
           hostPath:
             path: /etc/localtime
-        - name: properties
+        - name: config-input
           configMap:
             name: {{ include "common.fullname" . }}
             defaultMode: 0644
+        - name: properties
+          emptyDir:
+            medium: Memory
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 239f734..dee311c 100644 (file)
@@ -1,13 +1,15 @@
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-type: Opaque
-data:
-  db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
+# Copyright Â© 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index 7ff000e..94ea5d7 100644 (file)
@@ -21,6 +21,52 @@ global:
   readinessImage: readiness-check:2.0.2
   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
+    localCluster: false
+    service: mariadb-galera
+    internalPort: 3306
+    nameOverride: mariadb-galera
+
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: db-root-password
+    type: password
+    externalSecret: '{{ .Values.global.mariadbGalera.localCluster | ternary (default (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" (index .Values "mariadb-galera" "nameOverride"))) (index .Values "mariadb-galera" "config" "mariadbRootPasswordExternalSecret")) (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) }}'
+    password: '{{ (index .Values "mariadb-galera" "config" "mariadbRootPassword" }}'
+    passwordPolicy: required
+  - uid: db-secret
+    name: &dbSecretName '{{ include "common.release" . }}-sdnc-portal-db-secret'
+    type: basicAuth
+    # This is a nasty trick that allows you override this secret using external one
+    # with the same field that is used to pass this to subchart
+    externalSecret: '{{ ternary "" (tpl (default "" (index .Values "mariadb-galera" "config" "userCredentialsExternalSecret")) .) (hasSuffix "sdnc-portal-db-secret" (index .Values "mariadb-galera" "config" "userCredentialsExternalSecret"))}}'
+    login: '{{ index .Values "mariadb-galera" "config" "userName" }}'
+    password: '{{ index .Values "mariadb-galera" "config" "userPassword" }}'
+    passwordPolicy: required
+  - uid: odl-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.odlCredsExternalSecret) . }}'
+    login: '{{ .Values.config.odlUser }}'
+    password: '{{ .Values.config.odlPassword }}'
+    passwordPolicy: required
+  - uid: fabric-db-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.odlCredsExternalSecret) . }}'
+    login: '{{ .Values.config.dbFabricUser }}'
+    password: '{{ .Values.config.dbFabricPassword }}'
+    passwordPolicy: required
+  - uid: keystore-password
+    type: password
+    externalSecret: '{{ tpl (default "" .Values.config.KeyStorePwdExternalSecret) . }}'
+    password: '{{ .Values.config.keystorePwd }}'
+    passwordPolicy: required
 
 #################################################################
 # Application configuration defaults.
@@ -29,17 +75,34 @@ global:
 repository: nexus3.onap.org:10001
 image: onap/admportal-sdnc-image:1.7.6
 config:
-  dbRootPassword: secretpassword
-  dbSdnctlPassword: gamma
+  dbFabricDB: mysql
+  dbFabricUser: admin
+  dbFabricPassword: admin
+  # dbFabricDBCredsExternalSecret: some secret
   sdncChartName: sdnc
   configDir: /opt/onap/sdnc/data/properties
   storesDir: /opt/onap/sdnc/data/stores
+  odlUser: admin
   odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+  # odlCredsExternalSecret: some secret
   keystorePwd: ff^G9D]yf&r}Ktum@BJ0YB?N
-  mariadbGalera:
-    chartName: mariadb-galera
-    serviceName: mariadb-galera
+  # keystorePwdExternalSecret: some secret
+
+mariadb-galera:
+  config:
+    userCredentialsExternalSecret: *dbSecretName
+    userName: sdnctl
+    userPassword: gamma
+    mysqlDatabase: sdnctl
+  nameOverride: sdnc-portal-galera
+  service:
+    name: sdnc-portal-galera
+    portName: sdnc-portal-galera
     internalPort: 3306
+  replicaCount: 1
+  persistence:
+    enabled: true
+    mountSubPath: sdnc-portal/maria/data
 
 # default number of instances
 replicaCount: 0
index 03fbf52..254d76a 100644 (file)
@@ -46,13 +46,13 @@ secrets:
     passwordPolicy: required
   - uid: odl-creds
     type: basicAuth
-    externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
+    externalSecret: '{{ tpl (default "" .Values.config.odlCredsExternalSecret) . }}'
     login: '{{ .Values.config.odlUser }}'
     password: '{{ .Values.config.odlPassword }}'
     passwordPolicy: required
   - uid: ueb-creds
     type: basicAuth
-    externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
+    externalSecret: '{{ tpl (default "" .Values.config.uebCredsExternalSecret) . }}'
     login: '{{ .Values.config.uebUser }}'
     password: '{{ .Values.config.uebPassword }}'
     passwordPolicy: required
index c3b757a..58db6ad 100644 (file)
@@ -29,5 +29,4 @@ dependencies:
   - name: mariadb-galera
     version: ~5.x-0
     repository: '@local'
-    condition: config.localDBCluster
-
+    condition: .global.mariadbGalera.localCluster
old mode 100644 (file)
new mode 100755 (executable)
index 455cb83..754ff2c
@@ -25,11 +25,11 @@ SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
 ETC_DIR=${ETC_DIR:-${SDNC_HOME}/data}
 BIN_DIR=${BIN_DIR-${SDNC_HOME}/bin}
 MYSQL_HOST=${MYSQL_HOST:-dbhost}
-MYSQL_PASSWORD=${MYSQL_PASSWORD:-openECOMP1.0}
+MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD}
 
-SDNC_DB_USER=${SDNC_DB_USER:-sdnctl}
-SDNC_DB_PASSWORD=${SDNC_DB_PASSWORD:-gamma}
-SDNC_DB_DATABASE=${SDN_DB_DATABASE:-sdnctl}
+SDNC_DB_USER=${SDNC_DB_USER}
+SDNC_DB_PASSWORD=${SDNC_DB_PASSWORD}
+SDNC_DB_DATABASE=${SDNC_DB_DATABASE}
 
 
 # Create tablespace and user account
@@ -46,12 +46,12 @@ END
 # load schema
 if [ -f ${ETC_DIR}/sdnctl.dump ]
 then
-  mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWORD} sdnctl < ${ETC_DIR}/sdnctl.dump
+  mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWORD} ${SDNC_DB_DATABASE} < ${ETC_DIR}/sdnctl.dump
 fi
 
 for datafile in ${ETC_DIR}/*.data.dump
 do
-  mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWORD} sdnctl < $datafile
+  mysql -h ${MYSQL_HOST} -u root -p${MYSQL_PASSWORD} ${SDNC_DB_DATABASE} < $datafile
 done
 
 # Create VNIs 100-199
index 5f5f811..af5c362 100755 (executable)
@@ -65,7 +65,7 @@ function enable_odl_cluster(){
   addToFeatureBoot odl-jolokia
   #${ODL_HOME}/bin/client feature:install odl-mdsal-clustering
   #${ODL_HOME}/bin/client feature:install odl-jolokia
-  
+
 
   echo "Update cluster information statically"
   hm=$(hostname)
@@ -113,8 +113,8 @@ function enable_odl_cluster(){
 # Install SDN-C platform components if not already installed and start container
 
 ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
-ODL_ADMIN_USERNAME=${ODL_ADMIN_USERNAME:-admin}
-ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
+ODL_ADMIN_USERNAME=${ODL_ADMIN_USERNAME}
+ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD}
 SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
 SDNC_BIN=${SDNC_BIN:-/opt/onap/sdnc/bin}
 CCSDK_HOME=${CCSDK_HOME:-/opt/onap/ccsdk}
@@ -166,4 +166,3 @@ nohup python ${SDNC_BIN}/installCerts.py &
 
 
 exec ${ODL_HOME}/bin/karaf server
-
index 035942b..5d4473c 100755 (executable)
@@ -2,8 +2,7 @@
 # ============LICENSE_START=======================================================
 # openECOMP : SDN-C
 # ================================================================================
-# Copyright (C) 2018 ONAP Intellectual Property. All rights
-#                                              reserved.
+# Copyright (C) 2018 ONAP Intellectual Property. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -30,8 +29,8 @@ org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/sdnc/data/stores/truststoreO
 org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=changeit
 org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true
 
-org.onap.ccsdk.sli.adaptors.aai.client.name=sdnc@sdnc.onap.org
-org.onap.ccsdk.sli.adaptors.aai.client.psswd=demo123456!
+org.onap.ccsdk.sli.adaptors.aai.client.name=${AAI_CLIENT_NAME}
+org.onap.ccsdk.sli.adaptors.aai.client.psswd=${AAI_CLIENT_PASSWORD}
 
 org.onap.ccsdk.sli.adaptors.aai.application=openECOMP
 #
index 3a6b5a0..224e84b 100644 (file)
@@ -24,12 +24,12 @@ org.onap.ccsdk.features.blueprints.adaptors.envtype=solo
 org.onap.ccsdk.features.blueprints.adaptors.modelservice.type=generic
 org.onap.ccsdk.features.blueprints.adaptors.modelservice.enable=true
 org.onap.ccsdk.features.blueprints.adaptors.modelservice.url=http://controller-blueprints:8080/api/v1/
-org.onap.ccsdk.features.blueprints.adaptors.modelservice.user=ccsdkapps
-org.onap.ccsdk.features.blueprints.adaptors.modelservice.passwd=ccsdkapps
+org.onap.ccsdk.features.blueprints.adaptors.modelservice.user=${MODELSERVICE_USER}
+org.onap.ccsdk.features.blueprints.adaptors.modelservice.passwd=${MODELSERVICE_PASSWORD}
 
 # Generic RESTCONF Adaptor
 org.onap.ccsdk.features.blueprints.adaptors.restconf.type=generic
 org.onap.ccsdk.features.blueprints.adaptors.restconf.enable=true
-org.onap.ccsdk.features.blueprints.adaptors.restconf.user=admin
-org.onap.ccsdk.features.blueprints.adaptors.restconf.passwd={{ .Values.config.odlPassword}}
+org.onap.ccsdk.features.blueprints.adaptors.restconf.user=${RESTCONF_USER}
+org.onap.ccsdk.features.blueprints.adaptors.restconf.passwd=${RESTCONF_PASSWORD}
 org.onap.ccsdk.features.blueprints.adaptors.restconf.url=http://sdnc:8282/restconf/
index 1849053..1fb6fb8 100644 (file)
@@ -1,7 +1,6 @@
 ###
 # ============LICENSE_START=======================================================
-# Copyright (C) 2018 AT&T Intellectual Property. All rights
-#                                              reserved.
+# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 ###
 org.onap.ccsdk.sli.dbtype=jdbc
 org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
-org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.config.mariadbGalera.serviceName}}.{{.Release.Namespace}}:{{.Values.config.mariadbGalera.internalPort}}/sdnctl
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{include "common.mariadbService" $}}:{{include "common.mariadbPort" $}}/{{$.Values.config.dbSdnctlDatabase}}
 org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
-org.onap.ccsdk.sli.jdbc.database=sdnctl
-org.onap.ccsdk.sli.jdbc.user=sdnctl
-org.onap.ccsdk.sli.jdbc.password={{.Values.config.dbSdnctlPassword}}
+org.onap.ccsdk.sli.jdbc.database={{$.Values.config.dbSdnctlDatabase}}
+org.onap.ccsdk.sli.jdbc.user=${SDNC_DB_USER}
+org.onap.ccsdk.sli.jdbc.password=${SDNC_DB_PASSWORD}
 org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
 org.onap.ccsdk.sli.jdbc.connection.timeout=50
 org.onap.ccsdk.sli.jdbc.request.timeout=100
index f91c62c..44ee0b9 100644 (file)
@@ -1,7 +1,7 @@
 #ANSIBLE
 ansible.agenturl=http://{{.Values.config.ansibleServiceName}}:{{.Values.config.ansiblePort}}/Dispatch
-ansible.user=sdnc
-ansible.password=sdnc
+ansible.user=${ANSIBLE_USER}
+ansible.password=${ANSIBLE_PASSWORD}
 ansible.lcm.localparameters=
 ansible.nodelist=
 ansible.timeout=60
@@ -23,10 +23,10 @@ restapi.templateDir=/opt/onap/sdnc/restapi/templates
 lcm.restconf.configscaleout.templatefile=lcm-restconf-configscaleout.json
 lcm.restconf.configscaleout.urlpath=/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances/vdns-instance/
 lcm.restconf.configscaleout.geturlpath=/restconf/operational/health-vnf-onap-plugin:health-vnf-onap-plugin-state/health-check
-lcm.restconf.configscaleout.user=admin
-lcm.restconf.configscaleout.password=admin
-lcm.restconf.user=admin
-lcm.restconf.password=admin
+lcm.restconf.configscaleout.user=${SCALEOUT_USER}
+lcm.restconf.configscaleout.password=${SCALEOUT_PASSWORD}
+lcm.restconf.user=${RESTCONF_USER}
+lcm.restconf.password=${RESTCONF_PASSWORD}
 lcm.restconf.port=8183
 
 #DMAAP
index 9cd3880..a768041 100755 (executable)
@@ -16,4 +16,4 @@
 
 # Configuration file for Netbox client
 org.onap.ccsdk.sli.adaptors.netbox.url=http://netbox-app.{{.Release.Namespace}}:8001
-org.onap.ccsdk.sli.adaptors.netbox.apikey=onceuponatimeiplayedwithnetbox20180814
\ No newline at end of file
+org.onap.ccsdk.sli.adaptors.netbox.apikey=${NETBOX_API_KEY}
\ No newline at end of file
index 55ef8e7..adbba66 100644 (file)
@@ -2,8 +2,7 @@
 # ============LICENSE_START=======================================================
 # openECOMP : SDN-C
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-#                                                       reserved.
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -20,8 +19,7 @@
 ###
 
 org.onap.ccsdk.sli.dbtype = jdbc
-org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://{{.Values.config.mariadbGalera.serviceName}}.{{.Release.Namespace}}:{{.Values.config.mariadbGalera.internalPort}}/sdnctl
-org.onap.ccsdk.sli.jdbc.database = sdnctl
-org.onap.ccsdk.sli.jdbc.user = sdnctl
-org.onap.ccsdk.sli.jdbc.password = {{.Values.config.dbSdnctlPassword}}
-
+org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://{{include "common.mariadbService" $}}:{{include "common.mariadbPort" $}}/{{$.Values.config.dbSdnctlDatabase}}
+org.onap.ccsdk.sli.jdbc.database = {{$.Values.config.dbSdnctlDatabase}}
+org.onap.ccsdk.sli.jdbc.user = ${SDNC_DB_USER}
+org.onap.ccsdk.sli.jdbc.password = ${SDNC_DB_PASSWORD}
index dc77006..0cd0eae 100755 (executable)
@@ -36,12 +36,53 @@ spec:
       name: {{ include "common.name" . }}
     spec:
       initContainers:
+      - command:
+        - sh
+        args:
+        - -c
+        - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        env:
+        - name: AAI_CLIENT_NAME
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aai-user-creds" "key" "login") | indent 10 }}
+        - name: AAI_CLIENT_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aai-user-creds" "key" "password") | indent 10 }}
+        - name: MODELSERVICE_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "modeling-user-creds" "key" "login") | indent 10 }}
+        - name: MODELSERVICE_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "modeling-user-creds" "key" "password") | indent 10 }}
+        - name: RESTCONF_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "restconf-creds" "key" "login") | indent 10 }}
+        - name: RESTCONF_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "restconf-creds" "key" "password") | indent 10 }}
+        - name: ANSIBLE_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "ansible-creds" "key" "login") | indent 10 }}
+        - name: ANSIBLE_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "ansible-creds" "key" "password") | indent 10 }}
+        - name: SCALEOUT_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "scaleout-creds" "key" "login") | indent 10 }}
+        - name: SCALEOUT_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "scaleout-creds" "key" "password") | indent 10 }}
+        - name: NETBOX_APIKEY
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "netbox-apikey" "key" "password") | indent 10 }}
+        - name: SDNC_DB_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
+        - name: SDNC_DB_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
+        volumeMounts:
+        - mountPath: /config-input
+          name: config-input
+        - mountPath: /config
+          name: properties
+        image: "{{ .Values.global.envsubstImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-update-config
+
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.config.mariadbGalera.chartName }}
+        - {{ include "common.mariadbService" . }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -55,31 +96,24 @@ spec:
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
-          - name: MYSQL_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}
-                key: db-root-password
+          - name: MYSQL_ROOT_PASSWORD
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-password" "key" "password") | indent 12 }}
+          - name: ODL_ADMIN_USERNAME
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
           - name: ODL_ADMIN_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}-odl
-                key: odl-password
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
+          - name: SDNC_DB_USER
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
           - name: SDNC_DB_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" . }}-sdnctl
-                key: db-sdnctl-password
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
           - name: MYSQL_HOST
-            value: "{{.Values.config.mariadbGalera.serviceName}}.{{.Release.Namespace}}"
+            value: {{ include "common.mariadbService" . }}
           - name: SDNC_HOME
             value: "{{.Values.config.sdncHome}}"
           - name: ETC_DIR
             value: "{{.Values.config.etcDir}}"
           - name: BIN_DIR
             value: "{{.Values.config.binDir}}"
-          - name: SDNC_DB_USER
-            value: "{{.Values.config.dbSdnctlUser}}"
           - name: SDNC_DB_DATABASE
             value: "{{.Values.config.dbSdnctlDatabase}}"
         volumeMounts:
@@ -119,11 +153,13 @@ spec:
         configMap:
           name: {{ include "common.fullname" . }}-bin
           defaultMode: 0755
-      - name: properties
+      - name: config-input
         configMap:
           name: {{ include "common.fullname" . }}-properties
           defaultMode: 0644
+      - name: properties
+        emptyDir:
+          medium: Memory
       restartPolicy: Never
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
-
diff --git a/kubernetes/sdnc/templates/secret-aaf.yaml b/kubernetes/sdnc/templates/secret-aaf.yaml
deleted file mode 100644 (file)
index cd2e539..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{{ if .Values.global.aafEnabled }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}-aaf
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-type: Opaque
-data:
- aaf-password: {{ .Values.aaf_init.deploy_pass | b64enc | quote }}
-{{ end }}
index e8cb336..dee311c 100644 (file)
@@ -1,41 +1,15 @@
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-type: Opaque
-data:
-  db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}-odl
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-type: Opaque
-data:
-  odl-password: {{ .Values.config.odlPassword | b64enc | quote }}
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.fullname" . }}-sdnctl
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
-type: Opaque
-data:
-  db-sdnctl-password: {{ .Values.config.dbSdnctlPassword | b64enc | quote }}
+# Copyright Â© 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index 1611449..6054546 100644 (file)
@@ -33,11 +33,52 @@ spec:
         release: {{ include "common.release" . }}
     spec:
       initContainers:
+      - command:
+        - sh
+        args:
+        - -c
+        - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        env:
+        - name: AAI_CLIENT_NAME
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aai-user-creds" "key" "login") | indent 10 }}
+        - name: AAI_CLIENT_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aai-user-creds" "key" "password") | indent 10 }}
+        - name: MODELSERVICE_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "modeling-user-creds" "key" "login") | indent 10 }}
+        - name: MODELSERVICE_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "modeling-user-creds" "key" "password") | indent 10 }}
+        - name: RESTCONF_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "restconf-creds" "key" "login") | indent 10 }}
+        - name: RESTCONF_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "restconf-creds" "key" "password") | indent 10 }}
+        - name: ANSIBLE_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "ansible-creds" "key" "login") | indent 10 }}
+        - name: ANSIBLE_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "ansible-creds" "key" "password") | indent 10 }}
+        - name: SCALEOUT_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "scaleout-creds" "key" "login") | indent 10 }}
+        - name: SCALEOUT_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "scaleout-creds" "key" "password") | indent 10 }}
+        - name: NETBOX_APIKEY
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "netbox-apikey" "key" "password") | indent 10 }}
+        - name: SDNC_DB_USER
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
+        - name: SDNC_DB_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
+        volumeMounts:
+        - mountPath: /config-input
+          name: config-input
+        - mountPath: /config
+          name: properties
+        image: "{{ .Values.global.envsubstImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-update-config
+
       - command:
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.config.mariadbGalera.chartName }}
+        - {{ include "common.mariadbService" . }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -89,12 +130,9 @@ spec:
           - name: aaf_locator_app_ns
             value: "{{ .Values.aaf_init.app_ns }}"
           - name: DEPLOY_FQI
-            value: "{{ .Values.aaf_init.deploy_fqi }}"
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aaf-creds" "key" "login") | indent 12 }}
           - name: DEPLOY_PASSWORD
-            valueFrom:
-              secretKeyRef:
-                name: {{ template "common.fullname" .}}-aaf
-                key: aaf-password
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "aaf-creds" "key" "password") | indent 12 }}
           - name: cadi_longitude
             value: "{{ .Values.aaf_init.cadi_longitude }}"
           - name: cadi_latitude
@@ -125,41 +163,36 @@ spec:
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
-            - name: MYSQL_ROOT_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: db-root-password
-            - name: ODL_ADMIN_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}-odl
-                  key: odl-password
-            - name: SDNC_DB_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}-sdnctl
-                  key: db-sdnctl-password
-            - name: SDNC_CONFIG_DIR
-              value: "{{ .Values.config.configDir }}"
-            - name: ENABLE_ODL_CLUSTER
-              value: "{{ .Values.config.enableClustering }}"
-            - name: MY_ODL_CLUSTER
-              value: "{{ .Values.config.myODLCluster }}"
-            - name: PEER_ODL_CLUSTER
-              value: "{{ .Values.config.peerODLCluster }}"
-            - name: IS_PRIMARY_CLUSTER
-              value: "{{ .Values.config.isPrimaryCluster }}"
-            - name: GEO_ENABLED
-              value: "{{ .Values.config.geoEnabled}}"
-            - name: SDNC_AAF_ENABLED
-              value: "{{ .Values.global.aafEnabled}}"
-            - name: SDNC_REPLICAS
-              value: "{{ .Values.replicaCount }}"
-            - name: MYSQL_HOST
-              value: "{{.Values.config.mariadbGalera.serviceName}}.{{.Release.Namespace}}"
-            - name: JAVA_HOME
-              value: "{{ .Values.config.javaHome}}"
+          - name: MYSQL_ROOT_PASSWORD
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-password" "key" "password") | indent 12 }}
+          - name: ODL_ADMIN_USERNAME
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
+          - name: ODL_ADMIN_PASSWORD
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
+          - name: SDNC_DB_USER
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
+          - name: SDNC_DB_PASSWORD
+            {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
+          - name: SDNC_CONFIG_DIR
+            value: "{{ .Values.config.configDir }}"
+          - name: ENABLE_ODL_CLUSTER
+            value: "{{ .Values.config.enableClustering }}"
+          - name: MY_ODL_CLUSTER
+            value: "{{ .Values.config.myODLCluster }}"
+          - name: PEER_ODL_CLUSTER
+            value: "{{ .Values.config.peerODLCluster }}"
+          - name: IS_PRIMARY_CLUSTER
+            value: "{{ .Values.config.isPrimaryCluster }}"
+          - name: GEO_ENABLED
+            value: "{{ .Values.config.geoEnabled}}"
+          - name: SDNC_AAF_ENABLED
+            value: "{{ .Values.global.aafEnabled}}"
+          - name: SDNC_REPLICAS
+            value: "{{ .Values.replicaCount }}"
+          - name: MYSQL_HOST
+            value: {{ include "common.mariadbService" . }}
+          - name: JAVA_HOME
+            value: "{{ .Values.config.javaHome}}"
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
@@ -252,10 +285,13 @@ spec:
           configMap:
             name: {{ include "common.fullname" . }}-bin
             defaultMode: 0755
-        - name: properties
+        - name: config-input
           configMap:
             name: {{ include "common.fullname" . }}-properties
             defaultMode: 0644
+        - name: properties
+          emptyDir:
+            medium: Memory
         - name: {{ include "common.fullname" . }}-certs
   {{ if .Values.certpersistence.enabled }}
           persistentVolumeClaim:
index 4447a7d..8fd7590 100644 (file)
@@ -26,6 +26,83 @@ global:
   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
+    localCluster: false
+    service: mariadb-galera
+    internalPort: 3306
+    nameOverride: mariadb-galera
+
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: db-root-password
+    name: '{{ include "common.release" . }}-sdnc-db-root-password'
+    type: password
+    externalSecret: '{{ .Values.global.mariadbGalera.localCluster | ternary (default (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" (index .Values "mariadb-galera" "nameOverride"))) (index .Values "mariadb-galera" "config" "mariadbRootPasswordExternalSecret")) (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) }}'
+    password: '{{ (index .Values "mariadb-galera" "config" "mariadbRootPassword" }}'
+  - uid: db-secret
+    name: &dbSecretName '{{ include "common.release" . }}-sdnc-db-secret'
+    type: basicAuth
+    # This is a nasty trick that allows you override this secret using external one
+    # with the same field that is used to pass this to subchart
+    externalSecret: '{{ ternary "" (tpl (default "" (index .Values "mariadb-galera" "config" "userCredentialsExternalSecret")) .) (hasSuffix "sdnc-db-secret" (index .Values "mariadb-galera" "config" "userCredentialsExternalSecret"))}}'
+    login: '{{ index .Values "mariadb-galera" "config" "userName" }}'
+    password: '{{ index .Values "mariadb-galera" "config" "userPassword" }}'
+  - uid: odl-creds
+    name: &odlCredsSecretName '{{ include "common.release" . }}-sdnc-odl-creds'
+    type: basicAuth
+    externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
+    login: '{{ .Values.config.odlUser }}'
+    password: '{{ .Values.config.odlPassword }}'
+    # For now this is left hardcoded but should be revisited in a future
+    passwordPolicy: required
+  - uid: aaf-creds
+    type: basicAuth
+    externalSecret: '{{ ternary (tpl (default "" .Values.aaf_init.aafDeployCredsExternalSecret) .) "aafIsDiabled" .Values.global.aafEnabled }}'
+    login: '{{ .Values.aaf_init.deploy_fqi }}'
+    password: '{{ .Values.aaf_init.deploy_pass }}'
+    passwordPolicy: required
+  - uid: netbox-apikey
+    type: password
+    externalSecret: '{{ .Values.config.netboxApikeyExternalSecret }}'
+    password: '{{ .Values.config.netboxApikey }}'
+    passwordPolicy: required
+  - uid: aai-user-creds
+    type: basicAuth
+    externalSecret: '{{ .Values.config.aaiCredsExternalSecret}}'
+    login: '{{ .Values.config.aaiUser }}'
+    password: '{{ .Values.config.aaiPassword }}'
+    passwordPolicy: required
+  - uid: modeling-user-creds
+    type: basicAuth
+    externalSecret: '{{ .Values.config.modelingCredsExternalSecret}}'
+    login: '{{ .Values.config.modelingUser }}'
+    password: '{{ .Values.config.modelingPassword }}'
+    passwordPolicy: required
+  - uid: restconf-creds
+    type: basicAuth
+    externalSecret: '{{ .Values.config.restconfCredsExternalSecret}}'
+    login: '{{ .Values.config.restconfUser }}'
+    password: '{{ .Values.config.restconfPassword }}'
+    passwordPolicy: required
+  - uid: ansible-creds
+    name: &ansibleSecretName '{{ include "common.release" . }}-sdnc-ansible-creds'
+    type: basicAuth
+    externalSecret: '{{ .Values.config.ansibleCredsExternalSecret}}'
+    login: '{{ .Values.config.ansibleUser }}'
+    password: '{{ .Values.config.ansiblePassword }}'
+    passwordPolicy: required
+  - uid: scaleout-creds
+    type: basicAuth
+    externalSecret: '{{ .Values.config.scaleoutCredsExternalSecret}}'
+    login: '{{ .Values.config.scaleoutUser }}'
+    password: '{{ .Values.config.scaleoutPassword }}'
+    passwordPolicy: required
 
 #################################################################
 # Application configuration defaults.
@@ -43,11 +120,27 @@ debugEnabled: false
 config:
   odlUid: 100
   odlGid: 101
+  odlUser: admin
   odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
-  dbRootPassword: secretpassword
-  dbSdnctlUser: sdnctl
-  dbSdnctlDatabase: sdnctl
-  dbSdnctlPassword: gamma
+  # odlCredsExternalSecret: some secret
+  netboxApikey: onceuponatimeiplayedwithnetbox20180814
+  # netboxApikeyExternalSecret: some secret
+  aaiUser: sdnc@sdnc.onap.org
+  aaiPassword: demo123456!
+  # aaiCredsExternalSecret: some secret
+  modelingUser: ccsdkapps
+  modelingPassword: ccsdkapps
+  # modelingCredsExternalSecret: some secret
+  restconfUser: admin
+  restconfPassword: admin
+  # restconfCredsExternalSecret: some secret
+  scaleoutUser: admin
+  scaleoutPassword: admin
+  # scaleoutExternalSecret: some secret
+  ansibleUser: sdnc
+  ansiblePassword: sdnc
+  # ansibleCredsExternalSecret: some secret
+  dbSdnctlDatabase: &sdncDbName sdnctl
   enableClustering: true
   sdncHome: /opt/onap/sdnc
   binDir: /opt/onap/sdnc/bin
@@ -91,17 +184,6 @@ config:
       parallelGCThreads : 3
       numberGGLogFiles: 10
 
-
-
-  #local Mariadb-galera cluster
-  localDBCluster: false
-
-  #Shared mariadb-galera details
-  mariadbGalera:
-    chartName: mariadb-galera
-    serviceName: mariadb-galera
-    internalPort: 3306
-
 # dependency / sub-chart configuration
 aaf_init:
   agentImage: onap/aaf/aaf_agent:2.1.15
@@ -114,63 +196,82 @@ aaf_init:
   cadi_latitude: "38.0"
   cadi_longitude: "-72.0"
 
+mariadb-galera: &mariadbGalera
+  nameOverride: sdnc-db
+  config:
+    rootPasswordExternalSecret: '{{ ternary (include "common.release" .)-sdnc-db-root-password "" .Values.global.mariadbGalera.localCluster }}'
+    userName: sdnctl
+    userCredentialsExternalSecret: *dbSecretName
+  service:
+    name: sdnc-dbhost
+    internalPort: 3306
+  sdnctlPrefix: sdnc
+  persistence:
+    mountSubPath: sdnc/mariadb-galera
+    enabled: true
+  replicaCount: 1
+
 cds:
   enabled: false
 
 dmaap-listener:
   nameOverride: sdnc-dmaap-listener
+  mariadb-galera:
+    << : *mariadbGalera
+    config:
+      mysqlDatabase: *sdncDbName
   config:
     sdncChartName: sdnc
-    mysqlChartName: mariadb-galera
     dmaapPort: 3904
     sdncPort: 8282
     configDir: /opt/onap/sdnc/data/properties
-    odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+    odlCredsExternalSecret: *odlCredsSecretName
 
 ueb-listener:
+  mariadb-galera:
+    << : *mariadbGalera
+    config:
+      mysqlDatabase: *sdncDbName
   nameOverride: sdnc-ueb-listener
   config:
     sdncPort: 8282
     sdncChartName: sdnc
-    mysqlChartName: mariadb-galera
     configDir: /opt/onap/sdnc/data/properties
-    odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+    odlCredsExternalSecret: *odlCredsSecretName
 
 sdnc-portal:
+  mariadb-galera:
+    << : *mariadbGalera
+    config:
+      mysqlDatabase: *sdncDbName
   config:
     sdncChartName: sdnc
-    mysqlChartName: mariadb-galera
     configDir: /opt/onap/sdnc/data/properties
-    dbRootPassword: secretpassword
-    dbSdnctlPassword: gamma
-    odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+    odlCredsExternalSecret: *odlCredsSecretName
 
 sdnc-ansible-server:
+  config:
+    restCredsExternalSecret: *ansibleSecretName
+  mariadb-galera:
+    << : *mariadbGalera
+    config:
+      mysqlDatabase: ansible
   service:
     name: sdnc-ansible-server
     internalPort: 8000
-  config:
-    mysqlServiceName: mariadb-galera
-
-mariadb-galera:
-  nameOverride: sdnc-db
-  service:
-    name: sdnc-dbhost
-    internalPort: 3306
-  sdnctlPrefix: sdnc
-  persistence:
-    mountSubPath: sdnc/mariadb-galera
-    enabled: true
-  replicaCount: 1
 
 dgbuilder:
   nameOverride: sdnc-dgbuilder
   config:
+    db:
+      dbName: *sdncDbName
+      rootPasswordExternalSecret: '{{ ternary (printf "%s-sdnc-db-root-password" (include "common.release" .)) (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" "mariadb-galera")) .Values.global.mariadbGalera.localCluster }}'
+      userCredentialsExternalSecret: *dbSecretName
     dbPodName: mariadb-galera
     dbServiceName: mariadb-galera
-    dbRootPassword: secretpassword
-    dbSdnctlPassword: gamma
+    # This should be revisited and changed to plain text
     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
+  mariadb-galera:
   service:
     name: sdnc-dgbuilder
     nodePort: "03"
index a714ba9..02947c6 100755 (executable)
@@ -289,6 +289,15 @@ sdnc:
   si:
     svc:
       types: PORT-MIRROR,PPROBE
+  dmaap:
+    host: http://message-router.{{ include "common.namespace" . }}:3904
+    timeout: 30000
+  lcm:
+    path: '/restconf/operations/LCM:'
+    actionTimeout: 300000
+    dmapp:
+      readTopic: SDNC-LCM-WRITE
+      writeTopic: SDNC-LCM-READ
 appc:
   client:
     topic:
index b572052..a2e2754 100755 (executable)
@@ -38,3 +38,12 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
+
index 91e9be6..40b1987 100755 (executable)
@@ -66,26 +66,14 @@ spec:
               name: {{ include "common.release" . }}-so-db-secrets
               key: mariadb.readwrite.port
         - name: DB_USERNAME
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.readwrite.rolename
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-user-creds" "key" "login") | indent 10 }}
         - name: DB_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.readwrite.password
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-user-creds" "key" "password") | indent 10 }}
         - name: DB_ADMIN_USERNAME
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.admin.rolename
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-admin-creds" "key" "login") | indent 10 }}
         - name: DB_ADMIN_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.admin.password
-         {{- if eq .Values.global.security.aaf.enabled true }}
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-admin-creds" "key" "password") | indent 10 }}
+        {{- if eq .Values.global.security.aaf.enabled true }}
         - name: TRUSTSTORE
           value: /app/org.onap.so.trust.jks
         - name: TRUSTSTORE_PASSWORD
@@ -111,16 +99,42 @@ spec:
         - name: config
           mountPath: /app/config
           readOnly: true
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
 {{ include "helpers.livenessProbe" .| indent 8 }}
         ports:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      # Filebeat sidecar container
+      - name: {{ include "common.name" . }}-filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          mountPath: /usr/share/filebeat/data
+        - name: logs
+          mountPath: /var/log/onap/so
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
       volumes:
       - name: logs
         emptyDir: {}
       - name: config
         configMap:
             name: {{ include "common.fullname" . }}-app-configmap
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-so-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
       imagePullSecrets:
         - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/so/charts/so-bpmn-infra/templates/secret.yaml b/kubernetes/so/charts/so-bpmn-infra/templates/secret.yaml
new file mode 100644 (file)
index 0000000..dee311c
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright Â© 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index a7925b7..357a8fd 100755 (executable)
@@ -23,6 +23,26 @@ global:
   persistence:
     mountPath: /dockerdata-nfs
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: db-user-creds
+    name: '{{ include "common.release" . }}-so-bpmn-infra-db-user-creds'
+    type: basicAuth
+    externalSecret: '{{ .Values.db.userCredsExternalSecret }}'
+    login: '{{ .Values.db.userName }}'
+    password: '{{ .Values.db.userPassword }}'
+    passwordPolicy: required
+  - uid: db-admin-creds
+    name: '{{ include "common.release" . }}-so-bpmn-infra-db-admin-creds'
+    type: basicAuth
+    externalSecret: '{{ .Values.db.adminCredsExternalSecret }}'
+    login: '{{ .Values.db.adminName }}'
+    password: '{{ .Values.db.adminPassword }}'
+    passwordPolicy: required
+
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -30,6 +50,13 @@ repository: nexus3.onap.org:10001
 image: onap/so/bpmn-infra:1.5.3
 pullPolicy: Always
 
+db:
+  userName: so_user
+  userPassword: so_User123
+  # userCredsExternalSecret: some secret
+  adminName: so_admin
+  adminPassword: so_Admin123
+  # adminCredsExternalSecret: some secret
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8081
index 91e9be6..63a10b0 100755 (executable)
@@ -66,25 +66,13 @@ spec:
               name: {{ include "common.release" . }}-so-db-secrets
               key: mariadb.readwrite.port
         - name: DB_USERNAME
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.readwrite.rolename
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-user-creds" "key" "login") | indent 10 }}
         - name: DB_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.readwrite.password
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-user-creds" "key" "password") | indent 10 }}
         - name: DB_ADMIN_USERNAME
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.admin.rolename
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-admin-creds" "key" "login") | indent 10 }}
         - name: DB_ADMIN_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "common.release" . }}-so-db-secrets
-              key: mariadb.admin.password
+          {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-admin-creds" "key" "password") | indent 10 }}
          {{- if eq .Values.global.security.aaf.enabled true }}
         - name: TRUSTSTORE
           value: /app/org.onap.so.trust.jks
diff --git a/kubernetes/so/charts/so-catalog-db-adapter/templates/secret.yaml b/kubernetes/so/charts/so-catalog-db-adapter/templates/secret.yaml
new file mode 100644 (file)
index 0000000..dee311c
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright Â© 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index c4e2316..889f2e8 100755 (executable)
@@ -23,6 +23,25 @@ global:
   persistence:
     mountPath: /dockerdata-nfs
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: db-user-creds
+    name: '{{ include "common.release" . }}-so-catalog-db-adapter-db-user-creds'
+    type: basicAuth
+    externalSecret: '{{ .Values.db.userCredsExternalSecret }}'
+    login: '{{ .Values.db.userName }}'
+    password: '{{ .Values.db.userPassword }}'
+    passwordPolicy: required
+  - uid: db-admin-creds
+    name: '{{ include "common.release" . }}-so-catalog-db-adapter-db-admin-creds'
+    type: basicAuth
+    externalSecret: '{{ .Values.db.adminCredsExternalSecret }}'
+    login: '{{ .Values.db.adminName }}'
+    password: '{{ .Values.db.adminPassword }}'
+    passwordPolicy: required
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -30,6 +49,14 @@ repository: nexus3.onap.org:10001
 image: onap/so/catalog-db-adapter:1.5.3
 pullPolicy: Always
 
+db:
+  userName: so_user
+  userPassword: so_User123
+  # userCredsExternalSecret: some secret
+  adminName: so_admin
+  adminPassword: so_Admin123
+  # adminCredsExternalSecret: some secret
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8082
index 4710fea..ffebc4c 100755 (executable)
@@ -99,7 +99,8 @@ mso:
   auth: {{ include "helpers.profileProperty" (dict "condition" .Values.global.security.aaf.enabled "value1" .Values.aaf.auth.encrypted "value2" .Values.mso.auth )}}
   logPath: ./logs/openstack
   msb-ip: msb-iag.{{ include "common.namespace" . }}
-  msb-port: 80
+  msb-port: 443
+  msb-scheme: https
   workflow:
     endpoint: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/sobpmnengine
   msoKey: {{ .Values.mso.msoKey }}
index b572052..2154479 100755 (executable)
@@ -38,3 +38,11 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
\ No newline at end of file
index 91e9be6..c0ac078 100755 (executable)
@@ -111,16 +111,42 @@ spec:
         - name: config
           mountPath: /app/config
           readOnly: true
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
 {{ include "helpers.livenessProbe" .| indent 8 }}
         ports:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      # Filebeat sidecar container
+      - name: {{ include "common.name" . }}-filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          mountPath: /usr/share/filebeat/data
+        - name: logs
+          mountPath: /var/log/onap/so
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
       volumes:
       - name: logs
         emptyDir: {}
       - name: config
         configMap:
             name: {{ include "common.fullname" . }}-app-configmap
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-so-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
       imagePullSecrets:
         - name: "{{ include "common.namespace" . }}-docker-registry-key"
index b572052..104daae 100755 (executable)
@@ -38,3 +38,11 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
index 91e9be6..c0ac078 100755 (executable)
@@ -111,16 +111,42 @@ spec:
         - name: config
           mountPath: /app/config
           readOnly: true
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
 {{ include "helpers.livenessProbe" .| indent 8 }}
         ports:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      # Filebeat sidecar container
+      - name: {{ include "common.name" . }}-filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          mountPath: /usr/share/filebeat/data
+        - name: logs
+          mountPath: /var/log/onap/so
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
       volumes:
       - name: logs
         emptyDir: {}
       - name: config
         configMap:
             name: {{ include "common.fullname" . }}-app-configmap
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-so-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
       imagePullSecrets:
         - name: "{{ include "common.namespace" . }}-docker-registry-key"
index a20d217..6235bd2 100755 (executable)
@@ -151,6 +151,7 @@ org:
                     sdncurl7: 'http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/L3UCPE-API:'
                     sdncurl8: 'http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/NBNC-API:'
                     sdncurl9: 'http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/NORTHBOUND-API:service-topology-operation'
+                    sdncurl20: 'http://sdnc.{{ include "common.namespace" . }}:8282/restconf/operations/LCM:'
                     service:
                         infra:
                             service-topology-infra-activate-operation: POST|90000|sdncurl9|sdnc-request-header|com:att:sdnctl:northbound-api:v1
@@ -160,6 +161,12 @@ org:
                     vfmodule:
                         '':
                             query: GET|60000|sdncurl12|
+                    lcm:
+                      download-n-e-sw: POST|1800000|sdncurl20|common-header|org:onap:ccsdk:sli:northbound:lcm
+                      activate-n-e-sw: POST|300000|sdncurl20|common-header|org:onap:ccsdk:sli:northbound:lcm
+                      upgrade-pre-check: POST|180000|sdncurl20|common-header|org:onap:ccsdk:sli:northbound:lcm
+                      upgrade-post-check: POST|180000|sdncurl20|common-header|org:onap:ccsdk:sli:northbound:lcm
+                      default: POST|180000|sdncurl20|common-header|org:onap:ccsdk:sli:northbound:lcm
                 network:
                     encryptionKey: {{ index .Values.org.onap.so.adapters.sdnc.network.encryptionKey }}
 spring:
index b572052..104daae 100755 (executable)
@@ -38,3 +38,11 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
index 5c7f3ab..3b3d189 100755 (executable)
@@ -96,16 +96,42 @@ spec:
         - name: config
           mountPath: /app/config
           readOnly: true
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
 {{ include "helpers.livenessProbe" .| indent 8 }}
         ports:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      # Filebeat sidecar container
+      - name: {{ include "common.name" . }}-filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          mountPath: /usr/share/filebeat/data
+        - name: logs
+          mountPath: /var/log/onap/so
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
       volumes:
       - name: logs
         emptyDir: {}
       - name: config
         configMap:
             name: {{ include "common.fullname" . }}-app-configmap
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-so-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
       imagePullSecrets:
         - name: "{{ include "common.namespace" . }}-docker-registry-key"
old mode 100644 (file)
new mode 100755 (executable)
similarity index 85%
rename from kubernetes/common/postgres-legacy/charts/pgpool/Chart.yaml
rename to kubernetes/so/charts/so-ve-vnfm-adapter/Chart.yaml
index e281813..9ea7a7e
@@ -1,4 +1,4 @@
-# Copyright Â© 2018 Amdocs, AT&T, Bell Canada
+# Copyright Â© 2020 Samsung
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: ONAP Postgres Server
-name: pgpool
+description: ONAP SO VE VNFM Adapter (SOL002)
+name: so-ve-vnfm-adapter
 version: 5.0.0
diff --git a/kubernetes/so/charts/so-ve-vnfm-adapter/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-ve-vnfm-adapter/resources/config/overrides/override.yaml
new file mode 100755 (executable)
index 0000000..88d805d
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright Â© 2020 Samsung# Copyright Â© 2020 Samsung
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+server:
+  port: {{ (index .Values.service.ports 0).port }}
+
+vevnfmadapter:
+  endpoint: https://msb-iag:30283/api/{{ include "common.servicename" . }}/v1
+
+aai:
+  endpoint: https://aai.{{ include "common.namespace" . }}:8443
+
+dmaap:
+  endpoint: http://message-router.{{ include "common.namespace" . }}:3904
@@ -1,4 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
+# Copyright Â© 2020 Samsung
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ include "common.fullname" . }}-pgpool-configmap
+  name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ include "common.release" . }}
-    heritage: {{ .Release.Service }}
+  labels: {{- include "common.labels" . | nindent 4 }}
 data:
-{{ tpl (.Files.Glob "configs/*").AsConfig . | indent 2 }}
+  APP: {{ include "common.name" . }}
+---
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-app-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels: {{- include "common.labels" . | nindent 4 }}
+data: {{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | nindent 2 }}
diff --git a/kubernetes/so/charts/so-ve-vnfm-adapter/templates/deployment.yaml b/kubernetes/so/charts/so-ve-vnfm-adapter/templates/deployment.yaml
new file mode 100755 (executable)
index 0000000..03b3441
--- /dev/null
@@ -0,0 +1,69 @@
+# Copyright Â© 2020 Samsung
+#
+# 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 }}
+  template:
+    metadata:
+      labels: {{- include "common.labels" . | nindent 8 }}
+    spec:
+      initContainers:
+        - name: {{ include "common.name" . }}-readiness
+          command:
+            - /root/ready.py
+          args:
+            - --container-name
+            - aai
+            - --container-name
+            - message-router
+          env:
+            - name: NAMESPACE
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: metadata.namespace
+          image: {{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+      containers:
+        - name: {{ include "common.name" . }}
+          envFrom:
+            - configMapRef:
+                name: {{ include "common.fullname" . }}-configmap
+          image: {{ include "common.repository" . }}/{{ .Values.image }}
+          resources: {{ include "common.resources" . | nindent 12 }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+            - name: logs
+              mountPath: /app/logs
+            - name: config
+              mountPath: /app/config
+              readOnly: true
+          livenessProbe:
+            tcpSocket:
+              port: {{ index .Values.livenessProbe.port }}
+            initialDelaySeconds: {{ index .Values.livenessProbe.initialDelaySeconds}}
+            periodSeconds: {{ index .Values.livenessProbe.periodSeconds}}
+            successThreshold: {{ index .Values.livenessProbe.successThreshold}}
+            failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+          ports: {{- include "common.containerPorts" . | nindent 10 }}
+      volumes:
+        - name: logs
+          emptyDir: {}
+        - name: config
+          configMap:
+            name: {{ include "common.fullname" . }}-app-configmap
diff --git a/kubernetes/so/charts/so-ve-vnfm-adapter/templates/service.yaml b/kubernetes/so/charts/so-ve-vnfm-adapter/templates/service.yaml
new file mode 100755 (executable)
index 0000000..f3ef113
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright Â© 2020 Samsung
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.service" . }}
diff --git a/kubernetes/so/charts/so-ve-vnfm-adapter/values.yaml b/kubernetes/so/charts/so-ve-vnfm-adapter/values.yaml
new file mode 100755 (executable)
index 0000000..5310600
--- /dev/null
@@ -0,0 +1,68 @@
+# Copyright Â© 2020 Samsung
+#
+# 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:
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.2
+  persistence:
+    mountPath: /dockerdata-nfs
+image: onap/so/ve-vnfm-adapter:1.6.0
+pullPolicy: Always
+replicaCount: 1
+service:
+  name: ve-vnfm-adapter
+  type: ClusterIP
+  annotations:
+    msb.onap.org/service-info: |
+      {{ if not .Values.global.msbDisabled -}}[
+        {
+          "serviceName": "{{ include "common.servicename" . }}",
+          "version": "v1",
+          "url": "/",
+          "protocol": "REST",
+          "port": "{{ (index .Values.service.ports 0).port }}",
+          "visualRange": "1"
+        }
+      ]{{ end }}
+  ports:
+    - name: http
+      port: 9098
+flavor: small
+resources:
+  small:
+    limits:
+      memory: 512Mi
+      cpu: 500m
+    requests:
+      memory: 256Mi
+      cpu: 250m
+  large:
+    limits:
+      memory: 8Gi
+      cpu: 4000m
+    requests:
+      memory: 2Gi
+      cpu: 1000m
+  unlimited: {}
+livenessProbe:
+  port: 9098
+  initialDelaySeconds: 600
+  periodSeconds: 60
+  timeoutSeconds: 10
+  successThreshold: 1
+  failureThreshold: 3
+nodeSelector: {}
+tolerations: []
+affinity: {}
index b572052..6aa4b5f 100755 (executable)
@@ -38,3 +38,19 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/filebeat.yml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-so-filebeat-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/filebeat.yml").AsConfig . | indent 2 }}
index 91e9be6..c0ac078 100755 (executable)
@@ -111,16 +111,42 @@ spec:
         - name: config
           mountPath: /app/config
           readOnly: true
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
 {{ include "helpers.livenessProbe" .| indent 8 }}
         ports:
         - containerPort: {{ index .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
+      # Filebeat sidecar container
+      - name: {{ include "common.name" . }}-filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          mountPath: /usr/share/filebeat/data
+        - name: logs
+          mountPath: /var/log/onap/so
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /var/log/onap
       volumes:
       - name: logs
         emptyDir: {}
       - name: config
         configMap:
             name: {{ include "common.fullname" . }}-app-configmap
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-so-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
       imagePullSecrets:
         - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 5a06253..a792ff9 100755 (executable)
@@ -20,6 +20,8 @@ global:
   repository: nexus3.onap.org:10001
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.2
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
   mariadbGalera:
     nameOverride: mariadb-galera
     serviceName: mariadb-galera
@@ -119,6 +121,12 @@ livenessProbe:
 nodeSelector: {}
 affinity: {}
 
+# application configuration
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
+
 #Used only if localCluster is enabled. Instantiates SO's own cassandra cluster
 #helm deploy demo local/onap --namespace onap --verbose --set so.enabled=true \
 #                                                       --set so.global.mariadbGalera.localCluster=true \
index 353fb30..9c799cf 100644 (file)
@@ -30,7 +30,8 @@ metadata:
           "url": "/api/usecaseui-server/v1",
           "protocol": "REST",
           "port": "{{.Values.service.internalPort}}",
-          "visualRange":"1"
+          "visualRange":"1",
+          "enable_ssl": true
       }
       ]'
 spec:
index e7856d3..2035c63 100644 (file)
@@ -30,7 +30,7 @@ pullPolicy: Always
 
 # application configuration
 
-msbaddr: msb-iag.{{include "common.namespace" .}}:80
+msbaddr: msb-iag.{{include "common.namespace" .}}:443
 mraddr: message-router.{{include "common.namespace" .}}:3904
 
 # flag to enable debugging - application support required
@@ -84,16 +84,16 @@ ingress:
 resources:
   small:
     limits:
-      cpu: 250m
-      memory: 250Mi
+      cpu: 1.5
+      memory: 350Mi
     requests:
-      cpu: 250m
-      memory: 250Mi
+      cpu: 1
+      memory: 245Mi
   large:
     limits:
-      cpu: 500m
+      cpu: 2
       memory: 500Mi
     requests:
-      cpu: 500m
+      cpu: 1
       memory: 500Mi
   unlimited: {}
index 8e5d097..b5246d1 100644 (file)
@@ -37,7 +37,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - vfc-mariadb
+        - {{ .Values.config.mariadbService }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -49,6 +49,11 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
+          command:
+            - sh
+          args:
+            - -c
+            - 'MYSQL_AUTH=root:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
@@ -75,9 +80,11 @@ spec:
             - name: MSB_ADDR
               value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
             - name: MYSQL_ADDR
-              value: "{{ .Values.global.config.dbServiceName }}:{{ .Values.global.config.dbPort }}"
-            - name: MYSQL_AUTH
-              value: "{{ .Values.global.config.dbUser }}:{{ .Values.global.config.mariadbRootPassword }}"
+              value: "{{ .Values.config.mariadbService }}:{{ .Values.config.mariadbPort }}"
+            - name: MYSQL_ROOT_USER
+              value: "{{ .Values.global.config.mariadb_admin }}"
+            - name: MYSQL_ROOT_PASSWORD
+              {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
             - name: REDIS_ADDR
               value: "{{ .Values.global.config.redisServiceName }}:{{ .Values.global.config.redisPort }}"
           volumeMounts:
diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/secrets.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..d053c48
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index 1a8808b..3411c44 100644 (file)
@@ -22,6 +22,16 @@ global:
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: "db-root-pass"
+    externalSecret: '{{ tpl (default "" .Values.config.mariadbRootPasswordExternalSecret) . }}'
+    type: password
+    password: '{{ .Values.config.mariadbRootPassword }}'
+    policy: required
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -29,7 +39,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/catalog:1.3.4
+image: onap/vfc/catalog:1.3.8
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -39,7 +49,11 @@ istioSidecar: true
 debugEnabled: false
 
 # application configuration
-config: {}
+config:
+  mariadbService: vfc-mariadb
+  mariadbPort: 3306
+  # mariadbRootPassword: secretpassword
+  # mariadbRootPasswordExternalSecret: some secret
 
 # default number of instances
 replicaCount: 1
@@ -108,4 +122,4 @@ resources:
     requests:
       cpu: 200m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index d4c71b6..999a33a 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/emsdriver:1.3.0
+image: onap/vfc/emsdriver:1.3.1
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 96bae84..d7108a8 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/gvnfmdriver:1.3.5
+image: onap/vfc/gvnfmdriver:1.3.8
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 70125e9..8b27d45 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/nfvo/svnfm/huawei:1.3.0
+image: onap/vfc/nfvo/svnfm/huawei:1.3.6
 pullPolicy: Always
 
 #Istio sidecar injection policy
index f68f0fc..1bcdf57 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/jujudriver:1.3.1
+image: onap/vfc/jujudriver:1.3.8
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 211ff72..464afe2 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/multivimproxy:1.3.0
+image: onap/vfc/multivimproxy:1.3.1
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 74f5b67..e24c3bd 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/nfvo/svnfm/nokiav2:1.3.0
+image: onap/vfc/nfvo/svnfm/nokiav2:1.3.6
 pullPolicy: Always
 
 #Istio sidecar injection policy
index fc6c736..395eedc 100644 (file)
@@ -37,7 +37,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - vfc-mariadb
+        - {{ .Values.config.mariadbService }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -49,6 +49,11 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
+          command:
+            - sh
+          args:
+            - -c
+            - 'MYSQL_AUTH=${MYSQL_ROOT_USER}:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
@@ -75,9 +80,11 @@ spec:
             - name: MSB_ADDR
               value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
             - name: MYSQL_ADDR
-              value: "{{ .Values.global.config.dbServiceName }}:{{ .Values.global.config.dbPort }}"
-            - name: MYSQL_AUTH
-              value: "{{ .Values.global.config.dbUser }}:{{ .Values.global.config.mariadbRootPassword }}"
+              value: "{{ .Values.config.mariadbService }}:{{ .Values.config.mariadbPort }}"
+            - name: MYSQL_ROOT_USER
+              value: "{{ .Values.global.config.mariadb_admin }}"
+            - name: MYSQL_ROOT_PASSWORD
+              {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
             - name: REDIS_ADDR
               value: "{{ .Values.global.config.redisServiceName }}:{{ .Values.global.config.redisPort }}"
             - name: REG_TO_MSB_WHEN_START
diff --git a/kubernetes/vfc/charts/vfc-nslcm/templates/secrets.yaml b/kubernetes/vfc/charts/vfc-nslcm/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..d053c48
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index a3d0303..30bcc7b 100644 (file)
@@ -22,6 +22,16 @@ global:
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: "db-root-pass"
+    externalSecret: '{{ tpl (default "" .Values.config.mariadbRootPasswordExternalSecret) . }}'
+    type: password
+    password: '{{ .Values.config.mariadbRootPassword }}'
+    policy: required
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -29,7 +39,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/nslcm:1.3.4
+image: onap/vfc/nslcm:1.3.7
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -39,7 +49,12 @@ istioSidecar: true
 debugEnabled: false
 
 # application configuration
-config: {}
+config:
+  mariadbService: vfc-mariadb
+  mariadbPort: 3306
+  # mariadbRootPassword: secretpassword
+  # mariadbRootPasswordExternalSecret: some secret
+
 
 # default number of instances
 replicaCount: 1
@@ -88,4 +103,4 @@ resources:
     requests:
       cpu: 200m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index cb018b4..30e2b2c 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/db:1.3.1
+image: onap/vfc/db:1.3.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 71cf4cc..f494b85 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/resmanagement:1.3.0
+image: onap/vfc/resmanagement:1.3.1
 pullPolicy: Always
 
 #Istio sidecar injection policy
index e99f4d1..465f4cf 100644 (file)
@@ -37,7 +37,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - vfc-mariadb
+        - {{ .Values.config.mariadbService }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -49,6 +49,11 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
+          command:
+            - sh
+          args:
+            - -c
+            - 'MYSQL_AUTH=root:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
@@ -75,9 +80,11 @@ spec:
             - name: MSB_ADDR
               value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
             - name: MYSQL_ADDR
-              value: "{{ .Values.global.config.dbServiceName }}:{{ .Values.global.config.dbPort }}"
-            - name: MYSQL_AUTH
-              value: "{{ .Values.global.config.dbUser }}:{{ .Values.global.config.mariadbRootPassword }}"
+              value: "{{ .Values.config.mariadbService }}:{{ .Values.config.mariadbPort }}"
+            - name: MYSQL_ROOT_USER
+              value: "{{ .Values.global.config.mariadb_admin }}"
+            - name: MYSQL_ROOT_PASSWORD
+              {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
             - name: REDIS_ADDR
               value: "{{ .Values.global.config.redisServiceName }}:{{ .Values.global.config.redisPort }}"
           volumeMounts:
diff --git a/kubernetes/vfc/charts/vfc-vnflcm/templates/secrets.yaml b/kubernetes/vfc/charts/vfc-vnflcm/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..d053c48
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index 4883833..60a6abc 100644 (file)
@@ -22,6 +22,16 @@ global:
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: "db-root-pass"
+    externalSecret: '{{ tpl (default "" .Values.config.mariadbRootPasswordExternalSecret) . }}'
+    type: password
+    password: '{{ .Values.config.mariadbRootPassword }}'
+    policy: required
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -29,7 +39,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/vnflcm:1.3.4
+image: onap/vfc/vnflcm:1.3.7
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -39,7 +49,12 @@ istioSidecar: true
 debugEnabled: false
 
 # application configuration
-config: {}
+config:
+  mariadbService: vfc-mariadb
+  mariadbPort: 3306
+  # mariadbRootPassword: secretpassword
+  # mariadbRootPasswordExternalSecret: some secret
+
 
 # default number of instances
 replicaCount: 1
@@ -88,4 +103,4 @@ resources:
     requests:
       cpu: 200m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index 66db39e..c4c070d 100644 (file)
@@ -37,7 +37,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - vfc-mariadb
+        - {{ .Values.config.mariadbService }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -49,6 +49,11 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
+          command:
+            - sh
+          args:
+            - -c
+            - 'MYSQL_AUTH=root:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
@@ -75,11 +80,13 @@ spec:
             - name: MSB_ADDR
               value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
             - name: MYSQL_ADDR
-              value: "{{ .Values.global.config.dbServiceName }}:{{ .Values.global.config.dbPort }}"
+              value: "{{ .Values.config.mariadbService }}:{{ .Values.config.mariadbPort }}"
             - name: REDIS_ADDR
               value: "{{ .Values.global.config.redisServiceName }}:{{ .Values.global.config.redisPort }}"
-            - name: MYSQL_AUTH
-              value: "{{ .Values.global.config.dbUser }}:{{ .Values.global.config.mariadbRootPassword }}"
+            - name: MYSQL_ROOT_USER
+              value: "{{ .Values.global.config.mariadb_admin }}"
+            - name: MYSQL_ROOT_PASSWORD
+              {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
 
           volumeMounts:
           - name: {{ include "common.fullname" . }}-localtime
diff --git a/kubernetes/vfc/charts/vfc-vnfmgr/templates/secrets.yaml b/kubernetes/vfc/charts/vfc-vnfmgr/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..d053c48
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index fdd38e6..20af3bb 100644 (file)
@@ -22,6 +22,16 @@ global:
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: "db-root-pass"
+    externalSecret: '{{ tpl (default "" .Values.config.mariadbRootPasswordExternalSecret) . }}'
+    type: password
+    password: '{{ .Values.config.mariadbRootPassword }}'
+    policy: required
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -29,7 +39,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/vnfmgr:1.3.4
+image: onap/vfc/vnfmgr:1.3.8
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -39,7 +49,11 @@ istioSidecar: true
 debugEnabled: false
 
 # application configuration
-config: {}
+config:
+  mariadbService: vfc-mariadb
+  mariadbPort: 3306
+  # mariadbRootPassword: secretpassword
+  # mariadbRootPasswordExternalSecret: some secret
 
 # default number of instances
 replicaCount: 1
@@ -87,4 +101,4 @@ resources:
     requests:
       cpu: 200m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index f5fc284..e70bf0e 100644 (file)
@@ -37,7 +37,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - vfc-mariadb
+        - {{ .Values.config.mariadbService }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -49,6 +49,11 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
+          command:
+            - sh
+          args:
+            - -c
+            - 'MYSQL_AUTH=root:${MYSQL_ROOT_PASSWORD} ./docker-entrypoint.sh'
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
@@ -75,11 +80,14 @@ spec:
             - name: MSB_ADDR
               value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
             - name: MYSQL_ADDR
-              value: "{{ .Values.global.config.dbServiceName }}:{{ .Values.global.config.dbPort }}"
+              value: "{{ .Values.config.mariadbService }}:{{ .Values.config.mariadbPort }}"
             - name: REDIS_ADDR
               value: "{{ .Values.global.config.redisServiceName }}:{{ .Values.global.config.redisPort }}"
-            - name: MYSQL_AUTH
-              value: "{{ .Values.global.config.dbUser }}:{{ .Values.global.config.mariadbRootPassword }}"
+            - name: MYSQL_ROOT_USER
+              value: "{{ .Values.global.config.mariadb_admin }}"
+            - name: MYSQL_ROOT_PASSWORD
+              {{- include "common.secret.envFromSecret" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
+
           volumeMounts:
           - name: {{ include "common.fullname" . }}-localtime
             mountPath: /etc/localtime
diff --git a/kubernetes/vfc/charts/vfc-vnfres/templates/secrets.yaml b/kubernetes/vfc/charts/vfc-vnfres/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..d053c48
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index 9c51d66..078554d 100644 (file)
@@ -22,6 +22,16 @@ global:
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: "db-root-pass"
+    externalSecret: '{{ tpl (default "" .Values.config.mariadbRootPasswordExternalSecret) . }}'
+    type: password
+    password: '{{ .Values.config.mariadbRootPassword }}'
+    policy: required
+
 #################################################################
 # Application configuration defaults.
 #################################################################
@@ -29,7 +39,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/vnfres:1.3.4
+image: onap/vfc/vnfres:1.3.7
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -39,7 +49,12 @@ istioSidecar: true
 debugEnabled: false
 
 # application configuration
-config: {}
+config:
+  mariadbService: vfc-mariadb
+  mariadbPort: 3306
+  # mariadbRootPassword: secretpassword
+  # mariadbRootPasswordExternalSecret: some secret
+
 
 # default number of instances
 replicaCount: 1
@@ -88,4 +103,4 @@ resources:
     requests:
       cpu: 200m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index daf1429..f626cbe 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/wfengine-activiti:1.3.0
+image: onap/vfc/wfengine-activiti:1.3.3
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 1c7444f..57e8253 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/wfengine-mgrservice:1.3.0
+image: onap/vfc/wfengine-mgrservice:1.3.3
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 4c2a546..a72d7cc 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/ztesdncdriver:1.3.0
+image: onap/vfc/ztesdncdriver:1.3.1
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 3655fc0..6c0f829 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/ztevnfmdriver:1.3.1
+image: onap/vfc/ztevnfmdriver:1.3.6
 pullPolicy: Always
 
 #Istio sidecar injection policy
diff --git a/kubernetes/vfc/templates/secrets.yaml b/kubernetes/vfc/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..d053c48
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{ include "common.secret" . }}
index eb6638b..88275ae 100644 (file)
@@ -18,40 +18,65 @@ global:
     msbprotocol: https
     msbServiceName: msb-iag
     msbPort: 443
-    dbServiceName: vfc-db
-    dbPort: 3306
-    dbUser: root
-    mariadbRootPassword: secretpassword
     redisServiceName: vfc-redis
     redisPort: 6379
     reg_to_msb_when_start: False
+    mariadb_admin: root
   persistence:
     mountPath: /dockerdata-nfs
 
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: "db-root-pass"
+    name: &dbRootPassSecret '{{ include "common.release" . }}-vfc-db-root-pass'
+    type: password
+    password: '{{ .Values.config.mariadbRootPassword }}'
+
 # application configuration
 config:
   logstashServiceName: log-ls
   logstashPort: 5044
 
 mariadb-galera:
+  config:
+    mariadbRootPasswordExternalSecret: *dbRootPassSecret
   nameOverride: vfc-mariadb
   service:
-    name: vfc-db
-    portName: vfc-db
+    name: vfc-mariadb
+    portName: vfc-mariadb
   nfsprovisionerPrefix: vfc
   persistence:
     mountSubPath: vfc/data
     enabled: true
   disableNfsProvisioner: true
 
-catalog:
+db: &dbConfig
+  mariadbService: vfc-mariadb
+  mariadbPort: 3306
+  mariadbRootPasswordExternalSecret: *dbRootPassSecret
+
+vfc-catalog:
   config:
-    dbPodName: vfc-db
-    dbServiceName: vfc-db
-nslcm:
+    << : *dbConfig
+
+vfc-nslcm:
+  config:
+    << : *dbConfig
+
+vfc-vnflcm:
   config:
-    dbPodName: vfc-db
-    dbServiceName: vfc-db
+    << : *dbConfig
+
+vfc-vnfmgr:
+  config:
+    << : *dbConfig
+
+vfc-vnfres:
+  config:
+    << : *dbConfig
+
 # sub-chart configuration
 vfc-workflow:
   service:
index e8d0595..fb8f1a0 100644 (file)
@@ -39,7 +39,7 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/vid:6.0.2
+image: onap/vid:6.0.3
 pullPolicy: Always
 
 # mariadb image for initializing
index ab6bae3..9529e55 100644 (file)
@@ -98,7 +98,7 @@ service:
   name: refrepo
   portName: refrepo
   nodePort: 97
-  internalPort: 8702
+  internalPort: 8703
 
 ingress:
   enabled: false