mirror of
https://github.com/malarinv/iperf3-monitor.git
synced 2026-03-08 05:22:35 +00:00
Compare commits
3 Commits
49fb881f24
...
feat/add-a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e019b16ff | ||
|
|
a00629af7a | ||
|
|
e1164a597e |
7
.github/workflows/ci.yaml
vendored
7
.github/workflows/ci.yaml
vendored
@@ -31,6 +31,12 @@ jobs:
|
|||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
- name: Extract metadata (tags, labels) for Docker
|
- name: Extract metadata (tags, labels) for Docker
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v4
|
||||||
@@ -44,6 +50,7 @@ jobs:
|
|||||||
push: false # Do not push on PRs
|
push: false # Do not push on PRs
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
|
||||||
test:
|
test:
|
||||||
name: Run Tests
|
name: Run Tests
|
||||||
|
|||||||
7
.github/workflows/release.yml
vendored
7
.github/workflows/release.yml
vendored
@@ -36,6 +36,12 @@ jobs:
|
|||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
- name: Log in to GitHub Container Registry
|
- name: Log in to GitHub Container Registry
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v2
|
||||||
with:
|
with:
|
||||||
@@ -56,6 +62,7 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
|
||||||
package-and-publish-chart:
|
package-and-publish-chart:
|
||||||
name: Package and Publish Helm Chart
|
name: Package and Publish Helm Chart
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ dependencies:
|
|||||||
- name: kube-prometheus-stack # Example dependency if you package the whole stack
|
- name: kube-prometheus-stack # Example dependency if you package the whole stack
|
||||||
version: ">=30.0.0" # Specify a compatible version range
|
version: ">=30.0.0" # Specify a compatible version range
|
||||||
repository: https://prometheus-community.github.io/helm-charts
|
repository: https://prometheus-community.github.io/helm-charts
|
||||||
condition: "serviceMonitor.enabled, !dependencies.useTrueChartsPrometheusOperator"
|
condition: "dependencies.install, serviceMonitor.enabled, !dependencies.useTrueChartsPrometheusOperator"
|
||||||
- name: prometheus-operator
|
- name: prometheus-operator
|
||||||
version: ">=8.11.1"
|
version: ">=8.11.1"
|
||||||
repository: "oci://tccr.io/truecharts"
|
repository: "oci://tccr.io/truecharts"
|
||||||
condition: "serviceMonitor.enabled, dependencies.useTrueChartsPrometheusOperator"
|
condition: "dependencies.install, serviceMonitor.enabled, dependencies.useTrueChartsPrometheusOperator"
|
||||||
|
|||||||
@@ -123,7 +123,14 @@ networkPolicy:
|
|||||||
# Dependency Configuration
|
# Dependency Configuration
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
dependencies:
|
dependencies:
|
||||||
|
# -- Set to true to install Prometheus operator dependency if serviceMonitor.enabled is also true.
|
||||||
|
# -- Set to false to disable the installation of Prometheus operator dependency,
|
||||||
|
# -- regardless of serviceMonitor.enabled. This is useful if you have Prometheus
|
||||||
|
# -- Operator installed and managed separately in your cluster.
|
||||||
|
install: true
|
||||||
|
|
||||||
# -- Set to true to use the TrueCharts Prometheus Operator instead of kube-prometheus-stack.
|
# -- Set to true to use the TrueCharts Prometheus Operator instead of kube-prometheus-stack.
|
||||||
# This chart's ServiceMonitor resources require a Prometheus Operator to be functional.
|
# This chart's ServiceMonitor resources require a Prometheus Operator to be functional.
|
||||||
# If serviceMonitor.enabled is true, one of these two dependencies will be pulled based on this flag.
|
# If serviceMonitor.enabled is true and dependencies.install is true,
|
||||||
|
# one of these two dependencies will be pulled based on this flag.
|
||||||
useTrueChartsPrometheusOperator: false
|
useTrueChartsPrometheusOperator: false
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# Stage 1: Build stage with dependencies
|
# Stage 1: Build stage with dependencies
|
||||||
FROM python:3.9-slim as builder
|
FROM python:3.9-slim as builder
|
||||||
|
|
||||||
|
# Declare TARGETARCH for use in this stage
|
||||||
|
ARG TARGETARCH
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Install iperf3 and build dependencies
|
# Install iperf3 and build dependencies
|
||||||
@@ -8,6 +10,20 @@ RUN apt-get update && \
|
|||||||
apt-get install -y --no-install-recommends gcc iperf3 libiperf-dev && \
|
apt-get install -y --no-install-recommends gcc iperf3 libiperf-dev && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Determine the correct libiperf source directory based on TARGETARCH
|
||||||
|
# and copy libiperf.so.0 to a canonical temporary location /tmp/lib/ within the builder stage.
|
||||||
|
RUN echo "Builder stage TARGETARCH: ${TARGETARCH}" && \
|
||||||
|
LIBIPERF_SRC_DIR_SEGMENT="" && \
|
||||||
|
if [ "${TARGETARCH}" = "amd64" ]; then \
|
||||||
|
LIBIPERF_SRC_DIR_SEGMENT="x86_64-linux-gnu"; \
|
||||||
|
elif [ "${TARGETARCH}" = "arm64" ]; then \
|
||||||
|
LIBIPERF_SRC_DIR_SEGMENT="aarch64-linux-gnu"; \
|
||||||
|
else \
|
||||||
|
echo "Unsupported TARGETARCH in builder: ${TARGETARCH}" && exit 1; \
|
||||||
|
fi && \
|
||||||
|
mkdir -p /tmp/lib && \
|
||||||
|
cp "/usr/lib/${LIBIPERF_SRC_DIR_SEGMENT}/libiperf.so.0" /tmp/lib/libiperf.so.0
|
||||||
|
|
||||||
# Install Python dependencies
|
# Install Python dependencies
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
@@ -17,9 +33,11 @@ FROM python:3.9-slim
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy iperf3 binary and library from the builder stage
|
# Copy iperf3 binary from the builder stage
|
||||||
COPY --from=builder /usr/bin/iperf3 /usr/bin/iperf3
|
COPY --from=builder /usr/bin/iperf3 /usr/bin/iperf3
|
||||||
COPY --from=builder /usr/lib/x86_64-linux-gnu/libiperf.so.0 /usr/lib/x86_64-linux-gnu/libiperf.so.0
|
# Copy the prepared libiperf.so.0 from the builder's canonical temporary location
|
||||||
|
# into a standard library path in the final image.
|
||||||
|
COPY --from=builder /tmp/lib/libiperf.so.0 /usr/lib/libiperf.so.0
|
||||||
|
|
||||||
# Copy installed Python packages from the builder stage
|
# Copy installed Python packages from the builder stage
|
||||||
COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
|
COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
|
||||||
|
|||||||
Reference in New Issue
Block a user