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

feat(backend): add k3d gpu image builder #797

Merged
merged 31 commits into from
Jul 23, 2024
Merged

feat(backend): add k3d gpu image builder #797

merged 31 commits into from
Jul 23, 2024

Conversation

gphorvath
Copy link

@gphorvath gphorvath commented Jul 18, 2024

Adds the k3d work from @justinthelaw's repo: https://github.com/justinthelaw/k3d-gpu-support

With updates:

  • New Make targets for easily build the k3d gpu image and standing up a uds cluster with k3d-gpu base
  • Updated the daemonset and removed the custom containerd config.
  • Updated the test for the new daemonset and add a Make target to run it.
  • One additional side effect: this will work on WSL2 now

This PR updates all our packages/bundles with the new runtimeClass for nvidia containers: #787

@gphorvath gphorvath requested a review from a team as a code owner July 18, 2024 20:19
Copy link

netlify bot commented Jul 18, 2024

Deploy Preview for leapfrogai-docs ready!

Name Link
🔨 Latest commit 9b3718c
🔍 Latest deploy log https://app.netlify.com/sites/leapfrogai-docs/deploys/669fd942672d1b0008a3296d
😎 Deploy Preview https://deploy-preview-797--leapfrogai-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 40 (🟢 up 3 from production)
Accessibility: 98 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify site configuration.

 Find more information at: https://kubernetes.io/docs/reference/kubectl/

Aliases:
kubectl, k

Basic Commands (Beginner):
  create          Create a resource from a file or from stdin
  expose          Take a replication controller, service, deployment or pod and expose it as a new Kubernetes service
  run             Run a particular image on the cluster
  set             Set specific features on objects

Basic Commands (Intermediate):
  explain         Get documentation for a resource
  get             Display one or many resources
  edit            Edit a resource on the server
  delete          Delete resources by file names, stdin, resources and names, or by resources and label selector

Deploy Commands:
  rollout         Manage the rollout of a resource
  scale           Set a new size for a deployment, replica set, or replication controller
  autoscale       Auto-scale a deployment, replica set, stateful set, or replication controller

Cluster Management Commands:
  certificate     Modify certificate resources
  cluster-info    Display cluster information
  top             Display resource (CPU/memory) usage
  cordon          Mark node as unschedulable
  uncordon        Mark node as schedulable
  drain           Drain node in preparation for maintenance
  taint           Update the taints on one or more nodes

Troubleshooting and Debugging Commands:
  describe        Show details of a specific resource or group of resources
  logs            Print the logs for a container in a pod
  attach          Attach to a running container
  exec            Execute a command in a container
  port-forward    Forward one or more local ports to a pod
  proxy           Run a proxy to the Kubernetes API server
  cp              Copy files and directories to and from containers
  auth            Inspect authorization
  debug           Create debugging sessions for troubleshooting workloads and nodes
  events          List events

Advanced Commands:
  diff            Diff the live version against a would-be applied version
  apply           Apply a configuration to a resource by file name or stdin
  patch           Update fields of a resource
  replace         Replace a resource by file name or stdin
  wait            Experimental: Wait for a specific condition on one or many resources
  kustomize       Build a kustomization target from a directory or URL

Settings Commands:
  label           Update the labels on a resource
  annotate        Update the annotations on a resource
  completion      Output shell completion code for the specified shell (bash, zsh, fish, or powershell)

Subcommands provided by plugins:

Other Commands:
  api-resources   Print the supported API resources on the server
  api-versions    Print the supported API versions on the server, in the form of "group/version"
  config          Modify kubeconfig files
  plugin          Provides utilities for interacting with plugins
  version         Print the client and server version information

Usage:
  zarf tools kubectl [flags] [options]

Use "kubectl <command> --help" for more information about a given command.
Use "zarf tools kubectl options" for a list of global command-line options (applies to all commands). instead of raw kubectl controls the Kubernetes cluster manager.

 Find more information at: https://kubernetes.io/docs/reference/kubectl/

