Merge "Reordered instructions, - files, + example"
authorJerome Doucerain <jerome.doucerain@bell.ca>
Tue, 27 Mar 2018 15:35:58 +0000 (15:35 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 27 Mar 2018 15:35:58 +0000 (15:35 +0000)
161 files changed:
kubernetes/Makefile
kubernetes/README.md
kubernetes/README_HELM [deleted file]
kubernetes/aai/resources/config/log/filebeat/filebeat.yml
kubernetes/aai/values.yaml
kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml
kubernetes/appc/values.yaml
kubernetes/common/Makefile
kubernetes/common/dgbuilder/.helmignore [moved from kubernetes/dgbuilder/.helmignore with 100% similarity]
kubernetes/common/dgbuilder/Chart.yaml [moved from kubernetes/dgbuilder/Chart.yaml with 100% similarity]
kubernetes/common/dgbuilder/requirements.yaml [moved from kubernetes/dgbuilder/requirements.yaml with 100% similarity]
kubernetes/common/dgbuilder/resources/config/svclogic.properties [moved from kubernetes/dgbuilder/resources/config/svclogic.properties with 100% similarity]
kubernetes/common/dgbuilder/resources/scripts/createReleaseDir.sh [moved from kubernetes/dgbuilder/resources/scripts/createReleaseDir.sh with 100% similarity]
kubernetes/common/dgbuilder/resources/scripts/customSettings.js [moved from kubernetes/dgbuilder/resources/scripts/customSettings.js with 100% similarity]
kubernetes/common/dgbuilder/templates/NOTES.txt [moved from kubernetes/dgbuilder/templates/NOTES.txt with 100% similarity]
kubernetes/common/dgbuilder/templates/configmap.yaml [moved from kubernetes/dgbuilder/templates/configmap.yaml with 100% similarity]
kubernetes/common/dgbuilder/templates/deployment.yaml [moved from kubernetes/dgbuilder/templates/deployment.yaml with 100% similarity]
kubernetes/common/dgbuilder/templates/secrets.yaml [moved from kubernetes/dgbuilder/templates/secrets.yaml with 100% similarity]
kubernetes/common/dgbuilder/templates/service.yaml [moved from kubernetes/dgbuilder/templates/service.yaml with 100% similarity]
kubernetes/common/dgbuilder/values.yaml [moved from kubernetes/dgbuilder/values.yaml with 100% similarity]
kubernetes/common/mysql/.helmignore [moved from kubernetes/mysql/.helmignore with 100% similarity]
kubernetes/common/mysql/Chart.yaml [moved from kubernetes/mysql/Chart.yaml with 100% similarity]
kubernetes/common/mysql/requirements.yaml [moved from kubernetes/mysql/requirements.yaml with 100% similarity]
kubernetes/common/mysql/templates/configmap.yaml [moved from kubernetes/mysql/templates/configmap.yaml with 100% similarity]
kubernetes/common/mysql/templates/nfs-provisoner.yaml [moved from kubernetes/mysql/templates/nfs-provisoner.yaml with 100% similarity]
kubernetes/common/mysql/templates/pv.yaml [moved from kubernetes/mysql/templates/pv.yaml with 100% similarity]
kubernetes/common/mysql/templates/pvc.yaml [moved from kubernetes/mysql/templates/pvc.yaml with 100% similarity]
kubernetes/common/mysql/templates/secrets.yaml [moved from kubernetes/mysql/templates/secrets.yaml with 100% similarity]
kubernetes/common/mysql/templates/service.yaml [moved from kubernetes/mysql/templates/service.yaml with 100% similarity]
kubernetes/common/mysql/templates/statefulset.yaml [moved from kubernetes/mysql/templates/statefulset.yaml with 100% similarity]
kubernetes/common/mysql/templates/storageclass.yaml [moved from kubernetes/mysql/templates/storageclass.yaml with 100% similarity]
kubernetes/common/mysql/values.yaml [moved from kubernetes/mysql/values.yaml with 100% similarity]
kubernetes/dcae/README [deleted file]
kubernetes/dcae/cdap/docker/00-provisioning.sh [deleted file]
kubernetes/dcae/cdap/docker/01-entrypoint.sh [deleted file]
kubernetes/dcae/cdap/docker/Dockerfile [deleted file]
kubernetes/dcae/cdap/docker/docker-compose.yaml [deleted file]
kubernetes/dcae/cdap/docker/fs/Dockerfile [deleted file]
kubernetes/dcae/pgaas/Dockerfile [deleted file]
kubernetes/dcae/pgaas/setup.sh [deleted file]
kubernetes/dcae/templates/all-services.yaml [deleted file]
kubernetes/dcae/templates/cdap0-dep.yaml [deleted file]
kubernetes/dcae/templates/cdap1-dep.yaml [deleted file]
kubernetes/dcae/templates/cdap2-dep.yaml [deleted file]
kubernetes/dcae/templates/dcae-collector-common-event.yaml [deleted file]
kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml [deleted file]
kubernetes/dcae/templates/dcae-controller.yaml [deleted file]
kubernetes/dcae/templates/dcae-dmaap.yaml [deleted file]
kubernetes/dcae/templates/dcae-kafka.yaml [deleted file]
kubernetes/dcae/templates/dcae-zookeeper.yaml [deleted file]
kubernetes/dcae/templates/pgaas.yaml [deleted file]
kubernetes/esr/resources/config/log/filebeat/filebeat.yml
kubernetes/esr/values.yaml
kubernetes/log/.helmignore [new file with mode: 0644]
kubernetes/log/Chart.yaml
kubernetes/log/charts/log-elasticsearch/Chart.yaml [moved from kubernetes/dcae/values.yaml with 52% similarity]
kubernetes/log/charts/log-elasticsearch/requirements.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/resources/config/elasticsearch.yml [moved from kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml with 98% similarity]
kubernetes/log/charts/log-elasticsearch/templates/NOTES.txt [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/configmap.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/pv.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/service.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/values.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/Chart.yaml [moved from kubernetes/dcae/Chart.yaml with 90% similarity]
kubernetes/log/charts/log-kibana/requirements.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/resources/config/kibana.yml [moved from kubernetes/log/resources/kibana/conf/kibana.yml with 95% similarity]
kubernetes/log/charts/log-kibana/templates/NOTES.txt [new file with mode: 0644]
kubernetes/log/charts/log-kibana/templates/configmap.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/templates/deployment.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/templates/service.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/values.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/Chart.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/requirements.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/resources/config/logstash.yml [moved from kubernetes/log/resources/logstash/conf/logstash.yml with 99% similarity]
kubernetes/log/charts/log-logstash/resources/config/onap-pipeline.conf [moved from kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf with 95% similarity]
kubernetes/log/charts/log-logstash/templates/NOTES.txt [new file with mode: 0644]
kubernetes/log/charts/log-logstash/templates/configmap.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/templates/deployment.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/templates/service.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/values.yaml [new file with mode: 0644]
kubernetes/log/requirements.yaml [new file with mode: 0644]
kubernetes/log/templates/all-services.yaml [deleted file]
kubernetes/log/templates/elasticsearch-deployment.yaml [deleted file]
kubernetes/log/templates/kibana-deployment.yaml [deleted file]
kubernetes/log/templates/log-pv-pvc.yaml [deleted file]
kubernetes/log/templates/logstash-deployment.yaml [deleted file]
kubernetes/log/values.yaml
kubernetes/msb/.helmignore [new file with mode: 0644]
kubernetes/msb/Chart.yaml
kubernetes/msb/charts/kube2msb/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/values.yaml [new file with mode: 0644]
kubernetes/msb/requirements.yaml [new file with mode: 0644]
kubernetes/msb/templates/all-services.yaml [deleted file]
kubernetes/msb/templates/kube2msb-registrator-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-consul-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-discovery-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-eag-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-iag-deployment.yaml [deleted file]
kubernetes/msb/values.yaml
kubernetes/mso/resources/config/log/filebeat/filebeat.yml
kubernetes/mso/values.yaml
kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml
kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
kubernetes/multicloud/values.yaml
kubernetes/onap/requirements.yaml
kubernetes/onap/values.yaml
kubernetes/oneclick/createAll.bash [deleted file]
kubernetes/oneclick/deleteAll.bash [deleted file]
kubernetes/oneclick/setenv.bash [deleted file]
kubernetes/oneclick/tools/autoCleanConfig.bash [deleted file]
kubernetes/oneclick/tools/autoCreateConfig.bash [deleted file]
kubernetes/oneclick/tools/collectInfo.bash [deleted file]
kubernetes/policy/resources/config/log/filebeat/filebeat.yml
kubernetes/policy/values.yaml
kubernetes/portal/resources/config/log/filebeat/filebeat.yml
kubernetes/portal/values.yaml
kubernetes/readiness/docker/init/Dockerfile
kubernetes/readiness/docker/init/job_complete.py [new file with mode: 0644]
kubernetes/robot/resources/config/eteshare/config/vm_properties.py
kubernetes/robot/values.yaml
kubernetes/sdc/resources/config/log/filebeat/filebeat.yml
kubernetes/sdc/values.yaml
kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml
kubernetes/sdnc/values.yaml
kubernetes/so/resources/config/log/filebeat/filebeat.yml
kubernetes/so/values.yaml
kubernetes/vid/resources/config/log/filebeat/filebeat.yml
kubernetes/vid/values.yaml

index 9cbf90f..7ba5ba9 100644 (file)
@@ -1,26 +1,33 @@
+# 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.
+
 PARENT_CHART := onap
 COMMON_CHARTS_DIR := common
-SETUP_CHARTS_DIR := setup
-#Order is important
-SHARED_CHARTS := common setup mysql dgbuilder
 # FIXME OOM-765
 ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 OUTPUT_DIR := $(ROOT_DIR)/dist
 PACKAGE_DIR := $(OUTPUT_DIR)/packages
 SECRET_DIR := $(OUTPUT_DIR)/secrets
 
-EXCLUDES := $(COMMON_CHARTS_DIR) config oneclick readiness test dist helm $(PARENT_CHART) dcae
-EXCLUDES := $(SHARED_CHARTS) config oneclick readiness test dist $(PARENT_CHART) dcae
+EXCLUDES := config oneclick readiness test dist helm $(PARENT_CHART) dcae
 HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.))) $(PARENT_CHART)
 
 .PHONY: $(EXCLUDES) $(HELM_CHARTS)
 
 all: $(COMMON_CHARTS_DIR) $(HELM_CHARTS)
 
-common:
-all: $(SHARED_CHARTS) $(HELM_CHARTS)
-
-$(SHARED_CHARTS):
+$(COMMON_CHARTS):
        @echo "\n[$@]"
        @make package-$@
 
