[vFW_CNF_CDS] Provide Helm Tests for CNF 59/121159/7
authorKonrad Bańka <k.banka@samsung.com>
Fri, 7 May 2021 10:46:51 +0000 (12:46 +0200)
committerKonrad Bańka <k.banka@samsung.com>
Thu, 13 May 2021 16:29:06 +0000 (18:29 +0200)
Provide simple ping-based Helm tests for vFW CNF for demo purposes.

Issue-ID: INT-1899
Signed-off-by: Konrad Bańka <k.banka@samsung.com>
Change-Id: Ib526989760f34de790bd8d7a403941d73cb7250c

.coafile
heat/vFW_CNF_CDS/templates/helm/vfw/templates/tests/ping.yaml [new file with mode: 0644]
heat/vFW_CNF_CDS/templates/helm/vfw/values.yaml
heat/vFW_CNF_CDS/templates/helm/vpkg/templates/tests/ping.yaml [new file with mode: 0644]
heat/vFW_CNF_CDS/templates/helm/vpkg/values.yaml
heat/vFW_CNF_CDS/templates/helm/vsn/templates/tests/ping.yaml [new file with mode: 0644]
heat/vFW_CNF_CDS/templates/helm/vsn/values.yaml

index 372be89..0d741e6 100644 (file)
--- a/.coafile
+++ b/.coafile
@@ -1,8 +1,10 @@
 [yaml]
 bears = YAMLLintBear
 yamllint_config = .yamllint
+#[vFW_CNF_CDS] Helm tests use go template conditionals that are not yaml-compliant
 ignore =
