diff --git a/docs/content/contributing/development.md b/docs/content/contributing/development.md index 826f3310..e7a793ff 100644 --- a/docs/content/contributing/development.md +++ b/docs/content/contributing/development.md @@ -338,57 +338,3 @@ Now it's time to work through our familiar inner loop for development in our pre ] } ``` - -## Debug Capsule Proxy locally - -This section helps new contributors to locally run and debug `capsule-proxy` in _out or cluster_ mode: - -1. You need to run a kind cluster and find the endpoint port of `kind-control-plane` using `docker ps`: - -```bash -❯ docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -88432e392adb kindest/node:v1.20.2 "/usr/local/bin/entr…" 32 seconds ago Up 28 seconds 127.0.0.1:64582->6443/tcp kind-control-plane -``` - -2. You need to generate TLS cert keys for localhost, you can use [mkcert](https://github.com/FiloSottile/mkcert): - -```bash -> cd /tmp -> mkcert localhost -> ls -localhost-key.pem localhost.pem -``` - -3. Run the proxy with the following options - -```bash -go run main.go \ - --ssl-cert-path=/tmp/localhost.pem \ - --ssl-key-path=/tmp/localhost-key.pem \ - --enable-ssl=true \ - --kubeconfig= -``` - -5. Edit the `KUBECONFIG` file (you should make a copy and work on it) as follows: -- Find the section of your cluster -- replace the server path with `https://127.0.0.1:9001` -- replace the certificate-authority-data path with the content of your rootCA.pem file. (if you use mkcert, you'll find with `cat "$(mkcert -CAROOT)/rootCA.pem"|base64|tr -d '\n'`) - -6. Now you should be able to run kubectl using the proxy! - -## Debug Capsule Proxy remotely - -In some cases, you would need to debug the in-cluster mode and [`delve`](https://github.com/go-delve/delve) plays a big role here. - -1. build the Docker image with `delve` issuing `make dlv-build` -2. with the `quay.io/clastix/capsule-proxy:dlv` produced Docker image, publish it or load it to your [KinD](https://github.com/kubernetes-sigs/kind) instance (`kind load docker-image --name capsule --nodes capsule-control-plane quay.io/clastix/capsule-proxy:dlv`) -3. change the Deployment image using `kubectl edit` or `kubectl set image deployment/capsule-proxy capsule-proxy=quay.io/clastix/capsule-proxy:dlv` -4. wait for the image rollout (`kubectl -n capsule-system rollout status deployment/capsule-proxy`) -5. perform the port-forwarding with `kubectl -n capsule-system port-forward $(kubectl -n capsule-system get pods -l app.kubernetes.io/name=capsule-proxy --output name) 2345:2345` -6. connect using your `delve` options - -> _Nota Bene_: the application could be killed by the Liveness Probe since delve will wait for the debugger connection before starting it. -> Feel free to edit and remove the probes to avoid this kind of issue. - -Please refer to [contributing](/docs/contributing) for more details while contributing.