@@ -45,5 +52,12 @@ clean:
        @rm -f */requirements.lock
        @rm -f *tgz */charts/*tgz
        @rm -rf $(PACKAGE_DIR)
+
+# start up a local helm repo to serve up
+repo:
+       @mkdir -p $(PACKAGE_DIR)
+       @helm serve --repo-path $(PACKAGE_DIR) &
+       @helm repo index $(PACKAGE_DIR)
+       @helm repo add local http://127.0.0.1:8879
 %:
        @:
index dc49e54..9c315cb 100644 (file)
@@ -1,78 +1,87 @@
-## **Quick Start Guide - ONAP on Kubernetes**
+## **Quick Start Guide**
 
 
-This is a quick start guide to help you get started on ONAP installation. Creating an ONAP deployment instance requires creating base configuration on the host node and then deploying the runtime containers.
+This is a quick start guide describing how to deploy ONAP on Kubernetes using Helm.
 
 Pre-requisites:
 
 -  Your Kubernetes environment must be available. For more information see, [ONAP on Kubernetes](https://wiki.onap.org/display/DW/ONAP+on+Kubernetes).
 -  Deployment artifacts are customized for your location.
 
-Step 1
 
-Review and optionally change configuration parameters:
-
-Setup the [/oom/kubernetes/config/onap-parameters.yaml](https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters.yaml;h=7ddaf4d4c3dccf2fad515265f0da9c31ec0e64b1;hb=refs/heads/master) file with key-value pairs specific to your OpenStack environment.
-
-OR
-
-There is a [sample](https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters-sample.yaml;h=3a74beddbbf7f9f9ec8e5a6abaecb7cb238bd519;hb=refs/heads/master) that may help you out or even be usable directly if you don't intend to actually use OpenStack resources.
-
-
-Step 2
-
-In-order to be able to support multiple ONAP instances within a single kubernetes environment, a configuration set is required. To do this, execute the [createConfig.sh](https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/createConfig.sh;h=f226ccae47ca6de15c1da49be4b8b6de974895ed;hb=refs/heads/master) script:
-
-> oom/kubernetes/config/createConfig.sh -n onap
-
-Where:
-'onap' refers to the name of the instance. This serves as the Namespace prefix for each deployed ONAP component (for example, onap-mso).
-
-Step 3
-
-The bash script [createAll.bash](https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/oneclick/createAll.bash;h=5e5f2dc76ea7739452e757282e750638b4e3e1de;hb=refs/heads/master) is used to create an ONAP deployment with kubernetes. It has two primary functions:
-
--  Creating the namespaces used to encapsulate the ONAP components, and
--  Creating the services, pods and containers within each of these namespaces that provide the core functionality of ONAP.
-
-Before you execute the createAll.bash. script, pod config-init ([pod-config-init.yaml](https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/pod-config-init.yaml;h=b1285ce21d61815c082f6d6aa3c43d00561811c7;hb=refs/heads/master)) may need editing to match your environment and deployment into the default namespace.
-
-To deploy the containers and create your ONAP system, execute the following command:
-
-> oom/kubernetes/oneclick/createAll.bash -n onap
-
-#### **Additional information on usage of createAll.bash**
-
-Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (for example, mariadb) and port usage.
-
-As such createAll.bash requires the user to enter a namespace prefix string that can be used to separate multiple deployments of onap. The result will be set of 10 namespaces (for example, onap-sdc, onap-aai, onap-mso, onap-message-router, onap-robot, onap-vid, onap-sdnc, onap-portal, onap-policy, onap-appc) being created within the kubernetes environment.
-
-
-#### **Deploying multiple ONAP instances within the same Kubernetes cluster**
-
-To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash.
-
-This is currently required due to the use of NodePort ranges. NodePorts allow external IP:Port access to containers that are running inside a Kubernetes cluster.
-
-To create multiple instances of an ONAP deployment in the cluster, use the following commands:
-
-> oom/kubernetes/config/createConfig.sh -n onap
-
-> oom/kubernetes/oneclick/createAll.bash -n onap -i 2
-
-Where:
-
--  'onap' refers to the name of the instance.
-
--  \91i 2\92 refers to the number of instances of an ONAP deployment in the cluster.
-
-#### **To delete a deployed instance**
+### **Deploy ONAP Instance**
+
+Step 1. Clone the OOM repository from ONAP gerrit:
+
+```
+> git clone http://gerrit.onap.org/r/oom
+> cd oom/kubernetes
+```
+
+Step 2. Customize the oom/kubernetes/onap parent chart, like the values.yaml file, to suit your deployment. You may want to selectively enable or disable ONAP components by changing the subchart **enabled** flags to *true* or *false*.
+```
+Example:
+...
+robot: # Robot Health Check
+  enabled: true
+sdc:
+  enabled: false
+sdnc:
+  enabled: false
+so: # Service Orchestrator
+  enabled: true
+...
+```
+
+Step 3. To setup a local Helm repository to serve up the local ONAP charts:
+```
+> helm serve &
+```
+Note the port number that is listed and use it in the Helm repo add as follows:
+```
+> helm repo add local http://127.0.0.1:8879
+```
+
+Step 4. Build a local Helm repository (from the kubernetes directory):
+```
+> make all
+```
+
+Step 5. Display the charts that are available to be deployed:
+```
+> helm search -l
+NAME                    VERSION    DESCRIPTION
+local/appc              2.0.0      Application Controller
+local/clamp             2.0.0      ONAP Clamp
+local/onap              2.0.0      Open Network Automation Platform (ONAP)
+local/robot             2.0.0      A helm Chart for kubernetes-ONAP Robot
+local/so                2.0.0      ONAP Service Orchestrator
+...
+```
+
+**Note:**
+Setup of this Helm repository is a one time activity. If you make changes to your deployment charts or values be sure to use **make** to update your local Helm repository.
+
+Step 6. Once the repo is setup, installation of ONAP can be done with a single command:
+```
+> helm install local/onap -name dev --namespace onap
+```
+**Note:** the **--namespace onap** is currently required while all onap helm charts are migrated to version 2.0. After this activity is complete, namespaces will be optional.
+
+Use the following to monitor your deployment and determine when ONAP is ready for use:
+```
+> kubectl get pods --all-namespaces -o=wide
+```
+
+
+#### **Cleanup deployed ONAP instance**
 
 To delete a deployed instance, use the following command:
+```
+> helm del dev --purge
+```
 
-> oom/kubernetes/oneclick/deleteAll.bash -n onap
 
-**Note:** Deleting the runtime containers does not remove the configuration created in step 2.
 
 For more information on OOM project documentation, refer to:
 
diff --git a/kubernetes/README_HELM b/kubernetes/README_HELM
deleted file mode 100644 (file)
index 0f65120..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Prerequisites:
-- K8s
-- Helm
-
-In order to use Helm with Rancher, check the tiller version installed
-by running "helm version" on the rancher CLI
-and install the appropriate Helm.
-Notice both tiller and helm are installed,
-but you will need to install on your VM.
-
-charts were tested with the following setup:
-  Rancher Release v1.6.7
-  k8s version 1.7.2
-  Helm/Tiller version v2.3.0
-also tested on:
-  k8s version v1.5.2
-  Helm/Tiller v2.6.0
-
-Download Helm:
-https://github.com/kubernetes/helm
index 89c6932..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index e283cb6..eaeaa2e 100644 (file)
@@ -74,3 +74,7 @@ persistence:
   mountPath: /dockerdata-nfs
   mountSubPath: aai/data-router/logs
 
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
index 52161aa..49d818a 100644 (file)
@@ -29,7 +29,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Release.Namespace}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index e31980a..b5a13ef 100644 (file)
@@ -43,6 +43,8 @@ config:
   enableClustering: true
   configDir: /opt/onap/appc/data/properties
   dmaapTopic: SUCCESS
+  logstashServiceName: log-ls
+  logstashPort: 5044
 
 mysql:
   nameOverride: appc-db
index b9cc125..a78cc88 100644 (file)
@@ -19,7 +19,7 @@ PACKAGE_DIR := $(OUTPUT_DIR)/packages
 SECRET_DIR := $(OUTPUT_DIR)/secrets
 
 EXCLUDES :=
-HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.))) $(PARENT_CHART)
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
 
 .PHONY: $(EXCLUDES) $(HELM_CHARTS)
 
diff --git a/kubernetes/dcae/README b/kubernetes/dcae/README
deleted file mode 100644 (file)
index c733355..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-DCAE Port mapping
------------------------------------------------------------------------------------------
-Container name               |     Connector name    |    Node port      |  Target port  |
------------------------------------------------------------------------------------------
-dcae-collector-common-event  |        dcae-ce1       |      30236        |    8080       |
------------------------------------------------------------------------------------------
-                             |        dcae-ce2       |      30237        |    8443       |
------------------------------------------------------------------------------------------
-                             |        dcae-ce3       |      30238        |    9999       |
------------------------------------------------------------------------------------------
-dcae-collector-dmaapbc       |        dcae-bc1       |      30239        |    8080       |
------------------------------------------------------------------------------------------
-                             |        dcae-bc2       |      30240        |    8443       |
------------------------------------------------------------------------------------------
-dcae-ves-collector           |        dcae-ves1      |      30241        |    8080       |
------------------------------------------------------------------------------------------
-                             |        dcae-ves2      |      30242        |    9999       |
------------------------------------------------------------------------------------------
diff --git a/kubernetes/dcae/cdap/docker/00-provisioning.sh b/kubernetes/dcae/cdap/docker/00-provisioning.sh
deleted file mode 100755 (executable)
index 98b67c4..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#!/bin/bash
-set -x
-
-export DEBIAN_FRONTEND=noninteractive
-
-##############################################################
-################### File provisioning ########################
-##############################################################
-
-cd /tmp
-
-
-## Adding configuration file: mount_config
-cat > /tmp/dcae-mount.conf << EOF_CONFIG
-osType: ubuntu
-volumes:
-  ephemeral:
-    uuid: ephemeral
-    size: 80
-    filesystems:
-      /opt/tools:
-        size: 80
-        type: ext4
-        mount_opts: ''
-  data:
-    uuid: cinder
-    size: 75
-    filesystems:
-      /opt/data:
-        size: 75
-        type: ext4
-        mount_opts: ''
-EOF_CONFIG
-
-
-## Adding configuration file: ecomp-nexus
-cat > /tmp/ecomp-nexus.crt << EOF_CONFIG
------BEGIN CERTIFICATE-----
-MIIFRTCCBC2gAwIBAgIQM/5eM8D0jY3yHTSyN5iO9zANBgkqhkiG9w0BAQsFADCB
-kDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNV
-BAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
-QTAeFw0xNzAzMjgwMDAwMDBaFw0xODAzMjgyMzU5NTlaMFcxITAfBgNVBAsTGERv
-bWFpbiBDb250cm9sIFZhbGlkYXRlZDEdMBsGA1UECxMUUG9zaXRpdmVTU0wgV2ls
-ZGNhcmQxEzARBgNVBAMMCioub25hcC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIVo+kmG2sGaeIJy5pqP6mzlIwqYUXcFOG2fodsCPg9CEdlsBO
-IECuoPYmCqrJ/MHLfs+F+SjEoBfpJlqyrpLhVj8O/9xCp4Tda/YJ18n59uDJ7Rpq
-omqZlFCj/B4+H6+dkWCFy1FxYBBAIO52iscd4F6YHD1p3xUjJRd9Yf6qnktmSooI
-hbIKzPIpSTsYiN3ArWbrGeucoQUdKX+intRHFLkKay88R7yqoqguPFIEtkXwDoJj
-aV+rC103eZ1RLwtBcS/4UcDXRDfkyQANAYvKGeHiyGuRQqEUyGEmKz2i11m1oyEP
-uD1AK+zPd33wBdOe8iZMr0CxcOGhgcKOWJ7vAgMBAAGjggHRMIIBzTAfBgNVHSME
-GDAWgBSQr2o6lFoL2JDqElZz30O0Oija5zAdBgNVHQ4EFgQUMVkz3DD9qwhzY5WT
-/P1mCVpsauQwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYw
-FAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARIMEYwOgYLKwYBBAGyMQECAgcw
-KzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwCAYG
-Z4EMAQIBMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwuY29tb2RvY2EuY29t
-L0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYUG
-CCsGAQUFBwEBBHkwdzBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5jb21vZG9jYS5j
-b20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAk
-BggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMB8GA1UdEQQYMBaC
-Cioub25hcC5vcmeCCG9uYXAub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAd5mu22sts
-at/bdRlIOz3dbqGwIFOo8XajlAs6ApMpyx/xetcgIKipzvGp9Wc1X8lDZl4boCH6
-KQ1//4tpksYj8RsZSZeac8vQLKggWO107sBa33yFg6Y1Dk2DdgOKZ+lNbvB1iMwK
-hSGtV3HYx1jLyQRoeYby4R7+kTI1lHAiOgT+vn5C9Z3TxqfgWuBf24CFp/95gki6
-vRysJh9Jf7A8JrrMGykC94Tpo6OiUehtQ+f65xtetvwsfNHVp3hsLzR5KwIMDARI
-IgXKyROodILsOXfR9qdA9klcXUSi6qvKF8wAopNuot4Ltyz8chiFKISjxqVrKnY2
-M7En/HyX0s1I
------END CERTIFICATE-----
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-cdap.properties
-cat > /tmp/vm-cdap-cluster-cdap.properties << EOF_CONFIG
-cluster.endpoint= foobar
-cluster.user= foobar
-cluster.password= foobar
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-console.properties
-cat > /tmp/vm-cdap-cluster-console.properties << EOF_CONFIG
-localhost.endpoint=http://localhost:1999
-localhost.user=console
-localhost.password=NTJhYWU1NzAwMzc3OTk1
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-gui.properties
-cat > /tmp/vm-cdap-cluster-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-log4j.properties
-cat > /tmp/vm-cdap-cluster-log4j.properties << EOF_CONFIG
-#log4j.debug=0
-log4j.rootLogger=warn, file
-log4j.logger.org.openecomp.ncomp=info, file
-log4j.additivity.org.openecomp.ncomp=false
-
-#log4j.logger.org.apache.http.headers=debug, file
-#log4j.logger.org.apache.http.wire=debug, file
-## uploaded logger
-log4j.logger.org.openecomp.ncomp.sirius.manager.uploaded=info, uploaded
-log4j.additivity.org.openecomp.ncomp.sirius.manager.uploaded=false
-## request logging
-log4j.logger.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=info, requests
-log4j.additivity.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=false
-## openstack polling
-log4j.logger.org.openecomp.ncomp.openstack.OpenStackUtil.polling=info, polling
-log4j.additivity.org.openecomp.ncomp.openstack.OpenStackUtil.polling=false
-log4j.appender.file=org.apache.log4j.RollingFileAppender
-log4j.appender.file.File=logs/manager.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.file.MaxFileSize=50MB
-log4j.appender.file.MaxBackupIndex=5
-
-log4j.appender.uploaded=org.apache.log4j.RollingFileAppender
-log4j.appender.uploaded.File=logs/manager-uploaded.log
-log4j.appender.uploaded.layout=org.apache.log4j.PatternLayout
-log4j.appender.uploaded.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.uploaded.MaxFileSize=50MB
-log4j.appender.uploaded.MaxBackupIndex=5
-
-log4j.appender.requests=org.apache.log4j.RollingFileAppender
-log4j.appender.requests.File=logs/manager-requests.log
-log4j.appender.requests.layout=org.apache.log4j.PatternLayout
-log4j.appender.requests.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.requests.MaxFileSize=50MB
-log4j.appender.requests.MaxBackupIndex=5
-log4j.appender.polling=org.apache.log4j.RollingFileAppender
-log4j.appender.polling.File=logs/manager-polling.log
-log4j.appender.polling.layout=org.apache.log4j.PatternLayout
-log4j.appender.polling.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.polling.MaxFileSize=50MB
-log4j.appender.polling.MaxBackupIndex=5
-
-### ECOMP Logging
-log4j.logger.org.openecomp.audit=info, audit
-log4j.additivity.org.openecomp.audit=false
-log4j.logger.org.openecomp.metrics=info, metrics
-log4j.additivity.org.openecomp.metrics=false
-log4j.logger.org.openecomp.error=info, error
-log4j.additivity.org.openecomp.error=false
-log4j.logger.com.att.eelf.debug=info, debug
-log4j.additivity.org.openecomp.debug=false
-log4j.appender.audit=org.apache.log4j.RollingFileAppender
-log4j.appender.audit.File=logs/audit.log
-log4j.appender.audit.layout=org.apache.log4j.PatternLayout
-log4j.appender.audit.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%5p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.audit.MaxFileSize=50MB
-log4j.appender.audit.MaxBackupIndex=5
-log4j.appender.metrics=org.apache.log4j.RollingFileAppender
-log4j.appender.metrics.File=logs/metrics.log
-log4j.appender.metrics.layout=org.apache.log4j.PatternLayout
-log4j.appender.metrics.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.metrics.MaxFileSize=50MB
-log4j.appender.metrics.MaxBackupIndex=5
-log4j.appender.error=org.apache.log4j.RollingFileAppender
-log4j.appender.error.File=logs/error.log
-log4j.appender.error.layout=org.apache.log4j.PatternLayout
-log4j.appender.error.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.error.MaxFileSize=50MB
-log4j.appender.error.MaxBackupIndex=5
-log4j.appender.debug=org.apache.log4j.RollingFileAppender
-log4j.appender.debug.File=logs/debug.log
-log4j.appender.debug.layout=org.apache.log4j.PatternLayout
-log4j.appender.debug.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.debug.MaxFileSize=50MB
-log4j.appender.debug.MaxBackupIndex=5
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-manager.properties
-cat > /tmp/vm-cdap-cluster-manager.properties << EOF_CONFIG
-server.dir = data/resources
-metrics.dir = data/metrics
-properties.dir = data/properties
-server.port = 1999
-server.user.console = NTJhYWU1NzAwMzc3OTk1
-server.user.gui = MDlhZWVjZWEwMmFiOTJi
-server.user.client = YmE2OGE1N2U5NzRmMDg1
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-runtime.properties
-cat > /tmp/vm-cdap-cluster-runtime.properties << EOF_CONFIG
-factory.vm=org.openecomp.dcae.controller.service.servers.vm.DcaeVmFactory
-
-## Adding configuration file: monitoring-agent-gui.properties
-cat > /tmp/monitoring-agent-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-
-cat > /tmp/certificate.pkcs12.b64code << EOF_CERT
-EOF_CERT
-
-
-##############################################################
-################## Config Provisioning #######################
-##############################################################
-
-mkdir -p ~/.ssh
-touch ~/.ssh/authorized_keys
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBn8Ctt5hJGkTQaffuSeINeABV4viBIM4TcP14kaLiWR1LkyNY+TaUnjxODobtZa4YW1lxFtoMCfZt2A5W9ZZPM+shZr4BOj+wU+xIrzn7ezN/CQjH7c4Wh0mWteuPnJrtdpyGQ/qBI2T+xo5G/Tl++SPUvvN2D4H8vl0miEgVPR47/P7Ba6kl7Bmrf9m0VDPdS69Qr2AhgBq5Qi/fTeGZA4sfKDHHRJxkQIXYmS8R5FISRpBD7ta2NTHapRz9dC6Cw8UttEFiWFUBjN6lwF9LUOkj9MiqiTQaElKKQzMIHr0AhlgIkwBLKAJoDrGQD9GKPwKCdW3OmnODMPxJjXc3 > ~/.ssh/authorized_keys
-
-cp /tmp/ecomp-nexus.crt /usr/local/share/ca-certificates/ ; update-ca-certificates
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-core-utils/1.1.0/dcae-controller-core-utils-1.1.0-runtime.zip -P /opt/app/dcae-controller-core-utils
-
-cd /opt/app/dcae-controller-core-utils
-unzip -o dcae-controller-core-utils*.zip
-
-chown -R dcae:dcae /opt/app/dcae-controller-core-utils
-
-/opt/app/dcae-controller-core-utils/bin/fs-init.py
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-cdap-cluster-manager/1.1.0/dcae-controller-service-cdap-cluster-manager-1.1.0-runtime.zip -P /opt/app/dcae-controller-service-cdap-cluster-manager
-
-cd /opt/app/dcae-controller-service-cdap-cluster-manager
-unzip -o dcae-controller-service-cdap-cluster-manager*.zip
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-cdap-cluster-manager
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-dmaap-drsub/1.1.0/dcae-controller-service-dmaap-drsub-1.1.0.pom -P /opt/app/dcae-controller-service-dmaap-drsub
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-dmaap-drsub
-
-curl -s -k -f -o /tmp/dcae-apod-cdap-small-hadoop_1.1.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.apod.cdap/deb-releases/dcae-apod-cdap-small-hadoop_1.1.0.deb
-
-curl -s -k -f -o /tmp/dcae-apod-analytics-tca_1.1.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.apod.analytics/deb-releases/dcae-apod-analytics-tca_1.1.0.deb
-
-curl -s -k -f -o /tmp/HelloWorld-3.5.1.jar http://repo1.maven.org/maven2/co/cask/cdap/HelloWorld/3.5.1/HelloWorld-3.5.1.jar
-mkdir -p /opt/app/cask-hello-world/lib
-mv /tmp/HelloWorld-3.5.1.jar /opt/app/cask-hello-world/lib
-
-find /opt -type f -exec sed -i 's/sudo//g' {} \;
-
-apt-key adv --keyserver-options --keyserver keyserver.ubuntu.com --recv 07513CAD
-wget -qO - http://repository.cask.co/ubuntu/precise/amd64/cdap/3.5/pubkey.gpg | apt-key add -
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-dmaap-drsub-manager/1.1.0/dcae-controller-service-dmaap-drsub-manager-1.1.0-runtime.zip -P /opt/app/dcae-controller-service-dmaap-drsub-manager
-
-cd /opt/app/dcae-controller-service-dmaap-drsub-manager
-unzip -o dcae-controller-service-dmaap-drsub-manager-1.1.0-runtime.zip
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-dmaap-drsub-manager
-
-mkdir /home/dcae/.ssh
-chmod og-rwx /home/dcae/.ssh
-chown -R dcae:dcae /home/dcae/.ssh
-touch /home/dcae/.ssh/authorized_keys
-chmod og-rwx /home/dcae/.ssh/authorized_keys
-chown -R dcae:dcae /home/dcae/.ssh/authorized_keys
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBn8Ctt5hJGkTQaffuSeINeABV4viBIM4TcP14kaLiWR1LkyNY+TaUnjxODobtZa4YW1lxFtoMCfZt2A5W9ZZPM+shZr4BOj+wU+xIrzn7ezN/CQjH7c4Wh0mWteuPnJrtdpyGQ/qBI2T+xo5G/Tl++SPUvvN2D4H8vl0miEgVPR47/P7Ba6kl7Bmrf9m0VDPdS69Qr2AhgBq5Qi/fTeGZA4sfKDHHRJxkQIXYmS8R5FISRpBD7ta2NTHapRz9dC6Cw8UttEFiWFUBjN6lwF9LUOkj9MiqiTQaElKKQzMIHr0AhlgIkwBLKAJoDrGQD9GKPwKCdW3OmnODMPxJjXc3 >> /home/dcae/.ssh/authorized_keys
-
-#bash /opt/app/dcae-cdap-small-hadoop/install.sh
diff --git a/kubernetes/dcae/cdap/docker/01-entrypoint.sh b/kubernetes/dcae/cdap/docker/01-entrypoint.sh
deleted file mode 100755 (executable)
index 952d1d4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-dpkg --install /tmp/dcae-apod-cdap-small-hadoop_1.1.0.deb
-dpkg --install /tmp/dcae-apod-analytics-tca_1.1.0.deb
-
-bash /opt/app/dcae-cdap-small-hadoop/install.sh
-su dcae -c "/opt/app/dcae-controller-service-cdap-cluster-manager/bin/manager.sh config"
-su dcae -c "/opt/app/dcae-controller-service-cdap-cluster-manager/bin/manager.sh restart"
\ No newline at end of file
diff --git a/kubernetes/dcae/cdap/docker/Dockerfile b/kubernetes/dcae/cdap/docker/Dockerfile
deleted file mode 100644 (file)
index 5b8583e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-FROM ubuntu:16.04
-
-# Setup apt.conf proxy settings
-#RUN echo 'Acquire::http::proxy "http://some.proxy:8084/";' >> /etc/apt/apt.conf
-
-# Setup Corporate proxy
-#ENV no_proxy "localhost,127.0.0.1,localaddress,.localdomain.com,192.168.141.0/24"
-#ENV https_proxy http://some.proxy:8084/
-#ENV http_proxy http://fsome.proxy:8084/
-#ENV HTTP_PROXY http://some.proxy:8084/
-#ENV HTTPS_PROXY http://some.proxy:8084/
-#ENV FTP_PROXY http://some.proxy:8084/
-#ENV NO_PROXY "localhost,127.0.0.1,localaddress,.localdomain.com,192.168.141.0/24"
-
-# Additional packages
-RUN apt-get update -y
-RUN apt-get install -y git wget unzip curl dnsutils sudo
-RUN apt-get install -y maven unzip
-
-# Install python and pip
-RUN apt-get install -y python
-RUN wget https://bootstrap.pypa.io/get-pip.py
-RUN python get-pip.py
-RUN rm get-pip.py
-RUN pip install pyyaml
-
-# Install Groovy
-RUN mkdir -p /opt/app
-RUN (cd /opt/app ; curl -Lo apache-groovy-binary-2.4.6.zip https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip )
-RUN (cd /opt/app ; unzip apache-groovy-binary-2.4.6.zip )
-RUN mkdir -p /opt/app/java/jdk
-RUN ln -s /usr /opt/app/java/jdk/jdk170
-RUN mkdir -p /opt/app/groovy
-RUN ln -s /opt/app/groovy-2.4.6 /opt/app/groovy/246
-ENV JAVA_HOME /opt/app/java/jdk/jdk170
-
-# Create user dcae
-RUN if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-# Hadoop
-EXPOSE 8020 8025 50070 50075 50010 50020
-
-# Zookeeper
-EXPOSE 3888 2888 2181
-
-VOLUME /opt/tools
-VOLUME /opt/data
-
-# Provisioning
-COPY 00-provisioning.sh /usr/local/bin/00-provisioning.sh
-RUN chmod a+x /usr/local/bin/00-provisioning.sh
-RUN /usr/local/bin/00-provisioning.sh
-
-# define the entrypoint
-COPY 01-entrypoint.sh /usr/local/bin/01-entrypoint.sh
-RUN chmod a+x /usr/local/bin/01-entrypoint.sh
-ENTRYPOINT ["/usr/local/bin/01-entrypoint.sh"]
diff --git a/kubernetes/dcae/cdap/docker/docker-compose.yaml b/kubernetes/dcae/cdap/docker/docker-compose.yaml
deleted file mode 100644 (file)
index 100cef4..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# 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.
-
-version: '2'
-services:
-  cdap00:
-    build: .
-    hostname: zldcprivatecloudtruecdap00
-    image: cdap
-    ports:
-      - 8020
-      - 50070
-      - 50075
-      - 50010
-      - 50020
-      - 3888
-      - 2888
-      - 2181
-      - 8025
-  cdap01:
-    build: .
-    hostname: zldcprivatecloudtruecdap01
-    image: cdap
-    ports:
-      - 8020
-      - 50070
-      - 50075
-      - 50010
-      - 50020
-      - 3888
-      - 2888
-      - 2181
-      - 8025
-  cdap02:
-    build: .
-    hostname: zldcprivatecloudtruecdap02
-    image: cdap
-    ports:
-      - 8020
-      - 50070
-      - 50075
-      - 50010
-      - 50020
-      - 3888
-      - 2888
-      - 2181
-      - 8025
\ No newline at end of file
diff --git a/kubernetes/dcae/cdap/docker/fs/Dockerfile b/kubernetes/dcae/cdap/docker/fs/Dockerfile
deleted file mode 100644 (file)
index 4e458dc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM ubuntu:16.04
-
-RUN mkdir -p /cdap
-VOLUME /cdap
\ No newline at end of file
diff --git a/kubernetes/dcae/pgaas/Dockerfile b/kubernetes/dcae/pgaas/Dockerfile
deleted file mode 100755 (executable)
index e1d147d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-FROM ubuntu:16.04
-
-# Install additional packages
-RUN apt-get update && apt-get -y install maven openjdk-8-jdk unzip python-pip curl dnsutils vim gawk wget openssh-client-ssh1
-RUN pip install pyyaml
-
-RUN apt-get update && apt-get install -y postgresql libpq5 repmgr python-psycopg2 python3-psycopg2 libgetopt-java
-RUN rm -f /usr/sbin/policy-rc.d
-
-# Install Groovy
-RUN mkdir -p /opt/app
-RUN (cd /opt/app ; curl -Lo apache-groovy-binary-2.4.6.zip https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip )
-RUN (cd /opt/app ; unzip apache-groovy-binary-2.4.6.zip )
-RUN mkdir -p /opt/app/java/jdk
-RUN ln -s /usr /opt/app/java/jdk/jdk170
-RUN mkdir -p /opt/app/groovy
-RUN ln -s /opt/app/groovy-2.4.6 /opt/app/groovy/246
-
-# Create user dcae
-RUN if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-# Download required packages
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb
-
-RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
-
-RUN mkdir -p /opt/tools
-RUN mkdir -p /dbroot/pgdata
-RUN mkdir -p /dbroot/pglogs
-
-EXPOSE 5432
-
-VOLUME /opt/tools
-VOLUME /dbroot/pgdata
-VOLUME /dbroot/pglogs
-
-# Setup the entrypoint
-COPY setup.sh /usr/local/bin/entrypoint.sh
-RUN chmod a+x /usr/local/bin/entrypoint.sh
-
-ENTRYPOINT ["usr/local/bin/entrypoint.sh"]
diff --git a/kubernetes/dcae/pgaas/setup.sh b/kubernetes/dcae/pgaas/setup.sh
deleted file mode 100755 (executable)
index a843995..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-#!/bin/bash
-cat > /tmp/dcae_install.sh << EOF_DCAE_INSTALL
-#!/bin/bash
-set -x
-cd /tmp
-
-export DEBIAN_FRONTEND=noninteractive
-
-#### Using special configuration resource: instances/vm-postgresql/iad4.yaml
-## Adding configuration file: main
-cat | cat > /tmp/postgres.conf << EOF_CONFIG
-master:  zldciad4vipstg00
-secondmaster: notused
-DRTR_NODE_KSTOREFILE: /opt/app/dcae-certificate/keystore.jks
-DRTR_NODE_KSTOREPASS: "No Certificate"
-DRTR_NODE_PVTKEYPASS: "No Certificate"
-PG_NODES : zldciad4vipstg00
-PG_JAVA_HOME : /opt/app/java/jdk/jdk170
-PG_CLUSTER : site
-EOF_CONFIG
-
-## Adding configuration file: mount_config
-cat | cat > /tmp/dcae-mount.conf << EOF_CONFIG
-osType: ubuntu
-volumes:
-  opt:
-    uuid: ephemeral
-    size: 80
-    filesystems:
-      /opt/tools:
-        size: 80
-        type: ext4
-        mount_opts: ''
-  dbroot:
-    uuid: cinder
-    size: 75
-    filesystems:
-      /dbroot/pgdata:
-        size: 50
-        type: ext4
-        mount_opts: ''
-      /dbroot/pglogs:
-        size: 25
-        type: ext4
-        mount_opts: ''
-
-EOF_CONFIG
-
-## Adding configuration file: ecomp-nexus
-cat > /tmp/ecomp-nexus.crt << EOF_CONFIG
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIEet16RjANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJVUzEUMBIGA1UE
-CBMLVW5zcGVjaWZpZWQxFDASBgNVBAcTC1Vuc3BlY2lmaWVkMREwDwYDVQQKEwhTb25hdHlwZTEQ
-MA4GA1UECxMHRXhhbXBsZTEWMBQGA1UEAwwNKi5lY29tcC1uZXh1czAeFw0xNjExMTQxMDE5NDJa
-Fw0zMDA3MjQxMDE5NDJaMHYxCzAJBgNVBAYTAlVTMRQwEgYDVQQIEwtVbnNwZWNpZmllZDEUMBIG
-A1UEBxMLVW5zcGVjaWZpZWQxETAPBgNVBAoTCFNvbmF0eXBlMRAwDgYDVQQLEwdFeGFtcGxlMRYw
-FAYDVQQDDA0qLmVjb21wLW5leHVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqkDu
-vC91cZxOaRMYGHSyDeuw4hyXjqyD5Etl5L5TNN7+uFKEtvXsRYOxtD62TqWHKozffLE5o6zoRZL4
-8qNTQyAx0LaEfWfR2w0jat+UqtqEtW0xpOD0/O0qRq5Y/XG3Yr8SQ/y84Pr1FIflM7pM4PZTt3kc
-UfqzbaONW5K8t+UG+5jgNXdRk3hln8WMunVZeci0J6TV+tWs9tOeAKBdpI7K7LV+FJBaF8vBAw2x
-8AhlNPXKQUhK+M3DD73c1aLWrZ3mIwJXt2oQUDwgtXGCPR1/Z9f2tTAoDxpzvkwtP/BtH3qvgtpY
-QfDNmWbJVHh6ll39Hapt7V0v4aCRSN21ZQIDAQABo00wSzAMBgNVHRMEBTADAQH/MBwGA1UdEQQV
-MBOCC2Vjb21wLW5leHVzhwQK0MVLMB0GA1UdDgQWBBQxcUlk/lkKkwSz0GuewbXptJxl+zANBgkq
-hkiG9w0BAQsFAAOCAQEAPnNbtdreMZaUSjv+1eqpriLKquwnZhnwWENn1u3sw4hTAWQc+ehhogGg
-eIqPN81Dt3jhr0bYZW+r3gGq7tgrLxdSXso8bTtqHsFLszirgWcQXDlBQGnw9wqp/KBzeDJInJep
-d6aGu3yBXV6459S/mClxZTSvsR+Vz3rRWxx01R3/ft5/myqrRMDnEncqPopTbEamBuUJL3eJDpFO
-xlVqYR3y6AXwwguMaTiHMfFBmDOVaz4K8Qy6AaHH9eoch9fxOJ/7ASvqSwkC9GYTJSnF2vE37rmH
-kPp//Vm4WSnQ2NrBGkH9rUUdYdDdgWJYnTeZ+YFd8J6z9xNiEn9QKQNNcA==
------END CERTIFICATE-----
-
-EOF_CONFIG
-## Adding configuration file: vm-postgresql-console.properties
-cat > /tmp/vm-postgresql-console.properties << EOF_CONFIG
-localhost.endpoint=http://localhost:9999
-localhost.user=console
-localhost.password=MDBmMzE0NTgyMDU1NmVj
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-gui.properties
-cat > /tmp/vm-postgresql-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-log4j.properties
-cat > /tmp/vm-postgresql-log4j.properties << EOF_CONFIG
-#log4j.debug=0
-log4j.rootLogger=warn, file
-log4j.logger.org.openecomp.ncomp=info, file
-log4j.additivity.org.openecomp.ncomp=false
-
-#log4j.logger.org.apache.http.headers=debug, file
-#log4j.logger.org.apache.http.wire=debug, file
-## uploaded logger
-log4j.logger.org.openecomp.ncomp.sirius.manager.uploaded=info, uploaded
-log4j.additivity.org.openecomp.ncomp.sirius.manager.uploaded=false
-## request logging
-log4j.logger.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=info, requests
-log4j.additivity.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=false
-## openstack polling
-log4j.logger.org.openecomp.ncomp.openstack.OpenStackUtil.polling=info, polling
-log4j.additivity.org.openecomp.ncomp.openstack.OpenStackUtil.polling=false
-log4j.appender.file=org.apache.log4j.RollingFileAppender
-log4j.appender.file.File=logs/manager.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.file.MaxFileSize=50MB
-log4j.appender.file.MaxBackupIndex=5
-
-log4j.appender.uploaded=org.apache.log4j.RollingFileAppender
-log4j.appender.uploaded.File=logs/manager-uploaded.log
-log4j.appender.uploaded.layout=org.apache.log4j.PatternLayout
-log4j.appender.uploaded.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.uploaded.MaxFileSize=50MB
-log4j.appender.uploaded.MaxBackupIndex=5
-
-log4j.appender.requests=org.apache.log4j.RollingFileAppender
-log4j.appender.requests.File=logs/manager-requests.log
-log4j.appender.requests.layout=org.apache.log4j.PatternLayout
-log4j.appender.requests.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.requests.MaxFileSize=50MB
-log4j.appender.requests.MaxBackupIndex=5
-log4j.appender.polling=org.apache.log4j.RollingFileAppender
-log4j.appender.polling.File=logs/manager-polling.log
-log4j.appender.polling.layout=org.apache.log4j.PatternLayout
-log4j.appender.polling.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.polling.MaxFileSize=50MB
-log4j.appender.polling.MaxBackupIndex=5
-
-### ECOMP Logging
-log4j.logger.org.openecomp.audit=info, audit
-log4j.additivity.org.openecomp.audit=false
-log4j.logger.org.openecomp.metrics=info, metrics
-log4j.additivity.org.openecomp.metrics=false
-log4j.logger.org.openecomp.error=info, error
-log4j.additivity.org.openecomp.error=false
-log4j.logger.com.att.eelf.debug=info, debug
-log4j.additivity.org.openecomp.debug=false
-log4j.appender.audit=org.apache.log4j.RollingFileAppender
-log4j.appender.audit.File=logs/audit.log
-log4j.appender.audit.layout=org.apache.log4j.PatternLayout
-log4j.appender.audit.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%5p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.audit.MaxFileSize=50MB
-log4j.appender.audit.MaxBackupIndex=5
-log4j.appender.metrics=org.apache.log4j.RollingFileAppender
-log4j.appender.metrics.File=logs/metrics.log
-log4j.appender.metrics.layout=org.apache.log4j.PatternLayout
-log4j.appender.metrics.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.metrics.MaxFileSize=50MB
-log4j.appender.metrics.MaxBackupIndex=5
-log4j.appender.error=org.apache.log4j.RollingFileAppender
-log4j.appender.error.File=logs/error.log
-log4j.appender.error.layout=org.apache.log4j.PatternLayout
-log4j.appender.error.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.error.MaxFileSize=50MB
-log4j.appender.error.MaxBackupIndex=5
-log4j.appender.debug=org.apache.log4j.RollingFileAppender
-log4j.appender.debug.File=logs/debug.log
-log4j.appender.debug.layout=org.apache.log4j.PatternLayout
-log4j.appender.debug.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.debug.MaxFileSize=50MB
-log4j.appender.debug.MaxBackupIndex=5
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-manager.properties
-cat > /tmp/vm-postgresql-manager.properties << EOF_CONFIG
-server.dir = data/resources
-metrics.dir = data/metrics
-properties.dir = data/properties
-server.port = 9999
-server.user.console = MDBmMzE0NTgyMDU1NmVj
-server.user.gui = M2NiOTg1YzNiYTI2NTJh
-server.user.client = OTNmMmFkYzkxMzYzNTk0
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-runtime.properties
-cat > /tmp/vm-postgresql-runtime.properties << EOF_CONFIG
-factory.vm=org.openecomp.dcae.controller.service.servers.vm.DcaeVmFactory
-factory.postgres=org.openecomp.dcae.controller.service.storage.postgres.service.impl.ServicePackageImpl
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-hosts
-cat > /tmp/vm-postgresql-hosts << EOF_CONFIG
-EOF_CONFIG
-
-## Adding configuration file: monitoring-agent-gui.properties
-cat > /tmp/monitoring-agent-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-cat >> /etc/hosts << HOSTS_EOF
-HOSTS_EOF
-
-cat > /tmp/certificate.pkcs12.b64code << EOF_CERT
-EOF_CERT
-
-##############################################################
-##################### CLOUDINIT ##############################
-##############################################################
-
-## need to fix cloudinit in Centos.
-
-CLOUDHOSTCFG=/etc/cloud/cloud.cfg.d/99_hostname.cfg
-if [ -f /etc/redhat-release ]; then
-   # CentOS/RHEL
-   ( echo "hostname: \$(hostname)"; echo "fqdn: \$(hostname -f)" ) > \$CLOUDHOSTCFG
-fi
-
-mkdir -p ~/.ssh
-touch ~/.ssh/authorized_keys
-
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYz++VKcW3Sw0Sh7fFyTIjXED6NUUNYbje7awcnvaHHAC0rUxs7boX6hmWDViXoGZA5xw4Xhk5kIEs+zxMCDlF1q/9rbyq5ndonlBz3aPx7+SBqVR5sPalbSr8dJhGPwpj/0Df+FzqjGVL2p2d4VV7SeT/kKrNcSY6SmYHln6osoGFAHsOZC0d+fiba4zfCI9EI6zHdyCujwayjQ5W5UgA50XQ0KXpI5WtF6MOwO6jPL3SNNDlWobG/nsCAMxTQ04dALpYSoamM12Ps72MfxEwaKkoAcsH6WsFbuvoUSXwNcosmyxYrxNynsUz4C2Tz+PZqelGvm8Y8MtNuhN7oqAD root@ecomp-jumpbox >> /home/ubuntu/.ssh/authorized_keys
-
-######### step-1
-
-cp /tmp/ecomp-nexus.crt /usr/local/share/ca-certificates/ ; update-ca-certificates
-
-######### step-2
-
-echo 162.242.254.138 ecomp-nexus >> /etc/hosts
-
-######### step-3
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-case runtime in
-  %*)
-    A1=org.openecomp.dcae.controller:dcae-controller-core-utils:1.0.0:zip
-    ;;
-  *)
-    A1=org.openecomp.dcae.controller:dcae-controller-core-utils:1.0.0:zip:runtime
-    ;;
-esac
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-core-utils/1.0.0/dcae-controller-core-utils-1.0.0-runtime.zip -P /opt/app/dcae-controller-core-utils
-
-case zip in
-  jar)
-    mkdir /opt/app/dcae-controller-core-utils/lib
-    mv /opt/app/dcae-controller-core-utils/*.jar /opt/app/dcae-controller-core-utils/lib
-    ;;
-  zip)
-    ( cd /opt/app/dcae-controller-core-utils ; unzip -o dcae-controller-core-utils*.zip )
-    ;;
-esac
-
-chown -R dcae:dcae /opt/app/dcae-controller-core-utils
-
-######### step-4
-
-/opt/app/dcae-controller-core-utils/bin/fs-init.py
-
-######### step-5
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-case runtime in
-  %*)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-common-vm-manager:1.0.0:zip
-    ;;
-  *)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-common-vm-manager:1.0.0:zip:runtime
-    ;;
-esac
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-common-vm-manager/1.0.0/dcae-controller-service-common-vm-manager-1.0.0-runtime.zip -P /opt/app/dcae-controller-service-common-vm-manager
-
-case zip in
-  jar)
-    mkdir /opt/app/dcae-controller-service-common-vm-manager/lib
-    mv /opt/app/dcae-controller-service-common-vm-manager/*.jar /opt/app/dcae-controller-service-common-vm-manager/lib
-    ;;
-  zip)
-    ( cd /opt/app/dcae-controller-service-common-vm-manager ; unzip -o dcae-controller-service-common-vm-manager*.zip )
-    ;;
-esac
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-common-vm-manager
-
-######### step-6
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-case %{assemblyId} in
-  %*)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-storage-postgres-model:1.0.0:jar
-    ;;
-  *)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-storage-postgres-model:1.0.0:jar:%{assemblyId}
-    ;;
-esac
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-storage-postgres-model/1.0.0/dcae-controller-service-storage-postgres-model-1.0.0.jar -P /opt/app/dcae-controller-service-storage-postgres-model
-
-case jar in
-  jar)
-    mkdir /opt/app/dcae-controller-service-storage-postgres-model/lib
-    mv /opt/app/dcae-controller-service-storage-postgres-model/*.jar /opt/app/dcae-controller-service-storage-postgres-model/lib
-    ;;
-  zip)
-    ( cd /opt/app/dcae-controller-service-storage-postgres-model ; unzip -o dcae-controller-service-storage-postgres-model*.zip )
-    ;;
-esac
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-storage-postgres-model
-
-######### step-7
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-8
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-9
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-10
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-touch /etc/sudoers.d/dcae-postgres
-echo "dcae ALL=(postgres) NOPASSWD: ALL" > /etc/sudoers.d/dcae-postgres
-
-/opt/app/postgresql-prep/bin/iDNS-responder.py &
-
-/etc/init.d/cron restart
-
-######### step-11
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb`
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-12
-
-find /opt -type f -exec sed -i 's/sudo//g' {} \;
-su dcae -c "/opt/app/dcae-controller-service-common-vm-manager/bin/manager.sh config"
-su dcae -c "/opt/app/dcae-controller-service-common-vm-manager/bin/manager.sh restart"
-
-mkdir /home/dcae/.ssh
-chmod og-rwx /home/dcae/.ssh
-chown -R dcae:dcae /home/dcae/.ssh
-touch /home/dcae/.ssh/authorized_keys
-chmod og-rwx /home/dcae/.ssh/authorized_keys
-chown -R dcae:dcae /home/dcae/.ssh/authorized_keys
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYz++VKcW3Sw0Sh7fFyTIjXED6NUUNYbje7awcnvaHHAC0rUxs7boX6hmWDViXoGZA5xw4Xhk5kIEs+zxMCDlF1q/9rbyq5ndonlBz3aPx7+SBqVR5sPalbSr8dJhGPwpj/0Df+FzqjGVL2p2d4VV7SeT/kKrNcSY6SmYHln6osoGFAHsOZC0d+fiba4zfCI9EI6zHdyCujwayjQ5W5UgA50XQ0KXpI5WtF6MOwO6jPL3SNNDlWobG/nsCAMxTQ04dALpYSoamM12Ps72MfxEwaKkoAcsH6WsFbuvoUSXwNcosmyxYrxNynsUz4C2Tz+PZqelGvm8Y8MtNuhN7oqAD root@ecomp-jumpbox >> /home/dcae/.ssh/authorized_keys
-#no final script: vm-postgresql.userdata
-EOF_DCAE_INSTALL
-echo null > /tmp/.password
-chmod u+x /tmp/dcae_install.sh
-/tmp/dcae_install.sh 2>&1 | tee /tmp/dcae_install.log
diff --git a/kubernetes/dcae/templates/all-services.yaml b/kubernetes/dcae/templates/all-services.yaml
deleted file mode 100644 (file)
index 998f97d..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeZookeeper }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: zookeeper
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: zookeeper
-spec:
-  ports:
-  - name: zookeeper1
-    port: 2181
-  selector:
-    app: zookeeper
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableDcaeKafka }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: kafka
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: kafka
-spec:
-  ports:
-  - name: kafka1
-    port: 9092
-  selector:
-    app: kafka
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableDcaeDmaap }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: dmaap
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: dmaap
-    version: 1.1.0
-spec:
-  ports:
-  - name: mr1
-    port: 3904
-    #nodePort: {{ .Values.nodePortPrefix }}27
-  - name: mr2
-    port: 3905
-    #nodePort: {{ .Values.nodePortPrefix }}26
-  selector:
-    app: dmaap
-  #type: NodePort
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableDcaeDcaePgaas }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: zldciad4vipstg00
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: dcae-pgaas
-spec:
-  selector:
-    app: dcae-pgaas
-  ports:
-    - port: 5432
-      protocol: TCP
-      targetPort: 5432
-      nodePort: {{ .Values.nodePortPrefix }}45
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableDcaeDcaeCollectorCommonEvent }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: dcae-collector-common-event
-    version: latest
-  name: dcae-collector-common-event
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: dcae-ce1
-    port: 8080
-    protocol: TCP
-    nodePort: {{ .Values.nodePortPrefix }}36
-  - name: dcae-ce2
-    port: 8443
-    protocol: TCP
-    nodePort: {{ .Values.nodePortPrefix }}37
-  - name: dcae-ce3
-    port: 9999
-    protocol: TCP
-    nodePort: {{ .Values.nodePortPrefix }}38
-  selector:
-    app: dcae-collector-common-event
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableDcaeDcaeCollectorDmaapbc }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: dcae-collector-dmaapbc
-    version: latest
-  name: dcae-collector-dmaapbc
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: dcae-bc1
-    port: 8080
-    protocol: TCP
-    targetPort: 8080
-    nodePort: {{ .Values.nodePortPrefix }}39
-  - name: dcae-bc2
-    port: 8443
-    protocol: TCP
-    targetPort: 8443
-    nodePort: {{ .Values.nodePortPrefix }}40
-  selector:
-    app: dcae-collector-dmaapbc
-  type: NodePort
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/dcae/templates/cdap0-dep.yaml b/kubernetes/dcae/templates/cdap0-dep.yaml
deleted file mode 100644 (file)
index 5b0e465..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeCdap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: cdap0
-  name: cdap0
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: cdap0
-  strategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        app: cdap0
-      name: cdap0
-    spec:
-      initContainers:
-      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap0-opt-tools,cdap0-opt-data,pod-ip}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
-        name: create-fs
-        image: {{ .Values.image.cdapfs }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-      hostname: zldcprivatecloudtruecdap00
-      containers:
-      - image: {{ .Values.image.cdap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
-        name: cdap0
-        ports:
-        - containerPort: 8020
-          protocol: TCP
-        - containerPort: 8025
-          protocol: TCP
-        - containerPort: 50070
-          protocol: TCP
-        - containerPort: 50075
-          protocol: TCP
-        - containerPort: 50010
-          protocol: TCP
-        - containerPort: 50020
-          protocol: TCP
-        - containerPort: 3888
-          protocol: TCP
-        - containerPort: 2888
-          protocol: TCP
-        - containerPort: 2181
-          protocol: TCP
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-        - mountPath: /opt/tools
-          name: dcae-cdap0-opt-tools
-        - mountPath: /opt/data
-          name: dcae-cdap0-opt-data
-      volumes:
-      - name: cdap-root
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
-      - name: dcae-cdap0-opt-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-tools
-      - name: dcae-cdap0-opt-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-data
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/cdap1-dep.yaml b/kubernetes/dcae/templates/cdap1-dep.yaml
deleted file mode 100644 (file)
index 1a954c8..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeCdap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: cdap1
-  name: cdap1
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: cdap1
-  strategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        app: cdap1
-      name: cdap1
-    spec:
-      initContainers:
-      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap1-opt-tools,cdap1-opt-data}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
-        name: create-fs
-        image: {{ .Values.image.cdapfs }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-      hostname: zldcprivatecloudtruecdap01
-      containers:
-      - image: {{ .Values.image.cdap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
-        name: cdap1
-        ports:
-        - containerPort: 8020
-          protocol: TCP
-        - containerPort: 8025
-          protocol: TCP
-        - containerPort: 50070
-          protocol: TCP
-        - containerPort: 50075
-          protocol: TCP
-        - containerPort: 50010
-          protocol: TCP
-        - containerPort: 50020
-          protocol: TCP
-        - containerPort: 3888
-          protocol: TCP
-        - containerPort: 2888
-          protocol: TCP
-        - containerPort: 2181
-          protocol: TCP
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-        - mountPath: /opt/tools
-          name: dcae-cdap1-opt-tools
-        - mountPath: /opt/data
-          name: dcae-cdap1-opt-data
-      volumes:
-      - name: cdap-root
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
-      - name: dcae-cdap1-opt-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap1-opt-tools
-      - name: dcae-cdap1-opt-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap1-opt-data
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/cdap2-dep.yaml b/kubernetes/dcae/templates/cdap2-dep.yaml
deleted file mode 100644 (file)
index fac825e..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeCdap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: cdap2
-  name: cdap2
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: cdap2
-  strategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        app: cdap2
-      name: cdap2
-    spec:
-      initContainers:
-      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap2-opt-tools,cdap2-opt-data}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
-        name: create-fs
-        image: {{ .Values.image.cdapfs }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-      hostname: zldcprivatecloudtruecdap02
-      containers:
-      - image: {{ .Values.image.cdap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
-        name: cdap2
-        ports:
-        - containerPort: 8020
-          protocol: TCP
-        - containerPort: 8025
-          protocol: TCP
-        - containerPort: 50070
-          protocol: TCP
-        - containerPort: 50075
-          protocol: TCP
-        - containerPort: 50010
-          protocol: TCP
-        - containerPort: 50020
-          protocol: TCP
-        - containerPort: 3888
-          protocol: TCP
-        - containerPort: 2888
-          protocol: TCP
-        - containerPort: 2181
-          protocol: TCP
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-        - mountPath: /opt/tools
-          name: dcae-cdap2-opt-tools
-        - mountPath: /opt/data
-          name: dcae-cdap2-opt-data
-      volumes:
-      - name: cdap-root
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
-      - name: dcae-cdap2-opt-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap2-opt-tools
-      - name: dcae-cdap2-opt-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap2-opt-data
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-collector-common-event.yaml b/kubernetes/dcae/templates/dcae-collector-common-event.yaml
deleted file mode 100644 (file)
index b15d34b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeDcaeCollectorCommonEvent }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dcae-collector-common-event
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dcae-collector-common-event
-  template:
-    metadata:
-      labels:
-        app: dcae-collector-common-event
-      name: dcae-collector-common-event
-    spec:
-      containers:
-      - image: {{ .Values.image.commonevent }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dcae-collector-common-event
-        ports:
-          - containerPort: 8080
-          - containerPort: 8443
-          - containerPort: 9999
-        env:
-#        - name: KAFKA_ZOOKEEPER_CONNECT
-#          value: "zookeeper:2181"
-#        command:
-#        - start-kafka.sh
-        volumeMounts:
-        - mountPath: /opt/app/manager/config
-          name: dcae-collector-common-event-config
-      restartPolicy: Always
-      volumes:
-      - name: dcae-collector-common-event-config
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/common-event/config
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
deleted file mode 100644 (file)
index 35e913e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeDcaeCollectorDmaapbc }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dcae-collector-dmaapbc
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dcae-collector-dmaapbc
-  template:
-    metadata:
-      labels:
-        app: dcae-collector-dmaapbc
-      name: dcae-collector-dmaapbc
-    spec:
-      containers:
-      - image: {{ .Values.image.dmaapbc }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dcae-collector-dmaapbc
-        ports:
-          - containerPort: 18080
-          - containerPort: 18443
-        env:
-#        - name: KAFKA_ZOOKEEPER_CONNECT
-#          value: "zookeeper:2181"
-#        command:
-#        - start-kafka.sh
-        volumeMounts:
-        - mountPath: /opt/app/config
-          name: dcae-collector-dmaapbc-config
-      restartPolicy: Always
-      volumes:
-      - name: dcae-collector-dmaapbc-config
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dmaapbc/config
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-controller.yaml b/kubernetes/dcae/templates/dcae-controller.yaml
deleted file mode 100644 (file)
index b7a0e13..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeDcaeController }}
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: dcae-controller
-    version: latest
-  name: dcae-controller
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: dcae-con1
-    port: 8000
-    protocol: TCP
-    targetPort: 8000
-    nodePort: {{ .Values.nodePortPrefix }}34
-  - name: dcae-con2
-    port: 9998
-    protocol: TCP
-    targetPort: 9998
-    nodePort: {{ .Values.nodePortPrefix }}35
-  selector:
-    app: dcae-controller
-  type: NodePort
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dcae-controller
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dcae-controller
-  template:
-    metadata:
-      labels:
-        app: dcae-controller
-      name: dcae-controller
-    spec:
-      containers:
-      - image: {{ .Values.image.controller }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dcae-controller
-        ports:
-          - containerPort: 8000
-          - containerPort: 9998
-        env:
-#        - name: KAFKA_ZOOKEEPER_CONNECT
-#          value: "zookeeper:2181"
-#        command:
-#        - start-kafka.sh
-        volumeMounts:
-        - mountPath: /opt/app/config
-          name: dcae-controller-config
-      restartPolicy: Always
-      volumes:
-      - name: dcae-controller-config
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dcae-controller/config
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-dmaap.yaml b/kubernetes/dcae/templates/dcae-dmaap.yaml
deleted file mode 100644 (file)
index 560da5f..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeDmaap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dmaap
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dmaap
-  template:
-    metadata:
-      labels:
-        app: dmaap
-      name: dmaap
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - kafka
-        - --container-name
-        - zookeeper
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dmaap-readiness
-      containers:
-      - image: {{ .Values.image.dmaap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dmaap
-        ports:
-        - containerPort: 3904
-        - containerPort: 3905
-        readinessProbe:
-          tcpSocket:
-            port: 3904
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        volumeMounts:
-        - mountPath: /appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
-          name: appprops
-        - mountPath: /appl/dmaapMR1/etc/cadi.properties
-          name: cadi
-        - mountPath: /appl/dmaapMR1/etc/keyfile
-          name: mykey
-      restartPolicy: Always
-      volumes:
-      - name: appprops
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/MsgRtrApi.properties
-      - name: cadi
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/cadi.properties
-      - name: mykey
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/mykey
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-kafka.yaml b/kubernetes/dcae/templates/dcae-kafka.yaml
deleted file mode 100644 (file)
index 52d0503..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeKafka }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: kafka
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: kafka
-  template:
-    metadata:
-      labels:
-        app: kafka
-      name: kafka
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - zookeeper
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kafka-readiness
-      containers:
-      - image: {{ .Values.image.kafka }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kafka
-        ports:
-        - containerPort: 9092
-        readinessProbe:
-          tcpSocket:
-            port: 9092
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        env:
-        - name: KAFKA_ZOOKEEPER_CONNECT
-          value: "zookeeper.{{ .Values.nsPrefix }}"
-        - name: KAFKA_ADVERTISED_HOST_NAME
-          value: "kafka"
-        - name: KAFKA_BROKER_ID
-          value: "1"
-        - name: KAFKA_ADVERTISED_PORT
-          value: "9092"
-        - name: KAFKA_PORT
-          value: "9092"
-        volumeMounts:
-        - mountPath: /var/run/docker.sock
-          name: docker-socket
-        - mountPath: /kafka
-          name: kafka-data
-        - mountPath: /start-kafka.sh
-          name: start-kafka
-      restartPolicy: Always
-      volumes:
-      - name: docker-socket
-        hostPath:
-          path: /var/run/docker.sock
-      - name: kafka-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/
-      - name: start-kafka
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/start-kafka.sh
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-zookeeper.yaml b/kubernetes/dcae/templates/dcae-zookeeper.yaml
deleted file mode 100644 (file)
index 7203cb9..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeZookeeper }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: zookeeper
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: zookeeper
-  template:
-    metadata:
-      labels:
-        app: zookeeper
-      name: zookeeper
-    spec:
-      containers:
-      - image: {{ .Values.image.zookeeper }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: zookeeper
-        ports:
-        - containerPort: 2181
-        volumeMounts:
-        - mountPath: /opt/zookeeper-3.4.9/data
-          name: zookeeper-data
-      restartPolicy: Always
-      volumes:
-      - name: zookeeper-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/pgaas.yaml b/kubernetes/dcae/templates/pgaas.yaml
deleted file mode 100644 (file)
index 61aa93d..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableDcaeDcaePgaas }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: dcae-pgaas
-  name: dcae-pgaas
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: dcae-pgaas
-  template:
-    metadata:
-      labels:
-        app: dcae-pgaas
-    spec:
-      hostname: zldciad4vipstg00
-      containers:
-      - image: {{ .Values.image.pgaas }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "/usr/local/bin/entrypoint.sh; sleep infinity;"]
-        name: dcae-pgaas
-        ports:
-        - containerPort: 5432
-        volumeMounts:
-        - mountPath: /dbroot/pgdata
-          name: dcae-pgaas-pgdata
-        - mountPath: /dbroot/pglogs
-          name: dcae-pgaas-pglogs
-        - mountPath: /opt/tools
-          name: dcae-pgaas-tools
-      volumes:
-      - name: dcae-pgaas-pgdata
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/pgdata
-      - name: dcae-pgaas-pglogs
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/pglogs
-      - name: dcae-pgaas-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/tools
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
index 16c7943..49197d3 100644 (file)
@@ -22,7 +22,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 5253d9a..82aa334 100644 (file)
@@ -26,3 +26,8 @@ esrgui:
   replicas: 1
 filebeat:
   image: docker.elastic.co/beats/filebeat:5.5.0
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
diff --git a/kubernetes/log/.helmignore b/kubernetes/log/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index 9612413..9b902e8 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP Logging ElasticStack
 name: log
-version: 0.1.0
+version: 2.0.0
similarity index 52%
rename from kubernetes/dcae/values.yaml
rename to kubernetes/log/charts/log-elasticsearch/Chart.yaml
index a65835b..5d233b4 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-nsPrefix: onap
-pullPolicy: Always
-nodePortPrefix: 302
-image:
-  readiness: oomk8s/readiness-check:1.1.0
-  pgaas: oomk8s/pgaas:1
-  cdapfs: oomk8s/cdap-fs:1.0.0
-  cdap: oomk8s/cdap:1.0.7
-  dmaap: attos/dmaap:latest
-  kafka: wurstmeister/kafka:latest
-  zookeeper: wurstmeister/zookeeper:latest
-  dmaapbc: nexus3.onap.org:10001/openecomp/dcae-dmaapbc:1.1-STAGING-latest
-  commonevent: nexus3.onap.org:10001/openecomp/dcae-collector-common-event:1.1-STAGING-latest
-  controller: nexus3.onap.org:10001/openecomp/dcae-controller:1.1-STAGING-latest
+apiVersion: v1
+description: ONAP Logging Elasticsearch
+name: log-elasticsearch
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-elasticsearch/requirements.yaml b/kubernetes/log/charts/log-elasticsearch/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# 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.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -111,12 +111,12 @@ discovery.zen.minimum_master_nodes: 1
 #action.destructive_requires_name: true
 # Set a custom port for HTTP: If required, default is 9200-9300
 # This is used for REST APIs
-http.port: 9200
+http.port: {{.Values.service.externalPort}}
 # Port to bind for communication between nodes. Accepts a single value or a range.
 # If a range is specified, the node will bind to the first available port in the range.
 # Defaults to 9300-9400.
 # More info:
-transport.tcp.port: 9300
+transport.tcp.port: {{.Values.service.externalPortTcp}}
 
 xpack.graph.enabled: false
 #Set to false to disable X-Pack graph features.
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/NOTES.txt b/kubernetes/log/charts/log-elasticsearch/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..0878f5c
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/configmap.yaml b/kubernetes/log/charts/log-elasticsearch/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..4ccc7cc
--- /dev/null
@@ -0,0 +1,21 @@
+# 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" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml b/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..13caa7e
--- /dev/null
@@ -0,0 +1,117 @@
+# 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:
+      initContainers:
+      - command:
+        - /bin/sh
+        - -c
+        - |
+          sysctl -w vm.max_map_count=262144
+          mkdir -p /logroot/elasticsearch/logs
+          mkdir -p /logroot/elasticsearch/data
+          chmod -R 777 /logroot/elasticsearch
+          chown -R root:root /logroot
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        securityContext:
+          privileged: true
+        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: init-sysctl
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /logroot/
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ .Values.global.loggingRepository | default .Values.loggingRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortTcp }}
+            name: {{ .Values.service.name }}-tcp
+# disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end -}}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPortTcp }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
+            name: {{ include "common.fullname" . }}-config
+            subPath: elasticsearch.yml
+          - mountPath: /usr/share/elasticsearch/data/
+            name: {{ include "common.fullname" . }}-data
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}-configmap
+            items:
+            - key: elasticsearch.yml
+              path: elasticsearch.yml
+        - name: {{ include "common.fullname" . }}-data
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+        - name: {{ include "common.fullname" . }}-logs
+          hostPath:
+            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPathLogs }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml b/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml
new file mode 100644 (file)
index 0000000..dba12d4
--- /dev/null
@@ -0,0 +1,21 @@
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+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 }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml b/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..c046f46
--- /dev/null
@@ -0,0 +1,25 @@
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+{{- end -}}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/service.yaml b/kubernetes/log/charts/log-elasticsearch/templates/service.yaml
new file mode 100644 (file)
index 0000000..72dfc7e
--- /dev/null
@@ -0,0 +1,46 @@
+# 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.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.internalPortTcp }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPortTcp }}
+      name: {{ .Values.service.name }}-tcp
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortTcp }}
+      targetPort: {{ .Values.service.internalPortTcp }}
+      name: {{ .Values.service.name }}-tcp
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/log/charts/log-elasticsearch/values.yaml b/kubernetes/log/charts/log-elasticsearch/values.yaml
new file mode 100644 (file)
index 0000000..2e6e085
--- /dev/null
@@ -0,0 +1,114 @@
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# BusyBox image
+busyboxRepository: registry.hub.docker.com
+busyboxImage: library/busybox:latest
+
+# application image
+loggingRepository: docker.elastic.co
+image: elasticsearch/elasticsearch:5.5.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+config: {}
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+
+  ## A manually managed Persistent Volume and Claim
+  ## Requires persistence.enabled: true
+  ## If defined, PVC must be created manually before volume will be bound
+  # existingClaim:
+  volumeReclaimPolicy: Retain
+
+  ## database data Persistent Volume Storage Class
+  ## If defined, storageClassName: <storageClass>
+  ## If set to "-", storageClassName: "", which disables dynamic provisioning
+  ## If undefined (the default) or set to null, no storageClassName spec is
+  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+  ##   GKE, AWS & OpenStack)
+  accessMode: ReadWriteMany
+  size: 1Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: log/elasticsearch/data
+  mountSubPathLogs: log
+
+service:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: ClusterIP
+  name: log-es
+  externalPort: 9200
+  internalPort: 9200
+  externalPortTcp: 9300
+  internalPortTcp: 9300
+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
similarity index 90%
rename from kubernetes/dcae/Chart.yaml
rename to kubernetes/log/charts/log-kibana/Chart.yaml
index d4e06ca..74f2c2b 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: DCAE Gen 1
-name: DCAE
-version: 1.1.0
+description: ONAP Logging Kibana
+name: log-kibana
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-kibana/requirements.yaml b/kubernetes/log/charts/log-kibana/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# 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.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -11,7 +11,7 @@ xpack.security.enabled: false
 xpack.watcher.enabled: false
 #Set to false to disable Watcher.
 # Kibana is served by a back end server. This setting specifies the port to use.
-server.port: 5601
+server.port: {{.Values.service.externalPort}}
 
 # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
 # The default is 'localhost', which usually means remote machines will not be able to connect.
@@ -30,10 +30,7 @@ server.host: "0"
 server.name: "Kibana"
 
 # The URL of the Elasticsearch instance to use for all your queries.
-# OOM-427, OOM-441 hardcoded onap workspace to avoid helm upgrade past 2.3
-elasticsearch.url: "http://elasticsearch.{{.Values.nsPrefix}}:9200"
-#elasticsearch-service.{{.Values.nsPrefix}}:9200"
-#elasticsearch.url: "http://10.247.47.3:9200"
+elasticsearch.url: "http://{{.Values.config.elasticsearchServiceName}}.{{.Release.Namespace}}:{{.Values.config.elasticsearchPort}}"
 # When this setting's value is true Kibana uses the hostname specified in the server.host
 # setting. When the value of this setting is false, Kibana uses the hostname of the host
 # that connects to this Kibana instance.
diff --git a/kubernetes/log/charts/log-kibana/templates/NOTES.txt b/kubernetes/log/charts/log-kibana/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..0878f5c
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/log/charts/log-kibana/templates/configmap.yaml b/kubernetes/log/charts/log-kibana/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..fd8934b
--- /dev/null
@@ -0,0 +1,21 @@
+# 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" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/log/charts/log-kibana/templates/deployment.yaml b/kubernetes/log/charts/log-kibana/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..bdd5a44
--- /dev/null
@@ -0,0 +1,98 @@
+# 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:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - log-elasticsearch
+        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.loggingRepository | default .Values.loggingRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+# disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end -}}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /usr/share/kibana/config/kibana.yml
+            name: {{ include "common.fullname" . }}
+            subPath: kibana.yml
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}
+          configMap:
+            name: {{ include "common.fullname" . }}
+            items:
+            - key: kibana.yml
+              path: kibana.yml
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/log/charts/log-kibana/templates/service.yaml b/kubernetes/log/charts/log-kibana/templates/service.yaml
new file mode 100644 (file)
index 0000000..d758c99
--- /dev/null
@@ -0,0 +1,40 @@
+# 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.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/log/charts/log-kibana/values.yaml b/kubernetes/log/charts/log-kibana/values.yaml
new file mode 100644 (file)
index 0000000..50c6e52
--- /dev/null
@@ -0,0 +1,94 @@
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# BusyBox image
+busyboxRepository: registry.hub.docker.com
+busyboxImage: library/busybox:latest
+
+# application image
+loggingRepository: docker.elastic.co
+image: kibana/kibana:5.5.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  elasticsearchServiceName: log-es
+  elasticsearchPort: 9200
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 120
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: NodePort
+  name: log-kibana
+  externalPort: 5601
+  internalPort: 5601
+  nodePort: 53
+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
diff --git a/kubernetes/log/charts/log-logstash/Chart.yaml b/kubernetes/log/charts/log-logstash/Chart.yaml
new file mode 100644 (file)
index 0000000..3aab337
--- /dev/null
@@ -0,0 +1,18 @@
+# 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
+description: ONAP Logging Logstash
+name: log-logstash
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-logstash/requirements.yaml b/kubernetes/log/charts/log-logstash/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# 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.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -1,14 +1,14 @@
 http.host: "0.0.0.0"
 ## Path where pipeline configurations reside
 path.config: /usr/share/logstash/pipeline
+
 ## Type of queue : memeory based or file based
 #queue.type: persisted
 ## Size of queue
 #queue.max_bytes: 1024mb
 ## Setting true makes logstash check periodically for change in pipeline configurations
 config.reload.automatic: true
-  
+
 ## xpack configurations
 #xpack.monitoring.elasticsearch.url: ["http://10.247.186.12:9200", "http://10.247.186.13:9200"]
 #xpack.monitoring.elasticsearch.username: elastic
@@ -7,7 +7,7 @@ input {
  ######## Connection configurations ########
 
  ## The port to listen on.
- port => 5044
+ port => {{.Values.service.externalPort}}
 
  ## Close Idle clients after the specified time in seconds. Default is 60 seconds
  #client_inactivity_timeout => 60
@@ -222,10 +222,8 @@ output {
 
  ######### Elasticsearchcluster and host configurations #########
 
-#can specify one or a list of hosts. If sniffing is set, one is enough and others will be auto-discovered
-##Also protocol can be specified like ["http://10.247.186.12:9200"]
-## OOM-427, OOM-441 hardcoded onap workspace to avoid helm upgrade past 2.3
- hosts => ["http://elasticsearch.{{.Values.nsPrefix}}:9200"]
+ ##can specify one or a list of hosts. If sniffing is set, one is enough and others will be auto-discovered
+ hosts => ["http://{{.Values.config.elasticsearchServiceName}}.{{.Release.Namespace}}:{{.Values.config.elasticsearchPort}}"]
 
 
  ## This setting asks Elasticsearch for the list of all cluster nodes and adds them to the hosts list. Default is false.
diff --git a/kubernetes/log/charts/log-logstash/templates/NOTES.txt b/kubernetes/log/charts/log-logstash/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..0878f5c
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/log/charts/log-logstash/templates/configmap.yaml b/kubernetes/log/charts/log-logstash/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..fd8934b
--- /dev/null
@@ -0,0 +1,21 @@
+# 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" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/log/charts/log-logstash/templates/deployment.yaml b/kubernetes/log/charts/log-logstash/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..682c448
--- /dev/null
@@ -0,0 +1,105 @@
+# 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:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - log-elasticsearch
+        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.loggingRepository| default .Values.loggingRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortHttp }}
+            name: {{ .Values.service.name }}-http
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+# disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end -}}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /usr/share/logstash/config/logstash.yml
+            name: {{ include "common.fullname" . }}
+            subPath: logstash.yml
+          - mountPath: /usr/share/logstash/pipeline/onap-pipeline.conf
+            name: {{ include "common.fullname" . }}
+            subPath: onap-pipeline.conf
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}
+          configMap:
+            name: {{ include "common.fullname" . }}
+            items:
+            - key: logstash.yml
+              path: logstash.yml
+            - key: onap-pipeline.conf
+              path: onap-pipeline.conf
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/log/charts/log-logstash/templates/service.yaml b/kubernetes/log/charts/log-logstash/templates/service.yaml
new file mode 100644 (file)
index 0000000..ca71aa2
--- /dev/null
@@ -0,0 +1,46 @@
+# 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.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.internalPortHttp }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPortHttp }}
+      name: {{ .Values.service.name }}-http
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttp }}
+      targetPort: {{ .Values.service.internalPortHttp }}
+      name: {{ .Values.service.name }}-http
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/log/charts/log-logstash/values.yaml b/kubernetes/log/charts/log-logstash/values.yaml
new file mode 100644 (file)
index 0000000..bfe50b5
--- /dev/null
@@ -0,0 +1,91 @@
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# application image
+loggingRepository: docker.elastic.co
+image: logstash/logstash:5.4.3
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  elasticsearchServiceName: log-es
+  elasticsearchPort: 9200
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 120
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: ClusterIP
+  name: log-ls
+  externalPort: 5044
+  internalPort: 5044
+  externalPortHttp: 9600
+  internalPortHttp: 9600
+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
diff --git a/kubernetes/log/requirements.yaml b/kubernetes/log/requirements.yaml
new file mode 100644 (file)
index 0000000..acca8ef
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/log/templates/all-services.yaml b/kubernetes/log/templates/all-services.yaml
deleted file mode 100644 (file)
index 389e7e4..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableLogElasticsearch }}
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: elasticsearch
-  name: elasticsearch
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  ports:
-  - name: http
-    port: 9200
-    targetPort: 9200
-    nodePort: {{ .Values.nodePortPrefix }}54
-  selector:
-    app: elasticsearch
-  type: NodePort
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: elasticsearchtcp
-  namespace: {{ .Values.nsPrefix }}
-  labels:
-    app: elasticsearch
-spec:
-  ports:
-  - name: tcp
-    port: 9300
-    targetPort: 9300
-  selector:
-    app: elasticsearch
-#{{ end }}
-#{{ if not .Values.disableLogLogstash }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: logstashinternal
-  namespace: {{ .Values.nsPrefix }}
-  labels:
-    app: logstash
-spec:
-  ports:
-  - name: http
-    port: 9600
-    targetPort: 9600
-  selector:
-    app: logstash
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: logstash
-  namespace: {{ .Values.nsPrefix }}
-  labels:
-    app: logstash
-spec:
-  ports:
-  - name: transport
-    port: 5044
-    targetPort: 5044
-    nodePort: {{ .Values.nodePortPrefix }}55
-  selector:
-    app: logstash
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableLogKibana }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: kibana
-  name: kibana
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  ports:
-  - name: tcp-ks
-    port: 5601
-    targetPort: 5601
-    nodePort: {{ .Values.nodePortPrefix }}53
-  selector:
-    app: kibana
-  type: NodePort
-#{{ end }}
diff --git a/kubernetes/log/templates/elasticsearch-deployment.yaml b/kubernetes/log/templates/elasticsearch-deployment.yaml
deleted file mode 100644 (file)
index 8c09479..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableLogElasticsearch }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: elasticsearch
-  name: log-elasticsearch
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  replicas: {{ .Values.elasticsearchReplicas }}
-  selector:
-    matchLabels:
-      app: elasticsearch
-  template:
-    metadata:
-      labels:
-        app: elasticsearch
-      name: log-elasticsearch
-    spec:
-      initContainers:
-      - command:
-        - /bin/sh
-        - -c
-        - |
-          sysctl -w vm.max_map_count=262144
-          mkdir -p /logroot/elasticsearch/logs
-          mkdir -p /logroot/elasticsearch/data
-          chmod -R 777 /logroot/elasticsearch
-          chown -R root:root /logroot
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        securityContext:
-          privileged: true
-        image: {{ .Values.image.es_bb }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: init-sysctl
-        volumeMounts:
-        - name: elasticsearch-logs
-          mountPath: /logroot/
-      containers:
-      - name: elasticsearch
-        image: {{ .Values.image.elasticsearch}}
-        ports:
-        - containerPort: 9200
-          name: http
-          protocol: TCP
-        - containerPort: 9300
-          name: transport
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 9300
-        volumeMounts:
-         - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
-           name: elasticsearch-conf
-           subPath: elasticsearch.yml
-         - mountPath: /usr/share/elasticsearch/data/
-           name: elasticsearch-data
-         - mountPath: /usr/share/elasticsearch/logs/
-           name: elasticsearch-logs
-      volumes:
-        - name: elasticsearch-data
-          persistentVolumeClaim:
-            claimName: elasticsearch-db
-        - name: elasticsearch-logs
-          hostPath:
-            path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/
-        - name: elasticsearch-conf
-          configMap:
-            name: log-elasticsearch-configmap
-            items:
-            - key: elasticsearch.yml
-              path: elasticsearch.yml
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: log-elasticsearch-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ (.Files.Glob "resources/elasticsearch/conf/elasticsearch.yml").AsConfig | indent 2 }}
-#{{ end }}
-
diff --git a/kubernetes/log/templates/kibana-deployment.yaml b/kubernetes/log/templates/kibana-deployment.yaml
deleted file mode 100644 (file)
index b60011a..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableLogKibana }}
-apiVersion: extensions/v1beta1 
-kind: Deployment
-metadata:
-  labels:
-    app: kibana
-  name: log-kibana
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  replicas: {{ .Values.kibanaReplicas }}
-  selector:
-    matchLabels:
-      app: kibana
-  template:
-    metadata:
-      labels:
-        app: kibana
-      name: log-kibana
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - elasticsearch
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kibana-readiness
-      containers:
-      - name: kibana
-        image: {{ .Values.image.kibana }}
-        ports:
-        - containerPort: 5601
-          name: http
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 5601
-        volumeMounts:
-         - name: kibana-conf
-           mountPath: /usr/share/kibana/config/      
-      volumes:
-        - name: kibana-conf
-          configMap:
-            name: log-kibana-configmap
-            items:
-            - key: kibana.yml
-              path: kibana.yml
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: log-kibana-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/kibana/conf/kibana.yml").AsConfig . | indent 2 }}
-#{{ end }}
diff --git a/kubernetes/log/templates/log-pv-pvc.yaml b/kubernetes/log/templates/log-pv-pvc.yaml
deleted file mode 100644 (file)
index 20bcbb1..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-{{/*
-# 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.
-*/}}
-
-#{{ if not .Values.disableLogElasticsearch }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: {{ .Values.nsPrefix }}-elasticsearch-db
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: {{ .Values.nsPrefix }}-elasticsearch-db
-spec:
-  capacity:
-    storage: 2Gi
-  accessModes:
-    - ReadWriteMany
-  persistentVolumeReclaimPolicy: Retain
-  hostPath:
-    path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/elasticsearch/data
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: elasticsearch-db
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  accessModes:
-    - ReadWriteMany
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      name: {{ .Values.nsPrefix }}-elasticsearch-db
-#{{ end }}
diff --git a/kubernetes/log/templates/logstash-deployment.yaml b/kubernetes/log/templates/logstash-deployment.yaml
deleted file mode 100644 (file)
index 33bcc20..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableLogLogstash }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: logstash
-  name: log-logstash
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  replicas: {{ .Values.logstashReplicas }}
-  selector:
-    matchLabels:
-      app: logstash
-  template:
-    metadata:
-      labels:
-        app: logstash
-      name: log-logstash
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - elasticsearch
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: logstash-readiness
-      containers:
-      - name: logstash
-        image: {{ .Values.image.logstash }}
-        ports:
-        - containerPort: 5044
-          name: transport
-          protocol: TCP
-        - containerPort: 9600
-          name: http
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 5044
-        volumeMounts:
-         - mountPath: /usr/share/logstash/config/
-           name: logstash-conf
-         - mountPath: /usr/share/logstash/pipeline/
-           name: logstash-pipeline
-      volumes:
-        - name: logstash-conf
-          configMap:
-            name: log-logstash-configmap
-            items:
-            - key: logstash.yml
-              path: logstash.yml
-        - name: logstash-pipeline
-          configMap:
-            name: log-logstash-configmap
-            items:
-            - key: onap-pipeline.conf
-              path: onap-pipeline.conf
-
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: log-logstash-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig . | indent 2 }}
-#{{ end }}
index 0b8d1fe..088ad5d 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-nsPrefix: onap
-pullPolicy: Always
-nodePortPrefix: 302
-dataRootDir: /dockerdata-nfs
-elasticsearchReplicas: 1
-kibanaReplicas: 1
-logstashReplicas: 1
-image:
-  readiness: oomk8s/readiness-check:1.1.0
-  logstash: docker.elastic.co/logstash/logstash:5.4.3
-  kibana: docker.elastic.co/kibana/kibana:5.5.0
-  elasticsearch: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
-  es_bb: busybox
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
diff --git a/kubernetes/msb/.helmignore b/kubernetes/msb/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index e9e202b..e517d60 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP MicroServices Bus
 name: msb
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/msb/charts/kube2msb/.helmignore b/kubernetes/msb/charts/kube2msb/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/kube2msb/Chart.yaml b/kubernetes/msb/charts/kube2msb/Chart.yaml
new file mode 100644 (file)
index 0000000..4ab40e6
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Kube2MSB Registrator
+name: kube2msb
+version: 2.0.0
diff --git a/kubernetes/msb/charts/kube2msb/requirements.yaml b/kubernetes/msb/charts/kube2msb/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/kube2msb/templates/deployment.yaml b/kubernetes/msb/charts/kube2msb/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..94b25a1
--- /dev/null
@@ -0,0 +1,67 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-discovery
+        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" . }}
+          # TODO: Temporary command:
+          command:
+          - /bin/sh
+          - -c
+          - export AUTH_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token); /bin/kube2msb --kube_master_url=${KUBE_MASTER_URL} --msb_url=${MSB_URL}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          env:
+          - name: KUBE_MASTER_URL
+            value: {{ .Values.config.kubeMasterUrl }}
+          - name: MSB_URL
+            value: {{tpl $.Values.config.discoveryUrl .}}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/kube2msb/values.yaml b/kubernetes/msb/charts/kube2msb/values.yaml
new file mode 100644 (file)
index 0000000..43810a9
--- /dev/null
@@ -0,0 +1,58 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/oom/kube2msb:latest
+pullPolicy: Always
+
+# application configuration
+config:
+  routeLabels: "visualRange:1"
+  kubeMasterUrl: https://kubernetes.default:443
+  discoveryUrl: http://{{.Release.Name}}-msb-discovery.{{include "common.namespace" .}}:10081
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness: {}
+
+readiness: {}
+
+service: {}
+
+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
diff --git a/kubernetes/msb/charts/msb-consul/.helmignore b/kubernetes/msb/charts/msb-consul/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-consul/Chart.yaml b/kubernetes/msb/charts/msb-consul/Chart.yaml
new file mode 100644 (file)
index 0000000..3a1d299
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Consul
+name: msb-consul
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-consul/requirements.yaml b/kubernetes/msb/charts/msb-consul/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-consul/templates/NOTES.txt b/kubernetes/msb/charts/msb-consul/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/msb/charts/msb-consul/templates/deployment.yaml b/kubernetes/msb/charts/msb-consul/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..74342e7
--- /dev/null
@@ -0,0 +1,59 @@
+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:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ .Values.global.dockerHubRepository | default .Values.dockerHubRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          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 }}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-consul/templates/service.yaml b/kubernetes/msb/charts/msb-consul/templates/service.yaml
new file mode 100644 (file)
index 0000000..841d349
--- /dev/null
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-consul/values.yaml b/kubernetes/msb/charts/msb-consul/values.yaml
new file mode 100644 (file)
index 0000000..28df51a
--- /dev/null
@@ -0,0 +1,65 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+dockerHubRepository: registry.hub.docker.com
+image: library/consul:0.9.3
+pullPolicy: Always
+
+# application configuration
+config: {}
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: NodePort
+  name: msb-consul
+  externalPort: 8500
+  internalPort: 8500
+  nodePort: 85
+
+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
diff --git a/kubernetes/msb/charts/msb-discovery/.helmignore b/kubernetes/msb/charts/msb-discovery/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-discovery/Chart.yaml b/kubernetes/msb/charts/msb-discovery/Chart.yaml
new file mode 100644 (file)
index 0000000..4a403ba
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Discovery
+name: msb-discovery
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-discovery/requirements.yaml b/kubernetes/msb/charts/msb-discovery/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-discovery/templates/NOTES.txt b/kubernetes/msb/charts/msb-discovery/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml b/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..f32a5d1
--- /dev/null
@@ -0,0 +1,76 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-consul
+        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 }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          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 }}
+          env:
+          - name: CONSUL_IP
+            value: {{.Release.Name}}-msb-consul.{{ include "common.namespace" . }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-discovery/templates/service.yaml b/kubernetes/msb/charts/msb-discovery/templates/service.yaml
new file mode 100644 (file)
index 0000000..841d349
--- /dev/null
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-discovery/values.yaml b/kubernetes/msb/charts/msb-discovery/values.yaml
new file mode 100644 (file)
index 0000000..d10ba60
--- /dev/null
@@ -0,0 +1,67 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/msb/msb_discovery:1.1.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# application configuration
+config: {}
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: NodePort
+  name: msb-discovery
+  externalPort: 10081
+  internalPort: 10081
+  nodePort: 81
+
+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
diff --git a/kubernetes/msb/charts/msb-eag/.helmignore b/kubernetes/msb/charts/msb-eag/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-eag/Chart.yaml b/kubernetes/msb/charts/msb-eag/Chart.yaml
new file mode 100644 (file)
index 0000000..c86decb
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Internal API Gateway
+name: msb-eag
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-eag/requirements.yaml b/kubernetes/msb/charts/msb-eag/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-eag/templates/NOTES.txt b/kubernetes/msb/charts/msb-eag/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/msb/charts/msb-eag/templates/deployment.yaml b/kubernetes/msb/charts/msb-eag/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..d41518d
--- /dev/null
@@ -0,0 +1,83 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-discovery
+        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 }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortHttps }}
+            name: {{ .Values.service.name }}-https
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          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 }}
+          env:
+          - name: CONSUL_IP
+            value: {{.Release.Name}}-msb-consul.{{ include "common.namespace" . }}
+          - name: SDCLIENT_IP
+            value: {{.Release.Name}}-msb-discovery.{{ include "common.namespace" . }}
+          - name: ROUTE_LABELS
+            value: {{ .Values.config.routeLabels }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-eag/templates/service.yaml b/kubernetes/msb/charts/msb-eag/templates/service.yaml
new file mode 100644 (file)
index 0000000..e438f10
--- /dev/null
@@ -0,0 +1,32 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      targetPort: {{ .Values.service.internalPortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-eag/values.yaml b/kubernetes/msb/charts/msb-eag/values.yaml
new file mode 100644 (file)
index 0000000..757b467
--- /dev/null
@@ -0,0 +1,71 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# application configuration
+config:
+  routeLabels: "visualRange:0"
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: NodePort
+  name: msb-eag
+  externalPort: 80
+  internalPort: 80
+  nodePort: 82
+  externalPortHttps: 443
+  internalPortHttps: 443
+  nodePortHttps: 84
+
+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
diff --git a/kubernetes/msb/charts/msb-iag/.helmignore b/kubernetes/msb/charts/msb-iag/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-iag/Chart.yaml b/kubernetes/msb/charts/msb-iag/Chart.yaml
new file mode 100644 (file)
index 0000000..d546bfa
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Internal API Gateway
+name: msb-iag
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-iag/requirements.yaml b/kubernetes/msb/charts/msb-iag/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-iag/templates/NOTES.txt b/kubernetes/msb/charts/msb-iag/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/msb/charts/msb-iag/templates/deployment.yaml b/kubernetes/msb/charts/msb-iag/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..d41518d
--- /dev/null
@@ -0,0 +1,83 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-discovery
+        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 }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortHttps }}
+            name: {{ .Values.service.name }}-https
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          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 }}
+          env:
+          - name: CONSUL_IP
+            value: {{.Release.Name}}-msb-consul.{{ include "common.namespace" . }}
+          - name: SDCLIENT_IP
+            value: {{.Release.Name}}-msb-discovery.{{ include "common.namespace" . }}
+          - name: ROUTE_LABELS
+            value: {{ .Values.config.routeLabels }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-iag/templates/service.yaml b/kubernetes/msb/charts/msb-iag/templates/service.yaml
new file mode 100644 (file)
index 0000000..e438f10
--- /dev/null
@@ -0,0 +1,32 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      targetPort: {{ .Values.service.internalPortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-iag/values.yaml b/kubernetes/msb/charts/msb-iag/values.yaml
new file mode 100644 (file)
index 0000000..6e4877b
--- /dev/null
@@ -0,0 +1,71 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# application configuration
+config:
+  routeLabels: "visualRange:1"
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: NodePort
+  name: msb-iag
+  externalPort: 80
+  internalPort: 80
+  nodePort: 80
+  externalPortHttps: 443
+  internalPortHttps: 443
+  nodePortHttps: 83
+
+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
diff --git a/kubernetes/msb/requirements.yaml b/kubernetes/msb/requirements.yaml
new file mode 100644 (file)
index 0000000..acca8ef
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/msb/templates/all-services.yaml b/kubernetes/msb/templates/all-services.yaml
deleted file mode 100644 (file)
index 572a78d..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableMsbMsbConsul }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-consul
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-consul
-spec:
-  ports:
-    - port: {{ .Values.consulPort }}
-      nodePort: {{ .Values.consulNodePort }}
-  selector:
-    app: msb-consul
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMsbMsbDiscovery }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-discovery
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-discovery
-spec:
-  clusterIP: "{{ .Values.discoveryClusterIP }}"
-  ports:
-    - port: {{ .Values.discoveryPort }}
-      nodePort: {{ .Values.discoveryNodePort }}
-  selector:
-    app: msb-discovery
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMsbMsbIag }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-iag
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-iag
-spec:
-  ports:
-    - name: http
-      port: {{ .Values.iagPort }}
-      nodePort: {{ .Values.iagNodePort }}
-    - name: https
-      port: {{ .Values.iagPort_https }}
-      nodePort: {{ .Values.iagNodePort_https }}
-  selector:
-    app: msb-iag
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMsbMsbEag }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-eag
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-eag
-spec:
-  ports:
-    - name: http
-      port: {{ .Values.eagPort }}
-      nodePort: {{ .Values.eagNodePort }}
-    - name: https
-      port: {{ .Values.eagPort_https }}
-      nodePort: {{ .Values.eagNodePort_https }}
-  selector:
-    app: msb-eag
-  type: NodePort
-#{{ end }}
diff --git a/kubernetes/msb/templates/kube2msb-registrator-deployment.yaml b/kubernetes/msb/templates/kube2msb-registrator-deployment.yaml
deleted file mode 100644 (file)
index 97e7d5f..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableKube2MsbKube2MsbRegistrator }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: kube2msb-registrator
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: kube2msb-registrator
-  template:
-    metadata:
-      labels:
-        app: kube2msb-registrator
-      name: kube2msb-registrator
-    spec:
-      hostname: kube2msb-registrator
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - msb-discovery
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kube2msb-registrator-readiness
-      containers:
-      - args:
-        image: {{ .Values.image.kube2msb }}
-        name: kube2msb-registrator
-        env:
-        - name: KUBE_MASTER_URL
-          value: {{ .Values.kubeMasterUrl }}
-        - name: MSB_URL
-          value: {{tpl $.Values.discoveryUrl .}}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-consul-deployment.yaml b/kubernetes/msb/templates/msb-consul-deployment.yaml
deleted file mode 100644 (file)
index ee5120d..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableMsbMsbConsul }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-consul
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.msbConsulReplicas }}
-  selector:
-    matchLabels:
-      app: msb-consul
-  template:
-    metadata:
-      labels:
-        app: msb-consul
-      name: msb-consul
-    spec:
-      hostname: msb-consul
-      containers:
-      - args:
-        image: {{ .Values.image.consul }}
-        name: msb-consul
-        ports:
-        - containerPort: {{ .Values.consulPort }}
-          name: msb-consul
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.consulPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: {{ .Values.pullPolicy }}
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-discovery-deployment.yaml b/kubernetes/msb/templates/msb-discovery-deployment.yaml
deleted file mode 100644 (file)
index 583a00f..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableMsbMsbDiscovery }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-discovery
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.discoveryReplicas }}
-  selector:
-    matchLabels:
-      app: msb-discovery
-  template:
-    metadata:
-      labels:
-        app: msb-discovery
-      name: msb-discovery
-    spec:
-      hostname: msb-discovery
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - msb-consul
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: msb-discovery-readiness
-      containers:
-      - args:
-        image:  {{ .Values.image.discovery }}
-        name: "msb-discovery"
-        env:
-        - name: CONSUL_IP
-          value: msb-consul.{{ .Values.nsPrefix }}
-        ports:
-        - containerPort: {{ .Values.discoveryPort }}
-          name: msb-discovery
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.discoveryPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: {{ .Values.pullPolicy }}
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-eag-deployment.yaml b/kubernetes/msb/templates/msb-eag-deployment.yaml
deleted file mode 100644 (file)
index dd253fc..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableMsbMsbEag }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-eag
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.eagReplicas }}
-  selector:
-    matchLabels:
-      app: msb-eag
-  template:
-    metadata:
-      labels:
-        app: msb-eag
-      name: msb-eag
-    spec:
-      hostname: msb-eag
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - msb-discovery
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: msb-eag-readiness
-      containers:
-      - args:
-        image:  {{ .Values.image.apigateway }}
-        name: "msb-eag"
-        env:
-        - name: CONSUL_IP
-          value:  msb-consul.{{ .Values.nsPrefix }}
-        - name: SDCLIENT_IP
-          value:  msb-discovery.{{ .Values.nsPrefix }}
-        - name: ROUTE_LABELS
-          value: "visualRange:0"
-        ports:
-        - containerPort: {{ .Values.eagPort }}
-          name: msb-eag
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.eagPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: {{ .Values.pullPolicy}}
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-iag-deployment.yaml b/kubernetes/msb/templates/msb-iag-deployment.yaml
deleted file mode 100644 (file)
index 9fc5c7b..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# 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.
-
-#{{ if not .Values.disableMsbMsbIag }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-iag
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.iagReplicas }}
-  selector:
-    matchLabels:
-      app: msb-iag
-  template:
-    metadata:
-      labels:
-        app: msb-iag
-      name: msb-iag
-    spec:
-      hostname: msb-iag
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - msb-discovery
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: msb-iag-readiness
-      containers:
-      - args:
-        image:  {{ .Values.image.apigateway }}
-        name: "msb-iag"
-        env:
-        - name: CONSUL_IP
-          value: msb-consul.{{ .Values.nsPrefix }}
-        - name: SDCLIENT_IP
-          value: msb-discovery.{{ .Values.nsPrefix }}
-        - name: ROUTE_LABELS
-          value: "visualRange:1"
-        ports:
-        - containerPort: {{ .Values.iagPort }}
-          name: msb-iag
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.iagPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: "{{ .Values.pullPolicy}}"
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
index bf42455..49e5196 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-nsPrefix: onap
-pullPolicy: IfNotPresent
-image:
-  readiness: oomk8s/readiness-check:1.1.0
-  consul: consul:0.9.3
-  discovery: nexus3.onap.org:10001/onap/msb/msb_discovery:1.1.0-SNAPSHOT-latest
-  apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
-  kube2msb: nexus3.onap.org:10001/onap/oom/kube2msb
-
-consulPort: 8500
-consulNodePort: 30500
-msbConsulReplicas: 1
-
-discoveryPort: 10081
-discoveryNodePort: 30081
-discoveryReplicas: 1
-
-iagPort: 80
-iagPort_https: 443
-iagNodePort: 30080
-iagNodePort_https: 30443
-iagReplicas: 2
-
-eagPort: 80
-eagPort_https: 443
-eagNodePort: 30082
-eagNodePort_https: 30446
-eagReplicas: 2
-
-kubeMasterUrl: https://kubernetes.default.svc.cluster.local:443
-discoveryUrl: http://msb-discovery.{{ .Values.nsPrefix }}:10081
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
index 89c6932..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 8b2e185..410246f 100644 (file)
@@ -29,3 +29,7 @@ image:
   mso: nexus3.onap.org:10001/openecomp/mso:v1.1.2
   mariadb: nexus3.onap.org:10001/mariadb:10.1.11
   filebeat: docker.elastic.co/beats/filebeat:5.5.0
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 706f24d..a6dd579 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 8d9ec35..c1b3858 100644 (file)
@@ -66,7 +66,7 @@ spec:
          timeoutSeconds: 10
          successThreshold: 1
          failureThreshold: 5
