Apply Cert changes

Issue-ID: AAF-822
Change-Id: I3185d827f3f67cb177534f7c7f3281375b77c613
Signed-off-by: Instrumental <jonathan.gathman@att.com>
diff --git a/kubernetes/aaf/.gitignore b/kubernetes/aaf/.gitignore
new file mode 100644
index 0000000..3a4f8ba
--- /dev/null
+++ b/kubernetes/aaf/.gitignore
@@ -0,0 +1 @@
+/sms/
diff --git a/kubernetes/aaf/charts/aaf-cs/.helmignore b/kubernetes/aaf/charts/aaf-cass/.helmignore
similarity index 100%
rename from kubernetes/aaf/charts/aaf-cs/.helmignore
rename to kubernetes/aaf/charts/aaf-cass/.helmignore
diff --git a/kubernetes/aaf/charts/aaf-cs/Chart.yaml b/kubernetes/aaf/charts/aaf-cass/Chart.yaml
similarity index 97%
rename from kubernetes/aaf/charts/aaf-cs/Chart.yaml
rename to kubernetes/aaf/charts/aaf-cass/Chart.yaml
index ff083ac..f06d149 100644
--- a/kubernetes/aaf/charts/aaf-cs/Chart.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/Chart.yaml
@@ -14,5 +14,5 @@
 
 apiVersion: v1
 description: ONAP AAF cassandra
-name: aaf-cs
+name: aaf-cass
 version: 4.0.0
diff --git a/kubernetes/aaf/charts/aaf-cs/templates/NOTES.txt b/kubernetes/aaf/charts/aaf-cass/templates/NOTES.txt
similarity index 100%
rename from kubernetes/aaf/charts/aaf-cs/templates/NOTES.txt
rename to kubernetes/aaf/charts/aaf-cass/templates/NOTES.txt
diff --git a/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
similarity index 60%
rename from kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml
rename to kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
index 3abdcb3..c664d03 100644
--- a/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml
@@ -23,7 +23,7 @@
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.cass.replicas }}
   template:
     metadata:
       labels:
@@ -32,39 +32,62 @@
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_cass:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        # installing with cmd "onap" will not only initialize the DB, but add ONAP bootstrap data as well
         command: ["/bin/bash","/opt/app/aaf/cass_init/cmd.sh","onap"]
+        lifecycle:
+          preStop:
+            exec:
+              command: ["/bin/sh","-c","rm /opt/app/aaf/status/aaf-cass"]
         ports:
-        - containerPort: {{ .Values.service.externalPort }}
-        - containerPort: {{ .Values.service.externalPort2 }}
-        - containerPort: {{ .Values.service.externalPort3 }}
-        - containerPort: {{ .Values.service.externalPort4 }}
+        - name: storage
+          containerPort: {{.Values.global.aaf.cass.storage_port}}
+        - name: ssl-storage
+          containerPort: {{.Values.global.aaf.cass.ssl_storage_port}}
+        - name: native-trans
+          containerPort: {{.Values.global.aaf.cass.native_trans_port}}
+        - name: rpc
+          containerPort: {{.Values.global.aaf.cass.rpc_port}}
         env:
         - name: CASSANDRA_CLUSTER_NAME
-          value: "osaaf"
+          value: {{.Values.global.aaf.cass.cluster_name}}
         - name: CASSANDRA_DC
-          value: "dc1"
+          value: {{.Values.global.aaf.cass.dc}}
         - name: HEAP_NEWSIZE
-          value: "512M"
+          value: {{.Values.global.aaf.cass.heap_new_size}}
         - name: MAX_HEAP_SIZE
-          value: "1024M"
+          value: {{.Values.global.aaf.cass.max_heap_size}}
+        - name: MY_POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: MY_POD_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        - name: MY_POD_IP
+          valueFrom:
+            fieldRef:
+              fieldPath: status.podIP
         volumeMounts:
         - mountPath: /var/lib/cassandra
-          name: cassandra-storage
+          name: aaf-cass-vol
+        - mountPath: /opt/app/aaf/status
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort3 }}
+            port: {{.Values.global.aaf.cass.native_trans_port}}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort3 }}
+            port: {{.Values.global.aaf.cass.native_trans_port}}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -81,10 +104,13 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: cassandra-storage
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-cass-vol
       {{- if .Values.persistence.enabled }}
         persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}
+          claimName: {{ include "common.fullname" . }}-pvc
       {{- else }}
         emptyDir: {}
       {{- end }}
