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
2 changes: 1 addition & 1 deletion crates/api/src/cfg/file.rs
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,7 @@ impl Default for DpfConfig {
}

fn default_dpf_bfb_url() -> String {
"https://content.mellanox.com/BlueField/BFBs/Ubuntu24.04/bf-bundle-3.2.1-34_25.11_ubuntu-24.04_64k_prod.bfb".to_string()
"https://content.mellanox.com/BlueField/BFBs/Ubuntu24.04/bf-bundle-3.2.2-125_26.02_ubuntu-24.04_64k_prod.bfb".to_string()
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We are testing against BFB 3.4 with QA. TBD for support with BFB 3.2.x. We will circle back on this soon.

}

fn default_dpf_deployment_name() -> String {
Expand Down
2 changes: 1 addition & 1 deletion crates/dpf/Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ default_to_workspace = false
# DOCA_REPO_URL = "https://github.com/NVIDIA/doca-platform.git"
# DOCA_BRANCH = "v0.1.0-carbide-47c105e2-nightly"
DOCA_REPO_URL = "https://gitlab-master.nvidia.com/doca-platform-foundation/doca-platform-foundation"
DOCA_BRANCH = "integration-carbide"
DOCA_BRANCH = "v26.4.0-rc.1"
DOCA_CLONE_DIR = "${CARGO_MAKE_WORKING_DIRECTORY}/doca-platform"
CRD_SOURCE_PATH = "${DOCA_CLONE_DIR}/deploy/charts/dpf-operator/templates/crds"
CRD_DEST_PATH = "${CARGO_MAKE_WORKING_DIRECTORY}/crds"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,15 @@ spec:
singular: bfb
scope: Namespaced
versions:
- name: v1alpha1
- additionalPrinterColumns:
- description: phase of the bfb
jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: BFB is the Schema for the bfbs API
Expand Down Expand Up @@ -57,19 +65,132 @@ spec:
x-kubernetes-validations:
- message: Value is immutable
rule: self == oldSelf
versions:
description: |-
Optionally specify BFB component versions. When set, these versions are
used directly in status instead of being extracted from the BFB file.
If set, all four fields (BSP, DOCA, UEFI, ATF) must be provided.
properties:
atf:
description: |-
ATF (Arm Trusted Firmware) version.
Contains the version of ATF, which provides a secure runtime environment
type: string
x-kubernetes-validations:
- message: ATF version is immutable
rule: self == oldSelf
bsp:
description: |-
BSP (Board Support Package) version.
This field stores the version of the BSP, which provides essential
support and drivers for the hardware platform.
type: string
x-kubernetes-validations:
- message: BSP version is immutable
rule: self == oldSelf
doca:
description: |-
DOCA version
Specifies the version of NVIDIA's Data Center-on-a-Chip Architecture (DOCA),
a platform for developing applications on DPUs
type: string
x-kubernetes-validations:
- message: DOCA version is immutable
rule: self == oldSelf
uefi:
description: |-
UEFI (Unified Extensible Firmware Interface) version.
Indicates the UEFI firmware version, which is responsible for booting
the operating system and initializing hardware components
type: string
x-kubernetes-validations:
- message: UEFI version is immutable
rule: self == oldSelf
type: object
x-kubernetes-validations:
- message: all four version fields (bsp, doca, uefi, atf) must be
provided when versions is set
rule: self.bsp != '' && self.doca != '' && self.uefi != '' && self.atf
!= ''
required:
- url
type: object
x-kubernetes-validations:
- message: versions cannot be removed once set
rule: '!has(oldSelf.versions) || has(self.versions)'
status:
default:
phase: Initializing
description: BFBStatus defines the observed state of BFB
properties:
conditions:
description: Conditions represent the latest available observations
of BFB state
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
fileName:
description: |-
Filename is the name of the file where the BFB can be accessed on its volume.
This is the same as `.spec.Filename` if set.
type: string
observedGeneration:
description: ObservedGeneration records the Generation observed on
the object the last time it was patched.
format: int64
type: integer
phase:
default: Initializing
description: The current state of BFB.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
helm.sh/resource-policy: keep
labels:
app.kubernetes.io/part-of: dpf-operator-controller-manager
dpu.nvidia.com/component: dpf-operator-controller-manager
name: bluefieldsoftwares.provisioning.dpu.nvidia.com
spec:
group: provisioning.dpu.nvidia.com
names:
kind: BlueFieldSoftware
listKind: BlueFieldSoftwareList
plural: bluefieldsoftwares
singular: bluefieldsoftware
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: phase of the bluefieldsoftware
jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: BlueFieldSoftware is the Schema for the bluefieldsoftware API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
properties:
osIso:
type: string
pldmFwBundle:
type: string
tmpFwComponents:
properties:
astraNicFw:
type: string
bmcErot:
type: string
bmcFw:
type: string
graceErot:
type: string
graceFw:
type: string
type: object
type: object
status:
default:
phase: Initializing
description: BlueFieldSoftwareStatus defines the observed state of BlueFieldSoftware
properties:
conditions:
description: Conditions represent the latest available observations
of BlueFieldSoftware state
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
downloadedComponents:
description: DownloadedComponents tracks which components have been
successfully downloaded
properties:
astraNicFw:
type: string
bmcErot:
type: string
bmcFW:
type: string
graceErot:
type: string
graceFw:
type: string
osIso:
type: string
pldmFwBundle:
type: string
type: object
observedGeneration:
description: ObservedGeneration records the Generation observed on
the object the last time it was patched.
format: int64
type: integer
phase:
default: Initializing
description: The current state of BlueFieldSoftware.
enum:
- Initializing
- Downloading
- Ready
- Deleting
- Error
type: string
versions:
description: Versions tracks the versions of the components
properties:
fwBundleVersion:
type: string
osISOVersion:
type: string
tmpFwComponentsVersions:
properties:
astraNicFwVersion:
type: string
bmcErotVersion:
type: string
bmcFwVersion:
type: string
graceErotVersion:
type: string
graceFwVersion:
type: string
type: object
required:
- tmpFwComponentsVersions
type: object
x-kubernetes-validations:
- message: fwBundleVersion is immutable
rule: self.fwBundleVersion == oldSelf.fwBundleVersion
- message: osISOVersion is immutable
rule: self.osISOVersion == oldSelf.osISOVersion
- message: tmpFwComponentsVersions is immutable
rule: self.tmpFwComponentsVersions == oldSelf.tmpFwComponentsVersions
required:
- phase
type: object
type: object
x-kubernetes-validations:
- message: name length can't be bigger than 187 chars
rule: self.metadata.name.size() <= 187
served: true
storage: true
subresources:
status: {}
Loading
Loading