Skip to content
Open
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
101 changes: 101 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -1226,6 +1226,106 @@ COPY --from=noble-build /tmp/google-cloud-ops-agent.tgz /google-cloud-ops-agent-
COPY --from=noble-build /google-cloud-ops-agent*.deb /
COPY --from=noble-build /google-cloud-ops-agent-plugin*.tar.gz /

# ======================================
# Build Ops Agent for ubuntu-resolute
# ======================================

FROM ubuntu:resolute AS resolute-build-base
ARG OPENJDK_MAJOR_VERSION

RUN set -x; apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -y install git systemd \
autoconf libtool libcurl4-openssl-dev libltdl-dev libssl-dev libyajl-dev \
build-essential cmake bison flex file libsystemd-dev systemd-dev tzdata \
devscripts cdbs pkg-config openjdk-${OPENJDK_MAJOR_VERSION}-jdk zip debhelper

SHELL ["/bin/bash", "-c"]

# Install golang
ARG TARGETARCH
ARG GO_VERSION
ADD https://go.dev/dl/go${GO_VERSION}.linux-${TARGETARCH}.tar.gz /tmp/go${GO_VERSION}.tar.gz
RUN set -xe; \
tar -xf /tmp/go${GO_VERSION}.tar.gz -C /usr/local
ENV PATH="${PATH}:/usr/local/go/bin"


FROM resolute-build-base AS resolute-build-otel
WORKDIR /work
# Download golang deps
COPY ./submodules/opentelemetry-operations-collector/go.mod ./submodules/opentelemetry-operations-collector/go.sum submodules/opentelemetry-operations-collector/
RUN cd submodules/opentelemetry-operations-collector && go mod download

COPY ./submodules/opentelemetry-java-contrib submodules/opentelemetry-java-contrib
# Install gradle. The first invocation of gradlew does this
RUN cd submodules/opentelemetry-java-contrib && ./gradlew --no-daemon -Djdk.lang.Process.launchMechanism=vfork tasks
COPY ./submodules/opentelemetry-operations-collector submodules/opentelemetry-operations-collector
COPY ./builds/otel.sh .
RUN \
unset OTEL_TRACES_EXPORTER && \
unset OTEL_EXPORTER_OTLP_TRACES_ENDPOINT && \
unset OTEL_EXPORTER_OTLP_TRACES_PROTOCOL && \
./otel.sh /work/cache/

FROM resolute-build-base AS resolute-build-fluent-bit
WORKDIR /work
COPY ./submodules/fluent-bit submodules/fluent-bit
COPY ./builds/fluent_bit.sh .
RUN ./fluent_bit.sh /work/cache/


FROM resolute-build-base AS resolute-build-systemd
WORKDIR /work
COPY ./systemd systemd
COPY ./builds/systemd.sh .
RUN ./systemd.sh /work/cache/


FROM resolute-build-base AS resolute-build-golang-base
WORKDIR /work
COPY go.mod go.sum ./
# Fetch dependencies
RUN go mod download
COPY confgenerator confgenerator
COPY apps apps
COPY internal internal


FROM resolute-build-golang-base AS resolute-build-wrapper
WORKDIR /work
COPY cmd/agent_wrapper cmd/agent_wrapper
COPY ./builds/agent_wrapper.sh .
RUN ./agent_wrapper.sh /work/cache/


FROM resolute-build-golang-base AS resolute-build
WORKDIR /work
COPY . /work

# Run the build script once to build the ops agent engine to a cache
RUN mkdir -p /tmp/cache_run/golang && cp -r . /tmp/cache_run/golang
WORKDIR /tmp/cache_run/golang
RUN ./pkg/deb/build.sh &> /dev/null || true
WORKDIR /work

COPY ./confgenerator/default-config.yaml /work/cache/etc/google-cloud-ops-agent/config.yaml
COPY --from=resolute-build-otel /work/cache /work/cache
COPY --from=resolute-build-fluent-bit /work/cache /work/cache
COPY --from=resolute-build-systemd /work/cache /work/cache
COPY --from=resolute-build-wrapper /work/cache /work/cache
RUN ./pkg/deb/build.sh

COPY cmd/ops_agent_uap_plugin cmd/ops_agent_uap_plugin
COPY ./builds/ops_agent_plugin.sh .
RUN ./ops_agent_plugin.sh /work/cache/
RUN ./pkg/plugin/build.sh /work/cache resolute


FROM scratch AS resolute
COPY --from=resolute-build /tmp/google-cloud-ops-agent.tgz /google-cloud-ops-agent-ubuntu-resolute.tgz
COPY --from=resolute-build /google-cloud-ops-agent*.deb /
COPY --from=resolute-build /google-cloud-ops-agent-plugin*.tar.gz /

