aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/dmaap/components/dbc
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/dmaap/components/dbc')
-rw-r--r--kubernetes/dmaap/components/dbc/.helmignore21
-rw-r--r--kubernetes/dmaap/components/dbc/Chart.yaml19
-rw-r--r--kubernetes/dmaap/components/dbc/README.md25
-rw-r--r--kubernetes/dmaap/components/dbc/requirements.yaml21
-rw-r--r--kubernetes/dmaap/components/dbc/resources/config/buscontroller.env17
-rw-r--r--kubernetes/dmaap/components/dbc/resources/config/dmaapbc.properties217
-rw-r--r--kubernetes/dmaap/components/dbc/resources/dcaeLocations/san-francisco.json5
-rw-r--r--kubernetes/dmaap/components/dbc/resources/dmaap/onap.json11
-rw-r--r--kubernetes/dmaap/components/dbc/resources/mr_clusters/san-francisco.json6
-rw-r--r--kubernetes/dmaap/components/dbc/templates/NOTES.txt34
-rw-r--r--kubernetes/dmaap/components/dbc/templates/configmap.yaml53
-rw-r--r--kubernetes/dmaap/components/dbc/templates/deployment.yaml103
-rw-r--r--kubernetes/dmaap/components/dbc/templates/post-install-job.yaml67
-rw-r--r--kubernetes/dmaap/components/dbc/templates/service.yaml48
-rw-r--r--kubernetes/dmaap/components/dbc/values.yaml136
15 files changed, 783 insertions, 0 deletions
diff --git a/kubernetes/dmaap/components/dbc/.helmignore b/kubernetes/dmaap/components/dbc/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/.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/dmaap/components/dbc/Chart.yaml b/kubernetes/dmaap/components/dbc/Chart.yaml
new file mode 100644
index 0000000000..bd07b7a102
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/Chart.yaml
@@ -0,0 +1,19 @@
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 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
+description: a Helm chart to deploy ONAP DMaaP Bus Controller (aka dmaap-bc) in Kubernetes
+name: dbc
+version: 4.0.0
diff --git a/kubernetes/dmaap/components/dbc/README.md b/kubernetes/dmaap/components/dbc/README.md
new file mode 100644
index 0000000000..a799fd44dd
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/README.md
@@ -0,0 +1,25 @@
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+
+# Helm Chart for ONAP DMaaP Applications
+
+ONAP includes the following Kubernetes services available in ONAP Beijing Release (more expected in future):
+
+1) message-router - a message bus for applications
+2) dmaap-prov - an API to provision DMaaP resources
+
+# Service Dependencies
+
+message-router depends on AAF
+dmaap-prov depends on AAF and Postgresql.
diff --git a/kubernetes/dmaap/components/dbc/requirements.yaml b/kubernetes/dmaap/components/dbc/requirements.yaml
new file mode 100644
index 0000000000..61c265fe64
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/requirements.yaml
@@ -0,0 +1,21 @@
+# 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.
+
+dependencies:
+ - name: common
+ version: ~4.x-0
+ repository: '@local'
+ - name: postgres
+ version: ~4.x-0
+ repository: '@local'
diff --git a/kubernetes/dmaap/components/dbc/resources/config/buscontroller.env b/kubernetes/dmaap/components/dbc/resources/config/buscontroller.env
new file mode 100644
index 0000000000..cde43f95b7
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/resources/config/buscontroller.env
@@ -0,0 +1,17 @@
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+
+# Environment settings for starting a container
+DMAAPBC_WAIT_TO_EXIT=Y
+
diff --git a/kubernetes/dmaap/components/dbc/resources/config/dmaapbc.properties b/kubernetes/dmaap/components/dbc/resources/config/dmaapbc.properties
new file mode 100644
index 0000000000..faa19c6f4d
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/resources/config/dmaapbc.properties
@@ -0,0 +1,217 @@
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+
+#####################################################
+#
+# ONAP Casablanca oom configurable deployment params:
+#
+#####################################################
+
+
+#####################################################
+#
+# Hooks for specific environment configurations
+#
+#####################################################
+# Indicator for whether to use AAF
+UseAAF: false
+
+# csit: stubs out some southbound APIs for csit
+csit: No
+
+# name of this DMaaP instance (deprecated)
+#DmaapName: demo
+
+#####################################################
+#
+# Settings for Southbound API: Datarouter
+#
+#####################################################
+# FQDN of DR Prov Server (deprecated)
+#DR.provhost: dcae-drps.domain.not.set
+
+# URI to retrieve dynamic DR configuration
+ProvisioningURI: /internal/prov
+
+# indicator for handling feed delete:
+# DeleteOnDR - means use the DR API to DELETE a feed. (default for backwards compatibility)
+# SimulateDelete - means preserve the feed on DR (after cleaning it up), and mark as DELETED in DBCL. Better for cfy environments.
+Feed.deleteHandling: SimulateDelete
+
+#####################################################
+#
+# Settings for Soutbound API: Postgresql
+#
+#####################################################
+# flag indieonapdemodbates if we are using postgresql
+UsePGSQL: true
+
+# postgres host name
+# Need to connect to PG primary service, designated by service.name2
+DB.host: {{ .Values.postgres.service.name2 }}
+
+# postgres schema name
+#DB.schema: {{ .Values.postgres.config.pgDatabase }}
+
+# postgres user name
+#DB.user: {{ .Values.postgres.config.pgUserName }}
+
+# postgres user password
+DB.cred: {{ .Values.postgres.config.pgUserPassword }}
+
+
+#####################################################
+#
+# Settings for Soutbound API: Message Router
+#
+#####################################################
+# indicator for multi-site (locations) deployment. Give clue to buscontroller whether
+# there is a need for message replication between edge and central.
+# ONAP Casablanca is a single site deployment
+MR.multisite: false
+
+# FQDN of primary message router.
+# In ONAP Casablanca, there is only 1 message router service, so use that.
+# In a multi-site, MR cluster deployment, use the CNAME DNS entry which resolves to the primary central MR
+MR.CentralCname: {{ .Values.dmaapMessageRouterService }}
+
+# MR Client Delete Level thoroughness:
+# 0 = don't delete
+# 1 = delete from persistent store
+# 2 = delete from persistent store (DB) and authorization store (AAF)
+MR.ClientDeleteLevel: 1
+
+# namespace of MR Topic Factory
+MR.TopicFactoryNS: org.onap.dmaap.mr.topicFactory
+
+# AAF Role assigned to Topic Manager Identity
+MR.TopicMgrRole: org.onap.dmaap-bc-topic-mgr.client
+
+# MR topic ProjectID (used in certain topic name generation formats)
+MR.projectID: mr
+
+
+#####################################################
+#
+# Settings for Southbound API: CADI
+#
+#####################################################
+# path to cadi.properties
+cadi.properties: /opt/app/osaaf/lcoal/org.onap.dmaap-bc.props
+
+#####################################################
+#
+# Settings for Southbound API: AAF proxy
+#
+#####################################################
+# URL of the AAF server
+aaf.URL: {{ .Values.aafURL }}
+
+# TopicMgr Identity
+aaf.TopicMgrUser: {{ .Values.topicMgrUser }}
+
+# Password for TopicMgr identity
+aaf.TopicMgrPassword: {{ .Values.topicMgrPwd }}
+
+# Buscontroller Admin Identity
+aaf.AdminUser: {{ .Values.adminUser }}
+
+# Admin Password
+aaf.AdminPassword: {{ .Values.adminPwd }}
+
+# Identity that is owner of any created namespaces for topics
+aaf.NsOwnerIdentity: {{ .Values.adminUser }}
+
+# location of the codec keyfile used to decrypt passwords in this properties file before they are passed to AAF
+CredentialCodeKeyfile: etc/LocalKey
+
+# this overrides the Class used for Decryption.
+# This allows for a plugin encryption/decryption method if needed.
+# Call this Class for decryption at runtime.
+#AafDecryption.Class: com.company.proprietaryDecryptor
+
+
+#####################################################
+#
+# Settings for authorization of DBCAPI
+#
+#####################################################
+# Namespace for URI values for the API used to create AAF permissions
+# e.g. if ApiNamespace is X.Y.dmaapbc.api then for URI /mr_clients we create AAF perm X.Y.dmaapbc.api.mr_clients
+ApiNamespace: org.onap.dmaap-bc.api
+
+# If API authorization is required, then implement a class to enforce it.
+# This overrides the Class used for API permission check.
+#ApiPermission.Class: com.company.policy.DecisionPolicy
+
+#####################################################
+#
+# Settings for Southbound API: MirrorMaker provisioning
+#
+#####################################################
+# AAF Role of client publishing MM prov cmds
+MM.ProvRole: org.onap.dmaap-bc-mm-prov.prov
+
+# AAF identity when publishing MM prov cmds
+MM.ProvUserMechId: dmaap-bc-mm-prov@dmaap-bc-mm-prov.onap.org
+
+# pwd for Identity used to publish MM prov cmds
+MM.ProvUserPwd: demo123456!
+
+# AAF Role of MirrorMaker agent subscribed to prov cmds
+MM.AgentRole: org.onal.dmaap-bc-mm-prov.agent
+
+#####################################################
+#
+# HTTP Server Configuration
+#
+#####################################################
+
+# Allow http access to dbcapi
+HttpAllowed: true
+
+# listen to http port within this container (server)
+IntHttpPort: 8080
+
+# listen to https port within this container (server)
+# set to 0 if no certificates are available.
+IntHttpsPort: 8443
+
+# external port number for https taking port mapping into account
+ExtHttpsPort: 443
+
+# the type of keystore for https
+KeyStoreType: jks
+
+# path to the keystore file
+KeyStoreFile: etc/keystore
+
+# password for the https keystore
+KeyStorePassword: *j&Z*Ma;.4My4M]W0eB*fal$
+
+# password for the private key in the https keystore
+KeyPassword: *j&Z*Ma;.4My4M]W0eB*fal$
+
+# type of truststore for https
+TrustStoreType: jks
+
+# path to the truststore for https
+TrustStoreFile: etc/org.onap.dmaap-bc.trust.jks
+
+# password for the https truststore
+TrustStorePassword: pi8HuuSbN03MtQQ7(5TcyQ6;
+
+# path to the file used to trigger an orderly shutdown
+QuiesceFile: etc/SHUTDOWN
+
diff --git a/kubernetes/dmaap/components/dbc/resources/dcaeLocations/san-francisco.json b/kubernetes/dmaap/components/dbc/resources/dcaeLocations/san-francisco.json
new file mode 100644
index 0000000000..ca1e740dd8
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/resources/dcaeLocations/san-francisco.json
@@ -0,0 +1,5 @@
+{
+
+ "dcaeLayer": "kubernetes-central",
+ "dcaeLocationName": "san-francisco"
+}
diff --git a/kubernetes/dmaap/components/dbc/resources/dmaap/onap.json b/kubernetes/dmaap/components/dbc/resources/dmaap/onap.json
new file mode 100644
index 0000000000..9099e046ed
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/resources/dmaap/onap.json
@@ -0,0 +1,11 @@
+{
+{{ if eq .Values.fixedTopicNamespace true }}
+ "dmaapName": "mr",
+{{- else -}}
+ "dmaapName": "{{ include "common.namespace" . }}",
+{{- end}}
+ "drProvUrl": "https://dmaap-dr-prov:8443",
+ "version": "1",
+ "topicNsRoot": "org.onap.dmaap",
+ "bridgeAdminTopic": "DCAE_MM_AGENT"
+}
diff --git a/kubernetes/dmaap/components/dbc/resources/mr_clusters/san-francisco.json b/kubernetes/dmaap/components/dbc/resources/mr_clusters/san-francisco.json
new file mode 100644
index 0000000000..9e732d2af8
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/resources/mr_clusters/san-francisco.json
@@ -0,0 +1,6 @@
+{
+ "dcaeLocationName": "san-francisco",
+ "fqdn": "message-router",
+ "topicProtocol": "http",
+ "topicPort": "3904"
+}
diff --git a/kubernetes/dmaap/components/dbc/templates/NOTES.txt b/kubernetes/dmaap/components/dbc/templates/NOTES.txt
new file mode 100644
index 0000000000..050853cfa2
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/templates/NOTES.txt
@@ -0,0 +1,34 @@
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 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.
+
+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.name" . }}-prov)
+ 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 "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.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/dmaap/components/dbc/templates/configmap.yaml b/kubernetes/dmaap/components/dbc/templates/configmap.yaml
new file mode 100644
index 0000000000..1066c946af
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/templates/configmap.yaml
@@ -0,0 +1,53 @@
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 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" . }}-config
+ 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/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-dbc-dmaap
+ 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/dmaap/*.json").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-dbc-dcaelocations
+ 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/dcaeLocations/*.json").AsConfig . | indent 2 }}
diff --git a/kubernetes/dmaap/components/dbc/templates/deployment.yaml b/kubernetes/dmaap/components/dbc/templates/deployment.yaml
new file mode 100644
index 0000000000..0ecdc1c0e8
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/templates/deployment.yaml
@@ -0,0 +1,103 @@
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 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:
+ hostAliases:
+ - ip: "10.12.6.214"
+ hostnames:
+ - "aaf-onap-test.osaaf.org"
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - {{ .Values.postgres.nameOverride }}
+ 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: "{{ include "common.repository" . }}/{{ .Values.image }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ ports:
+ - containerPort: {{ .Values.service.internalPort }}
+ - containerPort: {{ .Values.service.internalPort2 }}
+ {{if eq .Values.liveness.enabled true }}
+ livenessProbe:
+ httpGet:
+ port: {{ .Values.service.internalPort }}
+ path: /webapi/info
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ readinessProbe:
+ httpGet:
+ host: {{ .Values.dmaapMessageRouterService }}
+ port: 3904
+ path: /topics
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ {{ end -}}
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+
+# NOTE: on the following several configMaps, careful to include / at end
+# since there may be more than one file in each mountPath
+ - name: {{ include "common.name" . }}-config
+ mountPath: /opt/app/config/conf/
+
+ 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 }}
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: {{ include "common.name" . }}-config
+ configMap:
+ name: {{ include "common.fullname" . }}-config
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/dbc/templates/post-install-job.yaml b/kubernetes/dmaap/components/dbc/templates/post-install-job.yaml
new file mode 100644
index 0000000000..1272c53695
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/templates/post-install-job.yaml
@@ -0,0 +1,67 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ include "common.fullname" . }}-post-install
+ labels:
+ app.kubernetes.io/managed-by: {{.Release.Service | quote }}
+ app.kubernetes.io/instance: {{.Release.Name | quote }}
+ helm.sh/chart: "{{.Chart.Name}}-{{.Chart.Version}}"
+ annotations:
+ # This is what defines this resource as a hook. Without this line, the
+ # job is considered part of the release.
+ "helm.sh/hook": post-install
+ "helm.sh/hook-weight": "-5"
+ "helm.sh/hook-delete-policy": hook-succeeded
+spec:
+ template:
+ metadata:
+ name: "{{.Release.Name}}"
+ labels:
+ app.kubernetes.io/managed-by: {{.Release.Service | quote }}
+ app.kubernetes.io/instance: {{.Release.Name | quote }}
+ helm.sh/chart: "{{.Chart.Name}}-{{.Chart.Version}}"
+ spec:
+ restartPolicy: Never
+
+ containers:
+ - name: post-install-job
+ image: "{{ include "common.repository" . }}/{{ .Values.global.clientImage }}"
+ env:
+ - name: DELAY
+ value: "0"
+ - name: REQUESTID
+ value: "{{.Chart.Name}}-post-install"
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+
+# NOTE: on the following several configMaps, careful to include / at end
+# since there may be more than one file in each mountPath
+# NOTE: the basename of the subdirectory of mountPath is important - it matches the DBCL API URI
+ - name: {{ include "common.fullname" . }}-dbc-dmaap
+ mountPath: /opt/app/config/dmaap/
+ - name: {{ include "common.fullname" . }}-dbc-dcaelocations
+ mountPath: /opt/app/config/dcaeLocations/
+ resources:
+{{ include "common.resources" . | indent 10 }}
+ {{- if .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+ {{- end -}}
+ {{- if .Values.affinity }}
+ affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+ {{- end }}
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: {{ include "common.fullname" . }}-dbc-dmaap
+ configMap:
+ name: {{ include "common.fullname" . }}-dbc-dmaap
+ - name: {{ include "common.fullname" . }}-dbc-dcaelocations
+ configMap:
+ name: {{ include "common.fullname" . }}-dbc-dcaelocations
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/dbc/templates/service.yaml b/kubernetes/dmaap/components/dbc/templates/service.yaml
new file mode 100644
index 0000000000..4b51d44fa2
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/templates/service.yaml
@@ -0,0 +1,48 @@
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 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.service.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.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+ name: {{ .Values.service.name }}
+ - port: {{ .Values.service.externalPort2 }}
+ targetPort: {{ .Values.service.internalPort2 }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+ name: {{ .Values.service.name }}2
+ {{- else -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ name: {{ .Values.service.name }}
+ - port: {{ .Values.service.externalPort2 }}
+ targetPort: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.name }}2
+ {{- end}}
+ selector:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
diff --git a/kubernetes/dmaap/components/dbc/values.yaml b/kubernetes/dmaap/components/dbc/values.yaml
new file mode 100644
index 0000000000..2d791df6c6
--- /dev/null
+++ b/kubernetes/dmaap/components/dbc/values.yaml
@@ -0,0 +1,136 @@
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ nodePortPrefix: 302
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:2.0.0
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+pullPolicy: Always
+
+# application images
+repository: nexus3.onap.org:10001
+image: onap/dmaap/dmaap-bc:1.1.1
+
+
+# application configuration
+dmaapMessageRouterService: message-router
+# change the following value to point to Windriver instance maintained
+# but AAF team.
+# e.g.
+#aafURL: https://aaf-onap-test.osaaf.org:8095/proxy/
+aafURL: https://aaf-service:8100/
+topicMgrUser: dmaap-bc-topic-mgr@dmaap-bc-topic-mgr.onap.org
+topicMgrPwd: demo123456!
+adminUser: aaf_admin@people.osaaf.org
+adminPwd: demo123456!
+
+# for Casablanca default deployment, leave this true to
+# get a topic namespace that matches MR. When set to false,
+# it will compose the topic namespace using the kubernetes namespace value
+fixedTopicNamespace: true
+
+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: false
+
+readiness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+
+
+service:
+ type: NodePort
+ name: dmaap-bc
+ portName: dmaap-bc
+ portName2: dmaap-bc
+ externalPort: 8080
+ internalPort: 8080
+ externalPort2: 8443
+ internalPort2: 8443
+ nodePort: 41
+ nodePort2: 42
+
+
+# application configuration override for postgres
+postgres:
+ nameOverride: dbc-pg
+ service:
+ name: dbc-postgres
+ name2: dbc-pg-primary
+ name3: dbc-pg-replica
+ container:
+ name:
+ primary: dbc-pg-primary
+ replica: dbc-pg-replica
+ config:
+ pgUserName: dmaap_admin
+ pgDatabase: dmaap
+ pgPrimaryPassword: onapdemodb
+ pgUserPassword: onapdemodb
+ pgRootPassword: onapdemodb
+ persistence:
+ mountSubPath: dbc/data
+ mountInitPath: dbc
+ pgpool:
+ nameOverride: dbc-pgpool
+ service:
+ name: dbc-pgpool
+ credentials:
+ pgusername: dmaap_admin
+ pgpassword: onapdemodb
+ container:
+ name:
+ primary: dbc-pgpool-primary
+ replica: dbc-pgpool-replica
+
+ingress:
+ enabled: false
+
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+ small:
+ limits:
+ cpu: 2
+ memory: 4Gi
+ requests:
+ cpu: 1
+ memory: 1Gi
+ large:
+ limits:
+ cpu: 4
+ memory: 8Gi
+ requests:
+ cpu: 2
+ memory: 2Gi
+ unlimited: {}