diff --git a/apps/connection-manager/deployment/helm/.helmignore b/apps/connection-manager/deployment/helm/.helmignore
new file mode 100644
index 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /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 81e52c665df6ed8fad4f4b7d8d40140fa00cb5c4..abf1d6ea77c46e9b0f8e7702bb095382b493eefa 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 5ef520e676fc6f0445278eabe66277882a695897..0000000000000000000000000000000000000000
--- 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 3ec8586b1c866a09a48d6bf42d4bc630565ab8cf..ed96bff3e2c031c59811c1fd1e6eb633fe54662b 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 7d19476a4dd4c9f94683de2cc4cf87e0035335e0..8407974392806e219243c9cee398af7b5b474eed 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 c33052ce6b342cbcdc643b9b262cf0e5ddd647bb..a5a756cf16c4a0aad7efa814e007984717235fbb 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 7d8438360c8b78bfd38e523814a7d2e6ec9475ae..10fac2ed206daef2e8a107dbbfbbaa89df3fdd8c 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 803a0d9c708cabe507efb57c454f694392f0e2f3..57e7143ab3df9643c0ef0ff0c9c6204548bb73cf 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 522727568abc32af3601acbd3553cc65c06429de..64ab93b8478c5895a99969e6effd38309b3812d0 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 8616c6807f903e08b4cb9a762727a3b546b557d8..a4f04c7cc5a78b87b5bfdfbaf971bb3d7076e3b4 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 d5eb309207cf4a5f5a3c2766b63784804afc647c..e33e7b3a598427a05de28577a2dc2c011cd0c034 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 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /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 3d5755c15d33e72c872ed60abe8b24212d3a1405..80a196926bb84970bbeb4e3edc6849bf06626084 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 2ab828c47ac8e375b3906c74b3ed78609f39a40f..0000000000000000000000000000000000000000
--- 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 3ec8586b1c866a09a48d6bf42d4bc630565ab8cf..a0a462aeb347068aaba8bfd126f1fa05e5e4801b 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 7d19476a4dd4c9f94683de2cc4cf87e0035335e0..0b75717e0b52f42997ec77120046c125d7dd9c26 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 ac83b30ea2771dfbfff055356b209eae9fd76ef3..6ce1e99a1e7928d74f34bf4abb873e3b6853e05a 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 7d8438360c8b78bfd38e523814a7d2e6ec9475ae..5bf7a765cc80737a400c5b2cb484c8f5cc376c62 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 803a0d9c708cabe507efb57c454f694392f0e2f3..391db9c8f7d9db6c827704a035c98c7e6ce68ce2 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 522727568abc32af3601acbd3553cc65c06429de..1aebf278a95b342b5f3a6025e390ea24c29d8013 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 8616c6807f903e08b4cb9a762727a3b546b557d8..98e7d71b1cefbdf6652320061353836e9c354758 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 c923b444315f58bdf9acd5adf98dad6b1479eb13..286dd4155f0875961ea1ec0cc46079354ff1890a 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 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /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 0000000000000000000000000000000000000000..8f0e5df5bad2b3eae577c43d0c24da7a2e34a333
--- /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 0000000000000000000000000000000000000000..9dbe86326e00cbc74a8c8f9515488c6baa2cf3cd
--- /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 0000000000000000000000000000000000000000..78105ca12c8e8b4efaa6c52e97a708f0d4230412
--- /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 0000000000000000000000000000000000000000..e840eebeb60bd8c71ddd90343eec283fe1d5dc11
--- /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 0000000000000000000000000000000000000000..6b78e58082eca3407a75d3075f21bd239bef0058
--- /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 0000000000000000000000000000000000000000..3a3569241f4bda227b628bb4e29eff26a2b0dd93
--- /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 0000000000000000000000000000000000000000..b0143328c8e53ab946f07926064db9b3f0428a85
--- /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 0000000000000000000000000000000000000000..6099022872d1e141d724a74eab40ca64238ef6b2
--- /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 0000000000000000000000000000000000000000..467a2e458232dfc21c22edc79a1cb03be5d39a78
--- /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 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /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 c8f11ebddc8f94c1b3cec034e259389938f87302..ed6ed3cd27f7919b5917c93e4d87b4de01f127a6 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 31ffeed5aad847d477be561500601545bd08e4ac..0000000000000000000000000000000000000000
--- 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 3ec8586b1c866a09a48d6bf42d4bc630565ab8cf..d6d2c3bba00c70d08dab74dd8665c03b542304b9 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 7d19476a4dd4c9f94683de2cc4cf87e0035335e0..8baab3ba250a0d41d3440bc2139c40deeb2e2084 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 d95f59e65c9d67bb396b7ab349cce4c7f1e174b3..309988bab3065b9497a1f86d199ee9c5d1c53400 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 7d8438360c8b78bfd38e523814a7d2e6ec9475ae..a59c86380c072d50f4da34c6a3704416f547b998 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 803a0d9c708cabe507efb57c454f694392f0e2f3..cca7214bd7834f1b6678321fb27a104ef926ef91 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 522727568abc32af3601acbd3553cc65c06429de..9a17ba8013db68211762a71e04e6607d29c887a8 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 8616c6807f903e08b4cb9a762727a3b546b557d8..499a5dda90549ef1e35a73c11e6b9a4deae2789d 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 7d3a6777170c7d908e294f9f47cea7e108f86019..82af21253d464e3cb46fe2f6ec9dd1cb453e50c6 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 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /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 62e9ad8f2875b5f447d32f9360e49d3ba0968e8b..2129eab3a2f6f85ef73bf6db22b1f11537e5207b 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 c5ee0e381b10865e77e81c9b73e292529a94a4f7..0000000000000000000000000000000000000000
--- 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 3ec8586b1c866a09a48d6bf42d4bc630565ab8cf..8887cccecdf3388d14ebe02d0ac26a5c9b004213 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 7d19476a4dd4c9f94683de2cc4cf87e0035335e0..664807e4a110ec70159b0a6db652f017a09495ec 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 a83bc6a2a8b05b6f2f2c224847ffa0f9e9b81190..709d04ada5a93d231b71c58746864e60b065aa15 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 7d8438360c8b78bfd38e523814a7d2e6ec9475ae..02114a323ae089bcfac6d32fdf26449afab14955 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 803a0d9c708cabe507efb57c454f694392f0e2f3..e0f86fc763dd2cb5f1a04440c53b661973fd01b7 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 522727568abc32af3601acbd3553cc65c06429de..0c0f017982dcc62061f3a942f0e7abcc2fde5738 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 8616c6807f903e08b4cb9a762727a3b546b557d8..6383ccb6badc086b1596b98277ad6218d5f11ca0 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 933e1bc94e7fa60f5bce563926051ac5530dbe95..5b479f3bb6ad09645f23739f9655800209f3dd16 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 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /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 4f2dffa00ab76352fb4ac4663c023715d8894e30..9927bd4c64306e2fce2ab7d96147c1349b7bfdca 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 13b0f4cc9318b4f821aa82df7d8810d72e2bf96b..0000000000000000000000000000000000000000
--- 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 bd0ec7888b2af0fbecebdb0c0058c7c26303f168..8e58153ffb421095e92ef8f8d24f57ae74e12aef 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 7d19476a4dd4c9f94683de2cc4cf87e0035335e0..7c35a7fb9bde7f9ce02ced8c7dcadcfb3075d020 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 0000000000000000000000000000000000000000..42062efb52260c66170bbc0e14960281539fab77
--- /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 3da5b7ea03c3f691dfccae3c2fe96abbaa5123ff..bb165d07d55fdc3176e67b4f64b5d9c77fb17966 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 7d8438360c8b78bfd38e523814a7d2e6ec9475ae..b35ad238e4b70d36de6eaef7ab77d4febd9718e2 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 1aa9ce7d287a9c23711defa407e97d7a94194fcd..de52e804a5a7e35e4ab8a25dfffb70c74eaed737 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 0000000000000000000000000000000000000000..927f613f6e41d730f825b5f77c149d302378420c
--- /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 e0ac87cb8458b242241bfc6d511e9b7ef893691f..f2faf48d5d1a5bc4d8cc8ef3333bce4e4312cb92 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 8616c6807f903e08b4cb9a762727a3b546b557d8..ffc9847b9ad56c501ff36ceb11a3346a18fa3612 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 ff0f37ffd2047f0fde6600c722cf64ee791d3b20..7886e34ee484ce9b35a029efc3313ae992a75dce 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