-    - image: {{ .Values.image.filebeat }}
+     - image: {{ .Values.image.filebeat }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: filebeat-onap
        volumeMounts:
index 2f76d6a..d43ee61 100644 (file)
@@ -30,3 +30,7 @@ image:
 # domain name of msb gateway
 msbgateway: msb-iag.{{ .Values.nsPrefix }}
 msbPort: 80
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 0b51150..91943f4 100644 (file)
@@ -53,7 +53,7 @@ dependencies:
     repository: '@local'
     condition: esr.enabled
   - name: log
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: log.enabled
   - name: message-router
@@ -65,7 +65,7 @@ dependencies:
     repository: '@local'
     condition: mock.enabled
   - name: msb
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: msb.enabled
   - name: multicloud
index 0c3ff85..ee7d00b 100644 (file)
@@ -63,7 +63,7 @@ dcaegen2:
   enabled: true
 esr:
   enabled: true
-log:
+log: # ONAP Logging ElasticStack
   enabled: true
 message-router:
   enabled: true
diff --git a/kubernetes/oneclick/createAll.bash b/kubernetes/oneclick/createAll.bash
deleted file mode 100755 (executable)
index ded7c39..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/bash
-
-. $(dirname "$0")/setenv.bash
-
-
-usage() {
-  cat <<EOF
-Usage: $0 [PARAMs]
--u                  : Display usage
--n [NAMESPACE]      : Kubernetes namespace (required)
--v [VALUES]         : HELM values filepath (usefull when deploying one component at a time)
--l [LOCATION]       : Location of oom project
--i [INSTANCE]       : ONAP deployment instance # (default: 1)
--a [APP]            : Specify a specific ONAP component (default: all)
-                      from the following choices:
-                      sdc, aai ,mso, message-router, robot, vid, aaf, uui
-                      sdnc, portal, policy, appc, multicloud, clamp, consul, vnfsdk
-EOF
-}
-
-check_return_code(){
-  ret=$?
-  if [ $ret -ne 0 ]; then
-    printf "The command $1 returned with error code $ret \n" 1>&2
-    exit $ret
-  fi
-}
-
-create_service_account() {
-  cmd=`echo kubectl create clusterrolebinding $1-admin-binding --clusterrole=cluster-admin --serviceaccount=$1:default`
-  eval ${cmd}
-  check_return_code $cmd
-}
-
-create_namespace() {
-  cmd=`echo kubectl create namespace $1`
-  eval ${cmd}
-}
-
-create_registry_key() {
-cmd=`echo kubectl --namespace $1 create secret docker-registry $2 --docker-server=$3 --docker-username=$4 --docker-password=$5 --docker-email=$6`
-  eval ${cmd}
-  check_return_code $cmd
-}
-
-configure_dcaegen2() {
-  if [ ! -s "$OPENSTACK_PRIVATE_KEY_PATH" ]
-  then
-    echo "ERROR: $OPENSTACK_PRIVATE_KEY_PATH does not exist or is empty.  Cannot launch dcae gen2."
-    return 1
-  fi
-
-  cmd=`echo kubectl --namespace $1-$2 create secret generic $2-openstack-ssh-private-key --from-file=key=${OPENSTACK_PRIVATE_KEY_PATH}`
-  eval ${cmd}
-  check_return_code $cmd
-
-  if [ ! -s "$DCAEGEN2_CONFIG_INPUT_FILE_PATH" ]
-  then
-    echo "ERROR: $DCAEGEN2_CONFIG_INPUT_FILE_PATH does not exist or is empty.  Cannot launch dcae gen2."
-    return 1
-  fi
-
-  cmd=`echo kubectl --namespace $1-$2 create configmap $2-config-inputs --from-file=inputs.yaml=${DCAEGEN2_CONFIG_INPUT_FILE_PATH}`
-  eval ${cmd}
-  check_return_code $cmd
-}
-
-create_onap_helm() {
-  HELM_VALUES_ADDITION=""
-  if [[ ! -z $HELM_VALUES_FILEPATH ]]; then
-    HELM_VALUES_ADDITION="--values=$HELM_VALUES_FILEPATH"
-  fi
-  # Have to put a check for dcaegen2 because it requires external files to helm
-  # which should not be part of the Chart.
-  if [ "$2" = "dcaegen2" ];
-  then
-    configure_dcaegen2 $1 $2
-    local result=$?
-    if [ $result -ne 0 ]
-    then
-      echo "ERROR: dcaegen2 failed to configure: Pre-requisites not met.  Skipping deploying it and continue"
-      return
-    fi
-  fi
-
-  cmd=`echo helm install $LOCATION/$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=$3 ${HELM_VALUES_ADDITION}`
-  eval ${cmd}
-  check_return_code $cmd
-}
-
-#MAINs
-NS=
-HELM_VALUES_FILEPATH=""
-LOCATION="../"
-INCL_SVC=true
-APP=
-INSTANCE=1
-MAX_INSTANCE=5
-DU=$ONAP_DOCKER_USER
-DP=$ONAP_DOCKER_PASS
-
-SINGLE_COMPONENT=false
-
-while getopts ":n:u:s:i:a:du:dp:l:v:" PARAM; do
-  case $PARAM in
-    u)
-      usage
-      exit 1
-      ;;
-    n)
-      NS=${OPTARG}
-      ;;
-    v)
-      HELM_VALUES_FILEPATH=${OPTARG}
-      ;;
-    i)
-      INSTANCE=${OPTARG}
-      ;;
-    l)
-      LOCATION=${OPTARG}
-      ;;
-    a)
-      SINGLE_COMPONENT=true
-      APP=${OPTARG}
-      if [[ -z $APP ]]; then
-        usage
-        exit 1
-      fi
-      ;;
-    du)
-      DU=${OPTARG}
-      ;;
-    dp)
-      DP=${OPTARG}
-      ;;
-    ?)
-      usage
-      exit
-      ;;
-  esac
-done
-
-if [[ -z $NS ]]; then
-  usage
-  exit 1
-fi
-
-if [[ ! -z "$APP" ]]; then
-  HELM_APPS=($APP)
-fi
-
-
-if [ "$INSTANCE" -gt "$MAX_INSTANCE" ];then
-  printf "\n********** You choose to create ${INSTANCE}th instance of ONAP \n"
-  printf "\n********** Due to port allocation only ${MAX_INSTANCE} instances of ONAP is allowed per kubernetes deployment\n"
-  exit 1
-fi
-
-start=$((300+2*INSTANCE))
-end=$((start+1))
-
-printf "\n********** Creating instance ${INSTANCE} of ONAP with port range ${start}00 and ${end}99\n"
-
-
-printf "\n********** Creating ONAP: ${ONAP_APPS[*]}\n"
-
-if [ "$SINGLE_COMPONENT" == "false" ]
-then
-    printf "\nCreating namespace **********\n"
-    create_namespace $NS
-
-    printf "\nCreating registry secret **********\n"
-    create_registry_key $NS ${NS}-docker-registry-key $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL
-
-    printf "\nCreating service account **********\n"
-    create_service_account $NS
-fi
-
-printf "\n\n********** Creating deployments for ${HELM_APPS[*]} ********** \n"
-
-for i in ${HELM_APPS[@]}; do
-
-  printf "\nCreating deployments and services **********\n"
-  create_onap_helm $NS $i $start
-
-  printf "\n"
-done
-
-printf "\n**** Done ****\n"
diff --git a/kubernetes/oneclick/deleteAll.bash b/kubernetes/oneclick/deleteAll.bash
deleted file mode 100755 (executable)
index 9833af7..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/bash
-
-. $(dirname "$0")/setenv.bash
-
-delete_namespace() {
-  kubectl delete namespace $1
-}
-
-delete_service_account() {
-    kubectl delete clusterrolebinding $1-admin-binding
-}
-
-delete_registry_key() {
-  kubectl --namespace $1 delete secret ${1}-docker-registry-key
-}
-
-delete_app_helm() {
-  helm delete $1-$2 --purge
-}
-
-wait_terminate() {
-  printf "Waiting for namespaces termination...\n"
-  while true; do
-    declare -i _STATUS=0
-    for i in ${HELM_APPS[@]}; do
-      kubectl get pods --namespace $1 | grep -w " $i" > /dev/null 2>&1
-      if [ "$?" -ne "0" ]; then
-        _STATUS=1
-        break
-      fi
-    done
-
-    if [ "$SINGLE_COMPONENT" == "false" ]; then
-      kubectl get namespaces $1 > /dev/null 2>&1
-      _STATUS=$?
-    fi
-    if [ "$_STATUS" -ne "0" ]; then
-      break
-    fi
-    sleep 2
-  done
-}
-
-usage() {
-  cat <<EOF
-Usage: $0 [PARAMs]
--u                  : Display usage
--n [NAMESPACE]      : Kubernetes namespace (required)
--c                  : kubectl context (default: current context)
--y                  : Skip interactive confirmation (default: no)
--a [APP]            : Specify a specific ONAP component (default: all)
-                      from the following choices:
-                      sdc, aai ,mso, message-router, robot, vid, aaf, uui
-                      sdnc, portal, policy, appc, multicloud, clamp, consul, vnfsdk
--N                  : Do not wait for deletion of namespace and its objects
-EOF
-}
-
-#MAINs
-NS=
-INCL_SVC=false
-APP=
-WAIT_TERMINATE=true
-SKIP_INTERACTIVE_CONFIRMATION=no
-KUBECTL_CONTEXT=
-SINGLE_COMPONENT=false
-while getopts ":c:n:u:s:a:yN" PARAM; do
-  case $PARAM in
-    u)
-      usage
-      exit 1
-      ;;
-    n)
-      NS=${OPTARG}
-      ;;
-    a)
-      APP=${OPTARG}
-      if [[ -z $APP ]]; then
-        usage
-        exit 1
-      fi
-      SINGLE_COMPONENT=true
-      ;;
-    N)
-      WAIT_TERMINATE=false
-      ;;
-    y)
-      SKIP_INTERACTIVE_CONFIRMATION=yes
-      ;;
-    c)
-      KUBECTL_CONTEXT=${OPTARG}
-      ;;
-    ?)
-      usage
-      exit
-      ;;
-  esac
-done
-
-if [[ -z $NS ]]; then
-  usage
-  exit 1
-fi
-
-if [[ "$SKIP_INTERACTIVE_CONFIRMATION" != yes ]]; then
-  current_kubectl_context=$(kubectl config get-contexts |grep "*" |awk '{print $2}')
-  if test "$KUBECTL_CONTEXT" != "$current_kubectl_context"; then
-    printf "Current kubectl context does not match context specified:\x1b[31m $current_kubectl_context\x1b[0m\n"
-    if [ ! -z "$KUBECTL_CONTEXT" -a "$KUBECTL_CONTEXT" != " " ]; then
-      read -p "Do you wish to switch context to $KUBECTL_CONTEXT and continue?" yn
-      case $yn in
-        [Yy]* ) kubectl config use-context $KUBECTL_CONTEXT;;
-        * ) printf "Skipping delete...\n"; exit;;
-      esac
-    else
-      printf "You are about to delete deployment from:\x1b[31m $current_kubectl_context\x1b[0m\n"
-      read -p "To continue enter context name: " response
-
-      if test "$response" != "$current_kubectl_context"
-      then
-        printf "Your response does not match current context! Skipping delete ...\n"
-        exit 1
-      fi
-    fi
-  fi
-fi
-
-if [[ ! -z "$APP" ]]; then
-  HELM_APPS=($APP)
-fi
-
-printf "\n********** Cleaning up ONAP: ${ONAP_APPS[*]}\n"
-
-for i in ${HELM_APPS[@]}; do
-  delete_app_helm $NS $i
-done
-
-if [ "$SINGLE_COMPONENT" == "false" ]
-then
-    delete_app_helm $NS "config"
-    delete_namespace $NS
-    delete_registry_key $NS
-    delete_service_account $NS
-fi
-
-if $WAIT_TERMINATE; then
-  wait_terminate $NS
-fi
-
-printf "\n********** Gone **********\n"
diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash
deleted file mode 100644 (file)
index 716b76c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-# Deploying MSB first so the started ONAP services can be registered to MSB
-HELM_APPS=('consul' 'msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'aai' 'sdc' 'dcaegen2' 'log' 'cli' 'multicloud' 'clamp' 'vnfsdk' 'uui' 'aaf' 'vfc' 'esr')
-ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001}
-ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker}
-ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker}
-ONAP_DOCKER_MAIL=${ONAP_DOCKER_MAIL:-$USERNAME@$USERDOMAIN}
-# Openstack key pair private key file location required to enable dcaegen2 installer CRUD operations in your Openstack
-# Ensure you set the name of your keypair in the dcae-parameters.yaml entry "keypair: "dcae-g2"
-# example: export OPENSTACK_PRIVATE_KEY_PATH=/home/user/Downloads/dcae-g2.pem
-OPENSTACK_PRIVATE_KEY_PATH=${OPENSTACK_PRIVATE_KEY_PATH:-~/.ssh/onap_rsa}
-# dcaegen2 bootstrap configuration input yaml file.  Start from the sample, and set your environments real values:
-# example: export DCAEGEN2_CONFIG_INPUT_FILE_PATH=/tmp/dcae-parameters.yaml
-DCAEGEN2_CONFIG_INPUT_FILE_PATH=${DCAEGEN2_CONFIG_INPUT_FILE_PATH:-../dcaegen2/dcae-parameters-sample.yaml}
diff --git a/kubernetes/oneclick/tools/autoCleanConfig.bash b/kubernetes/oneclick/tools/autoCleanConfig.bash
deleted file mode 100644 (file)
index e274e0d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-########################################################################################
-# This script wraps {$OOM}/kubernetes/oneclick/deleteAll.sh script along with          #
-# the following steps to clean up ONAP configure for specified namespace:              #
-#     - remove namespace                                                               #
-#     - remove release                                                                 #
-#     - remove shared directory                                                        #
-#                                                                                      #
-# To run it, just enter the following command:                                         #
-#    ./autoCleanConfig.bash <namespace, default is "onap">                             #
-########################################################################################
-#!/bin/bash
-
-
-NS=$1
-if [[ -z $NS ]]
-then
-  echo "Namespace is not specified, use onap namespace."
-  NS="onap"
-fi
-
-echo "Clean up $NS configuration"
-cd ..
-./deleteAll.bash -n $NS -y
-cd -
-
-echo "----------------------------------------------
-Force remove namespace..."
-kubectl delete namespace $NS
-echo "...done : kubectl get namespace
------------------------------------------------
->>>>>>>>>>>>>> k8s namespace"
-kubectl get namespace
-while [[ ! -z `kubectl get namespace|grep $NS` ]]
-do
-  echo "Wait for namespace $NS to be deleted
------------------------------------------------
->>>>>>>>>>>>>> k8s namespace"
-  kubectl get namespace
-  sleep 2
-done
-
-echo "Force delete helm process ..."
-helm delete $NS-config --purge --debug
-echo "...done : helm ls --all
- -----------------------------------------------
->>>>>>>>>>>>>> helm"
-helm ls --all
-
-echo "Remove $NS dockerdata..."
-sudo rm -rf /dockerdata-nfs/onap
-echo "...done : ls -altr /dockerdata-nfs
- -----------------------------------------------
->>>>>>>>>>>>>> /dockerdata-nfs directory"
-ls -altr /dockerdata-nfs
diff --git a/kubernetes/oneclick/tools/autoCreateConfig.bash b/kubernetes/oneclick/tools/autoCreateConfig.bash
deleted file mode 100644 (file)
index 99ea03e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-########################################################################################
-# This script wraps {$OOM}/kubernetes/config/createConfig.sh script                    #
-# and will only terminated when the configuration is Completed or failed               #
-#                                                                                      #
-# To run it, just enter the following command:                                         #
-#    ./autoCreateConfig.bash <namespace, default is "onap">                            #
-########################################################################################
-#!/bin/bash
-
-
-NS=$1
-if [[ -z $NS ]]
-then
-  echo "Namespace is not specified, use onap namespace."
-  NS="onap"
-fi
-
-echo "Create $NS config under config directory..."
-cd ../../config
-./createConfig.sh -n $NS
-cd -
-
-
-echo "...done : kubectl get namespace
------------------------------------------------
->>>>>>>>>>>>>> k8s namespace"
-kubectl get namespace
-
-
-echo "
------------------------------------------------
->>>>>>>>>>>>>> helm : helm ls --all"
-helm ls --all
-
-
-echo "
------------------------------------------------
->>>>>>>>>>>>>> pod : kubectl get pods -n $NS -a"
-kubectl get pods -n $NS -a
-
-
-while true
-do
-  echo "wait for $NS config pod reach to Completed STATUS"
-  sleep 5
-  echo "-----------------------------------------------"
-  kubectl get pods -n $NS -a
-
-  status=`kubectl get pods -n $NS -a |grep config |xargs echo | cut -d' ' -f3`
-
-  if [ "$status" = "Completed" ]
-  then
-    echo "$NS config is Completed!!!"
-    break
-  fi
-
-  if [ "$status" = "Error" ]
-  then
-    echo "
-$NS config is failed with Error!!!
-Logs are:"
-    kubectl logs config -n $NS -f
-    break
-  fi
-done
diff --git a/kubernetes/oneclick/tools/collectInfo.bash b/kubernetes/oneclick/tools/collectInfo.bash
deleted file mode 100644 (file)
index 734c5a6..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/bin/bash
-
-NS=
-OUT_NAME=onap_info_$(date +%y.%m.%d_%H.%M.%S.%N)
-OUT_FILE=
-OUT_DIR=$(dirname "$0")
-TMP_DIR=$(dirname $(mktemp -u))
-CONTAINER_LOGS_PATH=/var/log/onap
-CP_CONTAINER_LOGS=false
-
-if [ ! -z "$DEBUG" ]; then
-  set -x
-fi
-
-usage() {
-  cat <<EOF
-Utility script collecting various information about ONAP deployment on kubernetes.
-
-Usage: $0 [PARAMs]
--u                  : Display usage
--n [NAMESPACE]      : Kubernetes namespace (required)
--a [APP]            : Specify a specific ONAP component (default: all)
--d [OUT_DIR]        : Specify output folder for the collected info pack file
-                      (default: current dir)
--f [OUT_FILE]       : Specify output file for the collected info
-                      (default: file name with timestamp)
--c                  : Collect log files from containers, from path ${CONTAINER_LOGS_PATH}
-EOF
-}
-
-call_with_log() {
-  local _cmd=$1
-  local _log=$2
-  # Make sure otput dir exists
-  mkdir -p "$(dirname "$_log")"
-  printf "Command: ${_cmd}\n" >> ${_log}
-  printf "================================================================================\n" >> ${_log}
-  eval "${_cmd}" >> ${_log} 2>&1
-  printf "================================================================================\n" >> ${_log}
-}
-
-collect_pod_info() {
-  local _ns=$1
-  local _id=$2
-  local _log_dir=$3
-  local _cp_logs=$4
-  declare -i _i=0
-  kubectl -n $_ns get pods $_id -o=jsonpath='{range .spec.containers[*]}{.name}{"\n"}{end}' | while read c; do
-    call_with_log "kubectl -n $_ns logs $_id -c $c" "$_log_dir/$_id-$c.log"
-    if [ "$_i" -eq "0" ] && [ "$_cp_logs" == "true" ]; then
-      # copy logs from 1st container only as logs dir is shared between the containers
-      local _cmd="kubectl cp $_ns/$_id:${CONTAINER_LOGS_PATH} $_log_dir/$_id-$c -c $c"
-      if [ -z "$DEBUG" ]; then
-        _cmd+=" > /dev/null 2>&1"
-      fi
-      eval "${_cmd}"
-    fi
-    ((_i++))
-  done
-}
-
-collect_ns_info() {
-  local _ns=$1
-  local _log_dir=$2/$_ns
-  call_with_log "kubectl -n $NS-$i get services -o=wide" "$_log_dir/list_services.log"
-  kubectl -n "$_ns" get services | while read i; do
-    local _id=`echo -n $i | tr -s ' ' | cut -d' ' -n -f1`
-    if [ "$_id" == "NAME" ]; then
-      continue
-    fi
-    call_with_log "kubectl -n $_ns describe services $_id" "$_log_dir/describe_services/$_id.log"
-  done
-  call_with_log "kubectl -n $NS-$i get pods -o=wide" "$_log_dir/list_pods.log"
-  kubectl -n "$_ns" get pods | while read i; do
-    local _id=`echo -n $i | tr -s ' ' | cut -d' ' -n -f1`
-    if [ "$_id" == "NAME" ]; then
-      continue
-    fi
-    call_with_log "kubectl -n $_ns describe pods $_id" "$_log_dir/describe_pods/$_id.log"
-    collect_pod_info "$_ns" "$_id" "$_log_dir/logs" "${CP_CONTAINER_LOGS}"
-  done
-}
-
-while getopts ":un:a:d:f:c" PARAM; do
-  case $PARAM in
-    u)
-      usage
-      exit 1
-      ;;
-    n)
-      NS=${OPTARG}
-      ;;
-    a)
-      APP=${OPTARG}
-      if [[ -z $APP ]]; then
-        usage
-        exit 1
-      fi
-      ;;
-    d)
-      OUT_DIR=${OPTARG}
-      if [[ -z $OUT_DIR ]]; then
-        usage
-        exit 1
-      fi
-      ;;
-    f)
-      OUT_FILE=${OPTARG}
-      if [[ -z $OUT_FILE ]]; then
-        usage
-        exit 1
-      fi
-      ;;
-    c)
-      CP_CONTAINER_LOGS=true
-      ;;
-    ?)
-      usage
-      exit
-      ;;
-  esac
-done
-
-if [ -z "$NS" ]; then
-  usage
-  exit 1
-fi
-
-if [[ -z $OUT_FILE ]]; then
-  OUT_FILE=$OUT_NAME.tgz
-fi
-
-if [ ! -z "$APP" ]; then
-  _APPS=($APP)
-else
-  _APPS=(`kubectl get namespaces | grep "^$NS-" | tr -s ' ' | cut -d' ' -n -f1 | sed -e "s/^$NS-//"`)
-fi
-
-printf "Collecting information about ONAP deployment...\n"
-printf "Components: %s\n" "${_APPS[*]}"
-
-# Collect common info
-mkdir -p ${TMP_DIR}/${OUT_NAME}/
-echo "${_APPS[*]}" > ${TMP_DIR}/${OUT_NAME}/component-list.log
-printf "Collecting Helm info\n"
-call_with_log "helm version" "${TMP_DIR}/${OUT_NAME}/helm-version.log"
-call_with_log "helm list" "${TMP_DIR}/${OUT_NAME}/helm-list.log"
-
-printf "Collecting Kubernetes info\n"
-call_with_log "kubectl version" "${TMP_DIR}/${OUT_NAME}/k8s-version.log"
-call_with_log "kubectl get nodes -o=wide" "${TMP_DIR}/${OUT_NAME}/k8s-nodes.log"
-call_with_log "kubectl cluster-info" "${TMP_DIR}/${OUT_NAME}/k8s-cluster-info.log"
-call_with_log "kubectl cluster-info dump" "${TMP_DIR}/${OUT_NAME}/k8s-cluster-info-dump.log"
-call_with_log "kubectl top node" "${TMP_DIR}/${OUT_NAME}/k8s-top-node.log"
-
-# Collect per-component info
-for i in ${_APPS[@]}; do
-  printf "Writing Kubernetes info of component $i\n"
-  collect_ns_info "$NS-$i" "${TMP_DIR}/${OUT_NAME}"
-done
-
-# Pack and cleanup
-mkdir -p ${OUT_DIR}
-_OUT_DIR=`readlink -e ${OUT_DIR}`
-printf "Packing output to ${_OUT_DIR}/${OUT_FILE}...\n"
-cd ${TMP_DIR}
-tar cfz ${_OUT_DIR}/${OUT_FILE} ${OUT_NAME}
-cd -
-printf "Cleaning up...\n"
-rm -rf ${TMP_DIR}/${OUT_NAME}
-printf "Done\n"
index 89c6932..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 5a04070..49ad892 100644 (file)
@@ -38,3 +38,7 @@ image:
   policyNexusVersion: v1.1.1
   ubuntu: ubuntu:16.04
   filebeat: docker.elastic.co/beats/filebeat:5.5.0
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 89c6932..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index ed520d6..89c2dbc 100644 (file)
@@ -31,3 +31,6 @@ image:
   ubuntuInit: oomk8s/ubuntu-init:1.0.0
 onapPortal:
   webappsDir: "/opt/apache-tomcat-8.0.37/webapps"
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 20f2268..7214e04 100644 (file)
@@ -17,4 +17,8 @@ ENV TOKEN="/var/run/secrets/kubernetes.io/serviceaccount/token"
 
 COPY ready.py /root/ready.py
 RUN chmod a+x /root/ready.py
