Merge pull request #505 from pjbgf/doc-dev.md

This commit is contained in:
Hidde Beydals 2021-12-17 16:08:28 +01:00 committed by GitHub
commit 1475ecaa9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 80 additions and 2 deletions

View File

@ -36,12 +36,90 @@ $ LIBGIT2_FORCE=1 make libgit2
```
**Note:** Example shown is for Arch Linux, but likewise procedure can be
followed using any other package manager, e.g. `apt`.
followed using any other package manager. Some distributions may have slight
variation of package names (e.g. `apt install -y cmake openssl libssh2-1-dev`).
## How to run the test suite
You can run the unit tests by simply doing
The test suite depends on [envtest] being installed. For minimum required
version refer to the variable `ENVTEST_BIN_VERSION` in the [Makefile](./Makefile).
You can run the unit tests by simply doing:
```bash
make test
```
[envtest]: https://book.kubebuilder.io/reference/envtest.html#installation
## How to run the controller locally
Install flux on your test cluster:
```sh
flux install
```
Scale the in-cluster controller to zero:
```sh
kubectl -n flux-system scale deployment/source-controller --replicas=0
```
Run the controller locally:
```sh
make run
```
## How to install the controller
### Building the container image
Set the name of the container image to be created from the source code. This will be used
when building, pushing and referring to the image on YAML files:
```sh
export IMG=registry-path/source-controller
export TAG=latest # optional
```
Build the container image, tagging it as `$(IMG):$(TAG)`:
```sh
make docker-build
```
Push the image into the repository:
```sh
make docker-push
```
Alternatively, the three steps above can be done in a single line:
```sh
IMG=registry-path/source-controller TAG=latest BUILD_ARGS=--push \
make docker-build
```
For an extensive list of `BUILD_ARGS`, refer to the docker [buildx build options] documentation.
**Note:** `make docker-build` will build images for all supported architecture by default.
Limit this to a specific architecture for faster builds:
```sh
IMG=registry-path/source-controller TAG=latest BUILD_ARGS=--push BUILD_PLATFORMS=amd64 \
make docker-build
```
[buildx build options]: https://docs.docker.com/engine/reference/commandline/buildx_build/#options
### Deploying into a cluster
Deploy `source-controller` into the cluster that is configured in the local kubeconfig file (i.e. `~/.kube/config`):
```sh
make dev-deploy
```