Skip to content

Commit 474390b

Browse files
authored
test: add chainsaw tests (#438)
Signed-off-by: Charles-Edouard Brétéché <[email protected]>
1 parent 7a5d788 commit 474390b

File tree

20 files changed

+157
-156
lines changed

20 files changed

+157
-156
lines changed

Diff for: .circleci/config.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ references:
1515
sha256sum vault_1.13.2_linux_amd64.zip | grep f7930279de8381de7c532164b4a4408895d9606c0d24e2e9d2f9acb5dfe99b3c
1616
unzip vault_1.13.2_linux_amd64.zip
1717
mv vault /usr/bin/vault
18-
e2e_configuration: &e2e_configuration
18+
19+
chainsaw_configuration: &chainsaw_configuration
1920
pre_script: e2e/pre.sh
2021
script: e2e/test.sh
2122
command_runner_image: quay.io/reactiveops/ci-images:v13-buster
@@ -99,15 +100,16 @@ workflows:
99100
- rok8s/kubernetes_e2e_tests:
100101
name: "End-To-End Kubernetes 1.23"
101102
kind_node_image: "kindest/node:v1.23.13@sha256:ef453bb7c79f0e3caba88d2067d4196f427794086a7d0df8df4f019d5e336b61"
102-
<<: *e2e_configuration
103+
<<: *chainsaw_configuration
103104
- rok8s/kubernetes_e2e_tests:
104105
name: "End-To-End Kubernetes 1.24"
105106
kind_node_image: "kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315"
106-
<<: *e2e_configuration
107+
<<: *chainsaw_configuration
107108
- rok8s/kubernetes_e2e_tests:
108109
name: "End-To-End Kubernetes 1.25"
109110
kind_node_image: "kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1"
110-
<<: *e2e_configuration
111+
<<: *chainsaw_configuration
112+
111113
release:
112114
jobs:
113115
- build_and_release:

Diff for: e2e/chainsaw/.chainsaw.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/configuration-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Configuration
4+
metadata:
5+
name: congiguration
6+
spec:
7+
parallel: 1
8+
fullName: true
9+
failFast: false
10+
delayBeforeCleanup: 3s
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
name: clusterrolebindings
6+
spec:
7+
steps:
8+
- try:
9+
- apply:
10+
file: resources.yaml
11+
- assert:
12+
file: expected.yaml

Diff for: e2e/chainsaw/cluster-role-bindings/expected.yaml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
labels:
5+
rbac-manager: reactiveops
6+
ownerReferences:
7+
- apiVersion: rbacmanager.reactiveops.io/v1beta1
8+
kind: RBACDefinition
9+
name: rbac-manager-definition
10+
roleRef:
11+
apiGroup: rbac.authorization.k8s.io
12+
kind: ClusterRole
13+
name: test-rbac-manager
14+
subjects:
15+
- kind: ServiceAccount
16+
name: test-rbac-manager
17+
namespace: rbac-manager

Diff for: e2e/rbacdefinition/cluterrolebindings/setup.sh renamed to e2e/chainsaw/cluster-role-bindings/resources.yaml

-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
kubectl create clusterrole test-rbac-manager --verb="create" --resource=deployment
2-
3-
cat <<EOF | kubectl create -f -
41
apiVersion: rbacmanager.reactiveops.io/v1beta1
52
kind: RBACDefinition
63
metadata:
@@ -13,4 +10,3 @@ rbacBindings:
1310
namespace: rbac-manager
1411
clusterRoleBindings:
1512
- clusterRole: test-rbac-manager
16-
EOF

Diff for: e2e/chainsaw/deleted/chainsaw-test.yaml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
name: clusterrolebindings
6+
spec:
7+
steps:
8+
- description: setup rbac definition, make sure expected resources are created
9+
try:
10+
- apply:
11+
file: resources.yaml
12+
- assert:
13+
file: expected.yaml
14+
- description: delete rbac definition, make sure previously created resources are deleted
15+
try:
16+
- delete:
17+
ref:
18+
apiVersion: rbacmanager.reactiveops.io/v1beta1
19+
kind: RBACDefinition
20+
name: rbac-manager-definition
21+
- error:
22+
file: expected.yaml

Diff for: e2e/chainsaw/deleted/expected.yaml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
labels:
5+
rbac-manager: reactiveops
6+
ownerReferences:
7+
- apiVersion: rbacmanager.reactiveops.io/v1beta1
8+
kind: RBACDefinition
9+
name: rbac-manager-definition
10+
roleRef:
11+
apiGroup: rbac.authorization.k8s.io
12+
kind: ClusterRole
13+
name: test-rbac-manager
14+
subjects:
15+
- kind: ServiceAccount
16+
name: test-rbac-manager
17+
namespace: rbac-manager

Diff for: e2e/chainsaw/deleted/resources.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbacmanager.reactiveops.io/v1beta1
2+
kind: RBACDefinition
3+
metadata:
4+
name: rbac-manager-definition
5+
rbacBindings:
6+
- name: admins
7+
subjects:
8+
- kind: ServiceAccount
9+
name: test-rbac-manager
10+
namespace: rbac-manager
11+
clusterRoleBindings:
12+
- clusterRole: test-rbac-manager

Diff for: e2e/chainsaw/service-accounts/chainsaw-test.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
name: clusterrolebindings
6+
spec:
7+
steps:
8+
- try:
9+
- apply:
10+
file: resources.yaml
11+
- assert:
12+
file: expected.yaml

Diff for: e2e/chainsaw/service-accounts/expected.yaml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
labels:
5+
rbac-manager: reactiveops
6+
ownerReferences:
7+
- apiVersion: rbacmanager.reactiveops.io/v1beta1
8+
kind: RBACDefinition
9+
name: rbac-manager-definition-1
10+
roleRef:
11+
apiGroup: rbac.authorization.k8s.io
12+
kind: ClusterRole
13+
name: test-rbac-manager
14+
subjects:
15+
- kind: ServiceAccount
16+
name: test-rbac-manager
17+
namespace: rbac-manager
18+
---
19+
apiVersion: v1
20+
kind: ServiceAccount
21+
imagePullSecrets:
22+
- name: robot-secret
23+
metadata:
24+
annotations:
25+
rbacmanager.reactiveops.io/managed-pull-secrets: robot-secret
26+
labels:
27+
rbac-manager: reactiveops
28+
name: test-rbac-manager
29+
namespace: rbac-manager
30+
ownerReferences:
31+
- apiVersion: rbacmanager.reactiveops.io/v1beta1
32+
kind: RBACDefinition
33+
name: rbac-manager-definition-1

Diff for: e2e/rbacdefinition/serviceaccounts/setup.sh renamed to e2e/chainsaw/service-accounts/resources.yaml

-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
kubectl create clusterrole test-rbac-manager --verb="create" --resource=deployment
2-
3-
cat <<EOF | kubectl create -f -
41
apiVersion: rbacmanager.reactiveops.io/v1beta1
52
kind: RBACDefinition
63
metadata:
@@ -15,4 +12,3 @@ rbacBindings:
1512
- robot-secret
1613
clusterRoleBindings:
1714
- clusterRole: test-rbac-manager
18-
EOF

Diff for: e2e/pre.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ yq -i '.spec.template.spec.containers[0].imagePullPolicy = "IfNotPresent"' deplo
3232
cat deploy/3_deployment.yaml
3333

3434
docker cp deploy e2e-command-runner:/
35-
docker cp e2e/rbacdefinition e2e-command-runner:/
35+
docker cp e2e/chainsaw e2e-command-runner:/

Diff for: e2e/rbacdefinition/cluterrolebindings/cleanup.sh

-2
This file was deleted.

Diff for: e2e/rbacdefinition/cluterrolebindings/main.sh

-21
This file was deleted.

Diff for: e2e/rbacdefinition/cluterrolebindings/tests.sh

-10
This file was deleted.

Diff for: e2e/rbacdefinition/run.sh

-18
This file was deleted.

Diff for: e2e/rbacdefinition/serviceaccounts/cleanup.sh

-2
This file was deleted.

Diff for: e2e/rbacdefinition/serviceaccounts/main.sh

-21
This file was deleted.

Diff for: e2e/rbacdefinition/serviceaccounts/tests.sh

-68
This file was deleted.

Diff for: e2e/test.sh

+15-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,21 @@ printf "\n\n"
2020
kubectl apply -f deploy/
2121
kubectl -n rbac-manager wait deployment/rbac-manager --timeout=120s --for condition=available
2222

23-
bash "$BASE_DIR/rbacdefinition/run.sh"
23+
printf "\n\n"
24+
echo "********************************************************************"
25+
echo "** Install and run Chainsaw **"
26+
echo "********************************************************************"
27+
printf "\n\n"
28+
29+
cd "$BASE_DIR/chainsaw"
30+
31+
curl -sL https://github.com/kyverno/chainsaw/releases/download/v0.1.0/chainsaw_linux_amd64.tar.gz -o linux_amd64.tar.gz
32+
tar -xvf linux_amd64.tar.gz chainsaw
33+
rm linux_amd64.tar.gz
34+
chmod +x chainsaw
35+
36+
./chainsaw test
37+
2438
if [ $? -ne 0 ]; then
2539
exit 1
2640
fi

0 commit comments

Comments
 (0)