constellation/debugd
2022-10-21 11:04:25 +02:00
..
cmd Feat/revive (#212) 2022-10-05 15:02:46 +02:00
internal Create mkosi image build pipeline 2022-10-21 11:04:25 +02:00
service Update proto files to v2 2022-09-22 09:10:19 +02:00
README.md AB#2369: Use contributing.md as ToC for dev docs. 2022-09-08 16:08:42 +02:00

debug daemon (debugd)

Debugd is a tool we built to allow for shorter iteration cycles during development. The debugd gets embedded into coreOS images at the place where the bootstrapper normally sits. Therefore, when a debug image is started, the debugd starts executing instead of the bootstrapper. The debugd will then wait for a request from the cdbg tool to upload a bootstrapper binary. Once the upload is finished debugd will start the bootstrapper. Subsequently you can initialize your cluster with constellation init as usual.

Build cdbg

mkdir -p build
cmake ..
make cdbg

debugd & cdbg usage

Before continuing, remeber to set up your cloud credentials for the CLI to work.

With cdbg and yq installed in your path:

  1. Run constellation config generate to create a new default configuration

  2. Locate the latest debugd images for GCP and Azure

  3. Modify the constellation-conf.yaml to use an image with the debugd already included and add required firewall rules:

    # Set full reference of cloud provider image name
    export IMAGE_URI=
    
    yq -i \
        "(.provider | select(. | has(\"azure\")).azure.image) = \"${IMAGE_URI}\"" \
         constellation-conf.yaml
    yq -i \
        "(.provider | select(. | has(\"gcp\")).gcp.image) = \"${IMAGE_URI}\"" \
        constellation-conf.yaml
    
    yq -i \
        "(.debugCluster) = true" \
        constellation-conf.yaml
    
  4. Run constellation create […]

  5. Run ./cdbg deploy

    By default, cdbg searches for the bootstrapper in the current path (./bootstrapper). You can define a custom path by appending the argument --bootstrapper <path to bootstrapper> to cdbg deploy.

  6. Run constellation init […] as usual

debugd images

For a full list of image naming conventions and how to retreive them check image version documentation