3.4 KiB
stage | group | info |
---|---|---|
Configure | Configure | To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers |
Run the Kubernetes Agent locally (PREMIUM SELF)
You can run kas
and agentk
locally to test the Kubernetes Agent yourself.
-
Create a
cfg.yaml
file from the contents ofconfig_example.yaml
, or this example:agent: listen: network: tcp address: 127.0.0.1:8150 websocket: false gitops: poll_period: "10s" gitlab: address: http://localhost:3000 authentication_secret_file: /Users/tkuah/code/ee-gdk/gitlab/.gitlab_kas_secret
-
Create a
token.txt
. This is the token for the agent you created. This file must not contain a newline character. You can create the file with this command:echo -n "<TOKEN>" > token.txt
-
Start the binaries with the following commands:
# Need GitLab to start gdk start # Stop GDK's version of kas gdk stop gitlab-k8s-agent # Start kas bazel run //cmd/kas -- --configuration-file="$(pwd)/cfg.yaml"
-
In a new terminal window, run this command to start
agentk
:bazel run //cmd/agentk -- --kas-address=grpc://127.0.0.1:8150 --token-file="$(pwd)/token.txt"
You can also inspect the Makefile for more targets.
To learn more about how the repository is structured, see GitLab Kubernetes Agent repository overview.
Run tests locally
You can run all tests, or a subset of tests, locally.
-
To run all tests: Run the command
make test
. -
To run all test targets in the directory: Run the command
bazel test //internal/module/gitops/server:all
.You can use
*
in the command, instead ofall
, but it must be quoted to avoid shell expansion:bazel test '//internal/module/gitops/server:*'
. -
To run all tests in a directory and its subdirectories: Run the command
bazel test //internal/module/gitops/server/...
.
Run specific test scenarios
To run only a specific test scenario, you need the directory name and the target
name of the test. For example, to run the tests at
internal/module/gitops/server/module_test.go
, the BUILD.bazel
file that
defines the test's target name lives at internal/module/gitops/server/BUILD.bazel
.
In the latter, the target name is defined like:
go_test(
name = "server_test",
size = "small",
srcs = [
"module_test.go",
The target name is server_test
and the directory is internal/module/gitops/server/
.
Run the test scenario with this command:
bazel test //internal/module/gitops/server:server_test
Additional resources
- Bazel documentation about specifying targets to build.
- The Bazel query
- Bazel query how to