Add helm charts for drools,xacml pdps
[policy/docker.git] / helm / policy / components / policy-drools-pdp / templates / statefulset.yaml
diff --git a/helm/policy/components/policy-drools-pdp/templates/statefulset.yaml b/helm/policy/components/policy-drools-pdp/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..e2121fa
--- /dev/null
@@ -0,0 +1,156 @@
+{{/*
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2023 Nordix Foundation.
+#  ================================================================================
+#  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: StatefulSet
+metadata:
+  name: {{ .Chart.Name }}
+  namespace: default
+  labels:
+    app: {{ .Chart.Name }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: release
+    heritage: Helm
+spec:
+  serviceName: {{ .Chart.Name }}
+  replicas: 1
+  selector:
+    matchLabels:
+      app: {{ .Chart.Name }}
+  template:
+    metadata:
+      labels:
+        app: {{ .Chart.Name }}
+        release: release
+    spec:
+      initContainers:
+        - command:
+            - /app/ready.py
+          args:
+            - --job-name
+            - policy-galera-config
+          env:
+            - name: NAMESPACE
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: metadata.namespace
+          image: nexus3.onap.org:10001/onap/oom/readiness:3.0.1
+          imagePullPolicy: Always
+          name: {{ .Chart.Name }}-db-readiness
+
+      containers:
+        - name: {{ .Chart.Name }}
+          image: {{ .Values.image }}
+          imagePullPolicy: Always
+          command: ["sh","-c"]
+          args: ["/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot"]
+          ports:
+            - containerPort: {{ .Values.service.internalPort }}
+            - containerPort: {{ .Values.service.internalPort2 }}
+          livenessProbe:
+            httpGet:
+              path: /healthcheck/controllers
+              port: 6968
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+            timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+            - name: REPLICAS
+              value: "1"
+            - name: SQL_USER
+              valueFrom:
+                secretKeyRef:
+                  name: {{ .Chart.Name }}-db-secret
+                  key: login
+            - name: SQL_PASSWORD
+              valueFrom:
+                secretKeyRef:
+                  name: {{ .Chart.Name }}-db-secret
+                  key: password
+          volumeMounts:
+
+            - mountPath: /etc/localtime
+              name: localtime
+              readOnly: true
+            - mountPath: /tmp/policy-install/config/credentials.conf
+              name: drools-secret
+              subPath: credentials.conf
+            - mountPath: /tmp/policy-install/config/base.conf
+              name: drools-config
+              subPath: base.conf
+            - mountPath: /tmp/policy-install/config/engine-system.properties
+              name: drools-config
+              subPath: engine-system.properties
+            - mountPath: /tmp/policy-install/config/feature-pooling-dmaap.conf
+              name: drools-config
+              subPath: feature-pooling-dmaap.conf
+            - mountPath: /tmp/policy-install/config/logback.xml
+              name: drools-config
+              subPath: logback.xml
+            - mountPath: /tmp/policy-install/config/settings.xml
+              name: drools-config
+              subPath: settings.xml
+            - mountPath: /tmp/policy-install/config/noop.pre.sh
+              name: drools-config
+              subPath: noop.pre.sh
+          resources:
+{{ toYaml .Values.resources.small | indent 12 }}
+      serviceAccountName: {{ .Chart.Name }}-read
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: drools-config
+          configMap:
+            name: {{ .Chart.Name }}-configmap
+            items:
+              - key: base.conf
+                path: base.conf
+                mode: 0755
+              - key: engine-system.properties
+                path: engine-system.properties
+                mode: 0755
+              - key: feature-pooling-dmaap.conf
+                path: feature-pooling-dmaap.conf
+                mode: 0755
+              - key: logback.xml
+                path: logback.xml
+                mode: 0755
+              - key: settings.xml
+                path: settings.xml
+                mode: 0755
+              - key: noop.pre.sh
+                path: noop.pre.sh
+                mode: 0755
+        - name: drools-secret
+          secret:
+            secretName: {{ .Chart.Name }}-secret
+            items:
+              - key: credentials.conf
+                path: credentials.conf
+                mode: 0644
+      imagePullSecrets:
+        - name: "default-docker-registry-key"