iterating on new helm structure for SO

with this change we can now do the following:

can deploy umbrella chart with currently working components:
helm install local/onap --name onap --namespace onap-all
helm install local/onap --name onap-2 --namespace onap-all-2 \
--set global.nodePortPrefix=303
- umbrella includes setup chart

can deploy a-la-carte component by component into a single namespace
- Need to deploy a setup chart first. cannot be made a helm dependency
as there will be conflicts if each app chart has the same setup dependency.
helm install local/setup --name onap-setup --namespace onap-apps
helm install local/so --name so1 --namespace onap-apps \
--set global.nodePortPrefix=304

helm list
NAME          REVISION    STATUS      CHART          NAMESPACE
onap          1           DEPLOYED    onap-2.0.0     onap-all
onap-2        1           DEPLOYED    onap-2.0.0     onap-all-2
onap-setup    1           DEPLOYED    setup-2.0.0    onap-apps
so1           1           DEPLOYED    so-2.0.0       onap-apps

Unfortunately, the config maps all have fixed names, so installing
the same app in the a-la-carte fashion will fail due to a collision.
Not worrying about this as I'm not sure we want to support this.

-made the common and setup charts standalone to remove relative file paths
from requirements.yaml
   This will help when there are different levels of subcharts that
need to include common

Issue-ID: OOM-786
Issue-ID: OOM-789
Issue-ID: OOM-788

Change-Id: I20bacae6f0f20e8f3bb1527af1e7e53f187341d5
Signed-off-by: Mandeep Khinda <mandeep.khinda@amdocs.com>
diff --git a/kubernetes/setup/.helmignore b/kubernetes/setup/.helmignore
new file mode 100644
index 0000000..f0c1319
--- /dev/null
+++ b/kubernetes/setup/.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/kubernetes/setup/Chart.yaml b/kubernetes/setup/Chart.yaml
new file mode 100644
index 0000000..cface13
--- /dev/null
+++ b/kubernetes/setup/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: An ONAP environment setup chart
+name: setup
+version: 2.0.0
diff --git a/kubernetes/setup/requirements.yaml b/kubernetes/setup/requirements.yaml
new file mode 100644
index 0000000..56029ab
--- /dev/null
+++ b/kubernetes/setup/requirements.yaml
@@ -0,0 +1,7 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    # local reference to common chart, as it is
+    # a part of this chart's package and will not
+    # be published independently to a repo (at this point)
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/setup/templates/clusterrolebinding.yaml b/kubernetes/setup/templates/clusterrolebinding.yaml
new file mode 100644
index 0000000..b2bdc72
--- /dev/null
+++ b/kubernetes/setup/templates/clusterrolebinding.yaml
@@ -0,0 +1,18 @@
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+  name: {{ include "common.namespace" . }}-binding
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: cluster-admin
+subjects:
+  - kind: ServiceAccount
+    name: default
+    namespace: {{ include "common.namespace" . }}
\ No newline at end of file
diff --git a/kubernetes/setup/templates/secrets.yaml b/kubernetes/setup/templates/secrets.yaml
new file mode 100644
index 0000000..573883a
--- /dev/null
+++ b/kubernetes/setup/templates/secrets.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.namespace" . }}-docker-registry-key
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+  .dockercfg: {{ .Values.global.repositorySecret | default .Values.repositorySecret }}
+type: kubernetes.io/dockercfg
\ No newline at end of file
diff --git a/kubernetes/setup/values.yaml b/kubernetes/setup/values.yaml
new file mode 100644
index 0000000..49ec058
--- /dev/null
+++ b/kubernetes/setup/values.yaml
@@ -0,0 +1,4 @@
+global:
+  # image repositories
+  repository: nexus3.onap.org:10001
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==