-
Notifications
You must be signed in to change notification settings - Fork 58
Add testing DSS with Canonical Kubernetes (New) #1793
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
motjuste
wants to merge
13
commits into
main
Choose a base branch
from
CHECKBOX-1781-add-canonical-k8s
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We will need helm when installing canonical k8s to enable NVIDIA GPU operator in it. Canonical k8s (and helm) will only be installed if the explicit argument for the channel to use is provided. Otherwise, the old default behaviour of install microk8s will be maintained.
We use helm to add the relevant chart from nvidia and install the chart. We re-use existing script to verify the rollout too.
This job needs to run after either one of the two jobs above it enabling NVIDIA GPU in the k8s cluster succeed (one is for microk8s, the other is for Canonical k8s). We can't use those jobs in 'depends' because then both of them will have to succeed, which is impossible because only one of either microk8s or Canonical k8s will be available. The trick we use here is that we now `depends` on `dss/initialize`, which must succeed for the whole test-plan to be run anyway, and, we require that we have an NVIDIA GPU. This is similar to the `depends` for the two jobs for microk8s and Canonical k8s. Then we will have to be careful that this job is added in the test-plan to ONLY run after those two jobs. The difference will then be that this job will not be skipped if either of the two jobs enabling NVIDIA GPU fail.
We now have an addition to the `install-deps` script. It also demarcates from whence we started supporting Canonical K8s
The "worker" daemonset that was being verified may have a version number in its name, which we cannot predict.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1793 +/- ##
=======================================
Coverage 49.83% 49.83%
=======================================
Files 377 377
Lines 40719 40719
Branches 6851 6851
=======================================
Hits 20294 20294
Misses 19700 19700
Partials 725 725
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
NVIDIA GPU operator can be enabled in both microk8s and canonical k8s using helm, so we remove all the ugly parts so far that was trying to handle whether microk8s or canonical k8s were installed, and just use the unified approach using helm. Helm now becomes a hard requirement.
As discussed in:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
dss
now has provisional support for running on Canonical Kubernetes instead ofmicrok8s
. This support is currently available in thedss
snap from the channel1.1/edge
. To enable this:install-deps
script now enables installing Canonical Kubernetes instead ofmicrok8s
based on given arguments. It still installsmicrok8s
by default.install-deps
now also installs thehelm
snap which will be used to enable NVIDIA GPU support in Canonical Kubernetes as well asmicrok8s
.helm
for enabling NVIDIA GPU support in Kubernetes, roughly following this guide. It works for bothmicrok8s
and Canonical Kubernetes.id
s) of the jobs.The provider-snap's minor version has been bumped to indicate since when we added support for Canonical Kubernetes.
TODOs
gpu_setup.py
that combines setting up Intel and NVIDIA GPU in Kubernetes.job-spec.yaml
for testing DSS on Testflinger:checkbox-dss
snap separately and pass it to Testflinger jobs, so that we don't waste a lot of time in the jobs doing this repeated work.Resolved issues
Documentation
Updated the README for this provider. No changes to main Checkbox documentation.
Tests
No additions to the unit-tests. And while I have checked this manually, I will wait for #1789 to be merged before updating this PR and running full automated tests.