Skip to content

Commit

Permalink
Local dev / documentation improvement (#1441)
Browse files Browse the repository at this point in the history
* Local dev / documentation improvement
  • Loading branch information
irajdeep authored Nov 30, 2023
1 parent f3ff90f commit b00b2ce
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ test: generate fmt vet manifests ## Run unit tests
manager: generate fmt vet ## Build operator binary
go build -o bin/manager ./cmd/manager/main.go

run: install install-rbac ## Run the operator against the configured Kubernetes cluster in ~/.kube/config
run: install ## Run the operator against the configured Kubernetes cluster in ~/.kube/config
eval $$(scripts/dev/get_e2e_env_vars.py $(cleanup)); \
go run ./cmd/manager/main.go

Expand Down Expand Up @@ -115,7 +115,10 @@ manifests: controller-gen ## Generate manifests e.g. CRD, RBAC etc.

# Run e2e tests locally using go build while also setting up a proxy in the shell to allow
# the test to run as if it were inside the cluster. This enables mongodb connectivity while running locally.
# "MDB_LOCAL_OPERATOR=true" ensures the operator pod is not spun up while running the e2e test - since you're
# running it locally.
e2e-telepresence: cleanup-e2e install ## Run e2e tests locally using go build while also setting up a proxy e.g. make e2e-telepresence test=replica_set cleanup=true
export MDB_LOCAL_OPERATOR=true; \
telepresence connect; \
eval $$(scripts/dev/get_e2e_env_vars.py $(cleanup)); \
go test -v -timeout=30m -failfast $(options) ./test/e2e/$(test) ; \
Expand All @@ -139,7 +142,8 @@ cleanup-e2e: ## Cleans up e2e test env
kubectl delete pv --all -n $(NAMESPACE) || true

generate-env-file: ## generates a local-test.env for local testing
python scripts/dev/get_e2e_env_vars.py | cut -d' ' -f2 > .community-operator-dev/local-test.env
mkdir -p .community-operator-dev
{ python scripts/dev/get_e2e_env_vars.py | tee >(cut -d' ' -f2 > .community-operator-dev/local-test.env) ;} > .community-operator-dev/local-test.export.env

##@ Image

Expand Down
5 changes: 3 additions & 2 deletions docs/run-operator-locally.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Quick start for building and running the operator locally

This document contains a quickstart guide to build and running (+debugging) the operator locally.
This document contains a quickstart guide to build and running and debugging the operator locally.
Being able to run and build the binary locally can help with faster feedback-cycles.

## Prerequisites
Expand All @@ -12,6 +12,7 @@ Being able to run and build the binary locally can help with faster feedback-cyc
- `KUBECONFIG` environment variable pointing at a file
- **Note**: either of these are necessary to be able to run the operator locally
- Have a folder `.community-operator-dev`
- *Optional - if you want to export the environment variables, you can run the following command*: `source .community-operator-dev/local-test.export.env`. ( These environment variables are generated with the `make generate-env-file`)
## Goals
- Run the operator locally as a binary (optionally in debug mode) in command line or in an IDE
- Run e2e tests locally
Expand All @@ -20,7 +21,7 @@ Being able to run and build the binary locally can help with faster feedback-cyc
1. Use the dedicated make target which exports the needed environment variables and builds & runs the operator binary

```sh
make run
make run
```

2. For debugging one can use the following make target, which uses [dlv](https://github.com/go-delve/delve):
Expand Down

0 comments on commit b00b2ce

Please sign in to comment.