Merge "[MODELING] Update chart with service account"
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>
Tue, 12 Oct 2021 06:04:03 +0000 (06:04 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 12 Oct 2021 06:04:03 +0000 (06:04 +0000)
94 files changed:
kubernetes/common/roles-wrapper/templates/role.yaml
kubernetes/common/timescaledb/templates/statefulset.yaml
kubernetes/common/timescaledb/values.yaml
kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
kubernetes/dcaegen2-services/components/dcae-bbs-eventprocessor-ms/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-bbs-eventprocessor-ms/values.yaml
kubernetes/dcaegen2-services/components/dcae-datafile-collector/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-datafile-collector/values.yaml
kubernetes/dcaegen2-services/components/dcae-datalake-admin-ui/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-datalake-admin-ui/values.yaml
kubernetes/dcaegen2-services/components/dcae-datalake-des/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-datalake-des/values.yaml
kubernetes/dcaegen2-services/components/dcae-datalake-feeder/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-datalake-feeder/values.yaml
kubernetes/dcaegen2-services/components/dcae-heartbeat/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-heartbeat/values.yaml
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
kubernetes/dcaegen2-services/components/dcae-kpi-ms/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-kpi-ms/values.yaml
kubernetes/dcaegen2-services/components/dcae-ms-healthcheck/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-ms-healthcheck/values.yaml
kubernetes/dcaegen2-services/components/dcae-pm-mapper/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-pm-mapper/values.yaml
kubernetes/dcaegen2-services/components/dcae-pmsh/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-pmsh/values.yaml
kubernetes/dcaegen2-services/components/dcae-prh/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
kubernetes/dcaegen2-services/components/dcae-restconf-collector/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-restconf-collector/values.yaml
kubernetes/dcaegen2-services/components/dcae-slice-analysis-ms/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-slice-analysis-ms/values.yaml
kubernetes/dcaegen2-services/components/dcae-snmptrap-collector/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-snmptrap-collector/values.yaml
kubernetes/dcaegen2-services/components/dcae-son-handler/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-son-handler/values.yaml
kubernetes/dcaegen2-services/components/dcae-tcagen2/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml
kubernetes/dcaegen2-services/components/dcae-ves-collector/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
kubernetes/dcaegen2-services/components/dcae-ves-mapper/requirements.yaml
kubernetes/dcaegen2-services/components/dcae-ves-mapper/values.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/requirements.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-bootstrap/values.yaml
kubernetes/dcaegen2/components/dcae-cloudify-manager/requirements.yaml
kubernetes/dcaegen2/components/dcae-cloudify-manager/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-cloudify-manager/values.yaml
kubernetes/dcaegen2/components/dcae-config-binding-service/requirements.yaml
kubernetes/dcaegen2/components/dcae-config-binding-service/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-config-binding-service/values.yaml
kubernetes/dcaegen2/components/dcae-dashboard/requirements.yaml
kubernetes/dcaegen2/components/dcae-dashboard/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-dashboard/values.yaml
kubernetes/dcaegen2/components/dcae-deployment-handler/requirements.yaml
kubernetes/dcaegen2/components/dcae-deployment-handler/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-deployment-handler/values.yaml
kubernetes/dcaegen2/components/dcae-healthcheck/requirements.yaml
kubernetes/dcaegen2/components/dcae-healthcheck/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-healthcheck/values.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/requirements.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-inventory-api/values.yaml
kubernetes/dcaegen2/components/dcae-policy-handler/requirements.yaml
kubernetes/dcaegen2/components/dcae-policy-handler/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-policy-handler/values.yaml
kubernetes/dcaegen2/components/dcae-servicechange-handler/requirements.yaml
kubernetes/dcaegen2/components/dcae-servicechange-handler/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-servicechange-handler/values.yaml
kubernetes/dcaegen2/components/dcae-ves-openapi-manager/requirements.yaml
kubernetes/dcaegen2/components/dcae-ves-openapi-manager/templates/deployment.yaml
kubernetes/dcaegen2/components/dcae-ves-openapi-manager/values.yaml
kubernetes/dcaegen2/values.yaml
kubernetes/dmaap/components/dmaap-dr-prov/requirements.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/values.yaml
kubernetes/platform/components/oom-cert-service/values.yaml
kubernetes/policy/components/policy-clamp-cl-runtime/Chart.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/requirements.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/resources/config/clRuntimeParameters.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/resources/config/logback.xml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/templates/configmap.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/templates/deployment.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/templates/secrets.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/templates/service.yaml [new file with mode: 0644]
kubernetes/policy/components/policy-clamp-cl-runtime/values.yaml [new file with mode: 0644]
kubernetes/policy/requirements.yaml
kubernetes/policy/resources/config/db.sh
kubernetes/policy/values.yaml
kubernetes/sdc/components/sdc-be/values.yaml
kubernetes/sdc/components/sdc-cs/values.yaml
kubernetes/sdc/components/sdc-fe/values.yaml
kubernetes/sdc/components/sdc-onboarding-be/values.yaml

index e2a84b4..0be6c7b 100644 (file)
@@ -32,6 +32,7 @@ rules:
   resources:
   - pods
   - deployments
+  - deployments/status
   - jobs
   - jobs/status
   - statefulsets
@@ -52,6 +53,7 @@ rules:
   resources:
   - pods
   - deployments
+  - deployments/status
   - jobs
   - jobs/status
   - statefulsets
@@ -59,6 +61,7 @@ rules:
   - replicasets/status
   - daemonsets
   - secrets
+  - services
   verbs:
   - get
   - watch
@@ -68,6 +71,7 @@ rules:
   - apps
   resources:
   - statefulsets
+  - configmaps
   verbs:
   - patch
 - apiGroups:
@@ -76,6 +80,8 @@ rules:
   resources:
   - deployments
   - secrets
+  - services
+  - pods
   verbs:
   - create
 - apiGroups:
@@ -85,7 +91,8 @@ rules:
   - pods
   - persistentvolumeclaims
   - secrets
-  - deployment
+  - deployments
+  - services
   verbs:
   - delete
 - apiGroups:
@@ -95,6 +102,13 @@ rules:
   - pods/exec
   verbs:
   - create
+- apiGroups:
+  - cert-manager.io
+  resources:
+  - certificates
+  verbs:
+  - create
+  - delete
 {{-     else }}
 # if you don't match read or create, then you're not allowed to use API
 # except to see basic information about yourself
index 435c925..0bd7d30 100644 (file)
@@ -29,25 +29,10 @@ spec:
     metadata: {{- include "common.templateMetadata" . | nindent 6 }}
     spec:
       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . ) }}
