Kubernetes Agent repository overview

This page describes the subfolders of the Kubernetes Agent repository. Development information and end-user documentation are both available.

For a video overview, see GitLab Kubernetes Agent repository overview.

build

Various files for the build process.

build/deployment

A kpt package that bundles some Kustomize layers and components. Can be used as-is, or to create a custom package to install agentk.

cmd

Commands are binaries that this repository produces. They are:

  • kas is the GitLab Kubernetes Agent Server binary.
  • agentk is the GitLab Kubernetes Agent binary.

Each of these directories contain application bootstrap code for:

  • Reading configuration.
  • Applying defaults to it.
  • Constructing the dependency graph of objects that constitute the program.
  • Running it.

cmd/agentk

  • agentk initialization logic.
  • Implementation of the agent modules API.

cmd/kas

  • kas initialization logic.
  • Implementation of the server modules API.

examples

Git submodules for the example projects.

internal

The main code of both gitlab-kas and agentk, and various supporting building blocks.

internal/api

Structs that represent some important pieces of data.

internal/gitaly

Items to work with Gitaly.

internal/gitlab

GitLab REST client.

internal/module

Modules that implement server and agent-side functionality.

internal/tool

Various building blocks. internal/tool/testing contains mocks and helpers for testing. Mocks are generated with gomock.

it

Contains scaffolding for integration tests. Unused at the moment.

pkg

Contains exported packages.

pkg/agentcfg

Contains protobuf definitions of the agentk configuration file. Used to configure the agent through a configuration repository.

pkg/kascfg

Contains protobuf definitions of the gitlab-kas configuration file. Contains an example of that configuration file along with the test for it. The test ensures the configuration file example is in sync with the protobuf definitions of the file and defaults, which are applied when the file is loaded.