Challengefile is a tool to deploy tcp-based challengs on Kubernetes.
- Clone the repository:
git clone https://github.com/chxmxii/challengefile.git cd challengefile - Install the tool:
make install
-
Create a
challengefilefor your challenge like the example below:library: Metadata: Author: chxmxii Namespace: lib-pwn category: pwn Deployment: name: library image: chxmxii/library replicas: 2 # ignored when hpa is true hpa: true healthCheck: true Service: name: library-svc port: 30330 protocol: TCP
-
Run commands to manage challenges:
- Deploy a challenge:
challengefile deploy -f <challengefile> -c <challenge_name> -k <path/to/kubeconfig>
- Destroy a challenge:
challengefile destroy -f <challengefile> -c <challenge_name> -k <path/to/kubeconfig>
- Validate the
challengefile:challengefile validate -f <file>
- View the full command list:
challengefile help
- Deploy a challenge:
- Note: The
challengefileandkubeconfigare optional arguments. If not provided, the tool will look for thechallengefilefile in the current directory and use the default kubeconfig under $HOME/.kube/config.
- Deploy challenges to Kubernetes with ease.
- Validate configurations before deployment.
- Support for HPA and health checks.
- Service management with flexible options.
- Support for more http-based challenge types.