Files
kubescape/docs/building.md
Craig Box c39683872e Initial documentation update upon joining the CNCF (#1020)
* Initial refactor

Signed-off-by: Craig Box <craigb@armosec.io>

* Initial refactor.

Signed-off-by: Craig Box <craigb@armosec.io>

* Now how did that get in there?

Signed-off-by: Craig Box <craigb@armosec.io>

* small fixes

Signed-off-by: Craig Box <craigb@armosec.io>

* Use GitHub note and warning syntax

Signed-off-by: Craig Box <craigb@armosec.io>

* second guessing thing with no docs

Signed-off-by: Craig Box <craigb@armosec.io>

* Final changes

Signed-off-by: Craig Box <craigb@armosec.io>

Signed-off-by: Craig Box <craigb@armosec.io>
2023-01-11 08:53:55 +02:00

2.3 KiB

Building Kubescape

Build on Windows

  1. Install MSYS2 & build libgit (needed only for the first time)

    build.bat all
    

Note


You can install MSYS2 separately by running build.bat install and build libgit2 separately by running build.bat build

  1. Build kubescape

    make build
    

    OR

    go build -tags=static .
    

Build on Linux/MacOS

  1. Install libgit2 dependency (needed only for the first time)

    make libgit2
    

Note


cmake is required to build libgit2. You can install it by running sudo apt-get install cmake (Linux) or brew install cmake (macOS).

  1. Build kubescape

    make build
    

    OR

    go build -tags=static .
    
  2. Test

    make test
    

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"
        }
    ]
}