diff --git a/kubernetes/aaf/charts/aaf-cs/templates/pv.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
similarity index 96%
rename from kubernetes/aaf/charts/aaf-cs/templates/pv.yaml
rename to kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
index 4209179..8249d84 100644
--- a/kubernetes/aaf/charts/aaf-cs/templates/pv.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml
@@ -18,7 +18,7 @@
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" . }}-pv
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -41,4 +41,4 @@
   storageClassName: "{{ .Values.persistence.storageClass }}"
 {{- end }}
 {{- end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-cs/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
similarity index 96%
rename from kubernetes/aaf/charts/aaf-cs/templates/pvc.yaml
rename to kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
index b102ffa..4f9dac0 100644
--- a/kubernetes/aaf/charts/aaf-cs/templates/pvc.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml
@@ -18,7 +18,7 @@
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ include "common.fullname" .}}-pvc
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -45,4 +45,4 @@
   storageClassName: "{{ .Values.persistence.storageClass }}"
 {{- end }}
 {{- end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-cass/templates/service.yaml b/kubernetes/aaf/charts/aaf-cass/templates/service.yaml
new file mode 100644
index 0000000..71882b1
--- /dev/null
+++ b/kubernetes/aaf/charts/aaf-cass/templates/service.yaml
@@ -0,0 +1,49 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+#  annotations:
+#    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    - name: storage
+      protocol: TCP
+      port: {{.Values.global.aaf.cass.storage_port}}
+      containerPort: {{.Values.global.aaf.cass.storage_port}}
+    - name: ssl-storage
+      protocol: TCP
+      port: {{.Values.global.aaf.cass.ssl_storage_port}}
+      containerPort: {{.Values.global.aaf.cass.ssl_storage_port}}
+    - name: native-trans
+      protocol: TCP
+      port: {{.Values.global.aaf.cass.native_trans_port}}
+      containerPort: {{.Values.global.aaf.cass.native_trans_port}}
+    - name: rpc
+      protocol: TCP
+      port: {{.Values.global.aaf.cass.rpc_port}}
+      containerPort: {{.Values.global.aaf.cass.rpc_port}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aaf/charts/aaf-cs/values.yaml b/kubernetes/aaf/charts/aaf-cass/values.yaml
similarity index 79%
rename from kubernetes/aaf/charts/aaf-cs/values.yaml
rename to kubernetes/aaf/charts/aaf-cass/values.yaml
index 7783745..ee05a19 100644
--- a/kubernetes/aaf/charts/aaf-cs/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cass/values.yaml
@@ -22,37 +22,29 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-# application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_cass:2.1.9-SNAPSHOT-latest
-pullPolicy: Always
-
 # application configuration
 config: {}
 
-# default number of instances
-replicaCount: 1
-
 nodeSelector: {}
 
 affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 120
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
   name: aaf-cass
   type: ClusterIP
-  portName: aaf-cs
+  portName: aaf-cass
   #targetPort
   internalPort: 7000
   #port
@@ -69,22 +61,23 @@
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 10000Mi
-    requests:
-      cpu: 10m
-      memory: 8500Mi
-  large:
-    limits:
-      cpu: 400m
-      memory: 12000Mi
-    requests:
-      cpu: 40m
-      memory: 9000Mi
-  unlimited: {}
+resources: {}
+  # Following AAI's advice, and not trying to guess on Cass usage.  Guessing just makes it slow
+#  small:
+#    limits:
+#      cpu: "1000m"
+#      memory: 4096Mi
+#    requests:
+#      cpu: 20m
+#      memory: 2048Mi
+#  large:
+#    limits:
+#      cpu: 400m
+#      memory: 12000Mi
+#    requests:
+#      cpu: 40m
+#      memory: 9000Mi
+#  unlimited: {}
 
 persistence:
   enabled: true
@@ -93,5 +86,5 @@
   mountSubPath: "cass"
   volumeReclaimPolicy: Retain
   accessMode: ReadWriteOnce
-  size: 10Gi
+  size: 20Gi
   storageClass: "manual"
diff --git a/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
index f78dfdc..87bcaa4 100644
--- a/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.cm.replicas }}
   template:
     metadata:
       labels:
@@ -32,61 +32,70 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"]
         volumeMounts:
           - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+            name: aaf-config-vol
+          - mountPath: "/opt/app/aaf/status"
+            name: aaf-status-vol
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-locate
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: cadi_x509_issuers
+            value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: CASSANDRA_CLUSTER
+            value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}"
+#          - name: CASSANDRA_USER
+#            value: ""
+#          - name: CASSANDRA_PASSWORD
+#            value: ""
+#         - name: CASSANDRA_PORT
+#            value: ""
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_cm","sleep","0","cd /opt/app/aaf;bin/cm"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-cm aaf-locate && exec bin/cm"]
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_cm:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+          name: aaf-config-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.cm.internal_port }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.cm.internal_port }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -103,7 +112,11 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
-        emptyDir: {}
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-config-pvc
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-cm/templates/service.yaml b/kubernetes/aaf/charts/aaf-cm/templates/service.yaml
index 281aa1c..f54c4d8 100644
--- a/kubernetes/aaf/charts/aaf-cm/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-cm/templates/service.yaml
@@ -24,18 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.cm.internal_port }}
+      nodePort: {{ .Values.global.aaf.cm.public_port }}
+      name: aaf-cm
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-cm/values.yaml b/kubernetes/aaf/charts/aaf-cm/values.yaml
index ec7de46..6ace7d1 100644
--- a/kubernetes/aaf/charts/aaf-cm/values.yaml
+++ b/kubernetes/aaf/charts/aaf-cm/values.yaml
@@ -24,14 +24,6 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_cm:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-cm.onap"
-pullPolicy: Always
-
-
-# default number of instances
-replicaCount: 1
 
 nodeSelector: {}
 
@@ -39,14 +31,14 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -62,19 +54,20 @@
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 800Mi
-    requests:
-      cpu: 20m
-      memory: 500Mi
-  large:
-    limits:
-      cpu: 400m
-      memory: 1Gi
-    requests:
-      cpu: 40m
-      memory: 600Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#  small:
+#    limits:
+#      cpu: 200m
+#      memory: 800Mi
+#    requests:
+#      cpu: 20m
+#      memory: 500Mi
+#  large:
+#    limits:
+#      cpu: 400m
+#      memory: 1Gi
+#    requests:
+#      cpu: 40m
+#      memory: 600Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-cs/templates/service.yaml b/kubernetes/aaf/charts/aaf-cs/templates/service.yaml
deleted file mode 100644
index b1716e4..0000000
--- a/kubernetes/aaf/charts/aaf-cs/templates/service.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.servicename" . }}
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-#  annotations:
-#    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    - port: {{ .Values.service.externalPort2 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
-      name: {{ .Values.service.portName }}2
-    - port: {{ .Values.service.externalPort3 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
-      name: {{ .Values.service.portName }}3
-    - port: {{ .Values.service.externalPort4 }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }}
-      name: {{ .Values.service.portName }}4
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    - port: {{ .Values.service.externalPort2 }}
-      targetPort: {{ .Values.service.internalPort2 }}
-      name: {{ .Values.service.portName }}2
-    - port: {{ .Values.service.externalPort3 }}
-      targetPort: {{ .Values.service.internalPort3 }}
-      name: {{ .Values.service.portName }}3
-    - port: {{ .Values.service.externalPort4 }}
-      targetPort: {{ .Values.service.internalPort4 }}
-      name: {{ .Values.service.portName }}4
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
-  clusterIP: None
diff --git a/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
index b938448..9f97da9 100644
--- a/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.fs.replicas }}
   template:
     metadata:
       labels:
@@ -32,48 +32,56 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"]
         volumeMounts:
           - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+            name: aaf-config-vol
+          - mountPath: "/opt/app/aaf/status"
+            name: aaf-status-vol
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-locate
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: cadi_x509_issuers
+            value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: CASSANDRA_CLUSTER
+            value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}"
+#          - name: CASSANDRA_USER
+#            value: ""
+#          - name: CASSANDRA_PASSWORD
+#            value: ""
+#         - name: CASSANDRA_PORT
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_fs","sleep","0","cd /opt/app/aaf;bin/fs"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-fs aaf-locate && exec bin/fs"]
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_fs:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+          name: aaf-config-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -103,7 +111,11 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
-        emptyDir: {}
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-config-pvc
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-fs/templates/service.yaml b/kubernetes/aaf/charts/aaf-fs/templates/service.yaml
index 281aa1c..1042afd 100644
--- a/kubernetes/aaf/charts/aaf-fs/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-fs/templates/service.yaml
@@ -24,18 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.fs.internal_port }}
+      nodePort: {{ .Values.global.aaf.fs.public_port }}
+      name: aaf-hello
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-fs/values.yaml b/kubernetes/aaf/charts/aaf-fs/values.yaml
index 526a9fd..48ad7c1 100644
--- a/kubernetes/aaf/charts/aaf-fs/values.yaml
+++ b/kubernetes/aaf/charts/aaf-fs/values.yaml
@@ -24,29 +24,23 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_fs:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-fs.onap"
 pullPolicy: Always
 
 
-# default number of instances
-replicaCount: 1
-
 nodeSelector: {}
 
 affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -62,19 +56,20 @@
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 600Mi
-    requests:
-      cpu: 10m
-      memory: 300Mi
-  large:
-    limits:
-      cpu: 500m
-      memory: 700Mi
-    requests:
-      cpu: 100m
-      memory: 400Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#  small:
+#    limits:
+#      cpu: 200m
+#      memory: 800Mi
+#    requests:
+#      cpu: 10m
+#      memory: 300Mi
+#  large:
+#    limits:
+#      cpu: 500m
+#      memory: 700Mi
+#    requests:
+#      cpu: 100m
+#      memory: 400Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
index 9dd8794..d067b5e 100644
--- a/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.gui.replicas }}
   template:
     metadata:
       labels:
@@ -32,61 +32,69 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"]
         volumeMounts:
           - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+            name: aaf-config-vol
