aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/policy/components/policy-api
diff options
context:
space:
mode:
authora.sreekumar <ajith.sreekumar@bell.ca>2022-02-09 12:40:57 +0000
committerPrakhar Pandey <prakhar.pandey@bell.ca>2022-03-22 13:54:41 -0400
commit2f3773631ae41e6c66f2a0222810621044cbbb16 (patch)
treef24dc90e3dee4b0f21862b7d42d6c7ea98c9a24a /kubernetes/policy/components/policy-api
parentf91c26bb28e7ee59ccc941647190c18257f23a01 (diff)
[POLICY] OOM Jakarta changes for PAP,API & PDPs
This review contains the below changes: 1) PAP config changes for spring boot migration 2) savePdpStatistics flag is disabled by default 3) DMaaP connectivity added to PAP consolidated healthcheck 4) Improve PAP & API readiness probe from TCP to HTTP GET based healthcheck api 5) API config changes for springboot migration 6) Update the docker image versions for Jakarta. Change-Id: I8dfc821b1245cd4ef6bdedad7802deb4ac3297e3 Issue-ID: POLICY-3750 Signed-off-by: a.sreekumar <ajith.sreekumar@bell.ca>
Diffstat (limited to 'kubernetes/policy/components/policy-api')
-rw-r--r--kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml97
-rwxr-xr-xkubernetes/policy/components/policy-api/resources/config/config.json73
-rwxr-xr-xkubernetes/policy/components/policy-api/templates/configmap.yaml2
-rwxr-xr-xkubernetes/policy/components/policy-api/templates/deployment.yaml16
-rwxr-xr-xkubernetes/policy/components/policy-api/values.yaml16
5 files changed, 121 insertions, 83 deletions
diff --git a/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml b/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml
new file mode 100644
index 0000000000..c08b035d53
--- /dev/null
+++ b/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml
@@ -0,0 +1,97 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2022 Bell Canada. 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=========================================================
+
+server:
+ port: {{ .Values.service.internalPort }}
+
+spring:
+ security.user:
+ name: "${RESTSERVER_USER}"
+ password: "${RESTSERVER_PASSWORD}"
+ mvc.converters.preferred-json-mapper: gson
+ datasource:
+ url: jdbc:mariadb://{{ .Values.db.service.name }}:{{ .Values.db.service.internalPort}}/policyadmin
+ driverClassName: org.mariadb.jdbc.Driver
+ username: "${SQL_USER}"
+ password: "${SQL_PASSWORD}"
+ jpa:
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.MariaDB103Dialect
+ hibernate:
+ ddl-auto: none
+ naming:
+ physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+ implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
+
+policy-api:
+ name: ApiGroup
+ aaf: false
+
+database:
+ name: PolicyProviderParameterGroup
+ implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl
+ driver: org.mariadb.jdbc.Driver
+ url: jdbc:mariadb://{{ .Values.db.service.name }}:{{ .Values.db.service.internalPort}}/policyadmin
+ user: "${SQL_USER}"
+ password: "${SQL_PASSWORD}"
+ persistenceUnit: PolicyDb
+
+policy-preload:
+ policyTypes:
+ - policytypes/onap.policies.monitoring.tcagen2.yaml
+ - policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml
+ - policytypes/onap.policies.monitoring.dcae-restconfcollector.yaml
+ - policytypes/onap.policies.monitoring.dcae-pm-subscription-handler.yaml
+ - policytypes/onap.policies.monitoring.dcae-pm-mapper.yaml
+ - policytypes/onap.policies.Optimization.yaml
+ - policytypes/onap.policies.optimization.Resource.yaml
+ - policytypes/onap.policies.optimization.Service.yaml
+ - policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml
+ - policytypes/onap.policies.optimization.resource.DistancePolicy.yaml
+ - policytypes/onap.policies.optimization.resource.HpaPolicy.yaml
+ - policytypes/onap.policies.optimization.resource.OptimizationPolicy.yaml
+ - policytypes/onap.policies.optimization.resource.PciPolicy.yaml
+ - policytypes/onap.policies.optimization.service.QueryPolicy.yaml
+ - policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml
+ - policytypes/onap.policies.optimization.resource.Vim_fit.yaml
+ - policytypes/onap.policies.optimization.resource.VnfPolicy.yaml
+ - policytypes/onap.policies.controlloop.guard.Common.yaml
+ - policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml
+ - policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml
+ - policytypes/onap.policies.controlloop.guard.common.MinMax.yaml
+ - policytypes/onap.policies.controlloop.guard.common.Filter.yaml
+ - policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml
+ - policytypes/onap.policies.Naming.yaml
+ - policytypes/onap.policies.Match.yaml
+ - policytypes/onap.policies.native.Drools.yaml
+ - policytypes/onap.policies.native.Xacml.yaml
+ - policytypes/onap.policies.native.Apex.yaml
+ - policytypes/onap.policies.controlloop.operational.Common.yaml
+ - policytypes/onap.policies.controlloop.operational.common.Apex.yaml
+ - policytypes/onap.policies.controlloop.operational.common.Drools.yaml
+ policies:
+ - policies/sdnc.policy.naming.input.tosca.yaml
+
+management:
+ endpoints:
+ web:
+ base-path: /
+ exposure:
+ include: health,metrics,prometheus
+ path-mapping.prometheus: metrics
diff --git a/kubernetes/policy/components/policy-api/resources/config/config.json b/kubernetes/policy/components/policy-api/resources/config/config.json
deleted file mode 100755
index ce59965521..0000000000
--- a/kubernetes/policy/components/policy-api/resources/config/config.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{{/*
-# ============LICENSE_START=======================================================
-# 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.
-# 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=========================================================
-*/}}
-{
- "name":"ApiGroup",
- "restServerParameters":{
- "host":"0.0.0.0",
- "port":6969,
- "userName":"${RESTSERVER_USER}",
- "password":"${RESTSERVER_PASSWORD}",
- "https": true,
- "aaf": false,
- "prometheus": true
- },
- "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 }}/policyadmin",
- "databaseUser": "${SQL_USER}",
- "databasePassword": "${SQL_PASSWORD}",
- "persistenceUnit": "PolicyMariaDb"
- },
- "preloadPolicyTypes": [
- "policytypes/onap.policies.monitoring.tcagen2.yaml",
- "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml",
- "policytypes/onap.policies.Optimization.yaml",
- "policytypes/onap.policies.optimization.Resource.yaml",
- "policytypes/onap.policies.optimization.Service.yaml",
- "policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml",
- "policytypes/onap.policies.optimization.resource.DistancePolicy.yaml",
- "policytypes/onap.policies.optimization.resource.HpaPolicy.yaml",
- "policytypes/onap.policies.optimization.resource.OptimizationPolicy.yaml",
- "policytypes/onap.policies.optimization.resource.PciPolicy.yaml",
- "policytypes/onap.policies.optimization.service.QueryPolicy.yaml",
- "policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml",
- "policytypes/onap.policies.optimization.resource.Vim_fit.yaml",
- "policytypes/onap.policies.optimization.resource.VnfPolicy.yaml",
- "policytypes/onap.policies.controlloop.guard.Common.yaml",
- "policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml",
- "policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml",
- "policytypes/onap.policies.controlloop.guard.common.MinMax.yaml",
- "policytypes/onap.policies.controlloop.guard.common.Filter.yaml",
- "policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml",
- "policytypes/onap.policies.Naming.yaml",
- "policytypes/onap.policies.Match.yaml",
- "policytypes/onap.policies.native.Drools.yaml",
- "policytypes/onap.policies.native.Xacml.yaml",
- "policytypes/onap.policies.native.Apex.yaml",
- "policytypes/onap.policies.controlloop.operational.Common.yaml",
- "policytypes/onap.policies.controlloop.operational.common.Apex.yaml",
- "policytypes/onap.policies.controlloop.operational.common.Drools.yaml"
- ],
- "preloadPolicies" : [
- "policies/sdnc.policy.naming.input.tosca.yaml"
- ]
-}
diff --git a/kubernetes/policy/components/policy-api/templates/configmap.yaml b/kubernetes/policy/components/policy-api/templates/configmap.yaml
index 0c4e870481..9ab25fe2ac 100755
--- a/kubernetes/policy/components/policy-api/templates/configmap.yaml
+++ b/kubernetes/policy/components/policy-api/templates/configmap.yaml
@@ -37,4 +37,4 @@ binaryData:
{{- end }}
{{- end }}
data:
-{{ tpl (.Files.Glob "resources/config/*.{json,xml}").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/*.{yaml,xml}").AsConfig . | indent 2 }} \ No newline at end of file
diff --git a/kubernetes/policy/components/policy-api/templates/deployment.yaml b/kubernetes/policy/components/policy-api/templates/deployment.yaml
index de0558e4cd..f19233e3b4 100755
--- a/kubernetes/policy/components/policy-api/templates/deployment.yaml
+++ b/kubernetes/policy/components/policy-api/templates/deployment.yaml
@@ -64,10 +64,10 @@ spec:
{{- if .Values.global.aafEnabled }}
command: ["sh","-c"]
args: ["source {{ .Values.certInitializer.credsPath }}/.ci;\
- /opt/app/policy/api/bin/policy-api.sh /opt/app/policy/api/etc/mounted/config.json"]
+ /opt/app/policy/api/bin/policy-api.sh /opt/app/policy/api/etc/mounted/apiParameters.yaml"]
{{- else }}
command: ["/opt/app/policy/api/bin/policy-api.sh"]
- args: ["/opt/app/policy/api/etc/mounted/config.json"]
+ args: ["/opt/app/policy/api/etc/mounted/apiParameters.yaml"]
env:
- name: KEYSTORE_PASSWD
{{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keystore-password" "key" "password") | indent 12 }}
@@ -86,10 +86,18 @@ spec:
periodSeconds: {{ .Values.liveness.periodSeconds }}
{{ end -}}
readinessProbe:
- tcpSocket:
+ httpGet:
+ path: {{ .Values.readiness.api }}
port: {{ .Values.service.internalPort }}
+ httpHeaders:
+ - name: Authorization
+ value: Basic {{ printf "%s:%s" .Values.restServer.user .Values.restServer.password | b64enc }}
+ scheme: {{ .Values.readiness.scheme }}
+ successThreshold: {{ .Values.readiness.successThreshold }}
+ failureThreshold: {{ .Values.readiness.failureThreshold }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
+ timeoutSeconds: {{ .Values.readiness.timeout }}
volumeMounts:
{{ include "common.certInitializer.volumeMount" . | indent 10 }}
- mountPath: /etc/localtime
@@ -121,4 +129,4 @@ spec:
emptyDir:
medium: Memory
imagePullSecrets:
- - name: "{{ include "common.namespace" . }}-docker-registry-key"
+ - name: "{{ include "common.namespace" . }}-docker-registry-key" \ No newline at end of file
diff --git a/kubernetes/policy/components/policy-api/values.yaml b/kubernetes/policy/components/policy-api/values.yaml
index 4dfdcae152..89608cfb6f 100755
--- a/kubernetes/policy/components/policy-api/values.yaml
+++ b/kubernetes/policy/components/policy-api/values.yaml
@@ -1,5 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2022 Bell Canada. 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.
@@ -78,7 +79,7 @@ certInitializer:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-api:2.6.0
+image: onap/policy-api:2.6.1
pullPolicy: Always
# flag to enable debugging - application support required
@@ -94,7 +95,7 @@ db:
restServer:
user: policyadmin
- password: none
+ password: zb!XztG34
# default number of instances
replicaCount: 1
@@ -105,15 +106,20 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 20
+ 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: 20
- periodSeconds: 10
+ initialDelaySeconds: 10
+ periodSeconds: 120
+ api: /policy/api/v1/healthcheck
+ scheme: HTTPS
+ successThreshold: 1
+ failureThreshold: 3
+ timeout: 60
service:
type: ClusterIP