-  .tox/**
+  .tox/**,
+  heat/vFW_CNF_CDS/templates/helm/**/templates/tests/*
 
 [json]
 bears = JSONFormatBear
diff --git a/heat/vFW_CNF_CDS/templates/helm/vfw/templates/tests/ping.yaml b/heat/vFW_CNF_CDS/templates/helm/vfw/templates/tests/ping.yaml
new file mode 100644 (file)
index 0000000..37b4183
--- /dev/null
@@ -0,0 +1,55 @@
+---
+# Copyright © 2021 Samsung Electronics
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+{{- if eq .Values.Tests.enabled "yes" }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: "{{ .Values.vfw_name_0 }}-test"
+  labels:
+    vnf-name: {{ .Values.vnf_name }}
+    vf-module-name: {{ .Values.vfw_name_0 }}
+    release: {{ .Release.Name }}
+    chart: {{ .Chart.Name }}
+  annotations:
+    "helm.sh/hook": test-success
+spec:
+  completions: 1
+  template:
+    metadata:
+      annotations:
+        k8s.v1.cni.cncf.io/networks: "{{ .Values.net_attachment_definition }}"
+        k8s.plugin.opnfv.org/nfn-network: |
+            { "type": "ovn4nfv",
+              "interface": [
+                {
+                  "name": {{ .Values.int_private1_net_id | quote }},
+                  "interface": "eth1" ,
+                  "defaultGateway": "false"
+                }
+                {
+                  "name": {{ .Values.int_private2_net_id | quote }},
+                  "interface": "eth2" ,
+                  "defaultGateway": "false"
+                }
+              ]
+            }
+    spec:
+      restartPolicy: Never
+      containers:
+        - name: "ping-test-eth1"
+          image: busybox
+          command:
+            - /bin/sh
+            - -exc
+            - "ping -c {{ .Values.Tests.ping_count }} -I eth1 {{ .Values.vfw_int_private1_ip_0 }}"
+        - name: "ping-test-eth2"
+          image: busybox
+          command:
+            - /bin/sh
+            - -exc
+            - "ping -c {{ .Values.Tests.ping_count }} -I eth2 {{ .Values.vfw_int_private2_ip_0 }}"
+{{- end -}}
index 488f61d..59ce55b 100644 (file)
@@ -25,3 +25,8 @@ vsn_int_private2_ip_0: 192.168.20.3
 dcae_collector_port: 8080
 dcae_collector_ip: 10.0.4.1 #Placeholder
 demo_artifacts_version: 1.5.0
+
+# Tests
+Tests:
+  enabled: "yes"
+  ping_count: 4
diff --git a/heat/vFW_CNF_CDS/templates/helm/vpkg/templates/tests/ping.yaml b/heat/vFW_CNF_CDS/templates/helm/vpkg/templates/tests/ping.yaml
new file mode 100644 (file)
index 0000000..f490026
--- /dev/null
@@ -0,0 +1,44 @@
+---
+# Copyright © 2021 Samsung Electronics
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+{{- if eq .Values.Tests.enabled "yes" }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: "{{ .Values.vpg_name_0 }}-test"
+  labels:
+    vnf-name: {{ .Values.vnf_name }}
+    vf-module-name: {{ .Values.vpg_name_0 }}
+    release: {{ .Release.Name }}
+    chart: {{ .Chart.Name }}
+  annotations:
+    "helm.sh/hook": test-success
+spec:
+  completions: 1
+  template:
+    metadata:
+      annotations:
+        k8s.v1.cni.cncf.io/networks: "{{ .Values.net_attachment_definition }}"
+        k8s.plugin.opnfv.org/nfn-network: |
+            { "type": "ovn4nfv",
+              "interface": [
+                {
+                  "name": {{ .Values.int_private1_net_id | quote }},
+                  "interface": "eth1" ,
+                  "defaultGateway": "false"
+                }
+              ]
+            }
+    spec:
+      restartPolicy: Never
+      containers:
+        - name: "ping-test-eth1"
+          image: busybox
+          command:
+            - /bin/sh
+            - -exc
+            - "ping -c {{ .Values.Tests.ping_count }} -I eth1 {{ .Values.vpg_int_private1_ip_0 }}"
+{{- end -}}
index 82c208c..4c07aa5 100644 (file)
@@ -29,3 +29,8 @@ demo_artifacts_version: 1.5.0
 vfw_int_private1_ip_0: 192.168.10.3
 vsn_int_private2_ip_0: 192.168.20.3
 int_private2_net_cidr: 192.168.20.0/24
+
+# Tests
+Tests:
+  enabled: "yes"
+  ping_count: 4
diff --git a/heat/vFW_CNF_CDS/templates/helm/vsn/templates/tests/ping.yaml b/heat/vFW_CNF_CDS/templates/helm/vsn/templates/tests/ping.yaml
new file mode 100644 (file)
index 0000000..9b6a6d3
--- /dev/null
@@ -0,0 +1,44 @@
+---
+# Copyright © 2021 Samsung Electronics
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+{{- if eq .Values.Tests.enabled "yes" }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: "{{ .Values.vsn_name_0 }}-test"
+  labels:
+    vnf-name: {{ .Values.vnf_name }}
+    vf-module-name: {{ .Values.vsn_name_0 }}
+    release: {{ .Release.Name }}
+    chart: {{ .Chart.Name }}
+  annotations:
+    "helm.sh/hook": test-success
+spec:
+  completions: 1
+  template:
+    metadata:
+      annotations:
+        k8s.v1.cni.cncf.io/networks: "{{ .Values.net_attachment_definition }}"
+        k8s.plugin.opnfv.org/nfn-network: |
+            { "type": "ovn4nfv",
+              "interface": [
+                {
+                  "name": {{ .Values.int_private2_net_id | quote }},
+                  "interface": "eth1" ,
+                  "defaultGateway": "false"
+                }
+              ]
+            }
+    spec:
+      restartPolicy: Never
+      containers:
+        - name: "ping-test-eth1"
+          image: busybox
+          command:
+            - /bin/sh
+            - -exc
+            - "ping -c {{ .Values.Tests.ping_count }} -I eth1 {{ .Values.vsn_int_private2_ip_0 }}"
+{{- end -}}
index 6d12c51..44f0ba9 100644 (file)
@@ -24,3 +24,8 @@ vsn_onap_private_ip_0: 10.10.100.4
 # Env Variables
 int_private2_gw_ip: 192.168.20.1
 int_private1_net_cidr: 192.168.10.0/24
+
+# Tests
+Tests:
+  enabled: "yes"
+  ping_count: 4