Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/call-build-macos-packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@ jobs:
-DOPENSSL_USE_STATIC_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCPACK_GENERATOR=productbuild \
-DTELEMETRY_FORGE_AGENT_DISTRO=${{ matrix.config.runner }} \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE=PACKAGE \
-DFLB_NIGHTLY_BUILD=${{ inputs.nightly-build-info }} ../

cmake --build .
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/unit-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ jobs:
FLB_BACKTRACE=Off
FLB_SHARED_LIB=Off

TELEMETRY_FORGE_AGENT_DISTRO=ubuntu/latest
TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=PACKAGE

${{ matrix.config.options }}
run-build: false

Expand Down
2 changes: 2 additions & 0 deletions Dockerfile.ubi
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ RUN cmake -DCMAKE_BUILD_TYPE=Release \
-DFLB_TESTS_RUNTIME=Off \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DTELEMETRY_FORGE_AGENT_VERSION="$TELEMETRY_FORGE_AGENT_VERSION" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
-DFLB_LOG_NO_CONTROL_CHARS=On \
-DFLB_CORO_STACK_SIZE=131072 \
-DFLB_PREFER_SYSTEM_LIB_ZSTD=On \
Expand Down
5 changes: 5 additions & 0 deletions build-and-test-container.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,9 @@ ${CONTAINER_RUNTIME:-docker} build --target=production \
-t "${TELEMETRY_FORGE_AGENT_IMAGE}:${TELEMETRY_FORGE_AGENT_TAG}" \
-f "$SCRIPT_DIR/$DOCKERFILE" "$SCRIPT_DIR/"

${CONTAINER_RUNTIME:-docker} build --target=test \
-t "${TELEMETRY_FORGE_AGENT_IMAGE}:${TELEMETRY_FORGE_AGENT_TAG}-test" \
-f "$SCRIPT_DIR/$DOCKERFILE" "$SCRIPT_DIR/"

docker run --rm -t -e TELEMETRY_FORGE_AGENT_IMAGE="${TELEMETRY_FORGE_AGENT_IMAGE}" -e TELEMETRY_FORGE_AGENT_TAG="${TELEMETRY_FORGE_AGENT_TAG}" "${TELEMETRY_FORGE_AGENT_IMAGE}:${TELEMETRY_FORGE_AGENT_TAG}-test"
"$SCRIPT_DIR"/testing/bats/run-container-integration-tests.sh
11 changes: 0 additions & 11 deletions source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -228,17 +228,6 @@ if(DEFINED FLB_NIGHTLY_BUILD AND NOT "${FLB_NIGHTLY_BUILD}" STREQUAL "")
FLB_DEFINITION_VAL(FLB_NIGHTLY_BUILD ${FLB_NIGHTLY_BUILD})
endif()

# Build metadata: distribution and package type
if(DEFINED TELEMETRY_FORGE_AGENT_DISTRO AND NOT "${TELEMETRY_FORGE_AGENT_DISTRO}" STREQUAL "")
FLB_DEFINITION_VAL(TELEMETRY_FORGE_AGENT_DISTRO ${TELEMETRY_FORGE_AGENT_DISTRO})
message(STATUS "Build distro: ${TELEMETRY_FORGE_AGENT_DISTRO}")
endif()

if(DEFINED TELEMETRY_FORGE_AGENT_PACKAGE_TYPE AND NOT "${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE}" STREQUAL "")
FLB_DEFINITION_VAL(TELEMETRY_FORGE_AGENT_PACKAGE_TYPE ${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE})
message(STATUS "Build package type: ${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE}")
endif()

if(FLB_IN_STORAGE_BACKLOG)
FLB_DEFINITION(FLB_HAVE_IN_STORAGE_BACKLOG)
endif()
Expand Down
23 changes: 23 additions & 0 deletions source/cmake/enterprise.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,26 @@ function(validate_required_options)

message(STATUS "All required options validated successfully")
endfunction()

# Build metadata: all variables are mandatory for enterprise builds
if(NOT DEFINED TELEMETRY_FORGE_AGENT_DISTRO OR "${TELEMETRY_FORGE_AGENT_DISTRO}" STREQUAL "")
message(FATAL_ERROR "TELEMETRY_FORGE_AGENT_DISTRO must be set for enterprise builds")
endif()
Comment thread
patrick-stephens marked this conversation as resolved.