+
+COPY job_complete.py /root/job_complete.py
+RUN chmod a+x /root/job_complete.py
+
 ENTRYPOINT /root/ready.py
diff --git a/kubernetes/readiness/docker/init/job_complete.py b/kubernetes/readiness/docker/init/job_complete.py
new file mode 100644 (file)
index 0000000..97d22da
--- /dev/null
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+import getopt
+import logging
+import os
+import sys
+import time
+
+from kubernetes import client
+
+# extract env variables.
+namespace = os.environ['NAMESPACE']
+cert = os.environ['CERT']
+host = os.environ['KUBERNETES_SERVICE_HOST']
+token_path = os.environ['TOKEN']
+
+with open(token_path, 'r') as token_file:
+    token = token_file.read().replace('\n', '')
+
+# setup logging
+log = logging.getLogger(__name__)
+handler = logging.StreamHandler(sys.stdout)
+handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
+handler.setLevel(logging.INFO)
+log.addHandler(handler)
+log.setLevel(logging.INFO)
+
+configuration = client.Configuration()
+configuration.host = "https://" + host
+configuration.ssl_ca_cert = cert
+configuration.api_key['authorization'] = token
+configuration.api_key_prefix['authorization'] = 'Bearer'
+batchV1Api = client.BatchV1Api(client.ApiClient(configuration))
+
+
+def is_job_complete(job_name):
+    complete = False
+    log.info("Checking if " + job_name + "  is complete")
+    response = ""
+    try:
+        response = batchV1Api.read_namespaced_job_status(job_name, namespace)
+        if response.status.succeeded == 1:
+            job_status_type = response.status.conditions[0].type
+            if job_status_type == "Complete":
+                complete = True
+            else:
+                log.info(job_name + " is not complete")
+        else:
+            log.info(job_name + " has not succeeded yet")
+        return complete
+    except Exception as e:
+        log.error("Exception when calling read_namespaced_job_status: %s\n" % e)
+
+
+DEF_TIMEOUT = 10
+DESCRIPTION = "Kubernetes container job complete check utility"
+USAGE = "Usage: job_complete.py [-t <timeout>] -j <job_name> [-j <job_name> ...]\n" \
+        "where\n" \
+        "<timeout> - wait for container job complete timeout in min, default is " + str(DEF_TIMEOUT) + "\n" \
+        "<job_name> - name of the job to wait for\n"
+
+def main(argv):
+    # args are a list of job names
+    job_names = []
+    timeout = DEF_TIMEOUT
+    try:
+        opts, args = getopt.getopt(argv, "hj:t:", ["job-name=", "timeout=", "help"])
+        for opt, arg in opts:
+            if opt in ("-h", "--help"):
+                print("%s\n\n%s" % (DESCRIPTION, USAGE))
+                sys.exit()
+            elif opt in ("-j", "--job-name"):
+                job_names.append(arg)
+            elif opt in ("-t", "--timeout"):
+                timeout = float(arg)
+    except (getopt.GetoptError, ValueError) as e:
+        print("Error parsing input parameters: %s\n" % e)
+        print(USAGE)
+        sys.exit(2)
+    if job_names.__len__() == 0:
+        print("Missing required input parameter(s)\n")
+        print(USAGE)
+        sys.exit(2)
+
+    for job_name in job_names:
+        timeout = time.time() + timeout * 60
+        while True:
+            complete = is_job_complete(job_name)
+            if complete is True:
+                break
+            elif time.time() > timeout:
+                log.warning("timed out waiting for '" + job_name + "' to be completed")
+                exit(1)
+            else:
+                time.sleep(5)
+
+if __name__ == "__main__":
+    main(sys.argv[1:])
\ No newline at end of file
index 41db84d..cd1ce14 100755 (executable)
@@ -1,4 +1,4 @@
-# File generated from /opt/config
+#file generated from /opt/config
 #
 GLOBAL_INJECTED_AAI1_IP_ADDR = "{{.Release.Name}}-aai.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A"
