# Woodpecker CI Woodpecker CI obsoletes Drone CI which has confusing licensing conditions. Deployment steps: ``` kubectl create namespace woodpecker kubectl create namespace woodpecker-execution kubectl create secret generic -n woodpecker woodpecker-secret \ --from-literal=WOODPECKER_AGENT_SECRET=$(openssl rand -hex 32) \ --from-literal=WOODPECKER_GITEA_CLIENT=... \ --from-literal=WOODPECKER_GITEA_SECRET=... kubectl create secret generic -n woodpecker-execution woodpecker-secret \ --from-literal=WOODPECKER_AGENT_SECRET=$(kubectl get secret -n woodpecker woodpecker-secret -o jsonpath="{.data.WOODPECKER_AGENT_SECRET}" | base64 -d) kubectl apply -n woodpecker -f woodpecker-server.yml kubectl apply -n woodpecker-execution -f woodpecker-agent.yml ```