### Install Golang Color Library Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/fatih/color/README.md Use 'go get' to install the color library. This is the initial setup step before using any of its features. ```bash go get github.com/fatih/color ``` -------------------------------- ### Installation Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/iancoleman/strcase/README.md Instructions on how to install the strcase package using go get. ```APIDOC ## Install ```bash go get -u github.com/iancoleman/strcase ``` ``` -------------------------------- ### Install gexe Package Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/vladimirvivien/gexe/README.md Use 'go get' to install the gexe package. This is the initial step before using its functionalities in your Go projects. ```bash go get github.com/vladimirvivien/gexe ``` -------------------------------- ### Install go-isatty Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/mattn/go-isatty/README.md Command to install the package using the go get tool. ```bash $ go get github.com/mattn/go-isatty ``` -------------------------------- ### Install Mergo Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/dario.cat/mergo/README.md Use 'go get' to install the Mergo library. ```go go get dario.cat/mergo ``` -------------------------------- ### Install protorand Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/sryoya/protorand/README.md Use the go get command to add the package to your project. ```bash $ go get -u github.com/sryoya/protorand ``` -------------------------------- ### Install jsonpatch library Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/gopkg.in/evanphx/json-patch.v4/README.md Use the go get command to install the latest version of the library. ```bash go get -u github.com/evanphx/json-patch/v5 ``` -------------------------------- ### Install Match Library Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/tidwall/match/README.md Use the go get command to add the match library to your project. ```bash go get -u github.com/tidwall/match ``` -------------------------------- ### Install Afero Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/spf13/afero/README.md Use the go get command to add the Afero package to your project. ```bash go get github.com/spf13/afero ``` -------------------------------- ### Install go.yaml.in/yaml/v3 Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/go.yaml.in/yaml/v3/README.md Install the YAML package for Go using the go get command. ```bash go get go.yaml.in/yaml/v3 ``` -------------------------------- ### Install Locafero Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/sagikazarmark/locafero/README.md Use the go get command to add the library to your Go project. ```shell go get github.com/sagikazarmark/locafero ``` -------------------------------- ### Install and Import sigs.k8s.io/yaml Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/sigs.k8s.io/yaml/README.md Instructions for installing the package using go get and importing it into your Go project. ```bash go get sigs.k8s.io/yaml ``` ```go import "sigs.k8s.io/yaml" ``` -------------------------------- ### Install blackfriday-tool Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/russross/blackfriday/v2/README.md Install the `blackfriday-tool` command-line utility using `go get`. This tool provides a standalone way to process markdown files. ```bash go get github.com/russross/blackfriday-tool ``` -------------------------------- ### Install Pretty Package Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/tidwall/pretty/README.md Use 'go get' to install the Pretty package. This command retrieves the library for use in your Go projects. ```sh go get -u github.com/tidwall/pretty ``` -------------------------------- ### Install UUID package Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/google/uuid/README.md Use the go get command to install the package in your Go environment. ```sh go get github.com/google/uuid ``` -------------------------------- ### Install the YAML package Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/gopkg.in/yaml.v3/README.md Use the go get command to add the package to your project. ```bash go get gopkg.in/yaml.v3 ``` -------------------------------- ### Install godbus/dbus Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/github.com/godbus/dbus/v5/README.md Use the go get command to install the library. Requires Go 1.12 or later. ```bash go get github.com/godbus/dbus/v5 ``` -------------------------------- ### Install aec library Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/morikuni/aec/README.md Use the go get command to add the library to your project. ```bash go get github.com/morikuni/aec ``` -------------------------------- ### Install golang-set/v2 Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/deckarep/golang-set/v2/README.md Use 'go get' to install this package. Requires Go 1.18 or higher. ```shell go get github.com/deckarep/golang-set/v2 ``` -------------------------------- ### Install Cobra Library Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/spf13/cobra/README.md Use 'go get' to install the latest version of the Cobra library. This is the first step to include Cobra in your Go application. ```go go get -u github.com/spf13/cobra@latest ``` -------------------------------- ### Install conc library Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/sourcegraph/conc/README.md Use the go get command to add the conc library to your project. ```sh go get github.com/sourcegraph/conc ``` -------------------------------- ### Install Flect package Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/gobuffalo/flect/README.md Use the go get command to add the Flect library to your Go project. ```console $ go get github.com/gobuffalo/flect ``` -------------------------------- ### Install YAML Package for Go Source: https://github.com/cilium/tetragon/blob/main/api/vendor/go.yaml.in/yaml/v2/README.md Use 'go get' to install the yaml package. Ensure you are using the correct import path for version 2. ```bash go get go.yaml.in/yaml/v2 ``` -------------------------------- ### Run merge patch example Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/gopkg.in/evanphx/json-patch.v4/README.md Command to execute the merge patch example and view the output. ```bash $ go run main.go patch document: {"height":null,"name":"Jane"} updated alternative doc: {"age":28,"name":"Jane"} ``` -------------------------------- ### Install and Run Local Go Doc Site Source: https://github.com/cilium/tetragon/blob/main/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md Installs and runs a local Go Doc site using pkgsite. Ensure you have Go installed and the latest version of pkgsite is available. ```sh go install golang.org/x/pkgsite/cmd/pkgsite@latest pkgsite ``` -------------------------------- ### Install multierr Source: https://github.com/cilium/tetragon/blob/main/vendor/go.uber.org/multierr/README.md Use the go get command to add the multierr package to your Go project. ```bash go get -u go.uber.org/multierr@latest ``` -------------------------------- ### Log reconciliation start with standard library Source: https://github.com/cilium/tetragon/blob/main/vendor/sigs.k8s.io/controller-runtime/TMP-LOGGING.md Example of logging using the Go standard library logger. ```go log.Printf("starting reconciliation for pod %s/%s", podNamespace, podName) ``` -------------------------------- ### Install jsonreference Go Library Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/go-openapi/jsonreference/README.md Use this command to get the jsonreference library for your Go project. ```cmd go get github.com/go-openapi/jsonreference ``` -------------------------------- ### Install go-openapi/jsonpointer Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/go-openapi/jsonpointer/README.md Import the jsonpointer library into your Go project using the go get command. ```cmd go get github.com/go-openapi/jsonpointer ``` -------------------------------- ### Install go-toml v2 Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/pelletier/go-toml/v2/README.md Command to install the library for Go versions 1.13 and above. ```bash GO111MODULE=on go get github.com/pelletier/go-toml/v2 ``` -------------------------------- ### Install GJSON Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/tidwall/gjson/README.md Install the GJSON library using the Go toolchain. Ensure Go is installed on your system. ```sh go get -u github.com/tidwall/gjson ``` -------------------------------- ### List all containers using the Docker Go client Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/docker/docker/client/README.md This example demonstrates how to initialize a Docker client and list all containers, equivalent to running 'docker ps --all'. ```go package main import ( "context" "fmt" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" ) func main() { apiClient, err := client.NewClientWithOpts(client.FromEnv) if err != nil { panic(err) } defer apiClient.Close() containers, err := apiClient.ContainerList(context.Background(), container.ListOptions{All: true}) if err != nil { panic(err) } for _, ctr := range containers { fmt.Printf("%s %s (status: %s)\n", ctr.ID, ctr.Image, ctr.Status) } } ``` -------------------------------- ### Coexist with glog Example Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/k8s.io/klog/v2/README.md Example demonstrating how to initialize and synchronize flags between klog and glog. It also shows how to use stderr for combined output. ```go package main import ( "flag" "os" "k8s.io/klog/v2" ) func main() { flag.Set("logtostderr", "true") // Or use klog.SetFlags(klog.StdFlags) flag.Parse() klog.Info("Hello from klog!") // To use glog flags, you would need to initialize glog flags as well // and potentially synchronize them if needed. // Example of writing to stderr directly if needed, though klog handles it. // os.Stderr.WriteString("Direct stderr message\n") } ``` -------------------------------- ### Download and Run Demo Application Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/getting-started/install-docker.md Download the Docker Compose file for a sample workload and start the demo application using Docker Compose. ```shell curl -LO https://github.com/cilium/tetragon/raw/main/examples/quickstart/docker-compose.yaml docker compose -f docker-compose.yaml up -d ``` -------------------------------- ### Install strcase Go Package Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/iancoleman/strcase/README.md Use `go get` to install or update the strcase package to the latest version. ```bash go get -u github.com/iancoleman/strcase ``` -------------------------------- ### Initialize MinIO Backend Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/spf13/afero/README.md Instantiate an Afero filesystem for MinIO object storage. Connects to a specified endpoint and bucket. ```go import "github.com/cpyun/afero-minio" minioFs := miniofs.NewMinioFs(ctx, "minio://endpoint/bucket") ``` -------------------------------- ### FollowFD Action Example Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/concepts/tracing-policy/selectors.md Demonstrates the FollowFD action to map file descriptors to filenames, typically used at hook points like fd_install. ```yaml - call: "fd_install" syscall: false args: - index: 0 type: int - index: 1 type: "file" selectors: - matchPIDs: # [...] matchArgs: # [...] matchActions: - action: FollowFD argFd: 0 argName: 1 ``` -------------------------------- ### Tetragon Event Output Example Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/getting-started/network.md Example output from Tetragon showing a process start, a TCP connect event, and process exit. ```text 🚀 process /usr/bin/curl https://ebpf.io/applications/#tetragon 🔌 connect /usr/bin/curl tcp 192.168.1.190:36124 -> 104.198.14.52:443 💥 exit /usr/bin/curl https://ebpf.io/applications/#tetragon 0 ``` -------------------------------- ### Initialize Amazon S3 Backend Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/spf13/afero/README.md Create an Afero filesystem instance for Amazon S3. Requires a bucket name and an AWS session. ```go import "github.com/fclairamb/afero-s3" s3fs := s3.NewFs(bucket, session) ``` -------------------------------- ### Initialize and populate a standard LRU cache Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/hashicorp/golang-lru/v2/README.md Demonstrates creating a fixed-size LRU cache and verifying its capacity constraints. ```go package main import ( "fmt" "github.com/hashicorp/golang-lru/v2" ) func main() { l, _ := lru.New[int, any](128) for i := 0; i < 256; i++ { l.Add(i, nil) } if l.Len() != 128 { panic(fmt.Sprintf("bad len: %v", l.Len())) } } ``` -------------------------------- ### Proper Runtime Initialization in Go Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/github.com/tetratelabs/wazero/RATIONALE.md Demonstrates the correct way to initialize a wazero RuntimeConfig using the NewRuntimeConfig constructor, contrasting it with incorrect direct instantiation. ```go rt := &RuntimeConfig{} // not initialized properly (fields are nil which shouldn't be) rt := RuntimeConfig{} // not initialized properly (should be a pointer) rt := wazero.NewRuntimeConfig() // initialized properly ``` -------------------------------- ### Install Blackfriday v2 Package Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/russross/blackfriday/v2/README.md Use `go get` to install the Blackfriday v2 package. This command resolves and adds the package to your module. ```bash go get github.com/russross/blackfriday/v2 ``` -------------------------------- ### Install Tetragon on Linux using released packages Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/_index.html This snippet guides you through installing Tetragon on a Linux system. It involves downloading a tarball, extracting it, running an installation script, and checking the Tetragon service status. ```shell curl -LO https://github.com/cilium/tetragon/releases/download/{{< latest-version >}}/tetragon-{{< latest-version >}}-amd64.tar.gz tar -xvf tetragon-{{< latest-version >}}-amd64.tar.gz cd tetragon-{{< latest-version >}}-amd64/ sudo ./install.sh sudo systemctl status tetragon ``` -------------------------------- ### Configure Helm Installation with --set Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/reference/helm-chart.md Example of how to use the --set flag with 'helm install' or 'helm upgrade' to override default values. ```shell helm install tetragon cilium/tetragon -n kube-system --set key=value ``` -------------------------------- ### SpdyStream Client Example Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/moby/spdystream/README.md Client example for connecting to a mirroring server without authentication. Requires establishing a TCP connection and then a SpdyStream connection. ```go package main import ( "fmt" "github.com/moby/spdystream" "net" "net/http" ) func main() { conn, err := net.Dial("tcp", "localhost:8080") if err != nil { panic(err) } spdyConn, err := spdystream.NewConnection(conn, false) if err != nil { panic(err) } go spdyConn.Serve(spdystream.NoOpStreamHandler) stream, err := spdyConn.CreateStream(http.Header{}, nil, false) if err != nil { panic(err) } stream.Wait() fmt.Fprint(stream, "Writing to stream") buf := make([]byte, 25) stream.Read(buf) fmt.Println(string(buf)) stream.Close() } ``` -------------------------------- ### Equivalent Policy Without Lists Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/concepts/tracing-policy/hooks.md Shows the expanded form of the previous example, demonstrating how a list simplifies tracing multiple similar syscalls by defining each kprobe individually. ```yaml spec: kprobes: - call: "sys_dup" syscall: true - call: "sys_dup2" syscall: true - call: "sys_dup3" syscall: true ``` -------------------------------- ### Install longestcommon library Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/jpillora/longestcommon/README.md Use the go get command to download the package. ```bash $ go get -v github.com/jpillora/longestcommon ``` -------------------------------- ### Run Tetragon in Kind Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/contribution-guide/development-setup.md Setup a Kind cluster and verify the Tetragon installation. ```shell # Setup tetragon on kind make kind-setup ``` ```shell kubectl get pods -n tetragon ``` -------------------------------- ### Displaying CLI Help Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/github.com/alecthomas/kong/README.md Examples of invoking help for top-level commands, specific subcommands, and positional arguments. ```bash $ go run ./_examples/shell/help --help Usage: help An app demonstrating HelpProviders Flags: -h, --help Show context-sensitive help. --flag Regular flag help Commands: echo Regular command help ``` ```bash $ go run ./_examples/shell/help echo --help Usage: help echo Regular command help 🚀 additional command help Arguments: Regular argument help Flags: -h, --help Show context-sensitive help. --flag Regular flag help ``` ```bash $ go run ./_examples/shell/help msg --help Usage: help echo Regular argument help 📣 additional argument help Flags: -h, --help Show context-sensitive help. --flag Regular flag help ``` -------------------------------- ### Create and Start Lima VM Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/contribution-guide/development-setup.md Installs Lima and creates a new VM named 'tetragon' with a writable home directory mount. Starts the VM and opens a shell within it. ```shell brew install lima limactl create --mount-writable --tty=false --name=tetragon limactl start tetragon limactl shell tetragon ``` -------------------------------- ### Install Tetragon with OCI Hook Enabled Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/docs/demo.md Installs Tetragon using Helm, overriding images and enabling the OCI hook setup. It also configures the gRPC address for Tetragon. ```shell helm install --namespace kube-system \ --set tetragonOperator.image.override=localhost/cilium/tetragon-operator:latest \ --set tetragon.image.override=localhost/cilium/tetragon:latest \ --set tetragon.grpc.address="unix:///var/run/tetragon/tetragon/tetragon.sock" \ --set tetragon.ociHookSetup.enabled=true \ tetragon ./install/kubernetes/tetragon ``` -------------------------------- ### Manage Network Namespaces Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/vishvananda/netns/README.md Example demonstrating how to lock the OS thread, switch namespaces, and perform operations within a new namespace. ```go package main import ( "fmt" "net" "runtime" "github.com/vishvananda/netns" ) func main() { // Lock the OS Thread so we don't accidentally switch namespaces runtime.LockOSThread() defer runtime.UnlockOSThread() // Save the current network namespace origns, _ := netns.Get() defer origns.Close() // Create a new network namespace newns, _ := netns.New() defer newns.Close() // Do something with the network namespace ifaces, _ := net.Interfaces() fmt.Printf("Interfaces: %v\n", ifaces) // Switch back to the original namespace netns.Set(origns) } ``` -------------------------------- ### ModuleConfig with Options Pattern Source: https://github.com/cilium/tetragon/blob/main/contrib/tetragon-rthooks/vendor/github.com/tetratelabs/wazero/RATIONALE.md Demonstrates the options pattern for configuring modules, where configuration is applied via a variadic slice of option functions. ```go type ModuleConfig interface { } struct moduleConfig { name string fs fs.FS } type ModuleConfigOption func(c *moduleConfig) func ModuleConfigName(name string) ModuleConfigOption { return func(c *moduleConfig) { c.name = name } } func ModuleConfigFS(fs fs.FS) ModuleConfigOption { return func(c *moduleConfig) { c.fs = fs } } func (r *runtime) NewModuleConfig(opts ...ModuleConfigOption) ModuleConfig { ret := newModuleConfig() // defaults for _, opt := range opts { opt(&ret.config) } return ret } func (c *moduleConfig) WithOptions(opts ...ModuleConfigOption) ModuleConfig { ret := *c // copy base config for _, opt := range opts { opt(&ret.config) } return ret } config := r.NewModuleConfig(ModuleConfigFS(fs)) configDerived := config.WithOptions(ModuleConfigName("name")) ``` -------------------------------- ### Build Go Binaries for Multiple Platforms Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/vladimirvivien/gexe/README.md Automate the build process for Go binaries across different operating systems and architectures using gexe. It demonstrates variable expansion and setting environment variables for the build. ```go func main() { for _, arch := range []string{"amd64"} { for _, opsys := range []string{"darwin", "linux"} { gexe.SetVar("arch", arch).SetVar("os", opsys) gexe.SetVar("binpath", fmt.Sprintf("build/%s/%s/mybinary", arch, opsys)) result := gexe.Envs("CGO_ENABLED=0 GOOS=$os GOARCH=$arch").Run("go build -o $binpath .") if result != "" { fmt.Printf("Build for %s/%s failed: %s\n", arch, opsys, result) os.Exit(1) } fmt.Printf("Build %s/%s: %s OK\n", arch, opsys, echo.Eval("$binpath")) } } } ``` -------------------------------- ### Basic fsnotify Watcher Usage in Go Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/fsnotify/fsnotify/README.md Demonstrates how to create a new watcher, listen for filesystem events and errors in separate goroutines, add a directory to watch, and handle events like writes. Ensure to close the watcher when done. ```go package main import ( "log" "github.com/fsnotify/fsnotify" ) func main() { // Create new watcher. watcher, err := fsnotify.NewWatcher() if err != nil { log.Fatal(err) } defer watcher.Close() // Start listening for events. go func() { for { select { case event, ok := <-watcher.Events: if !ok { return } log.Println("event:", event) if event.Has(fsnotify.Write) { log.Println("modified file:", event.Name) } case err, ok := <-watcher.Errors: if !ok { return } log.Println("error:", err) } } }() // Add a path. err = watcher.Add("/tmp") if err != nil { log.Fatal(err) } // Block main goroutine forever. <-make(chan struct{}) } ``` -------------------------------- ### Import Cobra Package Source: https://github.com/cilium/tetragon/blob/main/pkg/k8s/vendor/github.com/spf13/cobra/README.md Import the Cobra package into your Go application after installation to start using its functionalities. ```go import "github.com/spf13/cobra" ``` -------------------------------- ### Deploy and verify demo application Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/use-cases/process-lifecycle/namespace-access.md Commands to deploy the demo application and verify pod status in the cluster. ```bash kubectl create -f {{< demo-app-url >}} ``` ```bash kubectl get pods -A ``` -------------------------------- ### ProcessKprobe Event Output Source: https://github.com/cilium/tetragon/blob/main/docs/content/en/docs/use-cases/linux-process-credentials/monitor-changes-at-kernel.md Example JSON output generated by the Tetragon CLI when a credential installation event is detected. ```json { "process_kprobe": { "process": { "exec_id": "a2luZC1jb250cm9sLXBsYW5lOjE0MDczMDQyODk3MTc6MjIzODY=", "pid": 22386, "uid": 11, "cwd": "/", "binary": "/tmp/su", "arguments": "-", "flags": "execve rootcwd clone", "start_time": "2023-07-25T12:04:59.359333454Z", "auid": 4294967295, "pod": { "namespace": "default", "name": "xwing", "container": { "id": "containerd://2e58c8357465961fd96f758e87d0269dfb5f97c536847485de9d7ec62be34a64", "name": "spaceship", "image": { "id": "docker.io/tgraf/netperf@sha256:8e86f744bfea165fd4ce68caa05abc96500f40130b857773186401926af7e9e6", "name": "docker.io/tgraf/netperf:latest" }, "start_time": "2023-07-25T11:44:48Z", "pid": 43 }, "pod_labels": { "app.kubernetes.io/name": "xwing", "class": "xwing", "org": "alliance" } }, "docker": "2e58c8357465961fd96f758e87d0269", "parent_exec_id": "a2luZC1jb250cm9sLXBsYW5lOjEzOTU0MDY5OTA1ODc6MjIzNTI=", "refcnt": 1, "tid": 22386 }, "parent": { "exec_id": "a2luZC1jb250cm9sLXBsYW5lOjEzOTU0MDY5OTA1ODc6MjIzNTI=", "pid": 22352, "uid": 11, "cwd": "/", "binary": "/bin/sh", "flags": "execve rootcwd", "start_time": "2023-07-25T12:04:47.462035587Z", "auid": 4294967295, "pod": { "namespace": "default", "name": "xwing", "container": { "id": "containerd://2e58c8357465961fd96f758e87d0269dfb5f97c536847485de9d7ec62be34a64", "name": "spaceship", "image": { "id": "docker.io/tgraf/netperf@sha256:8e86f744bfea165fd4ce68caa05abc96500f40130b857773186401926af7e9e6", "name": "docker.io/tgraf/netperf:latest" }, "start_time": "2023-07-25T11:44:48Z", "pid": 41 }, "pod_labels": { "app.kubernetes.io/name": "xwing", "class": "xwing", "org": "alliance" } }, "docker": "2e58c8357465961fd96f758e87d0269", "parent_exec_id": "a2luZC1jb250cm9sLXBsYW5lOjEzOTU0MDQ3NzY5NzI6MjIzNTI=", "refcnt": 2, "tid": 22352 }, "function_name": "commit_creds", "args": [ { "process_credentials_arg": { "uid": 0, "gid": 0, "euid": 0, "egid": 0, "suid": 0, "sgid": 0, "fsuid": 0, "fsgid": 0, "caps": { "permitted": [ "CAP_CHOWN", "DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_KILL", "CAP_SETGID", "CAP_SETUID", "CAP_SETPCAP", "CAP_NET_BIND_SERVICE", "CAP_NET_RAW", "CAP_SYS_CHROOT", "CAP_MKNOD", "CAP_AUDIT_WRITE", "CAP_SETFCAP" ], "effective": [ "CAP_CHOWN", "DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_KILL", "CAP_SETGID", "CAP_SETUID", "CAP_SETPCAP", "CAP_NET_BIND_SERVICE", "CAP_NET_RAW", "CAP_SYS_CHROOT", "CAP_MKNOD", "CAP_AUDIT_WRITE", "CAP_SETFCAP" ] }, "user_ns": { "level": 0, "uid": 0, "gid": 0, "ns": { "inum": 4026531837, "is_host": true } } } } ], "action": "KPROBE_ACTION_POST" }, "node_name": "kind-control-plane", "time": "2023-07-25T12:05:01.410834172Z" } ``` -------------------------------- ### Execute Go Benchmarks Source: https://github.com/cilium/tetragon/blob/main/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md Run performance benchmarks across the entire project with 10 iterations to account for noise. ```bash go test ./... -bench=. -count=10 ``` -------------------------------- ### Slack Release Announcement Example Source: https://github.com/cilium/tetragon/blob/main/vendor/sigs.k8s.io/controller-runtime/RELEASE.md Example of how to announce a new release on a Slack channel. Ensure to replace placeholders with actual version and links. ```text :announce: Controller-Runtime v0.12.0 has been released! This release includes a Kubernetes dependency bump to v1.24. For more info, see the release page: https://github.com/kubernetes-sigs/controller-runtime/releases. :tada: Thanks to all our contributors! ```