summaryrefslogtreecommitdiffstats
path: root/kubernetes/dmaap/components/dmaap-bus-controller
diff options
context:
space:
mode:
authorJames MacNider <James.MacNider@amdocs.com>2019-03-06 14:52:52 +0000
committerGerrit Code Review <gerrit@onap.org>2019-03-06 14:52:52 +0000
commite091cefa55f0a7aa9a095a406bc2180e3099a517 (patch)
treee5e16e08d2f2da0dbade6058ac931ec93739e9f1 /kubernetes/dmaap/components/dmaap-bus-controller
parent19351a6dd1f94ff61e572da8e4e9373659cca2ab (diff)
parent28266fa4b4644061b51b8b1066c385b5db641839 (diff)
Merge "Extract dmaap components into components dir"
Diffstat (limited to 'kubernetes/dmaap/components/dmaap-bus-controller')
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/.helmignore21
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/Chart.yaml19
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/README.md25
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/requirements.yaml21
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/config/buscontroller.env17
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/config/dmaapbc.properties217
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/dcaeLocations/san-francisco.json5
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/dmaap/onap.json11
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/DefaultPM.json16
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/README3
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/mr_clusters/san-francisco.json6
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_READY.json17
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_REGISTRATION.json17
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/README3
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/templates/NOTES.txt34
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/templates/configmap.yaml92
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/templates/deployment.yaml129
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/templates/service.yaml48
-rw-r--r--kubernetes/dmaap/components/dmaap-bus-controller/values.yaml133
19 files changed, 834 insertions, 0 deletions
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/.helmignore b/kubernetes/dmaap/components/dmaap-bus-controller/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/.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/dmaap-bus-controller/Chart.yaml b/kubernetes/dmaap/components/dmaap-bus-controller/Chart.yaml
new file mode 100644
index 0000000000..fc2ba21e29
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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-prov) in Kubernetes
+name: dmaap-bus-controller
+version: 4.0.0
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/README.md b/kubernetes/dmaap/components/dmaap-bus-controller/README.md
new file mode 100644
index 0000000000..a799fd44dd
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/requirements.yaml b/kubernetes/dmaap/components/dmaap-bus-controller/requirements.yaml
new file mode 100644
index 0000000000..61c265fe64
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/resources/config/buscontroller.env b/kubernetes/dmaap/components/dmaap-bus-controller/resources/config/buscontroller.env
new file mode 100644
index 0000000000..cde43f95b7
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/resources/config/dmaapbc.properties b/kubernetes/dmaap/components/dmaap-bus-controller/resources/config/dmaapbc.properties
new file mode 100644
index 0000000000..faa19c6f4d
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/resources/dcaeLocations/san-francisco.json b/kubernetes/dmaap/components/dmaap-bus-controller/resources/dcaeLocations/san-francisco.json
new file mode 100644
index 0000000000..ca1e740dd8
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/resources/dcaeLocations/san-francisco.json
@@ -0,0 +1,5 @@
+{
+
+ "dcaeLayer": "kubernetes-central",
+ "dcaeLocationName": "san-francisco"
+}
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/resources/dmaap/onap.json b/kubernetes/dmaap/components/dmaap-bus-controller/resources/dmaap/onap.json
new file mode 100644
index 0000000000..9099e046ed
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/resources/feeds/DefaultPM.json b/kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/DefaultPM.json
new file mode 100644
index 0000000000..411d7f41e1
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/DefaultPM.json
@@ -0,0 +1,16 @@
+{
+ "feedName": "Default PM Feed",
+ "feedVersion": "m1.1",
+ "feedDescription": "Default feed provisioned for PM File collector",
+ "asprClassification" : "unclassified",
+ "owner": "onap",
+ "pubs": [
+ {
+ "dcaeLocationName" : "san-francisco",
+ "username": "dradmin",
+ "userpwd": "dradmin"
+ }
+
+ ]
+}
+
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/README b/kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/README
new file mode 100644
index 0000000000..4f5eac5ba1
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/resources/feeds/README
@@ -0,0 +1,3 @@
+#
+# Intent of this directory is for it to contain a file for each feed that needs to be provisioned in DR.
+# So, app teams can add files to this directory as needed without impacting each other's code.
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/resources/mr_clusters/san-francisco.json b/kubernetes/dmaap/components/dmaap-bus-controller/resources/mr_clusters/san-francisco.json
new file mode 100644
index 0000000000..9e732d2af8
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/resources/topics/PNF_READY.json b/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_READY.json
new file mode 100644
index 0000000000..8f4cf8bd64
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_READY.json
@@ -0,0 +1,17 @@
+{
+ "topicName": "PNF_READY",
+ "topicDescription": "This topic will be used to publish the PNF_READY events generated by the PNF REgistration Handler service in the DCAE platform.",
+ "owner": "PNFRegistrationHandler",
+ "txenabled": false,
+ "clients": [
+ {
+ "dcaeLocationName": "san-francisco",
+ "clientRole": "org.onap.dmaap.mr.PNF_READY.pub",
+ "action": [
+ "pub",
+ "view"
+ ]
+
+ }
+ ]
+}
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_REGISTRATION.json b/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_REGISTRATION.json
new file mode 100644
index 0000000000..f0dd2c7829
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/PNF_REGISTRATION.json
@@ -0,0 +1,17 @@
+{
+ "topicName": "PNF_REGISTRATION",
+ "topicDescription": "the VES collector will be publishing pnfRegistration events in this topic",
+ "owner": "VEScollector",
+ "txenabled": false,
+ "clients": [
+ {
+ "dcaeLocationName": "san-francisco",
+ "clientRole": "org.onap.dmaap.mr.PNF_REGISTRATION.sub",
+ "action": [
+ "sub",
+ "view"
+ ]
+
+ }
+ ]
+}
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/README b/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/README
new file mode 100644
index 0000000000..fbb88b97e6
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/resources/topics/README
@@ -0,0 +1,3 @@
+#
+# Intent of this directory is for it to contain a file for each topic that needs to be provisioned in MR.
+# So, app teams can add files to this directory as needed without impacting each other's code.
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/templates/NOTES.txt b/kubernetes/dmaap/components/dmaap-bus-controller/templates/NOTES.txt
new file mode 100644
index 0000000000..050853cfa2
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/templates/configmap.yaml b/kubernetes/dmaap/components/dmaap-bus-controller/templates/configmap.yaml
new file mode 100644
index 0000000000..ead7562a59
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/templates/configmap.yaml
@@ -0,0 +1,92 @@
+# 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" . }}-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" . }}-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 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-mrclusters
+ 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/mr_clusters/*.json").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-topics
+ 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/topics/*.json").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-feeds
+ 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/feeds/*.json").AsConfig . | indent 2 }}
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/templates/deployment.yaml b/kubernetes/dmaap/components/dmaap-bus-controller/templates/deployment.yaml
new file mode 100644
index 0000000000..4d009e9698
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/templates/deployment.yaml
@@ -0,0 +1,129 @@
+# 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/
+
+# NOTE: the basename of the subdirectory is important - it matches the DBCL API URI
+ - name: {{ include "common.name" . }}-dmaap
+ mountPath: /opt/app/config/dmaap/
+ - name: {{ include "common.name" . }}-dcaelocations
+ mountPath: /opt/app/config/dcaeLocations/
+ - name: {{ include "common.name" . }}-mrclusters
+ mountPath: /opt/app/config/mr_clusters/
+ - name: {{ include "common.name" . }}-topics
+ mountPath: /opt/app/config/topics/
+ - name: {{ include "common.name" . }}-feeds
+ mountPath: /opt/app/config/feeds/
+ 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
+ - name: {{ include "common.name" . }}-dmaap
+ configMap:
+ name: {{ include "common.fullname" . }}-dmaap
+ - name: {{ include "common.name" . }}-dcaelocations
+ configMap:
+ name: {{ include "common.fullname" . }}-dcaelocations
+ - name: {{ include "common.name" . }}-mrclusters
+ configMap:
+ name: {{ include "common.fullname" . }}-mrclusters
+ - name: {{ include "common.name" . }}-topics
+ configMap:
+ name: {{ include "common.fullname" . }}-topics
+ - name: {{ include "common.name" . }}-feeds
+ configMap:
+ name: {{ include "common.fullname" . }}-feeds
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/components/dmaap-bus-controller/templates/service.yaml b/kubernetes/dmaap/components/dmaap-bus-controller/templates/service.yaml
new file mode 100644
index 0000000000..4b51d44fa2
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/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/dmaap-bus-controller/values.yaml b/kubernetes/dmaap/components/dmaap-bus-controller/values.yaml
new file mode 100644
index 0000000000..aab6c237f3
--- /dev/null
+++ b/kubernetes/dmaap/components/dmaap-bus-controller/values.yaml
@@ -0,0 +1,133 @@
+# 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/buscontroller:1.0.23
+
+
+# application configuration
+dmaapMessageRouterService: message-router
+aafURL: https://aaf-onap-test.osaaf.org:8095/proxy/
+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: {}