From 28266fa4b4644061b51b8b1066c385b5db641839 Mon Sep 17 00:00:00 2001 From: econwar Date: Tue, 5 Mar 2019 16:39:00 +0000 Subject: Extract dmaap components into components dir This will help enable edge deployment Issue-ID: DMAAP-1068 Change-Id: I61df2887069a0302341c0004914158398ecd58d9 Signed-off-by: econwar --- .../components/dmaap-dr-node/templates/NOTES.txt | 33 +++++ .../dmaap-dr-node/templates/configmap.yaml | 47 +++++++ .../dmaap-dr-node/templates/deployment.yaml | 139 +++++++++++++++++++++ .../dmaap-dr-node/templates/service.yaml | 49 ++++++++ 4 files changed, 268 insertions(+) create mode 100644 kubernetes/dmaap/components/dmaap-dr-node/templates/NOTES.txt create mode 100644 kubernetes/dmaap/components/dmaap-dr-node/templates/configmap.yaml create mode 100644 kubernetes/dmaap/components/dmaap-dr-node/templates/deployment.yaml create mode 100644 kubernetes/dmaap/components/dmaap-dr-node/templates/service.yaml (limited to 'kubernetes/dmaap/components/dmaap-dr-node/templates') diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/NOTES.txt b/kubernetes/dmaap/components/dmaap-dr-node/templates/NOTES.txt new file mode 100644 index 0000000000..65597e062f --- /dev/null +++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/NOTES.txt @@ -0,0 +1,33 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range .Values.ingress.hosts }} + http://{{ . }} +{{- end }} +{{- else if contains "NodePort" .Values.config.dmaapDrNode.servicetype }} + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}) + 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.config.dmaapDrNode.servicetype }} + 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.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{.Values.config.dmaapDrNode.externalPort}} +{{- else if contains "ClusterIP" .Values.config.dmaapDrNode.servicetype }} + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.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.config.dmaapDrNode.internalPort}} +{{- end }} \ No newline at end of file diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/configmap.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/configmap.yaml new file mode 100644 index 0000000000..67392671f8 --- /dev/null +++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/configmap.yaml @@ -0,0 +1,47 @@ +# 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: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-node-props-configmap + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +data: +{{ tpl (.Files.Glob "resources/config/node.properties").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-create-feed-configmap + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +data: +{{ tpl (.Files.Glob "resources/config/feeds/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-log + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }} diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/deployment.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/deployment.yaml new file mode 100644 index 0000000000..83a4975aa5 --- /dev/null +++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/deployment.yaml @@ -0,0 +1,139 @@ +# 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 }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + hostname: {{.Values.config.dmaapDrNode.name}} + initContainers: + - name: {{ include "common.name" . }}-readiness + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: + - /root/ready.py + args: + - --container-name + - dmaap-dr-prov + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + containers: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{.Values.config.dmaapDrNode.externalPort}} + - containerPort: {{.Values.config.dmaapDrNode.externalPort2}} + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + tcpSocket: + port: {{.Values.config.dmaapDrNode.internalPort}} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end -}} + readinessProbe: + tcpSocket: + port: {{.Values.config.dmaapDrNode.internalPort}} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: false + - mountPath: /opt/app/datartr/etc/dedicatedFeed.json + subPath: dedicatedFeed.json + name: create-feed + - mountPath: /opt/app/datartr/etc/createFeed.sh + subPath: createFeed.sh + name: create-feed + - mountPath: /opt/app/datartr/etc/node.properties + subPath: node.properties + name: node-props + - name: {{ include "common.fullname" . }}-logs + mountPath: {{ .Values.global.loggingDirectory }} + lifecycle: + postStart: + exec: + command: + - /opt/app/datartr/etc/createFeed.sh + resources: +{{ include "common.resources" . | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + # Filebeat sidecar container + - name: {{ include "common.name" . }}-filebeat-onap + image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: {{ include "common.fullname" . }}-filebeat-conf + mountPath: /usr/share/filebeat/filebeat.yml + subPath: filebeat.yml + - name: {{ include "common.fullname" . }}-data-filebeat + mountPath: /usr/share/filebeat/data + - name: {{ include "common.fullname" . }}-logs + mountPath: /var/log/onap/datarouter-node + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: create-feed + configMap: + name: {{ include "common.fullname" . }}-create-feed-configmap + defaultMode: 0755 + - name: node-props + configMap: + name: {{ include "common.fullname" . }}-node-props-configmap + - name: dr-node-data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} + {{- else }} + emptyDir: {} + {{- end }} + - name: {{ include "common.fullname" . }}-log-conf + configMap: + name: {{ include "common.fullname" . }}-log + - name: {{ include "common.fullname" . }}-filebeat-conf + configMap: + name: {{ .Release.Name }}-dmaap-filebeat-configmap + - name: {{ include "common.fullname" . }}-data-filebeat + emptyDir: {} + - name: {{ include "common.fullname" . }}-logs + emptyDir: {} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/dmaap/components/dmaap-dr-node/templates/service.yaml b/kubernetes/dmaap/components/dmaap-dr-node/templates/service.yaml new file mode 100644 index 0000000000..b7207017da --- /dev/null +++ b/kubernetes/dmaap/components/dmaap-dr-node/templates/service.yaml @@ -0,0 +1,49 @@ +# 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: v1 +kind: Service +metadata: + name: {{.Values.config.dmaapDrNode.name}} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +spec: + type: {{.Values.config.dmaapDrNode.servicetype}} + ports: + {{if eq .Values.config.dmaapDrNode.servicetype "NodePort" -}} + - port: {{.Values.config.dmaapDrNode.externalPort}} + targetPort: {{.Values.config.dmaapDrNode.internalPort}} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{.Values.config.dmaapDrNode.nodePort}} + name: {{.Values.config.dmaapDrNode.name}} + - port: {{.Values.config.dmaapDrNode.externalPort2}} + targetPort: {{.Values.config.dmaapDrNode.internalPort2}} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{.Values.config.dmaapDrNode.nodePort2}} + name: {{.Values.config.dmaapDrNode.name}}2 + {{- else -}} + - port: {{.Values.config.dmaapDrNode.externalPort}} + targetPort: {{.Values.config.dmaapDrNode.internalPort}} + name: {{.Values.config.dmaapDrNode.name}} + - port: {{.Values.config.dmaapDrNode.externalPort2}} + targetPort: {{.Values.config.dmaapDrNode.internalPort2}} + name: {{.Values.config.dmaapDrNode.name}}2 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} \ No newline at end of file -- cgit 1.2.3-korg