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
26 changes: 14 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,16 @@ RUN --mount=type=cache,target=/root/.cache \
FROM ubuntu:24.04

ARG TARGETARCH
ARG KUBERNETES_VERSION=1.32
ARG KUBERNETES_VERSION=1.34
ARG MFT_VERSION=4.29.0-131
ARG PYTHON_VERSION=3.12

ENV TAR_OPTIONS="--no-same-owner"

RUN apt-get update && apt-get install -y --allow-downgrades --no-install-recommends \
RUN apt-get update -o Acquire::Retries=3 && apt-get install -y \
--allow-downgrades \
--no-install-recommends \
-o APT::Install-Suggests=false \
apt-transport-https \
ca-certificates \
gpg \
Expand All @@ -71,35 +74,34 @@ RUN apt-get update && apt-get install -y --allow-downgrades --no-install-recomme
conntrack \
openvswitch-switch \
bridge-utils \
dmidecode && \
apt-get clean && rm -rf /var/lib/apt/lists/*

RUN apt-get update -y && apt-get install -y \
-o APT::Install-Recommends=false \
-o APT::Install-Suggests=false \
dmidecode \
python${PYTHON_VERSION} \
libpython${PYTHON_VERSION} && \
apt-get clean && rm -rf /var/lib/apt/lists/*

RUN --mount=type=cache,target=/root/.cache \
case ${TARGETARCH} in \
amd64) curl -fsSL https://www.mellanox.com/downloads/MFT/mft-${MFT_VERSION}-x86_64-deb.tgz | tar -xz -C /tmp && \
amd64) curl -fsSL --retry 5 --retry-all-errors \
https://content.mellanox.com/MFT/mft-${MFT_VERSION}-x86_64-deb.tgz | tar -xz -C /tmp && \
cd /tmp/mft-${MFT_VERSION}-x86_64-deb && \
./install.sh --without-kernel ;; \
arm64) curl -fsSL https://www.mellanox.com/downloads/MFT/mft-${MFT_VERSION}-arm64-deb.tgz | tar -xz -C /tmp && \
arm64) curl -fsSL --retry 5 --retry-all-errors \
https://content.mellanox.com/MFT/mft-${MFT_VERSION}-arm64-deb.tgz | tar -xz -C /tmp && \
cd /tmp/mft-${MFT_VERSION}-arm64-deb && \
./install.sh --without-kernel ;; \
*) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
esac

# TODO: If we plan support for additional container runtimes, we need to install the corresponding packages here.
RUN --mount=type=cache,target=/root/.cache \
wget https://pkgs.k8s.io/core:/stable:/v${KUBERNETES_VERSION}/deb/Release.key -O /tmp/Release.key && \
curl -fsSL --retry 5 --retry-all-errors \
"https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v${KUBERNETES_VERSION}/deb/Release.key" \
-o /tmp/Release.key && \
gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg /tmp/Release.key && \
rm /tmp/Release.key && \
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v${KUBERNETES_VERSION}/deb/ /" \
| tee /etc/apt/sources.list.d/kubernetes.list && \
apt-get update -y && apt-get install -y cri-tools kubectl && \
apt-get update -y -o Acquire::Retries=3 && apt-get install -y cri-tools kubectl && \
apt-get clean && rm -rf /var/lib/apt/lists/*

COPY --from=build /opt/venv /opt/venv
Expand Down
64 changes: 34 additions & 30 deletions sos/report/plugins/doca_dpf.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class DocaDpf(Plugin):
By default, it collects resources from the host Kubernetes cluster.

When the 'collect-dpu-clusters' option is enabled, it will automatically
detect all DPU clusters (dpucluster resources) in the host cluster,
detect all DPU clusters (dpuclusters resources) in the host cluster,
retrieve their kubeconfigs from Kubernetes secrets, and collect resources
from each child DPU cluster. The collected data is organized in a directory
structure: dpu-clusters/{namespace}/{cluster-name}/
Expand All @@ -54,37 +54,41 @@ class DocaDpf(Plugin):
config_files = []
resources = [
'pod',
'bfb',
'dpfoperatorconfig',
'dpudeployment',
'dpuflavor',
'dpuservice',
'dpuservicechain',
'dpuserviceconfiguration',
'dpuservicecredentialrequest',
'dpuserviceinterface',
'dpuserviceipam',
'dpuservicetemplate',
'dpuset',
'dpu',
'dpucluster',
'dpudevice',
'dpudiscovery',
'dpunodemaintenance',
'dpunode',
'servicechain',
'servicechainset',
'serviceinterface',
'serviceinterfaceset',
'bfbs',
'bluefieldsoftwares',
'dpfoperatorconfigs',
'nodesriovdevicepluginconfigs',
'dpudeployments',
'dpuflavors',
'dpuservices',
'dpuservicechains',
'dpuserviceconfigurations',
'dpuservicecredentialrequests',
'dpuserviceinterfaces',
'dpuserviceipams',
'dpuservicenads',
'dpuservicetemplates',
'dpusets',
'dpus',
'dpuclusters',
'dpudevices',
'dpudiscoveries',
'dpunodemaintenances',
'dpunodes',
'nodeserviceinterfaces',
'servicechains',
'servicechainsets',
'serviceinterfaces',
'serviceinterfacesets',
# storage related custom resources
'dpustoragepolicy',
'dpustoragevendor',
'dpuvolumeattachment',
'dpuvolume',
'dpustoragepolicies',
'dpustoragevendors',
'dpuvolumeattachments',
'dpuvolumes',
# vpc related custom resources
'dpuvirtualnetwork',
'dpuvpc',
'isolationclass',
'dpuvirtualnetworks',
'dpuvpcs',
'isolationclasses',
# nv-ipam custom resources
'cidrpool',

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are ippool and cidrpool need to be in plural as well?

'ippool',
Expand Down
Loading