-      securityContext:
-      {{- toYaml .Values.podSecurityContext | nindent 8 }}
-      initContainers:
-        - name: chowm-mount-path
-          command:
-            - /bin/sh
-          args:
-            - -c
-            - chown -R {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.runAsGroup }} /var/lib/postgresql/data
-          image: {{ include "repositoryGenerator.image.busybox" . }}
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          volumeMounts:
-            - mountPath: /var/lib/postgresql/data
-              name: {{ include "common.fullname" . }}
+      {{ include "common.podSecurityContext" . | indent 10 | trim}}
       containers:
         - name: {{ include "common.name" . }}
           image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
-          securityContext:
-          {{- toYaml .Values.securityContext | nindent 12 }}
           imagePullPolicy: {{ .Values.pullPolicy }}
           ports: {{ include "common.containerPorts" . | nindent 12  }}
           livenessProbe:
index 55acd92..258f516 100644 (file)
@@ -37,30 +37,45 @@ serviceAccount:
   roles:
     - read
 
-podSecurityContext: {}
-  # fsGroup: 2000
-
 securityContext:
   # Uid and gid to run the entrypoint of the container process (uid 70 is postgres user and gid 70 is postgres group)
-  runAsUser: 70
-  runAsGroup: 70
+  user_id: 70
+  group_id: 70
   # capabilities:
   #   drop:
   #   - ALL
   # readOnlyRootFilesystem: true
   # runAsNonRoot: true
 
+flavor: small
+
+#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:
-  # 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:'.
- limits:
-   cpu: 0.5
-   memory: 256Mi
- requests:
-   cpu: 20m
-   memory: 256Mi
+  small:
+    limits:
+      cpu: 100m
+      memory: 300Mi
+    requests:
+      cpu: 10m
+      memory: 90Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 4Gi
+    requests:
+      cpu: 1
+      memory: 2Gi
+  unlimited: {}
 
 nodeSelector: {}
 