+          - mountPath: "/opt/app/aaf/status"
+            name: aaf-status-vol
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-cm
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: cadi_x509_issuers
+            value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: CASSANDRA_CLUSTER
+            value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}"
+#          - name: CASSANDRA_USER
+#            value: ""
+#          - name: CASSANDRA_PASSWORD
+#            value: ""
+#         - name: CASSANDRA_PORT
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_gui","sleep","0","cd /opt/app/aaf;bin/gui"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-gui aaf-locate && exec bin/gui"]  
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_gui:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+          name: aaf-config-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.gui.internal_port }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.gui.internal_port }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -103,7 +111,11 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
-        emptyDir: {}
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-config-pvc
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-gui/templates/service.yaml b/kubernetes/aaf/charts/aaf-gui/templates/service.yaml
index 281aa1c..ea06925 100644
--- a/kubernetes/aaf/charts/aaf-gui/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-gui/templates/service.yaml
@@ -24,18 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.gui.internal_port }}
+      nodePort: {{ .Values.global.aaf.gui.public_port }}
+      name: aaf-gui
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-gui/values.yaml b/kubernetes/aaf/charts/aaf-gui/values.yaml
index 145dec1..3068f14 100644
--- a/kubernetes/aaf/charts/aaf-gui/values.yaml
+++ b/kubernetes/aaf/charts/aaf-gui/values.yaml
@@ -25,29 +25,23 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_gui:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-gui.onap"
 pullPolicy: Always
 
 
-# default number of instances
-replicaCount: 1
-
 nodeSelector: {}
 
 affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -64,19 +58,21 @@
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 100m
-      memory: 500Mi
-    requests:
-      cpu: 10m
-      memory: 200Mi
-  large:
-    limits:
-      cpu: 200m
-      memory: 1Gi
-    requests:
-      cpu: 100m
-      memory: 500Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#resources:
+#  small:
+#    limits:
+#      cpu: 100m
+#      memory: 500Mi
+#    requests:
+#      cpu: 10m
+#      memory: 200Mi
+#  large:
+#    limits:
+#      cpu: 200m
+#      memory: 1Gi
+#    requests:
+#      cpu: 100m
+#      memory: 500Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
index c57e57f..9faa580 100644
--- a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.hello.replicas }}
   template:
     metadata:
       labels:
@@ -32,48 +32,60 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_agent:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
-          - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+        - mountPath: "/opt/app/osaaf/local"
+          name: aaf-hello-vol
+        command: ["bash","-c","/opt/app/aaf_config/bin/pod_wait.sh config nc aaf-cm.{{.Release.Namespace}} 8150 remove && cd /opt/app/osaaf/local && /opt/app/aaf_config/bin/agent.sh"]
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-locate
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_app_ns
+            value: "org.osaaf.aaf"
+          - name: "APP_FQDN"
+            value: "{{ .Values.global.aaf.hello.fqdn }}"
+          - name: "APP_FQI"
+            value: "aaf@aaf.osaaf.org"
+          - name: "DEPLOY_FQI"
+            value: "deployer@people.osaaf.org"
+          - name: "DEPLOY_PASSWORD"
+            value: "demo123456!"
+# Hello specific.  Clients don't necessarily need this
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: aaf_locator_fqdn_oom
+            value: "%N.%CNS"
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_hello","sleep","0","cd /opt/app/aaf;bin/hello"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && exec bin/hello"]
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_hello:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
-        - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+        - mountPath: "/opt/app/osaaf/local"
+          name: aaf-hello-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -103,7 +115,10 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-hello-vol
         emptyDir: {}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-hello/templates/service.yaml b/kubernetes/aaf/charts/aaf-hello/templates/service.yaml
index 281aa1c..102e85d 100644
--- a/kubernetes/aaf/charts/aaf-hello/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/templates/service.yaml
@@ -24,18 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.hello.internal_port }}
+      nodePort: {{ .Values.global.aaf.hello.public_port }}
+      name: aaf-hello
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-hello/values.yaml b/kubernetes/aaf/charts/aaf-hello/values.yaml
index 8c46b80..c3ed9e1 100644
--- a/kubernetes/aaf/charts/aaf-hello/values.yaml
+++ b/kubernetes/aaf/charts/aaf-hello/values.yaml
@@ -18,35 +18,28 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
 flavor: small
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_hello:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-hello.onap"
-pullPolicy: Always
 
 
-# default number of instances
-replicaCount: 1
-
 nodeSelector: {}
 
 affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -62,19 +55,21 @@
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 500Mi
-    requests:
-      cpu: 10m
-      memory: 200Mi
-  large:
-    limits:
-      cpu: 400m
-      memory: 1Gi
-    requests:
-      cpu: 20m
-      memory: 500Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#resources:
+#  small:
+#    limits:
+#      cpu: 200m
+#      memory: 500Mi
+#    requests:
+#      cpu: 10m
+#      memory: 200Mi
+#  large:
+#    limits:
+#      cpu: 400m
+#      memory: 1Gi
+#    requests:
+#      cpu: 20m
+#      memory: 500Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
index a2f9f55..f504063 100644
--- a/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.locate.replicas }}
   template:
     metadata:
       labels:
@@ -32,61 +32,69 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"]
         volumeMounts:
           - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+            name: aaf-config-vol
+          - mountPath: "/opt/app/aaf/status"
+            name: aaf-status-vol
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-service
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: cadi_x509_issuers
+            value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: CASSANDRA_CLUSTER
+            value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}"
+#          - name: CASSANDRA_USER
+#            value: ""
+#          - name: CASSANDRA_PASSWORD
+#            value: ""
+#         - name: CASSANDRA_PORT
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_locate","sleep","0","cd /opt/app/aaf;bin/locate"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-locate aaf-service && exec bin/locate"]
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_locate:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+          name: aaf-config-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.locate.internal_port }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.locate.internal_port }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -103,7 +111,11 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
-        emptyDir: {}
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-config-pvc
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-locate/templates/service.yaml b/kubernetes/aaf/charts/aaf-locate/templates/service.yaml
index 281aa1c..606d947 100644
--- a/kubernetes/aaf/charts/aaf-locate/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-locate/templates/service.yaml
@@ -24,18 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.locate.internal_port }}
+      nodePort: {{ .Values.global.aaf.locate.public_port }}
+      name: aaf-locate
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-locate/values.yaml b/kubernetes/aaf/charts/aaf-locate/values.yaml
index a323837..c13f834 100644
--- a/kubernetes/aaf/charts/aaf-locate/values.yaml
+++ b/kubernetes/aaf/charts/aaf-locate/values.yaml
@@ -24,14 +24,6 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_locate:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-locate.onap"
-pullPolicy: Always
-
-
-# default number of instances
-replicaCount: 1
 
 nodeSelector: {}
 
@@ -39,14 +31,14 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -56,25 +48,27 @@
   #targetPort
   internalPort: 8095
   #port
-  externalPort: 8095
+  externalPort: 31111
 
 ingress:
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 600Mi
-    requests:
-      cpu: 20m
-      memory: 300Mi
-  large:
-    limits:
-      cpu: 400m
-      memory: 1Gi
-    requests:
-      cpu: 40m
-      memory: 500Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#resources:
+#  small:
+#    limits:
+#      cpu: 200m
+#      memory: 600Mi
+#    requests:
+#      cpu: 20m
+#      memory: 300Mi
+#  large:
+#    limits:
+#      cpu: 400m
+#      memory: 1Gi
+#    requests:
+#      cpu: 40m
+#      memory: 500Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
index f7a34f4..cc328d5 100644
--- a/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.oauth.replicas }}
   template:
     metadata:
       labels:
@@ -32,61 +32,69 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"]
         volumeMounts:
           - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+            name: aaf-config-vol
+          - mountPath: "/opt/app/aaf/status"
+            name: aaf-status-vol
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-locate
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: cadi_x509_issuers
+            value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: CASSANDRA_CLUSTER
+            value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}"
+#          - name: CASSANDRA_USER
+#            value: ""
+#          - name: CASSANDRA_PASSWORD
+#            value: ""
+#         - name: CASSANDRA_PORT
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_oauth","sleep","0","cd /opt/app/aaf;bin/oauth"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-oauth aaf-service && exec bin/oauth"]
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_oauth:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+          name: aaf-config-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.oauth.internal_port }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.oauth.internal_port }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -103,7 +111,11 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
-        emptyDir: {}
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-config-pvc
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml b/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml
index d94bcae..bb4a051 100644
--- a/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml
@@ -24,16 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.oauth.internal_port }}
+      nodePort: {{ .Values.global.aaf.oauth.public_port }}
+      name: aaf-oauth
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-oauth/values.yaml b/kubernetes/aaf/charts/aaf-oauth/values.yaml
index 7cb9f3b..3c29a62 100644
--- a/kubernetes/aaf/charts/aaf-oauth/values.yaml
+++ b/kubernetes/aaf/charts/aaf-oauth/values.yaml
@@ -18,35 +18,26 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
 flavor: small
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_oauth:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-oauth.onap"
-pullPolicy: Always
-
-
-# default number of instances
-replicaCount: 1
-
 nodeSelector: {}
 
 affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -62,19 +53,21 @@
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 400Mi
-    requests:
-      cpu: 20m
-      memory: 200Mi
-  large:
-    limits:
-      cpu: 400m
-      memory: 600Mi
-    requests:
-      cpu: 40m
-      memory: 200Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#resources:
+#  small:
+#    limits:
+#      cpu: 200m
+#      memory: 400Mi
+#    requests:
+#      cpu: 20m
+#      memory: 200Mi
+#  large:
+#    limits:
+#      cpu: 400m
+#      memory: 600Mi
+#    requests:
+#      cpu: 40m
+#      memory: 200Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
index 92d2312..1801bfe 100644
--- a/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
+++ b/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
@@ -23,7 +23,7 @@
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
 spec:
-  replicas: {{ .Values.replicaCount }}
+  replicas: {{ .Values.global.aaf.service.replicas }}
   template:
     metadata:
       labels:
@@ -32,61 +32,72 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config nc aaf-cass.{{ .Release.Namespace }} 9042 sleep 15 remove && bin/agent.sh"]
         volumeMounts:
           - mountPath: "/opt/app/osaaf"
-            name: {{ include "common.name" . }}-config-vol
+            name: aaf-config-vol
+          - mountPath: "/opt/app/aaf/status"
+            name: aaf-status-vol
         env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cadi.cass_host }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.cadi.cadi_locator_as }}"
-      - name: {{ include "common.name" . }}-readiness
-        command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aaf-cs
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          - name: aaf_env
+            value: "{{ .Values.global.aaf.aaf_env }}"
+          - name: cadi_latitude
+            value: "{{ .Values.global.aaf.cadi_latitude }}"
+          - name: cadi_longitude
+            value: "{{ .Values.global.aaf.cadi_longitude }}"
+          - name: cadi_x509_issuers
+            value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
+          - name: aaf_locate_url
+            value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}"
+          - name: aaf_locator_container
+            value: "oom"
+          - name: aaf_release
+            value: "{{ .Values.global.aaf.aaf_release }}"
+          - name: aaf_locator_container_ns
+            value: "{{ .Release.Namespace }}"
+          - name: aaf_locator_public_fqdn
+            value: "{{.Values.global.aaf.public_fqdn}}"
+          - name: aaf_locator_name
+            value: "{{.Values.global.aaf.aaf_locator_name}}"
+          - name: aaf_locator_name_oom
+            value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
+          - name: CASSANDRA_CLUSTER
+            value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}"
+#          - name: CASSANDRA_USER
+#            value: ""
+#          - name: CASSANDRA_PASSWORD
+#            value: ""
+#         - name: CASSANDRA_PORT
+#            value: ""
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_service","sleep","0","cd /opt/app/aaf;bin/service"]
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        command: ["/bin/bash","-c","cd /opt/app/aaf && bin/pod_wait.sh aaf-service aaf-cass  && exec bin/service"]
+        image: {{ .Values.global.repository }}/onap/aaf/aaf_service:{{.Values.global.aaf.imageVersion}}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        lifecycle:
+          preStop:
+            exec:
+              command: ["/bin/sh","-c","rm /opt/app/aaf/status/aaf-service* && echo $HOSTNAME >> aaf-service.hosts"]
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
+          name: aaf-config-vol
+        - mountPath: "/opt/app/aaf/status"
+          name: aaf-status-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.service.internal_port }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.global.aaf.service.internal_port }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -103,7 +114,11 @@
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.name" . }}-config-vol
-        emptyDir: {}
+      - name: aaf-status-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-status-pvc
+      - name: aaf-config-vol
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-config-pvc
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-service/templates/service.yaml b/kubernetes/aaf/charts/aaf-service/templates/service.yaml
index 281aa1c..4a318ff 100644
--- a/kubernetes/aaf/charts/aaf-service/templates/service.yaml
+++ b/kubernetes/aaf/charts/aaf-service/templates/service.yaml
@@ -24,18 +24,10 @@
     heritage: {{ .Release.Service }}
 spec:
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
-    - port: {{ .Values.service.externalPort }}
-      #Example internal target port if required
-      #targetPort: {{ .Values.service.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
-      name: {{ .Values.service.portName }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName }}
-    {{- end}}
+    - port: {{ .Values.global.aaf.service.internal_port }}
+      nodePort: {{ .Values.global.aaf.service.public_port }}
+      name: aaf-service
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
-  type: {{ .Values.service.type }}
+  type: "NodePort"
diff --git a/kubernetes/aaf/charts/aaf-service/values.yaml b/kubernetes/aaf/charts/aaf-service/values.yaml
index 42cebde..8794afe 100644
--- a/kubernetes/aaf/charts/aaf-service/values.yaml
+++ b/kubernetes/aaf/charts/aaf-service/values.yaml
@@ -24,14 +24,6 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_service:2.1.9-SNAPSHOT-latest
-aaf_register_as: "aaf-service.onap"
-pullPolicy: Always
-
-
-# default number of instances
-replicaCount: 1
 
 nodeSelector: {}
 
@@ -39,14 +31,14 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 300
+  initialDelaySeconds: 120
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 30
+  initialDelaySeconds: 5
   periodSeconds: 10
 
 service:
@@ -56,26 +48,27 @@
   #targetPort
   internalPort: 8100
   #port
