Merge changes from topic 'oom-dcae-pnda'
authorAlexis de Talhouët <alexis.de_talhouet@bell.ca>
Thu, 27 Sep 2018 23:58:02 +0000 (23:58 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 27 Sep 2018 23:58:02 +0000 (23:58 +0000)
* changes:
  Add PNDA bootstrap job to dcaegen2 chart
  Add PNDA mirror container to dcaegen2 chart

18 files changed:
kubernetes/onap/requirements.yaml
kubernetes/onap/values.yaml
kubernetes/pnda/Chart.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/Chart.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/requirements.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/resources/inputs/pnda_env.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/resources/scripts/bootstrap.sh [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/configmap.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-bootstrap/values.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-mirror/.helmignore [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-mirror/Chart.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-mirror/requirements.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-mirror/templates/deployment.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-mirror/templates/service.yaml [new file with mode: 0644]
kubernetes/pnda/charts/dcae-pnda-mirror/values.yaml [new file with mode: 0644]
kubernetes/pnda/requirements.yaml [new file with mode: 0644]

index 9a8588f..ec4fdd8 100644 (file)
@@ -80,6 +80,10 @@ dependencies:
     version: ~3.0.0
     repository: '@local'
     condition: nbi.enabled
+  - name: pnda
+    version: ~3.0.0
+    repository: '@local'
+    condition: dcaegen2.pnda.enabled
   - name: policy
     version: ~3.0.0
     repository: '@local'
index 3ce3bcc..545a7bd 100644 (file)
@@ -85,6 +85,8 @@ contrib:
   enabled: true
 dcaegen2:
   enabled: true
+  pnda:
+    enabled: false
 dmaap:
   enabled: true
 esr:
diff --git a/kubernetes/pnda/Chart.yaml b/kubernetes/pnda/Chart.yaml
new file mode 100644 (file)
index 0000000..e23c5d6
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2018 Amdocs, AT&T, 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 DCAE PNDA
+name: pnda
+version: 3.0.0
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/Chart.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/Chart.yaml
new file mode 100644 (file)
index 0000000..e252d40
--- /dev/null
@@ -0,0 +1,20 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+apiVersion: v1
+description: ONAP DCAE PNDA Bootstrap
+name: dcae-pnda-bootstrap
+version: 3.0.0
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/requirements.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/requirements.yaml
new file mode 100644 (file)
index 0000000..f06f735
--- /dev/null
@@ -0,0 +1,20 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/resources/inputs/pnda_env.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/resources/inputs/pnda_env.yaml
new file mode 100644 (file)
index 0000000..555b9e4
--- /dev/null
@@ -0,0 +1,230 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+infrastructure :
+  # infrastructure used for pnda deployment
+  # Valid Values are:
+  #   - aws
+  #   - openstack
+  #   - existing-machines
+  #   - terraform
+  INFRASTRUCTURE_TYPE: openstack
+
+  # The user name to use when logging into the  instances
+  # For aws target user-name allowed :
+  #            Target         AWS         Openstack
+  #
+  #   Distro   Redhat:       ec2-user     cloud-user
+  #            CentOS:       centos       cloud-user
+  OS_USER: {{ .Values.pnda.osUser }}
+
+  # CIDR specifying the address range for the network containing all PNDA instances
+  networkCidr: {{ .Values.pnda.networkCidr }}
+
+openstack_parameters:
+  # KEYSTONE_USER: Username for the openstack clients to use
+  KEYSTONE_USER: {{ .Values.openstack.keystoneUser }}
+
+  # KEYSTONE_PASSWORD: Password for the openstack clients to use
+  KEYSTONE_PASSWORD: {{ .Values.openstack.keystonePassword }}
+
+  # KEYSTONE_TENANT: Name of the tenant / project in the openstack environment. The
+  # PNDA stack will be created in this project.
+  KEYSTONE_TENANT: {{ .Values.openstack.keystoneTenant }}
+
+  # KEYSTONE_AUTH_URL: Keystone authentication URL. The Openstack console provides this
+  # under the Access & Security section.
+  KEYSTONE_AUTH_URL: {{ .Values.openstack.keystoneAuthUrl }}
+
+  # KEYSTONE_AUTH_VERSION: Keystone authentication version. The Openstack console provides this
+  # under the Access & Security section.
+  KEYSTONE_AUTH_VERSION: '2'
+
+  # KEYSTONE_REGION_NAME: Keystone region. The Openstack console provides this
+  # under the Access & Security section.
+  KEYSTONE_REGION_NAME: {{ .Values.openstack.keystoneRegion }}
+
+  # imageId: Base image to use for the created instances. It should be created by
+  # following the guide in https://github.com/pndaproject/pnda-dib-elements
+  #
+  imageId: {{ .Values.openstack.imageId }}
+
+  # CIDR specifying the address range that may access the created PNDA instances
+  whitelistSshAccess: {{ .Values.openstack.whitelistSshAccess }}
+
+  # UUID of the public network in openstack to use
+  externalPublicNetworkId: {{ .Values.openstack.publicNetworkId }}
+
+  useExistingNetwork: {{ .Values.openstack.useExistingNetwork }}
+
+  existingNetworkId: {{ .Values.openstack.existingNetworkId }}
+
+  existingSubnetId: {{ .Values.openstack.existingSubnetId }}
+
+  # CIDR specifying the address range for the public subnet (bastion access)
+  publicSubnetCidr: {{ .Values.openstack.publicSubnetCidr }}
+
+platform_salt:
+  # Use either PLATFORM_GIT_REPO_URI + PLATFORM_GIT_BRANCH or PLATFORM_SALT_LOCAL
+  PLATFORM_SALT_LOCAL: /platform-salt
+
+pnda_application_repo:
+  # Type of storage to use for PNDA application packages
+  #   s3     - AWS S3. Also set PNDA_APPS_CONTAINER, PNDA_APPS_FOLDER, PNDA_APPS_REGION, PNDA_APPS_ACCESS_KEY_ID, PNDA_APPS_SECRET_ACCESS_KEY
+  #   sshfs  - standard file system. Also set PR_FS_LOCATION_PATH, PR_SSHFS_USER, PR_SSHFS_HOST, PR_SSHFS_PATH and PR_SSHFS_KEY
+  #   local  - local filesystem on the package repository service server. Also set PR_FS_LOCATION_PATH.
+  #   swift  - Openstack swift. Also set PNDA_APPS_CONTAINER and PNDA_APPS_FOLDER
+  PR_FS_TYPE: {{ .Values.pnda.apps.fsType }}
+
+  # S3 container to use for PNDA application packages
+  PNDA_APPS_CONTAINER: {{ .Values.pnda.apps.s3container }}
+
+  # Name of folder within PNDA_APPS_CONTAINER that contains the PNDA application packages
+  PNDA_APPS_FOLDER: {{ .Values.pnda.apps.s3folder }}
+
+  # AWS region that contains the PNDA_APPS_CONTAINER bucket
+  PNDA_APPS_REGION: {{ .Values.pnda.apps.s3region }}
+
+  # API key for s3 access to PNDA_APPS_CONTAINER. These keys are stored on the cloud instances so should be restricted
+  # only allow access to the PNDA_APPS_CONTAINER bucket
+  PNDA_APPS_ACCESS_KEY_ID: {{ .Values.pnda.apps.s3keyid }}
+  PNDA_APPS_SECRET_ACCESS_KEY: {{ .Values.pnda.apps.s3secret }}
+
+  # Path on file system if PR_FS_TYPE is 'local' or 'sshfs'
+  PR_FS_LOCATION_PATH: {{ .Values.pnda.apps.fsLocation | print "/opt/pnda/packages" }}
+
+  # SSH accessed file system to use for PNDA application packages
+  PR_SSHFS_USER: centos
+  PR_SSHFS_HOST: 127.0.0.1
+  PR_SSHFS_PATH: /mnt/packages
+  PR_SSHFS_KEY: key.pem
+
+pnda_data_archive:
+  # S3 container to use for archiving PNDA datasets
+  PNDA_ARCHIVE_CONTAINER: pnda-archive
+
+  # AWS region that contains the PNDA_ARCHIVE_CONTAINER bucket
+  PNDA_ARCHIVE_REGION: eu-west-1
+
+  # API key for s3 access to PNDA_ARCHIVE_CONTAINER. These keys are stored on the cloud instances so should be restricted
+  # only allow access to the PNDA_ARCHIVE_CONTAINER bucket
+  PNDA_ARCHIVE_ACCESS_KEY_ID: xxxx
+  PNDA_ARCHIVE_SECRET_ACCESS_KEY: xxxx
+
+ntp:
+  # Optional ntp servers. Use this if the standard NTP servers on the Internet cannot be reached
+  # and a local NTP server has been configured. PNDA will not work without NTP.
+  # example format: 'xxx.ntp.org'
+  #For REJECT_OUTBOUND="YES" then NTP server/s must.
+  NTP_SERVERS:
+    - {{ .Values.pnda.ntp }}
+
+dns:
+  # External DNS servers list
+  nameServers:
+    - {{ .Values.pnda.nameserver }}
+
+mirrors:
+  # Mirror of resources required for provisioning PNDA, see PNDA guide for instructions on how to set this up
+  PNDA_MIRROR:
+
+hadoop:
+  # Hadoop distribution to install
+  # Valid values are:
+  # - HDP
+  # - CDH
+  HADOOP_DISTRO: HDP
+  # Spark version to enable for oozie (HDP only)
+  # Valid values are:
+  # - 1
+  # - 2
+  OOZIE_SPARK_VERSION: 1
+
+connectivity:
+  # The IP address of the client that created PNDA
+  CLIENT_IP: {{ .Values.pnda.outboundCidr }}
+  # Add online repositories for yum, apt-get, pip, etc alongside PNDA mirror
+  ADD_ONLINE_REPOS: "YES"
+  # RPM Extras repository to enable when ADD_ONLINE_REPOS=YES
+  RPM_EXTRAS_REPO_NAME: rhui-REGION-rhel-server-optional
+  # RPM Optional repository to enable when ADD_ONLINE_REPOS=YES
+  RPM_OPTIONAL_REPO_NAME: rhui-REGION-rhel-server-extras
+
+network_interfaces:
+  PNDA_INTERNAL_NETWORK: eth0
+  PNDA_INGEST_NETWORK: eth0
+
+cli:
+  # Maximum number of outbound connections that the CLI will attempt to open at once
+  # Consider increasing this when creating clusters with more than 100 nodes to speed
+  # up PNDA creation time.
+  MAX_SIMULTANEOUS_OUTBOUND_CONNECTIONS: 100
+
+security:
+  # The path were to find the security material (certificate/key).
+  # The directory should be structured as defined in this' repo's directory structure with the same name.
+  # The security material should conform to the guidelines defined in the README.md file in
+  # the containing sub directory.
+  SECURITY_MATERIAL_PATH: ./platform-certificates/
+
+  # Address of LDAP server
+  # All instances will have PAM configured to authenticate with this LDAP server if set
+  # Leave blank to disable LDAP-PAM integration
+  LDAP_SERVER: ''
+
+  # Base DN for LDAP server to use when enabling client PAM integration with LDAP
+  LDAP_BASE_DN: dc=nodomain
+
+features:
+  # Include experimental features.
+  # Set to "NO", omit setting or omit features section entirely to turn off experimental features
+  EXPERIMENTAL_FEATURES: "NO"
+
+domain:
+  # Top-level domain
+  TOP_LEVEL_DOMAIN: pnda.local
+
+  # Second-level domain
+  SECOND_LEVEL_DOMAIN: dc1
+
+dataset_compaction:
+  # Enable/Disable compaction on datasets.
+  # "YES" to enable.
+  # "NO" to disable.
+  COMPACTION: "NO"
+  # If compaction is enabled, PATTERN sets the frequency of compaction.
+  # H - hourly compaction.
+  # d - daily compaction.
+  # M - monthly compaction.
+  # Y - yearly compaction.
+  PATTERN: d
+
+datanode:
+  # DATANODE_VOLUME_COUNT sets the number of data volumes on each hadoop datanode
+  DATA_VOLUME_COUNT: 1
+  # DEVICE_ROOT sets the disk device root name
+  DEVICE_ROOT: xvdb
+
+kafka:
+  # DATA_DIRS sets the data dirs on kafka node
+  KAFKA_DATA_DIRS:
+    - /var/kafka-logs
+  # DEVICE_ROOT sets the disk device root name
+  KAFKA_DEVICE_ROOT: xvdb
+
+generic:
+  #GENERIC_DEVICE_ROOT sets the disk device root name for generic instances.
+  GENERIC_DEVICE_ROOT: xvdb
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/resources/scripts/bootstrap.sh b/kubernetes/pnda/charts/dcae-pnda-bootstrap/resources/scripts/bootstrap.sh
new file mode 100644 (file)
index 0000000..61b5842
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+# Install PNDA in Openstack with Heat templates
+# Expects:
+#   Input files for components to be installed in /inputs
+
+if [ "z{{ .Values.enabled }}" != "ztrue" ]
+then
+   echo
+   echo "PNDA bootstrap is disabled - skipping pnda-cli launch"
+   echo
+   exit 0
+fi
+
+set -ex
+
+CLUSTER_PREFIX="{{ include "common.namespace" . }}-pnda"
+DATANODES="{{ .Values.pnda.dataNodes }}"
+KAFKANODES="{{ .Values.pnda.kafkaNodes }}"
+VERSION="{{ .Values.pnda.version }}"
+KEYPAIR_NAME="{{ .Values.pnda_keypair_name }}"
+KEYFILE="$KEYPAIR_NAME.pem"
+
+cd /pnda-cli
+
+cp /inputs/pnda_env.yaml .
+cp /secrets/pnda.pem $KEYFILE
+chmod 600 $KEYFILE
+
+(cd tools && ./gen-certs.py)
+
+KUBE_API="https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT_HTTPS/api/v1"
+KUBE_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
+
+for i in 1 2 3 4 5 6 7 8 9
+do
+  MIRROR_IP=$(curl -s $KUBE_API/namespaces/{{ include "common.namespace" . }}/services/dcae-pnda-mirror \
+                 --header "Authorization: Bearer $KUBE_TOKEN" \
+                 --insecure | jq -r '.status.loadBalancer.ingress[0].ip')
+
+  if [ "$MIRROR_IP" != "null" ]; then
+    break
+  fi
+  sleep 5
+done
+
+PNDA_MIRROR="http://$MIRROR_IP:80"
+
+sed -i -e 's?CLIENT_IP/32?CLIENT_IP?' bootstrap-scripts/package-install.sh
+
+./cli/pnda-cli.py create -e $CLUSTER_PREFIX -f pico -n $DATANODES -k $KAFKANODES \
+                  -b $VERSION -s $KEYPAIR_NAME --set "mirrors.PNDA_MIRROR=$PNDA_MIRROR"
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/configmap.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..d1f0002
--- /dev/null
@@ -0,0 +1,43 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-inputs
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/inputs/*").AsConfig . | indent 2 }}
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-scripts
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/scripts/*").AsConfig . | indent 2 }}
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-secrets
+  namespace: {{ include "common.namespace" . }}
+data:
+  pnda.pem: |
+{{ .Values.pnda_secret | indent 4 }}
+
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/job.yaml
new file mode 100644 (file)
index 0000000..a98761f
--- /dev/null
@@ -0,0 +1,94 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+apiVersion: batch/v1
+kind: Job
+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:
+  completions: 1
+  backoffLimit: 0
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      restartPolicy: Never
+      initContainers:
+        - name: {{ include "common.name" . }}-readiness
+          image: {{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command:
+            - /root/ready.py
+          args:
+            - --container-name
+            - dcae-pnda-mirror
+            - "-t"
+            - "75"
+          env:
+          - name: NAMESPACE
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: metadata.namespace
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+            - mountPath: /inputs
+              name: {{ include "common.fullname" . }}-inputs
+            - mountPath: /scripts
+              name: {{ include "common.fullname" . }}-scripts
+            - mountPath: /secrets
+              name: {{ include "common.fullname" . }}-secrets
+            - mountPath: /pnda-cli/cli/logs
+              name: {{ include "common.fullname" . }}-logs
+          command:
+            - "/scripts/bootstrap.sh"
+      volumes:
+        - name: {{ include "common.fullname" . }}-inputs
+          configMap:
+            name: {{ include "common.fullname" . }}-inputs
+        - name: {{ include "common.fullname" . }}-scripts
+          configMap:
+            name: {{ include "common.fullname" . }}-scripts
+            defaultMode: 0755
+        - name: {{ include "common.fullname" . }}-secrets
+          configMap:
+            name: {{ include "common.fullname" . }}-secrets
+        - name: {{ include "common.fullname" . }}-logs
+          persitentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}-logs
+  volumeClaimTemplates:
+    - metadata:
+        name: {{ include "common.fullname" . }}-logs
+        labels:
+          name: {{ include "common.fullname" . }}
+      spec:
+        accessModes: [ {{ .Values.persistence.accessMode }} ]
+        storageClassName: manual
+        resources:
+          requests:
+            storage: {{ .Values.persistence.size }}
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/templates/pv.yaml
new file mode 100644 (file)
index 0000000..bf2d40b
--- /dev/null
@@ -0,0 +1,40 @@
+{{/*
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+*/}}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-logs
+  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:
+  storageClassName: manual
+  capacity:
+    storage: {{ .Values.persistence.size }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
+
+{{- end -}}
diff --git a/kubernetes/pnda/charts/dcae-pnda-bootstrap/values.yaml b/kubernetes/pnda/charts/dcae-pnda-bootstrap/values.yaml
new file mode 100644 (file)
index 0000000..17fb936
--- /dev/null
@@ -0,0 +1,97 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  persistence: {}
+
+#################################################################
+# PNDA configuration defaults.
+#################################################################
+
+enabled: false
+
+pnda:
+  version: develop
+  dataNodes: 2
+  kafkaNodes: 1
+  osUser: centos
+  nameserver: 8.8.8.8
+  ntp: pool.ntp.org
+  mirrorNodePort: 88
+  apps:
+    fsType: local
+  networkCidr: 10.0.0.0/16
+  outboundCidr: 0.0.0.0/0
+
+pnda_keypair_name: pnda
+pnda_secret: replace-me
+
+#################################################################
+# Openstack connection params.
+#################################################################
+
+openstack:
+  keystoneUser: onap
+  keystonePassword: onap
+  keystoneTenant: onap
+  keystoneAuthUrl: 'http://10.60.18.18:5000/v2.0/'
+  keystoneRegion: regionOne
+  imageId: id_of_image
+  publicNetworkId: id_of_public_network
+  useExistingNetwork: true
+  existingNetworkId: id_of_onap_network
+  existingSubnetId: id_of_onap_subnet
+  whitelistSshAccess: 0.0.0.0/0
+  publicSubnetCidr: 10.0.0.0/24
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+
+
+repository: pndareg.ctao6.net
+image: pnda-cli:develop
+pullPolicy: Always
+
+## 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: ReadWriteOnce
+  size: 10Mi
+  mountPath: /dockerdata-nfs
+  mountSubPath: dcae-pnda-bootstrap/logs
diff --git a/kubernetes/pnda/charts/dcae-pnda-mirror/.helmignore b/kubernetes/pnda/charts/dcae-pnda-mirror/.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/pnda/charts/dcae-pnda-mirror/Chart.yaml b/kubernetes/pnda/charts/dcae-pnda-mirror/Chart.yaml
new file mode 100644 (file)
index 0000000..feb3104
--- /dev/null
@@ -0,0 +1,20 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+apiVersion: v1
+description: ONAP DCAE PNDA Mirror
+name: dcae-pnda-mirror
+version: 3.0.0
diff --git a/kubernetes/pnda/charts/dcae-pnda-mirror/requirements.yaml b/kubernetes/pnda/charts/dcae-pnda-mirror/requirements.yaml
new file mode 100644 (file)
index 0000000..f06f735
--- /dev/null
@@ -0,0 +1,20 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'
diff --git a/kubernetes/pnda/charts/dcae-pnda-mirror/templates/deployment.yaml b/kubernetes/pnda/charts/dcae-pnda-mirror/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..0063031
--- /dev/null
@@ -0,0 +1,54 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+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: 1
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.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 }}
diff --git a/kubernetes/pnda/charts/dcae-pnda-mirror/templates/service.yaml b/kubernetes/pnda/charts/dcae-pnda-mirror/templates/service.yaml
new file mode 100644 (file)
index 0000000..b233a17
--- /dev/null
@@ -0,0 +1,42 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  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.portName }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/pnda/charts/dcae-pnda-mirror/values.yaml b/kubernetes/pnda/charts/dcae-pnda-mirror/values.yaml
new file mode 100644 (file)
index 0000000..38024b5
--- /dev/null
@@ -0,0 +1,75 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+
+repository: pndareg.ctao6.net
+image: pnda-mirror:develop
+pullPolicy: Always
+
+# application configuration
+# Example:
+config: {}
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 60
+  periodSeconds: 10
+  timeoutSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 15
+  periodSeconds: 10
+
+service:
+  type: LoadBalancer
+  name: dcae-pnda-mirror
+  portName: client
+  externalPort: 80
+  internalPort: 80
+
+## Persist data to a persitent volume
+persistence:
+  enabled: false
+
+ingress:
+  enabled: false
+
+resources: {}
diff --git a/kubernetes/pnda/requirements.yaml b/kubernetes/pnda/requirements.yaml
new file mode 100644 (file)
index 0000000..f06f735
--- /dev/null
@@ -0,0 +1,20 @@
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'