Skip to content

Commit 4817ade

Browse files
authored
Merge pull request #33 from ruomengh/cleanup
2 parents 1deac81 + cadc87d commit 4817ade

File tree

19 files changed

+174
-735
lines changed

19 files changed

+174
-735
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Run CCNP E2E test
2+
on:
3+
schedule:
4+
- cron: '0 7 * * *'
5+
push:
6+
branches:
7+
- main
8+
paths:
9+
- '.github/workflows/e2e-test-k8s.yaml'
10+
- 'deployment/**'
11+
- 'container/**'
12+
- 'sdk/**'
13+
pull_request:
14+
paths:
15+
- '.github/workflows/e2e-test-k8s.yaml'
16+
- 'deployment/**'
17+
- 'container/**'
18+
- 'sdk/**'
19+
workflow_dispatch:
20+
inputs:
21+
image_registey:
22+
type: string
23+
default: gar-registry.caas.intel.com/cpio
24+
required: true
25+
tag:
26+
type: string
27+
default: 0.3
28+
required: true
29+
jobs:
30+
E2E_test:
31+
runs-on: tdvm-ut
32+
steps:
33+
- name: Checkout code
34+
uses: actions/[email protected]
35+
- name: Deploy CCNP server
36+
run: |
37+
sudo ./deployment/kubernetes/script/deploy-ccnp.sh -r ${{ inputs.image_registey }} -g ${{ inputs.tag }} -d
38+
- name: Deploy CCNP test pod
39+
run: |
40+
sudo ./deployment/kubernetes/script/deploy-ccnp-example.sh -r ${{ inputs.image_registey }} -g ${{ inputs.tag }} -d
41+
- name: Run Test
42+
run: |
43+
sudo ./test/e2e-test/ci-e2e-test.sh

.github/workflows/e2e-test.yaml

Lines changed: 0 additions & 21 deletions
This file was deleted.

deployment/kubernetes/script/deploy-ccnp-example.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,4 @@ if [[ -z "$POD_NAME" ]]; then
5656
echo "No ccnp-example pod with status running! Please check your deployment."
5757
exit 1
5858
fi
59+
echo "CCNP example pod $POD_NAME is Running."

deployment/kubernetes/script/deploy-ccnp.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,48 @@ function deploy_ccnp {
106106
popd || exit
107107
}
108108

109+
function check_ccnp_deployment {
110+
# Check CCNP device plugin pod
111+
echo "-----------Checking ccnp device plugin pod..."
112+
for i in {1..10}
113+
do
114+
DEVICE_POD=$(kubectl get po -n kube-system | grep device | grep Running | awk '{ print $1 }')
115+
if [[ -z "$DEVICE_POD" ]]
116+
then
117+
sleep 3
118+
echo "Retrying $i time ..."
119+
else
120+
break
121+
fi
122+
done
123+
124+
if [ -z "$DEVICE_POD" ]; then
125+
echo "Error: CCNP device plugin pod is not Running."
126+
exit 1
127+
fi
128+
echo "CCNP device plugin pod $DEVICE_POD is Running."
129+
130+
# Check CCNP server pod
131+
echo "-----------Checking ccnp server pod..."
132+
for i in {1..10}
133+
do
134+
CCNP_SERVER_POD=$(kubectl get po -n ccnp | grep ccnp-server | grep Running | awk '{ print $1 }')
135+
if [[ -z "$CCNP_SERVER_POD" ]]
136+
then
137+
sleep 3
138+
echo "Retrying $i time ..."
139+
else
140+
break
141+
fi
142+
done
143+
144+
if [ -z "$CCNP_SERVER_POD" ]; then
145+
echo "Error: CCNP server pod is not Running."
146+
exit 1
147+
fi
148+
echo "CCNP server pod $CCNP_SERVER_POD is Running."
149+
}
150+
109151
check_env
110152
process_args "$@"
111153

@@ -122,3 +164,4 @@ if [[ $delete_force == true ]]; then
122164
fi
123165

124166
deploy_ccnp
167+
check_ccnp_deployment

test/ci-test/ci-e2e-test.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
3+
# This is a CI test script. The script will run in ccnp-example pod.
4+
# It will check SDK of python, golang and rust.
5+
6+
set -o errexit
7+
8+
PY_WORK_DIR='test/py-test'
9+
GO_WORK_DIR='test/go-test/test-cases'
10+
11+
for i in {1..3}
12+
do
13+
POD_NAME=$(kubectl get po | grep ccnp-example | grep Running | awk '{ print $1 }')
14+
if [[ -z "$POD_NAME" ]]
15+
then
16+
sleep 2
17+
echo "Retrying $i time ..."
18+
else
19+
break
20+
fi
21+
done
22+
23+
if [ -z "$POD_NAME" ]; then
24+
echo "Error: CCNP example pod is not Running."
25+
exit 1
26+
fi
27+
28+
29+
# Run python test cases
30+
if $PY_FLAG
31+
then
32+
kubectl exec -it "$POD_NAME" -- pytest -v ${PY_WORK_DIR}
33+
fi
34+
35+
# Run golang test cases
36+
if $GO_FLAG
37+
then
38+
kubectl exec -it "$POD_NAME" -- bash -c "pushd ${GO_WORK_DIR};go test -v;popd "
39+
fi
40+
41+
# Run rust test cases
42+
if $GO_FLAG
43+
then
44+
kubectl exec -it "$POD_NAME" -- bash -c "pushd ${GO_WORK_DIR};go test -v;popd "
45+
fi

test/ci-test/py-test/test_ccnp.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
"""
2+
CCNP test:
3+
1. Verify Event logs with RTMR values
4+
2. Verify CC report can be returned successfully
5+
3. Verify IMR[0], IMR[1] and IMR[3] (container event log hash) is not empty
6+
"""
7+
8+
import logging
9+
import argparse
10+
11+
from ccnp import CcnpSdk
12+
13+
LOG = logging.getLogger(__name__)
14+
15+
logging.basicConfig(
16+
level=logging.INFO,
17+
format="%(asctime)s [%(levelname)s] %(message)s",
18+
handlers=[
19+
logging.StreamHandler()
20+
]
21+
)
22+
23+
class TestCCNP:
24+
'''
25+
Tests for CCNP python SDK
26+
'''
27+
def test_eventlog_verify(self):
28+
evt = CcnpSdk.inst().get_cc_eventlog()
29+
replay = CcnpSdk.inst().replay_cc_eventlog(evt)
30+
for r in replay:
31+
LOG.info("Replay IMR[%d]: %s", r, replay[r][12].hex())
32+
m = CcnpSdk.inst().get_cc_measurement([r, 12])
33+
LOG.info("Read IMR[%d]: %s", r, m.hash.hex())
34+
assert m.hash == replay[r][12], "Replay IMR value does not match real IMR."
35+
36+
def test_cc_report(self):
37+
assert CcnpSdk.inst().get_cc_report().dump() is not ""
38+
39+
def test_container_imr(self):
40+
for i in [0, 1, 3]:
41+
m = CcnpSdk.inst().get_cc_measurement([i, 12])
42+
assert m.hash.hex() is not "", "IMR value should not empty."

test/e2e-test/ci-clean.sh

Lines changed: 0 additions & 17 deletions
This file was deleted.

test/e2e-test/ci-e2e-test.sh

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)