# ======================================
# Build Ops Agent for ubuntu-questing
# ======================================
Expand Down Expand Up @@ -1338,4 +1438,5 @@ COPY --from=sles15 /* /
COPY --from=sles16 /* /
COPY --from=jammy /* /
COPY --from=noble /* /
COPY --from=resolute /* /
COPY --from=questing /* /
12 changes: 12 additions & 0 deletions dockerfiles/compile.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,18 @@ RUN ln -fs /usr/lib/systemd /lib/systemd` + installJava + installCMake,
tar_distro_name: "ubuntu-noble",
package_extension: "deb",
},
{
from_image: "ubuntu:resolute",
target_name: "resolute",
install_packages: `RUN set -x; apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -y install git systemd \
autoconf libtool libcurl4-openssl-dev libltdl-dev libssl-dev libyajl-dev \
build-essential cmake bison flex file libsystemd-dev systemd-dev tzdata \
devscripts cdbs pkg-config openjdk-${OPENJDK_MAJOR_VERSION}-jdk zip debhelper`,
package_build: "RUN ./pkg/deb/build.sh",
tar_distro_name: "ubuntu-resolute",
package_extension: "deb",
},
{
from_image: "ubuntu:questing",
target_name: "questing",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,6 @@ platforms_to_skip:
- ml-images:common-cu129-ubuntu-2404-nvidia-580 # 24.04 only has Aerospike 7.2.0+
- ubuntu-os-cloud:ubuntu-2510-amd64 # aerospike not available for 25.10 yet: https://download.aerospike.com/artifacts/aerospike-server-community/7.2.0/
- ubuntu-os-cloud:ubuntu-2510-arm64 # aerospike not available for 25.10 yet: https://download.aerospike.com/artifacts/aerospike-server-community/7.2.0/
- ubuntu-os-cloud:ubuntu-2604-lts-amd64 # 26.04 only has Aerospike 7.2.0+
- ubuntu-os-cloud:ubuntu-2604-lts-arm64 # 26.04 only has Aerospike 7.2.0+
public_url: https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent/third-party/aerospike
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ platforms_to_skip:
- ubuntu-os-cloud:ubuntu-2404-lts-arm64
- ubuntu-os-cloud:ubuntu-2510-amd64 # couchdb not available for 25.10 yet: https://docs.couchdb.org/en/stable/install/unix.html
- ubuntu-os-cloud:ubuntu-2510-arm64
- ubuntu-os-cloud:ubuntu-2604-lts-amd64
- ubuntu-os-cloud:ubuntu-2604-lts-arm64
- debian-cloud:debian-12
- debian-cloud:debian-12-arm64
# couchdb does not support Debian 13 yet: https://apache.jfrog.io/ui/native/couchdb-deb/dists/.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ platforms_to_skip:
- suse-cloud:sles-15-arm64
- ubuntu-os-cloud:ubuntu-2510-amd64 # Possible support in the future
- ubuntu-os-cloud:ubuntu-2510-arm64 # Possible support in the future
- ubuntu-os-cloud:ubuntu-2604-lts-amd64 # Ubuntu 26.04 ships MariaDB 11.8
- ubuntu-os-cloud:ubuntu-2604-lts-arm64 # Ubuntu 26.04 ships MariaDB 11.8
supported_app_version: ["10.1.X through 10.7.X", ""] # Indicate multiple versions.
expected_metrics:
- type: workload.googleapis.com/mysql.buffer_pool_data_pages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ platforms_to_skip:
- rocky-linux-cloud:rocky-linux-10-optimized-gcp-arm64
- ubuntu-os-cloud:ubuntu-2510-amd64
- ubuntu-os-cloud:ubuntu-2510-arm64
- ubuntu-os-cloud:ubuntu-2604-lts-amd64 # MongoDB hasn't support Ubuntu 26.04 yet
- ubuntu-os-cloud:ubuntu-2604-lts-arm64 # MongoDB hasn't support Ubuntu 26.04 yet
supported_app_version: ["2.6", "3.x", "4.x", "5.0", "6.0"]
expected_metrics:
- type: workload.googleapis.com/mongodb.cache.operations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ platforms_to_skip:
- ml-images:common-cu129-ubuntu-2404-nvidia-580
- ubuntu-os-cloud:ubuntu-2510-amd64
- ubuntu-os-cloud:ubuntu-2510-arm64
- ubuntu-os-cloud:ubuntu-2604-lts-amd64
- ubuntu-os-cloud:ubuntu-2604-lts-arm64
supported_app_version: ["2.6", "3.0+", "4.0+", "5.0"]
expected_metrics:
- type: workload.googleapis.com/mongodb.cache.operations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ platforms_to_skip:
- suse-sap-cloud:sles-12-sp5-sap
- ubuntu-os-cloud:ubuntu-2510-amd64 # MySQL is not available on Ubuntu 25.10 yet
- ubuntu-os-cloud:ubuntu-2510-arm64 # MySQL is not available on Ubuntu 25.10 yet
- ubuntu-os-cloud:ubuntu-2604-lts-amd64 # MySQL is not available on Ubuntu 26.04 yet
- ubuntu-os-cloud:ubuntu-2604-lts-arm64 # MySQL is not available on Ubuntu 26.04 yet
supported_app_version: ["5.7", "8.0"]
expected_metrics:
- type: workload.googleapis.com/mysql.buffer_pool_data_pages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ platforms_to_skip:
- ubuntu-os-cloud:ubuntu-2204-lts-arm64
- ubuntu-os-cloud:ubuntu-2404-lts-amd64
- ubuntu-os-cloud:ubuntu-2404-lts-arm64
- ubuntu-os-cloud:ubuntu-2604-lts-amd64
- ubuntu-os-cloud:ubuntu-2604-lts-arm64
- ml-images:common-cu129-ubuntu-2404-nvidia-580
- ubuntu-os-cloud:ubuntu-2510-amd64
- ubuntu-os-cloud:ubuntu-2510-arm64
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ platforms_to_skip:
- ml-images:common-cu129-ubuntu-2404-nvidia-580
- ubuntu-os-cloud:ubuntu-2510-amd64
- ubuntu-os-cloud:ubuntu-2510-arm64
- ubuntu-os-cloud:ubuntu-2604-lts-amd64
- ubuntu-os-cloud:ubuntu-2604-lts-arm64
supported_app_version: ["12.2", "18c", "19c", "21c"]
expected_metrics:
- type: workload.googleapis.com/oracle.backup.latest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ case $VERSION_ID in
24.04|25.10)
echo "deb http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
;;
26.04)
echo "deb http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu resolute main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
;;
# debian
11)
echo "deb http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ platforms_to_skip:
- rocky-linux-cloud:rocky-linux-10-optimized-gcp-arm64
- ubuntu-os-cloud:ubuntu-2510-amd64 # vault not available for 25.10 yet: https://www.hashicorp.com/en/official-packaging-guide
- ubuntu-os-cloud:ubuntu-2510-arm64 # vault not available for 25.10 yet: https://www.hashicorp.com/en/official-packaging-guide
- ubuntu-os-cloud:ubuntu-2604-lts-amd64 # vault not available for 26.04 yet: https://www.hashicorp.com/en/official-packaging-guide
- ubuntu-os-cloud:ubuntu-2604-lts-arm64 # vault not available for 26.04 yet: https://www.hashicorp.com/en/official-packaging-guide
supported_app_version: ["1.6+"]
expected_metrics:
- type: workload.googleapis.com/vault.core.request.count
Expand Down
10 changes: 10 additions & 0 deletions kokoro/config/build/presubmit/resolute_aarch64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import '../common.gcl' as common

config build = common.build {
params {
environment {
DISTRO = 'resolute'
PKGFORMAT = 'deb'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/build/presubmit/resolute_x86_64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import '../common.gcl' as common

config build = common.build {
params {
environment {
DISTRO = 'resolute'
PKGFORMAT = 'deb'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/ops_agent/presubmit/resolute_aarch64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.ops_agent_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'aarch64'
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import 'common.gcl' as common

config build = common.ops_agent_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'aarch64'
IS_OPS_AGENT_UAP_PLUGIN = 'true'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/ops_agent/presubmit/resolute_x86_64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.ops_agent_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'x86_64'
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import 'common.gcl' as common

config build = common.ops_agent_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'x86_64'
IS_OPS_AGENT_UAP_PLUGIN = 'true'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/ops_agent/release/resolute_aarch64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.ops_agent_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'aarch64'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/ops_agent/release/resolute_x86_64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.ops_agent_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'x86_64'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/third_party_apps/presubmit/resolute_aarch64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.third_party_apps_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'aarch64'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/third_party_apps/presubmit/resolute_x86_64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.third_party_apps_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'x86_64'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/third_party_apps/release/resolute_aarch64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.third_party_apps_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'aarch64'
}
}
}
10 changes: 10 additions & 0 deletions kokoro/config/test/third_party_apps/release/resolute_x86_64.gcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'common.gcl' as common

config build = common.third_party_apps_test {
params {
environment {
TARGET = 'resolute'
ARCH = 'x86_64'
}
}
}
17 changes: 17 additions & 0 deletions project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,23 @@ targets:
- ubuntu-os-cloud:ubuntu-2404-lts-arm64
exhaustive:
- ubuntu-os-cloud:ubuntu-minimal-2404-lts-arm64
resolute:
os_versions: [ubuntu-26.04*]
package_extension:
deb
architectures:
x86_64:
test_distros:
representative:
- ubuntu-os-cloud:ubuntu-2604-lts-amd64
exhaustive:
- ubuntu-os-cloud:ubuntu-minimal-2604-lts-amd64
aarch64:
test_distros:
representative:
- ubuntu-os-cloud:ubuntu-2604-lts-arm64
exhaustive:
- ubuntu-os-cloud:ubuntu-minimal-2604-lts-arm64
rockylinux9:
os_versions: [centos-9*,rocky-9*,rhel-9*]
package_extension:
Expand Down
Loading