- If you do not have GO installed follow this page and install v1.18 or above
- If you do not have a protobuf compiler installed execute the following from this directory:
> go run protocInstall/protocInstall.go
Or install the protobuf compiler yourself(https://grpc.io/docs/protoc-installation/)
- Add the protobuf compiler (e.g. HOME_DIR/protoc/bin) to your PATH variable. For example for linux do:
> export PATH=$PATH:$HOME/protoc/bin
If using a newer Linux version that has protoc >= 3.19 by default you may alternatively install the protobuf compiler with apt:
> sudo apt install protobuf-compiler
if you use apt
you must manually create a folder called proto
> mkdir proto
- Run the following command to install the needed GO protocol buffers plugins:
> go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
> go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
Your protoc
may not be compatible with the latest version.
If so you may need to specify specific versions, the examples below works for 3.19
.
go install google.golang.org/protobuf/cmd/[email protected]
go install google.golang.org/grpc/cmd/[email protected]
The plugins will be installed in $GOBIN, defaulting to $GOPATH/bin which is default HOME_DIR/go/bin. It must be in your $PATH for the protocol compiler protoc to find it. For linux execute:
> export PATH=$PATH:$HOME/go/bin
- Then execute
> go generate .
if you encounter a problem, you have to give the protoc executable the right to be executed e.g in Linux run
> sudo chmod +x <HOME_DIR>/protoc/bin/protoc
- Build kuksa.val and start the server
> cd kuksa.val/kuksa-val-server/build/src/
> ./kuksa-val-server
- Alternatively, start the appropriate docker container.
> docker run -it --rm --net=host -p 127.0.0.1:8090:8090 -e LOG_LEVEL=ALL ghcr.io/eclipse/kuksa.val/kuksa-val:master
- Build and run KUKSA.val Databroker by executing:
> cargo run --bin databroker
- Alternatively, start the apropriate docker container.
> docker run -it --rm --net=host ghcr.io/eclipse/kuksa.val/databroker:master
- To run the GO Client execute:
> go build .
> go run .
- Alternatively, execute:
> ./kuksa_go_client
The GO clients reads the configuration file kuksa-client.json
. In this repository example configurations for both
KUKSA.val Databroker (kuksa-client-grpc.json
) and KUKSA.val Server (kuksa-client-ws.json
) exists.
The file kuksa-client.json
is by default linked to kuksa-client-grpc.json
.
For using the GO client with the kuksa.val server set protocol = ws and for a connection to kuksa.val Databroker set protocol = grpc. On the command line it's available through -protocol ws/grpc.
Note: For communication with KUKSA Databroker only insecure mode is supported, TLS can not be used!
If dependencies needs to be updated the following commands can be used:
go generate .
go get -u
go mod tidy
This will update go.mod
and go.sum
.
Our Continuous Integration verifies that the code pass the Golang Linter. To avoid failing PR builds it is recommended to run the linter manually before creating a Pull Request.