From 6a8ce801a6afe0a26694b02532773b1938e2dd70 Mon Sep 17 00:00:00 2001 From: kj Date: Mon, 19 Mar 2018 15:07:44 +0200 Subject: Add standardized helm chart for aai Issue-ID: OOM-734 Change-Id: I6b1a85017d79b92afcae44cf823ab000a10ce4be Signed-off-by: kj --- charts/aai-traversal/.helmignore | 21 ++ charts/aai-traversal/Chart.yaml | 4 + .../aai-traversal/resources/config/log/logback.xml | 345 ++++++++++++++++++++ charts/aai-traversal/templates/configmap.yaml | 7 + charts/aai-traversal/templates/deployment.yaml | 357 +++++++++++++++++++++ charts/aai-traversal/templates/service.yaml | 30 ++ charts/aai-traversal/values.yaml | 67 ++++ 7 files changed, 831 insertions(+) create mode 100644 charts/aai-traversal/.helmignore create mode 100644 charts/aai-traversal/Chart.yaml create mode 100644 charts/aai-traversal/resources/config/log/logback.xml create mode 100644 charts/aai-traversal/templates/configmap.yaml create mode 100644 charts/aai-traversal/templates/deployment.yaml create mode 100644 charts/aai-traversal/templates/service.yaml create mode 100644 charts/aai-traversal/values.yaml (limited to 'charts/aai-traversal') diff --git a/charts/aai-traversal/.helmignore b/charts/aai-traversal/.helmignore new file mode 100644 index 0000000..f0c1319 --- /dev/null +++ b/charts/aai-traversal/.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/charts/aai-traversal/Chart.yaml b/charts/aai-traversal/Chart.yaml new file mode 100644 index 0000000..8f79b42 --- /dev/null +++ b/charts/aai-traversal/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: ONAP AAI traversal +name: aai-traversal +version: 2.0.0 diff --git a/charts/aai-traversal/resources/config/log/logback.xml b/charts/aai-traversal/resources/config/log/logback.xml new file mode 100644 index 0000000..fb8d8a5 --- /dev/null +++ b/charts/aai-traversal/resources/config/log/logback.xml @@ -0,0 +1,345 @@ + + ${module.ajsc.namespace.name} + + + + + + + + + + + + + + + + + + + ERROR + ACCEPT + DENY + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + + + + ${restLogDirectory}/sane.log + + ${restLogDirectory}/sane.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + + + + + INFO + ACCEPT + DENY + + ${restLogDirectory}/${metricsLogName}.log + + ${restLogDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + + + + + DEBUG + ACCEPT + DENY + + ${restLogDirectory}/${debugLogName}.log + + ${restLogDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + + + + + WARN + + ${restLogDirectory}/${errorLogName}.log + + ${restLogDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + + + + ${restLogDirectory}/${auditLogName}.log + + ${restLogDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + + + + + DEBUG + ACCEPT + DENY + + ${restLogDirectory}/translog.log + + ${restLogDirectory}/translog.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + + + + + WARN + + ${dmaapLogDirectory}/${errorLogName}.log + + ${dmaapLogDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + + DEBUG + ACCEPT + DENY + + ${dmaapLogDirectory}/${debugLogName}.log + + ${dmaapLogDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + + INFO + ACCEPT + DENY + + ${dmaapLogDirectory}/${metricsLogName}.log + + ${dmaapLogDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${perfLogsDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + + ${perfLogsDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + + ${perfLogsDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + + ${perfLogsDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%d{yyyy-MM-dd}.%i.log + + ${maxFileSize} + + ${maxHistory} + ${totalSizeCap} + + + ${pattern} + + + + ${queueSize} + true + 0 + + + + ${queueSize} + true + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/charts/aai-traversal/templates/configmap.yaml b/charts/aai-traversal/templates/configmap.yaml new file mode 100644 index 0000000..a7e9428 --- /dev/null +++ b/charts/aai-traversal/templates/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-log + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} diff --git a/charts/aai-traversal/templates/deployment.yaml b/charts/aai-traversal/templates/deployment.yaml new file mode 100644 index 0000000..b4249ae --- /dev/null +++ b/charts/aai-traversal/templates/deployment.yaml @@ -0,0 +1,357 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# 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: 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 }} + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + name: {{ include "common.name" . }} + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "_aai-generic-query", + "version": "v11", + "url": "/aai/v11/search/generic-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v11/search/generic-query" + }, + { + "serviceName": "_aai-generic-query", + "version": "v12", + "url": "/aai/v12/search/generic-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v12/search/generic-query" + }, + { + "serviceName": "_aai-generic-query", + "version": "v13", + "url": "/aai/v13/search/generic-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v13/search/generic-query" + }, + { + "serviceName": "_aai-nodes-query", + "version": "v11", + "url": "/aai/v11/search/nodes-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v11/search/nodes-query" + }, + { + "serviceName": "_aai-nodes-query", + "version": "v12", + "url": "/aai/v12/search/nodes-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v12/search/nodes-query" + }, + { + "serviceName": "_aai-nodes-query", + "version": "v13", + "url": "/aai/v13/search/nodes-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v13/search/nodes-query" + }, + { + "serviceName": "_aai-query", + "version": "v11", + "url": "/aai/v11/query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v11/query" + }, + { + "serviceName": "_aai-query", + "version": "v12", + "url": "/aai/v12/query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v12/query" + }, + { + "serviceName": "_aai-query", + "version": "v13", + "url": "/aai/v13/query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/v13/query" + }, + { + "serviceName": "_aai-named-query", + "url": "/aai/search", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1", + "path": "/aai/search" + }, + { + "serviceName": "aai-generic-query", + "version": "v11", + "url": "/aai/v11/search/generic-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-generic-query", + "version": "v12", + "url": "/aai/v12/search/generic-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-generic-query", + "version": "v13", + "url": "/aai/v13/search/generic-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-nodes-query", + "version": "v11", + "url": "/aai/v11/search/nodes-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-nodes-query", + "version": "v12", + "url": "/aai/v12/search/nodes-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-nodes-query", + "version": "v13", + "url": "/aai/v13/search/nodes-query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-query", + "version": "v11", + "url": "/aai/v11/query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-query", + "version": "v12", + "url": "/aai/v12/query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-query", + "version": "v13", + "url": "/aai/v13/query", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + }, + { + "serviceName": "aai-named-query", + "url": "/aai/search", + "protocol": "REST", + "port": "8446", + "enable_ssl": true, + "lb_policy":"ip_hash", + "visualRange": "1" + } + ]' + spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - aai-resources + 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 }} + env: + - name: CHEF_BRANCH + value: master + - name: AAI_CHEF_ENV + value: simpledemo + - name: AAI_CORE_VERSION + value: {{ .Values.config.aaicoreversion }} + - name: AAI_CHEF_LOC + value: /var/chef/aai-data/environments + - name: CHEF_GIT_URL + value: http://gerrit.onap.org/r/aai + - name: RESOURCES_HOSTNAME + value: aai-resources.{{ include "common.namespace" . }} + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - mountPath: /var/chef/aai-data/chef-config/dev/.knife/solo.rb + subPath: solo.rb + name: aai-chef-config + - mountPath: /var/chef/aai-data/environments/ + name: aai-data + - mountPath: /var/log/onap + name: aai-traversal-logs + - mountPath: /opt/app/aai-traversal/bundleconfig/etc/logback.xml + name: aai-traversal-log-conf + subPath: logback.xml + ports: + - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + resources: +{{ toYaml .Values.resources | indent 10 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 8 }} + {{- end }} + + # side car containers + - name: filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + name: filebeat-conf + - mountPath: /var/log/onap + name: aai-traversal-logs + - mountPath: /usr/share/filebeat/data + name: aai-traversal-filebeat + + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: aai-chef-config + configMap: + name: aai-chef-config + - name: aai-data + configMap: + name: aai-resources-environments + - name: filebeat-conf + configMap: + name: aai-filebeat + - name: aai-traversal-logs + emptyDir: {} + - name: aai-traversal-filebeat + emptyDir: {} + - name: aai-traversal-log-conf + configMap: + name: {{ include "common.fullname" . }}-log + restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/charts/aai-traversal/templates/service.yaml b/charts/aai-traversal/templates/service.yaml new file mode 100644 index 0000000..8cea86c --- /dev/null +++ b/charts/aai-traversal/templates/service.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.name" . }} + 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.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name }}2 + {{- else -}} + - port: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name }}2 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + clusterIP: None diff --git a/charts/aai-traversal/values.yaml b/charts/aai-traversal/values.yaml new file mode 100644 index 0000000..1764033 --- /dev/null +++ b/charts/aai-traversal/values.yaml @@ -0,0 +1,67 @@ +# Default values for traversal. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +global: # global defaults + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.0 + + +# application image +repository: nexus3.onap.org:10001 +image: openecomp/aai-traversal:v1.1.0 +pullPolicy: Always +restartPolicy: Always + +# application configuration +config: + aaicoreversion: 1.1.0-SNAPSHOT + + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 60 + periodSeconds: 60 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: false + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: aai-traversal + internalPort: 8446 + internalPort2: 5005 + +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 -- cgit 1.2.3-korg