Development
Development
Setup
Clone the repo and change directory.
git clone https://gitlab.com/castlecraft/k8s_bench
cd k8s_bench
Copy sample directories.
cp -R devcontainer .devcontainer
cp -R vscode .vscode
Re-open in VS Code devcontainer
Setup cluster
Execute following script:
./tests/api/setup.sh
Setup and activate python environment
python3 -m venv env
. ./env/bin/activate
pip install -U pip
pip install -e .
Start Operator
. ./env/bin/activate
kopf run -A k8s_bench/kube_operator.py
Start API
. ./env/bin/activate
uvicorn --host 0.0.0.0 --reload --port 8000 k8s_bench.main:app
Pre-commit Check
. ./env/bin/activate
pre-commit run --color=always --all-files
VS Code Debugging
To start python debugging, launch K8s Bench API
or K8s Bench Operator
from debugging panel instead of command line.
Test using scripts
Execute commands in following order to test api.
# Test setup
./tests/api/setup.sh
# RBAC in-cluster
./tests/setup_rbac_incluster.sh
# Start api in background
./env/bin/uvicorn --host 0.0.0.0 --port 8000 k8s_bench.main:app &
# Test API
./tests/api/execute.sh
# RBAC admin
./tests/setup_rbac_admin.sh
# Teardown
./tests/api/teardown.sh
# Kill uvicorn
kill %1
To test operator execute following.
# RBAC in cluster
./tests/setup_rbac_incluster.sh
# Start operator in background
./env/bin/kopf run -A k8s_bench/kube_operator.py &
# Test operator
./tests/operator/execute.sh
# kill operator
kill %1
# RBAC in cluster
./tests/setup_rbac_admin.sh
Teardown
./tests/api/teardown.sh
Deletes flux helmrelease
, uninstalls In-cluster NFS Server and uninstalls flux.