From bbb75a0a8457c3b0c05b31dfb24295855c79ecb2 Mon Sep 17 00:00:00 2001
From: Konstantin Tsabolov <konstantin.tsabolov@spherity.com>
Date: Wed, 6 Mar 2024 11:03:16 +0100
Subject: [PATCH] chore(helm): update Helm charts for services

---
 .../deployment/helm/.helmignore               |  23 ++++
 .../deployment/helm/Chart.yaml                |  28 +++-
 .../deployment/helm/README.md                 |  57 --------
 .../deployment/helm/templates/NOTES.txt       |  29 +++-
 .../deployment/helm/templates/_helpers.tpl    |  20 +--
 .../deployment/helm/templates/deployment.yaml |  41 +++---
 .../deployment/helm/templates/hpa.yaml        |   6 +-
 .../deployment/helm/templates/ingress.yaml    |   6 +-
 .../deployment/helm/templates/service.yaml    |   6 +-
 .../helm/templates/serviceaccount.yaml        |   4 +-
 .../deployment/helm/values.yaml               | 114 ++++++++++------
 .../deployment/helm/.helmignore               |  23 ++++
 .../deployment/helm/Chart.yaml                |  28 +++-
 .../deployment/helm/README.md                 |  57 --------
 .../deployment/helm/templates/NOTES.txt       |  29 +++-
 .../deployment/helm/templates/_helpers.tpl    |  20 +--
 .../deployment/helm/templates/deployment.yaml |  41 +++---
 .../deployment/helm/templates/hpa.yaml        |   6 +-
 .../deployment/helm/templates/ingress.yaml    |   6 +-
 .../deployment/helm/templates/service.yaml    |   6 +-
 .../helm/templates/serviceaccount.yaml        |   4 +-
 .../deployment/helm/values.yaml               | 114 ++++++++++------
 apps/did-manager/deployment/helm/.helmignore  |  23 ++++
 apps/did-manager/deployment/helm/Chart.yaml   |  24 ++++
 .../deployment/helm/templates/NOTES.txt       |  22 +++
 .../deployment/helm/templates/_helpers.tpl    |  62 +++++++++
 .../deployment/helm/templates/deployment.yaml |  80 +++++++++++
 .../deployment/helm/templates/hpa.yaml        |  32 +++++
 .../deployment/helm/templates/ingress.yaml    |  61 +++++++++
 .../deployment/helm/templates/service.yaml    |  15 +++
 .../helm/templates/serviceaccount.yaml        |  13 ++
 apps/did-manager/deployment/helm/values.yaml  | 121 +++++++++++++++++
 .../proof-manager/deployment/helm/.helmignore |  23 ++++
 apps/proof-manager/deployment/helm/Chart.yaml |  22 ++-
 apps/proof-manager/deployment/helm/README.md  |  51 -------
 .../deployment/helm/templates/NOTES.txt       |  29 +++-
 .../deployment/helm/templates/_helpers.tpl    |  20 +--
 .../deployment/helm/templates/deployment.yaml |  41 +++---
 .../deployment/helm/templates/hpa.yaml        |   6 +-
 .../deployment/helm/templates/ingress.yaml    |   6 +-
 .../deployment/helm/templates/service.yaml    |   6 +-
 .../helm/templates/serviceaccount.yaml        |   4 +-
 .../proof-manager/deployment/helm/values.yaml | 114 ++++++++++------
 .../deployment/helm/.helmignore               |  23 ++++
 .../schema-manager/deployment/helm/Chart.yaml |  28 ++--
 apps/schema-manager/deployment/helm/README.md |  57 --------
 .../deployment/helm/templates/NOTES.txt       |  29 +++-
 .../deployment/helm/templates/_helpers.tpl    |  20 +--
 .../deployment/helm/templates/deployment.yaml |  41 +++---
 .../deployment/helm/templates/hpa.yaml        |   6 +-
 .../deployment/helm/templates/ingress.yaml    |   6 +-
 .../deployment/helm/templates/service.yaml    |   6 +-
 .../helm/templates/serviceaccount.yaml        |   4 +-
 .../deployment/helm/values.yaml               | 114 ++++++++++------
 .../deployment/helm/.helmignore               |  23 ++++
 .../deployment/helm/Chart.yaml                |  28 +++-
 .../ssi-abstraction/deployment/helm/README.md |  67 ----------
 .../deployment/helm/templates/NOTES.txt       |  30 +++--
 .../deployment/helm/templates/_helpers.tpl    |  20 +--
 .../deployment/helm/templates/configmap.yaml  |  22 +++
 .../deployment/helm/templates/deployment.yaml |  69 ++++------
 .../deployment/helm/templates/hpa.yaml        |   6 +-
 .../deployment/helm/templates/ingress.yaml    |   8 +-
 .../deployment/helm/templates/secret.yaml     |  13 ++
 .../deployment/helm/templates/service.yaml    |  12 +-
 .../helm/templates/serviceaccount.yaml        |   4 +-
 .../deployment/helm/values.yaml               | 126 ++++++++++--------
 67 files changed, 1387 insertions(+), 818 deletions(-)
 create mode 100644 apps/connection-manager/deployment/helm/.helmignore
 delete mode 100644 apps/connection-manager/deployment/helm/README.md
 create mode 100644 apps/credential-manager/deployment/helm/.helmignore
 delete mode 100644 apps/credential-manager/deployment/helm/README.md
 create mode 100644 apps/did-manager/deployment/helm/.helmignore
 create mode 100644 apps/did-manager/deployment/helm/Chart.yaml
 create mode 100644 apps/did-manager/deployment/helm/templates/NOTES.txt
 create mode 100644 apps/did-manager/deployment/helm/templates/_helpers.tpl
 create mode 100644 apps/did-manager/deployment/helm/templates/deployment.yaml
 create mode 100644 apps/did-manager/deployment/helm/templates/hpa.yaml
 create mode 100644 apps/did-manager/deployment/helm/templates/ingress.yaml
 create mode 100644 apps/did-manager/deployment/helm/templates/service.yaml
 create mode 100644 apps/did-manager/deployment/helm/templates/serviceaccount.yaml
 create mode 100644 apps/did-manager/deployment/helm/values.yaml
 create mode 100644 apps/proof-manager/deployment/helm/.helmignore
 delete mode 100644 apps/proof-manager/deployment/helm/README.md
 create mode 100644 apps/schema-manager/deployment/helm/.helmignore
 delete mode 100644 apps/schema-manager/deployment/helm/README.md
 create mode 100644 apps/ssi-abstraction/deployment/helm/.helmignore
 delete mode 100644 apps/ssi-abstraction/deployment/helm/README.md
 create mode 100644 apps/ssi-abstraction/deployment/helm/templates/configmap.yaml
 create mode 100644 apps/ssi-abstraction/deployment/helm/templates/secret.yaml

diff --git a/apps/connection-manager/deployment/helm/.helmignore b/apps/connection-manager/deployment/helm/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/apps/connection-manager/deployment/helm/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/apps/connection-manager/deployment/helm/Chart.yaml b/apps/connection-manager/deployment/helm/Chart.yaml
index 81e52c6..abf1d6e 100644
--- a/apps/connection-manager/deployment/helm/Chart.yaml
+++ b/apps/connection-manager/deployment/helm/Chart.yaml
@@ -1,10 +1,24 @@
 apiVersion: v2
-appVersion: "1.0.0"
+name: connection-manager
+description: OCM Connection Manager Helm chart
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
 type: application
 
