Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Draft] BIOS/Firmware Update #99

Open
afritzler opened this issue Aug 2, 2024 · 0 comments · May be fixed by #117 or #138
Open

[Draft] BIOS/Firmware Update #99

afritzler opened this issue Aug 2, 2024 · 0 comments · May be fixed by #117 or #138
Assignees
Labels
discussion enhancement New feature or request

Comments

@afritzler
Copy link
Member

Summary

Issue to discuss approaches on how we envision to perform BIOS and firmware update.

Discussed approaches

Bulk update via central image

Perform a bulk update for all applicable components via a given image containing all the logic necessary to update the various components.

apiVersion: metal.ironcore.dev/v1alpha1
kind: Server
metadata:
  name: foo-server
spec:
  firmware:
       manufacturer: ACME Corp.
       version: 2.0.0
status:
  firmware:
     manufacturer: ACME Corp.
     version: 1.0.0

Individual components

Expose the version information directly in the Server spec and let the ServerReconciler do the corresponding update operations.

apiVersion: metal.ironcore.dev/v1alpha1
kind: Server
metadata:
  name: foo-server
spec:
  firmwares:
  - name: BIOS
    manufacturer: ACME Corp.
    version: 1.0.0
  - name: SSD
    manufacturer: ACME Corp.
    version: 2.0.0
  - name: NetworkInterfaceCard
    manufacturer: ACME Corp.
    version: 1.0.0
status:
  firmwares:
  - name: BIOS
    manufacturer: ACME Corp.
    version: 1.0.0
  - name: SSD
    manufacturer: ACME Corp.
    version: 2.0.0
  - name: NetworkInterfaceCard
    manufacturer: ACME Corp.
    version: 1.0.0

Use a dedicated type to describe the updates

Define an own type describing the desired updates for a particular Server by referencing it via .spec.serverRef.

apiVersion: metal.ironcore.dev/v1alpha1
kind: ServerFirmware
metadata:
  name: foo-server
spec:
  serverRef:
    name: foo
  firmwares:
  - name: BIOS
    manufacturer: ACME Corp.
    version: 1.0.0
  - name: SSD
    manufacturer: ACME Corp.
    version: 2.0.0
  - name: NetworkInterfaceCard
    manufacturer: ACME Corp.
    version: 1.0.0
status:
  firmwares:
  - name: BIOS
    manufacturer: ACME Corp.
    version: 1.0.0
  - name: SSD
    manufacturer: ACME Corp.
    version: 2.0.0
  - name: NetworkInterfaceCard
    manufacturer: ACME Corp.
    version: 1.0.0
@afritzler afritzler added enhancement New feature or request discussion labels Aug 2, 2024
@afritzler afritzler moved this from Backlog to In progress in Metal Automation Aug 19, 2024
@aobort aobort linked a pull request Sep 1, 2024 that will close this issue
@afritzler afritzler moved this from In progress to In review in Metal Automation Sep 6, 2024
@aobort aobort linked a pull request Nov 8, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion enhancement New feature or request
Projects
Status: In review
2 participants