Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Makefile missing a tool to build Kepler binary locally #1638

Open
arthurus-rex opened this issue Jul 25, 2024 · 1 comment
Open

Makefile missing a tool to build Kepler binary locally #1638

arthurus-rex opened this issue Jul 25, 2024 · 1 comment
Labels
kind/bug report bug issue

Comments

@arthurus-rex
Copy link
Contributor

What happened?

When running the make tools command inside a cloned Kepler repo before building, it runs successfully. However, then when attempting to build the binary locally using make build, I received the error:

Error: exec: "llvm-strip": executable file not found in $PATH
exit status 1
pkg/bpf/gen.go:3: running "go": exit status 1
make: *** [Makefile:178: generate] Error 1

What did you expect to happen?

It was my impression that the make tools command would install/check for all packages needed to install and/or build Kepler. If this is not the purpose of this command, then the documentation should perhaps be updated to include llvm as a separate dependency for the user to consider.

How can we reproduce it (as minimally and precisely as possible)?

Clone Kepler repo, then run make tools and make build or make _build_local on a system that does not already have llvm installed. The error was immediately resolved by running:

sudo dnf install llvm

Anything else we need to know?

Additionally, the make tools command itself is not included in the Makefile's help section. This may constitute a separate issue.

Kepler image tag

TAGS=include_gcs include_oss containers_image_openpgp gssapi providerless netgo osusergo linux

Kubernetes version

$ kubectl version
Client Version: v1.30.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
...
</details>


### Cloud provider or bare metal

<details>
Bare metal
</details>


### OS version

<details>

```console
# On Linux:
$ cat /etc/os-release
NAME="Fedora Linux"
VERSION="40 (Workstation Edition)"
ID=fedora
VERSION_ID=40
VERSION_CODENAME=""
PLATFORM_ID="platform:f40"
PRETTY_NAME="Fedora Linux 40 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=40
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=40
SUPPORT_END=2025-05-13
VARIANT="Workstation Edition"
VARIANT_ID=workstation

$ uname -a
Linux  6.7.5-200.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Feb 17 17:20:08 UTC 2024 x86_64 GNU/Linux

Install tools

Kepler deployment config

For on kubernetes:

$ KEPLER_NAMESPACE=kepler

# provide kepler configmap
$ kubectl get configmap kepler-cfm -n ${KEPLER_NAMESPACE}
# paste output here

# provide kepler deployment description
$ kubectl describe deployment kepler-exporter -n ${KEPLER_NAMESPACE}

For standalone:

put your Kepler command argument here

Container runtime (CRI) and version (if applicable)

Related plugins (CNI, CSI, ...) and versions (if applicable)

@arthurus-rex arthurus-rex added the kind/bug report bug issue label Jul 25, 2024
@vimalk78
Copy link
Collaborator

@arthurus-rex llvm is required by cillium to compile/build bpf program used by kepler. so it is a dependency for building kepler. for building kepler container images the builder image already provided llvm. for local building we need to install llvm same as we need to install golang.
the make tools target only installs a set of tools required by repo in LOCAL_BIN ( which is $PROJECT_ROOT/tmp/bin) installing llvm is not same as installing a tool, it is a bit more involved as it depends on distro, arch etc. so it is better depend on your OS's package manger and install it manually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug report bug issue
Projects
None yet
Development

No branches or pull requests

2 participants