summaryrefslogtreecommitdiffstats
path: root/robot/assets/helm/pm-https-server
diff options
context:
space:
mode:
authorKrzysztof Kuzmicki <krzysztof.kuzmicki@nokia.com>2021-11-24 12:00:45 +0100
committerMorgan Richomme <morgan.richomme@orange.com>2021-12-13 17:01:24 +0000
commitbae8d839893d1ce5c1e9dfa670fbe536520093a0 (patch)
tree02feb907365859d03498ee9db10cf517a05804d1 /robot/assets/helm/pm-https-server
parent2a2c4c30c423a528e1969eaa8fb1176ba3250689 (diff)
[ROBOT] ADD HTTPS based BULKPM test cases that use helm based componentsrefactoring
Add https server based test cases Signed-off-by: Krzysztof Kuzmicki <krzysztof.kuzmicki@nokia.com> Issue-ID: INT-1895 Change-Id: I74f7102398a08e1629b50f510ef179d35c8761bd
Diffstat (limited to 'robot/assets/helm/pm-https-server')
-rw-r--r--robot/assets/helm/pm-https-server/Chart.yaml27
-rw-r--r--robot/assets/helm/pm-https-server/README.md34
-rw-r--r--robot/assets/helm/pm-https-server/resources/E_VES_bulkPM_IF_3GPP_3_example_1.xml.gzbin0 -> 2046 bytes
-rw-r--r--robot/assets/helm/pm-https-server/templates/_helpers.tpl78
-rw-r--r--robot/assets/helm/pm-https-server/templates/certificate.yaml26
-rw-r--r--robot/assets/helm/pm-https-server/templates/deployment.yaml46
-rw-r--r--robot/assets/helm/pm-https-server/templates/secret.yaml8
-rw-r--r--robot/assets/helm/pm-https-server/templates/service.yaml24
-rw-r--r--robot/assets/helm/pm-https-server/values.yaml58
9 files changed, 301 insertions, 0 deletions
diff --git a/robot/assets/helm/pm-https-server/Chart.yaml b/robot/assets/helm/pm-https-server/Chart.yaml
new file mode 100644
index 00000000..32e1c595
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/Chart.yaml
@@ -0,0 +1,27 @@
+apiVersion: v2
+name: pm-https-server
+description: A Helm chart for Kubernetes
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+type: application
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 0.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+appVersion: 1.0.1
+dependencies:
+ - name: repositoryGenerator
+ version: ~9.x-0
+ repository: '@chart-museum'
diff --git a/robot/assets/helm/pm-https-server/README.md b/robot/assets/helm/pm-https-server/README.md
new file mode 100644
index 00000000..f7d80ee8
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/README.md
@@ -0,0 +1,34 @@
+# PM HTTPS Server
+
+# How to deploy on lab
+
+1. Copy files from helm/pm-https-server to lab
+
+ `scp -i <path to key file .pem> -r <path to>/pm-https-server ubuntu@<RKE_NODE_IP>:<remote path to>/pm-https-server `
+2. Log into the RKE
+
+3. Install chart on your lab
+
+ `helm install pm-https-server ./pm-https-server`
+
+# Checking if everything is working properly
+
+1. Find service on which your application runs
+
+ `kubectl get service | grep pm-https-server`
+
+2. If service is running try to connect to server
+
+ `curl -u demo:demo123456! <http://WORKER_IP:PM_HTTPS_SERVER_PORT>`
+
+ if everything is working properly you should get response like below
+
+ `<html><body><h1>It works!</h1></body></html>`
+
+3. If step 2 ends with success try to upload file
+
+ `curl -F "uploaded_file=@./resources/E_VES_bulkPM_IF_3GPP_3_example_1.xml.gz" -u demo:demo123456! http://WORKER_IP:PM_HTTPS_SERVER_PORT/upload.php`
+
+ When file will be successfully uploaded you should see information like this:
+
+ `The file E_VES_bulkPM_IF_3GPP_3_example_1.xml.gz has been uploaded` \ No newline at end of file
diff --git a/robot/assets/helm/pm-https-server/resources/E_VES_bulkPM_IF_3GPP_3_example_1.xml.gz b/robot/assets/helm/pm-https-server/resources/E_VES_bulkPM_IF_3GPP_3_example_1.xml.gz
new file mode 100644
index 00000000..3af5ea8f
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/resources/E_VES_bulkPM_IF_3GPP_3_example_1.xml.gz
Binary files differ
diff --git a/robot/assets/helm/pm-https-server/templates/_helpers.tpl b/robot/assets/helm/pm-https-server/templates/_helpers.tpl
new file mode 100644
index 00000000..b7a3e1e8
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/templates/_helpers.tpl
@@ -0,0 +1,78 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "pmhttpsserver.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common namespace
+*/}}
+{{- define "pmhttpsserver.namespace" -}}
+ {{- default .Release.Namespace .Values.nsPrefix -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "pmhttpsserver.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "pmhttpsserver.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "pmhttpsserver.labels" -}}
+helm.sh/chart: {{ include "pmhttpsserver.chart" . }}
+{{ include "pmhttpsserver.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "pmhttpsserver.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "pmhttpsserver.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "pmhttpsserver.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "pmhttpsserver.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
+
+{{/*
+Define dns names in certificate
+*/}}
+{{- define "pmhttpsserver.dnsNames" -}}
+{{- range $dnsName := $.Values.certificates.dnsNames }}
+- {{ $dnsName }}
+{{- end }}
+{{- end }}
diff --git a/robot/assets/helm/pm-https-server/templates/certificate.yaml b/robot/assets/helm/pm-https-server/templates/certificate.yaml
new file mode 100644
index 00000000..229ac940
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/templates/certificate.yaml
@@ -0,0 +1,26 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ namespace: {{ include "pmhttpsserver.namespace" . }}
+ name: '{{ .Values.certificates.name }}-cert'
+spec:
+ commonName: {{ .Values.certificates.commonName }}
+ secretName: '{{ .Values.certificates.name }}-secret'
+ renewBefore: {{ .Values.certificates.renewBefore }}
+ duration: {{ .Values.certificates.duration }}
+ subject:
+ organizations:
+ - {{ .Values.certificates.subject.organization }}
+ countries:
+ - {{ .Values.certificates.subject.country }}
+ localities:
+ - {{ .Values.certificates.subject.locality }}
+ provinces:
+ - {{ .Values.certificates.subject.province }}
+ organizationalUnits:
+ - {{ .Values.certificates.subject.organizationalUnit }}
+ issuerRef:
+ group: {{ .Values.certificates.issuerRef.group }}
+ kind: {{ .Values.certificates.issuerRef.kind }}
+ name: {{ .Values.certificates.issuerRef.name }}
+ dnsNames: {{ include "pmhttpsserver.dnsNames" . | indent 4 }}
diff --git a/robot/assets/helm/pm-https-server/templates/deployment.yaml b/robot/assets/helm/pm-https-server/templates/deployment.yaml
new file mode 100644
index 00000000..dc00607a
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/templates/deployment.yaml
@@ -0,0 +1,46 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ include "pmhttpsserver.fullname" . }}
+ namespace: {{ include "pmhttpsserver.namespace" . }}
+ labels:
+ {{ include "pmhttpsserver.labels" . | nindent 4 }}
+spec:
+ selector:
+ matchLabels:
+ {{ include "pmhttpsserver.selectorLabels" . | nindent 6 }}
+ template:
+ metadata:
+ labels:
+ {{ include "pmhttpsserver.selectorLabels" . | nindent 8 }}
+ spec:
+ containers:
+ - name: {{ .Chart.Name }}
+ image: '{{ include "repositoryGenerator.repository" . }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}'
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ ports:
+ - name: http
+ containerPort: 80
+ protocol: TCP
+ - name: http2
+ containerPort: 8080
+ protocol: TCP
+ - name: https
+ containerPort: 443
+ protocol: TCP
+ volumeMounts:
+ - name: certstore
+ mountPath: {{ .Values.certsDir }}
+ volumes:
+ - name: certstore
+ projected:
+ sources:
+ - secret:
+ name: '{{.Values.certificates.name}}-secret'
+ items:
+ - key: tls.key
+ path: key.pem
+ - key: tls.crt
+ path: keystore.pem
+ - key: ca.crt
+ path: truststore.pem
diff --git a/robot/assets/helm/pm-https-server/templates/secret.yaml b/robot/assets/helm/pm-https-server/templates/secret.yaml
new file mode 100644
index 00000000..9d5547d4
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/templates/secret.yaml
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ name: '{{ .Values.certificates.name }}-secret'
+ namespace: {{ include "pmhttpsserver.namespace" . }}
+data:
+ p12.pass: MjNlOTE3NzVjOTE4ZTRmNjY4ZTFhYzgyZDY5ZjExYWU0ZWU0ZGM2MTM3YzUwMzZkZjE3MmEyODJhYTA5
+type: Opaque
diff --git a/robot/assets/helm/pm-https-server/templates/service.yaml b/robot/assets/helm/pm-https-server/templates/service.yaml
new file mode 100644
index 00000000..c85c9c8c
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/templates/service.yaml
@@ -0,0 +1,24 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "pmhttpsserver.fullname" . }}
+ namespace: {{ include "pmhttpsserver.namespace" . }}
+ labels:
+ {{ include "pmhttpsserver.labels" . | nindent 4 }}
+spec:
+ type: NodePort
+ ports:
+ - port: 80
+ targetPort: http
+ protocol: TCP
+ name: http
+ - port: 8080
+ targetPort: http2
+ protocol: TCP
+ name: http2
+ - port: 443
+ targetPort: https
+ protocol: TCP
+ name: https
+ selector:
+ {{ include "pmhttpsserver.selectorLabels" . | nindent 4 }}
diff --git a/robot/assets/helm/pm-https-server/values.yaml b/robot/assets/helm/pm-https-server/values.yaml
new file mode 100644
index 00000000..2e854033
--- /dev/null
+++ b/robot/assets/helm/pm-https-server/values.yaml
@@ -0,0 +1,58 @@
+# Default values for myhttpsserver.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+image:
+ repository: onap/org.onap.integration.nfsimulator.pmhttpsserver
+ pullPolicy: IfNotPresent
+ # Overrides the image tag whose default is the chart appVersion.
+ tag: "1.0.1"
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+podAnnotations: {}
+
+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:'.
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+
+certsDir: "/etc/apache2/certs/external"
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+certificates:
+ name: pm-http-server
+ dnsNames:
+ - pm-http-server
+ renewBefore: 720h #30 days
+ duration: 8760h #365 days
+ commonName: pm-http-server
+ subject:
+ organization: "Linux-Foundation"
+ country: "US"
+ locality: "San-Francisco"
+ province: "California"
+ organizationalUnit: "ONAP"
+ # issuer:
+ # group: certmanager.onap.org
+ # kind: CMPv2Issuer
+ # name: cmpv2-issuer-onap
+ issuerRef:
+ group: certmanager.onap.org
+ kind: CMPv2Issuer
+ name: cmpv2-issuer-onap
+ # ipAddresses: "127.0.0.1"