Update dev docs
Signed-off-by: Yiannis <yiannis.triantafyllopoulos@gmail.com>
This commit is contained in:
parent
ce594e92ab
commit
ba2299307d
|
@ -6,19 +6,32 @@
|
||||||
|
|
||||||
## Installing required dependencies
|
## Installing required dependencies
|
||||||
|
|
||||||
The dependency [libgit2](https://libgit2.org/) needs to be installed to be able
|
There are a number of dependencies required to be able to run the controller and its test suite locally:
|
||||||
to run source-controller or its test-suite locally (not in a container).
|
|
||||||
|
- [Install Go](https://golang.org/doc/install)
|
||||||
|
- [Install Kustomize](https://kubernetes-sigs.github.io/kustomize/installation/)
|
||||||
|
- [Install Docker](https://docs.docker.com/engine/install/)
|
||||||
|
- (Optional) [Install Kubebuilder](https://book.kubebuilder.io/quick-start.html#installation)
|
||||||
|
|
||||||
|
The dependency [libgit2](https://libgit2.org/) also needs to be installed to be able
|
||||||
|
to run `source-controller` or its test-suite locally (not in a container).
|
||||||
|
|
||||||
In case this dependency is not present on your system (at the expected
|
In case this dependency is not present on your system (at the expected
|
||||||
version), the first invocation of a `make` target that requires the
|
version), the first invocation of a `make` target that requires the
|
||||||
dependency will attempt to compile it locally to `hack/libgit2`. For this build
|
dependency will attempt to compile it locally to `hack/libgit2`. For this build
|
||||||
to succeed; CMake, Docker, OpenSSL 1.1 and LibSSH2 must be present on the system.
|
to succeed ensure the following dependencies are present on your system:
|
||||||
|
- [CMake](https://cmake.org/download/)
|
||||||
|
- [OpenSSL 1.1](https://www.openssl.org/source/)
|
||||||
|
- [LibSSH2](https://www.libssh2.org/)
|
||||||
|
- [pkg-config](https://freedesktop.org/wiki/Software/pkg-config/)
|
||||||
|
|
||||||
Triggering a manual build of the dependency is possible as well by running
|
Triggering a manual build of the dependency is possible as well by running
|
||||||
`make libgit2`. To enforce the build, for example if your system dependencies
|
`make libgit2`. To enforce the build, for example if your system dependencies
|
||||||
match but are not linked in a compatible way, append `LIBGIT2_FORCE=1` to the
|
match but are not linked in a compatible way, append `LIBGIT2_FORCE=1` to the
|
||||||
`make` command.
|
`make` command.
|
||||||
|
|
||||||
|
Follow the instructions below to install these dependencies to your system.
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
```console
|
```console
|
||||||
|
@ -39,32 +52,31 @@ $ LIBGIT2_FORCE=1 make libgit2
|
||||||
followed using any other package manager. Some distributions may have slight
|
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`).
|
variation of package names (e.g. `apt install -y cmake openssl libssh2-1-dev`).
|
||||||
|
|
||||||
|
In addition to the above, the following dependencies are also used by some of the `make` targets:
|
||||||
|
|
||||||
|
- `controller-gen` (v0.7.0)
|
||||||
|
- `gen-crd-api-reference-docs` (v0.3.0)
|
||||||
|
- `setup-envtest` (latest)
|
||||||
|
|
||||||
|
If any of the above dependencies are not present on your system, the first invocation of a `make` target that requires them will install them.
|
||||||
|
|
||||||
## How to run the test suite
|
## How to run the test suite
|
||||||
|
|
||||||
The test suite depends on [envtest] being installed. For minimum required
|
Prerequisites:
|
||||||
version refer to the variable `ENVTEST_BIN_VERSION` in the [Makefile](./Makefile).
|
* Go >= 1.17
|
||||||
|
|
||||||
You can run the unit tests by simply doing:
|
You can run the test suite by simply doing
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
make test
|
make test
|
||||||
```
|
```
|
||||||
|
|
||||||
[envtest]: https://book.kubebuilder.io/reference/envtest.html#installation
|
|
||||||
|
|
||||||
|
|
||||||
## How to run the controller locally
|
## How to run the controller locally
|
||||||
|
|
||||||
Install flux on your test cluster:
|
Install the controller's CRDs on your test cluster:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
flux install
|
make install
|
||||||
```
|
|
||||||
|
|
||||||
Scale the in-cluster controller to zero:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
kubectl -n flux-system scale deployment/source-controller --replicas=0
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Run the controller locally:
|
Run the controller locally:
|
||||||
|
@ -115,11 +127,22 @@ IMG=registry-path/source-controller TAG=latest BUILD_ARGS=--push BUILD_PLATFORMS
|
||||||
|
|
||||||
[buildx build options]: https://docs.docker.com/engine/reference/commandline/buildx_build/#options
|
[buildx build options]: https://docs.docker.com/engine/reference/commandline/buildx_build/#options
|
||||||
|
|
||||||
|
If you get the following error when building the docker container:
|
||||||
|
```
|
||||||
|
Multiple platforms feature is currently not supported for docker driver.
|
||||||
|
Please switch to a different driver (eg. "docker buildx create --use")
|
||||||
|
```
|
||||||
|
|
||||||
|
you may need to create and switch to a new builder that supports multiple platforms:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker buildx create --use
|
||||||
|
```
|
||||||
|
|
||||||
### Deploying into a cluster
|
### Deploying into a cluster
|
||||||
|
|
||||||
Deploy `source-controller` into the cluster that is configured in the local kubeconfig file (i.e. `~/.kube/config`):
|
Deploy `source-controller` into the cluster that is configured in the local kubeconfig file (i.e. `~/.kube/config`):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make dev-deploy
|
make deploy
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue