diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 784ce953a3d453d271830bab75b0e41f330303fa..c8202b72fb94ace6544a9a75aa8c64e32fe898d5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -70,7 +70,7 @@ ska-tango-examples-tests:
   stage: test
   tags:
     - k8srunner
-  retry: 2
+  allow_failure: true
   script:
     - |
       VERS=$(make show-version RELEASE_CONTEXT_DIR=images/ska-tango-images-pytango-builder)
diff --git a/.release b/.release
index 9702b52f1d7100651ad0cf0ec6c34d1e9d669d2a..e10334296e81d270199542eabf294c131530ac42 100644
--- a/.release
+++ b/.release
@@ -1,2 +1,2 @@
-release=0.4.0
-tag=0.4.0
+release=0.4.1
+tag=0.4.1
diff --git a/charts/ska-tango-base/Chart.yaml b/charts/ska-tango-base/Chart.yaml
index 6b84dbd8751a3fcb4dbd06dfbb3bf36f18cdf409..9e2df6aa344a87747b84e819577af46fa6213dec 100644
--- a/charts/ska-tango-base/Chart.yaml
+++ b/charts/ska-tango-base/Chart.yaml
@@ -1,10 +1,10 @@
 apiVersion: v2
 description: A Helm chart for deploying the TANGO base system on Kubernetes
 name: ska-tango-base
-version: 0.4.0
-appVersion: 0.4.0
+version: 0.4.1
+appVersion: 0.4.1
 icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png
 dependencies:
 - name: ska-tango-util
-  version: 0.4.0
+  version: 0.4.1
   repository: file://../ska-tango-util
diff --git a/charts/ska-tango-base/templates/databaseds.yaml b/charts/ska-tango-base/templates/databaseds.yaml
index 7175751eabe004f71fe77a16af74cd8f3aea815f..54f6e0b6cb1535c73d72f1bdf5eec25356993167 100644
--- a/charts/ska-tango-base/templates/databaseds.yaml
+++ b/charts/ska-tango-base/templates/databaseds.yaml
@@ -30,17 +30,20 @@ metadata:
       {{`{{- end }}`}}
       {{`{{- end }}`}}
     vault.hashicorp.com/role: "{{ .Values.databaseds.vault.role }}"
+{{- if or (.Values.global.annotations) (.Values.annotations) }}
 {{ toYaml (coalesce .Values.global.annotations .Values.annotations) | indent 4 }}
 {{- end }}
+{{- end }}
 spec:
+  usePV: {{ .Values.tangodb.use_pv }}
 {{- if or (.Values.global.minikube) (.Values.global.exposeAllDS) }}
   enableLoadBalancer: true
 {{- end }}
   imagePullPolicy: IfNotPresent
 {{- if (coalesce .Values.global.minikube .Values.minikube false)  }}
-  tangDBStorageClass: standard
+  tangoDBStorageClass: standard
 {{- else }}
-  tangDBStorageClass: nfss1
+  tangoDBStorageClass: nfss1
 {{- end }}
 
 {{- else }}
diff --git a/charts/ska-tango-base/templates/itango.yaml b/charts/ska-tango-base/templates/itango.yaml
index 2a56b4fe70670374bd1a95c850a4d86e5e20dd8f..579b39a27915e6df9bd5273037b4b31729c722a3 100644
--- a/charts/ska-tango-base/templates/itango.yaml
+++ b/charts/ska-tango-base/templates/itango.yaml
@@ -1,9 +1,9 @@
-{{ if .Values.itango.enabled }}
-{{ $default_tango_host := printf "%s-%s" "databaseds-tango-base-" .Release.Name }}
-{{ $tango_host := tpl (coalesce .Values.global.tango_host .Values.tango_host $default_tango_host | toString) . }}
-{{ $dsconfig := coalesce .Values.global.dsconfig .Values.dsconfig}}
-{{ $tries := coalesce  .Values.global.tries 10}}
-{{ $sleep := coalesce  .Values.global.sleep 5}}
+{{- if .Values.itango.enabled }}
+{{- $default_tango_host := printf "%s-%s" "databaseds-tango-base-" .Release.Name }}
+{{- $tango_host := tpl (coalesce .Values.global.tango_host .Values.tango_host $default_tango_host | toString) . }}
+{{- $dsconfig := coalesce .Values.global.dsconfig .Values.dsconfig}}
+{{- $tries := coalesce  .Values.global.tries 10}}
+{{- $sleep := coalesce  .Values.global.sleep 5}}
 ---
 apiVersion: v1
 kind: Pod
