Create Helm based Certificates for Clients

Issue-ID: AAF-802
Change-Id: I5fdc4daecd6bac7f042940473784cfb05c9e338e
Signed-off-by: Instrumental <jonathan.gathman@att.com>
diff --git a/auth/helm/aaf-hello/.helmignore b/auth/helm/aaf-hello/.helmignore
new file mode 100644
index 0000000..f0c1319
--- /dev/null
+++ b/auth/helm/aaf-hello/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/auth/helm/aaf-hello/Chart.yaml b/auth/helm/aaf-hello/Chart.yaml
new file mode 100644
index 0000000..3b23f6d
--- /dev/null
+++ b/auth/helm/aaf-hello/Chart.yaml
@@ -0,0 +1,25 @@
+#########
+##  ============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====================================================
+##
+
+apiVersion: v1
+appVersion: "1.0"
+description: AAF Hello Helm Chart
+name: aaf-hello
+version: 2.1.11-SNAPSHOT
diff --git a/auth/helm/aaf-hello/aaf.sh b/auth/helm/aaf-hello/aaf.sh
new file mode 100644
index 0000000..5bb8351
--- /dev/null
+++ b/auth/helm/aaf-hello/aaf.sh
@@ -0,0 +1,84 @@
+. ../../docker/d.props
+IMAGE=onap/aaf/aaf_agent:$VERSION
+
+kubectl -n onap run -it --rm aaf-agent-$USER --image=$IMAGE --overrides='
+{
+    "spec": {
+        "containers": [
+            {
+                "name": "aaf-agent-'$USER'",
+		"image": "'$IMAGE'",
+                "imagePullPolicy": "IfNotPresent",
+		"command": [
+                   "bash", 
+		   "-c",
+                   "/opt/app/aaf_config/bin/agent.sh && cd /opt/app/osaaf/local && exec bash"
+                 ],
+                "env": [
+                   {
+                     "name": "aaf_locator_container",
+                     "value": "helm"
+		   },{
+                     "name": "aaf_locator_fqdn",
+                     "value": "'$HOSTNAME'"
+		   },{
+                     "name": "aaf_locator_url",
+                     "value": "https://aaf-locate:8095"
+		   },{
+                     "name": "aaf_locator_public_hostname",
+                     "value": "'$HOSTNAME'"
+		   },{
+                     "name": "AAF_ENV",
+                     "value": "'$AAF_ENV'"
+		   },{
+                     "name": "LATITUDE",
+                     "value": "'$LATITUDE'"
+		   },{
+                     "name": "LONGITUDE",
+                     "value": "'$LONGITUDE'"
+		   },{
+                     "name": "CASSANDRA_CLUSTER",
+                     "value": "'$CASSANDRA_CLUSTER'"
+		   },{
+                     "name": "CASSANDRA_USER",
+                     "value": "'$CASSANDRA_USER'"
+		   },{
+                     "name": "CASSANDRA_PASSWORD",
+                     "value": "'$CASSANDRA_PASSWORD'"
+		   },{
+                     "name": "CASSANDRA_PORT",
+                     "value": "'$CASSANDRA_PORT'"
+		   }
+                ],
+                "stdin": true,
+                "stdinOnce": true,
+                "tty": true,
+                "volumeMounts": [
+                    {
+                        "mountPath": "/opt/app/osaaf",
+                        "name": "aaf-config-vol"
+                    },
+                    {
+                        "mountPath": "/opt/app/aaf/status",
+                        "name": "aaf-status-vol"
+                    }
+                ]
+            }
+        ],
+      "volumes": [
+            {
+                "name": "aaf-config-vol",
+                "persistentVolumeClaim": {
+                    "claimName": "aaf-config-pvc"
+                }
+            },
+            {
+                "name": "aaf-status-vol",
+                "persistentVolumeClaim": {
+                    "claimName": "aaf-status-pvc"
+                }
+            }
+        ]
+   }
+}
+' --restart=Never  -- bash 
diff --git a/auth/helm/aaf-hello/templates/NOTES.txt b/auth/helm/aaf-hello/templates/NOTES.txt
new file mode 100644
index 0000000..a680557
--- /dev/null
+++ b/auth/helm/aaf-hello/templates/NOTES.txt
@@ -0,0 +1 @@
+AAF Persistence basics loaded
diff --git a/auth/helm/aaf-hello/templates/aaf-hello.yaml b/auth/helm/aaf-hello/templates/aaf-hello.yaml
new file mode 100644
index 0000000..c114e5e
--- /dev/null
+++ b/auth/helm/aaf-hello/templates/aaf-hello.yaml
@@ -0,0 +1,102 @@
+#########
+##  ============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====================================================
+##
+###
+### AAF-HELLO
+###
+kind: Service
+apiVersion: v1
+metadata:
+  name: aaf-hello
+spec:
+  selector:
+    app: aaf-hello
+  type: NodePort
+  ports:
+    - name: aaf-hello
+      protocol: TCP
+      port: 8130
+      nodePort: 30086
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: aaf-hello
+  labels:
+    app: aaf-hello
+spec:
+  replicas: {{ .Values.replicas.hello }}
+  selector:
+    matchLabels:
+      app: aaf-hello
+  template:
+    metadata:
+      labels:
+        app: aaf-hello
+    spec:
+      volumes:
+        # Use this Pod Sharing dir to declare various States of starting
+      - name: hello-config-vol
+        emptyDir: {}
+      initContainers:
+        - name: hello-config-container
+          image: {{ .Values.image.repository }}onap/aaf/aaf_agent:{{ .Values.image.version }}
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+            - mountPath: "/opt/app/osaaf/local"
+              name: hello-config-vol
+          command: ["bash","-c","cd /opt/app/osaaf/local && /opt/app/aaf_config/bin/agent.sh place aaf@aaf.osaaf.org aaf"]
+          env:
+            - name: "AAF_ENV"
+              value: "DEV"
+            - name: "AAF_FQDN"
+              value: "aaf-locate.onap"
+            - name: "APP_FQDN"
+              value: "aaf"
+            - name: "APP_FQI"
+              value: "aaf@aaf.osaaf.org"
+            - name: LATITUDE
+              value: "{{ .Values.cadi.cadi_latitude }}"
+            - name: LONGITUDE
+              value: "{{ .Values.cadi.cadi_longitude }}"
+            - name: "CONTAINER_NS"
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+            - name: "DEPLOY_FQI"
+              value: "deployer@people.osaaf.org"
+            - name: "DEPLOY_PASSWORD"
+              value: "demo123456!"
+
+###
+### AAF-HELLO
+###
+      containers:
+      - name: aaf-hello
+        image: {{ .Values.image.repository }}onap/aaf/aaf_hello:{{ .Values.image.version }}
+        imagePullPolicy: IfNotPresent
+        command: ["/bin/bash","-c","cd /opt/app/aaf && exec bin/hello"]
+        volumeMounts:
+        -  mountPath: "/opt/app/osaaf/local"
+           name: hello-config-vol
+        ports:
+        - name: aaf-hello
+          protocol: TCP
+          containerPort: 8130
+
diff --git a/auth/helm/aaf-hello/values.yaml b/auth/helm/aaf-hello/values.yaml
new file mode 100644
index 0000000..d5fa747
--- /dev/null
+++ b/auth/helm/aaf-hello/values.yaml
@@ -0,0 +1,77 @@
+#########
+##  ============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====================================================
+##
+#
+# Default values for aaf.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+global:
+  persistence:
+    enabled: true
+  common:
+    namespace: "onap"
+
+replicas:
+  hello: 1
+
+ingress:
+  enabled: false
+
+cadi:
+  hostname: "aaf.onap"
+  cadi_latitude: "38.0"  
+  cadi_longitude: "-72.0"  
+  aaf_env: "DEV"
+
+persistence:
+  # Note: Minikube will persist to /data on your host machine
+  mountPath: "/data/aaf"
+  hello:
+    volumeReclaimPolicy: Retain
+    accessMode: ReadWriteOnce
+    size: 1Gi
+    mountSubPath: "config"
+    storageClass: "manual"
+
+image:
+  # When using locally built Docker Container, set Repository to ""
+  repository: ""
+  # When using Docker Repo, add, and include trailing "/"
+  # repository: nexus3.onap.org:10003/
+  # repository: localhost:5000/
+  version: 2.1.11-SNAPSHOT
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  # limits:
+  #  cpu: 100m
+  #  memory: 128Mi
+  # requests:
+  #  cpu: 100m
+  #  memory: 128Mi
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}