@@ -38,6 +38,7 @@ GLOBAL_INJECTED_VID_IP_ADDR = "{{.Release.Name}}-vid-server.{{include "common.na
 GLOBAL_INJECTED_VM_FLAVOR = "{{ .Values.openStackFlavourMedium }}"
 GLOBAL_INJECTED_VM_IMAGE_NAME = "{{ .Values.ubuntuImage }}"
 GLOBAL_INJECTED_PUBLIC_NET_ID = "{{ .Values.openStackPublicNetId }}"
+GLOBAL_INJECTED_SCRIPT_VERSION = "{{ .Values.scriptVersion }}"
 GLOBAL_INJECTED_PROPERTIES = {
     "GLOBAL_INJECTED_AAI1_IP_ADDR" : "{{.Release.Name}}-aai.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_APPC_IP_ADDR" : "{{.Release.Name}}-appc-sdnhost.{{include "common.namespace" .}}",
@@ -73,5 +74,6 @@ GLOBAL_INJECTED_PROPERTIES = {
     "GLOBAL_INJECTED_VID_IP_ADDR" : "{{.Release.Name}}-vid-server.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}",
     "GLOBAL_INJECTED_VM_IMAGE_NAME" : "{{ .Values.ubuntuImage }}",
-    "GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}"
+    "GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}",
+    "GLOBAL_INJECTED_SCRIPT_VERSION" : "{{ .Values.scriptVersion }}"
 }
index 9057a86..6ef3a21 100644 (file)
@@ -46,6 +46,7 @@ openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc"
 openStackTenantId: "47899782ed714295b1151681fdfd51f5"
 openStackUserName: "vnf_user"
 ubuntuImage: "Ubuntu_14.04.5_LTS"
+scriptVersion: "1.1.1"
 
 # default number of instances
 robotReplicas: 1
index 89c6932..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 13f41aa..40b3ec3 100644 (file)
@@ -25,3 +25,6 @@ image:
   sdcBackend: nexus3.onap.org:10001/openecomp/sdc-backend:v1.1.0
   filebeat: docker.elastic.co/beats/filebeat:5.5.0
   ubuntuInit: oomk8s/ubuntu-init:1.0.0
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 2cd63e1..49d818a 100644 (file)
@@ -29,7 +29,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 9c706b8..9402917 100644 (file)
@@ -37,4 +37,6 @@ portalReplicas: 1
 disableSdncSdncDgbuilder: false
 disableSdncSdncPortal: false
 disableNfsProvisioner: false
-
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 9ad559c..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{ .Release.Name }}-log:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index d62465d..3ca60b0 100644 (file)
@@ -44,7 +44,8 @@ config:
   openStackKeyStoneUrl: "http://1.2.3.4:5000"
   openStackServiceTenantName: "service"
   openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
-
+  logstashServiceName: log-ls
+  logstashPort: 5044
 
 # default number of instances
 replicaCount: 1
index 89c6932..b0d4690 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["logstash.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 258177b..f177476 100644 (file)
@@ -23,3 +23,6 @@ image:
   mariadb: nexus3.onap.org:10001/library/mariadb:10
   vid: nexus3.onap.org:10001/openecomp/vid:v1.1.1
   filebeat: docker.elastic.co/beats/filebeat:5.5.0
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044