Basic Commands (Beginner):
  create          Create a resource from a file or from stdin
  expose          Take a replication controller, service, deployment or pod and expose it as a new Kubernetes service
  run             Run a particular image on the cluster
  set             Set specific features on objects

Basic Commands (Intermediate):
  explain         Get documentation for a resource
  get             Display one or many resources
  edit            Edit a resource on the server
  delete          Delete resources by file names, stdin, resources and names, or by resources and label selector

Deploy Commands:
  rollout         Manage the rollout of a resource
  scale           Set a new size for a deployment, replica set, or replication controller
  autoscale       Auto-scale a deployment, replica set, stateful set, or replication controller

Cluster Management Commands:
  certificate     Modify certificate resources
  cluster-info    Display cluster information
  top             Display resource (CPU/memory) usage
  cordon          Mark node as unschedulable
  uncordon        Mark node as schedulable
  drain           Drain node in preparation for maintenance
  taint           Update the taints on one or more nodes

Troubleshooting and Debugging Commands:
  describe        Show details of a specific resource or group of resources
  logs            Print the logs for a container in a pod
  attach          Attach to a running container
  exec            Execute a command in a container
  port-forward    Forward one or more local ports to a pod
  proxy           Run a proxy to the Kubernetes API server
  cp              Copy files and directories to and from containers
  auth            Inspect authorization
  debug           Create debugging sessions for troubleshooting workloads and nodes
  events          List events

Advanced Commands:
  diff            Diff the live version against a would-be applied version
  apply           Apply a configuration to a resource by file name or stdin
  patch           Update fields of a resource
  replace         Replace a resource by file name or stdin
  wait            Experimental: Wait for a specific condition on one or many resources
  kustomize       Build a kustomization target from a directory or URL

Settings Commands:
  label           Update the labels on a resource
  annotate        Update the annotations on a resource
  completion      Output shell completion code for the specified shell (bash, zsh, fish, or powershell)

Subcommands provided by plugins:

Other Commands:
  api-resources   Print the supported API resources on the server
  api-versions    Print the supported API versions on the server, in the form of "group/version"
  config          Modify kubeconfig files
  plugin          Provides utilities for interacting with plugins
  version         Print the client and server version information

Usage:
  kubectl [flags] [options]

Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
@gphorvath gphorvath self-assigned this Jul 18, 2024
@gphorvath gphorvath added the enhancement New feature or request label Jul 18, 2024
@justinthelaw

This comment has been minimized.

@justinthelaw justinthelaw linked an issue Jul 18, 2024 that may be closed by this pull request
.github/workflows/build-images.yaml Outdated Show resolved Hide resolved
.github/workflows/build-images.yaml Outdated Show resolved Hide resolved
.github/workflows/build-images.yaml Outdated Show resolved Hide resolved
packages/k3d-gpu/Dockerfile Show resolved Hide resolved
packages/k3d-gpu/Makefile Outdated Show resolved Hide resolved
packages/k3d-gpu/Makefile Outdated Show resolved Hide resolved
packages/k3d-gpu/Makefile Outdated Show resolved Hide resolved
@justinthelaw
Copy link
Contributor

Not a mandatory requirement, but we could make this a YOLO Zarf package that uses upstream uds-k3d as one of its sub-component steps. That might make centralized version control easier, as mentioned in my previous review comments, while also simplifying the Make commands into an easy Zarf deploy.

@gphorvath gphorvath added this to the EVERGREEN milestone Jul 22, 2024
justinthelaw
justinthelaw previously approved these changes Jul 23, 2024
@gphorvath gphorvath enabled auto-merge (squash) July 23, 2024 16:31
@gphorvath gphorvath merged commit 4504085 into main Jul 23, 2024
15 checks passed
@gphorvath gphorvath deleted the justin-the-law branch July 23, 2024 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

k3d-gpu-support should move out of individual's repo
4 participants