index 6be03de..dd0bf4b 100644 (file)
@@ -432,6 +432,7 @@ spec:
         {{- end }}
       {{- end }}
       hostname: {{ include "common.name" . }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
       - configMap:
           defaultMode: 420
index c6804b7..e267e89 100644 (file)
@@ -27,4 +27,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 9815bf7..572e812 100644 (file)
@@ -199,3 +199,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-bbs-eventprocessor-ms
+  roles:
+    - read
index 9f1600e..540013e 100644 (file)
@@ -30,4 +30,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index be76207..2342470 100644 (file)
@@ -148,7 +148,7 @@ applicationConfig:
 drFeedConfig:
   - feedName: bulk_pm_feed
     owner: dcaecm
-    feedVersion: 0.0
+    feedVersion: "0.0"
     asprClassification: unclassified
     feedDescription: DFC Feed Creation
 
@@ -184,3 +184,9 @@ resources:
       cpu: 1
       memory: 1Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-datafile-collector
+  roles:
+    - read
index 8e53236..6412c80 100644 (file)
@@ -28,3 +28,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index faff44c..0553b52 100644 (file)
@@ -116,3 +116,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-datalake-admin-ui
+  roles:
+    - read
index 34fe22e..e0ac99d 100644 (file)
@@ -28,4 +28,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
-
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index bc5fe3b..9373e82 100644 (file)
@@ -146,3 +146,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-datalake-des
+  roles:
+    - read
index 5ef1871..fded2ce 100644 (file)
@@ -31,4 +31,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
-
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 56017b7..2452dc8 100644 (file)
@@ -173,3 +173,9 @@ postgres:
     pgUserName: datalake
     pgDatabase: datalake
     pgUserExternalSecret: *pgUserCredsSecretName
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-datalake-feeder
+  roles:
+    - read
index 680c0d6..ebfdcdb 100644 (file)
@@ -30,4 +30,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 8847f29..bbf815d 100644 (file)
@@ -190,3 +190,9 @@ postgres:
     pgUserName: heartbeat
     pgDatabase: heartbeat
     pgUserExternalSecret: *pgUserCredsSecretName
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-heartbeat
+  roles:
+    - read
index d457454..9a2dc1a 100644 (file)
@@ -30,3 +30,6 @@ dependencies:
   - name: certManagerCertificate
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 07b1061..650ec03 100644 (file)
@@ -199,3 +199,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-hv-ves-collector
+  roles:
+    - read
index 6b37d36..4239867 100644 (file)
@@ -28,5 +28,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
-
-
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 802c830..5d8c6d5 100644 (file)
@@ -159,3 +159,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-kpi-ms
+  roles:
+    - read
index 0697ceb..3762a2a 100644 (file)
@@ -23,3 +23,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index aa6af35..8ec60a7 100644 (file)
@@ -65,3 +65,8 @@ resources:
       memory: 2Gi
   unlimited: {}
 
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-ms-healthcheck
+  roles:
+    - read
index 5e1b36e..c39c209 100644 (file)
@@ -27,4 +27,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: 'file://../../common/dcaegen2-services-common'
\ No newline at end of file
+    repository: 'file://../../common/dcaegen2-services-common'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 0dff427..caae1c3 100644 (file)
@@ -160,7 +160,7 @@ applicationConfig:
 drFeedConfig:
   - feedName: bulk_pm_feed
     owner: dcaecm
-    feedVersion: 0.0
+    feedVersion: "0.0"
     asprClassification: unclassified
     feedDescription: DFC Feed Creation
 
@@ -216,3 +216,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-pm-mapper
+  roles:
+    - read
index 4dfc837..44c3664 100644 (file)
@@ -31,3 +31,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 512bd26..b9005f0 100644 (file)
@@ -192,4 +192,10 @@ postgres:
   config:
     pgUserName: pmsh
     pgDatabase: pmsh
-    pgUserExternalSecret: *pgUserCredsSecretName
\ No newline at end of file
+    pgUserExternalSecret: *pgUserCredsSecretName
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-pmsh
+  roles:
+    - read
index 80e79fe..37ffafe 100644 (file)
@@ -26,3 +26,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index c7d4c1d..a7f6291 100644 (file)
@@ -168,3 +168,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-prh
+  roles:
+    - read
index c6804b7..e267e89 100644 (file)
@@ -27,4 +27,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 789a807..ad29e33 100644 (file)
@@ -159,3 +159,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-restconf-collector
+  roles:
+    - read
index 9cab8e9..c6ccf13 100644 (file)
@@ -31,4 +31,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
-
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 5974d80..3300306 100644 (file)
@@ -210,3 +210,9 @@ postgres:
     pgUserName: sliceanalysisms
     pgDatabase: sliceanalysisms
     pgUserExternalSecret: *pgUserCredsSecretName
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-slice-analysis-ms
+  roles:
+    - read
index c6804b7..e267e89 100644 (file)
@@ -27,4 +27,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 60295b9..266da24 100644 (file)
@@ -145,3 +145,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-snmptrap-collector
+  roles:
+    - read
index 3f52d6f..907f8f3 100644 (file)
@@ -31,3 +31,6 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index a0ab079..420814f 100644 (file)
@@ -242,3 +242,9 @@ postgres:
     pgUserName: sonhms
     pgDatabase: sonhms
     pgUserExternalSecret: *pgUserCredsSecretName
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-son-handler
+  roles:
+    - read
index 02a2a67..b1d9fb2 100644 (file)
@@ -26,3 +26,9 @@ dependencies:
   - name: dcaegen2-services-common
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 778f6c9..e7707dc 100644 (file)
@@ -162,3 +162,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-tcagen2
+  roles:
+    - read
index d457454..9a2dc1a 100644 (file)
@@ -30,3 +30,6 @@ dependencies:
   - name: certManagerCertificate
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index bfea92a..f863ff8 100644 (file)
@@ -200,3 +200,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-ves-collector
+  roles:
+    - read
index c6804b7..e267e89 100644 (file)
@@ -27,4 +27,7 @@ dependencies:
     repository: '@local'
   - name: dcaegen2-services-common
     version: ~8.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 7bde2e9..a7186a4 100644 (file)
@@ -189,3 +189,9 @@ resources:
       cpu: 2
       memory: 2Gi
   unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-ves-mapper
+  roles:
+    - read
index 353f4ea..b6eeb5b 100644 (file)
@@ -32,3 +32,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index d95883a..4addb2b 100644 (file)
@@ -136,6 +136,7 @@ spec:
               value: {{ .Values.dcae_ns | default "" }}
             - name: ONAP_NAMESPACE
               value: {{ include "common.namespace" . }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-dcae-inputs-input
           configMap:
index f3e6c29..b012ee4 100644 (file)
@@ -137,3 +137,9 @@ resources:
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
 # dcae_ns: "onap"
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-bootstrap
+  roles:
+    - read
index 413f997..877839e 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: cmpv2Config
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 204a3e2..f5fc9ca 100644 (file)
@@ -169,6 +169,7 @@ spec:
             readOnly: true
           securityContext:
             privileged: True
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "create" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-config
           configMap:
index e6567d9..17ba5ec 100644 (file)
@@ -127,3 +127,10 @@ persistence:
   mountPath: /dockerdata-nfs
   mountSubPath: dcae-cm/data
   volumeReclaimPolicy: Retain
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-cloudify-manager
+  roles:
+    - create
+
index be5f059..f2c5b02 100644 (file)
@@ -20,3 +20,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 65d0b36..c7e1d70 100644 (file)
@@ -167,6 +167,7 @@ spec:
           - name: {{ include "common.fullname" . }}-logs-i
             mountPath: /var/log/onap/config-binding-service
         {{ end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-fb-conf
           configMap:
index 1d42142..719e73f 100644 (file)
@@ -91,3 +91,9 @@ resources:
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
 # dcae_ns: "dcae"
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-config-binding-service
+  roles:
+    - read
index 2fe8479..8759678 100644 (file)
@@ -22,3 +22,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index e93f8d8..dbb6c67 100644 (file)
@@ -161,6 +161,7 @@ spec:
           - mountPath: /usr/share/filebeat/filebeat.yml
             name: filebeat-conf
             subPath: filebeat.yml
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - emptyDir: {}
           name: component-log
index 6640f78..a083b51 100644 (file)
@@ -119,3 +119,9 @@ resources:
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
 # dcae_ns: "dcae"
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-dashboard
+  roles:
+    - read
index f19e412..78bcd76 100644 (file)
@@ -20,3 +20,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 1b39dc6..1ad42e0 100755 (executable)
@@ -154,6 +154,7 @@ spec:
           - mountPath: /usr/share/filebeat/filebeat.yml
             name: filebeat-conf
             subPath: filebeat.yml
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - emptyDir: {}
           name: component-log
index fc4d07d..3435462 100644 (file)
@@ -91,3 +91,8 @@ resources:
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
 # dcae_ns: "dcae"
+
+serviceAccount:
+  nameOverride: dcae-deployment-handler
+  roles:
+    - read
index 0697ceb..3762a2a 100644 (file)
@@ -23,3 +23,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 9514f41..641dfdf 100644 (file)
@@ -74,6 +74,7 @@ spec:
               value: {{ include "common.release" . }}
             - name: DEPLOY_LABEL
               value: cfydeployment
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-expected-components
           configMap:
index 221e579..1c6cff0 100644 (file)
@@ -67,3 +67,8 @@ resources:
 # If empty, use the common namespace
 # dcae_ns: "onap"
 
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-healthcheck
+  roles:
+    - read
index 63ac56c..32d8b5b 100644 (file)
@@ -23,3 +23,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index d25d63c..7c3746a 100644 (file)
@@ -152,6 +152,7 @@ spec:
           - mountPath: /usr/share/filebeat/filebeat.yml
             name: filebeat-conf
             subPath: filebeat.yml
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - emptyDir: {}
           name: component-log
index 1bc13ef..fe39269 100644 (file)
@@ -110,3 +110,9 @@ resources:
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
 # dcae_ns: "dcae"
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-inventory-api
+  roles:
+    - read
index f19e412..78bcd76 100644 (file)
@@ -20,3 +20,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 916c5f6..b8c2435 100644 (file)
@@ -145,6 +145,7 @@ spec:
           - mountPath: /usr/share/filebeat/filebeat.yml
             name: filebeat-conf
             subPath: filebeat.yml
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - emptyDir: {}
           name: component-log
index 8f6a1a7..00ce47b 100644 (file)
@@ -92,3 +92,9 @@ resources:
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
 # dcae_ns: "dcae"
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-policy-handler
+  roles:
+    - read
index be5f059..f2c5b02 100644 (file)
@@ -20,3 +20,6 @@ dependencies:
   - name: repositoryGenerator
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index 7c55628..6c4e695 100644 (file)
@@ -106,6 +106,7 @@ spec:
               value: "/opt/cert/cacert.pem"
             - name: SCH_ARGS
               value: "prod /opt/config.json"
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: {{ include "common.fullname" . }}-sch-config
           configMap:
index c363626..8686db4 100644 (file)
@@ -85,4 +85,10 @@ resources:
   unlimited: {}
 # Kubernetes namespace for components deployed via Cloudify manager
 # If empty, use the common namespace
-# dcae_ns: "dcae"
\ No newline at end of file
+# dcae_ns: "dcae"
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-servicechange-handler
+  roles:
+    - read
index 16f38f8..9a3009d 100644 (file)
@@ -24,3 +24,6 @@ dependencies:
   - name: readinessCheck
     version: ~8.x-0
     repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
index f2826a7..1c6e359 100644 (file)
@@ -52,6 +52,7 @@ spec:
           volumeMounts:
             - name: schema-map
               mountPath: {{ .Values.schemaMap.directory }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
       volumes:
         - name: schema-map
           configMap:
index 2209feb..873579e 100644 (file)
@@ -64,4 +64,10 @@ resources:
     requests:
       cpu: 1
       memory: 1Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: dcae-ves-openapi-manager
+  roles:
+    - read
index f82b410..17b077b 100644 (file)
@@ -68,4 +68,4 @@ dcae-policy-handler:
 dcae-servicechange-handler:
   enabled: true
 dcae-ves-openapi-manager:
-  enabled: true
\ No newline at end of file
+  enabled: true
index 65867f5..3c25c94 100644 (file)
@@ -23,7 +23,10 @@ dependencies:
     version: ~8.x-0
     repository: '@local'
   - name: mariadb-galera
-    alias: mariadb
+    version: ~8.x-0
+    repository: '@local'
+    condition: global.mariadbGalera.localCluster
+  - name: mariadb-init
     version: ~8.x-0
     repository: '@local'
   - name: certInitializer
index a747238..18ab419 100644 (file)
@@ -42,7 +42,7 @@ 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}}/{{.Values.mariadb.db.name}}
+org.onap.dmaap.datarouter.db.url      = jdbc:mariadb://{{ include "common.mariadbService" . }}:{{ include "common.mariadbPort" . }}/{{index .Values "mariadb-galera" "db" "name"}}
 org.onap.dmaap.datarouter.db.login    = ${DB_USERNAME}
 org.onap.dmaap.datarouter.db.password = ${DB_PASSWORD}
 
index 6167896..a3051ee 100644 (file)
@@ -42,8 +42,8 @@ spec:
           command:
           - /app/ready.py
           args:
-          - --container-name
-          - {{ .Values.config.dmaapDrDb.mariadbContName }}
+          - --job-name
+          - {{ include "common.release" . }}-dmaap-dr-mariadb-init-config-job
           env:
           - name: NAMESPACE
             valueFrom:
@@ -81,9 +81,9 @@ spec:
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
           - name: DB_USERNAME
-            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-dr-db-user-secret" "key" "login") | indent 12 }}
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-dr-db-user-credentials" "key" "login") | indent 12 }}
           - name: DB_PASSWORD
-            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-dr-db-user-secret" "key" "password") | indent 12 }}
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-dr-db-user-credentials" "key" "password") | indent 12 }}
           volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
           - mountPath: /etc/localtime
             name: localtime
index 7564ccf..cf25468 100644 (file)
@@ -19,17 +19,23 @@ global:
   nodePortPrefix: 302
   loggingDirectory: /opt/app/datartr/logs
   persistence: {}
+  mariadbGalera: &mariadbGalera
+    #This flag allows DMAAP-DR to instantiate its own mariadb-galera cluster
+    localCluster: false
+    service: mariadb-galera
+    internalPort: 3306
+    nameOverride: mariadb-galera
 
 #################################################################
 # Secrets metaconfig
 #################################################################
 secrets:
-  - uid: dmaap-dr-db-user-secret
-    name: &dbSecretName '{{ include "common.release" . }}-dmaap-dr-db-user-secret'
+  - name: &dbUserSecretName '{{ include "common.release" . }}-dmaap-dr-db-user-credentials'
+    uid: 'dmaap-dr-db-user-credentials'
     type: basicAuth
-    externalSecret: '{{ tpl (default "" .Values.config.dmaapDrDb.userCredentialsExternalSecret) . }}'
-    login: '{{ .Values.config.dmaapDrDb.userName }}'
-    password: '{{ .Values.config.dmaapDrDb.userPassword }}'
+    externalSecret: '{{ ternary "" (tpl (default "" (index .Values "mariadb-galera" "db" "externalSecret")) .) (hasSuffix "dmaap-dr-db-user-credentials" (index .Values "mariadb-galera" "db" "externalSecret"))}}'
+    login: '{{ index .Values "mariadb-galera" "db" "user" }}'
+    password: '{{ index .Values "mariadb-galera" "db" "password" }}'
 
 #################################################################
 # Application configuration defaults.
@@ -92,31 +98,29 @@ config:
     # and supports the following log levels: TRACE, DEBUG, INFO, WARN, ERROR, OFF
     logLevel: "INFO"
 
-  # dr-prov db configuration
-  dmaapDrDb:
-    mariadbServiceName: dmaap-dr-db
-    mariadbServicePort: 3306
-    mariadbContName: &dmaap-dr-db dmaap-dr-db
-    userName: datarouter
-#    userPassword: password
-#    userCredentialsExternalSecret: some secret
-
 # mariadb-galera configuration
-mariadb:
-  name: *dmaap-dr-db
-  nameOverride: *dmaap-dr-db
+mariadb-galera:
+  nameOverride: &dbServer dmaap-dr-db
   replicaCount: 1
   db:
-    externalSecret: *dbSecretName
-    name: datarouter
+    name: &mysqlDbName datarouter
+    user: datarouter
+    # password:
+    externalSecret: *dbUserSecretName 
   service:
-    name: dmaap-dr-db
+    name: *dbServer
   nfsprovisionerPrefix: dmaap-dr-db
   persistence:
     size: 1Gi
     mountSubPath: data-router/dr-db-data
   serviceAccount:
-    nameOverride: *dmaap-dr-db
+    nameOverride: *dbServer
+
+mariadb-init:
+  config:
+    userCredentialsExternalSecret: *dbUserSecretName
+    mysqlDatabase: *mysqlDbName
+  nameOverride: dmaap-dr-mariadb-init
 
 #################################################################
 # AAF part
index fbd545c..6cabde7 100644 (file)
@@ -79,7 +79,7 @@ tls:
     selfsigning:
       name: &selfSigningIssuer cmpv2-selfsigning-issuer
     ca:
-      name: &caIssuer cmpv2-ca-issuer
+      name: &caIssuer cmpv2-issuer-onap
       secret:
         name: &caKeyPairSecret  cmpv2-ca-key-pair
   server:
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/Chart.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/Chart.yaml
new file mode 100644 (file)
index 0000000..b7c44d7
--- /dev/null
@@ -0,0 +1,22 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+apiVersion: v1
+description: ONAP Policy Clamp Controlloop Runtime
+name: policy-clamp-cl-runtime
+version: 8.0.0
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/requirements.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/requirements.yaml
new file mode 100644 (file)
index 0000000..7878f91
--- /dev/null
@@ -0,0 +1,31 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+dependencies:
+  - name: common
+    version: ~8.x-0
+    repository: '@local'
+  - name: certInitializer
+    version: ~8.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~8.x-0
+    repository: '@local'
+  - name: serviceAccount
+    version: ~8.x-0
+    repository: '@local'
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/resources/config/clRuntimeParameters.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/resources/config/clRuntimeParameters.yaml
new file mode 100644 (file)
index 0000000..250e912
--- /dev/null
@@ -0,0 +1,79 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+spring:
+  security:
+    user:
+      name: ${RUNTIME_USER}
+      password: ${RUNTIME_PASSWORD}
+  http:
+    converters:
+      preferred-json-mapper: gson
+
+security:
+  enable-csrf: false
+
+server:
+  port: 6969
+  servlet:
+    context-path: /onap/controlloop
+  error:
+    path: /error
+
+
+runtime:
+  supervisionScannerIntervalSec: 1000
+  participantClUpdateIntervalSec: 1000
+  participantClStateChangeIntervalSec: 1000
+  participantParameters:
+    heartBeatMs: 120000
+    maxMessageAgeMs: 600000
+    maxStatusWaitMs: 100000
+    updateParameters:
+      maxRetryCount: 3
+      maxWaitMs: 100000
+  databaseProviderParameters:
+    name: PolicyProviderParameterGroup
+    implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl
+    databaseDriver: org.mariadb.jdbc.Driver
+    databaseUrl: jdbc:mariadb://{{ .Values.db.service.name }}:{{ .Values.db.service.internalPort }}/controlloop
+    databaseUser: ${SQL_USER}
+    databasePassword: ${SQL_PASSWORD}
+    persistenceUnit: CommissioningMariaDb
+  topicParameterGroup:
+    topicSources:
+      -
+        topic: POLICY-CLRUNTIME-PARTICIPANT
+        servers:
+          - ${topicServer:message-router}
+        topicCommInfrastructure: dmaap
+        useHttps: true
+        fetchTimeout: 15000
+    topicSinks:
+      -
+        topic: POLICY-CLRUNTIME-PARTICIPANT
+        servers:
+          - ${topicServer:message-router}
+        topicCommInfrastructure: dmaap
+        useHttps: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: health, metrics, prometheus
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/resources/config/logback.xml b/kubernetes/policy/components/policy-clamp-cl-runtime/resources/config/logback.xml
new file mode 100644 (file)
index 0000000..43cea65
--- /dev/null
@@ -0,0 +1,103 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2021 Nordix Foundation. 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.
+  SPDX-License-Identifier: Apache-2.0
+  ============LICENSE_END=========================================================
+-->
+
+<configuration scan="true" scanPeriod="30 seconds" debug="false">
+
+    <appender name="ErrorOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>/var/log/onap/policy/pap/error.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>/var/log/onap/policy/policy-clamp-cl-runtime/error.%d{yyyy-MM-dd}.%i.log.zip
+            </fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+        <encoder>
+            <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="AsyncErrorOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="ErrorOut" />
+    </appender>
+
+    <appender name="DebugOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>/var/log/onap/policy/pap/debug.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>/var/log/onap/policy/policy-clamp-cl-runtime/debug.%d{yyyy-MM-dd}.%i.log.zip
+            </fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="AsyncDebugOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="DebugOut" />
+    </appender>
+
+    <appender name="NetworkOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>/var/log/onap/policy/policy-clamp-cl-runtime/network.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>/var/log/onap/policy/policy-clamp-cl-runtime/network.%d{yyyy-MM-dd}.%i.log.zip
+            </fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%t]%m%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="AsyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="NetworkOut" />
+    </appender>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <Pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n</Pattern>
+        </encoder>
+    </appender>
+
+    <appender name="AsyncStdOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="STDOUT" />
+    </appender>
+
+    <logger name="network" level="INFO" additivity="false">
+        <appender-ref ref="AsyncNetworkOut" />
+        <appender-ref ref="AsyncStdOut" />
+    </logger>
+
+    <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">
+        <appender-ref ref="AsyncNetworkOut" />
+        <appender-ref ref="AsyncStdOut" />
+    </logger>
+
+    <root level="INFO">
+        <appender-ref ref="AsyncDebugOut" />
+        <appender-ref ref="AsyncErrorOut" />
+        <appender-ref ref="AsyncStdOut" />
+    </root>
+
+</configuration>
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/templates/configmap.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..66c096d
--- /dev/null
@@ -0,0 +1,38 @@
+{{/*
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ include "common.release" . }}
+    heritage: {{ .Release.Service }}
+{{- with .Files.Glob "resources/config/*store" }}
+binaryData:
+{{- range $path, $bytes := . }}
+  {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
+data:
+{{ tpl (.Files.Glob "resources/config/*.{json,xml,yaml}").AsConfig . | indent 2 }}
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/templates/deployment.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..92e5c9e
--- /dev/null
@@ -0,0 +1,131 @@
+{{/*
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+*/}}
+
+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:
+      initContainers:
+      - command:
+        - /app/ready.py
+        args:
+        - --job-name
+        - {{ include "common.release" . }}-policy-galera-config
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: {{ include "repositoryGenerator.image.readiness" . }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
+      - command:
+        - sh
+        args:
+        - -c
+        - "cd /config-input && for PFILE in `ls -1`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        env:
+        - name: SQL_USER
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
+        - name: SQL_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
+        - name: RUNTIME_USER
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "runtime-secret" "key" "login") | indent 10 }}
+        - name: RUNTIME_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "runtime-secret" "key" "password") | indent 10 }}
+        volumeMounts:
+        - mountPath: /config-input
+          name: cl-runtime-config
+        - mountPath: /config
+          name: cl-runtime-config-processed
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-update-config
+{{ include "common.certInitializer.initContainer" . | indent 6 }}
+      containers:
+        - name: {{ include "common.name" . }}
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+{{- if .Values.global.aafEnabled }}
+          command: ["sh","-c"]
+          args: ["source {{ .Values.certInitializer.credsPath }}/.ci;\
+                  /opt/app/policy/clamp/bin/controlloop-runtime.sh /opt/app/policy/clamp/etc/mounted/clRuntimeParameters.yaml"]
+{{- else }}
+          command: ["/opt/app/policy/clamp/bin/controlloop-runtime.sh"]
+          args: ["/opt/app/policy/clamp/etc/mounted/clRuntimeParameters.yaml"]
+          env:
+          - name: KEYSTORE_PASSWD
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keystore-password" "key" "password") | indent 12 }}
+          - name: TRUSTSTORE_PASSWD
+            {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "truststore-password" "key" "password") | indent 12 }}
+{{- end }}
+          ports: {{ include "common.containerPorts" . | nindent 12  }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.liveness.port }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end -}}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.readiness.port }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          volumeMounts:
+{{ include "common.certInitializer.volumeMount" . | indent 10 }}
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /opt/app/policy/clamp/etc/mounted
+            name: cl-runtime-config-processed
+          resources:
+{{ include "common.resources" . }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
+      volumes:
+{{ include "common.certInitializer.volumes" . | indent 8 }}
+        - name: localtime
+          hostPath:
+             path: /etc/localtime
+        - name: cl-runtime-config
+          configMap:
+            name: {{ include "common.fullname" . }}-configmap
+            defaultMode: 0755
+        - name: cl-runtime-config-processed
+          emptyDir:
+            medium: Memory
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/templates/secrets.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..abbfa3f
--- /dev/null
@@ -0,0 +1,21 @@
+{{/*
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+*/}}
+
+{{ include "common.secretFast" . }}
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/templates/service.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/templates/service.yaml
new file mode 100644 (file)
index 0000000..be2449f
--- /dev/null
@@ -0,0 +1,21 @@
+{{/*
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+*/}}
+
+{{ include "common.service" . }}
diff --git a/kubernetes/policy/components/policy-clamp-cl-runtime/values.yaml b/kubernetes/policy/components/policy-clamp-cl-runtime/values.yaml
new file mode 100644 (file)
index 0000000..4cf9e67
--- /dev/null
@@ -0,0 +1,154 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2021 Nordix Foundation. 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.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefixExt: 304
+  persistence: {}
+  aafEnabled: true
+
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+  - uid: db-secret
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.db.credsExternalSecret) . }}'
+    login: '{{ .Values.db.user }}'
+    password: '{{ .Values.db.password }}'
+    passwordPolicy: required
+  - uid: keystore-password
+    type: password
+    externalSecret: '{{ tpl (default "" .Values.certStores.keyStorePasswordExternalSecret) . }}'
+    password: '{{ .Values.certStores.keyStorePassword }}'
+    passwordPolicy: required
+  - uid: truststore-password
+    type: password
+    externalSecret: '{{ tpl (default "" .Values.certStores.trustStorePasswordExternalSecret) . }}'
+    password: '{{ .Values.certStores.trustStorePassword }}'
+    passwordPolicy: required
+  - uid: runtime-secret
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.appUserExternalSecret) . }}'
+    login: '{{ .Values.config.policyAppUserName }}'
+    password: '{{ .Values.config.policyAppUserPassword }}'
+    passwordPolicy: required
+
+certStores:
+  keyStorePassword: Pol1cy_0nap
+  trustStorePassword: Pol1cy_0nap
+
+certInitializer:
+  nameOverride: policy-clamp-cl-runtime-cert-initializer
+  aafDeployFqi: deployer@people.osaaf.org
+  aafDeployPass: demo123456!
+  fqdn: policy
+  fqi: policy@policy.onap.org
+  public_fqdn: policy.onap.org
+  cadi_latitude: "0.0"
+  cadi_longitude: "0.0"
+  credsPath: /opt/app/osaaf/local
+  app_ns: org.osaaf.aaf
+  uid: 100
+  gid: 101
+  aaf_add_config: >
+    echo "export KEYSTORE='{{ .Values.credsPath }}/org.onap.policy.p12'" > {{ .Values.credsPath }}/.ci;
+    echo "export KEYSTORE_PASSWD='${cadi_keystore_password_p12}'" >> {{ .Values.credsPath }}/.ci;
+    chown -R {{ .Values.uid }}:{{ .Values.gid }} $(dirname {{ .Values.credsPath }});
+
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+image: onap/policy-clamp-cl-runtime:6.1.2
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  policyAppUserName: runtimeUser
+  policyAppUserPassword: none
+
+db:
+  user: policy_user
+  password: policy_user
+  service:
+    name: policy-mariadb
+    internalPort: 3306
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 20
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+  port: http-api
+
+readiness:
+  initialDelaySeconds: 20
+  periodSeconds: 10
+  port: http-api
+
+service:
+  type: ClusterIP
+  name: policy-clamp-cl-runtime
+  useNodePortExt: true
+  ports:
+  - name: http-api
+    port: 6969
+    nodePort: 42
+
+ingress:
+  enabled: false
+
+flavor: small
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 4Gi
+    requests:
+      cpu: 100m
+      memory: 1Gi
+  large:
+    limits:
+      cpu: 2
+      memory: 8Gi
+    requests:
+      cpu: 200m
+      memory: 2Gi
+  unlimited: {}
+
+#Pods Service Account
+serviceAccount:
+  nameOverride: policy-clamp-cl-runtime
+  roles:
+    - read
index b391d27..0ba1535 100755 (executable)
@@ -61,6 +61,10 @@ dependencies:
     version: ~8.x-0
     repository: 'file://components/policy-clamp-cl-k8s-ppnt'
     condition: policy-clamp-cl-k8s-ppnt.enabled
