From a57d8dd090a3d3d747ba40ef58e14215e88adfa2 Mon Sep 17 00:00:00 2001 From: Mandeep Khinda Date: Fri, 9 Mar 2018 14:29:37 +0000 Subject: 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 --- kubernetes/setup/.helmignore | 21 +++++++++++++++++++++ kubernetes/setup/Chart.yaml | 4 ++++ kubernetes/setup/requirements.yaml | 7 +++++++ kubernetes/setup/templates/clusterrolebinding.yaml | 18 ++++++++++++++++++ kubernetes/setup/templates/secrets.yaml | 13 +++++++++++++ kubernetes/setup/values.yaml | 4 ++++ 6 files changed, 67 insertions(+) create mode 100644 kubernetes/setup/.helmignore create mode 100644 kubernetes/setup/Chart.yaml create mode 100644 kubernetes/setup/requirements.yaml create mode 100644 kubernetes/setup/templates/clusterrolebinding.yaml create mode 100644 kubernetes/setup/templates/secrets.yaml create mode 100644 kubernetes/setup/values.yaml (limited to 'kubernetes/setup') diff --git a/kubernetes/setup/.helmignore b/kubernetes/setup/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /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 0000000000..cface1324c --- /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 0000000000..56029ab047 --- /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 0000000000..b2bdc72549 --- /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 0000000000..573883a4a0 --- /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 0000000000..49ec05807c --- /dev/null +++ b/kubernetes/setup/values.yaml @@ -0,0 +1,4 @@ +global: + # image repositories + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== -- cgit 1.2.3-korg