Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,42 @@ Deploy `helm-controller` into the cluster that is configured in the local kubeco

```sh
make deploy
```
```

## Debugging the controller locally

When reproducing an issue or stepping through reconciliation logic, the
following knobs make local runs cheaper and the resulting logs easier to
read.

### Limit the watched namespace

The controller watches every namespace by default. To narrow it to a single
namespace, set the `RUNTIME_NAMESPACE` environment variable before invoking
`make run`:

```sh
RUNTIME_NAMESPACE=flux-system make run
```

### Reduce reconcile concurrency

Each `HelmRelease` reconcile is processed concurrently (default
`--concurrent=4`). When debugging it is almost always easier to follow a
serial trace; pass `--concurrent=1` so reconciles run one at a time:

```sh
go run ./main.go --concurrent=1
```

### Suspend unrelated objects

If the controller is sharing a cluster with other Flux objects, suspend
anything not relevant to the test you're running so their reconciles don't
interleave with yours:

```sh
flux suspend helmrelease <name>
```

Resume with `flux resume helmrelease <name>` when you're done.