Add chartmuseum as the helm repo 28/528/2
authorZhe Huang <zhehuang@research.att.com>
Thu, 18 Jul 2019 04:31:04 +0000 (00:31 -0400)
committerZhe Huang <zhehuang@research.att.com>
Thu, 18 Jul 2019 05:40:47 +0000 (01:40 -0400)
Signed-off-by: Zhe Huang <zhehuang@research.att.com>
Change-Id: Ie9af4a453bc18166ff8a8c3cc61ca4ca190f8dc2

26 files changed:
RECIPE_EXAMPLE/RIC_INFRA_RECIPE_EXAMPLE
ric-common/Common-Template/helm/ric-common/templates/_configmapname.tpl
ric-common/Common-Template/helm/ric-common/templates/_containername.tpl
ric-common/Common-Template/helm/ric-common/templates/_deploymentname.tpl
ric-common/Common-Template/helm/ric-common/templates/_ingressname.tpl
ric-common/Common-Template/helm/ric-common/templates/_name.tpl
ric-common/Common-Template/helm/ric-common/templates/_ports.tpl
ric-common/Common-Template/helm/ric-common/templates/_serviceaccountname.tpl
ric-common/Common-Template/helm/ric-common/templates/_servicename.tpl
ric-infra/15-Chartmuseum/bin/clear_data_path [new file with mode: 0755]
ric-infra/15-Chartmuseum/bin/install [new file with mode: 0755]
ric-infra/15-Chartmuseum/bin/uninstall [new file with mode: 0755]
ric-infra/15-Chartmuseum/etc/chartmuseum.conf [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/Chart.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/requirements.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/_gen-cert.tpl [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/deployment.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/env.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/ingress.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/job-save-certs.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/persistentVolume.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/persistentVolumeClaim.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/secret.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/service.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/templates/storageClass.yaml [new file with mode: 0644]
ric-infra/15-Chartmuseum/helm/chartmuseum/values.yaml [new file with mode: 0644]

index 3912aea..e20150a 100644 (file)
@@ -88,3 +88,11 @@ nexus:
   datapath: /tmp/nexus3-data/
   storagesize: 20Gi
 
+chartmuseum:
+  repositoryOverride: "registry.hub.docker.com"
+  image:
+    name: chartmuseum/chartmuseum
+    tag: v0.8.2
+
+  storagesize: 2Gi
+  datapath: /tmp/chartmuseum-data/
index 7aa2795..4cff1a1 100644 (file)
   {{- printf "configmap-%s" $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.configmapname.chartmuseum" -}}
+  {{- $name := ( include "common.fullname.chartmuseum" . ) -}}
+  {{- printf "configmap-%s" $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
 {{- define "common.configmapname.dashboard" -}}
   {{- $name := ( include "common.fullname.dashboard" . ) -}}
   {{- printf "configmap-%s" $name | trunc 63 | trimSuffix "-" -}}
index 3935beb..f060dc2 100644 (file)
   {{- printf "container-%s" $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.containername.chartmuseum" -}}
+  {{- $name := ( include "common.fullname.chartmuseum" . ) -}}
+  {{- printf "container-%s" $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
 {{- define "common.containername.dashboard" -}}
   {{- $name := ( include "common.fullname.dashboard" . ) -}}
   {{- printf "container-%s" $name | trunc 63 | trimSuffix "-" -}}
index 185bfc1..f1104dc 100644 (file)
   {{- printf "deployment-%s" $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.deploymentname.chartmuseum" -}}
+  {{- $name := ( include "common.fullname.chartmuseum" . ) -}}
+  {{- printf "deployment-%s" $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
 {{- define "common.deploymentname.dashboard" -}}
   {{- $name := ( include "common.fullname.dashboard" . ) -}}
   {{- printf "deployment-%s" $name | trunc 63 | trimSuffix "-" -}}
index f80063f..5f090b6 100644 (file)
   {{- printf "ingress-%s" $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.ingressname.chartmuseum" -}}
+  {{- $name := ( include "common.fullname.chartmuseum" . ) -}}
+  {{- printf "ingress-%s" $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
 {{- define "common.ingressname.ves" -}}
   {{- $name := ( include "common.fullname.ves" . ) -}}
   {{- printf "ingress-%s" $name | trunc 63 | trimSuffix "-" -}}
index 9ad9ffa..bbfce4f 100644 (file)
   {{- printf "%s-%s" $namespace $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.name.chartmuseum" -}}
+  {{- if .Values.chartmuseum -}}
+    {{- if .Values.chartmuseum.nameOverride -}}
+      {{- printf "%s" .Values.chartmuseum.nameOverride -}}
+    {{- else -}}
+      {{- printf "chartmuseum" -}}
+    {{- end -}}
+  {{- else -}}
+    {{- printf "chartmuseum" -}}
+  {{- end -}}
+{{- end -}}
+
+
+{{- define "common.fullname.chartmuseum" -}}
+  {{- $name := ( include "common.name.chartmuseum" . ) -}}
+  {{- $namespace := ( include "common.namespace.infra" . ) -}}
+  {{- printf "%s-%s" $namespace $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
 
 {{- define "common.name.dashboard" -}}
   {{- if .Values.dashboard -}}
index fe463c2..36f91c4 100644 (file)
@@ -55,6 +55,8 @@
 
 {{- define "common.serviceport.nexus.http" -}}8080{{- end -}}
 
+{{- define "common.serviceport.chartmuseum.http" -}}8080{{- end -}}
+
 {{- define "common.serviceport.dashboard.http" -}}30080{{- end -}}
 {{- define "common.serviceport.dashboard.container" -}}8080{{- end -}}
 
@@ -68,4 +70,4 @@
 {{- define "common.serviceport.ves.http" -}}30235{{- end -}}
 {{- define "common.serviceport.ves.http.container" -}}8080{{- end -}}
 {{- define "common.serviceport.ves.https" -}}30417{{- end -}}
-{{- define "common.serviceport.ves.https.container" -}}8443{{- end -}}
\ No newline at end of file
+{{- define "common.serviceport.ves.https.container" -}}8443{{- end -}}
index 9daabc9..8e9c3f3 100644 (file)
   {{- printf "svcacct-%s" $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.serviceaccountname.chartmuseum" -}}
+  {{- $name := ( include "common.fullname.chartmuseum" . ) -}}
+  {{- printf "svcacct-%s" $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
 {{- define "common.serviceaccountname.dashboard" -}}
   {{- $name := ( include "common.fullname.dashboard" . ) -}}
   {{- printf "svcacct-%s" $name | trunc 63 | trimSuffix "-" -}}
index b480cec..f8a21dd 100644 (file)
   {{- printf "service-%s-http" $name | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
 
+{{- define "common.servicename.chartmuseum.http" -}}
+  {{- $name := ( include "common.fullname.chartmuseum" . ) -}}
+  {{- printf "service-%s-http" $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
 {{- define "common.servicename.dashboard.http" -}}
   {{- $name := ( include "common.fullname.dashboard" . ) -}}
   {{- printf "service-%s-http" $name | trunc 63 | trimSuffix "-" -}}
diff --git a/ric-infra/15-Chartmuseum/bin/clear_data_path b/ric-infra/15-Chartmuseum/bin/clear_data_path
new file mode 100755 (executable)
index 0000000..f7a3780
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/bash
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################
+
+OVERRIDEYAML=$1
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+
+
+
+
+
+
+if [ -z $OVERRIDEYAML ]; then
+
+  DATAPATH=$(cat $DIR/../helm/chartmuseum/values.yaml | awk '/^.*datapath:.*/{ print $2;}')
+  
+else
+  DATAPATH=$(cat $OVERRIDEYAML | awk '/^chartmuseum:.*/{ getline; while ( match($0, / .*/) || (!$0)){  if(getline == 0){break;}; if (match($0, /^ .*datapath:.*/)){print $2}} }')
+
+
+  if [ -z $DATAPATH ]; then
+    DATAPATH=$(cat $DIR/../helm/chartmuseum/values.yaml | awk '/^.*datapath:.*/{ print $2;}')
+  fi
+
+fi
+
+  rm -rf $DATAPATH
+
+  mkdir -p $DATAPATH
+
+
+  chmod -R a+rwx $DATAPATH
+
diff --git a/ric-infra/15-Chartmuseum/bin/install b/ric-infra/15-Chartmuseum/bin/install
new file mode 100755 (executable)
index 0000000..f1a3bb8
--- /dev/null
@@ -0,0 +1,94 @@
+#!/bin/bash
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################
+
+
+OVERRIDEYAML=$1
+
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+
+source $DIR/../etc/chartmuseum.conf
+
+if [ -z "$RICINFRA_RELEASE_NAME" ];then
+   RELEASE_NAME=$helm_release_name
+else
+   RELEASE_NAME=$RICINFRA_RELEASE_NAME
+fi
+# Namespace configuration
+if [ -z "$RICPLT_NAMESPACE" ];then
+   PLT_NAMESPACE=$plt_namespace
+else
+   PLT_NAMESPACE=$RICPLT_NAMESPACE
+fi
+if [ -z "$RICXAPP_NAMESPACE" ];then
+   XAPP_NAMESPACE=$xapp_namespace
+else
+   XAPP_NAMESPACE=$RICXAPP_NAMESPACE
+fi
+if [ -z "$RICAUX_NAMESPACE" ];then
+   AUX_NAMESPACE=$aux_namespace
+else
+   AUX_NAMESPACE=$RICAUX_NAMESPACE
+fi
+if [ -z "$RICINFRA_NAMESPACE" ];then
+   INFRA_NAMESPACE=$infra_namespace
+else
+   INFRA_NAMESPACE=$RICINFRA_NAMESPACE
+fi
+
+if [ -z "$RIC_COMMON_OVERRIDE" ];then
+   COMMON_OVERRIDE="--set global.namespace.platform=$PLT_NAMESPACE --set global.namespace.xapp=$XAPP_NAMESPACE --set global.namespace.aux=$AUX_NAMESPACE --set global.namespace.infra=$INFRA_NAMESPACE"
+else
+   COMMON_OVERRIDE=$RIC_COMMON_OVERRIDE
+fi
+
+
+
+
+NODENAME=$(kubectl get node | awk 'NR==2{print $1}')
+kubectl label --overwrite nodes $NODENAME helm-node=enable
+
+DIRTEMP=$DIR
+. ./clear_data_path
+DIR=$DIRTEMP
+
+
+RICINFRA_COMPONENTS="chartmuseum"
+
+echo "Deploying RIC infra components [$RICINFRA_COMPONENTS]"
+echo "Helm Release Name: $RELEASE_NAME"
+
+
+COMMON_CHART_VERSION=$(cat $DIR/../../../ric-common/Common-Template/helm/ric-common/Chart.yaml | grep version | awk '{print $2}')
+helm package -d /tmp $DIR/../../../ric-common/Common-Template/helm/ric-common
+
+
+
+
+
+for component in $RICINFRA_COMPONENTS; do
+
+  mkdir -p $DIR/../helm/$component/charts/
+  cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $DIR/../helm/$component/charts/
+
+  if [ -z $OVERRIDEYAML ]; then
+    helm install --debug --namespace "${INFRA_NAMESPACE}" --name "${RELEASE_NAME}-$component" $COMMON_OVERRIDE $DIR/../helm/$component
+  else
+    helm install -f $OVERRIDEYAML --namespace "${INFRA_NAMESPACE}" --name "${RELEASE_NAME}-$component" $COMMON_OVERRIDE $DIR/../helm/$component
+  fi
+done
diff --git a/ric-infra/15-Chartmuseum/bin/uninstall b/ric-infra/15-Chartmuseum/bin/uninstall
new file mode 100755 (executable)
index 0000000..79ca2d7
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################
+
+
+
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+
+
+source $DIR/../etc/chartmuseum.conf
+
+if [ -z "$RICINFRA_RELEASE_NAME" ];then
+   RELEASE_NAME=$helm_release_name
+else
+   RELEASE_NAME=$RICINFRA_RELEASE_NAME
+fi
+
+RICINFRA_COMPONENTS="chartmuseum"
+
+echo "Undeploying RIC infra components [$RICINFRA_COMPONENTS]"
+echo "Helm Release Name: $RELEASE_NAME"
+
+
+for component in $RICINFRA_COMPONENTS; do
+  helm delete --purge  "${RELEASE_NAME}-${component}" 
+done
diff --git a/ric-infra/15-Chartmuseum/etc/chartmuseum.conf b/ric-infra/15-Chartmuseum/etc/chartmuseum.conf
new file mode 100644 (file)
index 0000000..92008b5
--- /dev/null
@@ -0,0 +1,37 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################
+
+
+# helm_release_name defines the release name helm will use to deploy RIC
+# It will be overrided by RICPLT_RELEASE_NAME
+helm_release_name=r1
+
+# namespace defines the namespace that helm will use to deploy RIC
+# It will be overrided by RICPLT_NAMESPACE
+plt_namespace=ricplt
+
+# namespace defines the namespace that helm will use to deploy RIC
+# It will be overrided by RICXAPP_NAMESPACE
+xapp_namespace=ricxapp
+
+# namespace defines the namespace that helm will use to deploy RIC
+# It will be overrided by RICAUX_NAMESPACE
+aux_namespace=ricaux
+
+# namespace defines the namespace that helm will use to deploy RIC
+# It will be overrided by RICINFRA_NAMESPACE
+infra_namespace=ricinfra
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/Chart.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/Chart.yaml
new file mode 100644 (file)
index 0000000..7594952
--- /dev/null
@@ -0,0 +1,23 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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
+description: A Helm chart for helm repository for RIC
+name: chartmuseum
+version: 0.0.1
+appVersion: 0.1
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/requirements.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/requirements.yaml
new file mode 100644 (file)
index 0000000..2ab71b4
--- /dev/null
@@ -0,0 +1,20 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################
+
+dependencies:
+  - name: ric-common
+    version: ~2.0.0
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/_gen-cert.tpl b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/_gen-cert.tpl
new file mode 100644 (file)
index 0000000..9dcbdb9
--- /dev/null
@@ -0,0 +1,29 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################i
+
+{{/*
+Generate certificates for the docker registry
+*/}}
+
+{{- define "chartmuseum.gen-cert" -}}
+{{- $altNames := list ( include "common.ingressurl.localhelm" . ) -}}
+{{- $ca := genCA "docker-registry-ca" 365 -}}
+{{- $cert := genSignedCert ( include "common.ingressurl.localhelm" . ) nil $altNames 365 $ca -}}
+tls.crt: {{ $cert.Cert | b64enc }}
+tls.key: {{ $cert.Key | b64enc }}
+{{- end -}}
+
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/deployment.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..c283c19
--- /dev/null
@@ -0,0 +1,63 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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: apps/v1beta2
+kind: Deployment
+metadata:
+  name: {{ include "common.deploymentname.chartmuseum" .}}
+  labels:
+    app: {{ include "common.namespace.infra" . }}-{{ include "common.name.chartmuseum" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.chartmuseum.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.namespace.infra" . }}-{{ include "common.name.chartmuseum" . }}
+      release: {{ .Release.Name }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.namespace.infra" . }}-{{ include "common.name.chartmuseum" . }}
+        release: {{ .Release.Name }}
+    spec:
+      hostname: {{ .Chart.Name }}
+      imagePullSecrets:
+        - name: {{ include "common.repositoryCred" . }}
+      containers:
+        - name: {{ include "common.containername.chartmuseum" . }} 
+          image: {{ include "common.repository" . }}/{{ .Values.chartmuseum.image.name }}:{{ .Values.chartmuseum.image.tag }}
+          imagePullPolicy: {{ include "common.pullPolicy" . }}
+          envFrom:
+            - configMapRef:
+                name: {{ include "common.configmapname.chartmuseum" . }}-env
+          #          volumeMounts:
+          #- name: certs
+          #  mountPath: /var/run/certs
+          #  readOnly: true
+          ports:
+            - name: http
+              containerPort: {{ include "common.serviceport.chartmuseum.http" . }}
+              protocol: TCP
+          volumeMounts:
+            - name: chart-data
+              mountPath: /charts
+      volumes:
+        - name: chart-data
+          persistentVolumeClaim:
+            claimName: pvc-{{ include "common.name.chartmuseum" . }}
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/env.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/env.yaml
new file mode 100644 (file)
index 0000000..8565e88
--- /dev/null
@@ -0,0 +1,24 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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: ConfigMap
+metadata:
+  name: {{ include "common.configmapname.chartmuseum" . }}-env
+data:
+   DEBUG: "true"
+   STORAGE: "local"
+   STORAGE_LOCAL_ROOTDIR: "/charts"
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/ingress.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/ingress.yaml
new file mode 100644 (file)
index 0000000..8ecd7e1
--- /dev/null
@@ -0,0 +1,33 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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: extensions/v1beta1
+kind: Ingress
+metadata:
+  name: {{ include "common.ingressname.chartmuseum" . }}
+spec:
+  tls:
+    - hosts:
+      - {{ include "common.ingressurl.localhelm" . }}
+      secretName: secret-{{ include "common.name.chartmuseum" . }}
+  rules:
+    - host: {{ include "common.ingressurl.localhelm" . }}
+      http:
+        paths:
+          - backend:
+              serviceName: {{ include "common.servicename.chartmuseum.http" . }}
+              servicePort: http
+            path: "/"
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/job-save-certs.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/job-save-certs.yaml
new file mode 100644 (file)
index 0000000..01f5ac6
--- /dev/null
@@ -0,0 +1,44 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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: batch/v1
+kind: Job
+metadata:
+  name: job-{{ include "common.fullname.chartmuseum" . }}-save-certs
+spec:
+  template:
+    spec:
+      containers:
+      - name: cert-copy
+        image: alpine
+        command: [ "/bin/sh","-c","cp -rL /var/run/helmcerts/..data/tls.crt /var/run/certs-copy/helmtls.crt"]
+        #        command: ["tail", "-f", "/dev/null"]
+        volumeMounts:
+        - name: helmcerts
+          mountPath: /var/run/helmcerts
+          readOnly: true
+        - name:  write-to-volume
+          mountPath: /var/run/certs-copy
+      volumes:
+      - name: helmcerts
+        secret:
+          secretName: secret-{{ include "common.name.chartmuseum" . }}
+      - name: write-to-volume
+        hostPath:
+          path: /tmp
+      restartPolicy: Never
+  backoffLimit: 4
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/persistentVolume.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/persistentVolume.yaml
new file mode 100644 (file)
index 0000000..93127ca
--- /dev/null
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: pv-{{ include "common.name.chartmuseum" . }}
+spec:
+  capacity:
+    storage: {{ .Values.chartmuseum.storagesize }}
+  accessModes:
+  - ReadWriteOnce
+  persistentVolumeReclaimPolicy: Retain
+  storageClassName: storageclass-{{ include "common.name.chartmuseum" . }}
+  local:
+    path: {{ .Values.chartmuseum.datapath }}
+  nodeAffinity:
+    required:
+      nodeSelectorTerms:
+      - matchExpressions:
+        - key: helm-node
+          operator: In
+          values:
+          - enable
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/persistentVolumeClaim.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/persistentVolumeClaim.yaml
new file mode 100644 (file)
index 0000000..11e0314
--- /dev/null
@@ -0,0 +1,11 @@
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name:  pvc-{{ include "common.name.chartmuseum" . }}
+spec:
+  accessModes:
+  - ReadWriteOnce
+  storageClassName: storageclass-{{ include "common.name.chartmuseum" . }} 
+  resources:
+    requests:
+      storage: {{ .Values.chartmuseum.storagesize }}
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/secret.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/secret.yaml
new file mode 100644 (file)
index 0000000..5490528
--- /dev/null
@@ -0,0 +1,27 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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: Secret
+type: kubernetes.io/tls
+metadata:
+  name: secret-{{ include "common.name.chartmuseum" . }}
+  annotations:
+    "helm.sh/hook": "pre-install"
+    "helm.sh/hook-delete-policy": "before-hook-creation"
+data:
+{{ ( include "chartmuseum.gen-cert" . ) | indent 2 }}
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/service.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/service.yaml
new file mode 100644 (file)
index 0000000..89e3592
--- /dev/null
@@ -0,0 +1,37 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.chartmuseum.http" . }}
+  namespace: {{ include "common.namespace.infra" . }}
+  labels:
+    app: {{ include "common.namespace.infra" . }}-{{ include "common.name.chartmuseum" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: ClusterIP
+  ports:
+    - port: {{ include "common.serviceport.chartmuseum.http" . }}
+      targetPort: http
+      protocol: TCP
+      name: http
+  selector:
+    app: {{ include "common.namespace.infra" . }}-{{ include "common.name.chartmuseum" . }}
+    release: {{ .Release.Name }}
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/storageClass.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/templates/storageClass.yaml
new file mode 100644 (file)
index 0000000..85eed19
--- /dev/null
@@ -0,0 +1,6 @@
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+  name: storageclass-{{ include "common.name.chartmuseum" . }}
+provisioner: kubernetes.io/no-provisioner
+volumeBindingMode: WaitForFirstConsumer
diff --git a/ric-infra/15-Chartmuseum/helm/chartmuseum/values.yaml b/ric-infra/15-Chartmuseum/helm/chartmuseum/values.yaml
new file mode 100644 (file)
index 0000000..203a678
--- /dev/null
@@ -0,0 +1,37 @@
+################################################################################
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #
+#   Copyright (c) 2019 Nokia.                                                  #
+#                                                                              #
+#   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.                                             #
+################################################################################
+
+# Default values for nexus.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+repository: "registry.hub.docker.com"
+imagePullPolicy: IfNotPresent
+repositoryCred: docker-reg-cred
+helmRepositoryCert: xapp-mgr-certs
+
+chartmuseum:
+  replicaCount: 1
+
+
+# This is designed to be deployed using local image
+  image:
+    name: chartmuseum/chartmuseum
+    tag: v0.8.2
+
+
+  storagesize: 2Gi
+  datapath: /tmp/chartmuseum-data/