Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
eb51e5c
Run operator-sdk init.
qbarrand Mar 4, 2022
e53beea
Add an mkdocs site.
qbarrand Mar 11, 2022
6c60a8c
Add a CI job for the docs.
qbarrand Mar 15, 2022
5fb30ed
Remove an obsolete diagram.
qbarrand Mar 15, 2022
c3087ae
Add missing new lines.
qbarrand Mar 15, 2022
8845d60
Add an mkdocs site
qbarrand Mar 15, 2022
960698e
Add a CI config that was forgotten for the previous PR.
qbarrand Mar 15, 2022
bcde8e7
Add the Module API and its reconciler.
qbarrand Mar 4, 2022
0aa4748
Include docs fixes.
qbarrand Mar 22, 2022
e0e57e9
Remove a comment.
qbarrand Mar 22, 2022
73d9b59
Add comments to more CRD fields.
qbarrand Mar 22, 2022
4e080c3
Merge pull request #3 from qbarrand/add-module
qbarrand Mar 23, 2022
bc18d30
Add jobs that test, build and build a container image.
qbarrand Mar 11, 2022
857cabe
Make the test target also depend on lint.
qbarrand Mar 23, 2022
e930f8c
Add docs.mk when building the container image.
qbarrand Mar 23, 2022
087a6e8
Merge pull request #2 from qbarrand/add-ci
qbarrand Mar 23, 2022
8ed19b4
Add a NodeKernelReconciler.
qbarrand Mar 21, 2022
b4a58bb
Merge pull request #6 from qbarrand/node-kernel-reconciler
qbarrand Mar 23, 2022
fa5aea8
Add a redirection from /docs to /docs/site.
qbarrand Mar 25, 2022
5069b79
Make the redirection valid.
qbarrand Mar 25, 2022
e02aef7
Add a node reconciler (#7)
qbarrand Mar 25, 2022
99c02d6
Upgrade mkdocs. Skip Jekyll on GitHub pages.
qbarrand Mar 27, 2022
820db4f
Add the DaemonSet reconciler (#9)
qbarrand Mar 27, 2022
51f2e36
Build images only once in CI (#10)
qbarrand Mar 27, 2022
5a81731
Mount system modules in the DriverContainer (#13)
qbarrand Apr 4, 2022
b7f2f5c
Build images on tags and commits to main.
qbarrand Apr 4, 2022
086d835
Fix Makefile dependencies.
qbarrand Apr 4, 2022
2888fc3
Add an optional device plugin container spec (#15)
qbarrand Apr 4, 2022
1ccabd8
Add a license.
qbarrand Apr 5, 2022
dd7468a
Create dependabot.yml
qbarrand Apr 5, 2022
f0b8e8a
Bump actions/setup-python from 2 to 3.1.0 (#18)
dependabot[bot] Apr 5, 2022
4b8265b
Bump github.com/google/go-cmp from 0.5.5 to 0.5.7 (#20)
dependabot[bot] Apr 5, 2022
8f727b2
Bump actions/checkout from 2 to 3 (#19)
dependabot[bot] Apr 5, 2022
54b6107
Bump sigs.k8s.io/controller-runtime from 0.11.0 to 0.11.2 (#21)
dependabot[bot] Apr 5, 2022
779c479
Bump github.com/onsi/gomega from 1.17.0 to 1.19.0 (#25)
dependabot[bot] Apr 5, 2022
ab683f4
Go 1.18 (#26)
qbarrand Apr 5, 2022
e41f041
Add Codecov.
qbarrand Apr 5, 2022
8ec82f8
Revert "Add Codecov."
qbarrand Apr 5, 2022
8f0cb14
Run codecov on main and pull requests.
qbarrand Apr 5, 2022
203ea9f
Bump codecov/codecov-action from 2 to 3 (#27)
dependabot[bot] Apr 5, 2022
3a9681c
Copy the git directory as late as possible to reuse cache as much as …
qbarrand Apr 5, 2022
544c302
Exclude mocks from coverage.
qbarrand Apr 5, 2022
1593704
Add in-cluster builds (#11)
qbarrand Apr 6, 2022
161bb51
Move the Module API to v1alpha1. (#29)
qbarrand Apr 6, 2022
fa7ada5
Add workflow steps to build bundle and catalog (#28)
fabiendupont Apr 6, 2022
bf2a897
Fix a shell variable in CI.
qbarrand Apr 6, 2022
c953bc0
Fix the CSV.
qbarrand Apr 6, 2022
e03d2c2
Set IMAGE_TAG_BASE in the Makefile.
qbarrand Apr 6, 2022
a3ecce7
Fix the catalog step.
qbarrand Apr 6, 2022
9c928e2
Bump github.com/go-logr/logr from 1.2.0 to 1.2.3 (#30)
dependabot[bot] Apr 6, 2022
b4d0f99
Add CodeQL scanning.
qbarrand Apr 6, 2022
d7a8048
Create README.md
qbarrand Apr 7, 2022
12189e8
Add a badge for the "Test and build" worfklow.
qbarrand Apr 7, 2022
a104272
Add quick installation instructions.
qbarrand Apr 7, 2022
ae6e301
Bump actions/setup-python from 3.1.0 to 3.1.1 (#32)
dependabot[bot] Apr 8, 2022
3b03e37
Remove the DaemonSet reconciler (#39)
qbarrand Apr 11, 2022
8b077a0
Use a major version for setup-python.
qbarrand Apr 11, 2022
0b3194c
Allow arbitrary build arguments in in-cluster builds (#41)
qbarrand Apr 12, 2022
cecd4dc
Update docs.
qbarrand Apr 13, 2022
9bc5a68
Add support for build secrets (#42)
qbarrand Apr 14, 2022
113fb8e
Replace zap with klog. (#44)
qbarrand Apr 14, 2022
cf7ab37
Make Module a namespaced resource (#45)
qbarrand Apr 14, 2022
d286b47
Use the sublogger.
qbarrand Apr 14, 2022
77f7e40
Bump k8s.io/client-go from 0.23.5 to 0.23.6 (#48)
dependabot[bot] Apr 21, 2022
bec1309
Run golangci-lint.
qbarrand Apr 21, 2022
db930c7
Give golangci-lint up to 5 minutes.
qbarrand Apr 21, 2022
ea8e43c
Bump github.com/google/go-cmp from 0.5.7 to 0.5.8 (#50)
dependabot[bot] Apr 28, 2022
6678b4f
Bump github.com/onsi/ginkgo/v2 from 2.1.3 to 2.1.4 (#49)
dependabot[bot] Apr 28, 2022
0ba35b0
Make it possible to specify a service account for the pod. (#51)
qbarrand May 2, 2022
1ced51d
CI improvements (#52)
qbarrand May 2, 2022
bef6b8b
Bump docker/metadata-action from 3 to 4 (#56)
dependabot[bot] May 6, 2022
07109ce
Bump docker/login-action from 1 to 2 (#58)
dependabot[bot] May 6, 2022
51e1ba0
Bump docker/build-push-action from 2 to 3 (#57)
dependabot[bot] May 6, 2022
2e5519f
Bump github.com/google/go-containerregistry from 0.8.0 to 0.9.0 (#60)
dependabot[bot] May 18, 2022
fc1ae7b
MGMT-10600: skipperizing OOT operator (#67)
yevgeny-shnaidman May 29, 2022
8ebde74
Added the manager's binary to .gitignore. (#68)
ybettan May 29, 2022
c36d208
Build the DriverContainer image on the node that runs minikube. (#72)
qbarrand Jun 1, 2022
6c3d4ac
separate Driver container and Device Plugin into 2 daemonsets (#70)
yevgeny-shnaidman Jun 6, 2022
cbda5b9
Adding a doc section on how to write good commit messages. (#71)
ybettan Jun 6, 2022
746a3c1
Adding support for variable substituation in kernelmapping fields (#73)
yevgeny-shnaidman Jun 9, 2022
1e1dfb2
Support in-cluster build overrides (#76)
yevgeny-shnaidman Jun 16, 2022
320f9f5
Enabling metrics for KMMO (#80)
yevgeny-shnaidman Jun 21, 2022
17ef7fb
Bump k8s.io/klog/v2 from 2.60.1 to 2.70.0 (#81)
dependabot[bot] Jun 23, 2022
3221c0d
Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.2 (#83)
dependabot[bot] Jun 24, 2022
ecdba21
Bump actions/setup-python from 3 to 4 (#74)
dependabot[bot] Jun 24, 2022
9a1e376
Adding documentation for pre-building driver-containers. (#85)
ybettan Jun 27, 2022
8af7c82
Bump github.com/google/go-containerregistry from 0.9.0 to 0.10.0 (#86)
dependabot[bot] Jun 28, 2022
447adbe
Refactor operator code, split it to innetrnal packages (#82)
yevgeny-shnaidman Jun 28, 2022
84c5624
Fixing the 'lint' makefile target. (#87)
ybettan Jun 28, 2022
d5c4e05
Bump sigs.k8s.io/controller-runtime from 0.11.2 to 0.12.2 (#84)
dependabot[bot] Jun 29, 2022
a314ad1
Replace fake.Client using a mock instead (#69)
erusso7 Jun 30, 2022
26cc7b1
Removing the pkg/ directory from the project. (#89)
ybettan Jul 1, 2022
a2674ec
Adding the possibility to run a single-package in unit-tests. (#90)
ybettan Jul 1, 2022
ca1ac04
Use Background context instead of TODO (#92)
erusso7 Jul 1, 2022
480e5b4
Use k8s.io/utils/pointer to create pointer values in Kubernetes objec…
qbarrand Jul 4, 2022
6dbd622
Add icon to ClusterServiceVersion (#97)
fabiendupont Jul 5, 2022
cc36111
Replacing registry internal package implementation (#93)
yevgeny-shnaidman Jul 5, 2022
9bc0724
Allow skipping TLS verification when pushing and pulling images. (#94)
qbarrand Jul 5, 2022
af9c7cd
Wait for registry.minikube to be available before creating the Module…
qbarrand Jul 5, 2022
3cfdbcd
Add a new workflow with a variable. (#98)
qbarrand Jul 5, 2022
431fd94
Changing the operator default imagePullPolicy to 'Always'. (#100)
ybettan Jul 6, 2022
bc2d29f
Bump sigs.k8s.io/controller-runtime from 0.12.2 to 0.12.3 (#101)
dependabot[bot] Jul 7, 2022
581b943
Bump k8s.io/klog/v2 from 2.70.0 to 2.70.1 (#103)
dependabot[bot] Jul 7, 2022
c6c680b
Do not try to substitute Dockerfile variables (#104)
qbarrand Jul 11, 2022
fb49291
adding support for KMMO Status reporting (#102)
yevgeny-shnaidman Jul 11, 2022
85f6990
Device Plugin should run only on nodes where Driver Container is runn…
yevgeny-shnaidman Jul 13, 2022
ae60ccb
Bump k8s.io/client-go from 0.24.2 to 0.24.3 (#108)
dependabot[bot] Jul 15, 2022
d84f9de
Adding support for pull/push secrets. (#75)
ybettan Jul 18, 2022
e93d533
Adding additional metrics to the KMMO (#107)
yevgeny-shnaidman Jul 18, 2022
de6cac1
Add the PodNodeModule reconciler. (#106)
qbarrand Jul 18, 2022
ecef101
Added best effort unit-tests for the `registry` package. (#111)
ybettan Jul 18, 2022
41a1d2e
Bump k8s.io/kubectl from 0.24.2 to 0.24.3 (#112)
dependabot[bot] Jul 19, 2022
de37bd3
Do not return an error if the Module could not be found. (#115)
qbarrand Jul 20, 2022
bc01320
Injecting the registry auth getter interface to the registry's method…
ybettan Jul 20, 2022
9009741
Remove file generation and linter from `unit-test` makefile target. (…
ybettan Jul 20, 2022
a350162
Garbage collector should skip handling/checking device-plugin daemons…
yevgeny-shnaidman Jul 20, 2022
d453e81
Always reconcile pods being deleted (#117)
qbarrand Jul 20, 2022
0e68f29
Bump github.com/onsi/gomega from 1.19.0 to 1.20.0 (#120)
dependabot[bot] Jul 20, 2022
18c87b5
Bump github.com/google/go-containerregistry from 0.10.0 to 0.11.0 (#124)
dependabot[bot] Jul 22, 2022
4a9f4cd
Adding UT for the registry package. (#122)
ybettan Jul 22, 2022
27efcd9
Node that the device plugin pod is running on (#121)
yevgeny-shnaidman Jul 25, 2022
5a4b914
Deploy KMMO on master nodes. (#119)
qbarrand Jul 25, 2022
ecf8e9b
Add a Preflight/Prebuild CRD definition (#125)
yevgeny-shnaidman Jul 25, 2022
dbc9b21
Revert the Container image workflow. (#126)
qbarrand Jul 25, 2022
5060352
Build must-gather image to collect KMMO information (#123)
erusso7 Jul 29, 2022
bd5ab8b
Add utils package and warning logging (#129)
yevgeny-shnaidman Aug 2, 2022
cfb310c
Move StatusUpdater to a separate package and expand interface (#130)
yevgeny-shnaidman Aug 3, 2022
fe2b4f2
Adding Prow jobs to the repo. (#132)
ybettan Aug 4, 2022
0a68d28
Add a toleration allowing the manager pod to run on master nodes. (#135)
qbarrand Aug 5, 2022
2f7f7f4
Revert "Build must-gather image to collect KMMO information (#123)" (…
qbarrand Aug 7, 2022
8dbafe6
Expand registry package API (#133)
yevgeny-shnaidman Aug 7, 2022
817d110
Make .gitignore patterns more specific (#138)
qbarrand Aug 8, 2022
3fb9cad
Bump github.com/prometheus/client_golang from 1.12.2 to 1.13.0 (#139)
dependabot[bot] Aug 8, 2022
e2aa581
Rename CI scripts. (#140)
qbarrand Aug 9, 2022
5c0811a
Move to a modprobe-oriented CRD. (#127)
qbarrand Aug 16, 2022
ff79230
Bump k8s.io/client-go from 0.24.3 to 0.24.4 (#145)
dependabot[bot] Aug 18, 2022
de03b8c
Bump k8s.io/kubectl from 0.24.3 to 0.24.4 (#146)
dependabot[bot] Aug 19, 2022
13cd89e
Run pods with the system-node-critical priority. (#142)
qbarrand Aug 19, 2022
efce7ef
Add more fields to the device plugin spec. (#147)
qbarrand Aug 20, 2022
bb845e9
Change the naming of DriverContainer to ModuleLoader (#148)
yevgeny-shnaidman Aug 22, 2022
0e84a4e
Add preflight package (#149)
yevgeny-shnaidman Aug 23, 2022
31ca601
Add e2e test covering the device plugin management. (#136)
erusso7 Aug 23, 2022
03c1d79
Add toleration key for new label node-role.kubernetes.io/control-plan…
enriquebelarte Aug 23, 2022
b653584
Fix api Module renaming (#157)
yevgeny-shnaidman Aug 25, 2022
b99b78e
Add permissions to module loader pod (#151)
fabiendupont Aug 25, 2022
96ae665
Always label nodes with their kernel. (#159)
qbarrand Aug 26, 2022
8f828a7
Add preflight controller implementation (#158)
yevgeny-shnaidman Aug 29, 2022
b0284d4
Merge upstream commits.
qbarrand Aug 30, 2022
e17148e
Replace OOT(O) with KMM(O).
qbarrand Aug 30, 2022
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
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file
# Ignore build and test binaries.
bin/
testbin/
25 changes: 25 additions & 0 deletions .github/actions/build-drivercontainer-image/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build DriverContainer image

description: This action builds a DriverContainer image for CI

inputs:
kernel-version:
required: true
description: The kernel version against which the module should be built

runs:
using: composite

steps:
- name: Build the kernel module
run: make KERNEL_SRC_DIR="/usr/src/linux-headers-${{ inputs.kernel-version }}"
working-directory: ci/kmm-kmod
shell: bash

- name: Build the image
run: docker build -t kmm-kmod:local --build-arg=KERNEL_VERSION=${{ inputs.kernel-version }} ci/kmm-kmod
shell: bash

- name: Export the image
run: docker save -o kmm-kmod_local.tar kmm-kmod:local
shell: bash
35 changes: 35 additions & 0 deletions .github/actions/collect-troubleshooting/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Collect troubleshooting data

description: This action fetches some troubleshooting data for KMMO

runs:
using: composite

steps:
- name: Get all resources in the kmm-operator-system namespace
run: kubectl get all -n kmm-operator-system
shell: bash

- name: Get all resources in the default namespace
run: kubectl get all
shell: bash

- name: Describe nodes
run: kubectl describe node
shell: bash

- name: Describe DaemonSets
run: kubectl describe daemonset -l kmm.node.kubernetes.io/module.name
shell: bash

- name: Describe Pods
run: kubectl describe pod -l kmm.node.kubernetes.io/module.name
shell: bash

- name: Collect dmesg
run: sudo dmesg
shell: bash

- name: Get all operator logs
run: kubectl logs deployment.apps/kmm-operator-controller-manager -n kmm-operator-system
shell: bash
32 changes: 32 additions & 0 deletions .github/actions/create-minikube-cluster/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Create minikube cluster

description: This action creates a minikube cluster

inputs:
start-args:
required: false
description: Arguments passed to `minikube start`

runs:
using: composite

steps:
- name: Download and install minikube
id: install-minikube
run: |
wget https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i ./minikube_latest_amd64.deb
echo "::set-output name=version::$(minikube version --short)"
shell: bash

- name: Cache Minikube artifacts
uses: actions/cache@v3
with:
path: ~/.minikube/cache
key: ${{ runner.os }}-minikube-${{ steps.install-minikube.outputs.version }}

- name: Start minikube and wait until CoreDNS is available
run: |
minikube start --driver=docker ${{ inputs.start-args }}
kubectl wait --for=condition=available deployment coredns -n kube-system
shell: bash
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: gomod
directory: /
schedule:
interval: daily

- package-ecosystem: docker
directory: /
schedule:
interval: daily

- package-ecosystem: github-actions
directory: /
schedule:
interval: daily
70 changes: 70 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
schedule:
- cron: '17 4 * * 6'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [go]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support

steps:
- name: Checkout repository
uses: actions/checkout@v3

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
37 changes: 37 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Docs

on: [pull_request]

jobs:
build-compare:
name: Build and compare docs
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- uses: actions/setup-python@v4
with:
cache: pip
python-version: 3.x

- name: Install mkdocs
run: pip install -r docs/requirements.txt

- name: Install Java for PlantUML
run: |
sudo apt update
sudo apt install -y default-jre

- name: Build the docs site
run: make docs

- name: Check if the output directory changed
run: |
git add -N docs/site

if ! git diff --quiet docs/site/ ':!docs/site/index.html' ':!docs/site/sitemap.xml*'; then
echo 'Changes detected; please run make -C docs.'
git diff docs/site ':!docs/site/index.html' ':!docs/site/sitemap.xml*'
exit 1
fi
Loading