Commit Graph

972 Commits

Author SHA1 Message Date
dougbtv
cb02c95ed5 [increment] has a couple updates and a code marker for pkg/server/server.go where I think status annotation might go 2025-04-04 13:28:42 -04:00
dougbtv
535c0f5b8e [stub] stubbing in admission controller from dra example driver 2025-04-02 14:59:19 -04:00
dougbtv
72fef71bc1 [significant] first CNI ADD using DRA that succeeds 2025-03-28 14:26:07 -04:00
dougbtv
bd853dd0dd [increment][refactor] refactored to use podname/namespace instead of claim UID. I think I'm missing default networks for DRA items 2025-03-28 13:14:24 -04:00
dougbtv
68736fd0ef [tooling] adds a quick build dra image 2025-03-28 10:35:29 -04:00
dougbtv
d855b77711 [increment] can write a delegate to a json file 2025-03-28 10:35:04 -04:00
dougbtv
736abba25d [stub] stubbing in writing delegates to cached file 2025-03-28 10:15:10 -04:00
dougbtv
1d1a0bcd49 [tooling] add efficient dockerfile, and dockerignore 2025-03-27 16:46:53 -04:00
dougbtv
e745c47fb9 [signficant] a pod will schedule with environment vars present 2025-03-27 16:37:35 -04:00
dougbtv
38a12639f4 [increment] advertises resources at least 2025-03-27 16:03:05 -04:00
dougbtv
2d53701a62 [increment] fixes up mkdir problem, attempts adding the opaque params properly 2025-03-27 13:24:10 -04:00
dougbtv
926f835fc3 [increment][stub] has stubs in for the driver, untested but compiles, docs are probably meh and need updates 2025-03-27 12:05:44 -04:00
dougbtv
c37b45d73a [increment][move] moves the gpu name of the opaque param api to the name net 2025-03-27 11:19:10 -04:00
dougbtv
301aaca5d3 [stub] stubbing in opaque parameters 2025-03-27 10:55:11 -04:00
dougbtv
e26d1bdf49 [increment] saw the demo work 2025-03-26 15:42:07 -04:00
dougbtv
062b5f82ea [stub] stubbing in daemonset and yaml resources, updates driver name for now to try it 2025-03-26 14:58:05 -04:00
dougbtv
8f8bdd8772 [increment] can do a build with go build -o bin/dra-multus-driver ./cmd/dra-multus-driver 2025-03-26 14:17:31 -04:00
dougbtv
e4bd00d643 Revert "add support for Dynamic Resource Allocation"
This reverts commit 40378cabd3.
2025-03-26 14:07:41 -04:00
dougbtv
f56dabf7f4 [deps] First go mod import and vendor 2025-03-26 13:59:36 -04:00
dougbtv
f3024f9ae9 [increment] update imports for local files, hacked in drivername const, notably missing: havent handled the api import yet in state.go 2025-03-26 13:47:18 -04:00
dougbtv
e420284885 initial copy from DRA example driver 2025-03-26 13:31:09 -04:00
Doug Smith
2a91646eaf Merge pull request #1409 from maiqueb/bump-net-attach-def-client-lib-1.7.6
build: consume net-attach-def-client lib 1.7.6
v4.2.0
2025-03-24 19:22:12 +01:00
Ben Pickard
47e5153714 Merge pull request #1408 from dougbtv/pod-not-found-on-add
handle pod not found during CNI ADD gracefully
2025-03-24 14:11:03 -04:00
Miguel Duarte Barroso
21f7282088 build: consume net-attach-def-client lib 1.7.6
This consumes the latest release of the network-attachment-definition-client
library which fixes a regression affecting CNI plugins that do not specify
interfaces in their CNI ADD result. This was fixed in [0].

[0] - https://github.com/k8snetworkplumbingwg/network-attachment-definition-client/pull/77

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
2025-03-24 15:51:11 +00:00
dougbtv
641f6a3b63 handle pod not found in CNI ADD gracefully
sometimes pods get deleted super fast (like jobs or CI) and they come back as not found.

instead of erroring, just return an empty CNI result so things don't blow up.

adds a sentinel errPodNotFound and skips the rest of CmdAdd when we hit it.

shouts to race conditions.
2025-03-24 09:58:38 -04:00
Ben Pickard
e156e815ad Merge pull request #1407 from dougbtv/pod-deleted-on-add
Tolerate issues writing network status annotation on CNI ADD.
2025-03-20 15:44:34 -04:00
dougbtv
5892d705da Tolerate issues writing network status annotation on CNI ADD.
This change adds toleration for such errors like:

```
failed to [query/update] the pod pod-name-here in out of cluster comm: pod "pod-name-here" not found
```

During CNI ADD. While this change is a trade off in terms of debugability for RBAC, it's potentially noisy in scaled clusters when it is working properly.
2025-03-20 14:20:00 -04:00
Ben Pickard
431a735eca Merge pull request #1404 from dougbtv/fix-e2e-dra
The e2e kind config should use api/beta for the runtimeConfig
2025-03-20 12:44:42 -04:00
dougbtv
99d72d14a3 The e2e kind config should use api/beta for the runtimeConfig
Otherwise, the latest changes to DRA (which is beta in K8s 1.32) are incompatible.

Additionally, this:

* Bumps kind version to 0.27.0
* Changes `loglevel` flag to `v` verbosity flag for `kind export logs`
* fixes lint in the Dockerfile.
* adds a couple notes in the docs.
2025-03-20 11:21:03 -04:00
Doug Smith
4a0b5073af Merge pull request #1273 from s1061123/cni110
CNI 1.1.0 support
2025-01-16 09:40:09 -05:00
Tomofumi Hayashi
7eb9673a1a Call GC command with valid attachments from multus cache
This code changes CNI's GC command argument. Previously it just
passes from parent CNI runtime, however, it may causes unexpected
resource deletion if one CNI plugin is used in both cluster
network and net-attach-def. This change generates valid attachments
from multus CNI cache and passed to delegate CNI plugin.
2024-12-20 11:28:41 +09:00
Tomofumi Hayashi
a439f91721 Support GC and STATUS command for cluster network
This change supports up to date CNI 1.1 command, GC and STATUS for
cluster network.
2024-12-20 11:28:41 +09:00
Tomofumi Hayashi
6d3d800226 Update vendor packages, including CNI v1.2.0 2024-12-20 11:28:38 +09:00
Doug Smith
fba1fea81e Merge pull request #1373 from dougbtv/livequery-context
adds context to GetPodAPILiveQuery
2024-12-19 14:48:14 -05:00
dougbtv
f186370654 adds context to GetPodAPILiveQuery 2024-12-19 14:41:32 -05:00
Doug Smith
fc72ddbd24 Merge pull request #1332 from dougbtv/getlivepod
always attempt a live pod get on miss to confirm its really not there
2024-12-19 14:13:10 -05:00
dougbtv
fb03b0f754 This makes sure that stale caches never result in NotFound errors.
It was explained to me that informers are almost always are more efficient, and in most cases will work, but a live lookup is appropriate after a number of failures.

This happens only on the retry portion, so we're still getting the benefits of informers, but, on a retry situation, we don't get a cache miss.

Additionally, changes out use of cache get on this, since it already bails out before it on CNI DEL.
2024-12-19 13:57:57 -05:00
Doug Smith
5338017bf6 Merge pull request #1372 from pmtk/dont-wait-too-long-for-apiserver
Thin plugin: don't wait too long for an answer from API Server
2024-12-19 10:55:40 -05:00
Patryk Matuszak
4ff141c18d Don't wait too long for an answer from API Server
If Multus plugin gets a DEL request, but the API Server is down (e.g.
via 'crictl rmp'), the call takes so long, it actually never finishes.
This prevents CRI-O from deleting the Pods.
2024-12-19 16:13:38 +01:00
Doug Smith
4fc16b3bb8 Merge pull request #1355 from Nordix/fix-cve-moshiur
Support go 1.22 and 1.23 build to fix CVE
v4.1.4
2024-12-06 16:56:48 -05:00
smoshiur1237
ddbcd2c4ef Support go 1.22 to fix CVE
Signed-off-by: smoshiur1237 <moshiur.rahman@est.tech>
2024-12-05 17:03:03 +02:00
Tomofumi Hayashi
781ecdaecd Merge pull request #1353 from xrstf/master
clean up go.mod, get rid of client-go v1.5.2
2024-11-08 01:53:15 +09:00
Christoph Mewes
808185b10f clean up go.mod, get rid of client-go v1.5.2 2024-11-06 12:51:30 +01:00
Doug Smith
e1a0d2a3fd Merge pull request #1345 from dougbtv/net-attach-def-lib-175
Update net-attach-def client library to 1.7.5 for cri-o functionality
v4.1.3
2024-10-15 12:05:24 -04:00
dougbtv
ecf5854ca9 Update net-attach-def client library to 1.7.5 for cri-o functionality
From the release notes:

> This release contains a fix related to the determination of the default interface, e.g. setting the default parameter to true in the network-status annotation based on the presence of a gateway in the CNI ADD success result ips.gateway and makes the determination of the default based on the first interface that has an associated value of gateway (using the interface index in the ips element in the CNI ADD success result).

> This provides flexibility especially in CRI-O which uses the first interface and IP addresses for the pod.IP in Kubernetes, therefore. Containerd functionality is unchanged in that it uses the value for the IP addresses specifically

> It's worth noting that CNI ADD success results which do not contain any interfaces will be discarded in this determination of the default, therefore it's recommended to set one with an associated gateway if aiming to have it be noted as the default.

See also:
https://github.com/k8snetworkplumbingwg/network-attachment-definition-client/releases/tag/v1.7.5
https://github.com/k8snetworkplumbingwg/network-attachment-definition-client/pull/73
2024-10-15 11:37:32 -04:00
Doug Smith
adfb270991 Merge pull request #1341 from dougbtv/net-attach-def-client-v174
Updates net-attach-def client library to v1.7.4
v4.1.2
2024-10-01 09:36:43 -04:00
dougbtv
b171bb702b Updates net-attach-def client library to v1.7.4
Which improves backwards compatibility for network-status in latest updates to the client library, especially related to Calico.

See also: https://github.com/k8snetworkplumbingwg/network-attachment-definition-client/pull/72
2024-09-30 15:57:48 -04:00
Doug Smith
f1e887e239 Merge pull request #1336 from dougbtv/net-attach-def-client-v173
Bumps net-attach-def client to v1.7.3
v4.1.1
2024-09-13 12:03:57 -04:00
dougbtv
100766d1a4 Bumps net-attach-def client to v1.7.3
Previous version didn't account for accounts for the sandox interfaces when reporting the interfaces in the network-status annotation when calculating the default:true interface
2024-09-13 09:56:52 -04:00
Doug Smith
e074c2a56b Merge pull request #1335 from dougbtv/net-attach-def-client-v172
Bumps net-attach-def client library to v1.7.2
2024-09-12 13:35:46 -04:00