summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Platania <platania@research.att.com>2019-10-09 14:39:50 +0000
committerGerrit Code Review <gerrit@onap.org>2019-10-09 14:39:50 +0000
commit5b0139d2234044b4cef0e78fe35dee30c77cf39a (patch)
treed14d36233c3d748cbd53bd43851ba104320ec18f
parent2b3f953c2b2099539166e49bdd18f61d70e3ca68 (diff)
parentbd1c1916d906a894dbc0c1fd1245bf3d4735371b (diff)
Merge "splitting out light httpd" into stagingstaging
-rw-r--r--Chart.yaml2
-rw-r--r--resources/config/lighttpd/authorization1
-rw-r--r--resources/config/lighttpd/lighttpd.conf41
-rw-r--r--resources/lighttpd/index.html192
-rw-r--r--templates/configmap.yaml26
-rw-r--r--templates/deployment.yaml91
-rw-r--r--values.yaml12
7 files changed, 358 insertions, 7 deletions
diff --git a/Chart.yaml b/Chart.yaml
index 7dbed54..e9915ab 100644
--- a/Chart.yaml
+++ b/Chart.yaml
@@ -14,5 +14,5 @@
apiVersion: v1
description: A helm Chart for kubernetes-ONAP Robot
-name: robot
+name: integration
version: 5.0.0
diff --git a/resources/config/lighttpd/authorization b/resources/config/lighttpd/authorization
new file mode 100644
index 0000000..b254e65
--- /dev/null
+++ b/resources/config/lighttpd/authorization
@@ -0,0 +1 @@
+test:test
diff --git a/resources/config/lighttpd/lighttpd.conf b/resources/config/lighttpd/lighttpd.conf
new file mode 100644
index 0000000..03d2340
--- /dev/null
+++ b/resources/config/lighttpd/lighttpd.conf
@@ -0,0 +1,41 @@
+server.document-root = "/var/opt/ONAP/html/"
+
+server.port = 99
+
+server.username = "lighttpd"
+server.groupname = "lighttpd"
+
+dir-listing.activate = "disable"
+
+alias.url = ( "/logs/" => "/share/logs/" )
+$HTTP["url"] =~ "^/logs/" {
+ dir-listing.activate = "enable"
+}
+
+mimetype.assign = (
+ ".log" => "text/plain",
+ ".txt" => "text/plain",
+ ".png" => "image/png",
+ ".html" => "text/html",
+ ".xml" => "text/xml"
+)
+
+static-file.exclude-extensions = ( ".fcgi", ".php", ".rb", "~", ".inc", ".cgi" )
+index-file.names = ( "index.html" )
+
+server.modules += ( "mod_auth" )
+server.modules += ( "mod_alias" )
+server.modules += ( "mod_compress" )
+auth.debug = 2
+auth.backend = "plain"
+auth.backend.plain.userfile = "/etc/lighttpd/authorization"
+auth.require = ( "/" =>
+(
+"method" => "basic",
+"realm" => "Password protected area",
+"require" => "valid-user"
+)
+)
+
+# compress.cache-dir = "/var/lib/lighttpd/cache/compress"
+compress.filetype = ("application/x-javascript", "text/css", "text/html", "text/plain")
diff --git a/resources/lighttpd/index.html b/resources/lighttpd/index.html
new file mode 100644
index 0000000..f086f23
--- /dev/null
+++ b/resources/lighttpd/index.html
@@ -0,0 +1,192 @@
+<html><head>
+ <title>Quicklinks To Running Instances</title>
+ <script type="text/javascript">
+function getProperties(){
+ var request = new XMLHttpRequest();
+ request.open('GET', 'robot_properties.py', true);
+ request.overrideMimeType("text/plain");
+ request.onreadystatechange = function () {
+ var dict = {};
+ if (request.readyState === 4 && request.status === 200) {
+ outer_text = request.responseText.split('\n');
+ for (var i = 0; i < outer_text.length; i++) {
+ // ignore comments and empty
+ if(!outer_text[i].trim().startsWith('#') && outer_text[i].trim().length > 0) {
+ row_text = outer_text[i].split('=');
+ var key = row_text[0].trim()
+ var value = row_text[1].replace(/'/g, '').replace(/"/g, '').trim();
+ dict[key] = value
+ }
+ }
+ }
+
+ var props = document.getElementById("properties");
+ var text = props.innerHTML;
+ console.log(dict['GLOBAL_AAF_AUTHENTICATION'])
+ for(key in dict) {
+
+ text = text.concat(key, " = ", dict[key], "<br />");
+ }
+ props.innerHTML = text;
+ }
+ request.send();
+}
+function populateTables(){
+ getProperties()
+}
+</script>
+ </head>
+
+ <body onload="populateTables()">
+ <h1>The Portal</h1>
+
+ The portal is the entry point to design/provision/operate ONAP. From there you can get to SDC, VID and Policy portals.
+
+ The portal can be found at:<p>
+
+ <a href="http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm">Portal</a>
+ <p>
+ One requires role based user names and passwords to receive the full portal functionality. In the demo setup we pre provisioned:
+ <p>
+ <ul>
+ <li> jh0003 Admin </li>
+ <li> cs0008 Designer </li>
+ <li> jm0007 Tester </li>
+ <li> op0001 Operator </li>
+ <li> gv0001 Governance </li>
+ <li> pm0001 Product Manager </li>
+ <li> ps0001 Product Strategy </li>
+ </ul>
+ <p>
+ the password for all of them is: demo123456!
+
+ <h3>/etc/hosts or C:\Windows\system32\drivers\etc\hosts</h>
+ <pre>
+
+portal-app.onap portal portal.api.simpledemo.onap.org
+N/A sdc sdc.api.simpledemo.onap.org
+vid.onap vid vid.api.simpledemo.onap.org
+pdp.onap policy policy.api.simpledemo.onap.org
+aai.onap aai1 aai.api.simpledemo.onap.org
+
+10.0.10.1 robot
+appc.onap appc
+so.onap so
+sdnc.onap sdnc
+msb-iag.onap multi-service
+dcae-healthcheck.onap dcae
+message-router.onap message-router
+clamp.onap clamp
+
+portal-app.onap vm-portal
+N/A vm-sdc
+vid.onap vm-vid
+pdp.onap vm-policy
+aai.onap vm-aai1
+10.0.10.1 vm-robot
+appc.onap vm-appc
+so.onap vm-so
+sdnc.onap vm-sdnc
+msb-iag.onap vm-multi-service
+dcae-healthcheck.onap vm-dcae
+message-router.onap vm-message-router
+clamp.onap vm-clamp
+
+ </pre>
+
+ <h1> The Reality </h1>
+
+ As everything should go through the portal there are many subsystems which have there own GUI or API which come in very handy when debugging things. Here the most important once.
+
+ <h2> Testing </h2>
+
+ <h3>Robot Logs</h3>
+
+ <a href="http://10.0.10.1:88/logs/"> Robot Logs </a>
+
+ <h3>Robot vm_properties.py for local testing</h3>
+ <div id="properties"></div>
+
+ <h2> SDN-C </h2>
+
+ <a href="http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@sdnc.onap:8282/apidoc/explorer/index.html"> Controller </a> with admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U <p>
+
+ <a href="http://sdnc.onap:8843/signup"> To sign up </a> <p>
+ <a href="http://sdnc.onap:8843/login"> Admin </a> <p>
+
+ <h2> App-C </h2>
+
+ <a href="http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@appc.onap:8282/apidoc/explorer/index.html"> Controller </a> with admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U <p>
+
+ <h2> Policy </h2>
+
+ <b> Not working. </b> :
+ <a href="http://healthcheck:zb!XztG34@pdp.onap:6969/healthcheck"> Healthcheck </a> <p>
+
+ <h2> SO </h2>
+
+ <a href="http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@so.onap:9990/"> JBOSS GUI </a> with admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U <p>
+
+ <a href="http://so.onap:8080/camunda"> Camunda GUI </a> with admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U <p>
+
+ <h2> DCAE </h2>
+
+ <h3> General GUIs </h3>
+ <a href="http://console:ZjJkYjllMjljMTI2M2Iz@dcae-healthcheck.onap:9998/resources"> DCAE Controller </a>
+ This might show up empty in a web browser as no content type is set in the response. If that's the case use curl: <p>
+
+ curl http://console:ZjJkYjllMjljMTI2M2Iz@dcae-healthcheck.onap:9998/resources <p>
+
+ <a href="http://10.0.4.105:9999/ns/TCA/apps/dcae-tca/programs/flows/TCAVESCollectorFlow/runs"> CDAP GUI </a> <p>
+
+ <h3> DCAE internal Message Router </h3>
+
+ <a href="http://10.0.4.102:3904/topics"> Topics </a> <p>
+
+ <a href="http://10.0.4.102:3904/events/unauthenticated.SEC_MEASUREMENT_OUTPUT/monitor/0?timeout=10000"> MR topic for collector to TCA </a> <p>
+
+ <a href="http://10.0.4.102:3904/events/unauthenticated.TCA_EVENT_OUTPUT/monitor/0?timeout=10000"> MR topic for TCA alert to Policy </a> <p>
+
+ <h2> Message Router used between core components </h2>
+
+ <a href="http://message-router.onap:3904/topics"> List of Topics </a> <p>
+
+ <h3> Topics of Interest </h3>
+
+ For topics without authentication one can monitor the traffic on a topic with: <p>
+
+ http://message-router.onap:3904/events/PUT_TOPIC_HERE/group1/C1?timeout=5000 <p>
+
+ some important once listed below. <p>
+
+ <ul>
+ <li> <a href="http://message-router.onap:3904/events/APPC-CL/monitor/0?timeout=10000"> APPC-CL Topic -- Policy Publishes Requests and APP-C publishes response </a>
+ <li> <a href="http://message-router.onap:3904/events/PDPP-CONFIGURATION/monitor/0?timeout=10000"> PDPD-CONFIGURATION Topic </a>
+ <li> <a href="http://message-router.onap:3904/events/POLICY-CL-MGT/monitor/0?timeout=10000"> POLICY-CL-MGT Topic -- Control loop operational policy </a>
+ <li> <a href="http://message-router.onap:3904/events/DCAE-CL-EVENT/monitor/0?timeout=10000"> DCAE-CL-EVENT Topic -- Provides the Analytics output from DCAE</a>
+
+ </ul>
+
+ <h1> SSH to VM </h1>
+
+ The following links will open a shell and ssh to the various running VMs (at least on a Mac). It assumes that the .ssh/config file has been set appropriately and /etc/hosts has been updated to the running instance.<p>
+
+ <a href="ssh://aai.onap"> AAI1 </a><p>
+ <a href="ssh://pdp.onap"> Policy </a><p>
+ <a href="ssh://N/A"> SDC </a><p>
+ <a href="ssh://portal-app.onap"> Portal </a><p>
+ <a href="ssh://dcae-healthcheck.onap"> DCAE </a><p>
+ <a href="ssh://appc.onap"> APP-C </a><p>
+ <a href="ssh://so.onap"> SO </a><p>
+ <a href="ssh://sdnc.onap"> SDN-C </a><p>
+ <a href="ssh://vid.onap"> VID </a><p>
+ <a href="ssh://message-router.onap"> Message Router </a><p>
+ <a href="ssh://10.0.10.1"> Robot Framework for testing </a><p>
+ <a href="ssh://10.0.0.1"> DNS server for management network </a><p>
+
+ Inside the VM you can list the docker containers by typing: <p>
+ docker ps <p>
+ and can get a shell prompt by executing the bash command.
+ For example: <p> docker exec -it onapete_container bash <p>
+
+</body></html>
diff --git a/templates/configmap.yaml b/templates/configmap.yaml
index da50934..170ee56 100644
--- a/templates/configmap.yaml
+++ b/templates/configmap.yaml
@@ -24,3 +24,29 @@ metadata:
heritage: {{ .Release.Service }}
data:
{{ tpl (.Files.Glob "resources/config/eteshare/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-lighttpd-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/lighttpd/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-lighttpd-index-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/lighttpd/*").AsConfig . | indent 2 }} \ No newline at end of file
diff --git a/templates/deployment.yaml b/templates/deployment.yaml
index 7b0c140..255017b 100644
--- a/templates/deployment.yaml
+++ b/templates/deployment.yaml
@@ -31,11 +31,9 @@ spec:
release: {{ .Release.Name }}
spec:
containers:
- - name: {{ include "common.name" . }}
+ - name: {{ include "common.name" . }}-robot
image: "{{ include "common.repository" . }}/{{ .Values.image }}"
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- ports:
- - containerPort: {{ .Values.service.internalPort }}
{{ if .Values.liveness.enabled }}
livenessProbe:
tcpSocket:
@@ -58,8 +56,85 @@ spec:
mountPath: /share/config
- name: robot-logs
mountPath: /share/logs
+ - name: vnf-assets
+ mountPath: /share/assets
resources:
{{ include "common.resources" . }}
+ - name: {{ include "common.name" . }}-web
+ image: "{{ .Values.lighthttpdImage }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ ports:
+ - containerPort: {{ .Values.service.internalPort }}
+ tty: true
+ {{ if .Values.liveness.enabled }}
+ 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 }}
+ volumeMounts:
+ - name: localtime
+ mountPath: /etc/localtime
+ readOnly: true
+ - name: robot-eteshare
+ mountPath: /var/www/localhost/htdocs/robot_properties.py
+ subPath: robot_properties.py
+ - name: robot-lighttpd-index
+ mountPath: /var/www/localhost/htdocs/index.html
+ subPath: index.html
+ - name: robot-logs
+ mountPath: /share/logs
+ - name: robot-lighttpd-config
+ mountPath: /etc/lighttpd/
+ resources:
+{{ include "common.resources" . }}
+ - name: {{ include "common.name" . }}-debug
+ image: "{{ .Values.debugImage }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ if .Values.liveness.enabled }}
+ livenessProbe:
+ exec:
+ command:
+ - ls
+ - /
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ {{ end }}
+ readinessProbe:
+ exec:
+ command:
+ - ls
+ - /
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ volumeMounts:
+ - name: robot-logs
+ mountPath: /share/logs
+ resources:
+{{ include "common.resources" . }}
+ initContainers:
+ - name: git-sync
+ image: {{ .Values.gitInitImage }}
+ volumeMounts:
+ - mountPath: /git/tmp
+ name: vnf-assets
+ env:
+ - name: GIT_SYNC_REPO
+ value: "{{ .Values.vnfAssetLocation }}"
+ - name: GIT_SYNC_ONE_TIME
+ value: "true"
+ - name: GIT_SYNC_REF
+ value: "{{ .Values.demoArtifactsVersion }}"
+ - name: GIT_SYNC_ROOT
+ value: "/git/tmp"
+ securityContext:
+ runAsUser: 0
{{- if .Values.nodeSelector }}
nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
@@ -86,5 +161,15 @@ spec:
configMap:
name: {{ include "common.fullname" . }}-eteshare-configmap
defaultMode: 0755
+ - name: robot-lighttpd-config
+ configMap:
+ name: {{ include "common.fullname" . }}-lighttpd-configmap
+ defaultMode: 0755
+ - name: robot-lighttpd-index
+ configMap:
+ name: {{ include "common.fullname" . }}-lighttpd-index-configmap
+ defaultMode: 0755
+ - name: vnf-assets
+ emptyDir: {}
imagePullSecrets:
- name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/values.yaml b/values.yaml
index 39989d3..a3c2ae4 100644
--- a/values.yaml
+++ b/values.yaml
@@ -26,6 +26,9 @@ image: onap/testsuite:1.5.0-STAGING-latest
pullPolicy: Always
ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
+lighthttpdImage: sebp/lighttpd:1.4.54-r0
+gitInitImage: googlecontainer/git-sync:v3.1.2
+debugImage: ubuntu:16.04
# flag to enable debugging - application support required
debugEnabled: false
@@ -47,6 +50,9 @@ demoArtifactsRepoUrl: "https://nexus.onap.org/content/repositories/releases"
# Openstack medium sized flavour name. Maps GLOBAL_INJECTED_VM_FLAVOR
openStackFlavourMedium: "m1.medium"
+# VNF Asset Location - git repo with assets
+vnfAssetLocation: https://gerrit.onap.org/r/demo.git
+
################# Openstack .RC Parameters ################################333
# KEYSTONE Version 3 Required for Rocky and beyond
# Openstack Keystone API version. Valid values are [ v2.0, v3 ]. Maps to GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION
@@ -228,12 +234,12 @@ readiness:
periodSeconds: 10
service:
- name: robot
+ name: integration
type: NodePort
portName: httpd
externalPort: 88
- internalPort: 88
- nodePort: "09"
+ internalPort: 99
+ nodePort: "99"
ingress:
enabled: false