+  - name: policy-clamp-cl-runtime
+    version: ~8.x-0
+    repository: 'file://components/policy-clamp-cl-runtime'
+    condition: policy-clamp-cl-runtime.enabled
   - name: policy-gui
     version: ~8.x-0
     repository: 'file://components/policy-gui'
index 7b94372..787ec0a 100755 (executable)
@@ -2,6 +2,7 @@
 {{/*
 # Copyright © 2017 Amdocs, Bell Canada, AT&T
 # Modifications Copyright © 2018, 2020 AT&T Intellectual Property
+# Modifications Copyright (C) 2021 Nordix Foundation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -18,7 +19,7 @@
 
 mysql() { /usr/bin/mysql  -h ${MYSQL_HOST} -P ${MYSQL_USER} "$@"; };
 
-for db in migration pooling policyadmin policyclamp operationshistory
+for db in migration pooling policyadmin policyclamp operationshistory controlloop
 do
     mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};"
     mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "GRANT ALL PRIVILEGES ON \`${db}\`.* TO '${MYSQL_USER}'@'%' ;"
index 054c7be..2960369 100755 (executable)
@@ -45,6 +45,13 @@ secrets:
     login: '{{ index .Values "mariadb-galera" "db" "user" }}'
     password: '{{ index .Values "mariadb-galera" "db" "password" }}'
     passwordPolicy: generate
+  - uid: policy-app-user-creds
+    name: &policyAppCredsSecret '{{ include "common.release" . }}-policy-app-user-creds'
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.config.policyAppUserExternalSecret) . }}'
+    login: '{{ .Values.config.policyAppUserName }}'
+    password: '{{ .Values.config.policyAppUserPassword }}'
+    passwordPolicy: generate
 
 db: &dbSecretsHook
   credsExternalSecret: *dbSecretName
@@ -70,12 +77,19 @@ policy-distribution:
 policy-clamp-be:
   enabled: true
   db: *dbSecretsHook
+  config:
+    appUserExternalSecret: *policyAppCredsSecret
 policy-clamp-fe:
   enabled: true
 policy-clamp-cl-k8s-ppnt:
   enabled: true
 policy-nexus:
   enabled: false
+policy-clamp-cl-runtime:
+  enabled: true
+  db: *dbSecretsHook
+  config:
+    appUserExternalSecret: *policyAppCredsSecret
 policy-gui:
   enabled: true
 
@@ -119,6 +133,10 @@ readiness:
   initialDelaySeconds: 10
   periodSeconds: 10
 
+
+config:
+  policyAppUserName: runtimeUser
+
 mariadb-galera:
   # mariadb-galera.config and global.mariadb.config must be equals
   db:
index 070583b..d769f62 100644 (file)
@@ -35,8 +35,8 @@ global:
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/sdc-backend-all-plugins:1.9.0
-backendInitImage: onap/sdc-backend-init:1.9.0
+image: onap/sdc-backend-all-plugins:1.9.3
+backendInitImage: onap/sdc-backend-init:1.9.3
 
 pullPolicy: Always
 
index fed4769..223e023 100644 (file)
@@ -38,8 +38,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-cassandra:1.9.0
-cassandraInitImage: onap/sdc-cassandra-init:1.9.0
+image: onap/sdc-cassandra:1.9.3
+cassandraInitImage: onap/sdc-cassandra-init:1.9.3
 pullPolicy: Always
 
 config:
index e9b2eee..d563e80 100644 (file)
@@ -47,7 +47,7 @@ certInitializer:
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/sdc-frontend:1.9.0
+image: onap/sdc-frontend:1.9.3
 pullPolicy: Always
 
 config:
index aa7d535..1bce6b1 100644 (file)
@@ -59,8 +59,8 @@ certInitializer:
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/sdc-onboard-backend:1.9.0
-onboardingInitImage: onap/sdc-onboard-cassandra-init:1.9.0
+image: onap/sdc-onboard-backend:1.9.3
+onboardingInitImage: onap/sdc-onboard-cassandra-init:1.9.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required