From 59eb880b002cc73cc6e8834814c2da34b2ddfd54 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Tue, 17 Oct 2017 14:17:49 +0200 Subject: CSIT-748 Add K8S 2memif-2vnf topologies Change-Id: I23e118bf9fc9cfd638ac3ec0589f2ced14cc240c Signed-off-by: Peter Mikus --- resources/libraries/python/KubernetesUtils.py | 7 +- .../kubernetes/eth-l2bdbase-eth-2memif-2vnf.yaml | 271 +++++++++++++++++++++ .../kubernetes/eth-l2xcbase-eth-2memif-2vnf.yaml | 271 +++++++++++++++++++++ 3 files changed, 547 insertions(+), 2 deletions(-) create mode 100644 resources/templates/kubernetes/eth-l2bdbase-eth-2memif-2vnf.yaml create mode 100644 resources/templates/kubernetes/eth-l2xcbase-eth-2memif-2vnf.yaml (limited to 'resources') diff --git a/resources/libraries/python/KubernetesUtils.py b/resources/libraries/python/KubernetesUtils.py index 69e7e832b4..bcbb7f5dff 100644 --- a/resources/libraries/python/KubernetesUtils.py +++ b/resources/libraries/python/KubernetesUtils.py @@ -322,12 +322,14 @@ class KubernetesUtils(object): for _ in range(48): (ret_code, stdout, _) = ssh.exec_command_sudo(cmd, timeout=120) if int(ret_code) == 0: - ready = True + ready = False for line in stdout.splitlines(): try: state = line.split()[1].split('/') ready = True if 'Running' in line and\ state == state[::-1] else False + if not ready: + break except ValueError, IndexError: ready = False if ready: @@ -392,10 +394,11 @@ class KubernetesUtils(object): :param kwargs: Key-value pairs used to create configuration. :param kwargs: dict """ + skip_cnt = kwargs['cpu_skip'] + (kwargs['i'] - 1) * kwargs['cpu_cnt'] cpuset_cpus = \ CpuUtils.cpu_slice_of_list_per_node(node=kwargs['node'], cpu_node=kwargs['cpu_node'], - skip_cnt=kwargs['cpu_skip'], + skip_cnt=skip_cnt, cpu_cnt=kwargs['cpu_cnt'], smt_used=kwargs['smt_used']) diff --git a/resources/templates/kubernetes/eth-l2bdbase-eth-2memif-2vnf.yaml b/resources/templates/kubernetes/eth-l2bdbase-eth-2memif-2vnf.yaml new file mode 100644 index 0000000000..5bf290d0ee --- /dev/null +++ b/resources/templates/kubernetes/eth-l2bdbase-eth-2memif-2vnf.yaml @@ -0,0 +1,271 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: sfc-controller-cfg + namespace: csit +data: + etcd.conf: + insecure-transport: true + dial-timeout: 1000000000 + endpoints: + - "172.17.0.1:22379" + + sfc.conf: + sfc_controller_config_version: 1 + description: $$TEST_NAME$$ + host_entities: + - name: vswitch + sfc_entities: + - name: vswitch-vnf1 + description: vswitch to VNF1 - memif + type: 3 + elements: + - container: vswitch + port_label: $$VSWITCH_IF1$$ + etcd_vpp_switch_key: vswitch + type: 5 + - container: vnf1 + port_label: port1 + etcd_vpp_switch_key: vswitch + type: 2 + - name: vswitch-vnf2 + description: VNF2 to vswitch - memif + type: 3 + elements: + - container: vswitch + port_label: $$VSWITCH_IF2$$ + etcd_vpp_switch_key: vswitch + type: 5 + - container: vnf2 + port_label: port2 + etcd_vpp_switch_key: vswitch + type: 2 + - name: vnf1-vnf2 + description: vnf1 to vnf2 via vswitch - memifs + type: 2 + elements: + - container: vnf1 + port_label: port2 + etcd_vpp_switch_key: vswitch + type: 2 + - container: vnf2 + port_label: port1 + etcd_vpp_switch_key: vswitch + type: 2 + + vnf.conf: + vnf_plugin_config_version: 1 + description: VNF config + vnf_entities: + - name: vnf1 + container: vnf1 + l2xconnects: + - port_labels: + - port1 + - port2 + - name: vnf2 + container: vnf2 + l2xconnects: + - port_labels: + - port1 + - port2 + +--- +apiVersion: v1 +kind: Pod +metadata: + name: sfc-controller + namespace: csit +spec: + containers: + - name: "sfc-controller" + image: prod_sfc_controller + imagePullPolicy: IfNotPresent + command: + - /bin/sfc-controller + - -etcdv3-config=/opt/sfc-controller/dev/etcd.conf + - -sfc-config=/opt/sfc-controller/dev/sfc.conf + - -vnf-config=/opt/sfc-controller/dev/vnf.conf + volumeMounts: + - name: controller-config + mountPath: /opt/sfc-controller/dev + volumes: + - name: controller-config + configMap: + name: sfc-controller-cfg +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vswitch-agent-cfg + namespace: csit +data: + etcd.conf: + insecure-transport: true + dial-timeout: 1000000000 + endpoints: + - "172.17.0.1:22379" + + kafka.conf: + addrs: + - "172.17.0.1:9092" + +--- +apiVersion: v1 +kind: Pod +metadata: + name: vswitch-vpp + namespace: csit +spec: + hostNetwork: true + containers: + - name: "vswitch" + image: prod_vpp_agent_shrink + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - containerPort: 5002 + - containerPort: 9191 + readinessProbe: + httpGet: + path: /readiness + port: 9191 + periodSeconds: 1 + livenessProbe: + httpGet: + path: /liveness + port: 9191 + periodSeconds: 1 + initialDelaySeconds: 15 + env: + - name: MICROSERVICE_LABEL + value: vswitch + volumeMounts: + - name: vpp-config + mountPath: /etc/vpp + - name: agent-config + mountPath: /opt/vpp-agent/dev + - name: memif-sockets + mountPath: /tmp + volumes: + - name: vpp-config + configMap: + name: vswitch-vpp-cfg + - name: agent-config + configMap: + name: vswitch-agent-cfg + - name: memif-sockets + hostPath: + path: /tmp +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vnf-agent-cfg + namespace: csit +data: + etcd.conf: + insecure-transport: true + dial-timeout: 1000000000 + endpoints: + - "172.17.0.1:22379" + + kafka.conf: + addrs: + - "172.17.0.1:9092" + +--- +apiVersion: v1 +kind: Pod +metadata: + name: vnf1-vpp + namespace: csit +spec: + containers: + - name: "vnf1" + image: prod_vpp_agent_shrink + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - containerPort: 5002 + - containerPort: 9191 + readinessProbe: + httpGet: + path: /readiness + port: 9191 + periodSeconds: 1 + livenessProbe: + httpGet: + path: /liveness + port: 9191 + initialDelaySeconds: 15 + env: + - name: MICROSERVICE_LABEL + value: vnf1 + volumeMounts: + - name: vpp-config + mountPath: /etc/vpp + - name: agent-config + mountPath: /opt/vpp-agent/dev + - name: memif-sockets + mountPath: /tmp + volumes: + - name: vpp-config + configMap: + name: vnf1-vpp-cfg + - name: agent-config + configMap: + name: vnf-agent-cfg + - name: memif-sockets + hostPath: + path: /tmp + +--- +apiVersion: v1 +kind: Pod +metadata: + name: vnf2-vpp + namespace: csit +spec: + containers: + - name: "vnf2" + image: prod_vpp_agent_shrink + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - containerPort: 5002 + - containerPort: 9191 + readinessProbe: + httpGet: + path: /readiness + port: 9191 + periodSeconds: 1 + livenessProbe: + httpGet: + path: /liveness + port: 9191 + initialDelaySeconds: 15 + env: + - name: MICROSERVICE_LABEL + value: vnf2 + volumeMounts: + - name: vpp-config + mountPath: /etc/vpp + - name: agent-config + mountPath: /opt/vpp-agent/dev + - name: memif-sockets + mountPath: /tmp + volumes: + - name: vpp-config + configMap: + name: vnf2-vpp-cfg + - name: agent-config + configMap: + name: vnf-agent-cfg + - name: memif-sockets + hostPath: + path: /tmp diff --git a/resources/templates/kubernetes/eth-l2xcbase-eth-2memif-2vnf.yaml b/resources/templates/kubernetes/eth-l2xcbase-eth-2memif-2vnf.yaml new file mode 100644 index 0000000000..f2b03e670a --- /dev/null +++ b/resources/templates/kubernetes/eth-l2xcbase-eth-2memif-2vnf.yaml @@ -0,0 +1,271 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: sfc-controller-cfg + namespace: csit +data: + etcd.conf: + insecure-transport: true + dial-timeout: 1000000000 + endpoints: + - "172.17.0.1:22379" + + sfc.conf: + sfc_controller_config_version: 1 + description: $$TEST_NAME$$ + host_entities: + - name: vswitch + sfc_entities: + - name: vswitch-vnf1 + description: vswitch to VNF1 - memif + type: 4 + elements: + - container: vswitch + port_label: $$VSWITCH_IF1$$ + etcd_vpp_switch_key: vswitch + type: 5 + - container: vnf1 + port_label: port1 + etcd_vpp_switch_key: vswitch + type: 2 + - name: vswitch-vnf2 + description: VNF2 to vswitch - memif + type: 4 + elements: + - container: vswitch + port_label: $$VSWITCH_IF2$$ + etcd_vpp_switch_key: vswitch + type: 5 + - container: vnf2 + port_label: port2 + etcd_vpp_switch_key: vswitch + type: 2 + - name: vnf1-vnf2 + description: vnf1 to vnf2 via vswitch - memifs + type: 5 + elements: + - container: vnf1 + port_label: port2 + etcd_vpp_switch_key: vswitch + type: 2 + - container: vnf2 + port_label: port1 + etcd_vpp_switch_key: vswitch + type: 2 + + vnf.conf: + vnf_plugin_config_version: 1 + description: VNF config + vnf_entities: + - name: vnf1 + container: vnf1 + l2xconnects: + - port_labels: + - port1 + - port2 + - name: vnf2 + container: vnf2 + l2xconnects: + - port_labels: + - port1 + - port2 + +--- +apiVersion: v1 +kind: Pod +metadata: + name: sfc-controller + namespace: csit +spec: + containers: + - name: "sfc-controller" + image: prod_sfc_controller + imagePullPolicy: IfNotPresent + command: + - /bin/sfc-controller + - -etcdv3-config=/opt/sfc-controller/dev/etcd.conf + - -sfc-config=/opt/sfc-controller/dev/sfc.conf + - -vnf-config=/opt/sfc-controller/dev/vnf.conf + volumeMounts: + - name: controller-config + mountPath: /opt/sfc-controller/dev + volumes: + - name: controller-config + configMap: + name: sfc-controller-cfg +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vswitch-agent-cfg + namespace: csit +data: + etcd.conf: + insecure-transport: true + dial-timeout: 1000000000 + endpoints: + - "172.17.0.1:22379" + + kafka.conf: + addrs: + - "172.17.0.1:9092" + +--- +apiVersion: v1 +kind: Pod +metadata: + name: vswitch-vpp + namespace: csit +spec: + hostNetwork: true + containers: + - name: "vswitch" + image: prod_vpp_agent_shrink + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - containerPort: 5002 + - containerPort: 9191 + readinessProbe: + httpGet: + path: /readiness + port: 9191 + periodSeconds: 1 + livenessProbe: + httpGet: + path: /liveness + port: 9191 + periodSeconds: 1 + initialDelaySeconds: 15 + env: + - name: MICROSERVICE_LABEL + value: vswitch + volumeMounts: + - name: vpp-config + mountPath: /etc/vpp + - name: agent-config + mountPath: /opt/vpp-agent/dev + - name: memif-sockets + mountPath: /tmp + volumes: + - name: vpp-config + configMap: + name: vswitch-vpp-cfg + - name: agent-config + configMap: + name: vswitch-agent-cfg + - name: memif-sockets + hostPath: + path: /tmp +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vnf-agent-cfg + namespace: csit +data: + etcd.conf: + insecure-transport: true + dial-timeout: 1000000000 + endpoints: + - "172.17.0.1:22379" + + kafka.conf: + addrs: + - "172.17.0.1:9092" + +--- +apiVersion: v1 +kind: Pod +metadata: + name: vnf1-vpp + namespace: csit +spec: + containers: + - name: "vnf1" + image: prod_vpp_agent_shrink + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - containerPort: 5002 + - containerPort: 9191 + readinessProbe: + httpGet: + path: /readiness + port: 9191 + periodSeconds: 1 + livenessProbe: + httpGet: + path: /liveness + port: 9191 + initialDelaySeconds: 15 + env: + - name: MICROSERVICE_LABEL + value: vnf1 + volumeMounts: + - name: vpp-config + mountPath: /etc/vpp + - name: agent-config + mountPath: /opt/vpp-agent/dev + - name: memif-sockets + mountPath: /tmp + volumes: + - name: vpp-config + configMap: + name: vnf1-vpp-cfg + - name: agent-config + configMap: + name: vnf-agent-cfg + - name: memif-sockets + hostPath: + path: /tmp + +--- +apiVersion: v1 +kind: Pod +metadata: + name: vnf2-vpp + namespace: csit +spec: + containers: + - name: "vnf2" + image: prod_vpp_agent_shrink + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - containerPort: 5002 + - containerPort: 9191 + readinessProbe: + httpGet: + path: /readiness + port: 9191 + periodSeconds: 1 + livenessProbe: + httpGet: + path: /liveness + port: 9191 + initialDelaySeconds: 15 + env: + - name: MICROSERVICE_LABEL + value: vnf2 + volumeMounts: + - name: vpp-config + mountPath: /etc/vpp + - name: agent-config + mountPath: /opt/vpp-agent/dev + - name: memif-sockets + mountPath: /tmp + volumes: + - name: vpp-config + configMap: + name: vnf2-vpp-cfg + - name: agent-config + configMap: + name: vnf-agent-cfg + - name: memif-sockets + hostPath: + path: /tmp -- cgit 1.2.3-korg