if(NOT DEFINED TELEMETRY_FORGE_AGENT_PACKAGE_TYPE OR "${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE}" STREQUAL "")
message(FATAL_ERROR "TELEMETRY_FORGE_AGENT_PACKAGE_TYPE must be set for enterprise builds")
endif()
Comment thread
patrick-stephens marked this conversation as resolved.

if(NOT DEFINED TELEMETRY_FORGE_AGENT_VERSION OR "${TELEMETRY_FORGE_AGENT_VERSION}" STREQUAL "")
set(TELEMETRY_FORGE_AGENT_VERSION ${FLB_VERSION_STR})
message(STATUS "TELEMETRY_FORGE_AGENT_VERSION not set, defaulting to FLB_VERSION_STR=${FLB_VERSION_STR}")
endif()

FLB_DEFINITION_VAL(TELEMETRY_FORGE_AGENT_DISTRO ${TELEMETRY_FORGE_AGENT_DISTRO})
message(STATUS "Build distro: ${TELEMETRY_FORGE_AGENT_DISTRO}")

FLB_DEFINITION_VAL(TELEMETRY_FORGE_AGENT_PACKAGE_TYPE ${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE})
message(STATUS "Build package type: ${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE}")

FLB_DEFINITION_VAL(TELEMETRY_FORGE_AGENT_VERSION ${TELEMETRY_FORGE_AGENT_VERSION})
message(STATUS "Build agent version: ${TELEMETRY_FORGE_AGENT_VERSION}")
4 changes: 4 additions & 0 deletions source/include/fluent-bit/flb_info.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,8 @@
@FLB_BUILD_FLAGS@

#define FLB_INFO_FLAGS "@FLB_INFO_FLAGS@"

#define TELEMETRY_FORGE_AGENT_VERSION_FLAG "@TELEMETRY_FORGE_AGENT_VERSION@"
#define TELEMETRY_FORGE_AGENT_DISTRO_FLAG "@TELEMETRY_FORGE_AGENT_DISTRO@"
#define TELEMETRY_FORGE_AGENT_PACKAGE_TYPE_FLAG "@TELEMETRY_FORGE_AGENT_PACKAGE_TYPE@"
#endif
7 changes: 7 additions & 0 deletions source/packaging/distros/almalinux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -148,6 +153,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/amazonlinux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,11 @@ ENV PATH="${CMAKE_HOME}/bin:${PATH}"
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -144,6 +149,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="${TELEMETRY_FORGE_AGENT_DISTRO}" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="${TELEMETRY_FORGE_AGENT_PACKAGE_TYPE}" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/azurelinux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER as builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -61,6 +66,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/centos/6/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ ARG BASE_BUILDER
# hadolint ignore=DL3006
FROM ${BASE_BUILDER} AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand Down Expand Up @@ -142,6 +147,8 @@ RUN PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CON
-DFLB_CPACK_SYSVINIT="${FLB_CPACK_SYSVINIT}" \
-DFLB_UNICODE_ENCODER="${FLB_UNICODE_ENCODER}" \
-DFLB_PROCESSOR_DEDUP="${FLB_PROCESSOR_DEDUP}" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
-DOPENSSL_ROOT_DIR=/openssl/openssl-3.5.2 \
-DOPENSSL_USE_STATIC_LIBS=On \
-DLIBSSH2_USE_STATIC_LIBS=On \
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/centos/7/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

# We need a more recent OpenSSL as well so build from source
ADD https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz /openssl/
RUN tar -xzvf /openssl/openssl-3.5.2.tar.gz -C /openssl
Expand All @@ -116,6 +121,8 @@ RUN PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CON
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DOPENSSL_ROOT_DIR=/openssl/openssl-3.5.2 \
-DOPENSSL_USE_STATIC_LIBS=On \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/centos/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -233,6 +238,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 3 additions & 4 deletions source/packaging/distros/debian/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -266,15 +266,14 @@ ENV PATH="${CMAKE_HOME}/bin:${PATH}"
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO

ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