@@ -16,10 +16,10 @@ metadata:
     function: {{ .Values.itango.function }}
     domain: {{ .Values.itango.domain }}
     intent: {{ .Values.itango.intent }}
-{{ if or (.Values.global.annotations) (.Values.annotations) }}
+{{- if or (.Values.global.annotations) (.Values.annotations) }}
   annotations:
 {{ toYaml (coalesce .Values.global.annotations .Values.annotations) | indent 4 }}
-{{ end }}
+{{- end }}
 spec:
   initContainers:
   - name: check-dependencies-0
@@ -68,4 +68,4 @@ spec:
 {{ toYaml . | indent 4 }}
 {{- end }}
 
-{{ end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/ska-tango-base/templates/tangodb-pv.yaml b/charts/ska-tango-base/templates/tangodb-pv.yaml
index 89f0ef891025dce6bc6c330c331cf8279d50cbeb..a6f0c404154978b9259fd202eaf38a6142d819b2 100644
--- a/charts/ska-tango-base/templates/tangodb-pv.yaml
+++ b/charts/ska-tango-base/templates/tangodb-pv.yaml
@@ -1,3 +1,4 @@
+{{- if not .Values.global.operator }}
 {{ if .Values.tangodb.enabled }}
 
 {{ if .Values.tangodb.use_pv }}
@@ -52,4 +53,5 @@ spec:
       storage: 1Gi
 {{ end }}
 
-{{ end }}
\ No newline at end of file
+{{ end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/ska-tango-base/templates/tangodb.yaml b/charts/ska-tango-base/templates/tangodb.yaml
index 548bf497641fd6d851f9ea98043f31257b602717..4e42acbefc4e6c7e63570cdce3e64f71b98afaab 100644
--- a/charts/ska-tango-base/templates/tangodb.yaml
+++ b/charts/ska-tango-base/templates/tangodb.yaml
@@ -1,4 +1,5 @@
-{{ if .Values.tangodb.enabled }}
+{{- if .Values.tangodb.enabled }}
+{{- if not .Values.global.operator }}
 ---
 
 apiVersion: v1
@@ -159,4 +160,5 @@ spec:
 {{ toYaml . | indent 8 }}
 {{- end }}
 
-{{ end }}
\ No newline at end of file
+{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/charts/ska-tango-base/tests/deviceservers_test.yaml b/charts/ska-tango-base/tests/deviceservers_test.yaml
index f3eb939954685746f122495c94c7b14c5da71137..00f0897727f4ccc60e9e92d9958968547aebd49b 100644
--- a/charts/ska-tango-base/tests/deviceservers_test.yaml
+++ b/charts/ska-tango-base/tests/deviceservers_test.yaml
@@ -35,7 +35,7 @@ tests:
       - equal:
           path: data
           value:
-            TestServer.py: "import importlib\nimport importlib.util\nfrom tango.server import run\n\nclasses
+            TestServer.py: "\n#!/usr/bin/env python\n\nimport importlib\nimport importlib.util\nfrom tango.server import run\n\nclasses
               = []\n\ndef main(args=None, **kwargs):\n  \n  return run(classes=(classes), args=args,
               **kwargs)\n\nif __name__ == '__main__':\n    main()\n"
             bootstrap.sh: |
diff --git a/charts/ska-tango-base/values.yaml.sh b/charts/ska-tango-base/values.yaml.sh
index 6b4fb9759b4567dd52df3ee80bfccb421df4c83d..c6142af10a37648e718d7ad0c3c0037d1eea479f 100644
--- a/charts/ska-tango-base/values.yaml.sh
+++ b/charts/ska-tango-base/values.yaml.sh
@@ -134,8 +134,6 @@ deviceServers:
     domain: tango-base
     command: "/usr/local/bin/TangoTest"
     instances: ["test"]
-    depends_on:
-    - device: sys/database/2
     environment_variables: []
     server:
       name: "TangoTest"
diff --git a/charts/ska-tango-umbrella/Chart.yaml b/charts/ska-tango-umbrella/Chart.yaml
index d60bf23d996f159ef0a16912f81dc1210aaabb89..4e4d76595447bbf3f267a898d704770ec7b81a38 100644
--- a/charts/ska-tango-umbrella/Chart.yaml
+++ b/charts/ska-tango-umbrella/Chart.yaml
@@ -1,15 +1,15 @@
 apiVersion: v2
 description: A Helm chart for deploying the TANGO base system on Kubernetes
 name: ska-tango-umbrella
-version: 0.2.7
-appVersion: 0.2.7
+version: 0.2.8
+appVersion: 0.2.8
 icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png
 dependencies:
 - name: ska-tango-base
-  version: 0.4.0
+  version: 0.4.1
   repository: file://../ska-tango-base
   condition: ska-tango-base.enabled,global.sub-system.ska-tango-base.enabled
 - name: ska-tango-util
-  version: 0.4.0
+  version: 0.4.1
   repository: file://../ska-tango-util
 
diff --git a/charts/ska-tango-util/Chart.yaml b/charts/ska-tango-util/Chart.yaml
index e5433d08d0e0dfda8de282341c9b7482d7a2ebf0..67929089f3c33ff22e0680f0f775a3eb68557d56 100644
--- a/charts/ska-tango-util/Chart.yaml
+++ b/charts/ska-tango-util/Chart.yaml
@@ -2,8 +2,8 @@ apiVersion: v2
 description: A Helm chart library of utilities for TANGO deployents
 name: ska-tango-util
 type: library
-appVersion: 0.4.0
-version: 0.4.0
+appVersion: 0.4.1
+version: 0.4.1
 icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png
 maintainers:
 - name: Matteo Di Carlo
diff --git a/charts/ska-tango-util/templates/_deviceserver-pvc.yaml b/charts/ska-tango-util/templates/_deviceserver-pvc.yaml
index 4399812937cc5a4d7e9cad673383c68b6ac601a5..b8faa9db48f9316ef8d59c6b223a7fd9ef083225 100644
--- a/charts/ska-tango-util/templates/_deviceserver-pvc.yaml
+++ b/charts/ska-tango-util/templates/_deviceserver-pvc.yaml
@@ -17,19 +17,15 @@ Parameters are:
 - local (the local chart)
 
 */}}
-{{ define "ska-tango-util.deviceserver-pvc.tpl" }}
-
----
-{{/* replace with "if and .volume (not .volume.existingClaimName)" for Helm >= 3.10 */}}
+{{- define "ska-tango-util.deviceserver-pvc.tpl" }}
+{{- /* replace with "if and .volume (not .volume.existingClaimName)" for Helm >= 3.10 */}}
 {{- if .volume }}
 {{- if not .volume.existingClaimName }}
-
-{{ $volume_name := .volume.name }}
-{{ $volume_path := .volume.mountPath }}
-{{ $volume_size := coalesce .volume.storage "250Mi" }}
-{{ $labels := coalesce .local.Values.global.labels .local.Values.labels "label:none" }}
-{{ $annotations := coalesce .local.Values.global.annotations .local.Values.annotations }}
-
+{{- $volume_name := .volume.name }}
+{{- $volume_path := .volume.mountPath }}
+{{- $volume_size := coalesce .volume.storage "250Mi" }}
+{{- $labels := coalesce .local.Values.global.labels .local.Values.labels "label:none" }}
+{{- $annotations := coalesce .local.Values.global.annotations .local.Values.annotations }}
 ---
 apiVersion: v1
 kind: PersistentVolumeClaim
@@ -38,16 +34,16 @@ metadata:
   namespace: {{ .local.Release.Namespace }}
   labels:
 {{ toYaml $labels | indent 4 }}
-{{ if $annotations }}
+{{- if $annotations }}
   annotations:
 {{ toYaml $annotations | indent 4 }}
-{{ end }}
+{{- end }}
 spec:
-{{ if (coalesce .local.Values.global.minikube .local.Values.minikube false)  }}
+{{- if (coalesce .local.Values.global.minikube .local.Values.minikube false)  }}
   storageClassName: standard
-{{ else }}
+{{- else }}
   storageClassName: nfss1
-{{ end }}
+{{- end }}
   accessModes:
     - ReadWriteMany
   resources:
@@ -55,7 +51,6 @@ spec:
       storage: {{ $volume_size }}
 
 ---
-
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -64,10 +59,10 @@ metadata:
 {{ toYaml $labels | indent 4 }}
   name: {{ $volume_name | toString }}-admin-{{ .local.Release.Name }}
   namespace: {{ .local.Release.Namespace }}
-{{ if $annotations }}
+{{- if $annotations }}
   annotations:
 {{ toYaml $annotations | indent 4 }}
-{{ end }}
+{{- end }}
 spec:
   replicas: 1
   selector:
diff --git a/charts/ska-tango-util/templates/_deviceserver.yaml b/charts/ska-tango-util/templates/_deviceserver.yaml
index ce63a671c7129cfaf4b7747c339225e66913a395..603ea3d2c0159fac37979b79feeb617708219f9f 100644
--- a/charts/ska-tango-util/templates/_deviceserver.yaml
+++ b/charts/ska-tango-util/templates/_deviceserver.yaml
@@ -212,6 +212,7 @@ spec:
 {{- if or ($chart.Values.global.minikube) ($chart.Values.global.exposeAllDS) (.deviceserver.exposeDS) }}
   enableLoadBalancer: true
 {{- end }}
+  dsname: "{{ .deviceserver.name }}"
   databaseds: {{ $databaseds_name }}
   image: "{{ tpl (.deviceserver.image.registry | toString) $chart }}/{{ tpl (.deviceserver.image.image | toString) $chart }}:{{ tpl (.deviceserver.image.tag | toString) $chart }}"
   imagePullPolicy: {{ tpl (.deviceserver.image.pullPolicy | toString) $chart }}
@@ -220,7 +221,7 @@ spec:
   config: |
 {{ $chart.Files.Get $chart.Values.dsconfig.configuration_file | indent 4 }}
 {{- end }}
-  script: "{{ .deviceserver.command }}"
+  command: "{{ .deviceserver.command }}"
 {{- if (.deviceserver.depends_on) }}
   dependsOn:
 {{- range $index, $device := .deviceserver.depends_on }}
diff --git a/charts/ska-tango-util/templates/_entrypoints-script.yml b/charts/ska-tango-util/templates/_entrypoints-script.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d406f103204ff74fb443c930ca02d7af5f890994
--- /dev/null
+++ b/charts/ska-tango-util/templates/_entrypoints-script.yml
@@ -0,0 +1,45 @@
+{{- /*
+tango-util.entrypoints-script.tpl
+Parameters:
+- deviceserver (the deviceserver entire yaml tag)
+- DEBUG (number: activate debugpy at this port; leave empty otherwise)
+*/}}
+{{- define "ska-tango-util.entrypoints-script.tpl" }}
+#!/usr/bin/env python
+
+import importlib
+import importlib.util
+from tango.server import run
+
+classes = []
+
+{{- range $entrypoint := .deviceserver.entrypoints }}
+splitted_name = str(" {{ $entrypoint.name }} ").split(sep='.')
+module_name = ".".join(splitted_name[:-1])
+{{- if $entrypoint.path }}
+spec = importlib.util.spec_from_file_location(module_name.strip(), "{{  $entrypoint.path }}")
+mod = importlib.util.module_from_spec(spec)
+spec.loader.exec_module(mod)
+
+myclass = getattr(mod, splitted_name[-1].strip())
+if not myclass in classes:
+  classes.append(myclass)
+
+{{- else }}
+
+mod = importlib.import_module(module_name.strip())
+myclass = getattr(mod,  splitted_name[-1].strip())
+if not myclass in classes:
+  classes.append(myclass)
+
+{{- end }}
+{{- end }}
+
+def main(args=None, **kwargs):
+  {{ if .DEBUG }}import debugpy; debugpy.listen({{ .DEBUG }}){{ end }}
+  return run(classes=(classes), args=args, **kwargs)
+
+if __name__ == '__main__':
+    main()
+
+{{- end }}
\ No newline at end of file
diff --git a/charts/ska-tango-util/templates/_multidevice-config.yaml b/charts/ska-tango-util/templates/_multidevice-config.yaml
index ae1d5e31cc76714dce57343e618ad04ab6891030..e31422eefdb07135b58af086f4d05d2cc85a2ffd 100644
--- a/charts/ska-tango-util/templates/_multidevice-config.yaml
+++ b/charts/ska-tango-util/templates/_multidevice-config.yaml
@@ -1,10 +1,10 @@
 {{ define "ska-tango-util.multidevice-config.tpl" }}
----
-{{ $labels := coalesce .local.Values.global.labels .local.Values.labels "label: none" }}
-{{ $annotations := coalesce .local.Values.global.annotations .local.Values.annotations }}
-{{ $deviceserver := .deviceserver }}
-{{ $deviceserver_name := tpl (coalesce .name .deviceserver.name | toString) .local }}
-{{ $chart := .local }}
+{{- $labels := coalesce .local.Values.global.labels .local.Values.labels "label: none" }}
+{{- $annotations := coalesce .local.Values.global.annotations .local.Values.annotations }}
+{{- $deviceserver := .deviceserver }}
+{{- $deviceserver_name := tpl (coalesce .name .deviceserver.name | toString) .local }}
+{{- $chart := .local }}
+{{- if not .local.Values.global.operator }}
 
 ---
 # Device Server configuration
@@ -22,7 +22,6 @@ metadata:
   annotations:
 {{ toYaml $annotations | indent 4 }}
 data:
-{{- if not .local.Values.global.operator }}
   configuration.json: |
     {
       "servers": {
@@ -115,42 +114,8 @@ data:
         exit $rc
       fi
     fi
-{{- end }}
   {{ $deviceserver.server.name }}.py: |
-    import importlib
-    import importlib.util
-    from tango.server import run
-
-    classes = []
-
-    {{- range $entrypoint := $deviceserver.entrypoints }}
-    splitted_name = str(" {{ $entrypoint.name }} ").split(sep='.')
-    module_name = ".".join(splitted_name[:-1])
-    {{- if $entrypoint.path }}
-    spec = importlib.util.spec_from_file_location(module_name.strip(), "{{  $entrypoint.path }}")
-    mod = importlib.util.module_from_spec(spec)
-    spec.loader.exec_module(mod)
-
-    myclass = getattr(mod, splitted_name[-1].strip())
-    if not myclass in classes:
-      classes.append(myclass)
-
-    {{- else }}
-
-    mod = importlib.import_module(module_name.strip())
-    myclass = getattr(mod,  splitted_name[-1].strip())
-    if not myclass in classes:
-      classes.append(myclass)
-
-    {{- end }}
-    {{- end }}
-
-    def main(args=None, **kwargs):
-      {{ if $chart.Values.global.DEBUG }}import debugpy; debugpy.listen({{ $chart.Values.global.DEBUG }}){{ end }}
-      return run(classes=(classes), args=args, **kwargs)
-
-    if __name__ == '__main__':
-        main()
-
-
-{{ end }} # multidevice-config.tpl
+{{- $context := dict "deviceserver" $deviceserver "DEBUG" $chart.Values.global.DEBUG }}
+{{- include "ska-tango-util.entrypoints-script.tpl" $context | nindent 4}}
+{{- end }}
+{{- end }} # multidevice-config.tpl
\ No newline at end of file
diff --git a/charts/ska-tango-util/templates/_operator-ds.yaml b/charts/ska-tango-util/templates/_operator-ds.yaml
index c74392462a52f35d992219dbc744c28684de24bc..ede639902a49643cf8188a50fef8ccbc1f007443 100644
--- a/charts/ska-tango-util/templates/_operator-ds.yaml
+++ b/charts/ska-tango-util/templates/_operator-ds.yaml
@@ -7,7 +7,6 @@ Parameters:
 - instance (of the device server)
 */}}
 {{ define "ska-tango-util.operator-svc.tpl" }}
----
 {{- $labels := coalesce .local.Values.global.labels .local.Values.labels "label:none" }}
 {{- $annotations := coalesce .local.Values.global.annotations .local.Values.annotations }}
 {{- $default_tango_host := printf "%s-%s:10000" "databaseds-tango-base-" .local.Release.Name }}
@@ -31,10 +30,10 @@ metadata:
     function: {{ $deviceserver.function }}
     domain: {{ $deviceserver.domain }}
     subsystem: {{ $chart.Values.subsystem }}
-{{ if $annotations }}
+{{- if $annotations }}
   annotations:
 {{ toYaml $annotations | indent 4 }}
-{{ end }}
+{{- end }}
 spec:
 {{- if or ($chart.Values.global.minikube) ($chart.Values.global.exposeAllDS) ($deviceserver.exposeDS) }}
   enableLoadBalancer: true
@@ -43,24 +42,19 @@ spec:
   image: "{{ tpl ($deviceserver.image.registry | toString) $chart }}/{{ tpl ($deviceserver.image.image | toString) $chart }}:{{ tpl ($deviceserver.image.tag | toString) $chart }}"
   imagePullPolicy: {{ tpl ($deviceserver.image.pullPolicy | toString) $chart }}
   args: "{{ $safe_instance | toString }}"
+  {{- if hasKey $deviceserver "volume" }}
   volumes:
-  - name: configuration
-    configMap:
-      name: {{$deviceserver_name | toString }}-{{ $chart.Release.Name }}-dsconfig-json
-  {{ if hasKey $deviceserver "volume" }}
   - name: volume-data
     persistentVolumeClaim:
       claimName: {{ $deviceserver.volume.existingClaimName | default (printf "%s-pvc-%s" $deviceserver.volume.name $chart.Release.Name) }}
-  {{ end }}
+  {{- end }}
+  {{- with $deviceserver.volume }}
   volumeMounts:
-  - name: configuration
-    mountPath: data
-    readOnly: true
-  {{ with $deviceserver.volume }}
   - name: volume-data
     mountPath: {{ .mountPath }}
     readOnly: {{ (hasKey . "readOnly" | ternary .readOnly true) }}{{/* https://github.com/helm/helm/issues/3308 */}}
-  {{ end }}
+  {{- end }}
+  dsname: "{{ $deviceserver.server.name }}"
   config: |
     {
       "servers": {
@@ -138,14 +132,16 @@ spec:
     }
     {{- $_ := unset $deviceserver "tmp_start_instance" }}
 {{- if $deviceserver.command }}
-  script: "{{ $deviceserver.command }}"
+  command: "{{ $deviceserver.command }}"
 {{- else }}
-  script: "/data/{{ $deviceserver.server.name }}.py"
+  script: |
+{{- $context := dict "deviceserver" $deviceserver "DEBUG" $chart.Values.global.DEBUG }}
+{{- include "ska-tango-util.entrypoints-script.tpl" $context | nindent 4 }}
 {{- end }}
 {{- if ($deviceserver.depends_on) }}
   dependsOn:
 {{- range $index, $device := $deviceserver.depends_on }}
-  - "{{ $device.device | toString }}"
+  - "{{ coalesce $device.device $device.host | toString }}"
 {{- end }}
 {{- end }}
 {{- if or ($chart.Values.global.environment_variables) ($deviceserver.environment_variables) }}
@@ -178,10 +174,8 @@ spec:
 {{- with $chart.Values.tolerations }}
   tolerations:
     {{- toYaml . | nindent 4 }}
-{{- end }}
 
-{{ end }} ## if has
-
-{{ end }} # range instances
-
-{{ end }} # ska-tango-util.operator-svc.tpl
+{{- end }}
+{{- end }} ## if has
+{{- end }} # range instances
+{{- end }} # ska-tango-util.operator-svc.tpl
\ No newline at end of file