chore: silence otelsdk warnings across build paths (#105)
All checks were successful
ci/crow/cron/process-updates/1 Pipeline was successful

## Summary

Silences the recurring `OpenTelemetry error: there is no package called 'otelsdk'` warnings during builds.

## Root cause

The `build-env-*` images configure an OTel exporter (traces/logs/metrics), but `otelsdk` (the R OTel SDK backend) isn't installed. pak's `otel` instrumentation therefore tries to load `otelsdk` on every run and logs the error, falling back to a no-op.

`OTEL_SDK_DISABLED=true` (already set in `build-one.Dockerfile`) does **not** help — the R `otel` package ignores it and gates purely on `OTEL_R_<SIGNAL>_EXPORTER` (then the standard `OTEL_<SIGNAL>_EXPORTER`). When that resolves to a real exporter (`otlp`/`http`/…) with no SDK present, you get the error.

## Fix

Set `OTEL_R_TRACES_EXPORTER`, `OTEL_R_LOGS_EXPORTER`, and `OTEL_R_METRICS_EXPORTER` to `none` so the R otel providers are clean no-ops:

- `docker/build-one.Dockerfile` — exported alongside the existing OTel var.
- `.crow/process-updates.yaml`, `weekly-rebuild-missing.yaml`, `build-all-versions.yaml`, `build-all-versions-install-deps.yaml` — added to each step's `environment` block.

Using the R-specific variables (not the standard `OTEL_*_EXPORTER`) keeps OTel intact for any non-R tooling in the images.

Reviewed-on: #105
This commit is contained in:
Patrick Schratz 2026-06-30 12:41:32 +00:00 committed by Patrick Schratz
commit b93d1ef6bd
5 changed files with 21 additions and 0 deletions

View file

@ -53,6 +53,9 @@ steps:
image: 'reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}' image: 'reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}'
pull: true pull: true
environment: environment:
OTEL_R_TRACES_EXPORTER: none
OTEL_R_LOGS_EXPORTER: none
OTEL_R_METRICS_EXPORTER: none
REPO_RO_TOKEN: REPO_RO_TOKEN:
from_secret: REPO_RO_TOKEN from_secret: REPO_RO_TOKEN
GITHUB_PAT: GITHUB_PAT:

View file

@ -90,6 +90,9 @@ steps:
image: 'reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}' image: 'reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}'
pull: true pull: true
environment: environment:
OTEL_R_TRACES_EXPORTER: none
OTEL_R_LOGS_EXPORTER: none
OTEL_R_METRICS_EXPORTER: none
RED_HAT_DEV_PW: RED_HAT_DEV_PW:
from_secret: RED_HAT_DEV_PW from_secret: RED_HAT_DEV_PW
B2_S3_ACCESS_KEY: B2_S3_ACCESS_KEY:
@ -152,6 +155,9 @@ steps:
image: 'reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}' image: 'reg.devxy.io/rpkgs/build-env-${OS}:${OS_VERSION}'
pull: true pull: true
environment: environment:
OTEL_R_TRACES_EXPORTER: none
OTEL_R_LOGS_EXPORTER: none
OTEL_R_METRICS_EXPORTER: none
B2_S3_ACCESS_KEY: B2_S3_ACCESS_KEY:
from_secret: B2_S3_ACCESS_KEY from_secret: B2_S3_ACCESS_KEY
B2_S3_SECRET_KEY: B2_S3_SECRET_KEY:

View file

@ -158,6 +158,9 @@ steps:
image: reg.devxy.io/rpkgs/build-env-${IMG} image: reg.devxy.io/rpkgs/build-env-${IMG}
pull: true pull: true
environment: environment:
OTEL_R_TRACES_EXPORTER: none
OTEL_R_LOGS_EXPORTER: none
OTEL_R_METRICS_EXPORTER: none
RED_HAT_DEV_PW: RED_HAT_DEV_PW:
from_secret: RED_HAT_DEV_PW from_secret: RED_HAT_DEV_PW
B2_S3_ACCESS_KEY: B2_S3_ACCESS_KEY:
@ -230,6 +233,9 @@ steps:
- name: Purge CDN cache - name: Purge CDN cache
image: reg.devxy.io/docker.io/library/alpine:3.24 image: reg.devxy.io/docker.io/library/alpine:3.24
environment: environment:
OTEL_R_TRACES_EXPORTER: none
OTEL_R_LOGS_EXPORTER: none
OTEL_R_METRICS_EXPORTER: none
BUNNYNET_API_KEY: BUNNYNET_API_KEY:
from_secret: BUNNYNET_API_KEY from_secret: BUNNYNET_API_KEY
SUBDOMAIN1: 'cran.devxy.io' SUBDOMAIN1: 'cran.devxy.io'

View file

@ -103,6 +103,9 @@ steps:
image: reg.devxy.io/rpkgs/build-env-${IMG} image: reg.devxy.io/rpkgs/build-env-${IMG}
pull: true pull: true
environment: environment:
OTEL_R_TRACES_EXPORTER: none
OTEL_R_LOGS_EXPORTER: none
OTEL_R_METRICS_EXPORTER: none
RED_HAT_DEV_PW: RED_HAT_DEV_PW:
from_secret: RED_HAT_DEV_PW from_secret: RED_HAT_DEV_PW
B2_S3_ACCESS_KEY: B2_S3_ACCESS_KEY:

View file

@ -30,6 +30,9 @@ RUN --mount=type=secret,id=b2_access,required=true \
export GITHUB_PAT="$(cat /run/secrets/github_pat 2>/dev/null || true)" && \ export GITHUB_PAT="$(cat /run/secrets/github_pat 2>/dev/null || true)" && \
export GIT_TERMINAL_PROMPT=0 && \ export GIT_TERMINAL_PROMPT=0 && \
export OTEL_SDK_DISABLED=true && \ export OTEL_SDK_DISABLED=true && \
export OTEL_R_TRACES_EXPORTER=none && \
export OTEL_R_LOGS_EXPORTER=none && \
export OTEL_R_METRICS_EXPORTER=none && \
XVFB=$(command -v xwfb-run 2>/dev/null || command -v xvfb-run || true); \ XVFB=$(command -v xwfb-run 2>/dev/null || command -v xvfb-run || true); \
XVFB_ARGS=""; \ XVFB_ARGS=""; \
if command -v xwfb-run >/dev/null 2>&1; then dnf install -y -q weston 2>/dev/null; XVFB_ARGS="-c weston"; fi; \ if command -v xwfb-run >/dev/null 2>&1; then dnf install -y -q weston 2>/dev/null; XVFB_ARGS="-c weston"; fi; \