# Docker context must be the base of the repo
WORKDIR /tmp/fluent-bit/
COPY . ./
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/mariner/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER as builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -63,6 +68,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/rockylinux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -145,6 +150,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/suse/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
# hadolint ignore=DL3006
FROM $BASE_BUILDER as builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG CMAKE_VERSION
RUN CMAKE_ARCH=$(uname -m); \
curl --output /tmp/cmake.sh -L "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$CMAKE_ARCH.sh" && \
Expand Down Expand Up @@ -94,6 +99,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
7 changes: 7 additions & 0 deletions source/packaging/distros/ubuntu/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,11 @@ ENV PATH="${CMAKE_HOME}/bin:${PATH}"
# hadolint ignore=DL3006
FROM $BASE_BUILDER AS builder

ARG TELEMETRY_FORGE_AGENT_DISTRO
ENV TELEMETRY_FORGE_AGENT_DISTRO=$TELEMETRY_FORGE_AGENT_DISTRO
ARG TELEMETRY_FORGE_AGENT_PACKAGE_TYPE
ENV TELEMETRY_FORGE_AGENT_PACKAGE_TYPE=$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE

ARG FLB_NIGHTLY_BUILD
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

Expand All @@ -378,6 +383,8 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
-DTELEMETRY_FORGE_AGENT_DISTRO="$TELEMETRY_FORGE_AGENT_DISTRO" \
-DTELEMETRY_FORGE_AGENT_PACKAGE_TYPE="$TELEMETRY_FORGE_AGENT_PACKAGE_TYPE" \
../

VOLUME [ "/output" ]
Expand Down
64 changes: 64 additions & 0 deletions source/src/flb_env.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@

#include <stdlib.h>

/* Macro for stringifying build metadata */
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)

static inline flb_sds_t buf_append(flb_sds_t buf, const char *str, int len)
{
flb_sds_t tmp;
Expand Down Expand Up @@ -64,6 +68,66 @@ static int env_preset(struct flb_env *env)
}
}


/*
* ${OS_TYPE} this variable is useful to identify the operating system
* where the agent is running, if it is not set, we will try to detect
* it and set it as a default variable.
*/
buf = getenv("OS_TYPE");
if (!buf) {
Comment thread
patrick-stephens marked this conversation as resolved.
#if defined(FLB_SYSTEM_WINDOWS)
flb_env_set(env, "OS_TYPE", "windows");
#elif defined(FLB_SYSTEM_MACOS)
flb_env_set(env, "OS_TYPE", "macos");
#elif defined(FLB_SYSTEM_LINUX)
flb_env_set(env, "OS_TYPE", "linux");
#else
flb_env_set(env, "OS_TYPE", "unknown");
#endif
}

/*
* ${AGENT_DISTRO} is a short runtime environment variable with distro metadata.
* If it is not set, we derive the value from build metadata.
* This is especially useful for Linux, where we have multiple distros and
* we want to be able to identify them.
*/
buf = getenv("AGENT_DISTRO");
if (!buf) {
#if defined(TELEMETRY_FORGE_AGENT_DISTRO)
flb_env_set(env, "AGENT_DISTRO", TOSTRING(TELEMETRY_FORGE_AGENT_DISTRO));
#else
flb_env_set(env, "AGENT_DISTRO", "unknown");
#endif
}

/*
* ${AGENT_PACKAGE_TYPE} is a short runtime environment variable with package metadata.
* If it is not set, we derive the value from build metadata.
*/
buf = getenv("AGENT_PACKAGE_TYPE");
if (!buf) {
#if defined(TELEMETRY_FORGE_AGENT_PACKAGE_TYPE)
flb_env_set(env, "AGENT_PACKAGE_TYPE", TOSTRING(TELEMETRY_FORGE_AGENT_PACKAGE_TYPE));
#else
flb_env_set(env, "AGENT_PACKAGE_TYPE", "unknown");
#endif
}

/*
* ${AGENT_VERSION} is a short runtime environment variable with version metadata.
* If it is not set, we derive the value from build metadata.
*/
buf = getenv("AGENT_VERSION");
if (!buf) {
#if defined(TELEMETRY_FORGE_AGENT_VERSION)
flb_env_set(env, "AGENT_VERSION", TOSTRING(TELEMETRY_FORGE_AGENT_VERSION));
#else
flb_env_set(env, "AGENT_VERSION", "unknown");
#endif
}

return 0;
}

Expand Down
Loading
Loading