Running rCDS for an Event ========================= This section provides a detailed guide on how to set up rCDS for your event, from initializing a managed Kubernetes cluster to promoting an admin team. Setup Managed Kubernetes Cluster -------------------------------- 1. **Choose a Managed Kubernetes Service**: Select a managed Kubernetes service from providers like Google Kubernetes Engine (GKE), Amazon EKS, or Azure Kubernetes Service (AKS). We used Amazon EKS for the most recent event. 2. **Create the Cluster**: Follow the provider's instructions to create a Kubernetes cluster. Ensure you have enough nodes and resources allocated based on the expected load. Install Ingress Controller -------------------------- 1. **Install NGINX Ingress Controller**: - For detailed instructions and the latest deployment methods for the NGINX Ingress Controller, visit the official Kubernetes NGINX Ingress Controller deployment page at `NGINX Ingress Controller Deployment `_. - Follow the guidelines specific to your environment to ensure the Ingress Controller is properly set up. Deploy rCTF using Helm ---------------------- 1. **Add the Helm Repository**: .. code-block:: bash helm repo add rctf https://helm.redpwn.net 2. **Install rCTF**: - Prepare a `values.yaml` file specifically for setting proxy configurations, such as port mappings and other network-related settings. This file is essential for customizing how external traffic is managed and routed to the deployment. - Deploy rCTF with your custom proxy settings by executing: .. code-block:: bash helm install rctf rctf/rctf -f values.yaml This setup emphasizes the use of the `values.yaml` file for configuring network aspects like proxy settings, ensuring that the Helm deployment is aligned with your specific environmental requirements. Non-rCDS Deployment Setup ------------------------- 1. **Create an Admin Team**: - After deploying rCTF, create a team through the platform's user interface. 2. **Promote to Admin**: - Access the database associated with rCTF. - Update the team's role to 'admin' using a database query: .. code-block:: sql UPDATE teams SET role='admin' WHERE team_name='your_admin_team_name'; Verification ------------ 1. **Verify Installation**: - Ensure that all components are running correctly by checking the statuses of all pods and services. - Access the rCTF platform through the ingress IP to confirm that the installation is functional. 2. **Test with Sample Challenges**: - Deploy a few sample challenges to verify that challenges are being loaded and executed correctly. .. note:: It is important to perform a dry run of the setup before the actual event to ensure all components are configured correctly and operational. Deployment Backends ===================