Skip to content

Building

Matthias Bertschy edited this page May 30, 2024 · 11 revisions

Prerequisite

  1. Setup Golang compiling environment (Golang ≥ 1.19)
  2. Setup Git
  3. Clone this repository
git clone https://github.com/kubescape/kubescape
cd kubescape

Minimum build

go build .

After building

Now the kubescape binary should be available in your current directory and you can interact with it using ./kubescape.

You can set up minikube locally to test Kubernetes cluster scanning. Check here for usages of kubescape.

Build Kubescape in a pre-configured playground

We have created a Killercoda scenario that you can use to experiment building Kubescape from source.

When you start the scenario, a script will clone the Kubescape repository and execute a Linux build steps. The entire process executes multiple commands in order: it takes around 5-6 minutes to complete.

How to use the build playground:

  • Apply changes you wish to make to the Kubescape source code.
  • Perform a Linux build
  • Now, you can use Kubescape like normal, but instead of using kubescape, use ./kubescape.

VS Code configuration samples

You can use the sample files below to setup your VS Code environment for building and debugging purposes.

.vscode/settings.json:

// .vscode/settings.json
{
    "go.testTags": "static",
    "go.buildTags": "static",
    "go.toolsEnvVars": {
        "CGO_ENABLED": "1"
    }
}

.vscode/launch.json:

// .vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}/main.go",
            "args": [
                "scan",
                "--logger",
                "debug"
            ],
            "buildFlags": "-tags=static"
        }
    ]
}