-  externalPort: 8100
-  nodePort: 47
+  externalPort: 31110
 
 ingress:
   enabled: false
 
 # Configure resource requests and limits
-resources:
-  small:
-    limits:
-      cpu: 200m
-      memory: 600Mi
-    requests:
-      cpu: 20m
-      memory: 300Mi
-  large:
-    limits:
-      cpu: 400m
-      memory: 1Gi
-    requests:
-      cpu: 40m
-      memory: 300Mi
-  unlimited: {}
+resources: {}
+# Allow END users to do this, if they want.  Detrimental to Test services
+#resources:
+#  small:
+#    limits:
+#      cpu: 200m
+#      memory: 800Mi
+#    requests:
+#      cpu: 20m
+#      memory: 300Mi
+#  large:
+#    limits:
+#      cpu: 400m
+#      memory: 1Gi
+#    requests:
+#      cpu: 40m
+#      memory: 300Mi
+#  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml
index 355cd60..360bf42 100644
--- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml
+++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml
@@ -108,4 +108,4 @@
     requests:
       cpu: 10m
       memory: 100Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
diff --git a/kubernetes/aaf/templates/aaf-config-pv.yaml b/kubernetes/aaf/templates/aaf-config-pv.yaml
new file mode 100644
index 0000000..9a1e802
--- /dev/null
+++ b/kubernetes/aaf/templates/aaf-config-pv.yaml
@@ -0,0 +1,48 @@
+{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+#########
+##  ============LICENSE_START====================================================
+##  org.onap.aaf
+##  ===========================================================================
+##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+##  ===========================================================================
+##  Licensed under the Apache License, Version 2.0 (the "License");
+##  you may not use this file except in compliance with the License.
+##  You may obtain a copy of the License at
+##
+##       http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##  ============LICENSE_END====================================================
+##
+
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ .Release.Name }}-aaf-config-pv
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ .Chart.Name  }}-config
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.config.size}}
+  accessModes:
+    - {{ .Values.persistence.config.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.config.volumeReclaimPolicy }}
+  hostPath:
+     path: {{ .Values.persistence.config.mountPath }}
+{{- if .Values.persistence.config.storageClass }}
+{{- if (eq "-" .Values.persistence.config.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.config.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
diff --git a/kubernetes/aaf/templates/aaf-config-pvc.yaml b/kubernetes/aaf/templates/aaf-config-pvc.yaml
new file mode 100644
index 0000000..b22df6d
--- /dev/null
+++ b/kubernetes/aaf/templates/aaf-config-pvc.yaml
@@ -0,0 +1,52 @@
+{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+#########
+##  ============LICENSE_START====================================================
+##  org.onap.aaf
+##  ===========================================================================
+##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+##  ===========================================================================
+##  Licensed under the Apache License, Version 2.0 (the "License");
+##  you may not use this file except in compliance with the License.
+##  You may obtain a copy of the License at
+##
+##       http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##  ============LICENSE_END====================================================
+##
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ .Release.Name }}-aaf-config-pvc
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}-config
+  accessModes:
+    - {{ .Values.persistence.config.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.config.size }}
+{{- if .Values.persistence.config.storageClass }}
+{{- if (eq "-" .Values.persistence.config.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.config.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
+
diff --git a/kubernetes/aaf/templates/aaf-status-pv.yaml b/kubernetes/aaf/templates/aaf-status-pv.yaml
new file mode 100644
index 0000000..b8d12c5
--- /dev/null
+++ b/kubernetes/aaf/templates/aaf-status-pv.yaml
@@ -0,0 +1,48 @@
+{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+#########
+##  ============LICENSE_START====================================================
+##  org.onap.aaf
+##  ===========================================================================
+##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+##  ===========================================================================
+##  Licensed under the Apache License, Version 2.0 (the "License");
+##  you may not use this file except in compliance with the License.
+##  You may obtain a copy of the License at
+##
+##       http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##  ============LICENSE_END====================================================
+##
+
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ .Release.Name }}-aaf-status-pv
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ .Chart.Name  }}-status
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.status.size}}
+  accessModes:
+    - {{ .Values.persistence.status.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.status.volumeReclaimPolicy }}
+  hostPath:
+     path: {{ .Values.persistence.status.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.status.mountSubPath }}
+{{- if .Values.persistence.status.storageClass }}
+{{- if (eq "-" .Values.persistence.status.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.status.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
diff --git a/kubernetes/aaf/templates/aaf-status-pvc.yaml b/kubernetes/aaf/templates/aaf-status-pvc.yaml
new file mode 100644
index 0000000..870ac9c
--- /dev/null
+++ b/kubernetes/aaf/templates/aaf-status-pvc.yaml
@@ -0,0 +1,52 @@
+{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}}
+#########
+##  ============LICENSE_START====================================================
+##  org.onap.aaf
+##  ===========================================================================
+##  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+##  ===========================================================================
+##  Licensed under the Apache License, Version 2.0 (the "License");
+##  you may not use this file except in compliance with the License.
+##  You may obtain a copy of the License at
+##
+##       http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##  ============LICENSE_END====================================================
+##
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ .Release.Name }}-aaf-status-pvc
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}-status
+  accessModes:
+    - {{ .Values.persistence.status.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.status.size }}
+{{- if .Values.persistence.status.storageClass }}
+{{- if (eq "-" .Values.persistence.status.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.status.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
+
diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml
index 5a095e4..e07f346 100644
--- a/kubernetes/aaf/values.yaml
+++ b/kubernetes/aaf/values.yaml
@@ -18,25 +18,83 @@
 global:
   nodePortPrefix: 302
   readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.0
+  readinessImage: readiness-check:2.0.2
   ubuntuInitRepository: registry.hub.docker.com
   ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
-  configImage: onap/aaf/aaf_config:2.1.9-SNAPSHOT-latest
   persistence:
     enabled: true
+  pullPolicy: Always
+  repository: "nexus3.onap.org:10001"
+  # pullPolicy: IfNotPresent
+  # repository: "nexus3.onap.org:10003"
 
-  cadi:
-    hostname: "aaf.onap"
+  aaf:
+    imageVersion: 2.1.12-SNAPSHOT
+    #imageVersion: latest
+    readiness: false
+    aaf_env: "DEV"
+    public_fqdn: "aaf.osaaf.org"
+    aaf_release: "Dublin"
+  # DUBLIN ONLY - for M4 compatibility with Casablanca
+    aaf_locator_name: "public.%NS.%N"
+    aaf_locator_name_oom: "%NS.%N"
+  # EL ALTO and Beyond
+  #  aaf_locator_name: "%NS.%N"
+  #  aaf_locator_name_oom: "%CNS.%NS.%N"
     cadi_latitude: "38.0"
     cadi_longitude: "-72.0"
-    aaf_env: "DEV"
-    cass_host: "aaf-cass.onap"
-    cadi_locator_as: "aaf-locate.onap"
+    cadi_x509_issuers: "CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US"
+
+    cass:
+      replicas: 1
+      fqdn: "aaf-cass"
+      cluster_name: "osaaf"
+      heap_new_size: "512M"
+      max_heap_size: "1024M"
+      storage_port: 7000
+      ssl_storage_port: 7001
+      native_trans_port: 9042
+      rpc_port: 9160
+      dc: "dc1"
+    service:
+      replicas: 1
+      fqdn: "aaf-service"
+      internal_port: 8100
+      public_port: 31110
+    locate:
+      replicas: 1
+      fqdn: "aaf-locate"
+      internal_port: 8095
+      public_port: 31111
+    oauth:
+      replicas: 1
+      fqdn: "aaf0oauth"
+      internal_port: 8140
+      public_port: 31112
+    gui:
+      replicas: 1
+      fqdn: "aaf-gui"
+      internal_port: 8200
+      public_port: 31113
+    cm:
+      replicas: 1
+      fqdn: "aaf-cm"
+      internal_port: 8150
+      public_port: 31114
+    fs:
+      replicas: 1
+      fqdn: "aaf-fs"
+      internal_port: 8096
+      public_port: 31115
+    hello:
+      replicas: 0
+      fqdn: "aaf-hello"
+      internal_port: 8130
+      public_port: 31116
 
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 
 flavor: small
 # default number of instances
@@ -48,14 +106,14 @@
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 350
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 150
   periodSeconds: 10
 
 ingress:
@@ -63,31 +121,35 @@
 
 ## Persist data to a persitent volume
 persistence:
-  mountPath: "/mnt/data/aaf"
   enabled: true
   config:
     #existingClaim:
-    volumeReclaimPolicy: Retain
+    volumeReclaimPolicy: Delete
     accessMode: ReadWriteMany
     size: 2Gi
-    mountSubPath: "config"
     storageClass: "manual"
+    mountPath: "/mnt/data/aaf/config"
   logs:
     #existingClaim:
     volumeReclaimPolicy: Retain
     accessMode: ReadWriteMany
     size: 2Gi
-    mountSubPath: "logs"
     storageClass: "manual"
-
-aaf-cs:
-  persistence:
-    #existingClaim:
+    mountPath: "/mnt/data/aaf/logs"
+  status:
+    volumeReclaimPolicy: Delete
+    accessMode: ReadWriteMany
+    size: 2M
+    storageClass: "manual"
     mountPath: /dockerdata-nfs
-    mountSubPath: "cass"
+    mountSubPath: "status"
+  cass:
+    #existingClaim:
     volumeReclaimPolicy: Retain
     accessMode: ReadWriteOnce
     size: 10Gi
     storageClass: "manual"
+    mountPath: /dockerdata-nfs
+    mountSubPath: "cass"
 
 resources: {}