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
challengefile
for 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
challengefile
andkubeconfig
are optional arguments. If not provided, the tool will look for the./challengefile
in the current directory and use the default kubeconfig.
- 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.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.