aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/common/dgbuilder
diff options
context:
space:
mode:
authorMike Elliott <mike.elliott@amdocs.com>2018-03-26 12:28:53 -0400
committerMike Elliott <mike.elliott@amdocs.com>2018-03-26 15:11:52 -0400
commit003d7290a65a9df52e049b9c824dfb20a2b6d253 (patch)
tree747d94ef0b010a73ff85e450d3b64bd4b32aecc1 /kubernetes/common/dgbuilder
parent114736eb5119b023bc5f166a3b42aaf933b0b223 (diff)
Add fix for build dependecies
Moved mysql and dgbuilder under common (built first) to ensure they are built before appc and sdnc charts that depend on them. Change-Id: I2fc28f0537b2639bd2b761c6f115544965a228b1 Issue-ID: OOM-830 Signed-off-by: Mike Elliott <mike.elliott@amdocs.com>
Diffstat (limited to 'kubernetes/common/dgbuilder')
-rw-r--r--kubernetes/common/dgbuilder/.helmignore21
-rw-r--r--kubernetes/common/dgbuilder/Chart.yaml4
-rw-r--r--kubernetes/common/dgbuilder/requirements.yaml4
-rw-r--r--kubernetes/common/dgbuilder/resources/config/svclogic.properties5
-rwxr-xr-xkubernetes/common/dgbuilder/resources/scripts/createReleaseDir.sh129
-rw-r--r--kubernetes/common/dgbuilder/resources/scripts/customSettings.js38
-rw-r--r--kubernetes/common/dgbuilder/templates/NOTES.txt19
-rw-r--r--kubernetes/common/dgbuilder/templates/configmap.yaml15
-rw-r--r--kubernetes/common/dgbuilder/templates/deployment.yaml98
-rw-r--r--kubernetes/common/dgbuilder/templates/secrets.yaml13
-rw-r--r--kubernetes/common/dgbuilder/templates/service.yaml26
-rw-r--r--kubernetes/common/dgbuilder/values.yaml93
12 files changed, 465 insertions, 0 deletions
diff --git a/kubernetes/common/dgbuilder/.helmignore b/kubernetes/common/dgbuilder/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/common/dgbuilder/.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/common/dgbuilder/Chart.yaml b/kubernetes/common/dgbuilder/Chart.yaml
new file mode 100644
index 0000000000..e1955a137c
--- /dev/null
+++ b/kubernetes/common/dgbuilder/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: D.G. Builder application
+name: dgbuilder
+version: 2.0.0 \ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/requirements.yaml b/kubernetes/common/dgbuilder/requirements.yaml
new file mode 100644
index 0000000000..acca8ef7e2
--- /dev/null
+++ b/kubernetes/common/dgbuilder/requirements.yaml
@@ -0,0 +1,4 @@
+dependencies:
+ - name: common
+ version: ~2.0.0
+ repository: '@local' \ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/resources/config/svclogic.properties b/kubernetes/common/dgbuilder/resources/config/svclogic.properties
new file mode 100644
index 0000000000..fdaf5779e2
--- /dev/null
+++ b/kubernetes/common/dgbuilder/resources/config/svclogic.properties
@@ -0,0 +1,5 @@
+org.onap.ccsdk.sli.dbtype=jdbc
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.dbServiceName}}.{{ include "common.namespace" . }}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
diff --git a/kubernetes/common/dgbuilder/resources/scripts/createReleaseDir.sh b/kubernetes/common/dgbuilder/resources/scripts/createReleaseDir.sh
new file mode 100755
index 0000000000..38f7fe2720
--- /dev/null
+++ b/kubernetes/common/dgbuilder/resources/scripts/createReleaseDir.sh
@@ -0,0 +1,129 @@
+#!/bin/bash
+export PATH=$PATH:.
+appDir=$(pwd)
+if [ "$#" != 3 -a "$#" != 4 ]
+then
+ echo "Usage $0 releaseDir loginId emailAddress [gitLocalRepository]"
+ echo "Note: Specify the gitLocalRepository path if you would want to be able to import flows from your local git repository"
+ exit
+fi
+if [ ! -e "releases" ]
+then
+ mkdir releases
+fi
+releaseDir="$1"
+name="Release $releaseDir"
+loginId="$2"
+emailid="$3"
+dbHost="{{.Values.dbServiceName}}.{{.Release.Namespace}}"
+dbPort="3306"
+dbName="sdnctl"
+dbUser="sdnctl"
+dbPassword="gamma"
+gitLocalRepository="$4"
+
+lastPort=$(find "releases/" -name "customSettings.js" |xargs grep uiPort|cut -d: -f2|sed -e s/,//|sort|tail -1)
+echo $lastPort|grep uiPort >/dev/null 2>&1
+if [ "$?" == "0" ]
+then
+lastPort=$(find "releases/" -name "customSettings.js" |xargs grep uiPort|cut -d: -f3|sed -e s/,//|sort|tail -1)
+fi
+#echo $lastPort
+if [ "${lastPort}" == "" ]
+then
+ lastPort="3099"
+fi
+let nextPort=$(expr $lastPort+1)
+#echo $nextPort
+if [ ! -e "releases/$releaseDir" ]
+then
+mkdir releases/$releaseDir
+cd releases/$releaseDir
+mkdir flows
+mkdir flows/shared
+mkdir flows/shared/backups
+mkdir html
+mkdir xml
+mkdir lib
+mkdir lib/flows
+mkdir logs
+mkdir conf
+mkdir codecloud
+customSettingsFile="customSettings.js"
+if [ ! -e "./$customSettingsFile" ]
+then
+ echo "module.exports = {" >$customSettingsFile
+ echo " 'name' : '$name'," >>$customSettingsFile
+ echo " 'emailAddress' :'$emailid'," >>$customSettingsFile
+ echo " 'uiPort' :$nextPort," >>$customSettingsFile
+ echo " 'mqttReconnectTime': 15000," >>$customSettingsFile
+ echo " 'serialReconnectTime' : 15000," >>$customSettingsFile
+ echo " 'debugMaxLength': 1000," >>$customSettingsFile
+ echo " 'htmlPath': 'releases/$releaseDir/html/'," >>$customSettingsFile
+ echo " 'xmlPath': 'releases/$releaseDir/xml/'," >>$customSettingsFile
+ echo " 'flowFile' : 'releases/$releaseDir/flows/flows.json'," >>$customSettingsFile
+ echo " 'sharedDir': 'releases/$releaseDir/flows/shared'," >>$customSettingsFile
+ echo " 'userDir' : 'releases/$releaseDir'," >>$customSettingsFile
+ echo " 'httpAuth': {user:'$loginId',pass:'cc03e747a6afbbcbf8be7668acfebee5'}," >>$customSettingsFile
+ echo " 'dbHost': '$dbHost'," >>$customSettingsFile
+ echo " 'dbPort': '$dbPort'," >>$customSettingsFile
+ echo " 'dbName': '$dbName'," >>$customSettingsFile
+ echo " 'dbUser': '$dbUser'," >>$customSettingsFile
+ echo " 'dbPassword': '$dbPassword'," >>$customSettingsFile
+ echo " 'gitLocalRepository': '$gitLocalRepository'" >>$customSettingsFile
+ echo " }" >>$customSettingsFile
+fi
+ #echo "Created custom settings file $customSettingsFile"
+ echo "Done ....."
+else
+ echo "ERROR:customSettings file $customSettingsFile already exists for $releaseDir"
+ exit
+fi
+#echo "Content of custom settings file"
+#echo "============================================================================"
+# cat $customSettingsFile
+#echo "============================================================================"
+svclogicPropFile="./conf/svclogic.properties"
+if [ ! -d "${appDir}/yangFiles" ]
+then
+ mkdir -p "${appDir}/yangFiles"
+fi
+if [ ! -d "${appDir}/generatedJS" ]
+then
+ mkdir -p "${appDir}/generatedJS"
+fi
+
+if [ ! -e "./$svclogicPropFile" ]
+then
+ echo "org.onap.ccsdk.sli.dbtype=jdbc" >$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.dbServiceName}}.{{.Release.Namespace}}:3306/sdnctl" >>$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.database=sdnctl" >>$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.user=sdnctl" >>$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.password=gamma" >>$svclogicPropFile
+fi
+if [ ! -e "${appDir}/flowShareUsers.js" ]
+then
+ echo "module.exports = {\"flowShareUsers\":" >${appDir}/flowShareUsers.js
+ echo " [" >>${appDir}/flowShareUsers.js
+ echo " ]" >>${appDir}/flowShareUsers.js
+ echo "}" >>${appDir}/flowShareUsers.js
+fi
+grep "$releaseDir" ${appDir}/flowShareUsers.js >/dev/null 2>&1
+if [ "$?" != "0" ]
+then
+ num_of_lines=$(cat ${appDir}/flowShareUsers.js|wc -l)
+ if [ $num_of_lines -gt 4 ]
+ then
+ content=$(head -n -2 ${appDir}/flowShareUsers.js)
+ echo "${content}," > ${appDir}/flowShareUsers.js
+ else
+ content=$(head -n -2 ${appDir}/flowShareUsers.js)
+ echo "$content" > ${appDir}/flowShareUsers.js
+ fi
+ echo " {" >> ${appDir}/flowShareUsers.js
+ echo " \"name\" : \"$name\"," >> ${appDir}/flowShareUsers.js
+ echo " \"rootDir\" : \"$releaseDir\"" >> ${appDir}/flowShareUsers.js
+ echo " }" >> ${appDir}/flowShareUsers.js
+ echo " ]" >> ${appDir}/flowShareUsers.js
+ echo "}" >> ${appDir}/flowShareUsers.js
+fi
diff --git a/kubernetes/common/dgbuilder/resources/scripts/customSettings.js b/kubernetes/common/dgbuilder/resources/scripts/customSettings.js
new file mode 100644
index 0000000000..f09d396f96
--- /dev/null
+++ b/kubernetes/common/dgbuilder/resources/scripts/customSettings.js
@@ -0,0 +1,38 @@
+module.exports={
+ "name": "Release sdnc1.0",
+ "emailAddress": "dguser@onap.org",
+ "uiPort": 3100,
+ "mqttReconnectTime": 15000,
+ "serialReconnectTime": 15000,
+ "debugMaxLength": 1000,
+ "htmlPath": "releases/sdnc1.0/html/",
+ "xmlPath": "releases/sdnc1.0/xml/",
+ "flowFile": "releases/sdnc1.0/flows/flows.json",
+ "sharedDir": "releases/sdnc1.0/flows/shared",
+ "userDir": "releases/sdnc1.0",
+ "httpAuth": {
+ "user": "dguser",
+ "pass": "cc03e747a6afbbcbf8be7668acfebee5"
+ },
+ "dbHost": "{{.Values.dbServiceName}}.{{ include "common.namespace" . }}",
+ "dbPort": "3306",
+ "dbName": "sdnctl",
+ "dbUser": "sdnctl",
+ "dbPassword": "gamma",
+ "gitLocalRepository": "",
+ "httpRoot": "/",
+ "disableEditor": false,
+ "httpAdminRoot": "/",
+ "httpAdminAuth": {
+ "user": "dguser",
+ "pass": "cc03e747a6afbbcbf8be7668acfebee5"
+ },
+ "httpNodeRoot": "/",
+ "httpNodeAuth": {
+ "user": "dguser",
+ "pass": "cc03e747a6afbbcbf8be7668acfebee5"
+ },
+ "uiHost": "0.0.0.0",
+ "version": "0.9.1",
+ "performGitPull": "N"
+}
diff --git a/kubernetes/common/dgbuilder/templates/NOTES.txt b/kubernetes/common/dgbuilder/templates/NOTES.txt
new file mode 100644
index 0000000000..2465e03634
--- /dev/null
+++ b/kubernetes/common/dgbuilder/templates/NOTES.txt
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+ http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+ export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+ export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+ echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+ NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+ You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+ export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+ echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+ export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+ echo "Visit http://127.0.0.1:8080 to use your application"
+ kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/common/dgbuilder/templates/configmap.yaml b/kubernetes/common/dgbuilder/templates/configmap.yaml
new file mode 100644
index 0000000000..7ef92d09e7
--- /dev/null
+++ b/kubernetes/common/dgbuilder/templates/configmap.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-config
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-scripts
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/scripts/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/common/dgbuilder/templates/deployment.yaml b/kubernetes/common/dgbuilder/templates/deployment.yaml
new file mode 100644
index 0000000000..4e1f1019ee
--- /dev/null
+++ b/kubernetes/common/dgbuilder/templates/deployment.yaml
@@ -0,0 +1,98 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+ spec:
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - {{ .Values.dbPodName }}
+ 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: {{ include "common.name" . }}-readiness
+ containers:
+ - name: {{ include "common.name" . }}
+ image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ command:
+ - /bin/bash
+ - -c
+ - cd /opt/onap/sdnc/dgbuilder/ && ./start.sh sdnc1.0 && wait
+ ports:
+ - containerPort: {{ .Values.service.internalPort }}
+ readinessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ env:
+ - name: MYSQL_ROOT_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ template "common.fullname" . }}
+ key: db-root-password
+ - name: SDNC_CONFIG_DIR
+ value: /opt/onap/sdnc/data/properties
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - name: config
+ mountPath: /opt/app/application.properties
+ subPath: application.properties
+ - name: config
+ mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/conf/svclogic.properties
+ subPath: svclogic.properties
+ - name: config
+ mountPath: /opt/onap/sdnc/dgbuilder/svclogic/svclogic.properties
+ subPath: svclogic.properties
+ - name: scripts
+ mountPath: /opt/onap/sdnc/dgbuilder/createReleaseDir.sh
+ subPath: createReleaseDir.sh
+ - name: scripts
+ mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/customSettings.js
+ subPath: customSettings.js
+ resources:
+{{ toYaml .Values.resources | indent 12 }}
+ {{- if .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+ {{- end -}}
+ {{- if .Values.affinity }}
+ affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+ {{- end }}
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: config
+ configMap:
+ name: {{ include "common.fullname" . }}-config
+ - name: scripts
+ configMap:
+ name: {{ include "common.fullname" . }}-scripts
+ defaultMode: 0755
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/common/dgbuilder/templates/secrets.yaml b/kubernetes/common/dgbuilder/templates/secrets.yaml
new file mode 100644
index 0000000000..7604be8239
--- /dev/null
+++ b/kubernetes/common/dgbuilder/templates/secrets.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.fullname" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+type: Opaque
+data:
+ db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }} \ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/templates/service.yaml b/kubernetes/common/dgbuilder/templates/service.yaml
new file mode 100644
index 0000000000..c61cdd549b
--- /dev/null
+++ b/kubernetes/common/dgbuilder/templates/service.yaml
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ type: {{ .Values.service.type }}
+ ports:
+ {{if eq .Values.service.type "NodePort" -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+ name: {{ .Values.service.name }}
+ {{- else -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ name: {{ .Values.service.name }}
+ {{- end}}
+ selector:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }} \ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/values.yaml b/kubernetes/common/dgbuilder/values.yaml
new file mode 100644
index 0000000000..23f8eea78e
--- /dev/null
+++ b/kubernetes/common/dgbuilder/values.yaml
@@ -0,0 +1,93 @@
+# Global configuration default values that can be inherited by
+# all subcharts.
+#################################################################
+global:
+ # Change to an unused port prefix range to prevent port conflicts
+ # with other instances running within the same k8s cluster
+ nodePortPrefix: 302
+
+ # image repositories
+ repository: nexus3.onap.org:10001
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+ # readiness check
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:1.0.0
+
+ # logging agent
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+ # image pull policy
+ pullPolicy: Always
+
+ # default mount path root directory referenced
+ # by persistent volumes and log files
+ persistence:
+ mountPath: /dockerdata-nfs
+
+ # flag to enable debugging - application support required
+ debugEnabled: true
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/ccsdk-dgbuilder-image:v0.1.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+ dbRootPassword: openECOMP1.0
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+readiness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+
+service:
+ type: NodePort
+ name: dgbuilder
+ externalPort: 3000
+ internalPort: 3100
+ nodePort: 28
+
+ingress:
+ enabled: false
+
+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:'.
+ #
+ # Example:
+ # Configure resource requests and limits
+ # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+ # Minimum memory for development is 2 CPU cores and 4GB memory
+ # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+# limits:
+# cpu: 2
+# memory: 4Gi
+# requests:
+# cpu: 2
+# memory: 4Gi