-name: connection-manager
-description: OCM Connection Manager Helm Chart
-version: 1.0.0
-home: https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine
-sources:
-- https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/connection-manager
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 1.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.0.0"
diff --git a/apps/connection-manager/deployment/helm/README.md b/apps/connection-manager/deployment/helm/README.md
deleted file mode 100644
index 5ef520e..0000000
--- a/apps/connection-manager/deployment/helm/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# connection-manager
-
-![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-
-OCM Connection Manager Helm Chart
-
-**Homepage:** <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine>
-
-## Source Code
-
-* <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/connection-manager>
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| autoscaling.enabled | bool | `false` |  |
-| autoscaling.maxReplicas | int | `3` |  |
-| autoscaling.minReplicas | int | `1` |  |
-| autoscaling.targetCPUUtilizationPercentage | int | `70` |  |
-| autoscaling.targetMemoryUtilizationPercentage | int | `70` |  |
-| connectionManager.http.host | string | `"0.0.0.0"` |  |
-| connectionManager.http.port | int | `3000` |  |
-| connectionManager.nats.monitoringUrl | string | `"http://ocm-nats.default.svc.cluster.local:8222"` |  |
-| connectionManager.nats.password | string | `"nats_password"` |  |
-| connectionManager.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` |  |
-| connectionManager.nats.user | string | `"nats_client"` |  |
-| fullnameOverride | string | `""` |  |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"ocm-connection-manager"` |  |
-| image.tag | string | `"latest"` |  |
-| imagePullSecrets | list | `[]` |  |
-| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` |  |
-| ingress.className | string | `"nginx"` |  |
-| ingress.enabled | bool | `true` |  |
-| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` |  |
-| ingress.hosts[0].paths[0].backend.service.name | string | `"connection-manager"` |  |
-| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` |  |
-| ingress.hosts[0].paths[0].path | string | `"/"` |  |
-| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  |
-| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` |  |
-| ingress.tls[0].secretName | string | `"connection-manager-tls"` |  |
-| nameOverride | string | `""` |  |
-| podAnnotations | object | `{}` |  |
-| podLabels | object | `{}` |  |
-| podSecurityContext | object | `{}` |  |
-| replicaCount | int | `1` |  |
-| resources | object | `{}` |  |
-| securityContext | object | `{}` |  |
-| service.port | int | `3000` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.automount | bool | `true` |  |
-| serviceAccount.create | bool | `true` |  |
-| serviceAccount.name | string | `""` |  |
-
-----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
diff --git a/apps/connection-manager/deployment/helm/templates/NOTES.txt b/apps/connection-manager/deployment/helm/templates/NOTES.txt
index 3ec8586..ed96bff 100644
--- a/apps/connection-manager/deployment/helm/templates/NOTES.txt
+++ b/apps/connection-manager/deployment/helm/templates/NOTES.txt
@@ -1,7 +1,22 @@
-CHART NAME: {{ .Chart.Name }}
-CHART VERSION: {{ .Chart.Version }}
-APP VERSION: {{ .Chart.AppVersion }}
-
-{{ .Chart.Name | splitList "-" | join " " | title }} can be accessed on the following DNS name from within your cluster:
-
-   {{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "connection-manager.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.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 --namespace {{ .Release.Namespace }} svc -w {{ include "connection-manager.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "connection-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "connection-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/apps/connection-manager/deployment/helm/templates/_helpers.tpl b/apps/connection-manager/deployment/helm/templates/_helpers.tpl
index 7d19476..8407974 100644
--- a/apps/connection-manager/deployment/helm/templates/_helpers.tpl
+++ b/apps/connection-manager/deployment/helm/templates/_helpers.tpl
@@ -1,7 +1,7 @@
 {{/*
 Expand the name of the chart.
 */}}
-{{- define "deployment.name" -}}
+{{- define "connection-manager.name" -}}
 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
@@ -10,7 +10,7 @@ Create a default fully qualified app name.
 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
 If release name contains chart name it will be used as a full name.
 */}}
-{{- define "deployment.fullname" -}}
+{{- define "connection-manager.fullname" -}}
 {{- if .Values.fullnameOverride }}
 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
 {{- else }}
@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
 {{/*
 Create chart name and version as used by the chart label.
 */}}
-{{- define "deployment.chart" -}}
+{{- define "connection-manager.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
 {{/*
 Common labels
 */}}
-{{- define "deployment.labels" -}}
-helm.sh/chart: {{ include "deployment.chart" . }}
-{{ include "deployment.selectorLabels" . }}
+{{- define "connection-manager.labels" -}}
+helm.sh/chart: {{ include "connection-manager.chart" . }}
+{{ include "connection-manager.selectorLabels" . }}
 {{- if .Chart.AppVersion }}
 app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 {{- end }}
@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{/*
 Selector labels
 */}}
-{{- define "deployment.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "deployment.name" . }}
+{{- define "connection-manager.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "connection-manager.name" . }}
 app.kubernetes.io/instance: {{ .Release.Name }}
 {{- end }}
 
 {{/*
 Create the name of the service account to use
 */}}
-{{- define "deployment.serviceAccountName" -}}
+{{- define "connection-manager.serviceAccountName" -}}
 {{- if .Values.serviceAccount.create }}
-{{- default (include "deployment.fullname" .) .Values.serviceAccount.name }}
+{{- default (include "connection-manager.fullname" .) .Values.serviceAccount.name }}
 {{- else }}
 {{- default "default" .Values.serviceAccount.name }}
 {{- end }}
diff --git a/apps/connection-manager/deployment/helm/templates/deployment.yaml b/apps/connection-manager/deployment/helm/templates/deployment.yaml
index c33052c..a5a756c 100644
--- a/apps/connection-manager/deployment/helm/templates/deployment.yaml
+++ b/apps/connection-manager/deployment/helm/templates/deployment.yaml
@@ -1,16 +1,16 @@
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "connection-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "connection-manager.labels" . | nindent 4 }}
 spec:
   {{- if not .Values.autoscaling.enabled }}
   replicas: {{ .Values.replicaCount }}
   {{- end }}
   selector:
     matchLabels:
-      {{- include "deployment.selectorLabels" . | nindent 6 }}
+      {{- include "connection-manager.selectorLabels" . | nindent 6 }}
   template:
     metadata:
       {{- with .Values.podAnnotations }}
@@ -18,7 +18,7 @@ spec:
         {{- toYaml . | nindent 8 }}
       {{- end }}
       labels:
-        {{- include "deployment.labels" . | nindent 8 }}
+        {{- include "connection-manager.labels" . | nindent 8 }}
         {{- with .Values.podLabels }}
         {{- toYaml . | nindent 8 }}
         {{- end }}
@@ -27,7 +27,7 @@ spec:
       imagePullSecrets:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      serviceAccountName: {{ include "deployment.serviceAccountName" . }}
+      serviceAccountName: {{ include "connection-manager.serviceAccountName" . }}
       securityContext:
         {{- toYaml .Values.podSecurityContext | nindent 8 }}
       containers:
@@ -37,30 +37,25 @@ spec:
           image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
-            - name: HTTP_HOST
-              value: {{ .Values.connectionManager.http.host | quote }}
+            - name: HTTP_HOSTNAME
+              value: {{ .Values.http.hostname }}
             - name: HTTP_PORT
-              value: {{ .Values.connectionManager.http.port | quote}}
-            - name: NATS_URL
-              value: {{ .Values.connectionManager.nats.url | quote }}
-            - name: NATS_USER
-              value: {{ .Values.connectionManager.nats.user | quote }}
-            - name: NATS_PASSWORD
-              value: {{ .Values.connectionManager.nats.password | quote }}
-            - name: NATS_MONITORING_URL
-              value: {{ .Values.connectionManager.nats.monitoringUrl | quote }}
+              value: {{ .Values.http.port | quote }}
+          envFrom:
+            - configMapRef:
+                name: ocm-config-map
+            - secretRef:
+                name: ocm-secret
           ports:
             - name: http
-              containerPort: {{ .Values.service.port }}
+              containerPort: {{ .Values.http.port }}
               protocol: TCP
           livenessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.livenessProbe | nindent 12 }}
           readinessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.readinessProbe | nindent 12 }}
+          startupProbe:
+            {{- toYaml .Values.startupProbe | nindent 12 }}
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
           {{- with .Values.volumeMounts }}
diff --git a/apps/connection-manager/deployment/helm/templates/hpa.yaml b/apps/connection-manager/deployment/helm/templates/hpa.yaml
index 7d84383..10fac2e 100644
--- a/apps/connection-manager/deployment/helm/templates/hpa.yaml
+++ b/apps/connection-manager/deployment/helm/templates/hpa.yaml
@@ -2,14 +2,14 @@
 apiVersion: autoscaling/v2
 kind: HorizontalPodAutoscaler
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "connection-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "connection-manager.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
-    name: {{ include "deployment.fullname" . }}
+    name: {{ include "connection-manager.fullname" . }}
   minReplicas: {{ .Values.autoscaling.minReplicas }}
   maxReplicas: {{ .Values.autoscaling.maxReplicas }}
   metrics:
diff --git a/apps/connection-manager/deployment/helm/templates/ingress.yaml b/apps/connection-manager/deployment/helm/templates/ingress.yaml
index 803a0d9..57e7143 100644
--- a/apps/connection-manager/deployment/helm/templates/ingress.yaml
+++ b/apps/connection-manager/deployment/helm/templates/ingress.yaml
@@ -1,5 +1,5 @@
 {{- if .Values.ingress.enabled -}}
-{{- $fullName := include "deployment.fullname" . -}}
+{{- $fullName := include "connection-manager.fullname" . -}}
 {{- $svcPort := .Values.service.port -}}
 {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
   {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
@@ -17,7 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "connection-manager.labels" . | nindent 4 }}
   {{- with .Values.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
@@ -44,7 +44,7 @@ spec:
           {{- range .paths }}
           - path: {{ .path }}
             {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
-            pathType: {{ .pathType }} 
+            pathType: {{ .pathType }}
             {{- end }}
             backend:
               {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
diff --git a/apps/connection-manager/deployment/helm/templates/service.yaml b/apps/connection-manager/deployment/helm/templates/service.yaml
index 5227275..64ab93b 100644
--- a/apps/connection-manager/deployment/helm/templates/service.yaml
+++ b/apps/connection-manager/deployment/helm/templates/service.yaml
@@ -1,9 +1,9 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "connection-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "connection-manager.labels" . | nindent 4 }}
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -12,4 +12,4 @@ spec:
       protocol: TCP
       name: http
   selector:
-    {{- include "deployment.selectorLabels" . | nindent 4 }}
+    {{- include "connection-manager.selectorLabels" . | nindent 4 }}
diff --git a/apps/connection-manager/deployment/helm/templates/serviceaccount.yaml b/apps/connection-manager/deployment/helm/templates/serviceaccount.yaml
index 8616c68..a4f04c7 100644
--- a/apps/connection-manager/deployment/helm/templates/serviceaccount.yaml
+++ b/apps/connection-manager/deployment/helm/templates/serviceaccount.yaml
@@ -2,9 +2,9 @@
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: {{ include "deployment.serviceAccountName" . }}
+  name: {{ include "connection-manager.serviceAccountName" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "connection-manager.labels" . | nindent 4 }}
   {{- with .Values.serviceAccount.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/apps/connection-manager/deployment/helm/values.yaml b/apps/connection-manager/deployment/helm/values.yaml
index d5eb309..e33e7b3 100644
--- a/apps/connection-manager/deployment/helm/values.yaml
+++ b/apps/connection-manager/deployment/helm/values.yaml
@@ -1,10 +1,16 @@
+# Default values for connection-manager.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
 replicaCount: 1
 
 image:
-  repository: ocm-connection-manager
+  repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/connection-manager
+  name: connection-manager
+  tag: main
+  sha: ""
   pullPolicy: IfNotPresent
-  # Overrides the image tag whose default is the chart appVersion.
-  tag: "latest"
+  pullSecrets: key
 
 imagePullSecrets: []
 nameOverride: ""
@@ -12,22 +18,24 @@ fullnameOverride: ""
 
 serviceAccount:
   # Specifies whether a service account should be created
-  create: true
+  create: false
   # Automatically mount a ServiceAccount's API credentials?
   automount: true
   # Annotations to add to the service account
   annotations: {}
   # The name of the service account to use.
   # If not set and create is true, a name is generated using the fullname template
-  name: ""
+  name: ocm-service-account
 
 podAnnotations: {}
 podLabels: {}
 
-podSecurityContext: {}
+podSecurityContext:
+  {}
   # fsGroup: 2000
 
-securityContext: {}
+securityContext:
+  {}
   # capabilities:
   #   drop:
   #   - ALL
@@ -36,54 +44,78 @@ securityContext: {}
   # runAsUser: 1000
 
 service:
-  port: 3000
+  type: ClusterIP
+  port: 80
 
 ingress:
-  enabled: true
-  className: nginx
+  enabled: false
+  className: ""
   annotations:
-    kubernetes.io/ingress.class: nginx
+    {}
+    # kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
   hosts:
-    - host: kubernetes.docker.internal
+    - host: chart-example.local
       paths:
         - path: /
-          pathType: Prefix
-          backend:
-            service:
-              name: connection-manager
-              port:
-                number: 3000
-  tls:
-   - secretName: connection-manager-tls
-     hosts:
-       - kubernetes.docker.internal
-
-resources: {}
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+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: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
   # requests:
-  #   cpu: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
+
+livenessProbe:
+  httpGet:
+    path: /health
+    port: http
+readinessProbe:
+  httpGet:
+    path: /health
+    port: http
+startupProbe:
+  httpGet:
+    path: /health
+    port: http
 
 autoscaling:
   enabled: false
   minReplicas: 1
-  maxReplicas: 3
-  targetCPUUtilizationPercentage: 70
-  targetMemoryUtilizationPercentage: 70
-
-connectionManager:
-  http:
-    host: 0.0.0.0
-    port: 3000
-  nats:
-    url: nats://ocm-nats.default.svc.cluster.local:4222
-    user: nats_client
-    password: nats_password
-    monitoringUrl: http://ocm-nats.default.svc.cluster.local:8222
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+# Additional volumes on the output Deployment definition.
+volumes: []
+# - name: foo
+#   secret:
+#     secretName: mysecret
+#     optional: false
+
+# Additional volumeMounts on the output Deployment definition.
+volumeMounts: []
+# - name: foo
+#   mountPath: "/etc/foo"
+#   readOnly: true
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+http:
+  hostname: "0.0.0.0"
+  port: 3000
diff --git a/apps/credential-manager/deployment/helm/.helmignore b/apps/credential-manager/deployment/helm/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/apps/credential-manager/deployment/helm/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/apps/credential-manager/deployment/helm/Chart.yaml b/apps/credential-manager/deployment/helm/Chart.yaml
index 3d5755c..80a1969 100644
--- a/apps/credential-manager/deployment/helm/Chart.yaml
+++ b/apps/credential-manager/deployment/helm/Chart.yaml
@@ -1,10 +1,24 @@
 apiVersion: v2
-appVersion: "1.0.0"
+name: credential-manager
+description: OCM Credential Manager Helm chart
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
 type: application
 
-name: credential-manager
-description: OCM Credential Manager Helm Chart
-version: 1.0.0
-home: https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine
-sources:
-- https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/credential-manager
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 1.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.0.0"
diff --git a/apps/credential-manager/deployment/helm/README.md b/apps/credential-manager/deployment/helm/README.md
deleted file mode 100644
index 2ab828c..0000000
--- a/apps/credential-manager/deployment/helm/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# credential-manager
-
-![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-
-OCM Credential Manager Helm Chart
-
-**Homepage:** <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine>
-
-## Source Code
-
-* <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/credential-manager>
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| autoscaling.enabled | bool | `false` |  |
-| autoscaling.maxReplicas | int | `3` |  |
-| autoscaling.minReplicas | int | `1` |  |
-| autoscaling.targetCPUUtilizationPercentage | int | `70` |  |
-| autoscaling.targetMemoryUtilizationPercentage | int | `70` |  |
-| credentialManager.http.host | string | `"0.0.0.0"` |  |
-| credentialManager.http.port | int | `3000` |  |
-| credentialManager.nats.monitoringUrl | string | `"http://ocm-nats.default.svc.cluster.local:8222"` |  |
-| credentialManager.nats.password | string | `"nats_password"` |  |
-| credentialManager.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` |  |
-| credentialManager.nats.user | string | `"nats_client"` |  |
-| fullnameOverride | string | `""` |  |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"ocm-credential-manager"` |  |
-| image.tag | string | `"latest"` |  |
-| imagePullSecrets | list | `[]` |  |
-| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` |  |
-| ingress.className | string | `"nginx"` |  |
-| ingress.enabled | bool | `true` |  |
-| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` |  |
-| ingress.hosts[0].paths[0].backend.service.name | string | `"credential-manager"` |  |
-| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` |  |
-| ingress.hosts[0].paths[0].path | string | `"/"` |  |
-| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  |
-| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` |  |
-| ingress.tls[0].secretName | string | `"credential-manager-tls"` |  |
-| nameOverride | string | `""` |  |
-| podAnnotations | object | `{}` |  |
-| podLabels | object | `{}` |  |
-| podSecurityContext | object | `{}` |  |
-| replicaCount | int | `1` |  |
-| resources | object | `{}` |  |
-| securityContext | object | `{}` |  |
-| service.port | int | `3000` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.automount | bool | `true` |  |
-| serviceAccount.create | bool | `true` |  |
-| serviceAccount.name | string | `""` |  |
-
-----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
diff --git a/apps/credential-manager/deployment/helm/templates/NOTES.txt b/apps/credential-manager/deployment/helm/templates/NOTES.txt
index 3ec8586..a0a462a 100644
--- a/apps/credential-manager/deployment/helm/templates/NOTES.txt
+++ b/apps/credential-manager/deployment/helm/templates/NOTES.txt
@@ -1,7 +1,22 @@
-CHART NAME: {{ .Chart.Name }}
-CHART VERSION: {{ .Chart.Version }}
-APP VERSION: {{ .Chart.AppVersion }}
-
-{{ .Chart.Name | splitList "-" | join " " | title }} can be accessed on the following DNS name from within your cluster:
-
-   {{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "credential-manager.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.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 --namespace {{ .Release.Namespace }} svc -w {{ include "credential-manager.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "credential-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "credential-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/apps/credential-manager/deployment/helm/templates/_helpers.tpl b/apps/credential-manager/deployment/helm/templates/_helpers.tpl
index 7d19476..0b75717 100644
--- a/apps/credential-manager/deployment/helm/templates/_helpers.tpl
+++ b/apps/credential-manager/deployment/helm/templates/_helpers.tpl
@@ -1,7 +1,7 @@
 {{/*
 Expand the name of the chart.
 */}}
-{{- define "deployment.name" -}}
+{{- define "credential-manager.name" -}}
 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
@@ -10,7 +10,7 @@ Create a default fully qualified app name.
 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
 If release name contains chart name it will be used as a full name.
 */}}
-{{- define "deployment.fullname" -}}
+{{- define "credential-manager.fullname" -}}
 {{- if .Values.fullnameOverride }}
 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
 {{- else }}
@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
 {{/*
 Create chart name and version as used by the chart label.
 */}}
-{{- define "deployment.chart" -}}
+{{- define "credential-manager.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
 {{/*
 Common labels
 */}}
-{{- define "deployment.labels" -}}
-helm.sh/chart: {{ include "deployment.chart" . }}
-{{ include "deployment.selectorLabels" . }}
+{{- define "credential-manager.labels" -}}
+helm.sh/chart: {{ include "credential-manager.chart" . }}
+{{ include "credential-manager.selectorLabels" . }}
 {{- if .Chart.AppVersion }}
 app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 {{- end }}
@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{/*
 Selector labels
 */}}
-{{- define "deployment.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "deployment.name" . }}
+{{- define "credential-manager.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "credential-manager.name" . }}
 app.kubernetes.io/instance: {{ .Release.Name }}
 {{- end }}
 
 {{/*
 Create the name of the service account to use
 */}}
-{{- define "deployment.serviceAccountName" -}}
+{{- define "credential-manager.serviceAccountName" -}}
 {{- if .Values.serviceAccount.create }}
-{{- default (include "deployment.fullname" .) .Values.serviceAccount.name }}
+{{- default (include "credential-manager.fullname" .) .Values.serviceAccount.name }}
 {{- else }}
 {{- default "default" .Values.serviceAccount.name }}
 {{- end }}
diff --git a/apps/credential-manager/deployment/helm/templates/deployment.yaml b/apps/credential-manager/deployment/helm/templates/deployment.yaml
index ac83b30..6ce1e99 100644
--- a/apps/credential-manager/deployment/helm/templates/deployment.yaml
+++ b/apps/credential-manager/deployment/helm/templates/deployment.yaml
@@ -1,16 +1,16 @@
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "credential-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "credential-manager.labels" . | nindent 4 }}
 spec:
   {{- if not .Values.autoscaling.enabled }}
   replicas: {{ .Values.replicaCount }}
   {{- end }}
   selector:
     matchLabels:
-      {{- include "deployment.selectorLabels" . | nindent 6 }}
+      {{- include "credential-manager.selectorLabels" . | nindent 6 }}
   template:
     metadata:
       {{- with .Values.podAnnotations }}
@@ -18,7 +18,7 @@ spec:
         {{- toYaml . | nindent 8 }}
       {{- end }}
       labels:
-        {{- include "deployment.labels" . | nindent 8 }}
+        {{- include "credential-manager.labels" . | nindent 8 }}
         {{- with .Values.podLabels }}
         {{- toYaml . | nindent 8 }}
         {{- end }}
@@ -27,7 +27,7 @@ spec:
       imagePullSecrets:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      serviceAccountName: {{ include "deployment.serviceAccountName" . }}
+      serviceAccountName: {{ include "credential-manager.serviceAccountName" . }}
       securityContext:
         {{- toYaml .Values.podSecurityContext | nindent 8 }}
       containers:
@@ -37,30 +37,25 @@ spec:
           image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
-            - name: HTTP_HOST
-              value: {{ .Values.credentialManager.http.host | quote }}
+            - name: HTTP_HOSTNAME
+              value: {{ .Values.http.hostname }}
             - name: HTTP_PORT
-              value: {{ .Values.credentialManager.http.port | quote}}
-            - name: NATS_URL
-              value: {{ .Values.credentialManager.nats.url | quote }}
-            - name: NATS_USER
-              value: {{ .Values.credentialManager.nats.user | quote }}
-            - name: NATS_PASSWORD
-              value: {{ .Values.credentialManager.nats.password | quote }}
-            - name: NATS_MONITORING_URL
-              value: {{ .Values.credentialManager.nats.monitoringUrl | quote }}
+              value: {{ .Values.http.port | quote }}
+          envFrom:
+            - configMapRef:
+                name: ocm-config-map
+            - secretRef:
+                name: ocm-secret
           ports:
             - name: http
-              containerPort: {{ .Values.service.port }}
+              containerPort: {{ .Values.http.port }}
               protocol: TCP
           livenessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.livenessProbe | nindent 12 }}
           readinessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.readinessProbe | nindent 12 }}
+          startupProbe:
+            {{- toYaml .Values.startupProbe | nindent 12 }}
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
           {{- with .Values.volumeMounts }}
diff --git a/apps/credential-manager/deployment/helm/templates/hpa.yaml b/apps/credential-manager/deployment/helm/templates/hpa.yaml
index 7d84383..5bf7a76 100644
--- a/apps/credential-manager/deployment/helm/templates/hpa.yaml
+++ b/apps/credential-manager/deployment/helm/templates/hpa.yaml
@@ -2,14 +2,14 @@
 apiVersion: autoscaling/v2
 kind: HorizontalPodAutoscaler
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "credential-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "credential-manager.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
-    name: {{ include "deployment.fullname" . }}
+    name: {{ include "credential-manager.fullname" . }}
   minReplicas: {{ .Values.autoscaling.minReplicas }}
   maxReplicas: {{ .Values.autoscaling.maxReplicas }}
   metrics:
diff --git a/apps/credential-manager/deployment/helm/templates/ingress.yaml b/apps/credential-manager/deployment/helm/templates/ingress.yaml
index 803a0d9..391db9c 100644
--- a/apps/credential-manager/deployment/helm/templates/ingress.yaml
+++ b/apps/credential-manager/deployment/helm/templates/ingress.yaml
@@ -1,5 +1,5 @@
 {{- if .Values.ingress.enabled -}}
-{{- $fullName := include "deployment.fullname" . -}}
+{{- $fullName := include "credential-manager.fullname" . -}}
 {{- $svcPort := .Values.service.port -}}
 {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
   {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
@@ -17,7 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "credential-manager.labels" . | nindent 4 }}
   {{- with .Values.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
@@ -44,7 +44,7 @@ spec:
           {{- range .paths }}
           - path: {{ .path }}
             {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
-            pathType: {{ .pathType }} 
+            pathType: {{ .pathType }}
             {{- end }}
             backend:
               {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
diff --git a/apps/credential-manager/deployment/helm/templates/service.yaml b/apps/credential-manager/deployment/helm/templates/service.yaml
index 5227275..1aebf27 100644
--- a/apps/credential-manager/deployment/helm/templates/service.yaml
+++ b/apps/credential-manager/deployment/helm/templates/service.yaml
@@ -1,9 +1,9 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "credential-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "credential-manager.labels" . | nindent 4 }}
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -12,4 +12,4 @@ spec:
       protocol: TCP
       name: http
   selector:
-    {{- include "deployment.selectorLabels" . | nindent 4 }}
+    {{- include "credential-manager.selectorLabels" . | nindent 4 }}
diff --git a/apps/credential-manager/deployment/helm/templates/serviceaccount.yaml b/apps/credential-manager/deployment/helm/templates/serviceaccount.yaml
index 8616c68..98e7d71 100644
--- a/apps/credential-manager/deployment/helm/templates/serviceaccount.yaml
+++ b/apps/credential-manager/deployment/helm/templates/serviceaccount.yaml
@@ -2,9 +2,9 @@
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: {{ include "deployment.serviceAccountName" . }}
+  name: {{ include "credential-manager.serviceAccountName" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "credential-manager.labels" . | nindent 4 }}
   {{- with .Values.serviceAccount.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/apps/credential-manager/deployment/helm/values.yaml b/apps/credential-manager/deployment/helm/values.yaml
index c923b44..286dd41 100644
--- a/apps/credential-manager/deployment/helm/values.yaml
+++ b/apps/credential-manager/deployment/helm/values.yaml
@@ -1,10 +1,16 @@
+# Default values for credential-manager.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
 replicaCount: 1
 
 image:
-  repository: ocm-credential-manager
+  repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/credential-manager
+  name: credential-manager
+  tag: main
+  sha: ""
   pullPolicy: IfNotPresent
-  # Overrides the image tag whose default is the chart appVersion.
-  tag: "latest"
+  pullSecrets: key
 
 imagePullSecrets: []
 nameOverride: ""
@@ -12,22 +18,24 @@ fullnameOverride: ""
 
 serviceAccount:
   # Specifies whether a service account should be created
-  create: true
+  create: false
   # Automatically mount a ServiceAccount's API credentials?
   automount: true
   # Annotations to add to the service account
   annotations: {}
   # The name of the service account to use.
   # If not set and create is true, a name is generated using the fullname template
-  name: ""
+  name: ocm-service-account
 
 podAnnotations: {}
 podLabels: {}
 
-podSecurityContext: {}
+podSecurityContext:
+  {}
   # fsGroup: 2000
 
-securityContext: {}
+securityContext:
+  {}
   # capabilities:
   #   drop:
   #   - ALL
@@ -36,54 +44,78 @@ securityContext: {}
   # runAsUser: 1000
 
 service:
-  port: 3000
+  type: ClusterIP
+  port: 80
 
 ingress:
-  enabled: true
-  className: nginx
+  enabled: false
+  className: ""
   annotations:
-    kubernetes.io/ingress.class: nginx
+    {}
+    # kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
   hosts:
-    - host: kubernetes.docker.internal
+    - host: chart-example.local
       paths:
         - path: /
-          pathType: Prefix
-          backend:
-            service:
-              name: credential-manager
-              port:
-                number: 3000
-  tls:
-   - secretName: credential-manager-tls
-     hosts:
-       - kubernetes.docker.internal
-
-resources: {}
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+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: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
   # requests:
-  #   cpu: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
+
+livenessProbe:
+  httpGet:
+    path: /health
+    port: http
+readinessProbe:
+  httpGet:
+    path: /health
+    port: http
+startupProbe:
+  httpGet:
+    path: /health
+    port: http
 
 autoscaling:
   enabled: false
   minReplicas: 1
-  maxReplicas: 3
-  targetCPUUtilizationPercentage: 70
-  targetMemoryUtilizationPercentage: 70
-
-credentialManager:
-  http:
-    host: 0.0.0.0
-    port: 3000
-  nats:
-    url: nats://ocm-nats.default.svc.cluster.local:4222
-    user: nats_client
-    password: nats_password
-    monitoringUrl: http://ocm-nats.default.svc.cluster.local:8222
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+# Additional volumes on the output Deployment definition.
+volumes: []
+# - name: foo
+#   secret:
+#     secretName: mysecret
+#     optional: false
+
+# Additional volumeMounts on the output Deployment definition.
+volumeMounts: []
+# - name: foo
+#   mountPath: "/etc/foo"
+#   readOnly: true
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+http:
+  hostname: "0.0.0.0"
+  port: 3000
diff --git a/apps/did-manager/deployment/helm/.helmignore b/apps/did-manager/deployment/helm/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/apps/did-manager/deployment/helm/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/apps/did-manager/deployment/helm/Chart.yaml b/apps/did-manager/deployment/helm/Chart.yaml
new file mode 100644
index 0000000..8f0e5df
--- /dev/null
+++ b/apps/did-manager/deployment/helm/Chart.yaml
@@ -0,0 +1,24 @@
+apiVersion: v2
+name: did-manager
+description: OCM DID Manager Helm chart
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+type: application
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 1.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.0.0"
diff --git a/apps/did-manager/deployment/helm/templates/NOTES.txt b/apps/did-manager/deployment/helm/templates/NOTES.txt
new file mode 100644
index 0000000..9dbe863
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/NOTES.txt
@@ -0,0 +1,22 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "did-manager.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.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 --namespace {{ .Release.Namespace }} svc -w {{ include "did-manager.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "did-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "did-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/apps/did-manager/deployment/helm/templates/_helpers.tpl b/apps/did-manager/deployment/helm/templates/_helpers.tpl
new file mode 100644
index 0000000..78105ca
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/_helpers.tpl
@@ -0,0 +1,62 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "did-manager.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "did-manager.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "did-manager.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "did-manager.labels" -}}
+helm.sh/chart: {{ include "did-manager.chart" . }}
+{{ include "did-manager.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "did-manager.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "did-manager.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "did-manager.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "did-manager.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/apps/did-manager/deployment/helm/templates/deployment.yaml b/apps/did-manager/deployment/helm/templates/deployment.yaml
new file mode 100644
index 0000000..e840eeb
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/deployment.yaml
@@ -0,0 +1,80 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ include "did-manager.fullname" . }}
+  labels:
+    {{- include "did-manager.labels" . | nindent 4 }}
+spec:
+  {{- if not .Values.autoscaling.enabled }}
+  replicas: {{ .Values.replicaCount }}
+  {{- end }}
+  selector:
+    matchLabels:
+      {{- include "did-manager.selectorLabels" . | nindent 6 }}
+  template:
+    metadata:
+      {{- with .Values.podAnnotations }}
+      annotations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      labels:
+        {{- include "did-manager.labels" . | nindent 8 }}
+        {{- with .Values.podLabels }}
+        {{- toYaml . | nindent 8 }}
+        {{- end }}
+    spec:
+      {{- with .Values.imagePullSecrets }}
+      imagePullSecrets:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      serviceAccountName: {{ include "did-manager.serviceAccountName" . }}
+      securityContext:
+        {{- toYaml .Values.podSecurityContext | nindent 8 }}
+      containers:
+        - name: {{ .Chart.Name }}
+          securityContext:
+            {{- toYaml .Values.securityContext | nindent 12 }}
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          env:
+            - name: HTTP_HOSTNAME
+              value: {{ .Values.http.hostname }}
+            - name: HTTP_PORT
+              value: {{ .Values.http.port | quote }}
+          envFrom:
+            - configMapRef:
+                name: ocm-config-map
+            - secretRef:
+                name: ocm-secret
+          ports:
+            - name: http
+              containerPort: {{ .Values.http.port }}
+              protocol: TCP
+          livenessProbe:
+            {{- toYaml .Values.livenessProbe | nindent 12 }}
+          readinessProbe:
+            {{- toYaml .Values.readinessProbe | nindent 12 }}
+          startupProbe:
+            {{- toYaml .Values.startupProbe | nindent 12 }}
+          resources:
+            {{- toYaml .Values.resources | nindent 12 }}
+          {{- with .Values.volumeMounts }}
+          volumeMounts:
+            {{- toYaml . | nindent 12 }}
+          {{- end }}
+      {{- with .Values.volumes }}
+      volumes:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.nodeSelector }}
+      nodeSelector:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.affinity }}
+      affinity:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.tolerations }}
+      tolerations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
diff --git a/apps/did-manager/deployment/helm/templates/hpa.yaml b/apps/did-manager/deployment/helm/templates/hpa.yaml
new file mode 100644
index 0000000..6b78e58
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/hpa.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  name: {{ include "did-manager.fullname" . }}
+  labels:
+    {{- include "did-manager.labels" . | nindent 4 }}
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: {{ include "did-manager.fullname" . }}
+  minReplicas: {{ .Values.autoscaling.minReplicas }}
+  maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+  metrics:
+    {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+    - type: Resource
+      resource:
+        name: cpu
+        target:
+          type: Utilization
+          averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+    {{- end }}
+    {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+    - type: Resource
+      resource:
+        name: memory
+        target:
+          type: Utilization
+          averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+    {{- end }}
+{{- end }}
diff --git a/apps/did-manager/deployment/helm/templates/ingress.yaml b/apps/did-manager/deployment/helm/templates/ingress.yaml
new file mode 100644
index 0000000..3a35692
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/ingress.yaml
@@ -0,0 +1,61 @@
+{{- if .Values.ingress.enabled -}}
+{{- $fullName := include "did-manager.fullname" . -}}
+{{- $svcPort := .Values.service.port -}}
+{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
+  {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
+  {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
+  {{- end }}
+{{- end }}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else -}}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+  name: {{ $fullName }}
+  labels:
+    {{- include "did-manager.labels" . | nindent 4 }}
+  {{- with .Values.ingress.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+spec:
+  {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
+  ingressClassName: {{ .Values.ingress.className }}
+  {{- end }}
+  {{- if .Values.ingress.tls }}
+  tls:
+    {{- range .Values.ingress.tls }}
+    - hosts:
+        {{- range .hosts }}
+        - {{ . | quote }}
+        {{- end }}
+      secretName: {{ .secretName }}
+    {{- end }}
+  {{- end }}
+  rules:
+    {{- range .Values.ingress.hosts }}
+    - host: {{ .host | quote }}
+      http:
+        paths:
+          {{- range .paths }}
+          - path: {{ .path }}
+            {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
+            pathType: {{ .pathType }}
+            {{- end }}
+            backend:
+              {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
+              service:
+                name: {{ $fullName }}
+                port:
+                  number: {{ $svcPort }}
+              {{- else }}
+              serviceName: {{ $fullName }}
+              servicePort: {{ $svcPort }}
+              {{- end }}
+          {{- end }}
+    {{- end }}
+{{- end }}
diff --git a/apps/did-manager/deployment/helm/templates/service.yaml b/apps/did-manager/deployment/helm/templates/service.yaml
new file mode 100644
index 0000000..b014332
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/service.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "did-manager.fullname" . }}
+  labels:
+    {{- include "did-manager.labels" . | nindent 4 }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    - port: {{ .Values.service.port }}
+      targetPort: http
+      protocol: TCP
+      name: http
+  selector:
+    {{- include "did-manager.selectorLabels" . | nindent 4 }}
diff --git a/apps/did-manager/deployment/helm/templates/serviceaccount.yaml b/apps/did-manager/deployment/helm/templates/serviceaccount.yaml
new file mode 100644
index 0000000..6099022
--- /dev/null
+++ b/apps/did-manager/deployment/helm/templates/serviceaccount.yaml
@@ -0,0 +1,13 @@
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: {{ include "did-manager.serviceAccountName" . }}
+  labels:
+    {{- include "did-manager.labels" . | nindent 4 }}
+  {{- with .Values.serviceAccount.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
+{{- end }}
diff --git a/apps/did-manager/deployment/helm/values.yaml b/apps/did-manager/deployment/helm/values.yaml
new file mode 100644
index 0000000..467a2e4
--- /dev/null
+++ b/apps/did-manager/deployment/helm/values.yaml
@@ -0,0 +1,121 @@
+# Default values for did-manager.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+image:
+  repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/did-manager
+  name: did-manager
+  tag: main
+  sha: ""
+  pullPolicy: IfNotPresent
+  pullSecrets: key
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+serviceAccount:
+  # Specifies whether a service account should be created
+  create: false
+  # Automatically mount a ServiceAccount's API credentials?
+  automount: true
+  # Annotations to add to the service account
+  annotations: {}
+  # The name of the service account to use.
+  # If not set and create is true, a name is generated using the fullname template
+  name: ocm-service-account
+
+podAnnotations: {}
+podLabels: {}
+
+podSecurityContext:
+  {}
+  # fsGroup: 2000
+
+securityContext:
+  {}
+  # capabilities:
+  #   drop:
+  #   - ALL
+  # readOnlyRootFilesystem: true
+  # runAsNonRoot: true
+  # runAsUser: 1000
+
+service:
+  type: ClusterIP
+  port: 80
+
+ingress:
+  enabled: false
+  className: ""
+  annotations:
+    {}
+    # kubernetes.io/ingress.class: nginx
+    # kubernetes.io/tls-acme: "true"
+  hosts:
+    - host: chart-example.local
+      paths:
+        - path: /
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+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: 100m
+  #   memory: 128Mi
+  # requests:
+  #   cpu: 100m
+  #   memory: 128Mi
+
+livenessProbe:
+  httpGet:
+    path: /health
+    port: http
+readinessProbe:
+  httpGet:
+    path: /health
+    port: http
+startupProbe:
+  httpGet:
+    path: /health
+    port: http
+
+autoscaling:
+  enabled: false
+  minReplicas: 1
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+# Additional volumes on the output Deployment definition.
+volumes: []
+# - name: foo
+#   secret:
+#     secretName: mysecret
+#     optional: false
+
+# Additional volumeMounts on the output Deployment definition.
+volumeMounts: []
+# - name: foo
+#   mountPath: "/etc/foo"
+#   readOnly: true
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+http:
+  hostname: "0.0.0.0"
+  port: 3000
diff --git a/apps/proof-manager/deployment/helm/.helmignore b/apps/proof-manager/deployment/helm/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/apps/proof-manager/deployment/helm/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/apps/proof-manager/deployment/helm/Chart.yaml b/apps/proof-manager/deployment/helm/Chart.yaml
index c8f11eb..ed6ed3c 100644
--- a/apps/proof-manager/deployment/helm/Chart.yaml
+++ b/apps/proof-manager/deployment/helm/Chart.yaml
@@ -1,6 +1,24 @@
 apiVersion: v2
 name: proof-manager
-description: OCM Proof Manager Helm Chart
+description: OCM Proof Manager Helm chart
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
 type: application
-version: 1.0.0
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 1.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
 appVersion: "1.0.0"
diff --git a/apps/proof-manager/deployment/helm/README.md b/apps/proof-manager/deployment/helm/README.md
deleted file mode 100644
index 31ffeed..0000000
--- a/apps/proof-manager/deployment/helm/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# proof-manager
-
-![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-
-OCM Proof Manager Helm Chart
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| autoscaling.enabled | bool | `false` |  |
-| autoscaling.maxReplicas | int | `3` |  |
-| autoscaling.minReplicas | int | `1` |  |
-| autoscaling.targetCPUUtilizationPercentage | int | `70` |  |
-| autoscaling.targetMemoryUtilizationPercentage | int | `70` |  |
-| fullnameOverride | string | `""` |  |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"ocm-proof-manager"` |  |
-| image.tag | string | `"latest"` |  |
-| imagePullSecrets | list | `[]` |  |
-| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` |  |
-| ingress.className | string | `"nginx"` |  |
-| ingress.enabled | bool | `true` |  |
-| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` |  |
-| ingress.hosts[0].paths[0].backend.service.name | string | `"proof-manager"` |  |
-| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` |  |
-| ingress.hosts[0].paths[0].path | string | `"/"` |  |
-| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  |
-| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` |  |
-| ingress.tls[0].secretName | string | `"proof-manager-tls"` |  |
-| nameOverride | string | `""` |  |
-| podAnnotations | object | `{}` |  |
-| podLabels | object | `{}` |  |
-| podSecurityContext | object | `{}` |  |
-| proofManager.http.host | string | `"0.0.0.0"` |  |
-| proofManager.http.port | int | `3000` |  |
-| proofManager.nats.monitoringUrl | string | `"http://ocm-nats.default.svc.cluster.local:8222"` |  |
-| proofManager.nats.password | string | `"nats_password"` |  |
-| proofManager.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` |  |
-| proofManager.nats.user | string | `"nats_client"` |  |
-| replicaCount | int | `1` |  |
-| resources | object | `{}` |  |
-| securityContext | object | `{}` |  |
-| service.port | int | `3000` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.automount | bool | `true` |  |
-| serviceAccount.create | bool | `true` |  |
-| serviceAccount.name | string | `""` |  |
-
-----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
diff --git a/apps/proof-manager/deployment/helm/templates/NOTES.txt b/apps/proof-manager/deployment/helm/templates/NOTES.txt
index 3ec8586..d6d2c3b 100644
--- a/apps/proof-manager/deployment/helm/templates/NOTES.txt
+++ b/apps/proof-manager/deployment/helm/templates/NOTES.txt
@@ -1,7 +1,22 @@
-CHART NAME: {{ .Chart.Name }}
-CHART VERSION: {{ .Chart.Version }}
-APP VERSION: {{ .Chart.AppVersion }}
-
-{{ .Chart.Name | splitList "-" | join " " | title }} can be accessed on the following DNS name from within your cluster:
-
-   {{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "proof-manager.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.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 --namespace {{ .Release.Namespace }} svc -w {{ include "proof-manager.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "proof-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "proof-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/apps/proof-manager/deployment/helm/templates/_helpers.tpl b/apps/proof-manager/deployment/helm/templates/_helpers.tpl
index 7d19476..8baab3b 100644
--- a/apps/proof-manager/deployment/helm/templates/_helpers.tpl
+++ b/apps/proof-manager/deployment/helm/templates/_helpers.tpl
@@ -1,7 +1,7 @@
 {{/*
 Expand the name of the chart.
 */}}
-{{- define "deployment.name" -}}
+{{- define "proof-manager.name" -}}
 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
@@ -10,7 +10,7 @@ Create a default fully qualified app name.
 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
 If release name contains chart name it will be used as a full name.
 */}}
-{{- define "deployment.fullname" -}}
+{{- define "proof-manager.fullname" -}}
 {{- if .Values.fullnameOverride }}
 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
 {{- else }}
@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
 {{/*
 Create chart name and version as used by the chart label.
 */}}
-{{- define "deployment.chart" -}}
+{{- define "proof-manager.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
 {{/*
 Common labels
 */}}
-{{- define "deployment.labels" -}}
-helm.sh/chart: {{ include "deployment.chart" . }}
-{{ include "deployment.selectorLabels" . }}
+{{- define "proof-manager.labels" -}}
+helm.sh/chart: {{ include "proof-manager.chart" . }}
+{{ include "proof-manager.selectorLabels" . }}
 {{- if .Chart.AppVersion }}
 app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 {{- end }}
@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{/*
 Selector labels
 */}}
-{{- define "deployment.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "deployment.name" . }}
+{{- define "proof-manager.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "proof-manager.name" . }}
 app.kubernetes.io/instance: {{ .Release.Name }}
 {{- end }}
 
 {{/*
 Create the name of the service account to use
 */}}
-{{- define "deployment.serviceAccountName" -}}
+{{- define "proof-manager.serviceAccountName" -}}
 {{- if .Values.serviceAccount.create }}
-{{- default (include "deployment.fullname" .) .Values.serviceAccount.name }}
+{{- default (include "proof-manager.fullname" .) .Values.serviceAccount.name }}
 {{- else }}
 {{- default "default" .Values.serviceAccount.name }}
 {{- end }}
diff --git a/apps/proof-manager/deployment/helm/templates/deployment.yaml b/apps/proof-manager/deployment/helm/templates/deployment.yaml
index d95f59e..309988b 100644
--- a/apps/proof-manager/deployment/helm/templates/deployment.yaml
+++ b/apps/proof-manager/deployment/helm/templates/deployment.yaml
@@ -1,16 +1,16 @@
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "proof-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "proof-manager.labels" . | nindent 4 }}
 spec:
   {{- if not .Values.autoscaling.enabled }}
   replicas: {{ .Values.replicaCount }}
   {{- end }}
   selector:
     matchLabels:
-      {{- include "deployment.selectorLabels" . | nindent 6 }}
+      {{- include "proof-manager.selectorLabels" . | nindent 6 }}
   template:
     metadata:
       {{- with .Values.podAnnotations }}
@@ -18,7 +18,7 @@ spec:
         {{- toYaml . | nindent 8 }}
       {{- end }}
       labels:
-        {{- include "deployment.labels" . | nindent 8 }}
+        {{- include "proof-manager.labels" . | nindent 8 }}
         {{- with .Values.podLabels }}
         {{- toYaml . | nindent 8 }}
         {{- end }}
@@ -27,7 +27,7 @@ spec:
       imagePullSecrets:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      serviceAccountName: {{ include "deployment.serviceAccountName" . }}
+      serviceAccountName: {{ include "proof-manager.serviceAccountName" . }}
       securityContext:
         {{- toYaml .Values.podSecurityContext | nindent 8 }}
       containers:
@@ -37,30 +37,25 @@ spec:
           image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
-            - name: HTTP_HOST
-              value: {{ .Values.proofManager.http.host | quote }}
+            - name: HTTP_HOSTNAME
+              value: {{ .Values.http.hostname }}
             - name: HTTP_PORT
-              value: {{ .Values.proofManager.http.port | quote}}
-            - name: NATS_URL
-              value: {{ .Values.proofManager.nats.url | quote }}
-            - name: NATS_USER
-              value: {{ .Values.proofManager.nats.user | quote }}
-            - name: NATS_PASSWORD
-              value: {{ .Values.proofManager.nats.password | quote }}
-            - name: NATS_MONITORING_URL
-              value: {{ .Values.proofManager.nats.monitoringUrl | quote }}
+              value: {{ .Values.http.port | quote }}
+          envFrom:
+            - configMapRef:
+                name: ocm-config-map
+            - secretRef:
+                name: ocm-secret
           ports:
             - name: http
-              containerPort: {{ .Values.service.port }}
+              containerPort: {{ .Values.http.port }}
               protocol: TCP
           livenessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.livenessProbe | nindent 12 }}
           readinessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.readinessProbe | nindent 12 }}
+          startupProbe:
+            {{- toYaml .Values.startupProbe | nindent 12 }}
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
           {{- with .Values.volumeMounts }}
diff --git a/apps/proof-manager/deployment/helm/templates/hpa.yaml b/apps/proof-manager/deployment/helm/templates/hpa.yaml
index 7d84383..a59c863 100644
--- a/apps/proof-manager/deployment/helm/templates/hpa.yaml
+++ b/apps/proof-manager/deployment/helm/templates/hpa.yaml
@@ -2,14 +2,14 @@
 apiVersion: autoscaling/v2
 kind: HorizontalPodAutoscaler
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "proof-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "proof-manager.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
-    name: {{ include "deployment.fullname" . }}
+    name: {{ include "proof-manager.fullname" . }}
   minReplicas: {{ .Values.autoscaling.minReplicas }}
   maxReplicas: {{ .Values.autoscaling.maxReplicas }}
   metrics:
diff --git a/apps/proof-manager/deployment/helm/templates/ingress.yaml b/apps/proof-manager/deployment/helm/templates/ingress.yaml
index 803a0d9..cca7214 100644
--- a/apps/proof-manager/deployment/helm/templates/ingress.yaml
+++ b/apps/proof-manager/deployment/helm/templates/ingress.yaml
@@ -1,5 +1,5 @@
 {{- if .Values.ingress.enabled -}}
-{{- $fullName := include "deployment.fullname" . -}}
+{{- $fullName := include "proof-manager.fullname" . -}}
 {{- $svcPort := .Values.service.port -}}
 {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
   {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
@@ -17,7 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "proof-manager.labels" . | nindent 4 }}
   {{- with .Values.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
@@ -44,7 +44,7 @@ spec:
           {{- range .paths }}
           - path: {{ .path }}
             {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
-            pathType: {{ .pathType }} 
+            pathType: {{ .pathType }}
             {{- end }}
             backend:
               {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
diff --git a/apps/proof-manager/deployment/helm/templates/service.yaml b/apps/proof-manager/deployment/helm/templates/service.yaml
index 5227275..9a17ba8 100644
--- a/apps/proof-manager/deployment/helm/templates/service.yaml
+++ b/apps/proof-manager/deployment/helm/templates/service.yaml
@@ -1,9 +1,9 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "proof-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "proof-manager.labels" . | nindent 4 }}
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -12,4 +12,4 @@ spec:
       protocol: TCP
       name: http
   selector:
-    {{- include "deployment.selectorLabels" . | nindent 4 }}
+    {{- include "proof-manager.selectorLabels" . | nindent 4 }}
diff --git a/apps/proof-manager/deployment/helm/templates/serviceaccount.yaml b/apps/proof-manager/deployment/helm/templates/serviceaccount.yaml
index 8616c68..499a5dd 100644
--- a/apps/proof-manager/deployment/helm/templates/serviceaccount.yaml
+++ b/apps/proof-manager/deployment/helm/templates/serviceaccount.yaml
@@ -2,9 +2,9 @@
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: {{ include "deployment.serviceAccountName" . }}
+  name: {{ include "proof-manager.serviceAccountName" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "proof-manager.labels" . | nindent 4 }}
   {{- with .Values.serviceAccount.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/apps/proof-manager/deployment/helm/values.yaml b/apps/proof-manager/deployment/helm/values.yaml
index 7d3a677..82af212 100644
--- a/apps/proof-manager/deployment/helm/values.yaml
+++ b/apps/proof-manager/deployment/helm/values.yaml
@@ -1,10 +1,16 @@
+# Default values for proof-manager.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
 replicaCount: 1
 
 image:
-  repository: ocm-proof-manager
+  repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/proof-manager
+  name: proof-manager
+  tag: main
+  sha: ""
   pullPolicy: IfNotPresent
-  # Overrides the image tag whose default is the chart appVersion.
-  tag: "latest"
+  pullSecrets: key
 
 imagePullSecrets: []
 nameOverride: ""
@@ -12,22 +18,24 @@ fullnameOverride: ""
 
 serviceAccount:
   # Specifies whether a service account should be created
-  create: true
+  create: false
   # Automatically mount a ServiceAccount's API credentials?
   automount: true
   # Annotations to add to the service account
   annotations: {}
   # The name of the service account to use.
   # If not set and create is true, a name is generated using the fullname template
-  name: ""
+  name: ocm-service-account
 
 podAnnotations: {}
 podLabels: {}
 
-podSecurityContext: {}
+podSecurityContext:
+  {}
   # fsGroup: 2000
 
-securityContext: {}
+securityContext:
+  {}
   # capabilities:
   #   drop:
   #   - ALL
@@ -36,54 +44,78 @@ securityContext: {}
   # runAsUser: 1000
 
 service:
-  port: 3000
+  type: ClusterIP
+  port: 80
 
 ingress:
-  enabled: true
-  className: nginx
+  enabled: false
+  className: ""
   annotations:
-    kubernetes.io/ingress.class: nginx
+    {}
+    # kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
   hosts:
-    - host: kubernetes.docker.internal
+    - host: chart-example.local
       paths:
         - path: /
-          pathType: Prefix
-          backend:
-            service:
-              name: proof-manager
-              port:
-                number: 3000
-  tls:
-   - secretName: proof-manager-tls
-     hosts:
-       - kubernetes.docker.internal
-
-resources: {}
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+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: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
   # requests:
-  #   cpu: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
+
+livenessProbe:
+  httpGet:
+    path: /health
+    port: http
+readinessProbe:
+  httpGet:
+    path: /health
+    port: http
+startupProbe:
+  httpGet:
+    path: /health
+    port: http
 
 autoscaling:
   enabled: false
   minReplicas: 1
-  maxReplicas: 3
-  targetCPUUtilizationPercentage: 70
-  targetMemoryUtilizationPercentage: 70
-
-proofManager:
-  http:
-    host: 0.0.0.0
-    port: 3000
-  nats:
-    url: nats://ocm-nats.default.svc.cluster.local:4222
-    user: nats_client
-    password: nats_password
-    monitoringUrl: http://ocm-nats.default.svc.cluster.local:8222
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+# Additional volumes on the output Deployment definition.
+volumes: []
+# - name: foo
+#   secret:
+#     secretName: mysecret
+#     optional: false
+
+# Additional volumeMounts on the output Deployment definition.
+volumeMounts: []
+# - name: foo
+#   mountPath: "/etc/foo"
+#   readOnly: true
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+http:
+  hostname: "0.0.0.0"
+  port: 3000
diff --git a/apps/schema-manager/deployment/helm/.helmignore b/apps/schema-manager/deployment/helm/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/apps/schema-manager/deployment/helm/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/apps/schema-manager/deployment/helm/Chart.yaml b/apps/schema-manager/deployment/helm/Chart.yaml
index 62e9ad8..2129eab 100644
--- a/apps/schema-manager/deployment/helm/Chart.yaml
+++ b/apps/schema-manager/deployment/helm/Chart.yaml
@@ -1,12 +1,24 @@
 apiVersion: v2
-appVersion: "1.0.0"
-type: application
-
 name: schema-manager
-description: OCM Schema Manager Helm Chart
-version: 1.0.0
-home: https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine
-sources:
-- https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/schema-manager
+description: OCM Schema Manager Helm chart
 
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+type: application
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 1.1.0
 
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.0.0"
diff --git a/apps/schema-manager/deployment/helm/README.md b/apps/schema-manager/deployment/helm/README.md
deleted file mode 100644
index c5ee0e3..0000000
--- a/apps/schema-manager/deployment/helm/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# schema-manager
-
-![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-
-OCM Schema Manager Helm Chart
-
-**Homepage:** <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine>
-
-## Source Code
-
-* <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/schema-manager>
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| autoscaling.enabled | bool | `false` |  |
-| autoscaling.maxReplicas | int | `3` |  |
-| autoscaling.minReplicas | int | `1` |  |
-| autoscaling.targetCPUUtilizationPercentage | int | `70` |  |
-| autoscaling.targetMemoryUtilizationPercentage | int | `70` |  |
-| fullnameOverride | string | `""` |  |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"ocm-schema-manager"` |  |
-| image.tag | string | `"latest"` |  |
-| imagePullSecrets | list | `[]` |  |
-| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` |  |
-| ingress.className | string | `"nginx"` |  |
-| ingress.enabled | bool | `true` |  |
-| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` |  |
-| ingress.hosts[0].paths[0].backend.service.name | string | `"schema-manager"` |  |
-| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` |  |
-| ingress.hosts[0].paths[0].path | string | `"/"` |  |
-| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  |
-| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` |  |
-| ingress.tls[0].secretName | string | `"schema-manager-tls"` |  |
-| nameOverride | string | `""` |  |
-| podAnnotations | object | `{}` |  |
-| podLabels | object | `{}` |  |
-| podSecurityContext | object | `{}` |  |
-| replicaCount | int | `1` |  |
-| resources | object | `{}` |  |
-| schemaManager.http.host | string | `"0.0.0.0"` |  |
-| schemaManager.http.port | int | `3000` |  |
-| schemaManager.nats.monitoringUrl | string | `"http://ocm-nats.default.svc.cluster.local:8222"` |  |
-| schemaManager.nats.password | string | `"nats_password"` |  |
-| schemaManager.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` |  |
-| schemaManager.nats.user | string | `"nats_client"` |  |
-| securityContext | object | `{}` |  |
-| service.port | int | `3000` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.automount | bool | `true` |  |
-| serviceAccount.create | bool | `true` |  |
-| serviceAccount.name | string | `""` |  |
-
-----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
diff --git a/apps/schema-manager/deployment/helm/templates/NOTES.txt b/apps/schema-manager/deployment/helm/templates/NOTES.txt
index 3ec8586..8887ccc 100644
--- a/apps/schema-manager/deployment/helm/templates/NOTES.txt
+++ b/apps/schema-manager/deployment/helm/templates/NOTES.txt
@@ -1,7 +1,22 @@
-CHART NAME: {{ .Chart.Name }}
-CHART VERSION: {{ .Chart.Version }}
-APP VERSION: {{ .Chart.AppVersion }}
-
-{{ .Chart.Name | splitList "-" | join " " | title }} can be accessed on the following DNS name from within your cluster:
-
-   {{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "schema-manager.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.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 --namespace {{ .Release.Namespace }} svc -w {{ include "schema-manager.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "schema-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "schema-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/apps/schema-manager/deployment/helm/templates/_helpers.tpl b/apps/schema-manager/deployment/helm/templates/_helpers.tpl
index 7d19476..664807e 100644
--- a/apps/schema-manager/deployment/helm/templates/_helpers.tpl
+++ b/apps/schema-manager/deployment/helm/templates/_helpers.tpl
@@ -1,7 +1,7 @@
 {{/*
 Expand the name of the chart.
 */}}
-{{- define "deployment.name" -}}
+{{- define "schema-manager.name" -}}
 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
@@ -10,7 +10,7 @@ Create a default fully qualified app name.
 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
 If release name contains chart name it will be used as a full name.
 */}}
-{{- define "deployment.fullname" -}}
+{{- define "schema-manager.fullname" -}}
 {{- if .Values.fullnameOverride }}
 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
 {{- else }}
@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
 {{/*
 Create chart name and version as used by the chart label.
 */}}
-{{- define "deployment.chart" -}}
+{{- define "schema-manager.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
 {{/*
 Common labels
 */}}
-{{- define "deployment.labels" -}}
-helm.sh/chart: {{ include "deployment.chart" . }}
-{{ include "deployment.selectorLabels" . }}
+{{- define "schema-manager.labels" -}}
+helm.sh/chart: {{ include "schema-manager.chart" . }}
+{{ include "schema-manager.selectorLabels" . }}
 {{- if .Chart.AppVersion }}
 app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 {{- end }}
@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{/*
 Selector labels
 */}}
-{{- define "deployment.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "deployment.name" . }}
+{{- define "schema-manager.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "schema-manager.name" . }}
 app.kubernetes.io/instance: {{ .Release.Name }}
 {{- end }}
 
 {{/*
 Create the name of the service account to use
 */}}
-{{- define "deployment.serviceAccountName" -}}
+{{- define "schema-manager.serviceAccountName" -}}
 {{- if .Values.serviceAccount.create }}
-{{- default (include "deployment.fullname" .) .Values.serviceAccount.name }}
+{{- default (include "schema-manager.fullname" .) .Values.serviceAccount.name }}
 {{- else }}
 {{- default "default" .Values.serviceAccount.name }}
 {{- end }}
diff --git a/apps/schema-manager/deployment/helm/templates/deployment.yaml b/apps/schema-manager/deployment/helm/templates/deployment.yaml
index a83bc6a..709d04a 100644
--- a/apps/schema-manager/deployment/helm/templates/deployment.yaml
+++ b/apps/schema-manager/deployment/helm/templates/deployment.yaml
@@ -1,16 +1,16 @@
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "schema-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "schema-manager.labels" . | nindent 4 }}
 spec:
   {{- if not .Values.autoscaling.enabled }}
   replicas: {{ .Values.replicaCount }}
   {{- end }}
   selector:
     matchLabels:
-      {{- include "deployment.selectorLabels" . | nindent 6 }}
+      {{- include "schema-manager.selectorLabels" . | nindent 6 }}
   template:
     metadata:
       {{- with .Values.podAnnotations }}
@@ -18,7 +18,7 @@ spec:
         {{- toYaml . | nindent 8 }}
       {{- end }}
       labels:
-        {{- include "deployment.labels" . | nindent 8 }}
+        {{- include "schema-manager.labels" . | nindent 8 }}
         {{- with .Values.podLabels }}
         {{- toYaml . | nindent 8 }}
         {{- end }}
@@ -27,7 +27,7 @@ spec:
       imagePullSecrets:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      serviceAccountName: {{ include "deployment.serviceAccountName" . }}
+      serviceAccountName: {{ include "schema-manager.serviceAccountName" . }}
       securityContext:
         {{- toYaml .Values.podSecurityContext | nindent 8 }}
       containers:
@@ -37,30 +37,25 @@ spec:
           image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
-            - name: HTTP_HOST
-              value: {{ .Values.schemaManager.http.host | quote }}
+            - name: HTTP_HOSTNAME
+              value: {{ .Values.http.hostname }}
             - name: HTTP_PORT
-              value: {{ .Values.schemaManager.http.port | quote}}
-            - name: NATS_URL
-              value: {{ .Values.schemaManager.nats.url | quote }}
-            - name: NATS_USER
-              value: {{ .Values.schemaManager.nats.user | quote }}
-            - name: NATS_PASSWORD
-              value: {{ .Values.schemaManager.nats.password | quote }}
-            - name: NATS_MONITORING_URL
-              value: {{ .Values.schemaManager.nats.monitoringUrl | quote }}
+              value: {{ .Values.http.port | quote }}
+          envFrom:
+            - configMapRef:
+                name: ocm-config-map
+            - secretRef:
+                name: ocm-secret
           ports:
             - name: http
-              containerPort: {{ .Values.service.port }}
+              containerPort: {{ .Values.http.port }}
               protocol: TCP
           livenessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.livenessProbe | nindent 12 }}
           readinessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.readinessProbe | nindent 12 }}
+          startupProbe:
+            {{- toYaml .Values.startupProbe | nindent 12 }}
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
           {{- with .Values.volumeMounts }}
diff --git a/apps/schema-manager/deployment/helm/templates/hpa.yaml b/apps/schema-manager/deployment/helm/templates/hpa.yaml
index 7d84383..02114a3 100644
--- a/apps/schema-manager/deployment/helm/templates/hpa.yaml
+++ b/apps/schema-manager/deployment/helm/templates/hpa.yaml
@@ -2,14 +2,14 @@
 apiVersion: autoscaling/v2
 kind: HorizontalPodAutoscaler
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "schema-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "schema-manager.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
-    name: {{ include "deployment.fullname" . }}
+    name: {{ include "schema-manager.fullname" . }}
   minReplicas: {{ .Values.autoscaling.minReplicas }}
   maxReplicas: {{ .Values.autoscaling.maxReplicas }}
   metrics:
diff --git a/apps/schema-manager/deployment/helm/templates/ingress.yaml b/apps/schema-manager/deployment/helm/templates/ingress.yaml
index 803a0d9..e0f86fc 100644
--- a/apps/schema-manager/deployment/helm/templates/ingress.yaml
+++ b/apps/schema-manager/deployment/helm/templates/ingress.yaml
@@ -1,5 +1,5 @@
 {{- if .Values.ingress.enabled -}}
-{{- $fullName := include "deployment.fullname" . -}}
+{{- $fullName := include "schema-manager.fullname" . -}}
 {{- $svcPort := .Values.service.port -}}
 {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
   {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
@@ -17,7 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "schema-manager.labels" . | nindent 4 }}
   {{- with .Values.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
@@ -44,7 +44,7 @@ spec:
           {{- range .paths }}
           - path: {{ .path }}
             {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
-            pathType: {{ .pathType }} 
+            pathType: {{ .pathType }}
             {{- end }}
             backend:
               {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
diff --git a/apps/schema-manager/deployment/helm/templates/service.yaml b/apps/schema-manager/deployment/helm/templates/service.yaml
index 5227275..0c0f017 100644
--- a/apps/schema-manager/deployment/helm/templates/service.yaml
+++ b/apps/schema-manager/deployment/helm/templates/service.yaml
@@ -1,9 +1,9 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "schema-manager.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "schema-manager.labels" . | nindent 4 }}
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -12,4 +12,4 @@ spec:
       protocol: TCP
       name: http
   selector:
-    {{- include "deployment.selectorLabels" . | nindent 4 }}
+    {{- include "schema-manager.selectorLabels" . | nindent 4 }}
diff --git a/apps/schema-manager/deployment/helm/templates/serviceaccount.yaml b/apps/schema-manager/deployment/helm/templates/serviceaccount.yaml
index 8616c68..6383ccb 100644
--- a/apps/schema-manager/deployment/helm/templates/serviceaccount.yaml
+++ b/apps/schema-manager/deployment/helm/templates/serviceaccount.yaml
@@ -2,9 +2,9 @@
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: {{ include "deployment.serviceAccountName" . }}
+  name: {{ include "schema-manager.serviceAccountName" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "schema-manager.labels" . | nindent 4 }}
   {{- with .Values.serviceAccount.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/apps/schema-manager/deployment/helm/values.yaml b/apps/schema-manager/deployment/helm/values.yaml
index 933e1bc..5b479f3 100644
--- a/apps/schema-manager/deployment/helm/values.yaml
+++ b/apps/schema-manager/deployment/helm/values.yaml
@@ -1,10 +1,16 @@
+# Default values for schema-manager.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
 replicaCount: 1
 
 image:
-  repository: ocm-schema-manager
+  repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/schema-manager
+  name: schema-manager
+  tag: main
+  sha: ""
   pullPolicy: IfNotPresent
-  # Overrides the image tag whose default is the chart appVersion.
-  tag: "latest"
+  pullSecrets: key
 
 imagePullSecrets: []
 nameOverride: ""
@@ -12,22 +18,24 @@ fullnameOverride: ""
 
 serviceAccount:
   # Specifies whether a service account should be created
-  create: true
+  create: false
   # Automatically mount a ServiceAccount's API credentials?
   automount: true
   # Annotations to add to the service account
   annotations: {}
   # The name of the service account to use.
   # If not set and create is true, a name is generated using the fullname template
-  name: ""
+  name: ocm-service-account
 
 podAnnotations: {}
 podLabels: {}
 
-podSecurityContext: {}
+podSecurityContext:
+  {}
   # fsGroup: 2000
 
-securityContext: {}
+securityContext:
+  {}
   # capabilities:
   #   drop:
   #   - ALL
@@ -36,54 +44,78 @@ securityContext: {}
   # runAsUser: 1000
 
 service:
-  port: 3000
+  type: ClusterIP
+  port: 80
 
 ingress:
-  enabled: true
-  className: nginx
+  enabled: false
+  className: ""
   annotations:
-    kubernetes.io/ingress.class: nginx
+    {}
+    # kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
   hosts:
-    - host: kubernetes.docker.internal
+    - host: chart-example.local
       paths:
         - path: /
-          pathType: Prefix
-          backend:
-            service:
-              name: schema-manager
-              port:
-                number: 3000
-  tls:
-   - secretName: schema-manager-tls
-     hosts:
-       - kubernetes.docker.internal
-
-resources: {}
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+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: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
   # requests:
-  #   cpu: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
+
+livenessProbe:
+  httpGet:
+    path: /health
+    port: http
+readinessProbe:
+  httpGet:
+    path: /health
+    port: http
+startupProbe:
+  httpGet:
+    path: /health
+    port: http
 
 autoscaling:
   enabled: false
   minReplicas: 1
-  maxReplicas: 3
-  targetCPUUtilizationPercentage: 70
-  targetMemoryUtilizationPercentage: 70
-
-schemaManager:
-  http:
-    host: 0.0.0.0
-    port: 3000
-  nats:
-    url: nats://ocm-nats.default.svc.cluster.local:4222
-    user: nats_client
-    password: nats_password
-    monitoringUrl: http://ocm-nats.default.svc.cluster.local:8222
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+# Additional volumes on the output Deployment definition.
+volumes: []
+# - name: foo
+#   secret:
+#     secretName: mysecret
+#     optional: false
+
+# Additional volumeMounts on the output Deployment definition.
+volumeMounts: []
+# - name: foo
+#   mountPath: "/etc/foo"
+#   readOnly: true
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+http:
+  hostname: "0.0.0.0"
+  port: 3000
diff --git a/apps/ssi-abstraction/deployment/helm/.helmignore b/apps/ssi-abstraction/deployment/helm/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/apps/ssi-abstraction/deployment/helm/.helmignore
@@ -0,0 +1,23 @@
+# 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
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/apps/ssi-abstraction/deployment/helm/Chart.yaml b/apps/ssi-abstraction/deployment/helm/Chart.yaml
index 4f2dffa..9927bd4 100644
--- a/apps/ssi-abstraction/deployment/helm/Chart.yaml
+++ b/apps/ssi-abstraction/deployment/helm/Chart.yaml
@@ -1,10 +1,24 @@
 apiVersion: v2
-appVersion: "1.0.0"
-type: application
-
 name: ssi-abstraction
 description: OCM SSI Abstraction Helm Chart
-version: 1.0.0
-home: https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine
-sources:
-- https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/ssi-abstraction
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+type: application
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 1.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.0.0"
diff --git a/apps/ssi-abstraction/deployment/helm/README.md b/apps/ssi-abstraction/deployment/helm/README.md
deleted file mode 100644
index 13b0f4c..0000000
--- a/apps/ssi-abstraction/deployment/helm/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# ssi-abstraction
-
-![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-
-OCM SSI Abstraction Helm Chart
-
-**Homepage:** <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine>
-
-## Source Code
-
-* <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/ssi-abstraction>
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| autoscaling.enabled | bool | `false` |  |
-| autoscaling.maxReplicas | int | `3` |  |
-| autoscaling.minReplicas | int | `1` |  |
-| autoscaling.targetCPUUtilizationPercentage | int | `70` |  |
-| autoscaling.targetMemoryUtilizationPercentage | int | `70` |  |
-| fullnameOverride | string | `""` |  |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"ocm-ssi-abstraction"` |  |
-| image.tag | string | `"latest"` |  |
-| imagePullSecrets | list | `[]` |  |
-| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` |  |
-| ingress.className | string | `"nginx"` |  |
-| ingress.enabled | bool | `true` |  |
-| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` |  |
-| ingress.hosts[0].paths[0].backend.service.name | string | `"ssi-abstraction"` |  |
-| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` |  |
-| ingress.hosts[0].paths[0].path | string | `"/"` |  |
-| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  |
-| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` |  |
-| ingress.tls[0].secretName | string | `"ssi-abstraction-tls"` |  |
-| nameOverride | string | `""` |  |
-| podAnnotations | object | `{}` |  |
-| podLabels | object | `{}` |  |
-| podSecurityContext | object | `{}` |  |
-| replicaCount | int | `1` |  |
-| resources | object | `{}` |  |
-| securityContext | object | `{}` |  |
-| service.port | int | `3001` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.automount | bool | `true` |  |
-| serviceAccount.create | bool | `true` |  |
-| serviceAccount.name | string | `""` |  |
-| ssiAbstraction.agent.autoAcceptConnection | bool | `true` |  |
-| ssiAbstraction.agent.autoAcceptCredential | string | `"contentApproved"` |  |
-| ssiAbstraction.agent.host | string | `"http://ocm-ssi-abstraction.default.svc.cluster.local"` |  |
-| ssiAbstraction.agent.inboundPort | int | `3000` |  |
-| ssiAbstraction.agent.ledgerId | string | `"BCOVRIN_TEST"` |  |
-| ssiAbstraction.agent.name | string | `"ssi-abstraction-agent"` |  |
-| ssiAbstraction.agent.publicDidSeed | string | `"6b8b882e2618fa5d45ee7229ca000000"` |  |
-| ssiAbstraction.agent.urlPath | string | `"/"` |  |
-| ssiAbstraction.agent.walletId | string | `"ssi-wallet-id"` |  |
-| ssiAbstraction.agent.walletKey | string | `"ssi-wallet-key"` |  |
-| ssiAbstraction.agentHost | string | `"http://ocm-ssi-abstraction.default.svc.cluster.local"` |  |
-| ssiAbstraction.jwtSecret | string | `nil` |  |
-| ssiAbstraction.nats.password | string | `"nats_password"` |  |
-| ssiAbstraction.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` |  |
-| ssiAbstraction.nats.user | string | `"nats_client"` |  |
-| ssiAbstraction.port | int | `3001` |  |
-
-----------------------------------------------
-Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
diff --git a/apps/ssi-abstraction/deployment/helm/templates/NOTES.txt b/apps/ssi-abstraction/deployment/helm/templates/NOTES.txt
index bd0ec78..8e58153 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/NOTES.txt
+++ b/apps/ssi-abstraction/deployment/helm/templates/NOTES.txt
@@ -1,8 +1,22 @@
-CHART NAME: {{ .Chart.Name }}
-CHART VERSION: {{ .Chart.Version }}
-APP VERSION: {{ .Chart.AppVersion }}
-
-SSI Abstraction can be accessed on the following DNS name from within your cluster:
-
-   {{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
-
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "ssi-abstraction.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.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 --namespace {{ .Release.Namespace }} svc -w {{ include "ssi-abstraction.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "ssi-abstraction.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "ssi-abstraction.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/apps/ssi-abstraction/deployment/helm/templates/_helpers.tpl b/apps/ssi-abstraction/deployment/helm/templates/_helpers.tpl
index 7d19476..7c35a7f 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/_helpers.tpl
+++ b/apps/ssi-abstraction/deployment/helm/templates/_helpers.tpl
@@ -1,7 +1,7 @@
 {{/*
 Expand the name of the chart.
 */}}
-{{- define "deployment.name" -}}
+{{- define "ssi-abstraction.name" -}}
 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
@@ -10,7 +10,7 @@ Create a default fully qualified app name.
 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
 If release name contains chart name it will be used as a full name.
 */}}
-{{- define "deployment.fullname" -}}
+{{- define "ssi-abstraction.fullname" -}}
 {{- if .Values.fullnameOverride }}
 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
 {{- else }}
@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
 {{/*
 Create chart name and version as used by the chart label.
 */}}
-{{- define "deployment.chart" -}}
+{{- define "ssi-abstraction.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
 {{- end }}
 
 {{/*
 Common labels
 */}}
-{{- define "deployment.labels" -}}
-helm.sh/chart: {{ include "deployment.chart" . }}
-{{ include "deployment.selectorLabels" . }}
+{{- define "ssi-abstraction.labels" -}}
+helm.sh/chart: {{ include "ssi-abstraction.chart" . }}
+{{ include "ssi-abstraction.selectorLabels" . }}
 {{- if .Chart.AppVersion }}
 app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 {{- end }}
@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{/*
 Selector labels
 */}}
-{{- define "deployment.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "deployment.name" . }}
+{{- define "ssi-abstraction.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "ssi-abstraction.name" . }}
 app.kubernetes.io/instance: {{ .Release.Name }}
 {{- end }}
 
 {{/*
 Create the name of the service account to use
 */}}
-{{- define "deployment.serviceAccountName" -}}
+{{- define "ssi-abstraction.serviceAccountName" -}}
 {{- if .Values.serviceAccount.create }}
-{{- default (include "deployment.fullname" .) .Values.serviceAccount.name }}
+{{- default (include "ssi-abstraction.fullname" .) .Values.serviceAccount.name }}
 {{- else }}
 {{- default "default" .Values.serviceAccount.name }}
 {{- end }}
diff --git a/apps/ssi-abstraction/deployment/helm/templates/configmap.yaml b/apps/ssi-abstraction/deployment/helm/templates/configmap.yaml
new file mode 100644
index 0000000..42062ef
--- /dev/null
+++ b/apps/ssi-abstraction/deployment/helm/templates/configmap.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "ssi-abstraction.fullname" . }}
+  labels:
+    app.kubernetes.io/name: {{ include "ssi-abstraction.name" . }}
+    helm.sh/chart: {{ include "ssi-abstraction.chart" . }}
+    app.kubernetes.io/instance: {{ .Release.Name }}
+    app.kubernetes.io/managed-by: {{ .Release.Service }}
+data:
+  HTTP_HOSTNAME: "localhost"
+  HTTP_PORT: "3000"
+  PORT: "3000"
+  AGENT_NAME: ssi-abstraction-agent
+  AGENT_WALLET_ID: ssi-wallet-id
+  AGENT_HOST: http://localhost
+  AGENT_INBOUND_PORT: "3001"
+  AGENT_AUTO_ACCEPT_CONNECTION: "true"
+  AGENT_AUTO_ACCEPT_CREDENTIAL: contentApproved
+  AGENT_LEDGER_ID: BCOVRIN_TEST
+  TAILS_SERVER_BASE_URL: http://ocm-s3.{{ .Release.Namespace }}.svc.cluster.local:9000
+  TAILS_SERVER_BUCKET_NAME: ssi
\ No newline at end of file
diff --git a/apps/ssi-abstraction/deployment/helm/templates/deployment.yaml b/apps/ssi-abstraction/deployment/helm/templates/deployment.yaml
index 3da5b7e..bb165d0 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/deployment.yaml
+++ b/apps/ssi-abstraction/deployment/helm/templates/deployment.yaml
@@ -1,16 +1,16 @@
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "ssi-abstraction.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "ssi-abstraction.labels" . | nindent 4 }}
 spec:
   {{- if not .Values.autoscaling.enabled }}
   replicas: {{ .Values.replicaCount }}
   {{- end }}
   selector:
     matchLabels:
-      {{- include "deployment.selectorLabels" . | nindent 6 }}
+      {{- include "ssi-abstraction.selectorLabels" . | nindent 6 }}
   template:
     metadata:
       {{- with .Values.podAnnotations }}
@@ -18,7 +18,7 @@ spec:
         {{- toYaml . | nindent 8 }}
       {{- end }}
       labels:
-        {{- include "deployment.labels" . | nindent 8 }}
+        {{- include "ssi-abstraction.labels" . | nindent 8 }}
         {{- with .Values.podLabels }}
         {{- toYaml . | nindent 8 }}
         {{- end }}
@@ -27,7 +27,7 @@ spec:
       imagePullSecrets:
         {{- toYaml . | nindent 8 }}
       {{- end }}
-      serviceAccountName: {{ include "deployment.serviceAccountName" . }}
+      serviceAccountName: {{ include "ssi-abstraction.serviceAccountName" . }}
       securityContext:
         {{- toYaml .Values.podSecurityContext | nindent 8 }}
       containers:
@@ -37,51 +37,32 @@ spec:
           image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
+            - name: HTTP_HOSTNAME
+              value: {{ .Values.http.hostname }}
+            - name: HTTP_PORT
+              value: {{ .Values.http.port | quote }}
+            # PORT is deprecated. Must be removed once the image is updated.
             - name: PORT
-              value: {{ .Values.ssiAbstraction.port | quote}}
-            - name: JWT_SECRET
-              value: {{ .Values.ssiAbstraction.jwtSecret | quote }}
-            - name: NATS_URL
-              value: {{ .Values.ssiAbstraction.nats.url | quote }}
-            - name: NATS_USER
-              value: {{ .Values.ssiAbstraction.nats.user | quote }}
-            - name: NATS_PASSWORD
-              value: {{ .Values.ssiAbstraction.nats.password | quote }}
-            - name: AGENT_NAME
-              value: {{ .Values.ssiAbstraction.agent.name | quote }}
-            - name: AGENT_WALLET_ID
-              value: {{ .Values.ssiAbstraction.agent.walletId | quote }}
-            - name: AGENT_WALLET_KEY
-              value: {{ .Values.ssiAbstraction.agent.walletKey | quote }}
-            - name: AGENT_LEDGER_ID
-              value: {{ .Values.ssiAbstraction.agent.ledgerId | quote }}
-            - name: AGENT_HOST
-              value: {{ .Values.ssiAbstraction.agent.host | quote }}
-            - name: AGENT_INBOUND_PORT
-              value: {{ .Values.ssiAbstraction.agent.inboundPort | quote }}
-            - name: AGENT_URL_PATH
-              value: {{ .Values.ssiAbstraction.agent.urlPath | quote }}
-            - name: AGENT_PUBLIC_DID_SEED
-              value: {{ .Values.ssiAbstraction.agent.publicDidSeed | quote }}
-            - name: AGENT_AUTO_ACCEPT_CONNECTION
-              value: {{ .Values.ssiAbstraction.agent.autoAcceptConnection | quote }}
-            - name: AGENT_AUTO_ACCEPT_CREDENTIAL
-              value: {{ .Values.ssiAbstraction.agent.autoAcceptCredential | quote }}
+              value: {{ .Values.http.port | quote }}
+          envFrom:
+            - configMapRef:
+                name: ocm-config-map
+            - configMapRef:
+                name: {{ include "ssi-abstraction.fullname" . }}
+            - secretRef:
+                name: ocm-secret
+            - secretRef:
+                name: {{ include "ssi-abstraction.fullname" . }}
           ports:
             - name: http
-              containerPort: {{ .Values.service.port }}
-              protocol: TCP
-            - name: peer
-              containerPort: {{ .Values.ssiAbstraction.agent.inboundPort }}
+              containerPort: {{ .Values.http.port }}
               protocol: TCP
           livenessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.livenessProbe | nindent 12 }}
           readinessProbe:
-            httpGet:
-              path: /health
-              port: http
+            {{- toYaml .Values.readinessProbe | nindent 12 }}
+          startupProbe:
+            {{- toYaml .Values.startupProbe | nindent 12 }}
           resources:
             {{- toYaml .Values.resources | nindent 12 }}
           {{- with .Values.volumeMounts }}
diff --git a/apps/ssi-abstraction/deployment/helm/templates/hpa.yaml b/apps/ssi-abstraction/deployment/helm/templates/hpa.yaml
index 7d84383..b35ad23 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/hpa.yaml
+++ b/apps/ssi-abstraction/deployment/helm/templates/hpa.yaml
@@ -2,14 +2,14 @@
 apiVersion: autoscaling/v2
 kind: HorizontalPodAutoscaler
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "ssi-abstraction.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "ssi-abstraction.labels" . | nindent 4 }}
 spec:
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
-    name: {{ include "deployment.fullname" . }}
+    name: {{ include "ssi-abstraction.fullname" . }}
   minReplicas: {{ .Values.autoscaling.minReplicas }}
   maxReplicas: {{ .Values.autoscaling.maxReplicas }}
   metrics:
diff --git a/apps/ssi-abstraction/deployment/helm/templates/ingress.yaml b/apps/ssi-abstraction/deployment/helm/templates/ingress.yaml
index 1aa9ce7..de52e80 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/ingress.yaml
+++ b/apps/ssi-abstraction/deployment/helm/templates/ingress.yaml
@@ -1,6 +1,6 @@
 {{- if .Values.ingress.enabled -}}
-{{- $fullName := include "deployment.fullname" . -}}
-{{- $svcPort := .Values.ssiAbstraction.agent.inboundPort -}}
+{{- $fullName := include "ssi-abstraction.fullname" . -}}
+{{- $svcPort := .Values.service.port -}}
 {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
   {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
   {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
@@ -17,7 +17,7 @@ kind: Ingress
 metadata:
   name: {{ $fullName }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "ssi-abstraction.labels" . | nindent 4 }}
   {{- with .Values.ingress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
@@ -44,7 +44,7 @@ spec:
           {{- range .paths }}
           - path: {{ .path }}
             {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
-            pathType: {{ .pathType }} 
+            pathType: {{ .pathType }}
             {{- end }}
             backend:
               {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
diff --git a/apps/ssi-abstraction/deployment/helm/templates/secret.yaml b/apps/ssi-abstraction/deployment/helm/templates/secret.yaml
new file mode 100644
index 0000000..927f613
--- /dev/null
+++ b/apps/ssi-abstraction/deployment/helm/templates/secret.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: { { include "ssi-abstraction.fullname" . } }
+  labels:
+    app.kubernetes.io/name: { { include "ssi-abstraction.name" . } }
+    helm.sh/chart: { { include "ssi-abstraction.chart" . } }
+    app.kubernetes.io/instance: { { .Release.Name } }
+    app.kubernetes.io/managed-by: { { .Release.Service } }
+type: Opaque
+data:
+  AGENT_WALLET_KEY: M2NhZGZiNzNhYmQwYTEzZjM3NzA0NTI4YWI5Y2YzODY=
+  AGENT_INDY_DID_SEED: NmI4Yjg4MmUyNjE4ZmE1ZDQ1ZWU3MjI5Y2EwMDAwMDA=
diff --git a/apps/ssi-abstraction/deployment/helm/templates/service.yaml b/apps/ssi-abstraction/deployment/helm/templates/service.yaml
index e0ac87c..f2faf48 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/service.yaml
+++ b/apps/ssi-abstraction/deployment/helm/templates/service.yaml
@@ -1,15 +1,15 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "deployment.fullname" . }}
+  name: {{ include "ssi-abstraction.fullname" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "ssi-abstraction.labels" . | nindent 4 }}
 spec:
   type: {{ .Values.service.type }}
   ports:
-    - name: peer
-      port: {{ .Values.ssiAbstraction.agent.inboundPort }}
-      targetPort: peer
+    - port: {{ .Values.service.port }}
+      targetPort: http
       protocol: TCP
+      name: http
   selector:
-    {{- include "deployment.selectorLabels" . | nindent 4 }}
+    {{- include "ssi-abstraction.selectorLabels" . | nindent 4 }}
diff --git a/apps/ssi-abstraction/deployment/helm/templates/serviceaccount.yaml b/apps/ssi-abstraction/deployment/helm/templates/serviceaccount.yaml
index 8616c68..ffc9847 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/serviceaccount.yaml
+++ b/apps/ssi-abstraction/deployment/helm/templates/serviceaccount.yaml
@@ -2,9 +2,9 @@
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: {{ include "deployment.serviceAccountName" . }}
+  name: {{ include "ssi-abstraction.serviceAccountName" . }}
   labels:
-    {{- include "deployment.labels" . | nindent 4 }}
+    {{- include "ssi-abstraction.labels" . | nindent 4 }}
   {{- with .Values.serviceAccount.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
diff --git a/apps/ssi-abstraction/deployment/helm/values.yaml b/apps/ssi-abstraction/deployment/helm/values.yaml
index ff0f37f..7886e34 100644
--- a/apps/ssi-abstraction/deployment/helm/values.yaml
+++ b/apps/ssi-abstraction/deployment/helm/values.yaml
@@ -1,10 +1,16 @@
+# Default values for ssi-abstraction.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
 replicaCount: 1
 
 image:
-  repository: ocm-ssi-abstraction
+  repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/ssi-abstraction
+  name: ssi-abstraction
+  tag: main
+  sha: ""
   pullPolicy: IfNotPresent
-  # Overrides the image tag whose default is the chart appVersion.
-  tag: "latest"
+  pullSecrets: key
 
 imagePullSecrets: []
 nameOverride: ""
@@ -12,22 +18,24 @@ fullnameOverride: ""
 
 serviceAccount:
   # Specifies whether a service account should be created
-  create: true
+  create: false
   # Automatically mount a ServiceAccount's API credentials?
   automount: true
   # Annotations to add to the service account
   annotations: {}
   # The name of the service account to use.
   # If not set and create is true, a name is generated using the fullname template
-  name: ""
+  name: ocm-service-account
 
 podAnnotations: {}
 podLabels: {}
 
-podSecurityContext: {}
+podSecurityContext:
+  {}
   # fsGroup: 2000
 
-securityContext: {}
+securityContext:
+  {}
   # capabilities:
   #   drop:
   #   - ALL
@@ -36,66 +44,78 @@ securityContext: {}
   # runAsUser: 1000
 
 service:
-  port: 3001
+  type: ClusterIP
+  port: 80
 
 ingress:
-  enabled: true
-  className: nginx
+  enabled: false
+  className: ""
   annotations:
-    kubernetes.io/ingress.class: nginx
+    {}
+    # kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
   hosts:
-    - host: kubernetes.docker.internal
+    - host: chart-example.local
       paths:
         - path: /
-          pathType: Prefix
-          backend:
-            service:
-              name: ssi-abstraction
-              port:
-                number: 3000
-  tls:
-   - secretName: ssi-abstraction-tls
-     hosts:
-       - kubernetes.docker.internal
-
-resources: {}
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+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: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
   # requests:
-  #   cpu: 1000m
-  #   memory: 256Mi
+  #   cpu: 100m
+  #   memory: 128Mi
+
+livenessProbe:
+  httpGet:
+    path: /health
+    port: http
+readinessProbe:
+  httpGet:
+    path: /health
+    port: http
+startupProbe:
+  httpGet:
+    path: /health
+    port: http
 
 autoscaling:
   enabled: false
   minReplicas: 1
-  maxReplicas: 3
-  targetCPUUtilizationPercentage: 70
-  targetMemoryUtilizationPercentage: 70
-
-ssiAbstraction:
-  agentHost: http://ocm-ssi-abstraction.default.svc.cluster.local
-  port: 3001
-  jwtSecret:
-
-  nats:
-    url: nats://ocm-nats.default.svc.cluster.local:4222
-    user: nats_client
-    password: nats_password
-
-  agent:
-    name: ssi-abstraction-agent
-    walletId: ssi-wallet-id
-    walletKey: ssi-wallet-key
-    ledgerId: BCOVRIN_TEST
-    host: http://ocm-ssi-abstraction.default.svc.cluster.local
-    inboundPort: 3000
-    urlPath: /
-    publicDidSeed: 6b8b882e2618fa5d45ee7229ca000000
-    autoAcceptConnection: true
-    autoAcceptCredential: contentApproved
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+# Additional volumes on the output Deployment definition.
+volumes: []
+# - name: foo
+#   secret:
+#     secretName: mysecret
+#     optional: false
+
+# Additional volumeMounts on the output Deployment definition.
+volumeMounts: []
+# - name: foo
+#   mountPath: "/etc/foo"
+#   readOnly: true
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+http:
+  hostname: "0.0.0.0"
+  port: 3000
-- 
GitLab