Skip to content

Commit

Permalink
test: add chainsaw tests (#438)
Browse files Browse the repository at this point in the history
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
  • Loading branch information
eddycharly authored Dec 12, 2023
1 parent 7a5d788 commit 474390b
Show file tree
Hide file tree
Showing 20 changed files with 157 additions and 156 deletions.
10 changes: 6 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ references:
sha256sum vault_1.13.2_linux_amd64.zip | grep f7930279de8381de7c532164b4a4408895d9606c0d24e2e9d2f9acb5dfe99b3c
unzip vault_1.13.2_linux_amd64.zip
mv vault /usr/bin/vault
e2e_configuration: &e2e_configuration
chainsaw_configuration: &chainsaw_configuration
pre_script: e2e/pre.sh
script: e2e/test.sh
command_runner_image: quay.io/reactiveops/ci-images:v13-buster
Expand Down Expand Up @@ -99,15 +100,16 @@ workflows:
- rok8s/kubernetes_e2e_tests:
name: "End-To-End Kubernetes 1.23"
kind_node_image: "kindest/node:v1.23.13@sha256:ef453bb7c79f0e3caba88d2067d4196f427794086a7d0df8df4f019d5e336b61"
<<: *e2e_configuration
<<: *chainsaw_configuration
- rok8s/kubernetes_e2e_tests:
name: "End-To-End Kubernetes 1.24"
kind_node_image: "kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315"
<<: *e2e_configuration
<<: *chainsaw_configuration
- rok8s/kubernetes_e2e_tests:
name: "End-To-End Kubernetes 1.25"
kind_node_image: "kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1"
<<: *e2e_configuration
<<: *chainsaw_configuration

release:
jobs:
- build_and_release:
Expand Down
10 changes: 10 additions & 0 deletions e2e/chainsaw/.chainsaw.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/configuration-chainsaw-v1alpha1.json
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Configuration
metadata:
name: congiguration
spec:
parallel: 1
fullName: true
failFast: false
delayBeforeCleanup: 3s
12 changes: 12 additions & 0 deletions e2e/chainsaw/cluster-role-bindings/chainsaw-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata:
name: clusterrolebindings
spec:
steps:
- try:
- apply:
file: resources.yaml
- assert:
file: expected.yaml
17 changes: 17 additions & 0 deletions e2e/chainsaw/cluster-role-bindings/expected.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
rbac-manager: reactiveops
ownerReferences:
- apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
name: rbac-manager-definition
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: test-rbac-manager
subjects:
- kind: ServiceAccount
name: test-rbac-manager
namespace: rbac-manager
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
kubectl create clusterrole test-rbac-manager --verb="create" --resource=deployment

cat <<EOF | kubectl create -f -
apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
metadata:
Expand All @@ -13,4 +10,3 @@ rbacBindings:
namespace: rbac-manager
clusterRoleBindings:
- clusterRole: test-rbac-manager
EOF
22 changes: 22 additions & 0 deletions e2e/chainsaw/deleted/chainsaw-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata:
name: clusterrolebindings
spec:
steps:
- description: setup rbac definition, make sure expected resources are created
try:
- apply:
file: resources.yaml
- assert:
file: expected.yaml
- description: delete rbac definition, make sure previously created resources are deleted
try:
- delete:
ref:
apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
name: rbac-manager-definition
- error:
file: expected.yaml
17 changes: 17 additions & 0 deletions e2e/chainsaw/deleted/expected.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
rbac-manager: reactiveops
ownerReferences:
- apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
name: rbac-manager-definition
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: test-rbac-manager
subjects:
- kind: ServiceAccount
name: test-rbac-manager
namespace: rbac-manager
12 changes: 12 additions & 0 deletions e2e/chainsaw/deleted/resources.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
metadata:
name: rbac-manager-definition
rbacBindings:
- name: admins
subjects:
- kind: ServiceAccount
name: test-rbac-manager
namespace: rbac-manager
clusterRoleBindings:
- clusterRole: test-rbac-manager
12 changes: 12 additions & 0 deletions e2e/chainsaw/service-accounts/chainsaw-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata:
name: clusterrolebindings
spec:
steps:
- try:
- apply:
file: resources.yaml
- assert:
file: expected.yaml
33 changes: 33 additions & 0 deletions e2e/chainsaw/service-accounts/expected.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
rbac-manager: reactiveops
ownerReferences:
- apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
name: rbac-manager-definition-1
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: test-rbac-manager
subjects:
- kind: ServiceAccount
name: test-rbac-manager
namespace: rbac-manager
---
apiVersion: v1
kind: ServiceAccount
imagePullSecrets:
- name: robot-secret
metadata:
annotations:
rbacmanager.reactiveops.io/managed-pull-secrets: robot-secret
labels:
rbac-manager: reactiveops
name: test-rbac-manager
namespace: rbac-manager
ownerReferences:
- apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
name: rbac-manager-definition-1
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
kubectl create clusterrole test-rbac-manager --verb="create" --resource=deployment

cat <<EOF | kubectl create -f -
apiVersion: rbacmanager.reactiveops.io/v1beta1
kind: RBACDefinition
metadata:
Expand All @@ -15,4 +12,3 @@ rbacBindings:
- robot-secret
clusterRoleBindings:
- clusterRole: test-rbac-manager
EOF
2 changes: 1 addition & 1 deletion e2e/pre.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ yq -i '.spec.template.spec.containers[0].imagePullPolicy = "IfNotPresent"' deplo
cat deploy/3_deployment.yaml

docker cp deploy e2e-command-runner:/
docker cp e2e/rbacdefinition e2e-command-runner:/
docker cp e2e/chainsaw e2e-command-runner:/
2 changes: 0 additions & 2 deletions e2e/rbacdefinition/cluterrolebindings/cleanup.sh

This file was deleted.

21 changes: 0 additions & 21 deletions e2e/rbacdefinition/cluterrolebindings/main.sh

This file was deleted.

10 changes: 0 additions & 10 deletions e2e/rbacdefinition/cluterrolebindings/tests.sh

This file was deleted.

18 changes: 0 additions & 18 deletions e2e/rbacdefinition/run.sh

This file was deleted.

2 changes: 0 additions & 2 deletions e2e/rbacdefinition/serviceaccounts/cleanup.sh

This file was deleted.

21 changes: 0 additions & 21 deletions e2e/rbacdefinition/serviceaccounts/main.sh

This file was deleted.

68 changes: 0 additions & 68 deletions e2e/rbacdefinition/serviceaccounts/tests.sh

This file was deleted.

16 changes: 15 additions & 1 deletion e2e/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,21 @@ printf "\n\n"
kubectl apply -f deploy/
kubectl -n rbac-manager wait deployment/rbac-manager --timeout=120s --for condition=available

bash "$BASE_DIR/rbacdefinition/run.sh"
printf "\n\n"
echo "********************************************************************"
echo "** Install and run Chainsaw **"
echo "********************************************************************"
printf "\n\n"

cd "$BASE_DIR/chainsaw"

curl -sL https://github.com/kyverno/chainsaw/releases/download/v0.1.0/chainsaw_linux_amd64.tar.gz -o linux_amd64.tar.gz
tar -xvf linux_amd64.tar.gz chainsaw
rm linux_amd64.tar.gz
chmod +x chainsaw

./chainsaw test

if [ $? -ne 0 ]; then
exit 1
fi

0 comments on commit 474390b

Please sign in to comment.